자격증/SQLD

SQLD 데이터 모델링의 이해(1~5) - 10일차

awspspgh 2024. 10. 16. 21:30
목차
1. 데이터 모델링의 이해
2. 엔터티
3. 속성
4. 관계
5. 식별자

 

Part1. 데이터 모델리의 이해

1. 데이터 모델링의 이해

엔터티(Entity), 속성(Attribute), 인스턴스(Instance)에 대해서는 위와 같이 생각하면 쉬움

 

모델링의 개념

- 현실 세계의 비즈니스 프로세스와 데이터 요구 사항을 추상적이고 구조화된 형태로 표현하는 과정

 

모델링의 특징

1. 단순화(Simplification)

현실을 단순화하여 핵심 요소에 집중하고 불필요한 세부 사항을 제거

 

2. 추상화(Abstraction)

현실세계를 일정한 형식에 맞추어 간략하게 대략적으로 표현하는 과정

 

3. 명확화(Clarity)

대상에 대한 애매모함을 최대한 제거하고 정확하게 현상을 기술하는 과정

 

데이터 모델링 3가지 관점

1. 데이터 관점

2. 프로세스 관점

3. 데이터와 프로세스 관점

 

데이터 모델링 유의점

1. 중복(Duplication)

2. 비유연성(Inflexibility)

3. 비일관성(Inconsistency)

 

데이터 모델링 3가지 요소

- 대상(Entity) : 업무가 관리하고자 하는 대상(객체)

- 속성(Attribute) : 대상들이 갖는 속성(하나의 특징으로 정의될 수 있는 것)

- 관계(Realationship) : 대상들 간의 관계

 

 데이터 모델링의 3단계

1. 개념적 모델링

- 업무 중심적이고 포괄적(전사적)인 수준의 모델링

- 추상화 수준이 가장 높음

- 업무를 분석 뒤 업무의 핵심 엔터티(Entity)를 추출하는 단계

- 도출된 핵심 엔터티(Entity)들과 관계들을 표현하기 위해 ERD 작성

 

2. 논리적 모델링

- 개념적 모델링의 결과를 토대로 세부속성, 식별자, 관계 등을 표현하는 단계

- 데이터 구조를 정의하기 때문에 비슷한 업무나 프로젝트에서 동일한 형태의 데이터 사용 시 재사용 가능

- 데이터 정규화 수행

 

3. 물리적 모델링

- 논리 모델링이 끝나면 이를 직접 물리적으로 생성하는 과정

- 추상화 수준은 가장 낮음(가장 구체적인 모델링이므로)

 

 스키마의 3단계 구조

- 스키마 : 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합

 

1. 외부 스키마

- 사용자가 보는 관점에서 데이터베이스 스키마를 정의

 

2. 개념 스키마

- 사용자 관점의 데이터베이스 스키마를 통합하여 데이터베이스의 전체 논리적 구조를 정의

 

3. 내부 스키마

- 데이터가 물리적으로 어떻게 저장되는지를 정의

 

** 3단계 스키마의 독립성

- 독립성

1) 논리적 독립성 : 논리적 데이터 구조가 변경되어도(개념 스키마 변경) 응용 프로그램에 영향을 주지 않는 특성

2) 물리적 독립성 : 물리적 구조가 변경되어도(내부 스키마 변경) 개념 / 외부 스키마에 영향을 주지 않는 특성

 

 데이터 모델의 표기법(ERD : Entity Relationship Diagram)

- 엔터티(Entity)와 엔터티 간의 관계(Relationship)를 시각적으로 표현한 다이어그램

 

 ERD 작성 절차 (6단계)

1) 엔터티를 도출한 후 그린다

2) 엔터티 배치

3) 엔터티 간의 관계를 설정

4) 관계명을 서술

5) 관계의 참여도 기술

6) 관계의 필수 여부를 확인

 

2. 엔터티

 엔터티(Entity)의 개념

- 현실 세계에서 독립적으로 식별 가능한 객체나 사물을 나타냄

- 엔터티는 업무상 분석해야 하는 대상(Instance)들로 이루어진 집합

- 인스턴스는 엔터티의 특정한 속성 값들로 구성되며, 엔터티의 개념을 현실에서 구체적으로 나타낸 것

예) 엔터티와 속성, 인스턴스 등의 관계

 

· 엔터티(Entity) : 학생

· 속성(Attribute) : 학번, 이름, 학과 등

· 식별자(Identifiier) : 학번 (고유한 학번으로 각 학생을 식별)

