본문 바로가기
Database/Oracle

[ORACLE] ALL_CONS_COLUMNS 뷰 완벽 이해 : 제약조건 컬럼 추적하기

by Papa Martino V 2025. 6. 16.
728x90

오라클 ALL_CONS_COLUMNS 뷰 완벽 이해 : 제약조건 컬럼 추적하기
[Oracle] ALL_CONS_COLUMNS

 

데이터베이스의 무결성을 보장하기 위해 기본키(PK), 외래키(FK), 고유 제약조건(UNIQUE) 등이 설정됩니다. 이러한 제약조건이 어떤 컬럼에 설정되어 있는지를 확인하려면 ALL_CONS_COLUMNS 뷰를 반드시 이해하고 있어야 합니다.

이 글에서는 Oracle의 ALL_CONS_COLUMNS 뷰의 구조와 함께, ALL_CONSTRAINTS와 연계하여 실무에서 제약조건을 분석하는 방법을 자세히 설명합니다.

1. ALL_CONS_COLUMNS란?

ALL_CONS_COLUMNS는 사용자가 접근 가능한 테이블 또는 뷰의 제약조건에 연결된 컬럼 정보를 보여주는 시스템 뷰입니다. 즉, 어떤 제약조건이 어떤 컬럼에 적용되었는지를 확인하는 데 쓰입니다.

2. 주요 컬럼 설명

컬럼명 설명
OWNER 제약조건이 설정된 테이블의 소유자
TABLE_NAME 제약조건이 적용된 테이블 이름
CONSTRAINT_NAME 제약조건 이름 (ALL_CONSTRAINTS와 연결)
COLUMN_NAME 제약조건이 적용된 컬럼 이름
POSITION 복합 키에서 컬럼의 순서

3. 관련 뷰 비교

뷰 이름 역할 주요 컬럼
ALL_CONS_COLUMNS 제약조건이 적용된 컬럼 정보 TABLE_NAME, CONSTRAINT_NAME, COLUMN_NAME
ALL_CONSTRAINTS 제약조건 정의 및 타입 CONSTRAINT_NAME, CONSTRAINT_TYPE, STATUS
DBA_CONS_COLUMNS DB 전체 제약조건 컬럼 정보 DBA 권한 필요

4. 실무 활용 예제

4.1 특정 테이블의 제약조건 컬럼 확인


SELECT COLUMN_NAME, CONSTRAINT_NAME
FROM ALL_CONS_COLUMNS
WHERE TABLE_NAME = 'EMPLOYEES'
  AND OWNER = 'HR';
  

4.2 제약조건과 유형까지 함께 조회 (JOIN 사용)


SELECT c.CONSTRAINT_NAME, c.CONSTRAINT_TYPE, col.COLUMN_NAME
FROM ALL_CONSTRAINTS c
JOIN ALL_CONS_COLUMNS col
  ON c.CONSTRAINT_NAME = col.CONSTRAINT_NAME
WHERE col.TABLE_NAME = 'EMPLOYEES'
  AND col.OWNER = 'HR';
  

4.3 외래키(FK)가 설정된 컬럼 목록 조회


SELECT col.TABLE_NAME, col.COLUMN_NAME, con.R_CONSTRAINT_NAME
FROM ALL_CONS_COLUMNS col
JOIN ALL_CONSTRAINTS con
  ON col.CONSTRAINT_NAME = con.CONSTRAINT_NAME
WHERE con.CONSTRAINT_TYPE = 'R';
  

4.4 복합 키(Composite Key) 컬럼 순서 파악


SELECT CONSTRAINT_NAME, COLUMN_NAME, POSITION
FROM ALL_CONS_COLUMNS
WHERE TABLE_NAME = 'ORDERS'
ORDER BY POSITION;
  

5. 제약조건 컬럼 정보 관리 전략

  • 모델링 도구 연계: ALL_CONS_COLUMNS 데이터를 데이터 모델링 툴로 내보내 구조를 시각화할 수 있습니다.
  • ERD 자동 생성: 제약조건 컬럼과 ALL_CONSTRAINTS를 조합하면 ERD 구성 자동화에 활용 가능합니다.
  • 데이터 이관 전 검증: 제약조건 컬럼이 일치하는지 확인하여 데이터 마이그레이션 리스크를 줄입니다.
  • 보안 감사: 외래키 컬럼을 통해 민감정보가 연결된 테이블 추적 가능

6. 제약조건 타입 요약

타입 설명 코드
PRIMARY KEY 기본키 P
FOREIGN KEY 외래키 R
UNIQUE 고유 제약조건 U
CHECK 조건 제약 C

7. 결론

Oracle의 ALL_CONS_COLUMNS 뷰는 제약조건이 어떤 컬럼에 설정되어 있는지를 식별하는 데 필수적인 도구입니다. ALL_CONSTRAINTS와의 조합을 통해 데이터베이스 구조를 정밀하게 파악할 수 있으며, 이는 데이터 무결성 확보, 보안 점검, 모델링 자동화 등에 폭넓게 활용됩니다. 실무 개발자 및 DBA는 제약조건의 유형과 적용 위치를 명확히 파악함으로써 시스템 안정성과 유지보수성을 향상시킬 수 있습니다.

8. 참고자료

 

728x90