1. 데이터베이스란

Chaeyun·2024년 1월 4일
0

DB

목록 보기
1/6

데이터베이스란?

전자적으로 저장하고 사용하는 관련 있는 데이터들의 조직화된 집합

DBMS란?

Database Management System의 줄임말로 사용자에게 DB를 정의하고 만들고 관리하는 기능을 제공하는 것.
ex) PostgreSQL, MySQL, Oracle, SQL Server 등

DB를 정의할 때 생기는 metadat도 관리함.

*metadata : 데이터를 설명하기 위한 데이터. catalog라고도 부름. (데이터 유형, 구조, 제약 조건, 보안, 인덱스 등)

Data Model이란?

DB 구조를 기술하는데 사용될 수 있는 개념의 집합
DB 구조(데이터 유형, 제약 사항, 데이터 관계 등)를 추상화해서 표현할 수 있는 수단을 제공한다.

여러 종류가 있고 종류마다 추상화 수준, DB 구조화 방식이 조금씩 다름.
크게 conceptua, logical, physical data model이 있음.

1. conceptual(=high level)

추상화 수준이 매우 높으며 일반 사용자들이 쉽게 이해할 수 있음.
따라서 비즈니스 요구사항을 추상화해 기술할 때 사용함.

예시로 entity-relationship model이 있음.

(사진 출처 : https://victorydntmd.tistory.com/126)

2. logical(=representational)

이해하기 어렵지 않으나 특정 DBMS와 Storage에 종속되지 않는 수준에서 디테일하게 DB를 구조화함.
데이터가 컴퓨터에 저장될 때의 구조와 크게 다르지 않음.
약간 추상화됨.

예시로 relational data model이 있음.

(사진 출처: https://velog.io/@gmlstjq123/5%EC%A3%BC%EC%B0%A8.-Relational-Data-Model)

3. physical(=low level)

컴퓨터에 데이터가 어떻게 파일 형태로(물리적으로) 저장되는지 기술할 수 있는 수단을 제공
data format, data ordering, access path 등을 기술함.

*access path: 데이터 검색을 빠르게 하기 위한 index 등의 구조체

Schema란?

data model을 바탕으로 database의 구조와 제약조건에 관한 전반적인 명세를 기술한 것.
설계 단계에서 정해지며, 이후 자주 바뀌지 않음.

스키마와 데이터 모델의 차이?

개인적으로 궁금해서 찾아봄.
데이터 모델은 데이터베이스를 설계하기 위한 틀 같은 개념(설계를 위한 틀을 만들고 각 요소가 무얼 의미하는지 정해놓은것)

스키마는 데이터 모델을 이용해 실제 설계한 산출물 같은 개념임.
(출처: https://velog.io/@kdhangelic/데이터베이스-개론-2)

Database State란?

database의 실제 데이터는 시간이 지남에 따라 자주 바뀔 수 있음.
특정 시점의 데이터를 database state 혹은 snapshot이라고 함.

three schema architecture

database system을 구축하는 architecture 중 하나.
근데 대부분 이 three schema architecture를 사용함.
user와 application으로부터 물리적인 DB를 분리하기 위한 목적임.
external(=view), conceptual, internal 세 가지 level이 존재하며 level별로 schema를 정의함.

1. external schmea

특정 유저들이 필요로 하는 데이터만 표현하고 나머지는 숨김.
logical data model을 사용함.

2. conceptual schema

전체 database 구조를 기술함. internal schema를 추상화한 것으로 물리적 저장 구조는 숨김.
entities, data types, relationships, user operations, constraints에 집중.
logical data model을 사용함.

3. internal schema

물리적으로 데이터가 어떻게 저장되는지를 기술함.
physical data model을 사용함.
data storage, data structure, access path 등 실체가 있는 내용을 기술함.

스키마의 예 (출처 : 모름. 아시는 분은 댓글로 부탁드립니다.)

이처럼 3 schema architectur는 각 레벨을 분리하여 한 레벨의 변화가 상위 레벨에 영향을 주지 않는다.
하지만 대부분의 DBMS가 완벽하게, 명시적으로 3 level을 나누진 않는다.
실제 데이터가 존재하는 곳은 internal level이다.

0개의 댓글