Preface
이번 장에선 데이터 모델링에 대해 공부했다.
E-R 다이어그램은 소프트웨어 공학에서 이미 배웠던 내용이라 복습하는 기분으로 지난 포스팅을 살펴보며 쉽게 이해하고 넘어갈 수 있었다.
개념적인 내용들을 도식화하는 개념적 모델링은 생각보다 단순한 작업인 것 같은데, 이를 실제 DB에 저장하는 논리적 모델링 작업은 어떻게 진행될지 궁금하다.
이론적인 부분을 하루 빨리 마무리한 후 실제로 데이터베이스를 구축하여 나만의 웹 사이트를 만들어보고 싶다.
1. 데이터 모델링과 데이터 모델의 개념
- 데이터 모델링: 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정
1) 개념적 모델링: 현실 세계의 특정 개념에 대한 중요 데이터를 추출하여 개념 세계로 옮기는 작업
2) 논리적 모델링: 개념 세계의 데이터를 DB에 저장할 구조를 결정하고 이 구조로 표현하는 작업
- 데이터 모델: 데이터 모델링의 결과물을 표현하는 도구
1) 개념적 데이터 모델: 주로 개체-관계 모델을 사용
2) 논리적 데이터 모델: 주로 관계 데이터 모델을 사용
- 데이터 모델의 구성 요소
1) 데이터 구조
2) 연산
3) 제약 조건
- 사용하는 데이터 모델에 다라 현실 세계를 표현하는 개념적 구조나 논리적 구조의 모습이 달라진다.
2. 개체-관계 모델
- 개체-관계 모델: 개체(entity)와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현하는 방법
- 개체-관계(E-R) 다이어그램: 현실 세계를 개체-관계 모델을 이용해 개념적으로 모델링하여 그림으로 표현한 것
- 개체: 현실 세계에서 구별되는 모든 것
→ 개념적으로만 존재하는 것도 개체가 될 수 있다.
- 개체 타입: 개체를 고유의 이름과 속성들로 정의한 것
- 개체 인스턴스(어커런스): 개체를 구성하고 있는 속성이 실제 값을 가짐으로써 실체화된 개체
- 개체 집합: 특정 개체 타입에 대한 개체 인스턴스들을 모아 놓은 것

- 대응 관계
1) 개체 → 레코드(행: low/Tuple)
2) 속성 → 필드(열: column)
3) 개체 타입 → 레코드 타입
4) 개체 인스턴스 → 레코드 인스턴스
- 속성: 개체가 가지고 있는 고유의 특성
→ 의미 있는 데이터의 가장 작은 논리적 단위

- 속성의 분류
1) 단일 값 속성: 특정 개체를 구성하는 속성의 값이 하나인 경우
→ ex) 이름, 적립금 등의 속성
2) 다중 값 속성: 속성이 값을 여러 개 가질 수 있는 경우
→ ex) 연락처 속성
3) 단순 속성: 의미를 더 분해할 수 없는 경우
4) 복합 속성: 의미를 분해할 수 있어 값이 여러 개의 의미를 포함하는 경우
5) 유도 속성: 값이 별도로 저장되는 것이 아니라 기존의 다른 속성 값에서 유도되어 결정되는 속성
→ cf. 저장 속성: 실제로 값을 저장하고 있는 것
6) 널 속성: 널 값이 허용되는 속성
→ 널 값: 아직 결정되지 않았거나 모르는 값
7) 키 속성: 개체 집합에 존재하는 각 개체 인스턴스들을 식별하는 데 사용되는 속성
- 관계: 개체와 개체가 맺고 있는 의미 있는 연관성
1) 개체 집합들 사이의 대응 관계(매핑)을 의미한다.
2) 관계도 속성을 가질 수 있다.
→ 관계를 맺음으로써 발생하는 중요한 데이터
- 관계의 유형
1) 이항 관계
2) 삼항 관계
3) 순환 관계: 개체 타입 하나가 자기 자신과 맺는 관계
- 매핑 카디널리티: 관계를 맺는 두 개체 집합에서, 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수
1) 일대일 관계
2) 일대다 관계
3) 다대다 관계
- 존재 종속: 개체 A가 존재해야 개체 B가 존재할 수 있고, A가 삭제되면 B도 삭제되는 관계의 종속
1) 약한 개체: 다른 개체의 존재 여부에 의존적인 개체 B
→ 구별자(구분키): 약한 개체를 구별해주는 속성
2) 강한 개체: 다른 개체의 존재 여부를 결정하는 개체 A
- E-R 다이어그램
1) 개체: 사각형
2) 속성: 타원
3) 다중값 속성: 이중 타원
4) 유도 속성: 점선 타원
5) 키 속성: 밑줄
6) 관계: 마름모
7) 필수적 참여 관계: 이중선
8) 약한 개체: 이중 사각형
9) 약한 개체와 강한 개체가 맺는 관계: 이중 마름모

3. 논리적 데이터 모델
- 데이터 스키마: 논리적 데이터 모델로 표현된 DB의 논리적 구조
- 계층 데이터 모델
1) DB의 논리적 구조가 트리 형태이다.
2) 일대다 관계만 표현할 수 있다.
3) 두 개체 사이의 관계를 하나만 정의할 수 있다.
4) 루트 역할을 하는 개체가 존재한다.
5) 사이클이 존재하지 않는다.
- 네트워크 데이터 모델
1) DB의 논리적 구조가 그래프 혹은 네트워크 형태이다.
2) 일대다 관계만 표현할 수 있다.
→ 각 개체를 '오너'와 '멤버'라 부르고 이 관계를 오너-멤버 관계라 부른다.
3) 두 개체 사이의 관계를 여러 개 정의할 수 있어 관계를 이름으로 구별한다.
- DB를 구축하는 환경에 맞는 DBMS를 선택한 후 이를 지원하는 논리적 데이터 모델을 선택해야 한다.
'DB & SQL > 데이터베이스 개론' 카테고리의 다른 글
관계 데이터 연산 (0) | 2022.02.13 |
---|---|
관계 데이터 모델 (0) | 2022.02.11 |
데이터베이스 시스템 (0) | 2022.01.26 |
데이터베이스 관리 시스템 (0) | 2022.01.24 |
데이터베이스 기본 개념 (1) | 2022.01.23 |
댓글