티스토리 뷰

728x90
SMALL

데이터베이스 설계 단계

관계 데이터 모델을 기반으로 두고 데이터베이스를 설계할 때는 두 가지 방법을 주로 사용한다. 첫째는 이 장에서 알아볼 E-R 모델과 릴레이션 변환 규칙을 이용한 데이터베이스 설계이고, 둘째는 9장에서 알아볼 정규화를 이용한 데이터베이스 설계다. 두 방법의 설계 과정물은 유사하기 때문에 상황에 따라 설계하면 된다.

E-R 모델과 릴레이션 변환 규칙을 이용한 데이터베이스 설계는 5단계로 진행된다. 한 방향으로만 순서대로 진행되지는 않으며, 오류를 발견하여 변경이 필요하면 이전 단계로 되돌아가 설계 내용을 변경할 수도 있다.


1단계 : 요구 사항 분석

데이터베이스의 용도파악

결과물 : 요구 사항 명세서

2단계 : 개념적 설계

DBMS에 독립적인 개념적 구조 설계

결과물 : 개념적 스키마(E-R 다이어그램)

3단계 : 논리적 설계

DBMS에 적합한 논리적 구조 설계

결과물 : 논리적 싀마(릴레이션 스키마)

4단계 : 물리적 설계

DBMS로 구현 가능한 물리적 구조 설계

결과물 : 물리적 스키마

5단계 : 구현

SQL 문을 작성한 후 이를 DBMS에서 실행하여 데이터베이스 생성

요구 사항 분석

요구 사항 분석에서는 먼저 데이터베이스를 사용할 주요 사용자의 범위부터 결정해야 한다. 사용자의 범위가 정해지면 해당 사용자가 조직에서 수행하는 업무를 분석해야 한다.

개념적 설계

데이터베이스 설계의 두 번째 단계인 개념적 설계에서는 요구 사항 분석 단계의 결과물을 개념적 데이터 모델을 이용하여 표현한다. 개념적 설계 단계에서 사용자의 요구 사항을 개념적 데이터 모델로 변환하는 작업을 개념적 모델링이라고 한다. 그리고 E-R 다이어그램과 같이 개념적 모델로 표현된 개념적 설계의 결과물을 개념적 구조 또는 개념적 스키마라고 한다.

요구 사항의 분석 결과를 E-R 모델을 이용해 개념적 모델링을 하려면 먼저 E-R 모델의 핵심 요소인 개체를 추출해야 한다. 그다음 각 개체의 주요 속성과 키 속성을 선별하고, 개체 간의 관계를 결정해야 한다. 개체, 속성, 관계를 선별하는 작업이 모두 완료되면 그 결과를 E-R 다이어그램으로 표현한다.

개체와 속성 추출 -> 관계 추출 -> E-R 다이어그램 작성

개체와 속성 추출

개념적 설계 단계에서 가장 먼저 수행해야 하는 기본 작업은 요구 사항 분석 단계의 결과물에서 개체를 추출하는 일이다. 개체부터 결정해야 속성과 관계도 결정할 수 있다. 개체는 현실 세계에서 어떤 조직을 운영하는데 꼭 필요한 사람, 사물과 같이 구별되는 모든 것을 의미한다. 즉, 개체는 저장할 만한 가치가 있는 중요 데이터를 지닌 사람이나 사물 등이며, 개념적 모델링을 하는데 가장 중요한 요소다.

일반적으로 개체는 문장에서 명사로 표현된다. 단, 조직의 업무 처리와 관련이 적은 일반적이고 광범위한 의미의 명사는 제외한다. 그리고 의미가 같은 명사가 여러 개면 대표 명사 하나만 선택한다. 이때 명사 중에는 개체가 아닌 속성으로 분류되는 단어도 존재한다.

추출한 개체에는 박스를 치고, 속성에는 밑줄을 그어 표시하자

개념적 설계의 최종 결과물은 E-R 다이어그램으로 작성해야 한다. 따라서 요구 사항 명세서에서 추출한 개체와 속성을 E-R 다이어그램으로 표현해두는 것이 좋다. E-R 다이어그램에서 개체는 사각형으로, 속성은 타원형으로 표현한다. 그리고 키 속성은 이름에 밑줄을 그어 표시한다.

ex) 한빛마트 개체, 속성 추출하기

관계 추출

개체와 속성을 추출하고 나면 개체 간의 관계를 결정할 수 있다. 관계는 개체 간의 의미 있는 연관성이다. 일반적으로 관계는 요구 사항을 표현한 문장에서 동사로 표현된다. 단, 조직의 업무 처리와 관련하여 개체 간의 연관성을 의미 있게 표현한 동사만 선택하고, 의미가 같은 동사가 여러 개이면 대표 동사 하나만 선택한다.

관계를 추출한 후에는 추출한 관계에 대한 매핑 카디널리티와 참여 특성을 결정한다. 매핑 카디널리티는 관계를 맺고 있는 두 개체에서, 각 개체 인스턴스가 관계를 맺고 있는 상대 개체의 개체 인스턴스 개수를 의미한다. 먼저 매핑 카디널리티를 기준을 추출한 관계를 일대일, 일대다, 다대다 중 하나로 분류한다. 그리고 개체가 관계에 필수적으로 참여하고 있는지 선택적으로 참여하고 있는지를 의미하는 참여 특성을 결정한다.

