✅ 1. 개체 무결성(Entity Integrity)
비유: 주민등록번호는 꼭 있어야 하고, 중복되면 안 돼!
- 뜻: 기본키(Primary Key)는 반드시 있어야 하고, 겹치면 안 된다는 규칙이야.
- 예시:
학생 테이블이 있어. 모든 학생은 학번이 있어야 해.- 학번이 없는 학생 ❌ → 누군지 알 수 없으니 안 됨
- 학번이 중복된 학생 ❌ → 두 명을 구분할 수 없으니 안 됨
✅ 2. 참조 무결성(Referential Integrity)
비유: 없는 부모 밑에 자식이 있을 수는 없어!
- 참조 무결성은 말 그대로 참조하는 값이 무결(깨끗하고 정확)해야 한다는 뜻이다.
즉, "외래키(Foreign Key)"가 가리키는 값이 실제로 존재해야 한다는 규칙이다.
쉽게 말하면,
“내가 누군가를 참조한다고 할 때, 그 사람이 진짜 존재하지 않으면 문제가 생긴다.
데이터베이스도 마찬가지다.
A 테이블에서 -> B 테이블의 데이터를 참조할 때,
그 값이 B 테이블에 실제로 있어야 참조할 수 있다.
없는데 참조하면 그건 오류다.”
📦 예시 테이블
🎓 학과 테이블 (부모 테이블, 원본)
학과코드 | 학과명 |
CS | 컴퓨터공학 |
EE | 전자공학 |
🧑🎓 학생 테이블 (자식 테이블, 참조자)
학번 | 이름 | 학과코드(외래키) |
101 | 철수 | CS |
102 | 영희 | EE |
103 | 민수 | ME ❌ ← 이게 문제다! |
🚨 무슨 문제가 생긴 걸까?
학생 테이블에서 학과코드가 외래키다.
근데 민수는 ‘ME’라는 학과에 속해 있다고 적혀 있다.
그런데 학과 테이블에는 ‘ME’라는 코드가 없다.
이렇게 되면 존재하지 않는 학과를 참조하는 거라서 오류가 생긴다.
이걸 참조 무결성 위반이라고 부른다.
🧩해결 방법은?
참조 무결성을 지키려면,
외래키 값은 반드시 부모 테이블(참조 대상)에 존재해야 한다.
그래서 아래 둘 중 하나를 해야 한다.
- 부모 테이블에 ‘ME’ 학과를 추가한다
→ 학생이 실제 존재하는 학과를 참조하게 된다 - 학생 테이블에서 민수의 학과코드를 ‘CS’나 ‘EE’처럼 존재하는 값으로 바꾼다
→ 잘못된 참조를 없앤다
✅ 3. 속성 무결성(Domain/Attribute Integrity)
비유: 이름란에는 숫자를 쓰면 안 되잖아!
- 뜻: 각 칼럼(속성)에 들어갈 자료형과 조건(지정된 규칙)을 지켜야 한다는 규칙이야.
- 주요기법 : 체크CHECK, NULL/NOT NULL, 기본값(DEFAULT)
- 예시:
- 나이는 숫자만, 이름은 문자열만
- 급여는 0보다 커야 함 (음수 ❌)
- 빈칸으로 두면 안됨(not null)
- 기본값을 자동으로 채워줌(default)
- 입력 값이 특정 범위나 조건을 만족해야만 저장되게 하는 조건(check)
✅ 4. 사용자 정의 무결성(User-defined Integrity)
비유: 우리 회사만의 사규나 룰 같은 것!
- 뜻: 사용자가 직접 정의한 조건이야. 시스템 기본 규칙 외에 특정 조직/서비스에서만 필요한 규칙을 의미해.
- 예시:
- 직원 급여는 반드시 200만 원 이상이어야 함
- 상품 재고는 0 이상이어야 함
- 주문은 한 번에 5개까지만 가능
- 특정 조건일 때 자동 실행되는 코드로 무결성 체크(Trigger)
✅ 5. 키 무결성(Key Integrity)
비유: 내가 가진 열쇠(키)는 문을 여는 유일한 수단이야!
- 뜻: 테이블 내에서 각 행(row)을 고유하게 식별할 수 있는 키(기본키 또는 후보키)는 반드시 유일해야 한다는 규칙이다.
- 키 무결성은 말 그대로 ‘키는 무결해야 한다’, 즉 꼭 있어야 하고, 중복되면 안 된다는 규칙이다.
데이터베이스에서 ‘키’는 각 행(데이터 한 줄)을 고유하게 구별하는 역할을 한다.
그래서 이 키가 중복되거나 없으면, 누가 누구인지 구분이 안 되니까 큰 문제가 생긴다. - 예시:
- 사원 번호가 101인 사람이 여러 명이면 ❌
- 주민등록번호가 중복되면 ❌
📌 어떤 키가 해당될까?
- 기본키(Primary Key)
→ 대표 키. 무조건 중복 X / NULL X - 후보키(Candidate Key)
→ 기본키가 될 수 있는 후보. 마찬가지로 유일해야 한다. - 슈퍼키(Super Key)
→ 유일하게 구분 가능한 모든 키 조합들 (후보키 포함)
🎁 한눈에 보기 요약표
개체 무결성 | 기본키는 반드시 있고, 겹치면 안 돼! | 학번 중복 ❌, 학번 없음 ❌ |
참조 무결성 | 외래키는 반드시 존재하는 값이어야 해! | 없는 학과 번호 ❌ |
속성 무결성 | 각 칼럼의 데이터는 규칙을 따라야 해! | 나이에 문자 ❌, 급여 음수 ❌ |
사용자 정의 | 우리 조직만의 특별 규칙! | 급여 ≥ 200만 원, 재고 ≥ 0 |
키 무결성 | 모든 키는 유일해야 해! | 주민번호 중복 ❌ |
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기 이론] 소프트웨어 개발 보안 3대 요소 - 기밀성/무결성/가용성 (0) | 2025.07.07 |
---|---|
[정보처리기사 실기 이론] 논리 데이터 모델링 정규화 단계 뜯어보기 (0) | 2025.07.06 |
[정보처리기사 실기 이론] 행위적(동적) 다이어그램 종류-유스케이스/시퀀스/활동/상태/커뮤니케이션 다이어그램 (3) | 2025.07.04 |
[정보처리기사 실기 이론] 구조적(정적) 다이어그램 종류-클래스/패키지/컴포넌트 다이어그램 (3) | 2025.07.04 |
[정보처리기사 실기 이론] UML 다이어그램 종류 쉽게 이해하기 (1) | 2025.07.03 |