1. 논리 데이터 모델 - 물리 데이터 모델 변환 용어
분석 설계
논리 데이터 모델링 -> 물리 데이터 모델링
ER Model Physical Model
Entity Table
Attribute Column
Primary UID Primary Key
Secondary UID Unique Key
Relationship Foreign Key
Business Constraints Check Constraints
2. 엔터티 - 테이블 변환
1) 테이블 설명
- 테이블, 로우, 컬럼, 기본키, 외래키
2) 서브 타입 변환
종류 |
구성요건 |
장점 |
단점 |
통합 |
주로 서브타입에 적은 량의 속성이나 관계를 가진 경우 |
- 데이터 액세스가 좀 더 간편 - 뷰를 활용하여 각 서브타입만을 액세스 하거나 수정 가능 - 수행속도가 좋은 경우가 많음 - 서브타입 구분 없는 임의 집합의 가공이 용이함 - 다수의 서브타입을 통합한 경우 조인 감소 효과 큼 - 복잡한 처리를 하나의 sql로 통합하기 용이 |
- 특정 서브타입의 Not Null 제한 불가 - 테이블의 칼럼 수 증가 - 테이블의 블록 수 증가 - 처리시 마다 서브타입의 구분 필요가 많음 - 인덱스 크기 증가 |
각각의 테이블로 |
주로 서브타입에 많은 양의 속성이나 관계를 가진 경우 적용 |
- 각 서브타입의 속성들의 선택 사양이 명확한 경우 유리 - 처리시마다 서브타입 유형 구분 불필요 - 전체 테이블 스캔 시 유리 - 단위 테이블의 크기 감소 |
- 서브타입 구분 없이 데이터 처리하는 경우 Union 발생 - 처리 속도가 길어지는 경우가 많음 - 트랜잭션 처리 시 여러 테이블을 처리하는 경우 증가 - 복잡한 처리의 SQL 통합이 어려워 짐 - 부분 범위 처리가 불가능해질 수 있음 - 여러 테이블을 합친 뷰는 조회만 가능 - UID 유지 관리가 어려움 |
아크관계 |
- 전체 데이터 처리가 빈번하게 발생하는 경우 - 서브타입의 처리는 주로 독립적으로 발생할 경우 - 테이블을 통합했을 때 컬럼 수가 너무 많아지는 경우 - 서브타입의 컬럼 수가 많아지는 경우 - 트랜잭션이 주로 슈퍼타입에서 발생하는 경우 - 슈퍼타입의 처리 범위가 넓고 빈번하여 단일 테이블 클러스터링을 해야할 경우 |
|
|
3. 속성 - 컬럼 변환
일반 속성 변환
- 컬럼의 명칭은 속성의 명칭과 일치할 필요는 없으나, 프로그래머와 사용자의 혼돈을 피하기 위하여 가능한 표준화된 약어를 사용
- SQL 예약어는 피한다
- 컬럼 명칭은 짧은 것이 좋다
- 가능하다면 표본 데이터를 입력시킨다.
Primary UID -> 기본키 변환
- 키 형태란에 엔터티의 Primary UID에 속하는 속성들에 PK를 표시
- PK로 표시된 모든 컬럼들은 Nulls / Unique 란에 반드시 NN, U 표시
- 여러 개의 컬럼으로 UID가 구성되어 있는 경우는 각각의 컬럼에 NN, U1 표시
- 또 다른 Unique Key가 있다면 U2 표시
Primary UID(관계의 UID Bar) -> 기본키 변환
- 테이블에 외래키 컬럼을 포함
- PK의 일부분으로 표시
Secondary UID -> Unique 키 변환
- 변환 절차는 기본적으로 Primary UID 변환 절차와 동일
관계 |
특성 |
변환절차 |
주의점 |
|
1:M |
M쪽 관계의 형태에 따라 관계 컬럼의 선택사양 결정 |
- 1에 있는 PK를 M의 FK로 변환 1) FK의 명칭 결정 2) 키 형태란에 FK 표시 3) 필수 관계일 경우 NN표시 - 표본 데이터 추가 - UID Bar가 있는 경우는 전 단계에서 실시 |
부모쪽이 Mandatory 관계일 때의 주의 사항 - 자식쪽의 레코드가 반드시 하나 이상은 되어야만 부모 쪽의 레코드를 생성가능 - 자식쪽 레코드를 삭제할 경우에는 전체를 다 삭제할 수는 없고 반드시 하나 이상의 자식 레코드를 남겨둬야 한다. 또는 자식, 부모 레코드를 동시에 삭제해야 한다. |
|
1:1 |
- 논리 모델에서는 자주 발생하지 않음 - 물리 모델로 변환하는 과정은 관계의 선택사양에 따라 다른 방법으로 적용 |
- 선택 테이블의 PK를 필수 테이블의 FK로 변환 - NN 표시 |
- 모든 FK 부분은 Unique Key가 필수 - 필수-선택 관계 : 필수가 FK를 가짐 - 선택-선택 관계 : 빈번하게 사용되는 테이블이 FK를 가짐 - 필수-필수 관계 : 어느 쪽에 FK를 가질지 선택 필요 |
|
1:M 순환 관계 |
- 최상위 관계 속성은 항상 선택인 형태 - 하지만 경우에 따라서는 최상위의 관계 속성에 특정 값을 지정하는 경우도 존재 |
- 해당 테이블 내에 FK 컬럼을 추가 - FK는 동일 테이블 내의 다른 로우의 PK 컬럼 참조 - FK 컬럼 명칭은 가능한 관계 명칭 반영 - FK는 결코 Not Null이 될 수 없음 |
|
|
아크 |
FK 분리방법 |
- 각각의 관계를 관계 컬럼으로 생성 - FK 제약 조건을 생성할 수 있는 장점 - 각각의 FK 컬럼들이 선택이어야 한다. - 추가적인 체크 제약조건 |
|
|
FK 결합방법 |
- 각각의 관계를 하나의 관계 컬럼으로 생성 - 구분 컬럼 추가 - 단점 1) FK 제약조건을 생성할 수 없다. 2) 각각의 관계를 선택적으로 구분할 수 있는 구분컬럼 추가 필요 |
|
|
4. 데이터 타입 선택
- 개념
- 문자타입
- 숫자타입
- 날짜타입
5. 데이터 표준 적용
- 개념 : 표준 용어, 표준 도메인, 표준 명명규칙
- 데이터 표준 적용 대상 : 데이터베이스, 스토리지 그룹, 테이블스페이스, 테이블, 컬럼, 인덱스, 뷰
- 데이터 표준 적용 방법
'Data Architecture' 카테고리의 다른 글
반정규화 - 물리 데이터 모델링 (0) | 2021.04.05 |
---|---|
물리 데이터 모델링 (0) | 2021.04.05 |
엔터티 상세화 - 논리 데이터 모델 (0) | 2021.04.05 |
속성 정의 - 논리 데이터 모델 (0) | 2021.04.05 |
논리 데이터 모델링 이해 (0) | 2021.04.05 |