논리 모델을 적용하고자 하는 기술에 맞도록 상세화하는 과정
개체를 테이블로 변환
일반적으로 테이블과 개체 명칭을 동일하게 하는 것을 권고
속성을 컬럼으로 변환
개발자와 사용자 간 의사소통을 위해 표준화된 약어를 사용하도록 권고
UID를 기본키로 변환
개체의 UID에 해당하는 모든 속성에 대해 기본키로 선언
관계를 외래키로 변환
외래키명은 기본키 이름을 그대로 사용하지만 다른 의미를 가질 경우 변경 가능
컬럼 유형과 길이 정의
적절한 유형을 정의하고 데이터의 최대 길이를 파악하여 길이를 설정
관계와 관계 사이에 대해 참조의 일관성을 보장하기 위한 조건
참조하는 릴레이션의 외래키는 항상 참조되는 릴레이션의 기본키로 존재해야 함
제한(Restricted)
참조 무결성 원칙을 위배하는 연산을 거절하는 옵션
연쇄(Cascade)
참조되는 릴레이션에서 튜플을 삭제하고, 참조하는 릴레이션에서 이 튜플을 참조하는 튜플들도 함께 삭제하는 옵션
널 값(NUllify)
참조되는 릴레이션에서 튜플을 삭제하고, 참조하는 릴레이션에서 해당 튜플을 참조하는 튜플들의 외래키에 NULL 값을 넣는 옵션
NOT NULL이 명시된 속성이라면 연산을 거절
검색 연산의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 데이터구조
인덱스 분포도가 10~15% 이내인 경우에 적용
인덱스 분포도가 범위 이상이더라도 부분 처리 목적으로 적용 가능
분포도 = 1 / (컬럼 값의 종류) X 100
= (컬럼 값의 평균 row 수) / (테이블의 총 row 수) X 100
레인지 파티셔닝(Range Partitioning)
연속적인 숫자나 날짜를 기준으로 하는 기법
해시 파티셔닝(Hash Partitioning)
파티션 키의 해시 함숫값에 의한 기법
리스트 파티셔닝(List Partitioning)
데이터에 대한 명시적 제어가 가능한 기법
컴포지트 파티셔닝(Composite Partitioning)
레인지 파티셔닝 이후 해시 파티셔닝을 적용하는 기법