1. DB설계 방법

DB 설계 단계는 위의 그림과 같습니다.

  1. 실세계 - 요구사항 수집 분석
    • 먼저 실제 세계에서 어떤 시스템을 구축할 것인지에 대한 요구사항을 수집합니다.
    • 요구사항에 대해 어떤 데이터들이 필요한지, 어떤 기능들이 필요한지 분석합니다. 
  2. 개념적 설계
    • ER 다이어그램을 통해 요구사항을 개념적으로 표현합니다.
  3. 논리적 설계
    • 관계 모델(Relation model)을 통해 개념적 설계를 논리적으로 표현합니다.
  4. 물리적 설계
    • 실제 디스크와 같은 물리 저장장치에 데이터를 저장할 수 있도록 표현합니다.

이 때, 개념적 설계와 논리적 설계에서 작성하는 ER 다이어그램과 Relation을 표현하는 것은 특정 DBMS에 관계가 없습니다.

즉, MySQL이든 Oracle이든 설계하는 방법이 같다는 의미입니다.

그런데 물리적 설계는 특정 DBMS를 전제로 한 모델링이기 때문에 DBMS에 의존적이어야 합니다.





2. DB설계 예시

예를 들어, "대학교 학사 관리 시스템" DB를 구축한다고 가정해보겠습니다.

앞에서 살펴본 단계에 따라 학사 관리 시스템에는 어떤 정보들이 필요할 지 분석한 후, 개념적 설계 및 논리적 설계하는 방법을 간단하게 살펴보겠습니다.



1) 현실 세계로부터 요구사항을 분석 및 수집

요구사항을 분석해보니 학생과 교과목에 대한 정보만 있으면 되고, 학생과 교과목에는 다음과 같은 정보들이 있으면 될 것으로 파악되었습니다.

  • 학생은 학번, 이름, 학년의 정보를 갖습니다.
  • 과목은 학수번호, 과목명의 정보를 갖습니다.

지금은 이렇게 간단하게 했지만, 요구사항을 파악하는 작업은 굉장히 중요합니다.

설계를 마쳤는데, 빠진 부분이 있거나 추가해야할 부분이 있다면 설계를 처음부터 다시해야 할만큼 치명적이기 때문이죠.





2) 개념적 설계 

개념적 설계는 ER 다이어그램( Entity Relationship Diagram )을 통해 모델링하는 단계입니다.

ER 다이어그램은 다음에서 자세히 알아볼 것이며, 지금은 어떤 느낌인지 간단하게 살펴보도록 하겠습니다.


학생1, 학생2, 학생3을 각각 하나의 객체(Entity)라고 할 때, 각 개체들이 공통적으로 갖는 데이터 항목을 Entity type이라고 합니다.



ER 다이어그램은 객체간의 관계( Entity Relation )를 표현한 것으로서, 위에서 예로 든 "학사 관리 시스템"을 ER 다이어그램으로 표현하면 아래와 같습니다.


Takes는 학생이 강의를 수강한다는 관계를 표현한 것으로서, 이를 Relationship Type이라고 합니다.

이렇게 객체간의 관계를 다이어그램으로 표현한 것을 ER 다이어그램이라 하며, 이 단계를 개념적 설계 단계라고 합니다.





3) 논리적 설계

논리적 설계는 개념적 설계에서 표현한 ER 다이어그램을 테이블로 표현하는 단계를 말합니다.

여기서 말하는 테이블은 행과 열이 있는 표를 의미합니다.

SQL을 작성하기 위한 테이블 정의라고 보면 됩니다.


"학사 관리 시스템"에서 ER 다이어그램을 바탕으로 논리적 설계를 해보면 다음과 같습니다.


각 Entity가 테이블로 대응됐고, Relationship Type도 테이블로 표현됐습니다.





4) 물리적 설계

이제 테이블의 구조, 즉 스키마가 정리됐으니 사용하는 DBMS의 SQL로 테이블을 생성해야 합니다.

MySQL의 경우 Student 테이블을 다음과 같은 명령어로 생성할 수 있겠네요.

CREATE TABLE Student (
    student_no INT NOT NULL AUTO INCREMENT PRIMARY KEY,
    student VARCHAR(30) NOT NULL,
    year int NOT NULL
); 





이상으로 DB를 설계하는 단계에 대해 알아보았습니다.

테이블을 설계한다는 것은 데이터를 조직화 하여 저장할 수 있다는 것을 의미합니다.

그러므로 DB 설계가 잘못되면 데이터를 알맞게 저장할 수 없으므로, 요구사항 분석을 통해 테이블을 잘 정의하고 그들 간의 관계를 잘 명시해야 합니다.


다음 글에서는 요구사항을 분석해서 설계하는 첫 단계인 ER 다이어그램에 대해 알아보도록 하겠습니다.