SQL - Schema

이제일·2021년 8월 2일
0

SQL

목록 보기
2/4

스키마란

  • 스키마 자체는 개요, 구조, 형식이라는 뜻을 가지고 있다
  • DB에서의 스키마란 DB의 구조와 제약조건에 관해 전반적인 명세를 기술한 것을 말한다.
    논리적 개념의 일반적인 데이터베이스 용어

MySQL에서의 스키마

  • MySQL에서의 스키마는 테이블의 집합체로써의 데이터베이스를 스키마라고 얘기한다.
    아래의 명령어는 동일하다.
CREATE DATABASE 'User_db';
CREATE SCHEMA 'User_db';

JSON에서의 스키마

  • 적법한 JSON 데이터의 형식을 기술한 문서를 JSON 스키마라고 합니다.
{

    "title": "강아지 스키마",
    "description": "이 스키마는 강아지에 관한 데이터를 검증하기 위해 작성된 스키마임.",
    "type": "object",
    "properties": {
        "name": {"type": "string"},
        "family": {"type": "string"},
        "age": {"type": "integer"},
        "weight": {"type": "number"},
        "owner": {
            "type": "object",
            "properties": {
                "ownerName": {"type": "string"},
                "phone": {"type": "string"}
            }
        }
    }
}

3층 스키마(3-Level Schema)

  • 사용자, 설계자, 개발자가 데이터베이스를 보는 관점에 따라 데이터베이스를 기술하고 이들 간의 관계를 정의한 ANSI 표준
  • 3단계 계층으로 분리해서 독립성을 확보한다
  • 각 계층을 뷰(View)라고 하며, 일반적으로 스키마는 개념 스키마를 뜻한다.

구조

외부 스키마(external schema)

  • 응용 프로그램이 접근하는 데이터베이스를 정의한다.
  • 사용자 관점 또는 사용자 뷰를 표현한다.
  • 하나의 데이터베이스에 대해 여러개가 존재할 수 있어서 다른 말로 서브 스키마로 라고도 한다.
  • 유저를 생성해 접근을 제한한 것과 비슷하다.
  • GRANT ALL PRIVILEGES ON test.* TO userid@'%' IDENTIFIED BY 'password';

개념 스키마(conceptual schema)

  • 설계자 관점, 사용자 전체 집단의 데이터베이스 구조이다.
  • 통합 데이터베이스 구조이다.
  • 전체 데이터베이스 내의 모든 데이터에 관한 규칙과 의미를 묘사한다.

내부 스키마(internal schema)

  • 개발자, 시스템 설계자 관점의 스키마이다.
  • 물리적으로 저장하는 데이터베이스의 구조이다.
  • 데이터의 저장 구조, 레코드의 구조, 필드의 정의, 인덱스와 해시등을 의미한다.
  • 내부 스키마에 기술한 내용에 따라 운영체제의 파일시스템에 의해 물리적 저장장치에 기록된다.

독립성

  • 논리적 독립성
    개념 스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것
    • 관리자 비밀번호가 바뀌더라도 사용자에게는 영향이 없음
  • 물리적 독립성
    내부 스키마가 변경되더라도 개념 스키마가 영향을 받지 않는 것
    • 저장장치가 변경되더라도 데이터베이스에는 영향이 없음
profile
세상 제일 이제일

0개의 댓글