3장. 데이터베이스 시스템
- 스키마
- 데이터 구조와 제약 조건을 정의
- 저장된 값 = 인스턴스
- 시스템 카탈로그 (= 데이터 사전, 시스템 데이터베이스)
- 저장되는 데이터에 관한 정보를 저장하는 곳
- 데이터 정의어 (DDL) - Difinition
- 데이터 조작어 (DML) - Manipulation
- 데이터 제어어 (DCL) - Control
4장. 데이터 모델링
- 데이터 모델링
- 현실 세계의 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정
- E-R Model (개체-관계 모델)
- Entitiy-Relationship Model
- Entity (개체)
- 저장할만한 가치가 있는 요소
- 개체 타입 → 고객(이름, 주소, 연락처, 적립금)
- 개체 인스턴스 : 개체를 구성하는 속성이 실제 값을 가짐으로써 실체화 된 개체
- 개체 집합 : 개체 인스턴스의 모음
- 데이터베이스는 개체 집합을 관리한다.
- 속성 (Attribute)
- 개체가 갖는 고유 특성
- 데이터의 가장 작은 논리적 단위
- 관계 (Relationship)
- 개체 간 맺고 있는 연관성 (Mapping)
- Mapping cadinality (매핑 카디널리티)
- 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수
- 일대일, 일대다, 다대다
- 데이터베이스 스키마
- 데이터베이스의 논리적 구조
- 계층 데이터 모델, 네트워크 데이터 모델, 관계 데이터 모델
5장. 관계 데이터 모델
- attribute (속성) : 열
- tuple (투플) : 행
- domain (도메인) : 속성 하나가 가질 수 있는 모든 값의 집합
- reation (릴레이션)
- 모든 릴레이션은 테이블이지만, 모든 테이블은 릴레이션이 아니다.
- 테이블이 릴레이션이 되기 위해서는 테이블의 행들이 개체에 대한 데이터를 저장해야하고, 테이블들의 열이 그 개체들의 특성에 대한 데이터를 저장해야 한다. 릴레이션은 한 열의 모든 값들은 동일한 종류여야 한다.
- 정규화를 만족하는 테이블이 릴레이션이겠네
- 다른 해석으로는 “릴레이션은 추상적 개념이고 테이블은 구체적인 표현이라고 볼 수 있다.”
- 릴레이션은 릴레이션 스키마와 릴레이션 인스턴스로 구성되어 있다.
- degree (차수) : 하나의 릴레이션에서 속성의 전체 개수
- cardinality (카디널리티) : 하나의 릴레이션에서 투플의 전체 개수
릴레이션의 특성
- 튜플의 유일성 : 동일한 튜플이 존재할 수 없다. (유일하게 구별하기 위한 속성 - 키)
- 튜플의 무순서 : 튜플 사이의 순서는 무의미하다.
- 속성의 무순서 : 속성 사이의 순서는 무의미하다.
- 속성의 원자성 : 속성 값으로 원자 값만 사용할 수 있다. (다중 값을 가질 수 없다.)
키의 종류
- 슈퍼키, 후보키, 기본키, 대체키, 외래키
무결성 제약조건
- 개체 무결성 제약조건 : 기본키는 널 값을 가질 수 없다.
- 참조 무결성 제약조건 : 외래키는 참조할 수 없는 값을 가질 수 없다.
- 투플을 수정/삭제하는 연산은 “참조 무결성 제약조건”을 위반하지 않는 경우에만 수행한다.
7장. 데이터베이스 언어 SQL
- SQL : Structured Query Language
- SQL은 연습하는 걸로…
9장. 정규화
정규화의 개념과 이상 현상
- 데이터베이스를 설계한 후 설계 결과물을 검증하기 위해 사용하기도 한다.
- 정규화는 이상 현상이 발생하지 않도록, 릴레이션을 분해하는 과정이다.
- 이상현상의 종류 (책의 예시를 다시 보는 것이 좋을 것 같다)
- 삽입 이상 : 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제
- 갱신 이상 : 중복 투플 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제
- 삭제 이상 : 투플을 삭제하면 꼭 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제
함수 종속
- 하나의 릴레이션을 구성하는 속성들의 부분 집합을 X와 Y라 할 때, X 값에 따라 Y 값이 결정되면 “Y가 X에 함수적으로 종속되어 있다” (X→Y)라고 한다. (X: 결정자, Y: 종속자)
- 기본적으로 릴레이션의 속성들은 기본키에 함수적으로 종속되어 있다.
- 함수 종속 관계를 판단할 때는, 현재 시점의 데이터만으로 판단하면 안되고 속성 자체가 갖는 특성과 의미를 기반으로 판단해야 한다.
- 완전 함수 종속 : X→Y 관계에서, Y가 속성 집합 X 전체에 종속되어 있음 (일반적인 함수 종속)
- 부분 함수 종속 : X→Y 관계에서, Y가 속성 집합 X의 일부분에도 종속되어 있음
정규화의 개념과 정규형의 종류
- 이상 현상이 발생하지 않는 올바른 릴레이션으로 만들어나가는 과정을 정규화(Normalization)라고 한다.
- 제 1정규형
- 릴레이션에 속한 모든 속성의 도메인이 원자 값으로만 구성되어 있으면 제 1정규형에 속한다.
- 제 2정규형
- 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속되면 제 2정규형에 속한다.
- 제 3정규형
- 기본키가 아닌 모든 속성이 기본키에 이행적 함수 종속이 되지 않으면 제 3정규형에 속한다.
- X→Y, Y→Z 관계가 만족하면 논리적으로 X→Z가 성립하는데, 이때 Z가 X에 이행적으로 함수 종속되었다고 한다.
- BCNF형 (Boyce/Codd Normal Form : 보이스/코드 정규형)
- 릴레이션의 함수 종속 관계에서 모든 결정자가 후보키이면 보이스/코드 정규형에 속한다.
- 강한 제 3정규형 (Strong 3NF)이라고도 한다.
- 이 내용도 이행적 함수 종속과 비슷한 내용으로 보이는데, 예시를 보면서 하는 게 이해하기 좋겠다.
10장. 회복과 병행 제어
트랜잭션의 개념
- 트랜잭션 (transaction) : 작업 하나를 수행하는 데 필요한 데이터베이스의 연산들을 모아놓은 것
- 데이터베이스에서 논리적인 작업의 단위가 된다.
- 장애가 발생했을 때 데이터를 복구하는 작업의 단위도 된다.
트랜잭션의 특성
- 트랜잭션의 네 가지 특성의 영단어 첫 자를 따서 ACID 특성이라고 한다.
- 원자성, 일관성, 격리성, 지속성
트랜잭션의 연산
- commit, rollback
회복
병행 제어
'Database' 카테고리의 다른 글
SQL Window Function (0) | 2023.07.24 |
---|