Summary

[데이터베이스 개론] 08장. 데이터베이스 설계

프로그래민 2022. 2. 4. 00:52
반응형

데이터베이스 설계 단계

데이터베이스를 설계할때는 사용자들의 요구 사항을 잘 분석하고, 분석한 결과를 바탕으로 데이터 베이스의 논리적, 무리적 구조를 제대로 설계하는 것이 중요하다. 이러한 관계 데이터 모델을 기반으로 두고 데이터베이스를 설계할 때는 주로 두가지 방법을 사용한다. 첫째는 E-R 모델과 릴레이션 변환 규칙을 이용한 데이터베이스 설계이고, 둘째는 정규화를 이용한 데이터베이스 설계이다. 

E-R 모델과 릴레이션 변환 규칙을 이용한 데이터베이스 설계는 다음 5단계로 이루어진다.

데이터베이스 설계 과정의 각 단계별 주요 작업과 결과물

1단계 : 요구 사항 분석

요구 사항 분석 단계어서는 조직의 구성원들이 데이터베이스를 사용하는 용도를 파악한다. 즉, 데이터베이스를 사용해 실제 업무를 처리하는 사용자에게서 필요한 데이터의 종류와 처리 방법 같은 다양한 요구 사항을 수집한다. 그 후 요구 사항을 기반으로 명세서를 작성한다.

2단계 : 개념적 설계

개념적 설계 단계에서는 요구 사항 분석 단계에서 파악한 사용자의 요구 사항을 개념적 데이터 모델을 이용해 표현한다. 일반적으로 E-R 다이어그램을 사용한다. 

3단계 : 논리적 설계

논리적 설계 단계에서는 개발에 사용할 DBMS에 적합한 논리적 데이터 모델을 이용하여 개념적 설계 단계에서 생성한 개념적 구조를 기반으로 논리적 구조를 설계한다. E-R 다이어그램을 릴레이션(테이블) 스키마로 변환하여 DBMS가 처리할 수 있도록 한다. 논리적 데이터 모델로 표현된 결과물을 논리적 구조 또는 논리적 스키마라고 한다.

4단계 : 물리적 설계

물리적 설계 단계에서는 논리적 설계 단계어서 생성된 논리적 구조를 기반으로 물리적 구조를 설계한다. 저장 장치에 적합한 저장 레코드와 인덱스의 구조등을 설계하고, 저장된 데이터와 인덱스에 빠르게 접근할 수 있는 탐색 기법 등을 정의한다. 물리적 설계의 결과물인 물리적 구조를 내부 스키마 또는 물리적 스키마라고 한다.

5단계 : 구현

구현 단계에서는 이전 설계 결과물을 기반으로 DMBS에서 SQL로 작성한 명령문을 실행하여 데이터베이스를 실제로 생성한다. 이때 사용하는 SQL문은 테이블이나 인덱스 등을 생성할 때 사용되는 데이터 정의어(DDL)이다.

모든 과정이 중요하지만 그중에서도 요구 사항 분석, 개념적 설계, 논리적 설계 단계가 데이터베이스의 설계에 있어서 핵심 단계가 된다.

 

요구 사항 분석

데이터베이스 설계의 시작인 요구 사항 분석 단계에서는 사용자들의 요구 사항을 수집하고 분석하여 개발할 데이터베이스의 용도를 명확히 파악하는 단계이다. 그리고 그것을 바탕으로 명세서를 작성하여 이후 단계에서 참고를 한다. 사용자의 범위 결정, 해당 사용자의 수행 업무 분석, 업무 데이터 조사등의 작업을 기반으로 명세서를 작성한다.

 

개념적 설계

개념적 설계에서는 요구 사항 분석 단계의 결과물을 개념적 데이터 모델을 이용하여 표현한다. 개념적 데이터 모델은 요구 사항 분석에 대한 결과물을 바탕으로 데이터베이스에 저장해둘 필요가 있다고 판단되는 데이터 요소를 추출하여 이들관의 관계를 표현한 것이며 이를 보통 개념적 구조 또는 개념적 스키마라고 하며 대표적으로 E-R 다이어그램이 있다. 보통 개체와 속성 추출, 관계 추출, E-R 다이어 그램 작성의 순서대로 진행이 된다.

개체와 속성 추출

요구 사항 명세서에서 개체와 개체의 속성을 추출한 최종 결과 예시

