SQL (계층형 데이터 모델, 상호배타적 관계, 트랜잭션, NULL, 데이터 무결성)
계층형 데이터 모델
- 하나의 엔티티 내에서 인스턴스가 서로 계층 구조를 가지는 경우
- 계층 구조를 갖는 인스턴스끼리 연결하는 조인을 셀프 조인이라 함
상호배타적 관계
- 하나의 부모가 2개의 자식 엔티티를 가질 때 행위 조건에 따라 두 자식 중
하나의 자식만 관계를 가질 수 있는 것을 상호배타적 관계라 칭함
트랜잭션
- 트랜잭션의 특징
- 원자성 (atomicity)
- 트랜잭션 정의된 연산들 모두 성공적으로 실행되거나, 전혀 실행되지 않은 상태로 남아 있어야 함
- 일관성 (consistency)
- 트랜잭션 실행 전 데이터베이스 내용이 잘못되어 있지 않다면 트랜잭션 실행 이후에도 데이터 베이스 내용의 잘못이 있으면 안 됨
- 고립성(isolation)
- 트랜잭션 실행 도중 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안 됨
- 지속성(durability)
- 트랜잭션이 성공적으로 수행되면 갱신한 데이터베이스 내용이 영구적으로 저장
널 (NULL)
- DBMS에서 아직 정해지지 않은 값을 의미 (값이 입력되지 않은 상태)
- 0과 빈문자열(”) 과는 다른 개념
- 최초에 NULL 값을 가짐
- 1 + NULL = NULL
- 숫자형 —> 0 ≠ NULL
- 문자형 —> 공백 ≠ NULL
데이터 무결성
- 데이터의 정확성과 일관성을 유지
- 데이터에 결손과 부정합이 없을을 보증
- 데이터 무결성을 유지하는 것이 DBMS의 중요한 기능
데이터 무결성의 종류
- 개체 무결성
- 테이블의 기본키를 구성하는 컬럼은 NULL 값이나 중복값을 가질 수 없음
- 참조 무결성
- 외래키 값은 NULL 이거나 참조 테이블의 기본키 값과 동일해야 함
- 도메인 무결성
- 주어진 속성 값이 정의된 도메인에 속한 값 이어야 함
- NULL 무결성
- 고유 무결성
- 키 무결성
- 하나의 관계에는 적어도 하나의 키가 존재해야 함