Published 2020. 9. 16. 20:11
728x90
반응형

관계모델 용어 정리

table = entity = relation

행 = tuple = row

열 = attibute = column = field

 

 

제약조건

1. 무결성 제약 조건

   한 객체에 저장되는 데이터를 제한하는 조건

제약조건 설명
도메인 제약조건 각 튜플의 애트리뷰트는 도메인에 속하는 값이어야 함
즉, 도메인이 Integer면 Integer값만 저장될 수 있음
엔티티 무결성 제약조건 기본 키 값은 NULL이 될 수 없음
참조 무결성 제약조건 어떤 릴레이션 A의 튜플이 다른 릴레이션 B의 튜플을 참조하려면, 참조하려는 그 튜플은 릴레이션 내에 존재해야 함
외래키(FK)는 참조 무결성 제약조건을 만족해야 함
*외래키 : 다른 릴레이션의 key 애트리뷰트를 참조하는 애트리뷰트

2. 키 제약 조건

   서로 다른 튜플은 동일한 키 애트리뷰트를 갖지 않아야 한다는 조건

 

 

정규화란?

고유한 식별자를 가지는 모든 개체(테이블)에 대해 더 이상 분리할 수 없는 상태로 나누는 과정

불필요하게 중복된 데이터 제거 작업

먼저 정규화 과정을 수행하고 수행속도나 프로그 램을 구현하기 어려운 경우에는 비정규화(역정규화) 과정으로 문제를 보완

 

 

정규형

정규형 설명
1NF(도메인이 원자값) 릴레이션에 속한 모든 속성의 도메인이 원자값으로 구성되어야 함(더이상 쪼개질 수 없음)
*도메인 : 컬럼값의 집합
2NF(부분함수 종속 제거) 부분함수 종속성 제거하고 테이블의 모든 컬럼이 완전 함수적 종속적 일 것
*부분함수 종속 : 복합 기본키 중에 특정 컬럼에만 종속된 경우 
*완전함수 종속 :  복합 기본키 모든 컬럼에 종속된 경우 
3NF(이행함수 종속 제거) 기본키를 제외한 속성들 간의 이행적 함수 종속이 없는 것
기본키를 제외하고, 한 속성은 다른 속성에 종속적이지 않아야 함
BCNF(결정자이면서 후보키) 3NF을 만족하면서 결정자 중에서 후보키가 아니면 제거
후보키가 1개 밖에 없는 경우는,  3NF 를 만족시키면, BCNF 도 만족
4NF(다치종속 제거) 한 릴레이션에서 다치종속을 제거한 정규형
5NF(조인종속 제거) 한 릴레이션에서 조인 종속이 후보키를 통해서만 성립이 되도록 한 정규형

 

 

반정규화(역정규화)

데이터베이스의 물리적 설계 과정에서 성능을 향상시키기 위해 실행

정규화된 릴레이션은 하나의 릴레이션을 분해하기 때문에 원하는 자료가 하나의 릴레이션에 존재하지 않아 외래키를 이용해 참조해야함

이는 데이터베이 스에 저장된 자료를 검색하는 시간을 증가시키며 성능을 저하시킬 수 있음

 

1. Relation 반정규화 

   - Relation 반정규화 

   - Relation 분할

     릴레이션의 데이터를 검색할때는 목록중의 데이터를 순차적으로 테이블 검색

     자주 사용하지 않는 속성이나 튜플이 릴레이션에 있을 경우 검색시 성능 을 저하를 야기함

     이 경우에는 자주 사용하는 속성이나 튜플을 분해하여 성 능을 향상시킬 수 있음

     ① 수직분할 : 자주 사용하지 않는 속성(컬럼) 분할 

     ② 수평분할 : 자주 사용하지 않는 튜플(행) 분할 

 

2. Attribute 반정규화

   릴레이션의 성능을 향상시키기 위해 속성 또는 파생속성을 추가  

   *파생 속성 : 현재 릴레이션에는 없는 속성이지만 작업의 효율을 위해 힌 속성으로 부터의 계산이나 가공에 의해 파생되는 속성

반응형

'프로그래밍 > SQL' 카테고리의 다른 글

11.20(서브쿼리와 조인의 차이점)  (0) 2020.11.20
09.17(정규화 예제)  (0) 2020.09.17
05.29(Trigger)  (0) 2020.05.29
05.28(PL/SQL)  (0) 2020.05.28
05.27(VIEW, SEQUENCE)  (0) 2020.05.27
복사했습니다!