데이터 모델
- 현실 정보를 데이터로 표현한 모델
- 구성 요소 : 개체, 속성, 관계
- 표시할 요소 : 구조, 연산, 제약조건
- 종류 : 개념적 모델, 논리적 모델, 물리적 모델
데이터 모델 구성 요소
- 개체 entity : 현실을 나타내는 정보 단위
- 속성 attribute : 데이터를 표현하는 최소한 논리적 단위, 데이터 열
- 관계 relation : 개체 간 연관
종류
- 개념적 모델 : 현실을 추상화하여 개념적으로 나타낸 모델
- 논리적 모델 : 개념적 모델을 DBMS에서 사용가능한 논리적 형태로 정의한 모델
- 물리적 모델 : 제약 관계 등 특정 DBMS에 맞춰 물리적으로 만든 모델
데이터 모델 구성 요소
- 구조 structure : 데이터 구조와 정적 성질
- 연산 operation : 데이터 처리 작업 명세
- 제약 조건 constraint : 실제 데이터의 논리적 제약 조건
이상 abnomaly
- 데이터 중복성으로 인해 발생하는 이상 현상
- 삽입 이상 : 속성이 부족하여 삽입이 안되는 이상
- 갱신 이상 : 갱신시 무결성 위반되는 이상
- 삭제 이상 : 다른 데이터도 함께 삭제되는 이상
함수적 종속 functional dependency
- X에 의해 하나의 Y값이 결정될때 Y는 X에 함수적 종속. X는 결정자 Y는 종속자
- X->Y
- 완전 함수적 종속 : 여러 속성으로 이루어진 기본키에 종속하는 경우
- 부분 함수적 종속 : 여러 속성으로 이루어진 기본키의 일부 속성에만 종속하는 경우
이행적 함수적 종속
- X -> Y, Y->Z 와 같은 관계 시 X에 의해 Z가 결정 시 Z는 X에 이행적 함수적 종속 관계
정규화 Normalization
- 종속 관계를 제거하여 중복성을 제거 테이블 무손실 분해과정
- 제 1정규형, 제2정규형, 제 3정규형, BCNF 정규형, 제 4정규형, 제 5 정규형
정규화 과정
- 제 1 정규형 1NF: First Normal Form : 속성이 원자값을 갖도록 분해
- 제 2 정규형 2NF : 모든 속성이 기본키에 완전 함수적 종속을 만족하도록 함. 부분적 함수적 종속 제거
- 제 3 정규형 3NF : 이행적 함수적 종속 제거
- BCNF 정규형 boycee-codd normal form : 모든 결정자가 후보키인 정규형 <- 결정자면서 후보키가 아닌것 제거
- 제4 정규형 : 다치 종속
- 제 5 정규형 : 조인 종속성 이용
반 정규화 denormalization
- 정규화된 테이블을 통합, 중복 시키는 과정
- 성능, 관리 효율 향상 <-> 일관성 저하
개념적 데이터 모델
- 현실을 추상화하여 간략하게 나타낸 데이터 모델
- E-R 모델
개념적 데이터모델 관련 용어
- 개체 : 구분 되는 정보
- 개체 인스턴스 : 개체 하나 하나
- 개체 타입 : 개체를 나타내는 구조
- 속성 : 정보를 나타내는 최소의 논리적 단위, 데이터 열
- 카디널리티 : 개체 대수. (최소, 최대) 범위
- 차수 : 관계와 연관된 개체 타입의 수
- 관계 : 1:1, 1:n, n:m
논리적 데이터 모델
- DBMS에 적용가능하도록 개념적 데이터 모델을 논리화 시킨 모델
릴레이션과 테이블
- 릴레이션 : 데이터 구조를 표현하는 추상화된 개념
- 테이블 : 릴레이션을 구체화 시킨 형태
논리적 데이터 모델 용어
- 튜플 : 하나의 행
- 속성 : 하나의 열
- 도메인 : 속성 값 범위
- 카디널리티 : 튜플 개수
- 차수 : 속성 개수
- 릴레이션 스키마 : 속성 전체
- 릴레이션 인스턴스 : 튜플 전체
- 릴레이션 = 릴레이션 스키마 + 릴레이션 인스턴스
키
- 후보키 : 최소성, 유일성을 만족하는 키 집합
- 슈퍼키 : 유일성을 만족하는 키 집합
- 기본키 : 튜플을 식별하기 위한 대표적인 키. not null, unique
- 대체키 : 기본키를 제외한 후보키
- 외래키 : 타 테이블의 기본키를 참조하는 키
무결성 제약조건
- 개체 무결성 : 기본키는 null이나 중복되서는 안됨
- 참조 무결성 : 외래키는 null값이나 참조 릴레이션의 기본키여야 함.
- 도메인 무결성 : 속성은 원차값을 가져야 한다.
* 묵시적 정의 : 개체와 참조무결성은 묵시적으로 정의
* not null, unique, check 는 논리적 데이터모델링 단계서 명시적으로 정의