DB 복습
작성날짜 2024/09/09
정규화
- 제 1정규화
테이블의 속성이 원자값을 가지도록 테이블을 분해하는 것
이름 | 취미들 |
김연아 | 인터넷 |
추신수 | 영화, 음악 |
박세리 | 음악, 쇼핑 |
위의 테이블에서 추신수, 박세리의 취미들 속성에는 2개의 값이 들어 있다. 이럴 경우 검색이나 수정 등이 어려우므로 제 1정규화를 해준다.
이름 | 취미 |
김연아 | 인터넷 |
추신수 | 영화 |
추신수 | 음악 |
박세리 | 음악 |
박세리 | 쇼핑 |
- 제 2정규화
기본키가 복합키일 때, 기본키의 부분집합이 결정자가 될 경우 테이블을 분해하는 것
학생번호 |
강좌이름 |
수강료 | 성적 |
501 |
데이터베이스 |
20000 | 2 |
401 |
데이터베이스 |
20000 | 3 |
401 | 스포츠경영학 | 15000 | 3.5 |
402 |
스포츠경영학 |
15000 | 4 |
502 |
자료구조 |
25000 | 3.5 |
위의 테이블에서 기본키는 학생번호와 강좌이름이 복합키이다. 이 때 성적은 기본키에의해서만 결정되지만 수강료는 강좌이름에 의해서 결정된다. 그리고 강좌이름은 기본키의 부분집합이므로
- 제 3정규화
- BCNF 정규화
SQL 문법 종류
DDL(Data Definition language, 데이터 정의어)
- 데이터베이스 구조 정의
- Create, Alter, Drop, Truncate, Rename
DML(Data Manipulation Language, 데이터 조작어)
- 데이터 조작, 저장된 데이터 다루기
- Select, Insert, Update, Delete
DCL(Data Control language, 데이터 제어어)
- 데이터베이스에 대한 권한 제어
- Grant, Revoke
TCL(Transaction Control Language, 트랜잭션 제어어)
- Commit, Rollback, Savepoint