[스파르타코딩클럽]데이터분석 과정/LEARN

SQLD 공부 (1) 데이터베이스 모델링 / 엔터티 / 속성

doo_ 2024. 2. 20. 21:03

1장. 모델링

1. 모델링이란?

현실세계를 단순화하여 표현하는 기법이다. 다시 말해, 현실 세계에서 일어날 수 있는 다양한 현상에 대해 일정한 표기법에 의해 표현해 놓은 모형이다.

현실 세계에서 필요한 데이터를 저장하는 데이터베이스를 구축하기 위한 분석/설계의 과정이라고도 할 수 있다.

2. 모델링의 특징

1) 추상화(Abstraction) : 현실 세계를 일정한 형식으로 간략하게 표현하는 과정이다

2) 단순화(Simplification) : 복잡한 현실 세계를 정해진 표기법으로 단순하고 쉽게 표현한다

3) 명확화(Clarity) : 불분명함을 제거하고 명확하게 해석할 수 있도록 기술한다.

3. 모델링의 세 가지 관점

1) 데이터 관점 : 데이터 위주의 모델링 (What data)

ex. 업무가 어떤 데이터와 관련이 있는지, 데이터 간의 관계

2) 프로세스 관점 : 프로세스 위주의 모델링(How process)

ex. 업무가 무엇인지, 무엇을 해야 하는지

3) 데이터와 프로세스의 상관 관점 : 프로세스 흐름에 따라 데이터를 모델링(Intersaction)

ex. 업무 처리 방법에 따라 데이터가 어떻게 영향을 받는지

4. 모델링의 세 가지 단계

1) 개념적(Conceptual) 데이터 모델링 : 업무 중심적이고 포괄적인 수준의 모델링하는 단계

2) 논리적(Logical) 데이터 모델링 : Key, 속성, 관계 등을 모두 표현하는 단계

3) 물리적(Pysical) 데이터 모델링 : 성능이나 가용성 등의 물리적인 성격을 고려하여 모델을 표현하는 단계

5. 데이터의 독립성(User - Application - Database) _ 스키마 구조

1) 외부 스키마(External) : 사용자 관점 - 사용자가 보는 데이터베이스 스키마 정의

> 논리적 독립성 : 개념 스키마가 변경되어도 외부 스키마는 영향을 받지 않는다

2) 개념 스키마(Conceptual) : 통합된 관점 - 데이터베이스에 저장되는 데이터들과 관계를 표현

> 물리적 독립성 : 내부 스키마가 변경 되어도 개념 스키마는 영향을 받지 않는다.

3) 내부 스키마(Internal) : 물리적인 저장 구조 - 물리적인 실질적인 데이터의 저장 구조, 칼럼 정의, 인덱스 등을 나타냄

 

6. ERD : Entity Relationship Diagram)

- 엔터티 간의 관계를 나타내는 다이어그램

> IE 표기범

> Barker표기범

- ERD 작성 절차

: 엔터티 그리기 - 엔터티 배치 - 엔터티 간 관계 설정 - 관계명 서술 - 관계 참여도 표현 - 관계 필수 여부 표현

 

2장. 엔터티(Entity)

1. 엔터티란?

- 데이터베이스에서 식별 가능한 객체, 데이터를 용도별로 분류한 그룹이라고도 할 수 있다

- 인스턴스(행)과 속성(열)로 구성

2. 엔터티 특징

1) 식별자가 있어야 한다.

2) 2개 이상의 인스턴스를 가져야 한다.

3) 반드시 속성을 가지고 있어야 한다.

4) 다른 엔터티와 1개 이상의 관계를 가지고 있어야 한다

3. 엔터티 분류

1) 유형 vs 무형

a. 유형 엔터티 : 물리적인 형태가 있는 엔터티

b. 개념 엔터티 : 물리적인 형태가 없는 개념적 엔터티

c. 사건 엔터티 : 행위를 함으로써 발생

2) 발생시점

a. 기본 엔터티 : 독립적으로 생성

b. 중심 엔터티 : 기본 엔터티로부터 파생

c. 행위 엔터티 : 2개 이상의 엔터티로부터 파생

 

3장. 속성(Attribute)

1. 속성이란?

- 사람이라 사물을 정의하는 특징, 엔터티에 대한 구체적이고 명확한 정보를 나타낸다

ex. 이름, 생년월일, 연도 등

2. 속성의 특징

- 속성은 의미가 더 이상 쪼개지지 않는 정도

- 하나의 속성은 한 개의 속성값을

3. 분류

1) 특성에 따른 분류

a. 기본속성 : 일반적인 속성 ex. 이름, 학과, 학년 

b. 설계속성 : 설계 과정 합리적인 모델링을 위해 인위적으로 만든 속성 ex. 학번

c. 파생속성 : 다른 속성으로부터 파생된 속성 ex. 재고 (상품 수량과 주문 수량의 비교를 통해)

2) 구성방식에 따른 분류

a. PK(Primary Key) 속성 : 엔터티의 인스턴스들을 식별할 수 있는 속성

b. FK(Foreign Key) 속성 : 다른 엔터티의 속성에서 가져온 속성, 다른 엔터티와의 관계를 맺는 키

c. 일반 속성 : PK, FK를 제외한 나머지 속성

4. 도메인(Domain)

- 속성이 가질 수 있는 속성값의 범위

+) 용어 사전 : 하나의 데이터베이스에서 같은 의미를 가진 데이터가 다른 명으로 정의되는 혼란을 방지

 

4장. 관계(Relationship)

1. 관계란?

- 엔터티와 엔터티와의 관계를 의미한다.

> 존재 관계 

ex. 직원과 부서, 학생과 학과 등

> 행위 관계

ex. 회원과 주문, 학생과 출석부 등

2. 표기법

> 관계명(Membership) : 관계의 이름

> 관계차수(Cardinality) : 관계에 참여하는 수

> 관계선택사양(Optionality) : 필수인지 선택인지

 

5장. 식별자(Identifiers)

1. 식별자란?

- 여러 속성 중에 각각의 인스턴스를 구분 가능하게 만들어주는 대표 격인 속성을 의미

2. 주식별자

- 기본키, PK(Primary Key)에 해당하는 속성.

- 유일성 / 최소성 / 불변성 / 존재성

3. 분류

1) 대표성 여부

> 주식별자 : 유일성, 최소성, 불변성, 존재성을 가진 대표 식별자

> 보조식별자 : 인스턴스를 식별할 수는 있지만 대표 식별자는 아님

2) 스스로 생성되었는지 여부

> 내부식별자 : 엔터티 내부에서 스스로 생성된 식별자

> 외부식별자 : 다른 엔터티에서 온 식별자, 다른 엔터티와의 연결고리 역할

3) 단일 속성의 여부

> 단일식별자 : 하나의 속성으로 구성된 식별자

> 복합식별자 : 두 개 이상의 속성으로 구성된 식별자

4) 대체 여부

> 원조(본질)식별자 : 업무 프로세스에 존재하는 식별자, 가공되지 않은 원래의 식별자

> 대리(인조)식별자 : 주식별자의 속성이 두 개 이상인 경우 그 속성들을 하나로 묶어서 사용하는 식별자

4. 식별자 관계 vs 비식별자 관계

1) 식별자 관계(Identification)

- 부모 엔터티의 식별자가 자식 엔터티의 주식별자가 되는 관계

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

- 부모 엔터티의 식별자가 자식 엔터티의 주식별자가 아닌 일반 속성이 되는 관계