개발하는 자몽

4. 개념적 데이터 모델링 본문

Database

4. 개념적 데이터 모델링

jaamong 2022. 1. 12. 16:33
 

데이터베이스의 원리와 응용

본 강의에서는 데이터베이스 입문자들에게 꼭 필요한 데이터베이스 기초 이론, 데이터 모델과 연산, SQL, 데이터베이스 설계에 대해 공부하고자 한다.

www.kocw.net

위 강의와 데이터베이스 개론(2019, 김연희 지음) 책을 바탕으로 작성하는 글입니다.

 

 

데이터베이스 설계 단계

데이터베이스 설계

  • 사용자의 요구사항을 고려하여 데이터베이스를 생성하는 과정
  • E-R 모델과 릴레이션 변환 규칙을 이용한 설계의 과정
    • 1단계 : 요구사항 분석
    • 2단계 : 개념적 설계
    • 3단계 : 논리적 설계
    • 4단계 : 물리적 설계
    • 5단계 : 구현
    • 설계 과정 중에 오류가 발견되어 변경이 필요하면 이전 단계로 되돌아가 설계 내용을 변경 가능

 

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

출처 - 데이터베이스의 원리와 응용(kocw)

  • 개념적 설계
    • 다른 사람과 통신하기 위하여 현실 세계에 대한 인식을 추상적 개념으로 표현(추상화; abstraction)하는 과정
    • 요구 분석 단계에서 나온 결과(요구 사항 명세서)를 DBMS에 독립적인 E-R 다이어그램으로 작성
  • 논리적 단계
    • 개념적 스키마를 바탕으로 DBMS에 적합한 논리적인 구조를 설계하는 단계
    • 결과물로는 논리적 스키마(릴레이션 스키마, 테이블 스키마)를 얻게 됨

 

 

데이터 모델링과 데이터 모델의 개념

데이터 모델링(data modeling)

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

Ex. 코끼리를 데이터 모델링해보자

  1. 개념적 단계 : 코끼리 추상화(abstraction)

  • 발이 네 개
  • 코가 길다
  • 몸무게는 1톤 이상
  • 코를 이용해 물건을 잡음

  2. 논리적 단계 : 위 개념적으로 설계된 특징들을 바탕으로 컴퓨터 세계의 데이터베이스의 구조를 따라서 데이터베이스 형태로 변환

출처 - 데이터베이스의 원리와 응용(kocw)

2단계 데이터 모델링

  • 개념적 데이터 모델링(conceptual modeling)
    • 현실 세계의 중요 데이터를 추출하여 개념 세계로 옮기는 작업
  • 논리적 데이터 모델링(logical modeling)
    • 개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현하는 작업
  • 그림 4-2 에서는 코끼리에서 특징을 추출하여 추상화하는 것이 개념적 모델링 단계, 추출한 특징을 바탕으로 데이터베이스 형태로 변환하는 것이 논리적 모델링 단계에 해당한다.

데이터 모델(data model)

  • 데이터 모델링의 결과물을 표현하는 도구
  • 개념적 데이터 모델
    • 사람의 머리로 이해할 수 있도록 현실 세계를 개념적 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구
    • Ex. 개체-관계 모델
  • 논리적 데이터 모델
    • 개념적 구조를 논리적 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구
    • Ex. 관계 데이터 모델

 

 

개체 - 관계 모델

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

  • 개념적 데이터 모델
  • 개체와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현
  • 핵심 요소 : 개체, 속성, 관계

개체 - 관계 다이어그램(E-R diagram)

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

 

개체(entity)

  • 현실 세계에서 조직을 운영하는 데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것
  • 저장할 가치가 있는 중요 데이터를 가지고 있는 사람이나 사물, 개념, 사건 등
  • 다른 개체와 구별되는 이름을 가지고 있고, 각 개체만의 고유한 특성이나 상태, 속성을 하나 이상 가지고 있음
  • Ex1. 서점에 필요한 개체 : 고객, 책
  • Ex2. 학교에 필요한 개체 : 학과, 과목
  • Ex3. 병원에 필요한 개체 : 의사, 간호사, 병실, 환자, 약품 등
  • 파일 구조의 레코드(record)와 대응
  • E-R 다이어그램에서 사각형으로 표현, 사각형 안에 이름을 표기

출처 - 데이터베이스의 원리와 응용(kocw)

