본문 바로가기

CS45

[DB - 데이터베이스 개론] Chapter 08. 데이터베이스 설계 목차 01. 데이터베이스 설계 단계 조직 구성원들의 다양한 요구 사항을 고려하여 제대로 된 데이터베이스를 구축하기 위해서는 사용자들의 요구 사항을 잘 분석하고, 분석한 결과를 바탕으로 데이터베이스의 논리적, 물리적 구조를 제대로 설계해야 한다. 데이터베이스 설계는 사용자들의 요구 사항을 고려하여 데이터베이스를 생성하는 과정이다. 품질 좋은 데이터베이스를 평가하는 대표적인 기준은 데이터베이스를 실제로 사용하는 구성원들의 요구 사항을 만족하는지 여부이다. 관계 데이터 모델을 기반으로 두고 데이터베이스를 설계하는 방법에는 대표적으로 두 가지가 있는데 여기에서는 그 중 하나인 E-R 모델과 릴레이션 변환 규칙을 이용한 데이터베이스 설계를 알아보자. E-R 모델과 릴레이션 변환 규칙을 이용한 데이터베이스 설계는 .. 2022. 2. 3.
[DB] 데이터베이스의 INDEX 목차 인덱스란? 인덱스는 DBMS의 검색 성능을 높이기 위한 자료구조라고 할 수 있다. 인덱스가 필요한 이유 일반적으로 책을 보면 마지막에 색인이라고 되어 있는 부분이 있다. 우리는 이를 통해 내가 찾고 싶은 단어가 몇 페이지에 존재하는지를 쉽게 알 수 있다. 만약 색인이 없다면 우리는 원하는 단어를 찾기 위해 책을 처음부터 살펴보면서 해당 단어가 몇 페이지에 있는지를 찾아야만 한다. 데이터베이스의 인덱스는 책에 있는 색인과 유사하다. 데이터를 찾을 때 해당 데이터가 어디 위치에 있는지를 인덱스를 활용하면 빠르게 찾아낼 수 있다. 만약 인덱스를 사용하지 않는다면 테이블의 처음부터 끝까지 탐색하여 데이터를 찾아야 하는데 이를 전체 테이블 스캔(Full Table Scan)이라고 한다. 이는 튜플의 수가 많.. 2022. 1. 25.
[DB - 데이터베이스 개론] Chapter 07. 데이터베이스 언어 SQL 목차 01. SQL의 소개 SQL(Structured Query Language)은 관계 데이터베이스를 위한 표준 질의어로 많이 사용되는 언어이다. 사용자가 처리를 원하는 데이터가 무엇인지만 제시하고 데이터를 어떻게 처리해야 하는지를 언급할 필요가 없어 비절차적 데이터 언어의 특징을 띤다고 할 수 있다. SQL은 기능에 따라 데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)로 나눈다. 데이터 정의어 : 테이블을 생성하고 변경&제거하는 기능을 제공한다. 데이터 조작어 : 테이블에 새 데이터를 삽입하거나, 테이블에 저장된 데이터를 수정,삭제,검색하는 기능을 제공한다. 데이터 제어어 : 보안을 위해 데이터에 대한 접근 및 사용 권한을 사용자별로 부여하거나 취소하는 기능을 제공하는 언어다.. 2022. 1. 25.
[DB - 데이터베이스 개론] Chapter 06. 관계 데이터 연산 목차 01. 관계 데이터 연산의 개념 이번 장에서는 데이터 모델의 연산에 대해서 알아보자. 연산은 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행하는 것으로, 데이터베이스 시스템의 구성 요소 중 데이터 언어의 역할을 한다. 대표적인 관계 데이터 연산으로 관계 대수와 관계 해석이 있다. 관계 대수와 관계 해석은 원하는 데이터를 얻기 위한 처리 절차를 얼마나 자세히 기술하느냐에서 큰 차이를 보인다. 관계 대수(relational algebra) : 데이터의 처리 과정을 순서대로 기술하는 절차 언어(procedural language) 관계 해석(relational calculus) : 처리를 원하는 데이터가 무엇인지만 기술하는 비절차 언어(nonprocedural language) 데이터를 처.. 2022. 1. 23.
[DB - 데이터베이스 개론] Chapter 05. 관계 데이터 모델 목차 01. 관계 데이터 모델의 개념 1. 관계 데이터 모델의 기본 용어 일반적으로 관계 데이터 모델에서는 하나의 개체에 관한 데이터를 릴레이션(relation) 하나에 담아 데이터베이스에 저장한다. 아래 사진의 릴레이션의 예를 통해 관련 용어를 알아보자. 1.1 속성 (attribute) 릴레이션의 열을 의미한다. 각 속성은 서로 다른 이름을 이용해 구별한다. 릴레이션은 파일 관리 시스템에서의 파일, 속성은 해당 파일의 필드(field)에 대응하는 개념이다. 1.2 튜플 (tuple) 릴레이션의 행을 의미한다. 고객 개체의 인스턴스에 해당한다. 튜플은 파일 관리 시스템 관점에서 해당 파일의 레코드(record)에 대응하는 개념이다. 1.3 도메인 (domain) 속성 하나가 가질 수 있는 모든 값의 집.. 2022. 1. 21.
[DB] 트랜잭션(Transaction)이란? 목차 트랜잭션의 정의 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위를 의미한다. 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업단위이다. 데이터베이스 연산은 SQL문으로 표현되므로 트랜잭션을 작업 수행에 필요한 SQL문들의 모임으로 이해해도 된다. 트랜잭션의 모든 명령문이 완벽하게 처리되거나 하나도 처리되지 않아야 데이터베이스는 모순이 없는 일관된 상태를 유지할 수 있다. 데이터베이스에 장애가 발생했을 때 복구작업을 수행하거나, 다수의 사용자가 동시에 사용할 수 있도록 작업을 하는 데 중요한 단위로 사용된다.. 2022. 1. 18.