Oracle & Tibero 제약조건 관리 완벽 가이드|종류·추가·수정·삭제 예제

데이터베이스의 무결성과 일관성을 유지하는 핵심 요소 중 하나가 바로 제약조건(Constraint) 입니다. 이번 글에서는 OracleTibero에서 제약조건의 종류와 특징을 정리하고, 제약조건을 추가·수정·삭제하는 SQL 예제를 제공합니다. 실무에서 자주 쓰이는 관리 팁과 함께 안정적인 DB 운영을 위한 제약조건 활용법을 배워보세요.

제약조건(Constraint)란?

제약조건은 테이블에 저장되는 데이터의 유효성을 보장하기 위해 설정하는 규칙입니다. 이를 통해 잘못된 데이터 입력을 방지하고 데이터 무결성을 유지할 수 있습니다.

대표적인 제약조건 종류

  • PRIMARY KEY : 유일하고 NULL이 될 수 없는 기본 키
  • FOREIGN KEY : 다른 테이블의 키를 참조
  • UNIQUE : 중복 불가(고유 데이터)
  • NOT NULL : NULL 허용 안 함(기본은 NULL 허용)
  • CHECK : 조건식 만족 여부 검사

Oracle 제약조건 관리 예제 쿼리

제약조건 추가

-- PRIMARY KEY 추가
ALTER TABLE item_table
ADD CONSTRAINT pk_item_code PRIMARY KEY (item_code);

-- FOREIGN KEY 추가
ALTER TABLE order_table
ADD CONSTRAINT fk_item_code FOREIGN KEY (item_code)
REFERENCES item_table(item_code);

-- CHECK 제약조건 추가
ALTER TABLE item_table
ADD CONSTRAINT chk_use CHECK (use_dvs > 0);
SQL
  • FOREIGN KEY 추가시
    • item_code 컬럼은 item_table, order_table 2개의 테이블에 존재해야 합니다.
    • 주문서 정보에 포함된 상품 정보를 참조하기 위한 Key

💡 Tip: Oracle에서는 제약조건 이름(CONSTRAINT constraint_name)을 명시하는 습관을 들이면 유지보수 시 유리합니다.

제약조건 조회

SELECT constraint_name, constraint_type, table_name
FROM user_constraints
WHERE table_name = 'ITEM_TABLE';
SQL

constraint_type 코드

  • P : PRIMARY KEY
  • R : FOREIGN KEY
  • U : UNIQUE
  • C : CHECK

제약조건 수정·삭제

-- 제약조건 삭제
ALTER TABLE item_table DROP CONSTRAINT pk_item_code;

-- 제약조건 비활성화
ALTER TABLE item_table DISABLE CONSTRAINT pk_item_code;

-- 제약조건 활성화
ALTER TABLE item_table ENABLE CONSTRAINT pk_item_code;
SQL

Tibero 제약조건 관리 예제 쿼리

Tibero는 Oracle 호환성을 고려한 DBMS이므로 대부분의 문법이 동일합니다.

제약조건 추가

ALTER TABLE item_table
ADD CONSTRAINT pk_item_code PRIMARY KEY (item_code);

ALTER TABLE order_table
ADD CONSTRAINT fk_item_code FOREIGN KEY (item_code)
REFERENCES item_table(item_code);
SQL

제약조건 조회

SELECT constraint_name, constraint_type, table_name
FROM user_constraints
WHERE table_name = 'ITEM_TABLE';
SQL

💡 Tip: Tibero에서도 Oracle과 동일한 user_constraints 뷰를 사용합니다.

제약조건 수정·삭제

ALTER TABLE item_table DROP CONSTRAINT pk_item_code;
ALTER TABLE item_table DISABLE CONSTRAINT pk_item_code;
ALTER TABLE item_table ENABLE CONSTRAINT pk_item_code;
SQL

실무 활용 팁

  • 제약조건 네이밍 규칙: PK_테이블명, FK_테이블명_참조테이블명처럼 일관되게
  • DISABLE 사용: 데이터 로드 시 일시적으로 비활성화 후 다시 ENABLE
  • CHECK 조건: 가능하면 애플리케이션 로직보다 DB에서 1차 필터링
  • 외래키 관리: 삭제/갱신 시 CASCADE 옵션 사용 여부를 신중하게 결정

마무리

Oracle과 Tibero에서 제약조건 관리는 데이터 무결성과 안정성을 확보하는 핵심 작업입니다. 제약조건의 종류와 문법을 숙지하면, 설계 단계부터 운영까지 더 안전한 DB 환경을 구축할 수 있습니다. 특히 제약조건 네이밍 규칙과 관리 팁을 습관화하면, 유지보수 효율이 크게 향상됩니다.

관련 포스팅들

위로 스크롤