· 인스턴스 : 특정 학생의 데이터

  - 학번: 2021001

  - 이름: 홍길동

  - 학과: 컴퓨터 공학

 

 엔터티(Entity)의 특징

1. 유일한 식별자에 의해 식별 가능

2. 해당 업무에 필요하고 관리하고자 하는 정보

3. 인스턴스들의 집합

4. 엔터티는 반드시 속성을 가짐

5. 엔터티는 업무 프로세스에 의해 이용

6. 다른 엔터티와 최소 1개 이상의 관계 성립

 

엔터티의 분류

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

  1) 유형 엔터티

    - 물리적 형태가 있음(실체가 있는 대상)

 

  2) 개념 엔터티

    - 물리적 형태 없음

 

  3) 사건 엔터티

    - 업무를 수행에 따라 발생하는 엔터티

 

2. 발생 시점에 따른 분류

  1) 기본 엔터티

    - 그 업무에 원래 존재하는 정보

    - 다른 엔터티로부터 주식별자를 상속받지 않고 자신의 고유한 주식별자를 가짐

 

  2) 중심 엔터티

    - 기본 엔터티로부터 발생되고 그 업무에서 중심적인 역할

 

  3) 행위 엔터티

    - 2개 이상의 부모 엔터티로부터 발생

 

엔터티의 명명

1) 현업에서 사용하는 용어 사용

2) 가능하면 약자 사용은 자제

3) 단수 명사 사용

4) 모든 엔터티에서 유일하게 이름 부여

5) 엔터티 생성 의미대로 이름 부여

 

엔터티와 인스턴스 표기법

- 엔터티는 사각형으로 표현, 속성은 조금씩 다름

엔터티와 인스턴스

 

엔터티 표기법

 

3. 속성

속성(Attribute)의 개념

- 속성은 업무에서 필요로 하는 고유한 성질, 특징을 의미(관찰 대상) -> 컬럼으로 표현할 수 있는 단위

- 업무상 인스턴스로 관리하고자 하는 더 이상 분리되지 않는 최소의 데이터 단위

 

엔터티, 인스턴스, 속성, 속성값의 관계

- 속성은 엔터티에 속한 엔터티에 대한 자세하고 구체적인  정보를 나타냄, 각 속성은 구체적인 값을 가짐

 

속성의 특징

- 정해진 주식별자에 함수적 종속성을 가져야 함

=> 각 속성의 하나의 값을 갖고 있음을 의미(속성의 원자성)

 

** 원자성이란

- 데이터 모델에서 각 엔터티의 인스턴스가 해당 속성에 대해 단일하고 명확한 값을 가지는 것을 의미

 

함수적 종속성

- 어떤 속성 A의 값에 의해 다른 속성 B도 유일하게 결정된다면, B는 A에 함수적으로 종속됐다 하고, 이를 수식으로 A → B라고 표현함

 

1) 완전 함수적 종속

- 특정 컬럼이 기본키에 대해 완전히 종속될 때를 말함 

 

2) 부분 함수적 종속

- 기본키 전체가 아니라, 기본키 일부에 대해 종속될 때를 말함

 

속성의 분류

1. 속성의 특성에 따른 분류

1) 기본 속성

   - 업무로부터 추출된 모든 속성

 

2) 설계 속성

   - 기본 속성 외에 업무를 규칙화하기 위해 새로 만들어지거나 기본 속성을 변형하여 만들어지는 속성

 

3) 파생 속성

   - 다른 속성에 의해 만들어지는 속성

 

2. 엔터티 구성방식에 따른 분류

1) PK(Primary Key, 기본키)

   - 인스턴스를 식별할 수 있는 속성

 

2) FK(Foreign Key, 외래키) 속성

   - 다른 엔터티와의 관계에서 포함된 속성

 

3) 일반 속성

   - 엔터티에 포함되어 있고 PK/FK에 포함도지 않는 속성

 

3. 분해 여부에 따른 속성

1) 단일 속성

   - 하나의 의미로 구성된 경우

 

2)  복합 속성

   - 여러 개의 의미로 구성된 경우

 

3) 다중값 속성

   - 속성에 여러 개의 값을 가질 수 있는 경우

   - 다중값 속성은 엔터티로 분해

 

속성의 명명규칙

1) 해당 업무에서 사용하는 이름을 부여

2) 서술식 속성명은 사용하지 않음

3) 약어의 사용은 가급적 제한

4) 전체 데이터 모델에서 유일한 명칭

 

