정규화 - 품질 보장
정규화 종류
- 1NF
- 모든 도메인이 원자값
- 도메인 : 속성에서 가질수 있는 모든 속성값
- 2NF
- 기본키에 대해 완전 함수적 종속
- 성적은 학번과 과목명에 대해 완전 함수적 종속
- 3NF
- 기본키가 아닌 모든 속성이 기본키에대해서 이행적 종속
- 이행적 종속 : A -> B , B -> C then A -> C
- BCNF
- 결정자가 모두 후보키
- 결정자 : 학번은 이름의 결정자, 이름은 학번에 의존자
- 4NF
- 5NF
SQL 종류
- DDL (Define) : 테이블 정의
- DML (Manipulation) : 튜플 조작
- DCL (Control) : 사용자 및 관리 제어
- GRANT
- REVOKE
- COMMIT
- ROLLBACK
회복 / 병행 제어
- 회복 : 데이터베이스 손상시, 이전으로 복구
- 트랜잭션 장애 : 입력 데이터 오류 등으로 프로그램 중단
- 시스템 장애 : 하드웨어 장애, 데이터베이스 손실은 아님
- 미디어 장애 : 디스크 불록, 헤드 충돌, 데베 손실
- 회복 관리기 : 메모리 덤프, log로 해결
- 병행 제어 : 여러개 트랜잭션 병행제어
- 목적
- 디비 공유 최대화
- 사용자 응답 시간 최소화
- 시스템 활용도 최대화
- 디비 일관성 유지
- 문제점
- 종류
- 로킹
- 데이터 접근 상호 배타적
- 로킹 단위 접근 전에 잠금
- 로킹 단위 : 병행제어 한꺼번에 할수 있는 수
- 로킹 규약 2단계
- 타임 스탬프 순서
- 직렬성 순서 결정을 위해 처리 순서 미리 선택
- 교착 상태 없음
- 최적 병행 수행
- 판독 전용 트랜잭션이 많다면, 그냥 해도 괜춘
- 다중 버전 기법
- 즉각 갱신 기법
무결성
- 무결성 : 현실과 잘못된 데이터가 없는지
- 개체 무결성
- 도메인 무결성
- 도메인(속성)에는 주어진 속성값만 존재해야한다.
- 참조 무결성
- 외래키값은 NULL 또는 참조 릴레이션 기본값과 동일
- 사용자 정의 무결성