SQLD

[SQLD 자격증] 1과목 - 데이터 모델링의 이해 (1)

요다다 2023. 2. 11. 17:12

**많은 분들의 글을 참고하여 작성하였습니다.**

모델링이란 ? 

현실세계의 추상화된 반영이다. 

특징으로는 추상화, 단순화, 명확화가 존재한다.

추상화 : 현실세계를 일정한 형식에 맞춰 표현한다.

단순화 : 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해할 수 있도록 하는 개념

명확화 : 누구나 이해하기 쉽게 하기 위해 애매모호함을 제거하고 정확하게 현상을 기술하는 것

 

데이터 모델링이란 ?

현실 세계의 데이터에 대해 약속된 표기법에 의한 표현하는 과정 => 데이터 모델링을 위한 도구 : ERD

3요소 : 어떤것(things), 성격(atributes), 관계(relationships)

 

주의할 점 :

같은 시간 같은 데이터를 제공해야 하며

사소한 변화에 의해 데이터 모델이 수시로 변경되면 안되며

일관성을 유지해야 한다.

 

데이터 모델링은 3단계로 이루어져 있다. 

1. 개념적 모델링

2. 논리적 모델링

3. 물리적 모델링

현실세계 - DB

1. 개념적 모델링

현실 세계의 것을 사람이 이해할 수 있는 개념적으로 모델링하는 것이다. 

그렇기에 추상화 수준이 가장 높은 수준의 모델링이다. (추상화, 단순화, 명확화)

결과물 : 개념적 스키마(E-R  다이어그램 생성)

 

- 스키마란..?

=> 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것 

=> 스키마 : 데이터베이스 : 테이블 = 평면도 : 집 : 방

 

2. 논리적 모델링

개념적 구조를 논리적 모델링하여 데이터베이스의 논리적 구조로 표현하는 것이다.

DBMS에 적합한 논리적 구조 설계

결과물 : 논리적 스키마 (릴레이션 스키마)

 

3. 물리적 모델링

DBMS로 구현 가능한 물리적 구조 설계로, 구축한 DBMS에 테이블, 인덱스 등을 생성하는 단계이다.

성능, 보안, 기용성 등을 고려하여 DB 구축

결과물 : 물리적 스키마

 

3단계 스키마 구조

 

1. 외부 스키마 - 사용자 관점

외부 단계에서 사용자에게 필요한 데이터베이스를 정의한 것으로 각 사용자 관점에 따라 다른 모습을 가질 수 있다.

데이터 베이스 하나에 외부 스키마가 여러 개 존재할 수 있다.

 

2. 개념 스키마 - 통합 관점

개념 단계 하나의 개념적 스키마를 구성하여 모든 사용자 관점을 통합한 DB를 기술한 것

데이터 베이스 하나에 개념 스키마 하나만 존재

 

3. 내부 스키마 - 물리적 저장구조

DB가 물리적으로 저장된 형식으로

물리적 장치에서 데이터가 실제로 저장되는 방법을 표현하는 스키마이다.

데이터 베이스 하나에 내부 스키마 하나만 존재

 

데이터 모델링 표기법

chen : 이론상 / IE : 협업에서 많이 사용

ERD 순서

1. 엔터티를 도출하고 그린다

2. 엔터티를 배치한다. (종요한 엔터티는 왼쪽 상단에 배치)

3. 엔터티 간의 관계 설정한다

4. 관계명을 서술한다

5. 관계 참여도를 표현한다. 

 - 관계 참여도란 ?

 : 관계 참여도는 한 개의 엔터티와 다른 엔터티 간의 참여하는 관계 수를 의미한다. 즉, "고객이 여러 개의 계좌를 개설할 수 있다."와 같은 의미

6. 관계의 필수 여부를 표현한다. (반드시 존재해야하는지 ? 에 대한 여부)

 

데이터 모델링 고려 사항

  1. 완전성 : 업무에 필요한 모든 데이터가 모델에 정의
  2. 중복배제 : 하나의 DB내에 동일한 사실은 한번만
  3. 업무규칙 : 많은 규칙을 사용자가 공유하도록 제공
  4. 독립성 : 데이터가 독립적으로 설계돼야 함
  5. 의사소통 : 업무규칙은 엔터티,서브타입,속성,관계 등의 형태로 최대한 자세히 표현
  6. 통합성 : 동일한 데이터는 한 번만 정의, 참조활용

 

