SQL (계층형 데이터 모델, 상호배타적 관계, 트랜잭션, NULL, 데이터 무결성)


계층형 데이터 모델
  • 하나의 엔티티 내에서 인스턴스가 서로 계층 구조를 가지는 경우
  • 계층 구조를 갖는 인스턴스끼리 연결하는 조인을 셀프 조인이라 함


상호배타적 관계
  • 하나의 부모가 2개의 자식 엔티티를 가질 때 행위 조건에 따라 두 자식 중 하나의 자식만 관계를 가질 수 있는 것을 상호배타적 관계라 칭함


트랜잭션
  • 트랜잭션의 특징
    • 원자성 (atomicity)
      • 트랜잭션 정의된 연산들 모두 성공적으로 실행되거나, 전혀 실행되지 않은 상태로 남아 있어야 함
    • 일관성 (consistency)
      • 트랜잭션 실행 전 데이터베이스 내용이 잘못되어 있지 않다면 트랜잭션 실행 이후에도 데이터 베이스 내용의 잘못이 있으면 안 됨
    • 고립성(isolation)
      • 트랜잭션 실행 도중 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안 됨
    • 지속성(durability)
      • 트랜잭션이 성공적으로 수행되면 갱신한 데이터베이스 내용이 영구적으로 저장


널 (NULL)
  • DBMS에서 아직 정해지지 않은 값을 의미 (값이 입력되지 않은 상태)
  • 0빈문자열(”) 과는 다른 개념
  • 최초에 NULL 값을 가짐
  • 1 + NULL = NULL
  • 숫자형 —> 0 NULL
  • 문자형 —> 공백 NULL


데이터 무결성
  • 데이터의 정확성과 일관성을 유지
  • 데이터에 결손과 부정합이 없을을 보증
  • 데이터 무결성을 유지하는 것이 DBMS의 중요한 기능


데이터 무결성의 종류
  • 개체 무결성
    • 테이블의 기본키를 구성하는 컬럼은 NULL 값이나 중복값을 가질 수 없음
  • 참조 무결성
    • 외래키 값은 NULL 이거나 참조 테이블의 기본키 값과 동일해야 함
  • 도메인 무결성
    • 주어진 속성 값이 정의된 도메인에 속한 값 이어야 함
  • NULL 무결성
    • 특정 속성에 대해 NULL 을 허용하지 않음
  • 고유 무결성
    • 특정 속성에 대해 값이 중복되지 않음
  • 키 무결성
    • 하나의 관계에는 적어도 하나의 키가 존재해야 함