Database Schema(데이터베이스 스키마)
- DB구조를 정의하기 위해 사용하는 개념
- 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의(개체, 속성, 관계, 제약조건 등)
- DBMS에서 주어진 설정에 따라 데이터베이스 스키마를 생성
- 사용자가 자료를 저장, 조회, 삭제, 변경할 떄 DBMS는 자신이 생성한 데이터베이스 스키마를 참조하여 명령을 수행
-
사용자의 관점에 따라서 외부, 개념, 내부 스키마로 구분
- 외부 스키마(extended schema)
- 사용자의 입장에서 본 데이터베이스 구조
- 사용자 또는 응용 프로그램이 질의(SQL)나 프로그래밍 언어를 이용해 접근하는 데이터베이스를 정의
- 전체 데이터 베이스의 한 논리적 부분을 정의(서브 스키마)
- 개념 스키마를 통해 성성되고 지원을 받기 떄문에 외부 스키마는 개념 스키마의 부분집합에 해당
- 개념 스키마(conceptual schema)
- 조직 전체의 입장에서 본 데이터베이스 구조
- 전체적인 데이터베이스 구조를 기술
- 개체(entity, 데이터 유형, 관게, 사용자 연산, 제약조건 등을 정의
- 일반적으로 스키마라고 하면 개념 스키마를 의미한다.
- 내부 스키마(internal schema)
- 물리적 저장장치의 입장에서 본 데이터베이스 구조
- 개념 스키마의 물리적 저장 구조에 대한 정의를 기술
- 레코드 형식, 인덱스, 저장 데이터 표현 방법 등을 정의
데이터 사전
- DB에 저장되어 있는 모든 개체들에 대한 정보를 유지, 관리하는 시스템
- 시스템 카탈로그 데이터에 관한 데이터(Data ABOUT Data)가 저장되어 있다고 하여 메타데이터 라고도 한다.
- 데이터베이스 스키마의 정보가 저장된다.
Information_schema
- Mysql 과 MSSQL에서 사용되는 데이터 사전 데이터베이스
- MySQL 5.x 버전부터 추가됐다
- DBMS에 의해 동적으로 데이터가 생성된다.
- 읽기전용(read-only)로 설정되어 있어 사용자가 직접 수정 불가하다
- Tables table
- 데이터베이스 내 테이블에 대한 정보를 가진 Table
- table_name , table_type 컬럼을 이용해 테이블이름과 타입을 확인 가능하다.
- Columns table
- 데이터베이스 내 모든 컬럼에 대한 정보를 가진 Table
- colunm_name, table_name 컬럼을 이용해 특정 테이블의 컬럼을 확인 가능하다.