DB 구축
- 데이터
- DB
- DBMS
DB 설계 단계
1) 요구사항 분석 - DB의 용도를 파악한다.
2) 개념적 설계 - DBMS에 독립적인 개념적 구조 설계
3) 논리적 설계 - DBMS에 적합한 논리적 구조 설계
4) 물리적 설계 - DBMS로 구현 가능한 물리적 구조 설계
5) 구현 - DBMS에서 SQL문을 이용해 DB 생성
요구사항 분석
주요작업: 사용자의 범위 결정, 업무 분석, 요구사항 수집, 요구사항 명세서 작성
개념적 설계
주요작업: 개체 추출, 관계 설정, E-R 다이어그램 작성
논리적 설계
주요작업: E-R 다이어그램 -> 릴레이션 스키마로 변환, 제약 조건 설정, 결과 문서화
E-R 다이어그램 -> 릴레이션 스키마 변환 규칙
1) 모든 개체는 릴레이션으로 변환한다.
2) 다대다(n:m) 관계는 릴레이션으로 변환한다.
3) 일대다(1:n) 관계는 외래키로 표현한다.
4) 일대일(1:1) 관계는 외래키로 표현한다.
5) 다중값 속성은 독립적인 릴레이션으로 변환한다.
1) 모든 개체는 릴레이션으로 변환한다.
복합 속성은 복합 속성을 구성하는 단순 속성만 속성으로 변환한다.
(복합 속성의 예: 주소)
(단순 속성의 예: 우편 주소, 기본 주소, 상세 주소)
2) 다대다(n:m) 관계는 릴레이션으로 변환한다.
- 관계 릴레이션에 n-side, m-side의 기본키를 외래키로 참조하고 기본키로 설정한다.
- n-side, m-side의 기본키를 외래키로 참조하고 기존 관계 릴레이션의 후보키를 기본키로 설정한다.
3) 일대다(1:n) 관계는 외래키로 표현한다.
- 일반적인 1:n 관계는 외래키로 표현한다.
- 1-side의 기본키를 n-side에 외래키로 참조한다.
- 약한 개체가 참여하는 1:n 관계는 외래키를 포함해서 기본키를 지정한다.
- n-side의 기본키 = (기존 기본키, 1-side 기본키)
4) 일대일(1:1) 관계는 외래키로 표현한다.
- 일반적인 1:1 관계는 외래키를 서로 주고 받는다.(불필요한 데이터 중복이 발생할 가능성이 있다.)
- 필수적으로 참여하는 개체 릴레이션만 외래키를 받는다.
- 1:1 관계에서 필수로 참여하는 개체가 있다면 상대의 기본키를 외래키로 참조한다.
- 모든 개체가 필수적으로 참여하면 릴레이션을 하나로 합친다.
- 1:1 관계가 상호 필수 관계(서로 관계에 필수 참여)이면 새로운 릴레이션을 만들고 서로의 기본키를 외래키로 참조하고 기본키를 설정한다.
5) 다중값 속성*은 독립적인 릴레이션으로 변환한다.
(다중값 속성: 여러 입력이 들어갈 수 있는 속성, ex.직원 - 부하직원)
기타 고려 사항
- 모든 관계는 독립적인 릴레이션으로 변환이 가능하다.
- 순환 관계는 자신의 기본키를 외래키로 참조한다.