데이터베이스/MySQL

[MySQL] 데이터 사전(Data Dictionary)

webvillain 2021. 6. 2. 00:26

데이터 사전(Data Dictionary)

- 대부분 읽기 전용으로 제공되는 테이블 및 뷰들의 집합으로 데이터베이스의 전반에 대한 정보를 제공합니다.

- 데이터베이스에 저장되어 있는 모든 데이터 개체들에 대한 정보를 유지 · 관리 하는 시스템으로, 시스템 카탈로그라고도 합니다.

- 데이터 사전의 내용을 변경하는 권한은 시스템이 가지며, 사용자에게는 읽기전용 테이블 형태로 제공되므로 단순 조회만 가능합니다.
- '데이터에 관한 데이터(Data About Data)'가 저장되어 있다고 하여 데이터 사전을 메타데이터(Meta data)라고도 합니다.


 

▶  데이터 사전 내용

데이터 사전 안에 존재하는 메타데이터의 유형은 다음과 같습니다.

 

• 사용자 정보 (아이디, 패스워드, 권한 등)
• 데이터베이스 스키마 객체 정보 (TABLE, VIEW, INDEX, CLUSTER, SYNONYM, SEQUENCE 등의 정보)

• 무결성 제약조건에 관한 정보 (기본키, 외래키, NULL 값 허용 여부 등)

• 데이터베이스 구조 정보 (테이블 스페이스, 데이터 파일, 세그먼트, 사용자, 테이블 등)

• 데이터베이스의 함수, 프로시저 및 트리거에 대한 정보

• 테이블과 컬럼 속성 정보 (사용가능한 디스크 용량, 컬럼 타입, 기본값 등)


데이터 사전 내용이 메타데이터라는 것은 모든 DBMS 제품에 공통이지만 데이터 사전을 구현하는 방법, 관리하는 방법 등의 차이로 메타데이터의 구체적인 내용은 제품마다 다릅니다.


 

▶  데이터 사전 영역

영역 검색 범위 데이터 사전 검색 쿼리문(예시)
DBA_ 데이터베이스의 모든 객체 조회 가능
(DBA_는 시스템 접근 권한 의미)
select * from DBA_TABLES
select * from DBA_INDEXES
select * from DBA_VIEWS
ALL_ 자신의 계정으로 접근 가능한 객체와  타 계정의 접근권한을 가진 모든 객체 조회 가능 select * from ALL_TABLES
select * from ALL_INDEXES
select * from ALL_VIEWS
USER_ 현재 자신의 계정이 소유한 객체 조회 가능 select * from USER_TABLES
select * from USER_INDEXES
select * from USER_VIEWS

 

▶  데이터 사전 검색

-- Information_schema 로 이동
use Information_schema;

-- 테이블 목록 보기
show tables;

 

▶  주요 데이터 사전 테이블

데이터 사전 테이블 주요 내용
CHARACTER_SETS 사용 가능한 모든 문자 셋에 대한 정보
COLLATIONS 콜레션은 데이터베이스에 저장된 값들을 비교, 검색하거나 정렬 등의 작업을 위해
문자들을 서로 비교할 때 사용하는 규칙들의 집합. 사용 가능한 모든 콜레션에 대한 정보
COLUMNS 테이블 컬럼에 대한 콜레션 정보
COLUMN_PRIVILEGES 테이블 컬럼 권한에 대한 정보 제공
KEY_COLUMN_USAGE 제약사항을 가지고 있는 키 컬럼에 대한 정보 제공
ROUTINES 스토어드 루틴이란 DB상에 저장된 SQL 구문. 스토어드 루틴에 대한 정보
SCHEMATA 하나의 스키마는 하나의 데이터베이스로, SCHMATA는 데이터베 이스의 정보 제공
TABLES 데이터베이스에 존재하는 테이블에 대한 정보 제공
TABLE_CONSTRAINTS 테이블에 대한 제약사항에 대한 정보
TRIGGERS 트리거에 대한 정보 제공
(트리거란 테이블에 대한 이벤트에 반 응하여 자동으로 실행되는 작업을 의미)
VIEWS DB에 있는 뷰에 대한 정보 제공

 

▶  데이터 사전 내용 검색

-- 데이터 사전 테이블 중 'tables' 란 테이블 내용 조회
SELECT * FROM tables;