💡 본 글은 ‘실습과 함께하는! 데이터베이스 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'