본문 바로가기
Computer Science/Database

4-1장 데이터 모델링

by 인 체리 2022. 7. 13.

데이터베이스 설계

 - 사용자의 다양한 요구 사항을 고려하여 DB를 생성하는 과정

 - E-R 모델과 릴레이션 변환 규칙을 이용한 설계의 과정

 

DB의 5단계 설계 단계

설계 과정 중 오류가 발견되면 이전 단계로 되돌아가 설계 내용 변경 가능

4단계는 기술, 5단계는 sql에 관련되어 있으므로 핵심 단계인 1,2,3 단계를 집중적으로 볼 예정

 

1단계 요구사항 분석 

 - DB의 용도 파악
 - 결과물 : 요구사항 명세서

 

2단계 개념적 설계

 - 현실 세계에 있는 것을 사람의 머리로 이해할 수 있도록 하는 것

 - DBMS에 독립적인 개념적 구조 설계

 - 결과물 : 개념적 스키마 (E-R 설계 단계)

 

3단계 논리적 설계

 - DBMS에 적합한 논리적 구조 설계

 - 결과물 : 논리적 스키마 (릴레이션 스키마)

 

4단계 물리적 설계

 - DBMS로 구현 가능한 물리적 구조 설계

 - 결과물 : 물리적 스키마

 

5단계 구현

 - SQL문을 작성한 후 이를 DBMS에서 실행하여 DB 생성

 

데이터 모델링 

 - 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정

 

2단계 데이터 모델링

 1) 개념적 데이터 모델링

   - 현실 세계의 중요 데이터를 추출하여 개념 세계로 옮기는 작업

 2) 논리적 데이터 모델링

   - 개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현하는 작업

 

데이터 모델

 - 데이터 모델링의 결과물을 표현하는 도구

 1) 개념적 데이터 모델

   - 사람의 머리로 이해할 수 있도록 현실 세계를 개념적 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구

     ex) 개체- 관계 모델

 2) 논리적 데이터 모델

   - 개념적 구조를 논리적 모델링하여 DB의 논리적 구조로 표현하는 도구

     ex) 관계 데이터 모델

 

개체 - 관계 모델 (E-R model)

 - 피터 첸이 제안한 개념적 데이터 모델

 - 개체와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현

 - 핵심 요소 : 개체 속성 관계

 

개체 - 관계 다이어그램 (Entity - Relationship diagram)

 - 개체 - 관계 모델을 이용해 현실 세계를 개념적으로 모델링한 결과물을 그림으로 표현한 것

 

개체 

 - 현실 세계에서 조직을 운영하는 데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것

 - 저장할 가치가 있는 중요 데이터를 가지고 있는 사람이나 사물, 개념, 사건 등

 - 다른 개체와 구별되는 이름을 가지고 있고, 각 개체만의 고유한 특성이나 상태, 즉 속성을 하나 이상 가지고 있음

 ex ) 서점에 필요한 개체 : 고객, 책

 - 파일 구조의 레코드와 대응됨

 

개체 타입

 - 개체를 고유의 이름과 속성들로 정의한 것

 - 파일 구조의 record type에 대응

 

개체 인스턴스

 - 개체를 구성하고 있는 속성이 실제 값을 가짐으로써 실체화된 개체

 - 개체 어커런스(Entity occurrence)라고도 함

 - 파일 구조의 record occurrence에 대응됨

 

개체 집합

 - 특정 개체 타입에 대한 개체 인스턴스들을 모아놓은 것

 

속성

 - 개체나 관계가 가지고 있는 고유의 특성

 - 의미있는 데이터의 가장 작은 논리적 단위

 - 파일 구조의 field와 대응됨

 - E-R 다이어그램에서 타원으로 표현하고 타원 안에 이름 표기

 

속성의 분류

단일 값 속성

 - 값을 하나만 가질 수 있는 속성 

  ex) 고객 개체의 이름

 

다중 값 속성

 - 값을 여러 개 가질 수 있는 속성

   ex ) 고객 개체의 연락처

 - E-R diagram에서 이중 타원으로 표현

 

단순 속성

 - 의미를 더는 분해할 수 없는 속성

    ex) 책 개체의 이름, ISBN, 가격 속성

 

