일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 다이나믹 프로그래밍
- I/O장치
- DirectX 12
- 쓰레드
- 디자인패턴
- 병행성
- 렌더링 파이프라인
- 운영체제
- 컨디션 변수
- 락
- 타입 객체
- 다이나믹프로그래밍
- 스케줄링
- 멀티프로세서
- 프로그래머스
- 백준
- Direct12
- directx
- 영속성
- 그리디알고리즘
- DirectX12
- 그리디 알고리즘
- 병행성 관련 오류
- 자료구조
- 파일시스템 구현
- OS
- 멀티쓰레드
- 알고리즘
- codility
- 동적계획법
- Today
- Total
기록공간
3-2-15장. 논리 데이터 모델의 물리 데이터 모델 변환 - A 본문
테이블(Table)
테이블은 데이터를 저장하는 데이터베이스의 가장 기본적인 오브젝트이다.
-
테이블은 컬럼(열)과 로우(행)로 구성되며, 컬럼에는 지정된 유형에 따라 데이터가 저장됨
-
테이블의 구성 요소
-
로우(Row) : 튜플, 인스턴스, 어커런스라고도 함
-
컬럼(Column) : 각 속성 항목에 대한 값을 저장
-
기본키(Primary key)
-
기본키는 후보키 중에서 선택한 주키
-
한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성
-
-
외래키(Foreign key)
-
다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미
-
한 릴레이션에 속한 속성 A와 참조 릴레이션의 기본키인 B가 동일한 도메일 상에서 정의되었을 때의 속성 A를 외래키라고 함
-
-
엔티티(Entity)를 테이블로 변환
논리 데이터 모델에서 정의된 엔티티를 물리 데이터 모델의 테이블로 변환하는 것이다.
-
엔티티를 테이블로 변환한 후 테이블 목록 정의서를 작성한다.
-
테이블 목록 정의서 : 전체 테이블을 목록으로 요약 관리하는 문서로, 테이블 목록이라고도 한다.
-
-
변환 규칙
-
변환 시 고려사항
-
일반적으로 테이블과 엔티티 명칭은 동일하게 하는 것을 권고
-
엔티티는 주로 한글명을 사용하지만 테이블은 소스 코드의 가독성을 위해 영문명을 사용
-
메타 데이터 관리 시스템에 표준화된 용어가 있을 때는 메타에 등록된 단어를 사용하여 명명
-
슈퍼타입/서브타입을 테이블로 변환
슈퍼타입/서브타입은 논리 데이터 모델에서 이용되는 형태이므로 물리 데이터 모델을 설계할 때는 슈퍼타입/서브타입 테이블로 변환해야 한다.
슈퍼타입 기준 테이블 변환
슈퍼타입 기준의 테이블 변환은 서브타입을 슈퍼타입에 통합하여 하나의 테이블로 만드는 것이다.
-
서브타입에 속성이나 관계가 적을 경우에 적용하는 방법으로, 하나로 통합된 테이블에는 서브타입의 모든 속성이 포함되어야 함
-
장점
-
데이터의 액세스가 상대적으로 용이
-
뷰를 이용하여 각각의 서브타입만을 액세스하거나 수정할 수 있음
-
서브타입 구분이 없는 임의 집합에 대한 처리가 용이
-
여러 테이블을 조인하지 않아도 되므로 수행 속도가 빨라짐
-
SQL 문장 구성이 다양해짐
-
-
단점
-
테이블 컬럼이 증가하므로 디스크 저장 공간이 증가
-
처리마다 서브타입에 대한 구분이 필요한 경우가 많이 발생
-
인덱스 크기의 증가로 인덱스의 효율이 떨어짐
-
서브타입 기준 테이블 변환
서브타입 기준의 테이블 변환은 슈퍼타입 속성들을 각각의 서브타입에 추가하여 서브타입들을 개별적인 테이블로 만드는 것이다.
-
서브타입에 속성이나 관계가 많이 포함된 경우 적용
-
장점
-
각 서브타입 속성들의 선택 사양이 명확한 경우에 유리
-
처리할 때마다 서브타입 유형을 구분할 필요가 없음
-
여러 개의 테이블로 통합하므로 테이블당 크기가 감소하여 전체 테이블 스캔시 유리
-
-
단점
-
수행 속도가 감소할 수 있음
-
복잡한 처리를 하는 SQL의 통합이 어려움
-
부분 범위에 대한 처리가 곤란해짐
-
여러 테이블을 통합한 뷰는 조회만 가능
-
UID(Unique Identifier, 식별자)의 유지 관리가 어려움
-
개별타입 기준 테이블 변환
개별타입 기준의 테이블 변환은 슈퍼타입과 서브타입들을 각가의 개별적인 테이블로 변환하는 것이다.
-
슈퍼타입과 서브타입 테이블들 사이에느 각각 1:1 관계가 형성된다.
-
개별타입 기준 테이블 변환을 적용하는 경우
-
전체 데이터에 대한 처리가 빈번한 경우
-
서브타입의 처리가 대부분 독립적으로 발생하는 경우
-
통합하는 테이블의 컬럼 수가 많은 경우
-
서브타입의 컬럼 수가 많은 경우
-
트랜잭션이 주로 슈퍼타입에서 발생하는 경우
-
슈퍼타입의 처리 범위가 넓고 빈번하게 발생하여 단일 테이블 클러스터링이 필요한 경우
-
-
장점
-
저장 공간이 상대적으로 적음
-
슈퍼타입 또는 서브타입 각각의 테이블에 속한 정보만 조회하는 경우 문장 작성이 용이
-
-
단점
-
슈퍼타입 또는 서브타입의 정보를 같이 처리하면 항상 조인이 발생하여 성능이 저하
-
속성을 컬럼으로 변환
논리 데이터 모델에서 정의한 속성을 물리 데이터 모델의 컬럼으로 변환한다.
일반 속성 변환
-
속성과 컬럼은 명칭이 반드시 일치할 필요는 없으나, 개발자와 사용자 간 의사소통을 위하여 가능한 한 표준화된 약어를 사용하여 일치시키는 것이 좋음
-
컬럼명은 SQL의 예약어 사용을 피해야함
-
컬럼명은 SQL의 가독성을 높이기 위해 가능한 한 짧게 지정
-
복합 단어를 컬럼명으로 사용할 때는 미리 정의된 표준을 따름
-
테이블의 컬럼을 정의한 후에는 한 로우(Row)에 해당하는 샘플 데이터를 작성하여 컬럼의 정합성을 검증
관계를 외래키로 변환
논리 데이터 모델에서 정의된 관계는 기본키와 이를 참조하는 외래키로 변환한다.
관리 목적의 테이블/컬럼 추가
논리 데이터 모델에는 존재하지 않는 테이블이나 컬럼을 데이터베이스의 관리 혹은 데이터베이스를 이용하는 프로그래밍의 수행 속도를 향상시키기 위해 물리 데이터 모델에 추가할 수 있다.
데이터 타입 선택
논리 데이터 모델에서 정의된 논리적인 데이터 타입을 물리적인 DBMS의 물리적 특성과 성능을 고려하여 최적의 데이터 타입과 데이터의 최대 길이를 선택한다.
-
주요 타입에는 문자 타입, 숫자 타입, 날짜 타입이 있음
-
Oracle에서 자주 사용되는 데이터 유형
-
CHAR : 고정길이 문자열 Data 최대 2000Byte 까지 저장 가능
-
VARCHAR2 : 가변길이 문자열 Data 최대 4000Byte 까지 저장 가능
-
NUMBER : 38자릿수의 숫자 저장 가능
-
DATE : 날짜 저장
-
'자격증공부 > 정보처리기사_필기' 카테고리의 다른 글
3-3-1장. SQL의 개념 - B (0) | 2020.09.14 |
---|---|
3-2-16장. 물리 데이터 모델 품질 검토 - C (0) | 2020.09.13 |
3-2-14장. 스토리지 - B (0) | 2020.09.13 |
3-2-13장. 데이터베이스 백업 - C (0) | 2020.09.13 |
3-2-12장. 데이터베이스 보안 - 접근통제 - A (0) | 2020.09.13 |