728x90
목차
1. 중복정보 제거
2. 정규형
3. 참조무결성
1. 중복정보 제거
중복정보 제거
- 테이블 간의 정보는 중복되지 않아야 함
- 이를 위해 정규화(Normalization)을 통해 중복성 제거
—> 일반적으로 3정규형까지 적용한 것을 정규화되었다고 말한다.
- 중복성 제거 후 필요한 정보는 외래키를 통한 조인(JOIN)을 통해 필요한 정보를 구한다.
alter table city add column CountryName varchar(255);
2. 정규형
정규형
중복을 제거하기 위한 테이블 정의 규칙
- 제 1 정규형 : 나눌 수 있을 만큼 쪼개라.
- 제 2 정규형 : 테이블의 컬럼들이 기본키와 직접 연관되는 컬럼만으로 구성하라.
- 제 3 정규형 : 컬럼들 간의 종속관계가 있으면 안됨.
제 1 정규형
나눌 수 있을 만큼 쪼개라
제 2 정규형
테이블의 컬럼들이 기본키와 직접 연관되는 컬럼만으로 구성하라.
제 3 정규형
컬럼들 간의 종속관계가 있으면 안 됨
3. 참조무결성
참조무결성(Referential Integrity)
- 외래키(FK)에 적용되는 규칙
- 외래키와 참조되는 원래 테이블의 키와 관계를 명시
- 외래키를 참조하면 원래 테이블에 해당 레코드 값이 반드시 존재해야함
- 만약 원래 레코드를 삭제하려면 참조한느 외래키(FK)값을 먼저 NULL로 만들어야 함
- 외래키 참조관계가 있을 경우에 레코드 추가/삭제 시 선후관계를 나타냄
insert into country (Code, Name) values (‘ZZZ’, ‘ZZZ’);
insert into city (Name, countryCode) values (‘YYY’, ‘ZZZ’);
delete from city where Name=‘YYY’ and CountryCode=‘ZZZ’;
delete from country where Code=‘ZZZ’ and Name=‘ZZZ’;
728x90
'IT > SQL' 카테고리의 다른 글
MySQL[12] - 권한 설정, 역할 설정, MySQL 원격접속 설정 (0) | 2022.06.02 |
---|---|
MySQL[11] - 스키마 수정, 스키마 삭제 (0) | 2022.06.02 |
MySQL[9] - 스키마 정의, 자료형, 제약조건 (0) | 2022.05.29 |
MySQL[8] -서브쿼리, 집합연산 (0) | 2022.05.26 |
MySQL[7] - LIKE 검색, NULL값, GROUP BY/HAVING (0) | 2022.05.25 |