Shonny Data
SQLD 자격증 - 데이터 모델링 4요소(엔티티, 속성, 관계, 식별자) / 정규화 본문
SQLD 자격증 대비반
○ 데이터 모델링의 4요소
: 엔티티(Entity), 속성(Attitude), 관계(Relationship), 식별자(Identifier)
○ 엔티티(Entity)
(개념)
- 의미있는 하나의 정보 단위
- 인스턴스의 집합 / 하나의 인스턴스는 여러 속성을 가진다
(특징)
① 업무에서 필요로 하는 정보
② 식별 가능 여부
③ 인스턴스의 집합
④ 업무 프로세스에 활용되어야 함
⑤ 속성을 포함해야 함
⑥ 관계의 존재
(분류)
- 유무형에 따른 분류 :
유형 엔티티(형태 O),
개념 엔티티(형태 X),
사건 엔티티(특정 이벤트에 종속, 통계 등에 활용)
- 발생시점에 다른 분류 :
기본/키 엔티티(주식별자, 다른 엔티티의 부모역할),
중심 엔티티(업무의 중심적 역할),
행위 엔티티(두개 이상의 부모 엔티티로부터 연결하여 발생)
(이름짓기)
업무에서 사용하는 용어 사용 / 축약어 X / 단수명사 사용 / 띄어쓰기 X /
중복 X(유일한 이름) / 엔티티 생성 의미대로 이름 부여
○ 속성(Attribute)
(개념)
- 속성은 인스턴스가 가진 성격
- ★업무에서 필요로 하는 인스턴스로 더 이상 분리되지 않는 최소한의 단위
- 한개의 엔터티는 두개 이상의 인스턴스 / 한개의 엔터티는 두개 이상의 속성 / 한 개의 속성은 한 개의 속성값
(특징)
① 업무에서 필요로 해야 한다
② 더 분리되지 않는 그 자체로 독립성 유지 (가장 작은 단위로 의미를 지님)
③ 엔티티를 설명하고 인스턴스의 구성요소가 됨
④ 정규화 이론에 기반을 두고 정해진 주식별자에 함수적 종속성을 지닌다
⑤ 하나의 속성은 하나의 값을 가진다
(분류)
- 속성의 특징에 따른 분류 :
기본속성 _ 기본
설계속성 _ 데이터 모델링, 업무 규칙에 따라 새로 만들거나 변형된 속성
파생속성 _ 다른 속성에 의해 영향을 받아/혹은 계산된 형태의 값/ 정확성(정합성)을 위해 적은 것이 좋다
- 구성방식에 따른 분류 :
PK(Primary Key) 속성 _ 엔터티를 식별할 수 있는 속성 / 주식별자
FK(Foreign Key) 속성 _ 다른 엔터티와의 관계에 포함된 속성 / 외래키속성
일반속성 _ 대부분
(이름짓기)
업무에서 쓰는 용어 / 축약어 X / 명사형 / 수식어 많이 사용 X / 전체 데이터 모델에서 유일하게 작성
○ 관계 (Relationship)
(개념)
- 상호 연관성이 있는 상태
- 엔티티와 인스턴스 사이의 논리적 연관성으로 존재하는 형태 행위 → 서로에게 연관성이 부여된 상태
(분류)
- 존재에 의한 관계 : 소속된다/포함된다
- 행위에 의한 관계 : 행동/행위 (주문한다)
(클래스 다이어그램)
- 정적 다이어그램 (클래스의 구성요소 및 클래스 간 관계를 표현)
- 목적 : 클래스 간 관계를 한 눈에 보기 쉽게 표현하기 위하여
- ★ERD는 존재적, 행위적 관계를 표현하지 않지만 클래스 다이어그램은 이를 구분하여 연관, 의존의 관계로 표현한다
(관계의 표기)
- 개수 표현 : | (1개) , < (여러개) , ○ (0개)
- 관계 선택사양(필수/선택)
[IE표기법] O 없음 - 필수 / O 있음 - 선택 ,
[BARKER] 실선 - 필수 / 점선 - 선택
- 식별 비식별 :
[IE표기법] 실선 - 식별 / 점선 - 비식별 ,
[BARKER] 버티컬바 - 식별 / 실선 - 비식별
(관계차수)
- 1:1 ONE TO ONE 관계 _ 두 개의 엔티티가 하나의 관계를 가질 때
- 1:M ONE TO MANY 관계 _ 하나 혹은 그 이상의 관계를 맺을 때 (한쪽 방향만 가능)
- M:M MANY TO MANY 관계 _ 양방향 모두 하나 이상의 관계를 맺을 때
(관계 정의시 체크사항)
① 관심있는 연관규칙이 있는지
② 정보의 조합이 있는지
③ 관계 연결에 대한 규칙이 있는지
④ 연결을 가능하게 하는 동사가 있는지
○ 식별자(Identifier)
(개념)
- 엔터티의 인스턴스를 구분가능하게 만들어주는 대표적인 속성
(특징)
- 유일성 _ 모든 인스턴스를 각각 유일하게 구분
- 최소성 _ 최소한의 주식별자로 구분이 되어야 한다
- 불변성 _ 값이 변하면 안된다
- 존재성 _ 반드시 값이 있어야 한다
(식별자의 분류)
- 대표성 여부 : 주식별자 / 보조식별자
- 스스로생성 여부 : 내부 식별자 / 외부 식별자
- 단일속성 여부 : 단일 식별자 / 복합 식별자
- 대체여부 : 본질 식별자 / 인조 식별자 (인위적으로 만든, 추가한 식별자)
(식별자 관계)
- 식별자 관계 : 부모 엔티티의 주식별자가 자식 엔티티의 주식별자로 사용되는 경우
- 비식별자 관계 : 부모 엔티티의 주식별자가 자식 엔티티의 속성 중 하나로 사용되는 경우
○ 정규화
(개념)
- 데이터 일관성을 유지하고, 데이터 중복을 방지하며 데이터의 유연성을 유지하기 위하여 데이터를 분해하는 과정
- 데이터 성능을 높이기 위한 과정
(종류)
1NF
- 하나의 테이블에 중복되는 데이터 없어야 함
- 모든 속성은 반드시 하나의 값마을 가져야 함
- 속성의 원자성 확보
2NF
- 주식별자에 완전히 종속되지 않은 속성 분리하여 종속 관계 구성
- 여러 짱들이 있을 때 모든 것들이 짱과 관련 있어야 한다. 관련 없는 것들은 분리해줘
3NF
- 일반 속성 간 함수 종속성이 발생하지 않아야 함
- 짱 말고 너네끼리도 함수 종속성이 없어야해
○ 반정규화
(개념)
- 정규화를 수행하지 않은 모델을 지칭
- 테이블이나 컬럼을 합쳐서 오히려 데이터를 중복되게 하여 데이터 성능을 향상시키는 것
(언제할 때 좋은지?) 데이터를 조회할 때
(반정규화 절차 ★)
1. 반정규화 대상 조회
2. 다른 방법 유도 검토
3. 반정규화 적용
(반정규화 기법)
○ 테이블 반정규화 → 테이블 병합 / 테이블 분할 / 테이블 추가
○ 컬럼 반정규화 → 중복컬럼 추가 / 파생컬럼 추가 / 이력테이블 컬럼추가 / PK에 의한 컬럼 추가
○ 관계 반정규화
'Sparta_coding_club > SQLD' 카테고리의 다른 글
SQLD 자격증 - 데이터베이스의 구조, 분산 데이터, SQL 기본기 (0) | 2024.01.04 |
---|---|
SQLD 자격증 - 개념 정리 ① (0) | 2024.01.04 |