본문 바로가기
DB

[DB] 스키마가 뭔데?

by 오렌지마끼야또 2024. 2. 14.
728x90
반응형

 

 

 

 

 

 

 

스키마는 메타데이터의 집합 입니다.

 

테이블이 몇개있는지

테이블 명이 뭔지

테이블 용량이 얼마인지

컬럼이 뭐가 있는지

컬럼 길이는 몇인지

인덱스가 뭔지

뷰가 몇개인지

함수, 트리거 등등

 

=> DB를 설명하기 위한 데이터, 즉 메타데이터의 집합 = 스키마

 

스키마는 db의 구조와 제약 조건에 관한 전반적인 명세를 정의한 메타데이터의 집합입니다.

 

거두절미하고 실제 DB를 봅시다

 

create schema myschema;

로 생성된 스키마는 데이터를 그룹화하여 네임스페이스같은 역할을 합니다.

스키마는 여러개를 생성할 수 있고

스키마가 다르면 테이블 명을 똑같이 할 수 있습니다.(물론 헷갈리니 그렇게 하진 않겠지만)

 

 

그럼 외부 스키마, 내부 스키마, 개념 스키마는 무엇이냐

그냥 "개념적으로 나눈 것" 그 이상도 이하도 아닙니다.

실제로 3가지로 나눠서 존재하는게 아니라는 뜻입니다.

 

실질적인 스키마는 위의 이미지에서 보듯 "메타데이터의 집합" 이라는 것이 전부입니다.

 

그럼 이걸 굳이 개념적으로 3가지를 나누었느냐?

 

DB 사용자의 관점에 따라 필요한 내용을 보여주기 위함입니다.

 

데이터분석가가 필요한 데이터를 찾아서 보는데 데이터의 압축률까지 알아야 할까요? 그렇지 않다는 뜻입니다.

 

각각의 관점을 이해하기 좋은 그림인 것 같습니다.

 

 

 

 

 

외부 스키마

 

누군가 원하는 정보를 조회 했습니다. 또는 view를 만들었습니다.

결과가 나왔습니다.

그것에 해당하는 메타데이터 집합(테이블 명, 컬럼 명, 컬럼 타입, 컬럼 길이, PK, FK 등) 이 외부 스키마입니다.

-> 사용자에게 보여지는 데이터와! 관련된 메타데이터 집합 = 외부 스키마

 

그러면 사용자마다 원하는 정보가 모두 다르겠죠?

그래서 외부 스키마도 그때그때 여러가지가 존재합니다.

 

● 외부스키마에 포함되는 메타데이터
테이블 명, 뷰 명, 컬럼 명, 컬럼 타입/길이, 제약 조건(NOT NULL, UNIQUE, DEFAULT, CHECK 등)
권한(사용자별 데이터 접근권한, CRUD 권한)
별칭(테이블 또는 컬럼에 대한 사용자 정의 이름)
설명(테이블, 뷰, 컬럼 등에 대한 설명)
통계 정보(예: 레코드 수, 평균값, 최대값) 등

 

 

 

 

 

 

개념 스키마

 

●  포함되는 메타데이터

 

엔터티 : 데이터베이스에서 관리되는 대상 (예: 고객, 제품, 주문) = 테이블 명
속성 : 엔터티의 특성을 나타내는 정보 (예: 고객 이름, 제품 가격, 주문 날짜) = 컬럼명
관계 : 엔터티 간의 연결 (예: 고객이 주문을 하는 관계) = 1:1, 1:N, N:M
제약 조건 : 데이터 무결성을 유지하기 위한 규칙 (예: 고객은 하나 이상의 주문을 가질 수 있다) = NOT NULL, UNIQUE, DEFAULT, CHECK 등


데이터 유형 : 속성에 저장될 데이터의 종류 (예: 문자, 숫자, 날짜) = 컬럼 타입
길이 : 속성에 저장될 데이터의 최대 길이 = 컬럼 길이
기본값 : 새 레코드가 생성될 때 속성에 자동으로 입력될 값
설명 : 엔터티, 속성, 관계 등에 대한 설명
통계 정보 : 엔터티에 저장된 데이터의 통계 정보 (예: 레코드 수, 평균값, 최대값)

 

 

 

 

 

 

내부 스키마

 

●  포함되는 메타데이터


저장 방식 : 데이터가 저장되는 물리적 장치 및 방식 (예: 디스크, 테이블, 인덱스)
데이터 구조 : 데이터가 저장되는 구조 (예: 레코드, 필드)
데이터 형식 : 데이터가 저장되는 형식 (예: 문자, 숫자, 날짜)
접근 방법 : 데이터에 접근하는 방법 (예: 인덱스, 포인터)

저장 공간 할당 : 각 데이터 항목에 할당되는 저장 공간
압축률 : 데이터 압축 여부 및 압축률
암호화 : 데이터 암호화 여부 및 암호화 알고리즘
보안 설정 : 데이터 접근 권한 및 제어
성능 최적화 : 데이터 검색 및 처리 속도 향상을 위한 설정

 

 

 

 

 

 

 

https://prinha.tistory.com/entry/DB-3%EB%8B%A8%EA%B3%84-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%99%B8%EB%B6%80%EA%B0%9C%EB%85%90%EB%82%B4%EB%B6%80%EC%8A%A4%ED%82%A4%EB%A7%88

 

 

 

 

 

 

728x90
반응형

댓글