복합 속성

 - 의미를 분해할 수 있는 속성

   ex) 고객 개체의 주소 속성 (도, 시, 동, 우편번호)

 

유도 속성

 - 기존의 다른 속성의 값에서 유도되어 결정되는 속성

 - 값이 별도로 저장되지 않음

   ex) 책 개체의 가격과 할인률 속성으로 계산되는 판매 가격 속성

 - E-R diagram에서 점선 타원으로 표현 

 

널 속성 (null attribute)

 - 널 값이 허용되는 속성

 

널(null) 값

 - 아직 결정되지 않거나 모르는 값 또는 존재하지 않는 값

 - 공백과 0 과는 의미가 다름

 

키 속성 (key attribute)

 - 각 개체 인스턴스를 식별하는 데 사용되는 속성

 - 모든 개체 인스턴스의 키 속성 값이 다름 (예를 들어 이름은 같을 수 있으므로 key로 사용하지 않음)

 - 둘 이상의 속성들로 구성되기도 함

  ex) 고객 개체의 고객 아이디 속성

 - E-R 다이어그램에서 밑줄로 표현

 

관계

 - 개체와 개체가 맺고 있는 의미 있는 연관성

 - 개체 집합들 사이 대응 관계, 즉 mapping의 의미

 - E-R diagram에서 마름모로 표현

 

관계의 유형 : 관계에 참여하는 개체 타입의 수 기준

1) 이항 관계 : 개체 타입 두 개가 맺는 관계

2) 삼항 관계 : 개체 타입 세 개가 맺는 관계

3) 순한 관계 : 개체 타입 하나가 자기 자신과 맺는 관계

 

관계의 유형 : mapping cardinality 기준

 - 1:1. 1:n, n:n

 

mapping cardinality

 - 관계를 맺는 두 개체 집합에서 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수

 

1:1 관계

 - 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 하나와 관계를 맺을 수 있고, 개체 B의 각 개체 인스턴스도 개체 A의 개체 인스턴스 하나와 관계를 맺을 수 있음

 ex) 남자 김철수 - 여자 이영희

 

1:n 관계

 - 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 여러 개와 관계를 맺을 수 있지만, 개체 B의 각 개체 인스턴스는 개체 A의 개체 인스턴스 하나와 관계를 맺을 수 있음

 ex) 부서 K와 사원 A, B, C

 

n:n 관계

 - 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 여러 개와 관계를 맺을 수 있고, 개체 B의 각 개체 인스턴스도 개체 A의 개체 인스턴스 여러 개와 관계를 맺을 수 있음

 ex) 사람 A, B, C와 책 K, L, M

 

관계의 참여 특성

 1) 필수적 참여 (전체 참여)

      - 모든 개체 인스턴스가 관계에 반드시 참여해야 함

      - E-R diagram에서 이중선으로 표현

 2) 선택적 참여 (부분 참여)

      - 개체 인스턴스 중 일부만 관계에 참여해도 되는 것을 의미

 

관계의 종속성

 1) 약한 개체 

    - 다른 개체의 존재 여부에 의존적인 개체

 2) 오너 개체

    - 다른 개체의 존재 여부를 결정하는 개체 

 오너 개체와 약한 개체는 일반적으로 일대다의 관계를 가지고, 약한 개체는 오너 개체와의 관계에 필수적으로 참여함

 약한 개체는 오너 개체의 키를 포함하여 키를 구성

 E-R diagram에서 약한 개체는 이중 사각형으로 표현하고 약한 개체가 오너 개체와 맺는 관계는 이중 마름모로 표현

=> 직원 개체와 부양 가족 개체 사이의 부양 관계인데, 직원 개체는 오너 개체이고 부양 가족 개체는 약한 개체이다

 

E-R diagram 정리

사각형 : 개체

마름모 : 관계

타원 : 속성

이중 사각형 : 약한 개체

이중 마름모 : 약한 개체가 오너 개체와 맺는 관계

타원에 밑줄 : key 속성

점선 타원 : 유도 속성

'Computer Science > Database' 카테고리의 다른 글

5장 관계 데이터 모델  (0) 2022.07.16
4-2장 DB 원리와 응용  (0) 2022.07.16
3장 DBS  (0) 2022.07.09
2장 DBMS  (0) 2022.07.07
1장 Database 기본 개념  (0) 2022.07.07