본문 바로가기

카테고리 없음

논리 데이터 모델의 물리데이터 모델 변환

반응형

테이블  : 테이블은 데이터를 저장하는 데이터베이스의 가장 기본적이 오브젝트이다. 

*테이블은 컬럼과 로우로 구성되며, 컬럼에는 지정된 유형에 따라 데이터가 저장된다. 

 

로우 (Row) : 튜플, 인스턴스 ,어커런스라고도 한다.

컬럼 (Column) 각 속성 항목에 대한 값을 저장한다. 

기본키 (Primary key) : 기본키는 후보키 중이 센택한 주키이다 . / 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성 

외래키 (Foreign key) : 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미한다. 

                             한 릴레이션에 속한 속성 a와 참로 릴레이션의 기본키인 v가 동일한 도메인 상에서 정의 되었을                               때  속성 a를 외래 키라고 한다.

 

엔티티 (Entity )를 테이블로 변환 

-개체로 변환? 

논리 데이터 모델에서 정의된 엔티티를 물리 데이터 모델의 테이블로 변환하는 것이다.

*엔티티를 테이블로 변환한 후 테이블 목록 정의서를 작성한다. 

-테이블 목록 정의서 = 전체 테이블을 목록으로 요약 관리하는 문서로 , 테이블 목록이라고도 한다

 

변환 규칙 

 

논리적 설계 (데이터 모델링)    -   물리적설계 

엔티티 Entity                        -    테이블 (table)

속성 Attribute                      -    컬럼  (column)

주 식별자(Primary identifier)    -    기본키 (primary key)

외부 식별자(Foreign identifier) -   외래키 (foreign key)

관계 (Relationship)                -   관계(Relationship)  

 

이제 이해 되네

*변환시 고려 사항 

-일반적으로 테이블과 엔티티 명칭은 동일하게 하는 것을 권고한다. 

-엔티티는 주로 한글명을 사용하지만 테이블은 소스코드의 가독성을 위해 영문명을 사용한다. 

-메타 데이터 관리 시스템에 표준화된 용어가 있을 때는 메타에 등록된 단어를 사용하여 명명한다. 

(메타 데이터 관리 시스템) -메카 데이터 관리 시스템은 메타 데이터를 수집하거나 여러 사람이 메타 데이터를 편리하게 사용할 수 있도록 제공하는 시스템입니다. 

 

 

슈퍼타입/ 서브타입을 테이블로 변환 

-슈퍼타입/ 서브타입은 논리 데이터 모델에서 이용되는 형태이므로 물리 데이터 모델을 설계할 댸는 슈퍼 타입 . 서브카입을 테이블로 변환해야 한다. 

*슈퍼타입 . 서브타입 모델을 테이블로 변환하는 방법에는 슈퍼타입 기준 테이블 변환 /서브타입 기준 테이블 변환 , 개별타입 기준 테이블 변환이 있다 . 

 

 

 슈퍼타입 기준 테이블 변환 

슈퍼타입 기준의 테이블 변환은 서브타입을 슈퍼타입에 통합하여 하나의 테이블로 만드는 것이다. 

*서브타입에 속성이나 관계가 적을 경우에 적용하는 방법으로 ,하나로 통합된 테이블에는 서브타입의 모든 속성이 포함되어야 한다. 

 

서브 타입이 슈퍼타입에 포함되어진다고 생각하면된다. 

장점

*데이터의 액세스가 상대적으로 용이하다

*뷰를 이용하여 각각의 서브타입만을 액세스하거나 수정할 수 있다. 

*서브 타입 구분이 없는 임의 집합에 대한 처리가 용이하다 

*여러 테이블을 조인하지 않아도 되므로 수행 속도가 빨라진다. 

*SQL 문장 구성이 단순해 진다. 

 

단점

*테이블의 컬럼이 증가하므로 디스크 저장 공간이 증가한다. 

*처리마다 서브타입에 대한 구분이 필요한 경우가 많이 발생한다. 

*인덱스 크기의 증가로 인덱스의 효율이 떨어진다. 

 

 

서브타입 기준 테이블 변환 

서브타입 기준의 테이블 변환은 슈터차입 속성들을 각가의 서브타입에 추가하여 서브타입들을 개별적인 테이블로 만드는 것이다.

*서브타입의 속성이나 관계가 많이 포함된 경우 적용한다. 

 

장점 :

*각 서브타입 속성들의 선택 사양이 명확한 경우에 유리하다 .

