본문 바로가기
Database/Oracle

[ORACLE] USER_TYPE_ATTRS : 사용자 정의 객체 타입 속성 분석 가이드

by Papa Martino V 2025. 8. 10.
728x90

USER_TYPE_ATTRS : 사용자 정의 객체 타입 속성 분석 가이드
[ORACLE] USER_TYPE_ATTRS

1. USER_TYPE_ATTRS란?

USER_TYPE_ATTRS는 Oracle 데이터베이스에서 사용자가 정의한 객체 타입(OBJECT TYPE)에 포함된 **속성(Attributes)** 정보를 조회할 수 있는 데이터 딕셔너리 뷰입니다. 이 뷰는 객체 타입 내부의 필드 구조를 상세하게 보여주기 때문에, 데이터베이스 내 객체 지향 설계 구조를 분석하거나 통합 문서를 생성할 때 유용합니다. 특히 USER_TYPES 뷰와 함께 사용하면, 객체 타입의 정의 및 구조를 완전하게 이해할 수 있습니다.

2. 주요 컬럼 설명

컬럼명 설명
TYPE_NAME 속성이 속한 객체 타입의 이름
ATTR_NAME 속성 이름 (필드명)
ATTR_TYPE_NAME 속성의 데이터 타입 이름 (예: VARCHAR2, NUMBER, 사용자 정의 타입)
LENGTH 문자형 속성의 길이 (숫자형, DATE 등은 NULL)
PRECISION 숫자형 속성의 정밀도
SCALE 숫자형 속성의 소수점 이하 자리수
ATTR_NO 속성의 순서 번호

3. 실전 활용 예제

3.1. 모든 사용자 정의 객체 타입의 속성 조회


SELECT 
  TYPE_NAME, 
  ATTR_NO, 
  ATTR_NAME, 
  ATTR_TYPE_NAME 
FROM 
  USER_TYPE_ATTRS 
ORDER BY 
  TYPE_NAME, ATTR_NO;
    

3.2. 특정 타입에 정의된 속성 정보 확인


SELECT 
  ATTR_NAME, 
  ATTR_TYPE_NAME, 
  LENGTH, 
  PRECISION, 
  SCALE 
FROM 
  USER_TYPE_ATTRS 
WHERE 
  TYPE_NAME = 'EMPLOYEE_OBJ';
    

3.3. 숫자형 속성만 필터링


SELECT 
  TYPE_NAME, 
  ATTR_NAME, 
  PRECISION, 
  SCALE 
FROM 
  USER_TYPE_ATTRS 
WHERE 
  ATTR_TYPE_NAME IN ('NUMBER', 'DECIMAL');
    

4. USER_TYPE_ATTRS vs 관련 뷰 비교

뷰 이름 설명 역할 사용 대상
USER_TYPES 객체 타입의 메타 정보 조회 타입 이름, 속성 수, 메서드 수 등 전체 정의 요약
USER_TYPE_ATTRS 객체 타입의 속성 상세 정보 각 필드의 이름, 순서, 데이터 타입 확인 객체 필드 분석
USER_TYPE_METHODS 객체 타입에 정의된 메서드 정보 프로시저, 함수 형태의 메서드 목록 캡슐화 로직 분석

5. USER_TYPE_ATTRS 활용 전략

  • 객체 모델 시각화: 객체 타입의 구조를 ERD 문서 또는 API 문서로 생성할 때 활용
  • 코드 자동 생성: 속성 정보를 기반으로 INSERT/UPDATE 스크립트 자동 생성
  • OOP 설계 검토: 속성 명세를 통해 데이터 정규화, 책임 분리 구조 검증
  • 모듈 재사용: 동일 속성을 가진 객체 타입을 공통 정의로 통합 가능

6. 주의사항

  • 속성 수정 제한: 기존 타입에 속성을 직접 추가/삭제하는 것은 제한적이므로 초기 설계가 중요
  • 대소문자 구분: TYPE_NAME, ATTR_NAME은 기본적으로 대문자로 저장되므로 쿼리 시 주의
  • 의존성 고려: 타입 변경 시 관련된 테이블, 프로시저, 패키지 등 모두 영향을 받을 수 있음

7. 결론

USER_TYPE_ATTRS는 Oracle 객체 타입 내 속성 정보를 세부적으로 분석할 수 있는 매우 중요한 뷰입니다. 객체 지향 설계가 요구되는 시스템에서 데이터 구조의 재사용성과 유지보수 효율을 높이기 위해 필수적으로 활용되어야 하며, USER_TYPES, USER_TYPE_METHODS와 함께 사용하면 데이터베이스 내의 복잡한 OOP 구조를 체계적으로 분석하고 문서화할 수 있습니다.

8. 출처

728x90