도메인(Domain)

- 도메인은 각 속성이 가질 수 있는 값의 범위를 의미함

 

4. 관계

관계의 개념

- 관계는 엔터티간의 연관성을 나타낸 개념

 

관계의 종류

1) 존재적 관계

- 엔터티 간의 연관된 상태를 의미

 

2) 행위적 관계

- 엔터티 간의 어떤 행위가 있는 것을 의미

 

※ ERD에서는 존재 관계와 행위 관계를 구분하지 않음

 

관계의 구성

1. 관계명

2. 차수(Cardinality)

3. 선택성(Optionality)

 

관계의 차수(Cardinality)

- 한 엔터티의 레코드(인스턴스)가 다른 엔터티의 레코드(인스턴스)와 어떻게 연결되는지를 나타내는 표현

 

1. 1 대 1 관계

  1) 완전 1 대 1 관계

   - 하나의 엔터티에 관계되는 엔터티가 반드시 하나로 존재하는 경우

 

  2) 선택적 1 대 1 관계

   - 하나의 엔터티에 관계되는 엔터티가 하나이거나 없을 수 있는 경우

 

2. 1 대 N 관계

  - 엔터티에 하나의 행에 다른 엔터티의 값이 여러 개 있는 관계

 

3. M 대 N 관계

  - 두 엔터티가 다대다의 연결 관계 가지고 있음

  - 이 경우 조인 시 카테시안 곱이 발생하므로 두 엔터티를 연결하는 연결 엔터티의 추가로 1 대 N 관계로 해소할 필요가 있음

 

관계의 페어링

- 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것

 

** 관계와 차수, 페어링 차이

- 관계의 차수는 하나의 엔터티와 다른 엔터티 간의 레코드 연결 방식을 나타내는 반면, 관계의 페어링은 두 엔터티 간의 특정 연결을 설명하고 추가 정보를 제공하는 용도로 사용.

 

5. 식별자

식별자 개념

- 하나의 엔터티에 구성된 여러 개의 속성 중에 엔터티를 대효할 수 있는 속성을 나타냄

- 식별자는 논리 모델링에서 사용하는 용어, 물리 모델링에서는 키(key)라고 표현

 

주식별자 특징

1) 유일성

2) 최소성

3) 불변성

4) 존재성

 

식별자 분류

1) 대표성 여부에 따른 식별자의 종류

 

2) 생성 여부에 따른 식별자의 종류

 

3) 속성 수에 따른 식별자 종류

 

4) 대체 여부에 따른 식별자의 종류

 

식별자 표기법

 

주식별자 도출 기준

1) 해당 업무에서 자주 이용되는 속성을 주식별자로 지정함

2) 명칭이나 내역등과 같은 이름은 피함

3) 속성의 수를 최대한 적게 구성

 

관계간 엔터티 구분

1) 강한 개체

- 독립적으로 존재할 수 있는 엔터티

 

2) 약한 개체

- 독립적으로 존재할 수 없는 엔터티

 

식별 관계와 비식별관계

1) 식별관계(Identification Relationship)

  -  하나의 엔터티의 기본키를 다른 엔터티가 기본키의 하나로 공유하는 관계

  -  식별관계는 ERD에서 실선으로 표시

 

2) 비식별관계(Non- Identification Relationship)

  - 강한 개체의 기본키를 다른 엔터티의 기본키가 아닌 일반 속성으로 관계를 가지는 것

  - 비식별관계는 ERD에서 점선으로 표시

 

Key의 종류

- 논리 모델링에서의 식별자가 물리 모델링에서는 Key가 되는데 이를 Key의 특징에 따라 다음과 같이 분류

 

1) 기본키(Primary Key)

  - 엔터티를 대표할 수 있는 키

 

2) 후보키(Candidate Key)

  - 유일성(유니크한 특성)과 최소성(최소한의 컬럼으로 유일성을 만족하는 특징)을 만족하는 키

  - 결국 후보키들 중 하나가 기본키가 되고, 나머지를 대체키라고 부름

 

3) 슈퍼키(Super Key)

  - 유일성은 만족하지만 최소성은 만족하지 않는 키

 

4) 대체키(Alternate Key)

  - 여러 후보키 중 기본키가 아닌 키

 

5) 외래키(Foreign Key)

  - 다른 테이블의 기본키를 참조하는 키

  - 참조 테이블은 하나 또는 여러 개 가능

 

 

※ 출처 : 홍쌤의 데이터랩 - SQLD, 짱뚱짱 블로그