Oracle 12c 데이터베이스 12 - 메타데이터(Metadata), 캐릭터셋(Character set)

💡 본 글은 ‘실습과 함께하는! 데이터베이스 Oracle 12c’ 강의 내용을 바탕으로 정리하였습니다.

메타데이터 (Metadata)

개념

  • 데이터의 데이터
  • DB, 테이블의 스키마에 대한 정보를 저장하는 테이블
  • DB명, 테이블명, 컬럼명, 사용자명 등

구분

데이터 사전(Data Dictionary)

  • 데이터베이스의 정보 저장
  • 시스템 카탈로그(System Catalog)라고도 함
  • 일반적으로 읽기전용모드(Read-only)

데이터 디렉토리(Data Directory)

  • DBMS의 모든 데이터가 저장되는 디렉토리(폴더)
  • DB 저장, 상태 및 로그 저장

종류

데이터 사전 Prefix

종류 설명 예시
USER_ 특정 사용자 관련 정보 저장 USER_TABLES
ALL_ 전체 대상 ALL_TABLES
DBA_ DB 관리자 관련 정보 저장 DBA_TABLES
CBA_ 컨테이너 관련 정보 저장, 12c부터 추가됨  

예시

  • tabs
    • 테이블의 약자
    • 접속한 사용자가 소유한 테이블의 정보를 저장하는 데이터 딕셔너리
  • cols
    • 컬럼의 약자
    • 특정 컬럼의 정보 조회
  • cons_columns, constraints
    • 제약 조건 조회
  • user_indexes
    • 인덱스 조회
  • 그 밖에 views, ind_columns, triggers, sequences, users, tab_privs

캐릭터셋(Character set)

개념

  • 문자인코딩 정보, 메타데이터의 일종
  • 문자열(varchar, char)의 값을 저장할 때 사용되는 기본 정보
  • DB, 테이블 별로 별도 설정 가능
  • 캐릭터셋을 변경하려면 마이그레이션하거나 변환해서 넣거나

종류

  • ASCII 코드
    • 미국 표준
    • 1 글자에 1 바이트
    • 다른 나라는 약간씩 변형 (하지만 한중일은 이마저도 따르기 어려워서 완전 바꿈) → ISO8859로 다시 표준화
  • 한글 코드
    • MSC5601 / EUC-KR
    • MS의 확장완성형: MS949/CP949
  • 유니코드
    • 전세계 모든 글자를 가지는 문자코드
    • 유니코드 기반으로 운영체제를 만들면 국가 별로 로컬라이징할 필요가 없어짐
  • UTF-8
    • 아스키로 작성된 코드를 다시 유니코드로 짜려니 힘듦
    • 유니코드의 가변길이 인코딩(1-6 바이트)
    • 기존의 1 바이트로 된 영문 프로그램은 다시 유니코드로 변환하지 않아도 됨 (한글은 3 바이트)

조회

  • nls_database_parameters 테이블 조회
  SELECT * FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET'