MDP
2024-01-08 본문
RDBMS 정규화
- 테이블 간에 중복된 데이터를 허용하지 않는다는 것이다(중복데이터)
- 중복된 데이터를 허용하지 않음으로써 무결성(Integrity)를 유지 할 수 있으며, DB의 저장용량을 줄일 수 있다.
제 1 정규화
- 테이블 컬림이 하나의 값을 갖도록 테이블을 분해하는 것
제 2 정규화
- 제 1정규화를 진행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해하는 것
완전 함수 종속이란 기본키의 부분집합이 결정자가 되어서는 안된다는 것을 의미한다.
제 3 정규화
- 제 2 정규화를 진행한 테이블에 대해 이행적 종속을 없애도록 테이블을 분해하는 것
이행적 종속이라는 것은 A - > B , B -> C 가 성립할 때, A -> C가 성립되는 것을 의미한다.
BCNF 정규화
- 제 3 정규화를 진행한 테이블에 대해 모든 결정자가 후보키가 되도록 테이블을 분해하는 것
Primary Key 와 Foreign Key
Primary key(기본 키)
- 데이터베으스 테이블 내의 모든 레코드에서 고유한 아이디를 제공한다.
특징
- 모든 레코드가 서로 다른 값을 가지고 있어 각 레코드를 식별할 수 있다.
- NULL값이 존재할 수 없다.
- 레코드의 값은 중복이 불가능하다.
- 테이블에는 하나의 기본키만 가질 수 있지만 경우에 따라 1개 이상의 기본키를 정의할 수도 있다.
(다수 열 기본 키, 복합 기본 키)
Foregin key(외래 키)
- 데이터가 일관될 수 있도록 돕는 역할을 한다. 보통은 두 개의 데이터베이스 테이블을 잇고자 기본 키와 함께 사용된다.
일종의 테이블을 연결하는 가상의 다리 역할을 한다.
특징
- 외래 키는 한 테이블의 필드로, 다른 테이블의 기본 키를 나타낸다.
- 외래 키를 가지고 있는 테이블을 하위 테이블, 기본 키를 가지고 있는 테이블을 참조하면 상위 테이블이라고 한다.
- 각 외부 키와 기본 키는 1:1 관계로 매칭되어야 하며, 기본 키에 존재하지 않는 값이 외부키에 존재할 수 없다.
DB 관계
- 1:1 관계(일대일 관계)
=> 어느 엔티티 쪽에서 상대 엔티티와 반드시 단 하나의 관계를 가지는 것
- 1:N 관계(일대다 관계)
=> N:M 관계처럼 새로운 테이블을 만들지 않는다.
여러개의 엔티티가 하나의 엔티티에 속해있다.
N개의 엔티티에서만 상속받은 하나의 엔티이에 대한 FK를 넣음으로써 관계를 표현 할 수 있다.
- N:M 관계(다대다 관계)
=> 양쪽의 엔티티 모두에서 1:N 관계를 가지는것을 말한다.
'TIL' 카테고리의 다른 글
스프링과 스프링 부트의 차이점 (0) | 2024.07.12 |
---|---|
자바 - 객체지향프로그래밍 (2024 - 07 - 08) (0) | 2024.07.08 |
2023- 12-08 CRUD 구현 (0) | 2023.12.08 |
2023-11-10 (0) | 2023.11.13 |
2023-11-07 (0) | 2023.11.07 |