728x90
반응형
데이터 무결성(Data Integrity)은 데이터베이스 내의 데이터가 정확하고 일관되며 신뢰할 수 있는 상태를 유지하는 것을 의미함.
데이터의 신뢰성을 보장하기 위해 중요한 개념으로 데이터 정확성과 일관성을 유지하기 위해 다양한 규칙과 제약조건을 적용함.
데이터 무결성의 종류
- 도메인 무결성 (Domain Integrity):
- 각 컬럼의 값이 미리 정의된 데이터 타입과 값의 범위 내에 있어야 한다는 것을 의미함.
- 예를 들어, 나이를 저장하는 컬럼은 음수가 될 수 없고, 특정 범위(예: 0~150세) 내의 값만을 허용하도록 설정할 수 있음.
- 엔터티 무결성 (Entity Integrity):
- 각 테이블의 기본키(Primary Key)가 유일하고, NULL이 될 수 없음을 보장함.
- 이는 각 레코드가 고유하게 식별될 수 있도록 함.
- 참조 무결성 (Referential Integrity):
- 외래키(Foreign Key)가 참조하는 값이 항상 존재함을 보장함.
- 예를 들어, 주문 테이블의 고객 ID는 항상 고객 테이블에 존재하는 고객 ID를 참조해야 함.
- 고유 무결성 (Unique Integrity):
- 특정 컬럼이나 컬럼 조합에 중복된 값이 존재하지 않도록 함.
- 이는 UNIQUE 제약 조건을 통해 구현됨.
데이터 무결성 유지 방법
- 제약 조건 (Constraints):
- PRIMARY KEY: 기본키 제약 조건으로, 각 레코드가 고유하게 식별되도록 함.
- FOREIGN KEY: 외래키 제약 조건으로, 참조 무결성을 보장함.
- UNIQUE: 고유 제약 조건으로, 중복된 값을 허용하지 않음.
- CHECK: 특정 조건을 만족하는 값만을 허용하도록 함.
- NOT NULL: NULL 값을 허용하지 않음.
- 트랜잭션 (Transactions):
- 트랜잭션은 데이터베이스 작업의 논리적 단위로, ACID 특성을 통해 데이터 무결성을 유지함.
- 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)을 통해 트랜잭션 내의 모든 작업이 성공적으로 완료되거나 모두 롤백되어야 함.
- 데이터베이스 설계:
- 정규화를 통해 데이터 중복을 최소화하고, 이상 현상(Anomalies)을 방지함.
- 이를 통해 데이터의 일관성과 무결성을 유지함.
예시
- 도메인 무결성 예시:
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
FirstName VARCHAR(50),
LastName VARCHAR(50),
Age INT CHECK (Age >= 0 AND Age <= 150)
);
- 엔터티 무결성 예시:
CREATE TABLE Products (
ProductID INT PRIMARY KEY,
ProductName VARCHAR(50)
);
- 참조 무결성 예시:
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
CustomerID INT,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
- 고유 무결성 예시:
CREATE TABLE Users (
UserID INT PRIMARY KEY,
Username VARCHAR(50) UNIQUE
);
데이터 무결성은 데이터베이스의 신뢰성과 일관성을 유지하는 데 매우 중요함.
무결성이 유지되지 않으면 데이터가 부정확하거나 불완전해져 비즈니스 의사 결정에 큰 영향을 미칠 수 있음.
728x90
'CS 공부 > DB' 카테고리의 다른 글
[DB] 오라클 자주 쓰는 내장함수 모음(코테 대비) (0) | 2024.10.21 |
---|---|
[DB] 트랜잭션(ACID와 격리수준) (1) | 2024.07.22 |
[DB] 1~3정규화 (0) | 2024.07.11 |
[DB] 제 2정규화 (0) | 2024.07.10 |
[DB] 제 1 정규화 (0) | 2024.05.24 |