오라클 SQL · 객체와 성능

제약조건과 데이터 무결성

좋은 데이터베이스는 잘못된 데이터를 애초에 받지 않는다. 제약조건은 데이터 무결성을 보장하는 핵심 장치이며, 오라클 SQL 시험에서도 매우 중요한 주제다.

제약조건과 데이터 무결성 대표 이미지

이 글에서 꼭 잡아야 할 것

좋은 데이터베이스는 잘못된 데이터를 애초에 받지 않는다. 제약조건은 데이터 무결성을 보장하는 핵심 장치이며, 오라클 SQL 시험에서도 매우 중요한 주제다.

무결성은 SQL 문장 실력 못지않게 중요하다. 테이블 설계 단계에서 제약조건을 적절히 걸어 두면 조회문이 훨씬 안정적으로 동작하고, 잘못된 데이터로 인한 후처리 비용도 크게 줄일 수 있다. 시험에서도 각 제약조건의 역할과 특징을 비교하는 문제가 자주 나온다.

난이도 중급
모듈 객체와 성능
학습 시간 10분
핵심 키워드 PRIMARY KEY, FOREIGN KEY, NOT NULL

개념 지도와 이해 포인트

개체 무결성 PRIMARY KEY는 각 행을 유일하게 식별한다. NULL이 될 수 없고 중복도 허용하지 않는다.
참조 무결성 FOREIGN KEY는 다른 테이블의 키를 참조해 관계를 보장한다. 존재하지 않는 부모 값을 막는 역할을 한다.
도메인 무결성 NOT NULL, UNIQUE, CHECK 같은 제약조건은 컬럼에 들어올 수 있는 값의 범위를 제한한다.
제약조건과 데이터 무결성 개념 다이어그램

대표 문법 패턴

CREATE TABLE departments_demo (
  department_id NUMBER CONSTRAINT pk_departments_demo PRIMARY KEY,
  department_name VARCHAR2(100) NOT NULL
);

CREATE TABLE employees_demo (
  employee_id NUMBER PRIMARY KEY,
  department_id NUMBER,
  CONSTRAINT fk_emp_dept
    FOREIGN KEY (department_id)
    REFERENCES departments_demo(department_id)
);

문법 읽는 포인트

  • PRIMARY KEY는 유일성과 NOT NULL 성질을 함께 가진다.
  • FOREIGN KEY는 참조 테이블과의 관계를 보장한다.
  • CHECK는 값 범위를 제한하는 데 유용하다.

핵심 용어

  • PRIMARY KEY
  • FOREIGN KEY
  • NOT NULL

직원-부서 관계를 제약조건으로 묶기

제약조건은 데이터를 넣을 때 귀찮은 규칙처럼 보일 수 있지만, 사실은 시스템 전체의 품질을 지키는 안전장치다. 설계 단계에서 잘 잡아 두면 조회와 분석 단계가 훨씬 편해진다.

ALTER TABLE employees_demo
ADD CONSTRAINT ck_salary_positive
CHECK (salary >= 0);

수험 체크포인트와 자주 하는 실수

시험 체크포인트

  • PRIMARY KEY와 UNIQUE 차이는 NULL 허용 여부까지 함께 비교하자.
  • FOREIGN KEY는 참조 무결성의 핵심이라는 점을 기억하자.
  • CHECK와 NOT NULL은 컬럼 수준 규칙 문제에서 자주 묶여 나온다.

자주 하는 실수

  • UNIQUE와 PRIMARY KEY를 완전히 같은 의미로 보는 실수
  • 외래키가 항상 부모 삭제를 막는 방식만 있다고 단순화하는 실수
  • 제약조건을 단순 문법 암기로만 접근하는 실수

연결 학습

구조와 규칙이 준비되었다면 이제 실제 데이터를 넣고 바꾸는 DML을 다룰 차례다. 다음 챕터에서는 INSERT, UPDATE, DELETE, MERGE를 정리한다.

댓글 0

작성자 이름과 댓글 내용을 입력하면 바로 등록됩니다. 답글은 한 단계까지 지원하고, 댓글은 최대 200자까지 작성할 수 있습니다.

일반 댓글 작성

댓글을 불러오는 중입니다.

같은 카테고리에서 이어서 읽기

지금 읽은 글과 가까운 흐름의 글 5개를 모아 두었습니다. 바로 앞뒤 문맥을 이어서 읽고 싶을 때 가장 편합니다.