ERD(엔티티 관계 다이어그램)
– 데이터베이스를 구축할 때 관계 간의 관계를 정의하는 가장 기본적인 뼈대 역할을 합니다.
– 시스템 요구 사항에 따라 생성
관계형 구조로 나타낼 수 있는 데이터를 정리하는데 유용하지만, 구조화되지 않은 데이터완벽하게 표현할 수 없다
구조화되지 않은 데이터?
구조화되지 않은 데이터, 미리 정의된 데이터 모델이 없거나 미리 정의된 방식으로 구성되지 않은 정보
⊙ 정규화 과정
관계 간의 잘못된 종속성 또는 저장 공간의 효율적인 사용으로 인해 데이터베이스를 이해하는 오류를 해결하기 위해 관계를 부분으로 나누는 프로세스
*이상?
삽입 오류, 삭제 오류, 업데이트 오류
정규형(NF)
‘기본 패러다임 형태'(제1 패러다임 형태 → 제2 패러다임 형태 → 제3 패러다임 형태 → 음성/코드 패러다임 형태) → ‘고급 패러다임 형태'(제4 패러다임 형태 → 제5 패러다임 형태)
패러다임 규칙 : 더 나은 구조와 감소된 데이터 중복 및 독립적인 관계는 별도의 관계로 표현됨
첫 번째 패러다임
관계의 모든 필드는 더 이상 분해할 수 없는 원자 값으로만 구성되어야 합니다.
관계의 속성 값 중 하나의 기본 키에 대해 두 개 이상의 중복 값 집합이 있을 수 없습니다.
사용자 아이디 | 사용자 아이디 | 코스명 | 성취 |
하나 | 크레용 | {자바, C++} | {90%, 10%} |
사용자 아이디 | 사용자 아이디 | 코스명 | 성취 |
하나 | 크레용 | 자바 | 90% |
하나 | 크레용 | C++ | 10% |
두 번째 정규형
부분 함수의 독립적인 형태
기본이 아닌 모든 속성은 기능적으로 기본 키에 완전히 종속됩니다.
관계 분해시 대등한 관계로 분해해야 하며, 무손실 분해로 분해하여 정보 손실을 방지합니다
사용자 아이디 | 사용자 아이디 | 코스명 | 성취 |
하나 | 크레용 | 자바 | 90% |
하나 | 크레용 | C++ | 10% |
사용자 아이디 | 사용자 아이디 |
하나 | 크레용 |
사용자 아이디 | 코스명 | 성취 |
크레용 | 자바 | 90% |
크레용 | C++ | 10% |
세 번째 패러다임
기본이 아닌 모든 속성은 전이 기능 종속성 조건을 충족합니다.
* 전이적 함수 의존성?
A가 B에 속하고, B가 C에 속하고, A가 C에 속하면 C는 A에 전이 종속적이라고 합니다.
즉, A→B→C의 관계를 A→B와 B→C로 나눈다.
음성/화음 패러다임
결정자가 후보 키가 아닌 기능적 종속성을 제거함으로써 관계의 기능적 종속성에 있는 모든 결정자는 후보 키의 조건이 됩니다.
*미정질?
A→B에서 A는 행렬식이고 B는 종속변수입니다.
테이블을 분할할 때 일부 쿼리에는 조인이 필요할 수 있습니다.
대신 속도가 느릴 수 있으므로 서비스별로 정규화 및 비정규화 프로세스를 수행해야 합니다.