개념적 설계 단계에서 가장 먼저 수행하는 작업은 요구 사항 분석 단계의 결과물인 명세서에서 개체를 추출하는 작업이다. 개체는 저장할 만한 가치가 있는 중요 데이터를 지닌 사람이나 사물이며 개념적 모델링에서 중요한 요소이며 개체 부터 결정이 되어야 속성과 관계도 결정할 수 있게 된다. 보통 명세서의 명사를 기준으로 개체와 속성으로 나눌 수 있다.

 

관계 추출

요구 사항 명세서에서 관계와 관계의 속성을 추출한 최종 결과 예시

개체와 속성을 추출하고 나면 개체 간의 관계를 결정할 수 있다. 관계는 개체간의 연관성으로써 보통 명세서 기준 동사로 나타내어 진다. 관계를 추출한 후에는 추출한 관계에 대해 매핑 카디널리티와 참여 특성을 결정한다. 즉, 개체 인스턴스의 개수를 기준으로 일대일, 일대다, 다대다 등을 결정하고 필수참여인지 선택탐여인지를 결정한다.  

 

E-R 다이어그램 작성

요구 사항 명세서의 E-R 다이어그램 예시

데이터베이스에 대한 요구 사항 명세서에서 추출한 개체, 속성, 관계를 하나의 E-R 다이어그램으로 개념적 모델링하여 최종적으로 나타낼수 있다. 즉, 개념적 설계 단계의 결과물인 개념적 스키마이다.

 

논리적 설계

논리적 설계 단계에서는 DBMS에 적합한 논리적 데이터 모델을 이용하여, 개념적 설계 단계에서 생성한 개념적 스키마를 기반으로 논리적 스카마를 설계한다. 즉, DBMS에 독립적인 개념적 스키마를 기반으로 하여 개발에 사용할 DBMS가 처리할 수 있는 데이터베이스의 논리적 구조를 설계한다. 개념적 설계 단계에서의 결과물인 E-R 다이어그램을 관계 데이터 모델의 릴레이션 스키마, 즉 테이블 스키마로 변환하는 작업을 한다.

다만 E-R 다이어그램에 표현된 개체와 관계는 릴레이션으로 표현하는 방법이 다르다. 따라서 릴레이션 스키마로 변화하는 방법을 5가지로 규칙화하여 변환한다. 

릴레이션 스키마 변환 규칙

규칙 1 : 모든 개체는 릴레이션으로 변환한다

개체를 릴레이션으로 변환하는 규칙을 적용한 예

E-R 다이어그램의 각 개체를 하나의 릴레이션으로 변환한다. 개체의 이름을 릴레이션의 이름으로 하고, 개체가 가진 속성도 릴레이션의 속성으로 그대로 변환한다. 단, 개체가 가지고 있는 속성이 복합 속성인 경우에는 복합 속성을 구성하고 있는 단순 속성만 릴레이션의 속성으로 변환한다.

규칙 2 : 다대다(N:M) 관계는 릴레이션으로 변환한다

다대다 관계를 릴레이션으로 변환하는 규칙을 적용한 예

E-R 다이어그램에 있는 다대다 관계를 하나의 릴레이션으로 변환한다. 관계의 이름을 릴레이션으로 하고, 관계의 속성도 릴레이션의 속성으로 그대로 변환한다. 단, 관계를 맺고 있는 개체가 무엇인지 중요하므로, 관계를 맺고 있는 개체들을 릴레이션으로 변환후 그 릴레이션들의 기본키를 관계 릴레이션에 포함시키고 외래키로 지정한다.

규칙 3 : 일대다(1:N) 관계는 외래키로 표현한다

일반적인 개체가 참여하는 일대다 관계를 외래키로 표현하는 규칙을 적용한 예

E-R 다이어그램에 있는 일대다 관계는 릴레이션으로 변환하지 않고 외래키로만 표현한다. 즉, 관계를 맺고 있는 개체들을 릴레이션으로 변환후 그 릴레이션의 기본키를 가져와 N측 개체 릴레이션에 포함시키고 외래키로 지정한다. 다만 위의 예시와 같은 일반적인 개체에서가 아니라 약한 개체와 강한 개체의 관계, 즉 예를 들면 비행기(강한 개체)와 좌석(약한 개체)의 경우 동일하게 약한개체의 릴레이션에서 외래키를 가지지만 기본키를 정할때 이 외래키를 포함하여 기본키를 정한다. 약한 개체는 강한 개체에 따라 존재 여부가 결정되는 만큼 강한 개체의 기본키를 이용해 식별을 하게 된다.

