Database Schema(데이터베이스 스키마)

  • DB구조를 정의하기 위해 사용하는 개념
  • 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의(개체, 속성, 관계, 제약조건 등)
  • DBMS에서 주어진 설정에 따라 데이터베이스 스키마를 생성
  • 사용자가 자료를 저장, 조회, 삭제, 변경할 떄 DBMS는 자신이 생성한 데이터베이스 스키마를 참조하여 명령을 수행
  • 사용자의 관점에 따라서 외부, 개념, 내부 스키마로 구분

  • 외부 스키마(extended schema)
    • 사용자의 입장에서 본 데이터베이스 구조
    • 사용자 또는 응용 프로그램이 질의(SQL)나 프로그래밍 언어를 이용해 접근하는 데이터베이스를 정의
    • 전체 데이터 베이스의 한 논리적 부분을 정의(서브 스키마)
    • 개념 스키마를 통해 성성되고 지원을 받기 떄문에 외부 스키마는 개념 스키마의 부분집합에 해당
  • 개념 스키마(conceptual schema)
    • 조직 전체의 입장에서 본 데이터베이스 구조
    • 전체적인 데이터베이스 구조를 기술
    • 개체(entity, 데이터 유형, 관게, 사용자 연산, 제약조건 등을 정의
    • 일반적으로 스키마라고 하면 개념 스키마를 의미한다.
  • 내부 스키마(internal schema)
    • 물리적 저장장치의 입장에서 본 데이터베이스 구조
    • 개념 스키마의 물리적 저장 구조에 대한 정의를 기술
    • 레코드 형식, 인덱스, 저장 데이터 표현 방법 등을 정의

데이터스키마1

데이터 사전

  • 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 컬럼을 이용해 특정 테이블의 컬럼을 확인 가능하다.