데이터베이스의 목적과 무결성 제약조건

  • DB? DBMS?

    저장소, DB관리 시스템

  • DB → 무결성

    데이터베이스의 중요한 특징은 무결성 - 데이터베이스의 정확성, 일관성을 보장

    무결성 제약조건 등등 참고

데이터베이스의 주요 목적인 데이터 독립성과 데이터 무결성의 개념, 그리고 무결성을 보장하기 위한 다양한 제약조건에 대한 종합적인 설명이다.


요약:

  • 데이터베이스의 중요한 특징: 무결성 - 데이터베이스의 정확성, 일관성을 보장
  • Database란? 저장소

  • DBMS란? DB관리 시스템
  • 무결성의 종류: 개체, 참조,도메인 무결성이 있다.
  • 무결성의 제약조건 5개
    • PK : FK + Not Null , Not Null +Unique 조건
    • FK : PK – Not Null, 참조되는 테이블 컬럼 값에 존재해야 하는 조건.
    • UK : PK – Not Null, 해당 컬럼 값은 유일해야 한다.
    • Not Null : 컬럼에 Null이 포함 될 수 없다.
    • Check : 해당 컬럼 값에 데이터 조건 및 범위를 지정한 설정 값만 허용한다.



데이터베이스의 목적

데이터베이스의 기본 목적은 데이터의 독립성을 보장하는 것이다. 데이터 독립성이란 상위나 하위 단계에서 서로 스키마 정의에 영향을 주지 않으면서 스키마 정의를 변경할 수 있는 특성을 의미한다.



데이터 독립성의 유형

데이터 독립성은 크게 두 가지 유형으로 나눌 수 있다:

  1. 물리적 데이터 독립성
    • 물리적 스키마를 변경해도 논리적 스키마에 영향을 주지 않는 특성
    • 예: 저장 장치 변경, 인덱싱 방법 변경, 파일 구조 변경 등
    • 데이터 저장 방식이 변경되어도 응용 프로그램은 수정할 필요가 없음
  2. 논리적 데이터 독립성
    • 논리적 스키마를 변경해도 외부 스키마(사용자 뷰)에 영향을 주지 않는 특성
    • 예: 테이블 추가, 컬럼 추가/삭제, 관계 변경 등
    • 데이터베이스 구조가 변경되어도 응용 프로그램은 수정할 필요가 없음

데이터 독립성은 데이터베이스 시스템의 유연성과 확장성을 높이며, 시스템 변경에 따른 비용과 위험을 줄여준다.



데이터의 무결성

데이터 무결성은 데이터베이스에 저장된 데이터의 정확성, 일관성, 유효성을 유지하는 것을 의미한다. 데이터베이스 내의 데이터가 물리적으로나 논리적으로 손상되지 않고 항상 정확한 값을 유지하는 상태를 말한다.

💡 무결성과 독립성의 관계: 데이터 독립성이 데이터베이스의 구조적 측면에 초점을 맞춘다면, 데이터 무결성은 데이터 자체의 품질과 신뢰성에 초점을 맞춘다. 두 개념은 상호 보완적이며, 함께 데이터베이스의 핵심 목적을 이룬다.

무결성의 종류

  1. 개체 무결성(Entity Integrity)
  • 테이블의 모든 행(레코드)이 고유하게 식별될 수 있어야 함
  • 기본키(Primary Key)는 NULL 값을 가질 수 없으며, 중복된 값을 허용하지 않음
  • 예: 학생 테이블에서 학번은 NULL이 될 수 없고, 모든 학생은 서로 다른 학번을 가져야 함
  1. 참조 무결성(Referential Integrity)
  • 외래키(Foreign Key) 값은 NULL이거나 참조하는 테이블의 기본키 값과 동일해야 함
  • 참조 관계에 있는 두 테이블 간의 일관성을 유지
  • 예: 주문 테이블의 고객ID는 고객 테이블에 존재하는 고객ID이거나 NULL이어야 함
  1. 도메인 무결성(Domain Integrity)
  • 특정 속성(컬럼)의 값이 해당 속성에 정의된 범위(도메인)에 속한 값이어야 함
  • 데이터 타입, 형식, 값의 범위 등을 제한
  • 예: 나이 컬럼은 양의 정수만 허용, 이메일 컬럼은 이메일 형식을 준수해야 함

