ERD
데이터베이스 구출할 때 가장 기초적인 뼈대 역할을 하며, 테이블 간의 관계들을 정의한 것.
엔티티(Entity)
- 정의 가능한 사물 또는 개념을 의미한다.
- 데이터베이스의 테이블이 엔티티로 표현된다.
속성(Attribute)
- 엔티티가 가지는 특징이나 정보를 표현하는데 사용되는 요소.
도메인(Domain)
- 속성의 값, 타입, 제약사항 등에 대한 값으 범위를 표현하는 것.
엔티티 분류
엔티티는 저장하는 데이터 정보 주제에 따라 종류가 나뉜다.
유무형에 따른 분류
1. 유형 엔티티
- 현실 세계에서 물리적으로 존재하는 개체를 나타내는 엔티티.
- ex) 사람, 자동차, 동물 등등.
2. 개념 엔티티
- 실제로 존재하는 개별적인 사물이나 사건이 아니라, 개념적인 요소를 나타내는 엔티티.
- 데이터 모델링에서 개념적인 부분을 표현하거나 분류하기 위해 사용된다.
- ex) 상품 카테고리, 회사 부서, 사용자 권한 등등
3. 사건 엔티티
- 특정한 사건이나 활동을 나타내는 엔티티.
- 일반적으로 시간적인 순서에 따라 발생하거나 기록되는 사건을 표현하기 위해 사용된다.
- ex) 주문, 예약, 결제, 로그인 등등
발생시점에 따른 분류
1. 기본 엔티티
- 도메인의 핵심 개념을 나타내는 엔티티.
- 도메인에서 가장 중요한 개체들을 나타낸다.
- ex) 고객, 제품, 주문 등등
2. 중심 엔티티
- 데이터베이스에서 핵심적인 역할을 하는 엔티티.
- 주요 데이터 저장소로 사용된다.
- ex) 주문, 계좌, 매출
3. 행위 엔티티
- 도메인에서 발생하는 특정한 행위나 동작을 나타내는 엔티티.
- 사용자의 활동을 추적하거나 기록하는 데 사용된다.
- ex) 로그인, 예약, 결제
ERD 엔티티 관계 표시법
식별자 관계
- 부모 테이블의 기본키 또는 유니크 키를 자식 테이블이 자신의 기본키로 사용하는 관계.
- 실선으로 표현한다.
- 강한 연결관계를 표현하기 위해 사용한다.
비식별자 관계
- 부모 테이블의 기본키 또는 유니크 키를 자신의 기본키로 사용하지 않고, 외래 키로 사용하는 관계.
- 점선으로 표현한다.
- 약한 연결관계를 표현하기 위해 사용한다.
정규화
테이블 간의 잘못된 종속 관계로 인해 데이터베이스 이상 현상이 일어나 이를 해결하거나, 저장 공간을 효율적으로 사용하기 위해 테이블을 여러 개로 분리하는 과정.
데이터베이스 이상현상 : 데이터베이스에서 발생하는 비정상적인 상황이나 문제를 의미한다.
더보기
삽입 이상 : 새로운 데이터를 삽입할 때 일부 데이터만 삽입되거나 필요 없는 데이터가 추가될 때 발생한다.
더보기
삭제 이상 : 원하는 데이터를 삭제하면 필요한 다른 데이터도 함께 삭제되거나 손실될 수도 있다.
더보기
갱신 이상 : 데이터를 갱신할 때, 일부 데이터만 갱신되거나 데이터 간 불일치가 발생하여 데이터의 정확성이 훼손될 수 있다.
정규화 이론
제1정규형
- 테이블의 모든 도메인이 더 이상 분해될 수 없는 원자 값만으로 구성되어야 한다.
- 테이블의 속성 값 중에서 한 개의 기본키에 대해 두 개 이상의 값을 가지는 반복 집합이 있으면 안 된다.
제2정규형
- 테이블이 제1정규형 만족
- 부분 함수의 종속성을 제거한 형태.
더보기부분 함수의 종속성이란 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속적인 것.
제3정규형
- 테이블이 제2정규형만족.
- 기본키가 아닌 모든 속성이 이행적 함수 종속을 만족하지 않는 상태.
더보기이행적 함수 종속이란 릴레이션에서 X, Y, Z라는 3 개의 속성이 있을 때 X→Y, Y→Z 이란 종속 관계가 있을 경우, X→Z가 성립될 때 이행적 함수 종속이라고 합니다. 즉, X를 알면 Y를 알고 그를 통해 Z를 알 수 있는 경우를 말합니다.
보이스/코드 정규형
- 테이블이 제3정규형만족.
- 결정자가 후보키가 아닌 함수 종속 관계를 제거하여 릴레이션의 함수 종속 관계에서 모든 결정자가 후보키인 상태.
더보기결정자란 함수 종속 관계에서 특정 종속자를 결정짓는 요소, 'X ->Y'일 때 X는 결정자, Y는 종속자이다.
제4정규형
- 다중 값 종속성을 제거하는 과정.
더보기다중값 종속성이란 일부 특성이 테이블의 기본키가 아닌 속성의 일부에 종속되는 경우.
제5정규형
- 다치 종속성을 제거하는 과정.
더보기다치 종속성이란 한 속성이 복합 기본키의 일부가 되는 경우
예상 질문
- 정규화를 하는 게 무조건 좋은 건 아니라고 알고 있는데 그 이유는 뭔가요?
더보기데이터를 여러 테이블에 분산시키면 데이터를 가져오기 위해 여러 테이블을 조인해야 하므로 쿼리가 복잡해질 수 있습니다.
또한, 데이터를 조인하는 데 시간이 많이 걸리면 성능 문제가 발생할 수 있고, - 데이터베이스 이상현상에 대해 설명해주세요.
더보기이상현상이란 데이터베이스에서 발생하는 비정상적인 상황이나 문제를 의미하는데 3가지 이상현상이 있습니다.
삽입이상 ~
삭제이상 ~
갱신이상~ - 정규화 목적에 대해 설명하세요
더보기정규화의 목적은 데이터베이스 설계를 개선하여 데이터 중복을 최소화하고 데이터의 무결성을 유지하는 것입니다.
이를 통해 데이터의 일관성을 유지하고 데이터베이스를 효율적으로 관리할 수 있습니다.
즉, 정규화는 데이터베이스 구조를 단순화하고 관리를 용이하게 하며, 데이터의 중복을 방지하여 저장 공간을 절약하고 데이터의 일관성을 높입니다.
출처
'CS > 데이터베이스' 카테고리의 다른 글
RDB - NoSQL 차이점 (1) | 2024.03.18 |
---|---|
트랜잭션 격리 수준 (0) | 2024.03.14 |
동시성 제어 (1) | 2024.03.14 |
트랜잭션 (0) | 2024.03.13 |
Key (0) | 2024.03.10 |