엔터티란 ?

엔터티는 데이터 집합으로,

유일한 식별자(PK)가 존재해야 하며, 반드시 속성을 가지고 있어야 한다. 

또한, 다른 엔터티와의 최소 한 개 이상의 관계를 가지고 있어야 한다.

 

엔터티의 분류

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

ㄱ) 유형 엔터티 : 업무에서 도출되는 지속적으로 사용되는 물리적 형태의 엔티티(사원, 물품)

ㄴ) 개념 엔터티 : 개념적으로만 사용되는 엔터티

ㄷ) 사건 엔터티 : 업무를 수행함에 따라 생성되는 형태의 엔터티 (주문, 청구)

 

2. 발생 시점에 따른 분류

ㄱ) 기본 엔터티 : KEY 엔터티로 불리며 독립적으로 생산되는 엔터티

ㄴ) 중심 엔터티 : MAIN 엔터티, 기본 엔터티로부터 발생되며 중심 역할을 수행하는 엔터티 (주문, 결제, 취소)

ㄷ) 행위 엔터티 : 두 개 이상의 엔터티로부터 발생되는 엔터티 (주문목록, 결제목록 )

 

속성(attribute)란?

엔터티가 가지는 항목이며 더 이상 분리되지 않는 데이터 단위

 

속성의 분류

1. 엔터티 구성에 따른 분류

ㄱ) PK 속성 : 엔터티를 식별할 수 있는 속성

ㄴ) FK 속성 : 다른 엔터티와의 관계에서 포함된 속성

ㄷ) 일반 속성 : 그 외

 

2. 분해 여부에 따른 분류

ㄱ) 복합 속성 : 여러 개의 의미를 가진 속성 (주소 - 시,구,동 등 등 세부 속성으로 구성)

ㄴ) 단일 속성 : 하나의 의미를 가진 속성

ㄷ) 다중값 속성 : 하나의 속성에 여러 값을 가지는 경우이며, 이는 정규화를 거쳐 별도의 엔터티를 생성해 관계로 연결해야 함. (ex. 한 사람이 두 개의 계좌를 가질 수 있음. 이는 고객과 계좌로 엔터티를 분리해야 함)

 

3. 특성에 따른 분류

ㄱ) 기본 속성 : 업무로부터 추출한 모든 속성이며 엔터티의 속성 비율 중 많은 비율 차지

ㄴ) 설계 속성 : 업무 상 필요하지는 않지만, 데이터 모델링을 위해 생성하거나 변형하여 정의하는 속성으로 유일 값을 가짐(ex. 상품코드)

ㄷ) 파생 속성 : 다른 속성의 영향을 받아 발생하는 속성이며 주로 집계 등의 속성이 이에 해당된다. (ex. 평균,합계)

 

관계(Relationships)란?

엔터티간의 관련성을 의미한다

 

표기법 :

1. 1 대 1 관계

2. 1 대 N 관계

3. N 대 N 관계

 

식별자란 ?

하나의 엔터티에 구성되어 있는 여러 속성 중에 엔터티를 대표할 수 있는 속성으로, 하나의 엔터티에 반드시 하나의 유일한 식별자가 존재하야 한다.

 

후보키 : 유일성과 최소성을 만족하는 키
슈퍼키 : 유일성은 만족하지만 최소성을 만족하지 못하는 키
대체키 : 후보키 중 기본키를 제외하고 남은 나머지 키
외래키 : 다른 테이블의 기본 키 필드를 가리키며 참조 무결성이 특징인 키

 

식별자 특징 

1. 유일성 

 식별자에 의해 모든 인스턴스들이 유일하게 구분되어야 한다

2. 최소성

 식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다

3. 불변성

 식별자가 한 번 지정되면, 그 값은 변하면 안 된다

4. 존재성 

 식별자가 지정되면 반드시 값이 존재하야 한다

 

 


참고 블로그 :

https://velog.io/@suzie26/SQLD-1%EA%B3%BC%EB%AA%A9-1%EC%9E%A5-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8%EB%A7%81-%EC%9D%B4%ED%95%B4
https://mjn5027.tistory.com/100