데이터베이스 설계
- 개념적 데이터베이스 설계 : 정보 사용의 모델을 개발하는 과정으로 실세계를 바탕으로 추상화 모델을 구축한다.
- 엔티티-관계 (ER: Entity-Relationship)모델이 주로 사용된다.
- 물리적 데이터베이스 설계 : 물리적인 저장 장치와 접근 방식을 다룸
- 엔티티 : 서로 구분이 되며 조직체에서 DB에 나타내려는 객체를 의미
- 관계 : 두 개 이상의 엔티티들 간의 연관
- 프로세스 : 관련된 활동
- 무결성 제약조건 : 데이터의 정확성과 비즈니스 규칙을 의미
- 요구사항 수집 및 분석 : 기존의 문서 조사, 인터뷰나 설문 → 엔티티, 애트리뷰트, 관계 파악
- 데이터 처리에 관한 요구사항 → 연산의 종류, 데이터의 양 분석
- 개념적 설계 : 조직체에서 사용되는 정보의 모델을 구축
- 사용자의 요구사항 명세로부터 개념적 스키마가 만들어짐
- ER모델과 같은 높은 추상화 수준의 데이터 모델을 기반으로 구조 명시
- 엔티티 타입, 애트리뷰트 도메인, 키 애트리뷰트를 결정
- DBMS 선정 : 기술적, 정치적, 경제적 요인을 검토하여 선정
- 논리적 설계 : 개념적 스키마에 알고리즘을 적용해 논리적 스키마를 생성, 스키마로 사상하는 과정
- 물리적 설계 : 응답 시간, 트랜잭션 처리율 등의 성능 기준으로 요구사항을 만족시키는 구조를 결정
- 트랜잭션 설계 : 완성될 DB에서 동작할 응용 프로그램에 대한 설계를 진행
- 실세계에 독립적으로 존재하며 고유하게 식별이 가능한 객체
- 생각이나 개념과 같이 추상적인 것도 있다.
- 엔티티 타입은 동일한 애트리뷰트들을 가진 엔티티들의 틀
- 엔티티 집합은 동일한 애트리뷰트들을 가진 엔티티들의 모임
- 엔티티 타입은 내포, 엔티티 집합은 외연에 해당된다.
- ER 다이어그램에서 직사각형으로 나타냄
- 강한 엔티티 타입 ; 자신의 키 애트리뷰트를 사용하여 고유하게 엔티티들을 식별할 수 있는 엔티티 타입
- 약한 엔티티 타입 : 키를 형성하기에 충분한 애트리뷰트들을 갖지 못한 엔티티 타입. 소유 엔티티 타입이 필요하다.
- 하나의 엔티티는 연관 애트리뷰트들의 집합으로 설명된다.
- 사원 엔티티는 사원번호, 이름, 직책, 급여 등의 애트리뷰트를 갖는다.
- 애트리뷰트의 도메인은 그 애트리뷰트가 가질 수 있는 모든 값들의 집합으로, 여러 애트리뷰트가 동일한 도메인을 공유할 수 있다.
- 키 애트리뷰트는 한 엔티티 타입 내에서 각 엔티티를 고유하게 식별한다.
- 요구사항 명세에서 명사나 형용사로 표현된다.
- ER 다이어그램에서 타원형
- 단순 애트리뷰트 : 더 이상 다른 애트리뷰트로 나눌 수 없는 애트리뷰트
- 복합 애트리뷰트 : 두 개 이상의 애트리뷰트로 이루어진 애트리뷰트. 밀접히 연관된 것을 모아놓은 것이다.
- 단일 값 애트리뷰트 : 각 엔티티마다 정확히 하나의 값을 갖는 애트리뷰트 (대부분)
- 다치 애트리뷰트 : 각 엔티티마다 여러 개의 값을 가질 수 있는 애트리뷰트. 이중선 타원으로 표현한다.
- 저장된 애트리뷰트 : 다른 애트리뷰트와 독립적으로 존재하는 애트리뷰트
- 유도된 애트리뷰트 : 다른 애트리뷰트의 값으로부터 얻어진 애트리뷰트. 점선 타원으로 표현한다.
- 1:1 관계, 1:N 관계, M:N 관계
- 관계 실선 위에 최솟값과 최댓값이 표시된다. * (아스테리카) 표시는 n을 나타낸다.
- 엔티티 타입과 단일 값 애트리뷰트
- 단계1_정규 엔티티 : 각 정규 엔티티 타입에 있던 단순 애트리뷰트를 릴레이션에 포함, 복합 애트리뷰트는 단순 애트리뷰트만 포함
- 단게2_약한 엔티티 : 약한 엔티티 타입에 있던 단순 애트리뷰트를 릴레이션에 포함, 부분 키와 소유 엔티티의 기본 키를 외래키로 포함시켜 기본 키 구성
- 2진 관계 타입
- 단계3_2진 1:1관계 : 둘 중 하나의 릴레이션에서 기본 키를 나머지 릴레이션의 외래 키로 포함시키거나 다른 릴레이션을 만들어 포함
- 단계4_2진 1:N관계 : 1측의 릴레이션 기본 키를 N측의 외래 키로 포함시킨다.
- 단계5_2진 M:N관계 : 릴레이션을 새로 생성해서 M과 N측의 기본 키를 외래 키로 포함시킨다. 외래 키의 조합이 새로운 릴레이션의 기본 키가 된다.
- 3진 이상 관계 타입
- 단계6 : 새로운 릴레이션을 생성하고, 각 참여 릴레이션의 기본 키를 새로운 릴레이션의 외래 키로 포함. 이 외래 키의 조합이 기본 키가 된다.
- 1:N:N의 경우는 1측의 기본 키를 참조하는 외래 키를 제외한 나머지 외래 키들의 조합이 기본 키가 된다.
- 다치 애트리뷰트
- 각 다치 애트리뷰트에 대해 새로운 릴레이션을 생성
'코딩을 배우자 > SQL로' 카테고리의 다른 글
[DB] 3. 관계 대수와 SQL (3) (0) | 2017.11.04 |
---|---|
[DB] 3. 관계 대수와 SQL (2) (0) | 2017.11.04 |
[DB] 3. 관계 대수와 SQL (1) (0) | 2017.11.03 |
[DB] 2. 관계 데이터 모델과 제약조건 (0) | 2017.11.02 |
[DB] 1. 데이터베이스 시스템 (0) | 2017.10.17 |