ex) 한빛마트 관계 추출하기

E-R 다이어그램 작성

논리적 설계

논리적 설계 단계에서는 DBMS에 적합한 논리적 데이터 모델을 이용해서, 개념적 설계 단계에서 생성한 개념적 스키마를 기반으로 논리적 스키마를 설계한다. 즉, DBMS에 독립적인 개념적 스키마를 기반으로 하여 개발에 사용할 DBMS가 처리할 수 있는 데이터베이스의 논리적 구조를 설계하는 것이 논리적 설계 단계의 목표다. 

논리적 설계 단계에서는 관계 데이터 모델을 이용하여 개념적 설계 단계의 결과물인 E-R 다이어그램을 관계 데이터 모델의 릴레이션 스키마, 즉 테이블 스키마로 변환하는 작업을 한다.

논리적 설계 단계에선E-R 다이어그램을 논리적 데이터 모델로 변환하는 작업을 논리적 모델링 또는 단순히 데이터 모델링이라 한다. 그리고 릴레이션 스키마와 같이 논리적 데이터 모델로 표현된 논리적 설계의 결과물을 논리적 구조 또는 논리적 스키마라고 한다.

E-R 다이어그램을 릴레이션 스키마로 변경하는 것은 쉽지 않다. 다섯가지 규칙을 순서대로 적용하면 쉽게 변환할 수 있다. 이렇게 설계한 후에 9장에서 배울 정규화 과정을 통해 이상 현상이 발생하지 않도록 검증하는 작업을 수행하는 것이 좋다.

릴레이션 스키마 변환 규칙

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

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

릴레이션 스키마는 그림으로 표현해도 되고 릴레이션의 이름과 속성의 이름을 나열해도 된다.

규칙 2 : 다대다 관계는 릴레이션을 변환한다.

관계의 이름을 릴레이션의 이름으로 하고, 관계의 속성도 릴레이션의 속성으로 그대로 변환한다. 단, 관계를 맺고 있는 개체가 무엇인지 중요하므로, 관계를 맺고 있는 개체들을 규칙 1에 따라 변환한 후 이 릴레이션들의 기본키 릴레이션에 포함시키고 외래키로 지정한다. 그리고 이 외래키들을 조합하여 관계 릴레이션의 기본키로 지정한다. (필요하다면 별도의 기본키를 지정할 수도 있다.)

규칙 3 : 일대다 관계는 외래키로 표현한다.

E-R 다이어그램에 있는 일대다 관계는 릴레이션으로 변환하지 않고 외래키로만 표현한다. 단, 약한 개체가 참여하는 일대다 관계는 일반 개체가 참여한느 경우와 다르게 처리해야 하므로 규칙3을 2개의 세부 규칙으로 나누어 적용한다.

  규칙 3-1 : 일반적인 일대다 관계는 외래키로 표현한다.

   규칙 3-2 : 약한 개체가 참여하는 일대다 관계는 외래키를 포함해서 기본키로 지정한다.

   일반 개체들이 참여하는 일대다 관계와 다른 점은, 외래키가 포함된 릴레이션에서 이 외래키를 포함하여 기본키를         지정해야 한다는 점이다.

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

이때, 데이터의 중복을 피하려면 개체가 관계에 참여하는 특성에 따라 약간 다르게 처리해야 하므로 규칙4를 3개의 세부 규칙으로 나누어 적용한다.

   규칙 4-1 : 일반적인 일대일 관계는 외래키를 서로 주고 받는다.

   규칙 4-2 : 일대일 관계에 필수적으로 참여하는 개체의 릴레이션만 외래키를 받는다.

   규칙 4-3 : 모든 개체가 일대일 관계에 필수적으로 참여하면 릴레이션 하나로 합친다.

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

기본 변환 규칙에서는 다대다 관계만 릴레이션을 변환하였지만 나머지 관계도 릴레이션으로 변환할 수 있다. 특히 속성이 많은 관계는 관계 유형에 상관없이 릴레이션으로 변환하는 것을 고려할 수 있다.

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

논리적 설계를 위해 E-R 다이어그램을 릴레이션 스키마로 변환할 때는 변환 규칙을 순서대로 적용하면 된다. 해당되지 않는 규칙은 제외하고 다음으로 넘어간다.

물리적 설계와 구현

논리적 설계 단계에서 릴레이션 스키마의 설계를 완료하면, 물리적 설계 단계에서는 하드웨어나 운여체제의 특성을 고려하여 필요한 인덱스의 구조나 내부 저장 구조 등에 대한 물리적인 구조를 설계한다. 그리고 마지막으로 DBMS를 이용해 SQL 문을 작성하고 이를 실행시켜서 데이터베이스를 실제로 생성하면 데이터베이스 개발이 완료된다.

 

728x90
LIST

' > 데이터베이스개론' 카테고리의 다른 글

10. 회복과 병행 제어  (0) 2020.12.07
9. 정규화  (0) 2020.12.07
7. 데이터베이스 언어 SQL  (0) 2020.12.05
6. 관계 데이터 연산  (0) 2020.12.04
5. 관계 데이터 모델  (0) 2020.12.04
댓글
공지사항