[weekly] [nb] 관계형 데이터베이스 무결성
관계형 데이터베이스에서 무결성이 무엇인지 설명해 주세요.
무결성
**무결성(Integrity)**은 “규칙을 어기지 않고 데이터가 항상 올바르게 유지되는 것”을 뜻함.
빵집 예시
고객 주문 무결성
한 사람이 같은 주문서를 두 번 쓰면 안 되고(중복 방지), 존재하지 않는 메뉴를 주문할 수도 없음.
재료 무결성
빵을 만들 때는 반드시 존재하는 재료만 써야 하고, 밀가루 없이 “식빵”을 만들 수는 없음.
관계 무결성
주문서에는 “어느 고객이 주문했는지” 항상 연결이 되어 있어야 함. 고객이 없는 주문서는 있을 수 없음.
개체 무결성 (Entity Integrity)
- 빵집의 주문서 번호에 해당함
- 모든 주문서는 반드시 고유한 주문 번호를 가져야 하며 비어 있을 수 없음
- 주문서 번호가 중복되거나 없으면 어떤 주문이 누구 것인지 알 수 없게 됨
- 즉, 각 주문서가 서로 다른 번호로 식별되어야 함
참조 무결성 (Referential Integrity)
- 주문서에는 항상 주문한 고객 정보가 연결되어 있어야 함
- 주문서에 적힌 고객이 실제 고객 명단에 존재하지 않으면 안 됨
- 고객이 탈퇴했는데 그 고객의 주문서가 남아 있는 것도 문제임
- 즉, 주문서에 적힌 고객은 반드시 실제 고객 명단에 존재해야 함
정리
무결성은 빵집이 ‘엉터리 주문서’나 ‘없는 재료’, ‘없는 고객 주문’을 허용하지 않도록 지켜주는 규칙이다.