"데이터베이스에 정확하고 유효한 데이터만 유지한다"
데이터의 정확성과 일관성을 유지하고 보증하는 것을 가리킴.
데이터베이스나 RDBMS 시스템의 중요한 기능이며,정확성, 일관성, 유효성이 유지되어야 한다.
보안은 권한이 없는 사용자로부터 데이터를 보호하는 것이고,
무결성은 권한이 있는 사용자의 잘못된 요구로부터 데이터를 보호하는 것이다.
관계형 데이터 모델이 기본적으로 포함하고 있는 제약 조건은 개체 무결성과 참조 무결성이며, 이 2가지가 만드시 만족되어야 DB 상태를 일관성 있게 유지할 수 있다.
기본키를 구성하는 속성은 null 값을 가지면 안된다.
ID | 고객 이름 | 나이 | 직업 |
---|---|---|---|
A202206091 | 홍길동 | 20 | 경찰 |
A202206092 | 성춘향 | 32 | 개발자 |
A202206093 | 이몽룡 | 33 | 교수 |
NULL | 홍길순 | 24 | 대학생 |
외래키는 참조할 수 없는 값을 가질 수 없다.
아래 예시의 경우, 주문번호 0001 - puhaha는 [고객]에 존재하지 않는다.
존재하지 않는 고객이 주문했다는 것은 옳지 않으므로 제약 조건을 위반한 것.
[고객]
고객 ID | 고객 이름 | 나이 | 직업 |
---|---|---|---|
hong | 홍길동 | 20 | 경찰 |
spring | 성춘향 | 32 | 개발자 |
lee | 이몽룡 | 33 | 교수 |
soon | 홍길순 | 24 | 대학생 |
[주문] - 주문 고객
은 [고객]의 고객 ID
를 참조한다
주문번호 | 주문 고객 | 주문 제품 | 수량 |
---|---|---|---|
0001 | puhaha | 폼클렌징 | 2 |
0002 | lee | 로션 | 1 |
혹은, 아래와 같은 경우도 생각해야 한다.
lee
-> dragon
으로 바뀐다면, 이를 참조하고 있는 [주문]의 주문고객도 맞춰 변경되어야 한다 lee
의 주문내역이 존재함에도 불구하고, [고객]에 고객 ID lee
가 없다면 부정확한 데이터가 된다참고 자료
https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0_%EB%AC%B4%EA%B2%B0%EC%84%B1
<데이터베이스 개론>, 김연희