데이터 무결성은 데이터베이스의 신뢰성과 정확성을 보장하는 핵심 요소로, 비즈니스 의사결정의 기반이 되는 데이터의 품질을 유지한다.


무결성 제약조건

무결성 제약조건은 데이터베이스에 바람직하지 않은 데이터가 저장되는 것을 방지하기 위한 규칙들이다. 이러한 제약조건은 데이터베이스 스키마의 일부로 정의되며, 데이터 조작 시 자동으로 검사된다.

  1. 기본키 제약조건(Primary Key, PK)

    • 특징: NOT NULL + UNIQUE 조건의 조합

    • 역할: 테이블의 각 행을 고유하게 식별

    • 예시: 학생 테이블의 학번, 직원 테이블의 사원번호

    • SQL 구문:

    • CREATE TABLE Students (
          StudentID INT PRIMARY KEY,
          Name VARCHAR(100),
          Age INT
      );
      
  2. 외래키 제약조건(Foreign Key, FK)

    • 특징: 참조되는 테이블의 컬럼 값에 존재해야 하는 조건

    • 역할: 테이블 간의 참조 관계를 정의하고 참조 무결성 유지

    • 예시: 주문 테이블의 고객ID(고객 테이블 참조)

    • SQL 구문:

    • CREATE TABLE Orders (
          OrderID INT PRIMARY KEY,
          CustomerID INT,
          OrderDate DATE,
          FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
      );
      
  3. 고유키 제약조건(Unique Key, UK)

    • 특징: 중복된 값을 허용하지 않음(NULL은 허용 가능)

    • 역할: 컬럼 값의 유일성 보장

    • 예시: 이메일 주소, 전화번호

    • SQL 구문:

    • CREATE TABLE Employees (
          EmployeeID INT PRIMARY KEY,
          Email VARCHAR(100) UNIQUE,
          Phone VARCHAR(15) UNIQUE
      );
      
  4. NOT NULL 제약조건

    • 특징: 컬럼에 NULL 값을 허용하지 않음

    • 역할: 필수 데이터 입력 보장

    • 예시: 이름, 생년월일

    • SQL 구문:

    • CREATE TABLE Customers (
          CustomerID INT PRIMARY KEY,
          Name VARCHAR(100) NOT NULL,
          BirthDate DATE NOT NULL
      );
      
  5. CHECK 제약조건

    • 특징: 컬럼 값에 특정 조건이나 범위를 지정

    • 역할: 도메인 무결성 유지

    • 예시: 나이는 0보다 커야 함, 급여는 최저임금 이상이어야 함

    • SQL 구문:

    • CREATE TABLE Employees (
          EmployeeID INT PRIMARY KEY,
          Name VARCHAR(100),
          Age INT CHECK (Age > 0),
          Salary DECIMAL(10,2) CHECK (Salary >= 8720)
      );
      

제약조건의 중요성:

  • 데이터의 일관성과 정확성 보장
  • 데이터베이스 설계의 품질 향상
  • 애플리케이션 로직의 단순화
  • 데이터 오류 방지 및 데이터 품질 향상

무결성 제약조건은 데이터베이스 설계 단계에서 신중하게 정의되어야 하며, 비즈니스 규칙과 요구사항을 정확히 반영해야 한다.



데이터 독립성과 무결성의 관계

데이터 독립성과 무결성은 데이터베이스의 두 가지 핵심 목표로, 상호 보완적인 관계를 가진다:

  • 데이터 독립성은 데이터베이스 구조 변경의 유연성을 제공하여 시스템의 확장성과 유지보수성을 향상시킨다.
  • 데이터 무결성은 저장된 데이터의 품질과 신뢰성을 보장하여 정확한 정보 제공과 의사결정을 지원한다.

두 개념이 모두 잘 구현된 데이터베이스 시스템은 변화하는 비즈니스 요구사항에 유연하게 대응하면서도 높은 데이터 품질을 유지할 수 있다.

데이터베이스의 목적인 데이터 독립성과 무결성을 이해하고 적절한 제약조건을 설정하는 것은 안정적이고 신뢰할 수 있는 데이터베이스 시스템을 구축하는 데 필수적이다. 이를 통해 데이터의 일관성과 정확성을 보장하고, 시스템의 유연성과 확장성을 높일 수 있다.

댓글남기기