DB/데이터베이스 개론

[DataBase] 데이터베이스 설계

진이최고다 2023. 10. 20. 23:42

데이터베이스 언어 SQL

 

 

 

 

데이터베이스 설계 단계


데이터베이스 설계는 사용자들의 요구 사항을 고려하여 데이터베이스를 생성하는 과정이다. 사용자가 데이터베이스를 사용하면 구조를 변경하기어렵다. 데이터의 일관성과 무결성을 유지하면서 사용자가 이해하기 쉽고 접근하기 편해야 한다.

 

[1단계 : 요구 사항 분석]

요구 사항 분석 단계에서 파악한 사용자의 요구 사항은 이후의 설계 단계에서 중요하게 사용되고, 구축된 데이터베이스의 품질을 결정짓는 중요한 기준이 된다.

[2단계 : 개념적 설계]

개념적 설계 단계에서 요구 사항 분석 단계의 결과물인 요구 사항 명세를 개념적 데이터 모델로 변환하는 일을 개념적 모델링이라 한다. E-R 다이어그램과 같이 개념적 데이터 모델로 표현한 결과물을 개념적 구조 또는 개념적 스키마라 한다.

[3단계 : 논리적 설계]

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

[4단계 : 물리적 설계]

물리적 설계 단계에서는 응답 시간을 최소화하고 저장 공간을 효율적으로 활용하면서 데이터베이스 시스템의 처리 능력을 향상시킬 수 있도록 물리적 구조를 설계해야한다. 물리적 설계의 결과물인 물리적 구조를 내부 스키마 또는 물리적 스키마라 한다.

[4단계 : 구현]

데이터베이스 구현 단계에서는 이전 설계 단계의 결과물을 기반으로 DBMS에서 SQL로 작성한 명령문을 실행하여 데이터베이스를 실제로 생성한다.

 

 

 

요구 사항 분석


데이터베이스 설계의 시작인 요구 사항 분석 단계에서는 사용자들이 원하는것이 무엇인지 분석한다. 데이터베이스에 대한 사용자들의 요구 사항을 수집하고 분석하여, 개발할 데이터베이스의 용도를 명확히 파악하는게 목적이다. 사용자 요구 사항의 내용을 명세로 작성하여 이후 설계 단계에서 기초 자료로 활용한다.

 

 

 

개념적 설계


개념적 설계에서는 요구 사항 분석 단계의 결과물을 개념적 데이터 모델을 이용하여 표현한다. 일반적으로 개념적 데이터 모델을 E-R 모델을 이용한다. 요구사항 분석 결과를 기반으로 개체를 추출한 후 개체 간의 관계를 결정하여 E-R 다이어그램으로 표현한다.

 

[개체와 속성 추출]

개념적 설계 단계에서 가장 먼저 수행해야 하는 기본 작업은 요구 사항 분석 단계의 결과물에서 개체를 추출하는 일이다. 개체부터 결정해야 속성과 관계도 결정할 수 있다. 개체는 중요 데이터를 지닌 사람이나 사물을 의미하며, 개념적 모델링을 하는데 중요한 요소이다.


[관계 추출]

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


[E-R 다이어그램 작성]

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

 

 

 

논리적 설계


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

 

[릴레이션 스키마 변환 규칙]

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

개체의 이름을 릴레이션의 이름으로 하고, 개체가 가진 속성도 릴레이션 속성으로 변환한다.

개체가 가지고 있는 속성이 복합 속성인 경우에는 복합 속성을 구성하고 있는 단순 속성만 릴레이션의 속성으로 변환한다. 개체가 가지고 있는 키 속성은 기본키로 변환한다.


규칙 2 : 다대다 n:m 관계는 릴레이션으로 변환한다

관계의 이름을 릴레이션의 이름으로 하고, 관계의 속성도 릴레이션의 속성으로 그대로 변환한다.

관계를 맺고있는 개체가 무엇인지 중요하므로, 관계를 맺고 있는 개체들을 규칙 1에 따라 변환한 후, 릴레이션들의 기본키를 관계 릴레이션에 포함시키고 외래키로 지정한다. 그리고 이 외래키들을 조합하여 관계 릴레이션의 기본키로 지정한다.


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

관계는 릴레이션으로 변환하지 않고 외래키로만 표현한다. 약한 개체가 참여하는 일대다1:n 관계는 일반 개체가 참여하는 경우와 다르게 처리해야한다.

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

 

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


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

E-R 다이어그램에 있는 일대일 관계도 일대다 관계처럼 릴레이션으로 변환하지 않고 외래키로만 표현한다. 이때 데이터의 중복을 피하려면 개체가 관계에 참여하는 특성에 따라 다르게 처리해야한다.

규칙 4-1 : 일바적인 일대일 관계는 외래키를 서로 주고받는다.
규칙 4-2 : 일대일 관계에 필수적으로 참여하는 개체의 릴레이션만 외래키로 받는다
모든 개체가 일대일 관계에 필수적으로 참여하면 릴레이션 하나로 합친다


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

관계 데이터 모델의 릴레이션에서는 다중 값을 가지는 속성을 허용하지 않는다. 그러므로 E-R 다이어그램에 있는 다중 값 속성은 그 속성을 가지고 잇는 개체에 해당하는 릴레이션이 아닌 별도의 릴레이션을 만들어 포함시킨다. 새로 만들어진 릴레이션의 이름은 자유롭게 정하고, 기본키는 다중 값 속성과 외래키로 조합하여 지정한다.


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

논리적 설계를 위해 E-R 다이어그램을 릴레이션 스키마로 변환할 때는 변환 규칙을 순서대로 적용하면 된다. 

 

 

 

물리적 설계와 구현


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

CREATE TABLE 회원
  (
     회원아이디 VARCHAR(20) NOT NULL,
     비밀번호    VARCHAR(20) NOT NULL,
     이름          VARCHAR(20) NOT NULL,
     나이          INT,
     직업          VARCHAR(20),
     등급          VARCHAR(20) NOT NULL DEFAULT 'silver',
     적립금       VARCHAR(20) NOT NULL DEFAULT 0,
     PRIMARY KEY(회원아이디),
     CHECK (나이 >= 0),
     CHECK (등급 IN ('sivler', 'gold', 'vip'))
  );

 

 

 

 

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

 

데이터베이스 개론 | 김연희 - 교보문고

데이터베이스 개론 | 기초 개념부터 빅데이터까지 큰 흐름이 보이는 데이터베이스 교과서데이터베이스로 첫 항해를 떠나는 이들에게 지도와 돛이 되어주는 책입니다. 마인드맵으로 생소한 개

product.kyobobook.co.kr