[SQLD] 1파트 데이터 모델링(Data Modeling)

    본 포스팅은

    BDA 빅데이터분석학회 SQLD 스터디 학습내용입니다. 

     

    [2024 이기적 SQL 개발자 이론서+기출문제]

    서적과 강의를 바탕으로 서술한 내용임을 밝힙니다.

     


     

    데이터베이스

    1. 여러 사람들이 모여 통합으로 관리하는 기술
    2. 여러 사람들이 함께 사용하고 공유 가능

    01. 데이터 모델링

    데이터 모델링: 현실 세계의 대상을 추상화, 단순화, 명확화하여 데이터베이스를 표현하는 것

    • 추상화: 현실 세계를 간략하게 표현
    • 단순화: 누구나 쉽게 이해할 수 있도록 표현
    • 명확화: 명확하게 의미가 해석되어야 하고 한 가지 의미를 가짐
    • 계획/분석시, 업무 분석 및 설계, 설명에 사용
    • 구축/운영시, 변경, 관리 목적으로 사용 

     

    ERD(Entitiy Relationship Diagram)

    : 엔티티와 엔티티 간의 relationship(관계)를 발견하고 이를 Diagram(그림)으로 표현하는 행위

    → 개념적 데이터 모델링의 결과물

    1. 엔티티를 도출하고 그린다.(속성 제외)
    2. 엔티티를 배치한다. → 중요한 엔티티는 왼쪽 상단에 배치한다.
    3. 엔티티 간의 관계를 설정한다.
    4. 관계명을 서술한다. 

    논리적 모델링

    1. 속성을 모두 아래로 입력
    2. 각 엔티티에서 식별자(PRIMARY KEY)를 선택
    3. 정규화를 수행해 중복되는 데이터 입력이 없도록 함
    4. 관계설정(FOREIGN KEY)을 함 → 정규화로 쪼개진 대상들을 연결하기 위해 식별자를 빌려옴

    데이터 모델링의 중요성

    1. 파급효과: 초반에 엉망으로 설계하고 개발하다가 나중에 엎게 되면 힘들어짐
    2. 간결한 표현: 서로 의사소통을 위해 모델링된 설계도(erd 등)으로 쉽게 이해 가능
    3. 데이터 품질: 애초에 데이터 모델링을 제대로 해야 이상한 데이터(데이터 중복, 비유연성, 비일관성 등)가 안 들어감


    02. 데이터 베이스 3단계 구조(3층 스키마 구조)

    1. 외부(External) 스키마: 여러 사용자 각각의 관점
    2. 개념(Conceptual) 스키마: 통합적, 조직 전체의 DB 관점
    3. 내부(Internal) 스키마: 데이터 물리 저장 구조 표현

    * 저장공간(하드디스크)등을 데이터베이스에 추가해도 직원 테이블(=엔터티)의 내용이 변경하지 않는다. 독립성

     


    03. 엔터티(Entity)

    Entity: 업무에 필요한 정보를 관리/저장하기 위한 집합적인 명사 개념

    인스턴스(Instance): 엔터티 집합 내에 존재하는 개별적인 대상

    • 반드시 업무에서 필요한 대상이고 업무에 사용될 것
    • 유일한 식별자식별이 가능할 것
    • 인스턴스가 2개 이상일 것
    • 속성이 반드시 2개 이상 존재할 것
    • 관계가 하나 이상 존재할 것(단, 코드성/통계성은 생략 가능)

    엔터티의 분류

    1. 유형과 무형에 따른 종류

    2. 엔터티가 발생하는 시점

    엔터티 명명 규칙

    1. 가능한 현업 용어 사용
    2. 가능한 약어 사용X
    3. 단수 명사 사용
    4. 엔터티 이름은 유일
    5. 엔터티 생성 의미대로 이름 부여

    04.  속성(Attribute)

    속성: 우리가 관리하고자 하는 정보

    - 더 이상 분리되지 않는 단위로, 업무에 필요한 데이터를 저장할 수 있다. 

    속성 명명 규칙

    1. 가능한 현업 용어 사용
    2. 가능한 약어 사용X
    3. 명사형을 쓰고 서술식이나 수식어 등을 제한
    4. 가능한 속성 이름은 전체 데이터 모델에서 유일

    05.  관계(Relationship)

    : 엔터티 내의 인스턴스들 간에 서로 논리적인 연관성이 있는 상태

    • ERD: 존재/행위 등 관계를 위처럼 똑같이 표시
    • UML 클래스다이어그램: 연관관계(존재)는 실선으로 표기하고 의존관계(행위)는 점선으로 표시

    관계를 표현하는 방법

    관계명(Membership), 관계차수(Cardinality/Degree), 관계선택사양(Optionality)

     


    06. 엔터티 식별자

    식별자: 엔터티 내 유일한 인스턴스를 식별할 수 있는 속성의 집합

    식별자 분류

    1. 대표성여부: 주식별자 vs. 보조식별자
    2. 스스로생성여부(자생여부): 내부식별자 vs. 외부식별자
    3. 단일속성여부: 단일식별자 vs. 복합식별자
    4. 대체여부: 본질식별자 vs. 인조식별자

    주식별자 도출기준과 특징

    1. 업무에서 자주 쓰는 속성일 것
    2. 명칭, 이름 등은 피할 것
    3. 속성의 수가 많지 않을 것

     

    댓글