속성(attribute)

  • 개체 관계가 가지고 있는 고유 특성
  • 의미 있는 데이터의 가장 작은 논리적 단위
  • 파일 구조의 필드(field)와 대응
  • E-R 다이어그램에서 타원으로 표현, 타원 안에 이름을 표기

출처 - 데이터베이스의 원리와 응용(kocw)

  • 위 그림에서 고객(개체, 사각형)의 속성이 고객 아이디(타원), 고객명(타원)이 있음을 알 수 있다

 

개체 타입(entity type)

  • 개체를 고유의 이름과 속성들로 정의한 것
  • 파일 구조의 레코드 타입(record type)에 대응됨

개체 인스턴스(entity instance)

  • 개체를 구성하고 있는 속성이 실제 값을 가짐으로써 실체화된 개체
  • 개체 어커런스(entity occurrence)라고도 함
  • 파일 구조의 레코드 인스턴스(record instance)에 대응됨

개체 집합(entity set)

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

출처 - 데이터베이스의 원리와 응용(kocw)

 

속성의 분류

  • 속성
    • 속성 값의 개수
      • 단일 값 속성(single-valued attribute) : 값을 하나만 가질 수 있는 속성
        • Ex. 고객(개체) 이름은 하나의 이름만 가짐
      • 다중 값 속성(multi-valued attribute) : 값을 여러 개 가질 수 있는 속성
        • E-R 다이어그램에서 이중 타원으로 표현 
        • Ex. 고객(개체)이 가지고 있는 연락처는 여러 개 일 수도 있음(집전화, 휴대전화 또는 여러 개의 휴대전화 등
    • 의미의 분해 가능성
      • 단순 속성(simple attribute) : 의미를 더는 분해할 수 없는 속성
        • Ex. 고객(개체)의 아이디는 더 이상 분해할 수 없음
      • 복합 속성(composite attribute) : 의미를 분해할 수 있는 속성
        • Ex. 고객(개체)의 생년월일은 생년, 생월, 생일로 분해 가능
    • 유도 속성(derived attribute) : 기존의 다른 속성의 값에서 유도되어 결정되는 속성
      • 값이 별도로 저장되지 않음 
      • E-R 다이어그램에서 점선 타원으로 표현
      • Ex. 고객(개체)의 생년월일을 통해 나이를 유도 가능 → 나이는 유도 속성임

 

출처 - 데이터베이스의 원리와 응용(kocw) ~ 속성 값의 개수

 

출처 - 데이터베이스의 원리와 응용(kocw) ~ 단순 속성과 복합 속성
출처 - 데이터베이스의 원리와 응용(kocw) ~ 유도 속성

널 속성(null attribute)

  • 널 값이 허용되는 속성
  • 널(null) 값
    • 아직 결정되지 않거나 모르는 값 또는 존재하지 않는 값
    • 공백이나 0과는 의미가 다름
    • Ex. 등급 속성이 널 값 → 등급이 아직 결정되지 않았음을 의미

키 속성(key attribute)

  • 각 개체 인스턴스를 식별하는데 사용되는 속성
    • Ex. 고객(개체)의 고객아이디 속성 : 각 고객의 고객아이디는 다른 속성과 중복되지 않고 고유의 값을 가지므로 고객 인스턴스를 식별하는데 사용할 수 있음  고객명은 중복가능성이 있으므로 키 속성으로 적합하지 않음
  • 모든 개체 인스턴스의 키 속성 값이 다름
  • 둘 이상의 속성들로 구성되기도 함
    • Ex. 고객 개체에 고객아이디와 같이 식별하기에 적합한 속성이 없다면 고객명 속성과 생년월일 속성을 키 속성으로 구성(동명이인이고 생년월일도 동일하다면 주소를 추가해서 키 속성으로 사용 가능) → 식별가능하도록(중복되지 않도록) 속성들을 조합
  • E-R 다이어그램에서 밑줄로 표현

출처 - 데이터베이스의 원리와 응용(kocw)

관계(relationship)

  • 개체와 개체가 맺고 있는 의미 있는 연관성
  • 개체 집합들 사이의 대응 관계, 즉 매핑(mapping)을 의미
  • 속성을 가질 수 있음
  • Ex. 고객 개체와 책 개체 간의 구매 관계 → "고객은 책을 구매한다"
  • E-R 다이어그램에서 마름모로 표현

출처 - 데이터베이스의 원리와 응용(kocw)

 

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

  • 이항 관계 : 개체 타입 두 개가 맺는 관계(두 개체가 하나의 관계를 맺음)
  • 삼항 관계 : 개체 타입 세 개가 맺는 관계(세 개체가 하나의 관계를 맺음)
  • 순환 관계 : 개체 타입 하나가 자기 자신과 맺는 관계

관계의 유형 : 매핑 카디널리티 기준

  • 일대일(1 : 1) 관계
    • Ex. 일부일처제 : 남편 개체와 아내 개체는 일대일 관계
  • 일대다(1 : n) 관계
    • Ex. 부서 개체와 사원 개체는 일대다 관계 : 한 부서에는 여러 명의 사원이 존재할 수 있음, 한 명의 사원이 여러 부서에 속할 수 없음 (부서-1, 사원-n)
  • 다대다(n : m) 관계
    • Ex. 고객 개체와 책 개체는 다대다 관계 : 한 명의 고객은 여러 개의 책을 구매할 수 있음, 한 권의 책은 여러 고객에게 구매되어 질 수 있음

매핑 카디널리티(mapping cardinality)

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

관계의 참여 특성

  • 필수적 참여(전체 참여)
    • 모든 개체 인스턴스가 관계에 반드시 참여해야 하는 것을 의미
    • E-R 다이어그램에서 이중선으로 표현
  • 선택적 참여(부분 참여)
    • 개체 인스턴스 중 일부만 관계에 참여해도 되는 것을 의미
    • Ex. 고객 개체와 책 개체의 구매 관계 : 책을 구매하지 않은 고객이 존재할 수 있음, 고객이 구매하지 않은 책이 존재할 수 있음
  • Ex. 학과와 학생의 일대다(1 : n) 소속 관계
    • 모든 학생은 반드시 소속된 학과가 있어야 함 → 학과와 학생의 소속 관계에 학생필수적 참여
    • 학생이 없는(소속되지 않은) 학과가 존재할 수 있음 → 학과와 학생의 소속 관계에 학과선택적 참여

학과와 학생의 관계 ~ 관계의 참여 특성

관계의 종속성

  • 약한 개체(weak entity)
    • 다른 개체의 존재 여부에 의존적인 개체
  • 오너 개체(owner entity)
    • 다른 개체의 존재 여부를 결정하는 개체
  •  오너 개체와 약한 개체의 일반적으로 일대다의 관계를 가지고, 약한 개체는 오너 개체와의 간계에 필수적으로 참여하는 특징이 있음
  • 약한 개체는 오너 개체의 키를 포함하여 키를 구성하는 특징이 있음
  • E-R 다이어그램에서 약한 개체는 이중 사각형으로 표현하고 약한 개체가 오너 개체와 맺는 관계는 이중 마름모로 표현
  • Ex. 직원 개체와 부양가족 개체 사이의 일대다(1 : n) 부양 관계 : 직원 개체는 오너 개체, 부양가족 개체는 약한 개체

출처 - 데이터베이스의 원리와 응용(kocw)

 

 

SUMMARY 

개체-관계 다이어그램

  • 사각형 : 개체
  • 마름모 : 관계
  • 타원 : 속성
  • 링크(연결선) : 각 요소 연결
  • 레이블(mapping cardinality) : 일대일, 일대다, 다대다 관계

 

 

 

 

 

 

 

(그림 출처 - database design - Anyone have an ERD symbols quick reference? - Stack Overflow)

 

 

출처 - 데이터베이스의 원리와 응용(kocw)

 

 

 

 

위 강의와 책 외 출처 및 참고

 

3. 데이터베이스 시스템

데이터베이스의 원리와 응용 본 강의에서는 데이터베이스 입문자들에게 꼭 필요한 데이터베이스 기초 이론, 데이터 모델과 연산, SQL, 데이터베이스 설계에 대해 공부하고자 한다. www.kocw.net 위

backend-jaamong.tistory.com

 

데이터베이스 개념적 데이터 모델_개체-관계 모델 (2)

개체-관계 모델(ER모델) - Advanced - (4장 2절) 관계 제약 조건을 보다 상세하게 기술: 참여(participation) 특성 : 개체 집합 내 모든 개체 인스턴스가 관계에 참여하는지 유무에 따른 특성 (매핑 카디널

d9249.tistory.com

 

'Database' 카테고리의 다른 글

5. 관계 데이터 모델링  (0) 2022.01.17
개념적 데이터 모델링: 실습  (0) 2022.01.13
데이터의 분류  (0) 2022.01.09
3. 데이터베이스 시스템  (0) 2022.01.09
2. 데이터베이스 관리 시스템  (0) 2022.01.08
Comments