본문 바로가기

데이터베이스

[데이터베이스] 4. 물리 데이터모델링

반응형

수행 순서

  • 논리 데이터 모델로부터 물리 데이터 모델로 변환하는 순서는, 단위 Entity를 테이블로, 속성을 Column으로, UID를 기본 키(Primary Key)로, 관계를 외래 키(Foreign key)로 변환한 후, 칼럼 유형과 길이를 정의하고, 데이터 처리 범위와 빈도수를 분석하여 반정규화를 고려하는 순서로 진행한다.

단위  Entity를 테이블로 변환한다

  • 논리모델에서 정의된 Entity는 물리모델에서 테이블로 변환한다.
  • 변환방법
    1. 일반적으로 테이블과 Entity 명칭을 동리하게 하는 것을 권고한다.
    2. Entity는 한글명을 사용하고, 테이블은 소스코드의 가독성을 위해 영문명을 사용한다.
    3. 메타데이터시스템과 같은 사전에 표준화된 용ㅇ터가 있을 경우 메타에 등록되어 있는 단어를 사용하여 명명한다.

 속성을 Column으로 변환한다

  • 논리모델에서 정의된 속성은 물리모델에서 칼럼으로 변환한다.
  • 변환방법
    1. 칼럼의 명칭은 속성의 명칭과 반드시 일치할 필요는 없으나, 개발자와 사용자 간 의사소통을 위하여 가능한 한 표준화된 약어를 사용하도록 한다.
    2. SQL 예약어(Reserved word) 사용은 피해야 한다.
    3. SQL 문장의 가독성을 높이기 위해 칼럼명칭은 가능한 한 짧은 것이 좋다.
    4. 특정 테이블에 칼럼을 정의한 후, 한 로우(row)에 해당하는 샘플 데이터를 작성하여 칼럼의 정합성(Consistency)을 검증한다.
    5. 칼럼명으로 복합단어를 사용할 경우 미리 정의된 표준에 의해 명명하여야 한다.

UID를 기본 키(Primary Key)로 변환한다

  • 논리모델에서 정의된 UID는 물리모델에서 기본 키로 변환한다.
  • 변환방법
    1. Entity의 UID에 해당하는 모든 속성에 대해 기본 키로 선언하고, Not Null, Unique등의 제약조건을 추가적으로 정의한다.
    2. 관계에 의한 외래키가 기본키에 포함될 수 있다.

관계를 외래 키(Foreign Key)로 변환한다

  • 논리모델에서 정의된 관계는 외래 키로 변환한다.
  • 변환방법
    1. n 관계에서 1 영역에 있는 기본 키를 n 영역의 외래 키로 선언한다.
    2. 외래 키명은 1 영역의 기본 키 이름을 그대로 사용하나 다른 의미를 가질 경우 변경하여 명명 할 수 있다. 
    3. 순환 관계에서 자신의 기본 키는 외래키로 정의된다. 

Column 유형(Type)과 길이(Length)를 정의한다

  • 정의된 각 Column에 대해 적용, DBMS에서 제공하는 데이터 유형 중 적절한 유형을 정의하고, 해당 데이터의 최대 길이를 파악하여 길이를 설정한다.
  • (Oracle 예시) 자주 사용되는 데이터 유형
    • CHAR: 고정길이 문자열 Data 최대 2000Byte까지 저장 가능
    • VARCHAR2: 가변길이 문자열 Data 최대 4000Byte까지 저장 가능
    • NUMBER: 38 자릿수의 숫자 저장가능
    • DATE: 날짜값 저장
    • BLOB, CLOB: Binary, Text Data 최대 4GB까지 저장 가능

반정규화(Denormalization)한다.

  • 중복 테이블 추가
    • 집계 테이블 추가
    • 진행 테이블 추가
    • 특정 부분만을 포함하는 테이블 추가
  • 테이블 조합
    • 1:1 관계의 테이블 조합
    • 1:M 관계의 테이블 조합
    • 슈퍼타입 서브타입 테이블 조합
  • 테이블 분할
    • 수직 분할
    • 수평 분할
  • 테이블 제거
    • 테이블 재정의 또는 Column의 중복화로 더 이상 액세스 되지 않는 테이블이 발생할 경우 제거
  • 칼럼의 중복화
    • 일반적으로 조인 프로세스를 줄이기 위해 칼럼의 중복을 허용

 

 

 

참고자료

  • NCS학습모듈 - 데이터입출력구현
반응형