eunzae's develog

[데이터 모델링]개념 데이터 모델링(Conceptual Data Modeling) 본문

Database/Data Architecture

[데이터 모델링]개념 데이터 모델링(Conceptual Data Modeling)

eunzae 2022. 12. 21. 13:37

DB 시스템의 특성

  - 최초 적재(Loading) → 이벤트 발생에 따른 잦은 변경(Interaction)

  - 대용량의 데이터를 다룸
    · 사용자가 원하는 순간 데이터에 접근하기 위해서는 대용량의 데이터가 체계적으로 조직화되어 있어야 한다.

 

 

데이터베이스 시스템

  - Database: 데이터 및 데이터 간 관계의 집합

  - DBMS(Database Management System): 사용자가 Database에 접근할 수 있도록 지원해주는 프로그램의 집합

 

 

스키마 vs. 인스턴스

  - 데이터베이스 스키마(Schema) 
    · 데이터베이스 구조(테이블명, 컬럼명), 데이터 타입, 그리고 제약조건에 대한 명세
    · 데이터베이스 설계단계에서 명시되며, 자주 변경되지 않음

  - 데이터베이스 인스턴스(Instance)
    · 특정 시점 데이터베이스에 실제로 저장되어 있는 데이터
    · Database Instance = Occurence = Snapshot

 

 

데이터모델링(Data Modeling)

  - 데이터모델링: 데이터베이스 스키마를 설계

 

 

SQL(Structured Query Language)

  - 데이터정의어(DDL: Data Definition Language)
    · 스키마를 기술하기 위해 사용되며, 주요 DB 설계자가 사용

  - 데이터조작어(DML: Data Manipulation Language)
    · 인스턴스를 조작하기 위해 사용
    · 데이터의 조회(Retrieval), 삽입(Insertion), 삭제(Deletion), 갱신(Update)에 사용

  - DCL: Data Control Language
    · 데이터베이스 사용자 권한을 관리하기 위해 사용

  - TCL: Data Control Language
    · 트랜잭션을 관리하기 위해 사용

 

 

Overview of Database Design Process

 

※ 실무와 이론의 구분이 약간 다름

 

 

ER Model Concepts

  - 개체(Entity)

    · 실세계에 존재하는 의미있는 하나의 정보 단위

    · 물리적 객체(학생, 자동차, 강의실···) 뿐 아니라 개념적 객체(프로젝트, 직업, 교과목···)도 포함

 

  - 관계(Relationship)

    · 개체들 사이의 연관성

      ex) [학생]과 [교과목] 사이의 [수강] 관계

 

  - 속성(Attribute)

    · 개체 또는 관계의 본질적 성질

 

 

Types of Attributes

  - Single-valued Attributes vs. Multivalued Attributes [값 개수로 구분]
    · 나이 vs 취미

 

  - Simple Attributes vs.Composite Attributes [분해 가능 여부로 구분]
    · Simple Attributes: 더 이상 쪼개지지 않는 원자값을 갖는 속성(나이, 학번···)
    · Composite Attributes: 몇 개의 요소로 분해될 수 있는 속성(주소→시, 군, 구, 번지···)

 

  - Stored Attributes vs. Derived Attribute [유도 가능 여부에 따라 구분]
    · Derived Attributes: 저장된 다른 데이터로부터 유도 가능한 속성(각 과목의 성적→총점, 주민등록번호→나이)

 

 

Entity Types and Key Attributes

  - 키 속성(Key Attributes)

    · 어떤 개체에 대해서 항상 유일한 값을 갖는 속성 또는 속성들의 집합(학생의 학번, 책의 ISBN, 자동차의 차량번호···)

    · 특정 Snapshot이 아닌, 해당 개체의 모든 가능한 Snapshot의 집합을 고려하여 파악되어야 함

    · 복합키(Composite Key): Composite Attribute가 키 속성이 되는 경우, 복합키는 최소성을 가져야 함

    · 각 개체는 하나 이상의 키를 가질 수 있음

    · 어떤 개체는 키를 갖지 않을 수도 있음 → 약성 개체(Weak Entity)

 

 

Relationships

  - 관계(Relationship) 설정

    · 한 개체의 속성이 다른 개체를 참조할 때 관계가 형성됨

  - 관계의 차수(Degree)

    · 관계에 참여하는 개체의 수(Binary, Ternary, Unary, ···N-ary)

    · 실무에서는 중요하지 않음(실무에서의 '차수'는 하단에 기술한 '관계의 대응수'를 의미함)

  - 관계의 대응수(Cardinality)

    · 해당 개체가 해당 관계에서 참여할 수 있는 인스턴스의 최대의 수(1:1, 1:N or N:1, M:N)

    · 대응수에 따른 관계의 분류

    · 일대다(1:N) 관계

하나의 학생은 하나의 학과를 전공하고, 하나의 학과는 여러명의 전공생을 둔다

    · 일대일(1:1) 관계

하나의 학생은 하나의 학과의 과대를 할 수 있고, 하나의 학과는 하나의 과대를 둔다

    · 다대다(M:N) 관계 → Relationship도 테이블 생성

하나의 과목을 여러명의 학생이 수강하고, 하나의 학생은 여러개의 과목을 수강함

 

 

Practical Approach for ER Modeling

  1. 주요 개체 도출

  2. 개체 간 관계 도출

    ① 관계 도출

    ② 대응수 도출

  3. 개체 및 관계의 속성 도출

    ① 키 속성 도출

      · 약성 개체 확인(웬만하면 만들지 않기)

     일반 속성 도출

 

Notation for ER Diagrams

 

 

참고: https://www.youtube.com/watch?v=K4jiTvSIfB4&list=PLg_wJlcMiuKtlmoC2Pn8H2LY84NzVKUXg&index=1