1단계 : 요구 사항 분석
2단계 : 개념적 설계
3단계 : 논리적 설계
4단계 : 물리적 설계
5단계 : 구현
설계 1단계 : 요구 사항 분석
목적 : 사용자의 요구 사항을 수집하고 분석하여 데이터베이스의 용도를 파악
결과물 : 요구 사항 명세서
설계 2단계 : 개념적 설계
목적 : DBMS에 독립적인 개념적 스키마 설계 , 개념적 데이터 모델을 이용해 개념적 구조로 표현, 일반적으로 ER모델 이용
결과물 : 개념적 스키마(ERD)
주요 작업 : 요구 사항 결과를 기반으로 중요한 개체를 추출하고 개체 간의 관계를 결정하여 ERD으로 표현
작업 과정
step 1 개체와 속성 추출
step 2 관계 추출
step 3 ERD로 표현
설계 3단계 : 논리적 설계
목적 : DBMS에 적합한 논리적 스키마 설계, 개념적 스키마를 논리적 데이터 모델을 이용해 논리적 구조로 표현
결과물 : 논리적 스키마-릴레이션 스키마
주요 작업 : 개념적 설계 단계의 결과물인 ERD를 릴레이션 스키마로 변환, 변환 후 데이터 타입, 길이, 널값 허용 여부, 기본 값, 제약 조건 등을 세부적으로 결정 후 결과를 문서화 시킴
ERD를 릴레이션 스키마로 변환하는 규칙
규칙1 : 모든 개체는 릴레이션으로 변환한다. (개체의 이름 -> 릴레이션 이름)
규칙 2 🎯 : 다대다 (n:m) 관계는 릴레이션으로 변환한다. (관계의 이름->릴레이션 이름)
규칙 3 : 일대다(1:n) 관계는 외래키로 표현한다.
규칙 3-1 : 일반적인 일대다 관계는 외래키로 표현한다.
규칙 3-2 약한 개체가 참여하는 일대다 관계는 외래키를 포함해서 기본키로 지정한다.
규칙 4 : 일대일(1:1) 관계는 외래키로 표현한다.
규칙 4-1 : 일반적인 일대일 관계는 외래키를 서로 주고 받는다.
규칙 4-2 : 일대일 관계에 필수적으로 참여하는 개체의 릴레이션만 외래키를 받는다.
규칙 4-3 : 모든 개체가 일대일 관계에 필수적으로 참여하면 릴레이션 하나로 합친다.
규칙 5 : 다중 값 속성은 릴레이션으로 변환한다.
순서대로 적용하되 해당되지 않는 규칙은 제외
물리적 설계 - 테이블 명세서 작성
테이블 명세서 : 릴레이션 스키마에 대한 설계 정보를 기술한 문서
실제 데이터베이스 구축을 위한 테이블, 뷰, 인덱스, 용량 등을 설계
구현
SQL로 작성한 명령문을 DBMS에서 실행하여 데이터베이스를 실제로 생성
데이터베이스 설계란 데이터베이스의 구조, 즉 스키마를 설계하는 과정이다.
데이터 모델링이란 현실세계를 데이터의 관점에서 파악하여 개념적인 모델로 표현하는 단계를 말하며 논리적 데이터베이스 설계라고도 말한다.
물리적 데이터베이스 설계에서는 실제 데이터베이스 구축을 위한 테이블, 뷰, 인덱스, 용량 등을 설계한다.
ER 다이어그램은 Entity-Relationship Diagram의 줄임말이며 데이터베이스 설계 결과를 표현하기 위한 도구이다.
ER 다이어그램은 엔티티들과 엔티티 안에 포함될 속성들(PK,FK) , 엔티티들 간의 관계를 선으로 표시한 도표이다.
엔티티란 업무의 관심 대상이 되는 정보를 갖고 있거나 그에 대한 정보를 관리할 필요가 있는 유형, 무형의 사물(개체)을 말한다.
속성이란 엔티티에서 관리해야 할 최소 단위의 정보 항목을 말하며, 테이블의 컬럼으로 구현된다.
관계란 두 엔티티 사이의 관련성을 나타내는 용어이다. 1:1 , 1:N 관계와 선택, 필수 관계가 있다.
공유 속성으로 관계를 맺는 두 엔티티에서 자식 엔티티의 외래 식별자(FK)는 부모 엔티티의 주식별자(PK)를 참조한다.
하나의 속성이 주식별자가 될 수 없는 경우는 여러 개의 속성을 묶어서 주식별자로 지정해야 한다.
데이터베이스 정규화란 설계된 데이터베이스 안에 존재하는 데이터의 중복을 제거하여 데이터의 무결성을 유지하는 과정을 말한다.
1:1 관계에 있는 두 엔티티는 하나로 합칠 수 있으므로 둘로 나누어야 할 필요가 있는지를 검토한다.
반정규화는 정규화와 대비되는 개념으로 어느 정도의 중복은 감수하고 데이터베이스의 성능을 향상시키고자 정규화의 반대 방향으로 작업한다.
실제 데이터베이스 구축을 위한 테이블, 뷰, 인덱스, 용량 등을 설계하는 단계를 말한다. - 물리적 데이터베이스 설계
응용 SW 개발을 위해 기반이 되는 데이터베이스의 구조, 즉 스키마를 설계하는 과정을 말한다. -데이터베이스 설계
데이터베이스의 설계 결과를 표현하기 위해 일반적으로 사용되는 도구이다. - ER다이어그램
현실세계를 데이터의 관점에서 파악하여 개념적인 모델로 표현하는 단계를 말하며 논리적 데이터베이스 설계라고도 말한다. - 데이터모델링
업무의 관심 대상이 되는 정보를 갖고 있거나 그에 대한 정보를 관리할 필요가 있는 유형, 무형의 사물(개체)을 말한다. - 엔티티