*처리할 때 마다 서브타입 유형을 구분할 필요가 없다.

*여러 개의 테이블로 통합하므로 테이블 당 크기가 감소하여 전체 테이블 스캔시 유리하다.

 

단점: 

*수행 속도가 감소할 수 있다. 

*복잡한 처리를 하는 SQL 의 통합이 어렵다

*부분 범위에 대한 처리가 곤란해 진다. 

*여러 테이블을 통합한 뷰는 조회만 가능하다. 

*UID 유니크 식별자의 유지 관리가 어렵다 . 

 

개별 타입 기준 테이블 변환 

개별 타입 기준의 테이블 변환은 슈퍼타입과 서브타입들을 각가의 개별적인 테이블로 변환하는 것이다. 

*슈퍼터입과 서브타입 테이블들 사이에는 가각 1:1의 관계가 형성된다. 

*개별 타입 기준 테이블 변환을 적용하는 경우 

-전체 데이터에 대한 처리가 빈번한 경우 

-서브타입의 컬럼수가 많은 경우 

- 통합하는 테이블의 컬럼수가 많은 경우 

-트랜젝션이 주로 슈퍼타입에서 발생하는 경우 

-슈터파입의 처리 범위가 넓고 빈번하게 발생하여 단일 테이블 클러스터링이 필요한경우 

장점 : 저장공간이 상대적으로 작다 . 가각의 케이블에 속한 정보만 조회하는 경우 문장 작성이 용이

단점 : 슈퍼타입 또는 서브타입의 정보를 같이 처리하면 항상 조인이 발생하여 성능이 저하된다. 

 

 

속성을 컬럼으로 변환 

논리 데이터 모델에서 정의한 속성을 물리 데이터 모델의 컬럼으로 변환한다. 

일반 속성 변환 

*속성과 컬럼은 명칭이 반드시 일치할 필요는 없으나, 개발자와 사용자 간의 의사소통을 ㅜ이해 가능한 표준화된 약어를 사용하여 일치시키는 것이 좋다 . 

*컬럼명은 SQL 예약어 사용은 피한다

*컬럼명은 SQL의 가독성을 높이기 위해 가능한 하 짧게 지정한다. 

*복합 단어를 컬럼며으로 사용할 댸는 미리 정의도니 표준을 따른다. 

*테이블의 컬럼을 정의한 후에는 한 로우에 해당하는 샘플 데이터를 작성하여 컬럼의 정합성을 검증한다. 

일반 속성변화

 

Primary UID 를 기본키로 변환 

 

Primary UID를 기본키로 변환 

다른 엔티티와의 관계로 인해 생성도니 Primary UID는 물리 데이터 모델의 기본키로 만든다 

 

Secondary (Alternate) UID를 유니크키로 변환 

 

관계를 외래키로 변환 

논리 데이터모델에서 정의된 관계는 기본키와 이를 참조하는 외래키로 변환한다. 

*다음 개체 A,B로 이루어진 E-R 모델을 관계 테이블로 변환하는 방법이다. 

-1:1관계 : 개체 A의 기본키를 개체 B의 외래키로 추가하거나 개체B의 기본키를 개체 A의 외래키로 추가하여 표현한다. 

 

-1:M 관계 : 개체 A의 기본키를 개체 B의 외래키로 추가하여 표현하거나 별도의 테이블로 표현한다. 

 

-N:M 관계 : 릴레이션 A와 B의 기본키를 모두 포함한 별도의 릴레이션으로 표현한다. 이때 생성된 별도의 리레이션을 고교차 리레이션( Intersection Relation) 또는 교차 엔티티 ( intersection Entity)라고 한다. 

 

 

-1:M 순환 관계: 개체 A에 개체 A의 기본키를 참조하는 외래키 컬럼을 추가하여 표현한다.  데이터의 계층 구조를 표현하기 위해 주로 사용한다.

 

 

관리 목적의 테이블 컬럼 추가 

논리 데이터 모델에는 본재하지 않는 테이블이나 컬럼을 데이터 베이스의 관리 혹은 데이터베이스를 이용하는 프로그래밍의 수행 속도를 향상시키기 위해 물리 데이터 모델에 추가할 수 있다 .

예시 ; 시스템등록일자 ,시스템 번호

 

데이터 타입 선택 

논리데이터 모델에서 정의된 논리적인 데이터 타입을 물리적은 DBMS의 물리적 특성과 성능을 고려하여 최적의 데이터 티입과 데이터의 최대 길이를 선택한다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

 

 

 

 

반응형