개인공부/db

6장 (데이터베이스 설계)

minseokiim 2023. 7. 20. 15:23

* 데이터베이스 설계

:여러 필드로 구성된 테이블을 어떠한 물리적 형태의 데이터베이스로 저장할 것인지 결정하는 것

 

1.     요구사항 분석 : 핵심 정보 및 제한 조건 도출

2.     개념적 설계 : 독립적이면서 추상화된 표현방식으로 기술 (개념적 스키마 생성)

3.     논리적 설계 : 테이블 스키마 생성

4.     물리적 설계 : 효율적이고 구현가능한 물리적 데이터베이스 구조 설계

 

 

1.     개념적 설계

:개념적 모델(개체관계모델:ER model)을 이용하여 개념적 스키마(개체관계 모델:ERD)생성

추상적인 설계도면을 그리는 단계

ER model -> ERD

2.     논리적 설계

:논리적 모델을 이용하여 논리적 스키마(테이블 스키마, 데이터베이스 스키마: 관계형 테이블과 필드 집합 정의) 생성

관계형 데이터모델 -> 데이터베이스 스키마

3.     물리적 설계

:필드의 데이터 타입이나 인덱스와 같은 테이블들의 저장 구조(물리적 스키마) 결정

가장 단순한 물리적 설계: 필드에 대한 데이터 타입만 결정

 

 

* 설계과정의 고려 사항

-충실성 : 필요로 하는 모든 정보 표현

-단순성 : 단순하고 쉽게 이해할 수 있는 구조

-중복의 최소화 : 일관성을 해치는 결과 피하기 위해

-제약조건의 표현 : 데이터 종류뿐만 아니라 데이터들이 갖추어야 할 특성 동시에 포함

 

* 개체 : 물리적 혹은 추상적으로 존재하는 실체, 독립적으로 존재하면서 분별할 수 있는 특성 지님

동일한 특성을 갖는 개체들은 개체집합 구성

개체관계모델에서는 개체의 특성을 속성이라고 표현 (관계형 데이터모델의 필드와 같은 개념)

관계형 데이터 모델과 달리, 다중 값 속성(하나의 속성인데 여러 값이 들어 감 , ex) family_member ) , 복합 속성 정의(하나의 속성에 세부 속성 구성, ex) city ) 가능

 

* 관계 : 개체 간의 대응성을 의미

관계집합 : 동일한 유형의 관계들의 집합, 속성 정의 가능

 

* 대응수

1.     일 대 일

2.     일 대 다 ex) course개체집합과 class개체집합 간의 대응수

3.     다 대 일

4.     다 대 다 ex) student개체집합과 class개체집합 간의 대응수

 

* 속성의 완성도

1.     약성 개체집합 : 기본키를 형성하는데 필요한 속성을 갖지 못한 경우 ex) class개체집합

2.     강성 개체집합 : 기본키를 가지고 있는 일반적인 개체집합 ex) course개체집합

-      class개체집합에서 {year, semester, division}은 동일 교과목내에서만 유일, course개체집합의 존재에 의해 결정됨 (종속관계)* 

-      약성 개체집합과 관계 맺는 강성 개체집합은 항상 다대일 관계

전체참여 : 약성 개체집합의 모든 개체가 다대일 관계에 빠짐없이 참여 (<->부분참여)

약성 개체집합 쉽게 판단하는 법 : 의존하는 강성 개체집합이 존재하는가를 보기

 

* 부분키 (구별자) : 약성 개체집합에서 강성 개체집합의 특정 개체에서 유일한 값을 갖는 속성집합

약성 개체집합의 기본키 : 자신의 부분키 + 강성 개체집합의 기본키 로 구성

 

 

* 논리적 설계 : 테이블 스키마로 변환하는 방법

 

1.     강성 개체집합의 변환

기본키: 개체집합에서 정의한 키를 그대로 사용

2.     약성 개체집합의 변환

의존관계에 있는 강성 개체와의 연관을 통해 표현

기본키 : 약성 부분키 + 강성 기본키

3.     관계집합의 변환

각 개체집합의 기본키에 해당하는 모든 필드로 구성

4.     자기연관 관계집합의 변환

 

5.     테이블의 중복과 결합

(1)   중복 -> 제거

i.             약성 - 강성 관계 -> 여기서의 관계집합 테이블은 삭제

(2)   결합할 수 있는 것들은 결합

i.             다대일 관계

:관계 테이블 삭제 후, m:1에서 m의 개체집합에 1의 기본키를 외래키로 추가

ii.            다대다 관계

:결합 불가능

iii.           일대일 관계

: 결합, 한 테이블에 상대 테이블의 기본키 추가

 

6.     다중값 속성의 변환

 

A’ :A에 포함된 원자값을 저장하기 위해 정의된 필드

 

7.     복합 속성의 변환

:namefamily_name, given_name으로 구성되는 복합 속성일 때 name속성은 무시하고 얘네의 필드만 정의 하면 됨

8.     일반화 관계의 변환

i.             상위 개체집합을 유지하는 경우 (member에는 학생 교수 교직원 등등)

memberresident_idstudent, professor의 외래키가 됨

ii.            상위 개체집합을 유지하지 않는 경우 (전체참여 , member에는 학생 교수)

student professorresident_idname필드 넣기

'개인공부 > db' 카테고리의 다른 글

8장 (물리적 저장 구조와 인덱스)  (0) 2023.07.20
7장 (함수적 종속과 정규화)  (0) 2023.07.20
5장 (무결성과 보안)  (0) 2023.07.20
3장 (오라클)  (0) 2023.07.20
1-2장 (관계형 데이터베이스)  (0) 2023.07.20