규칙 4 : 일대일(1:1) 관계는 외래키로 표현한다

일반적인 일대일 관계를 외래키로 표현하는 규칙을 적용한 예
일대일 관계에 모든 개체가 필수적으로 참여하여 릴레이션을 통합하는 예

E-R 다이어그램에 있는 일대일 관계도 일대다 관계처럼 릴레이션으로 변환하지 않고 외래키로만 표현한다. 관계를 맺는 개체들을 릴레이션으로 변환후 변환한 릴레이션들이 서로의 기본키를 주고받아 이를 외래키로 지정한다. 이때 관계가 가지는 속성들은 관계에 참여하는 개체를 변환한 릴레이션에 모두 포함시킨다. 다만 참여 특성을 고려한다면 한쪽 릴레이션에만 가지고 있는 경우도 있다. 또한 두 릴레이션에서 모두 필수적이면 두 개체에 해당하는 두 릴레이션을 하나로 합쳐 새로운 릴레이션에서 외래키를 가지는 형태를 만들 수 있다.

규칙 5 : 다중 값 속성은 릴레이션으로 변환한다

다중 값 속성을 릴레이션으로 변환하는 규칙을 적용한 예

관계 데이터 모델의 릴레이션에서는 다중 값을 가지는 속성을 허용하지 않는다. 그러므로 E-R 다이어그램에 있는 다중 값 속성은 그 속성을 가지고 있는 개체에 해당하는 릴레이션이 아닌 별도의 릴레이션을 만들어 포함시킨다. 새로 만들어진 릴레이션에는 E-R 다이어그램에서 다중 값 속성으로 표현된 속성분 아니라 그 속성을 가지고 있는 개체이 해당하는 릴레이션의 기본키를 가져와 포함시키고 이를 외래키로 지정한다.

기타 고려 사항

기본 변환 규칙에서는 다대다 관계만 릴레이션으로 변환하였지만 일대일, 일대다 관계도 릴레이션으로 변환할 수 있다. 특히 속성이 많은 관계는 관계 유형에 상관없이 릴레이션으로 변환하는 것을 고려할 수 있다. 그리고 추가적으로 개체가 자기 자신과 관계를 맺는 순환 관계도 기본 규칙을 그래도 적용하면 된다.

 

릴레이션 스키마 변환 규칙을 이용한 논리적 설계

논리적 설계를 위해 E-R 다이어그램을 릴레이션 스키마로 변환할 때는 위의 변환 규칙을 순서대로 적용하면 된다. 그 결과 위의 E-R 다이어그램을 토대로 다음과 같은 릴레이션을 얻을 수 있다. 

릴레이션 스키마 변환 규칙이 적용된 예시

즉 위의 E-R 다이어그램은 논리적 모데링 과정을 통해 릴레이션 스키마로 변환이 된다. 다섯 가지의 변환 규칙을 순서대로 적용하여 최종적으로 변환된 릴레이션 스키마에 대해 속성의 데이터 타입과 길이, 널 값 허용 여부, 기본값, 제약조건 등을 결정하는 것 또한 논리적 설계 단계에서 수행하는 작업이다.

릴레이션 스키마의 테이블 명세서

따라서 릴레이션 스키마를 기준으로 위와 같은 테이블 명세서 작업이 최종적으로 필요하다.

 

물리적 설계와 구현

논리적 설계 단게에서 릴레이션 스키마의 설계를 완료하면, 물리적 설계 단계에서는 하드웨어나 운영체제의 특성을 고려하여 필요한 인덱스의 구조나 내부 저장 구조 등에 대한 물리적인 설계를 하고 DDL을 이용하여 SQL을 실행시켜 실세 데이터베이스 생성을 한다.

 

 

출처
데이터베이스 개론 2판 - 한빛아카데미 출판, 김연희 저
 

데이터베이스 개론 - 교보문고

[요약]①데이터베이스 기초 이론 : 1장에서 데이터베이스를, 2장에서 DBMS를 소개합니다. 3장에서는 이들을 조합한 데이터베이스 시스템을 소개합니다.②데이터 모델과 연산 : 4장에서 데이터 모

www.kyobobook.co.kr

반응형