[DB 구축] 데이터모델링 - 세부사항1
계획 - 분석 - 설계 - 구축
1. 요구 사항 분석 (계획)
: 기존의 문서를 조사, 인터뷰나 설문 조사 등을 통해서 얻은 내용으로 사용자의 요구 사항을 간단하게 기술
: 요구 사항 분석 결과물로 요구 사항 명세서 또는 업무 흐름도가 구해짐
2. 논리적 설계 단계 (분석)
: 요구 사항 분석의 결과물을 근거로 데이터 모델링을 해야함.
: 사용자들의 요구사항 명세로부터 개념적 스키마가 만들어짐
: 특정 DB에 구애되지 않고 골격을 구축하는 작업 단계
: 대표적 모델링 기법 = 개체 관계 모델
3. 개체 관계 모델(분석, ERD)
: 개체 관계 모델(Entity Relational Diagram)의 약어로 ERD는 DB의 전체 구조를 쉽게 나타낼 수 있습니다.
: 사용자와 함께 업무를 분석하고 검토할 때도 이용
: Entity 끼리의 관계를 이해하기위해 정해진 표기법에 따라 그림으로 표시
: ERD를 발전시켜 요즘은 EER(Enhanced Entity Relationship) 모델이 DB 설계 과정에 널리 사용되고 있습니다.
: 기본적 구문으로 Entity, Relationship, Attribute가 있고 기타 구문으로는 Cardinality 비율, 참여 제약 조건 등이 있다.
1) 엔티티 Entity
: Entity는 현실세계를 표현할 수 있는 항목.
: 레코드(Record)와 같은 의미
: 관리 대상이 되는 독립적 특성을 갖는 사물이나 사건, 개념을 말함
: 실존하거나 의미 있는 정보 단위
: 요구 사항 명세서에서 명사, ERD에서 사각형.
: 하나의 개체 다누이 별로 DB에서 관리함
: Entity는 추후 물리적 모델링 과정에서 table이 됨
2) 애트리뷰트 Attribute
: 성질이나 상태.
: Entity가 가질 수 있는 특성
: Data의 가장 작은 논리적인 단위 (=필드)
: 유일한 값을 가지는 attribute = 기본 키 (Primary Key)
: 추후 물리적 모델링 과정에서 column이 됨.
3) 관계 Relationship
: entity 간의 연관성을 나타냄
: 요구 사항 명세서에서 동사형으로 표현
: 관계가 있는 Entity를 실선으로 연결, 마름모 사각형 안에 관계를 표시
- 관계의 차수 degree
: 관계로 연결된 entity 개수
- 카디날리티 비율 Cardinality Ratio
: entity를 이루는 각 값이 관계에 참여할 수 있는 수
: 흔히 1:1, 1:N, M:N으로 구분
4) 릴레이션 구조
: 데이터들을 표로 표현한 것
- 튜플(Tuple)
: 릴레이션을 구성하는 각각의 행
: 파일 구조에서 레코드
- 도메인(Domain)
: 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자(atomic) 값들의 집합
- 차수 / 카디널리티
: 차수는 attribute의 개수
: cardinality는 튜플의 개수
5) 키(key)의 개념 및 종류
: 튜플(Tuple)을 찾거나 순서대로 정렬할 때 기준이 되는 애트리뷰트(Attribute)
후보 키(Candidate Key) |
- 릴레이션을 구성하는 속성들 중 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합. - 기본 키로 사용할 수 있는 속성들 - 릴레이션에 있는 모든 튜플에 대해 유일성과 최소성을 만족시켜야 함 |
기본 키(Primary Key) |
- 후보 키 중에서 선택한 키(Main Key) - 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성 - Null 값을 가질 수 없음 - 기본 키로 정의된 속성에서는 동일한 값이 중복되어 저장될 수 없음 |
대체 키(Alternate Key) |
- 후보 키가 둘 이상일 때 기본 키를 제외한 나머지 후보 키들을 말함 - =보조 키 |
슈퍼 키(Super Key) |
- 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족 못 시킴 |
외래 키(Foreign Key) |
- 관계를 맺고 있는 릴레이션 1,2에서 1이 참조하고 있는 2의 기본키와 같은 1 릴레이션의 속성 - 외래키로 지정되면 참조테이블의 기본 키에 없는 값은 입력할 수 없음 |
6) 무결성
: 개체 무결성은 릴레이션에서 튜플을 구분하기 위해서 기본 키를 구성하는 속성은 널 값이나 중복값을 가질 수 없어야 한다는 조건을 의미.