논리적 설계의 산출물인 ERD의 요소들을 관계형 데이터베이스의 요소들로 전환하는 것
논리적DB설계 | 물리적DB설계 |
---|---|
엔터티(entity) | 테이블(table) |
속성(attribute) | 컬럼(column) |
주식별자(primary identifier) | 기본키(primary key) |
외래식별자(foreign identifier) | 외래키(foreign key) |
뷰(view) | |
인덱스(index) |
데이터유형 | 정의 |
---|---|
CHAR(n) | 고정 길이 데이터 타입(최대2000byte) - 지정된 길이보다 짧은 데이터 입력 시 나머지 공간은 공백으로 채워짐 |
VARCHAR2(n) | 가변 길이 데이터 타입(최대4000byte) - 지정된 길이보다 짧은 데이터 입력 시 나머지 공간은 채우지않음 |
NCHAR(n) | 고정길이 유니코드 데이터 타입(최대2000byte) |
NVARCHAR2(n) | 가변길이 유니코드 데이터 타입(최대4000byte) |
LONG | 가변길이 데이터타입(최대 2Gbyte) |
CLOB | 대용량 텍스트 데이터타입(최대 4Gbyte) |
NCLOB | 대용량 텍스트 유니코드 데이터타입(최대 4Gbyte) |
데이터유형 | 정의 |
---|---|
BINARY_FLOAT | 부동 소수형 데이터 타입(4byte) - 32bit 부동 소수 |
BINARY_DOUBLE | 부동 소수형 데이터 타입(8byte) - 64bit 부동 소수 |
NUMBER(p,S) | 숫자 데이터 타입(p(precision): 유효자리 수 1~38/ s(scale):소수점 유효자리-84~127 |
데이터유형 | 정의 |
---|---|
RAW(n) | 가변 길이 이진 데이터 타입(최대 2Gbyte) |
LONGRAW(n) | 가변 길이 이진 데이터 타입(최대 4Gbyte) |
BLOB | 대용량의 바이너리 데이터를 저장하기 위한 데이터 타입(최대 4Gbyte) |
BFILE | 대용량의 바이너리 데이터를 파일형태로 저장하기 위한 데이터 타입(최대 4Gbyte) |
데이터유형 | 정의 |
---|---|
DATE | 고정길이 날짜 |
INTERVAL_YEAR | 날짜(년도, 월) 형태의 기간 표현 데이터 타입 |
INTERVAL_DAY | 날짜 및 시간(요일,시,분,초) 형태의 기간 표현 데이터 타입 |
TIMESTAMP | 밀리초(ms)까지 표현 데이터타입 |
TIMESTAMP_WITH TIME ZONE | 날짜 및 시간대 형태의 데이터 타입 |
TIMESTAMP_WITH LOCAL TIME ZONE | 저장 시 데이터베이스 시간대를 준수, 조회 시 조회하는 클라이언트 시간 표현 데이터 타입 |
CASE 1 - 엔티티의 통합
항상 혹은 대부분 조인에 의한 검색을 하고, 검색이 빈번히 이루어지는 두 개의 엔티티를 대상으로 한다
CASE 2 - 수직분할에 의한 반정규화
엔티티의 튜플 수 및 속성의 수가 매우 많고, 엔티티의 속성들이 그룹화되어 각 그룹이 특정 부서 혹은 응용프로그램에 의해서만 사용될 떄
CASE 3 - 수평분할에 의한 반정규화
한 테이블 내에서 튜플의 조회 빈도에 따라 엔티티를 분할
CASE 4 - 속성의 중복에의한 반정규화
조인하여 가져다 쓰는 속성의 수가 적을 때는 엔티티의 통합은 비효율적이다. 따라서 속성을 중복하여 저장한다
CASE 5 - 관계에 대한 반정규화
속성의 중복에 의한 반정규화와 비슷하나 차이가 있다면 중복을 하는 속성이 다른 엔티티와의 관계를 맺어주기 위한 외래키로 사용된다는 것이다(조인해야 할 엔티티를 줄여줌)