1 minute read

정규화 - 품질 보장

  • 데이터 중복 최소화
  • 데이터 일관성 보장

정규화 종류

  • 1NF
    • 모든 도메인이 원자값
    • 도메인 : 속성에서 가질수 있는 모든 속성값
  • 2NF
    • 기본키에 대해 완전 함수적 종속
    • 성적은 학번과 과목명에 대해 완전 함수적 종속
  • 3NF
    • 기본키가 아닌 모든 속성이 기본키에대해서 이행적 종속
    • 이행적 종속 : A -> B , B -> C then A -> C
  • BCNF
    • 결정자가 모두 후보키
    • 결정자 : 학번은 이름의 결정자, 이름은 학번에 의존자
  • 4NF
    • 다치종속 : A값이 B에만 종속
  • 5NF
    • 모든 조인 종속이 후보키

SQL 종류

  • DDL (Define) : 테이블 정의
    • CREATE
    • DROP
    • ALTER
  • DML (Manipulation) : 튜플 조작
    • SELECT
    • DELETE
    • UPDATE
  • DCL (Control) : 사용자 및 관리 제어
    • GRANT
    • REVOKE
    • COMMIT
    • ROLLBACK

회복 / 병행 제어

  • 회복 : 데이터베이스 손상시, 이전으로 복구
    • 트랜잭션 장애 : 입력 데이터 오류 등으로 프로그램 중단
    • 시스템 장애 : 하드웨어 장애, 데이터베이스 손실은 아님
    • 미디어 장애 : 디스크 불록, 헤드 충돌, 데베 손실
    • 회복 관리기 : 메모리 덤프, log로 해결
  • 병행 제어 : 여러개 트랜잭션 병행제어
    • 목적
      • 디비 공유 최대화
      • 사용자 응답 시간 최소화
      • 시스템 활용도 최대화
      • 디비 일관성 유지
    • 문제점
      • 갱신 분실
      • 비완료 의존성
      • 모순성
      • 연쇄 복귀
    • 종류
      • 로킹
        • 데이터 접근 상호 배타적
        • 로킹 단위 접근 전에 잠금
        • 로킹 단위 : 병행제어 한꺼번에 할수 있는 수
        • 로킹 규약 2단계
          • 직렬성 보장
          • 교착 상태 예방 불가
      • 타임 스탬프 순서
        • 직렬성 순서 결정을 위해 처리 순서 미리 선택
        • 교착 상태 없음
      • 최적 병행 수행
        • 판독 전용 트랜잭션이 많다면, 그냥 해도 괜춘
      • 다중 버전 기법
        • 타임 스탬프 + 버전 관리
      • 즉각 갱신 기법
        • 로그

무결성

  • 무결성 : 현실과 잘못된 데이터가 없는지
  • 개체 무결성
    • 기본키는 Null 또는 중복값 불가
  • 도메인 무결성
    • 도메인(속성)에는 주어진 속성값만 존재해야한다.
  • 참조 무결성
    • 외래키값은 NULL 또는 참조 릴레이션 기본값과 동일
  • 사용자 정의 무결성
    • 속성값들은 사용자가 정의한것 만족