Search

데이터베이스 시스템 [개념]

생성일
2024/12/08

1. 데이터베이스 기본 개념

1.1. 데이터 (data)

컴퓨터에 저장되어 사용될 수 있는 정보
예) 행정 데이터, 의료 데이터, 성적 데이터, 실험 데이터, …

1.2. 데이터베이스(database)

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

1.3. 데이터베이스 관리 시스템 (DBMS: database management system)

사용자에게 DB를 정의하고 만들고 관리하는 기능을 제공하는 소프트웨어 시스템
예) MySQL, PostgreSQL, Oracle DB

1.3.1. 메타데이터 (Metadata)

데이터베이스를 정의하거나 기술하는 데이터
data about data
메타 데이터 역시 DBMS로 관리
예) 데이터 유형, 구조, 제약 조건, 보안, 저장, 인덱스, 사용자 그룹 등

1.4. 데이터베이스 시스템 (database system)

database + DBMS + 연관된 어플리케이션
database라고도 부르기도 한다.
보충 설명 DBMS와 데이터베이스 시스템의 차이점
그림. database system 흐름도
전체적인 흐름 설명
1.
프로그래머: SQL 쿼리(예: SELECT * FROM users WHERE age > 30;)를 DBMS로 전송
2.
DBMS:
쿼리 파싱, 최적화 후 실행 계획 수립
실행기에서 데이터 검색
검색된 데이터 반환
3.
스토리지 엔진:
테이블에서 실제 데이터 검색
검색 방법에 따라 데이터가 물리적으로 저장된 장소에서 직접 데이터를 읽는 단계
4.
응답: DBMS에서 프로그래머로 결과 반환
보충 설명 DBMS 단계에서 쿼리 최적화실행기에서 데이터 검색의 차이

2. 데이터 모델 (data models)

DB 구조를 기술하는데 사용될 수 있는 개념들

2.1. 개념적 데이터 모델 (conceptual data models)

high-level
일반 사용자(비전공자)들이 쉽게 이해할 수 있는 데이터 모델
추상화 수준이 가장 높음
비즈니스 요구 사항을 추상화하여 기술할 때 사용
예) entity-relationship model (ER diagram)
예시1
그림. entity-relationship model (ER diagram)
예시2
그림. Modern entity-relationship model (ER diagram)

2.2. 논리적 데이터 모델 (logical data models)

representational
디테일하게 DB를 구조화할 수 있는 개념 제공
특정 DBMS, storage에 종속되지 않는 수준에서 DB를 구조화할 수 있음.
예)
relational data model (Oracle, MySQL)
object data model
object-relational data model (PostgreSQL)

2.3. 물리적 데이터 모델 (physical data models)

low-level
컴퓨터에 데이터가 어떻게 파일 형태로 저장되는지를 기술할 수 있는 수단 제공
data format, data orderings, access path 등

3. 데이터베이스 스키마 (database schema)

데이터베이스 모델을 바탕으로 데이터베이스의 구조를 기술한 것
스키마는 데이터베이스를 설계할 때 정해지며, 한번 정해진 후에는 자주 바뀌지 않는다.

4. 데이터베이스 상태 (database state)

데이터베이스의 실제 데이터는 꽤 자주 바뀐다.
특정 시점에 데이터베이스에 있는 데이터를 database state, snapshot, 또는 database instance라고 한다.

5. three-schema architecture

데이터베이스 시스템을 구축하는 아키텍처 중 하나
user application으로부터 물리적으로 데이터베이스를 분리하기 위한 목적
세 가지 level이 존재하며 각각 레벨마다 schema가 정의되어 있다.
그림. DBMS Three schema Architecture
등장 배경
각 레벨을 독립시켜, 어느 레벨에서의 변화가 상위 레벨에 영향을 주지 않기 위해 만들어졌다.
한 레벨이 변경되었을 때, mapping만을 변경해주면 되기 때문
다만, 대부분의 DBMS가 three level을 완벽하게 나누지는 않는다.ㅇ

5.1. 내부 스키마 (internal schema)

물리적 데이터가 어떻게 지정되는지 물리적 데이터 모델(physical data model)로 표현
data storage, data structure, access path 등 실체가 있는 내용을 기술

5.2. 외부 스키마 (external schema)

실제 사용자가 바라보는 스키마
external view, user view라고도 부름.
각 유저가 필요로 하는 데이터만 표현
그 외 알려줄 필요가 없는 데이터는 숨긴다.
논리적 데이터 모델(logical data model)을 통해 표현

5.3. 개념 스키마 (conceptual schema)

등장 배경
초창기 데이터베이스 아키텍처는 internal schema, external schema만 있었음
각 유저마다 필요로 하는 데이터가 달라 internal schema에서 중복되는 데이터가 포함되는 스키마가 여러 개 생김.
관리가 어려워지게 되어, conceptual schema 탄생
전체 데이터베이스에 대한 구조 기술
internal schema를 한 번 추상화해 표현한 스키마
물리적 저장 구조에 대한 내용은 숨김
entity, data type, relationships, user operations, constraints에 집중
논리적 데이터 모델(logical data model)을 통해 표현

6. 데이터베이스 언어 (database language)

6.1. 데이터 정의어 (DDL: data definition language)

개념 스키마(conceptual schema)를 정의하기 위해 사용되는 언어
내부 스키마(internal schema)까지 정의할 수 있는 경우도 있음.

6.2. 저장소 정의어 (SDL: storage definition language)

내부 스키마(internal schema)를 정의하는 용도로 사용되는 언어
현대 relational DBMS에서는 SDL이 거의 없고, 파라미터 등의 설정으로 대체됨.

6.3. 뷰 정의어 (VDL: view definition language)

외부 스키마(external schema)를 정의하는 용도로 사용되는 언어
대부분의 DBMS에서는 데이터 정의어(DDL)이 뷰 정의어(VDL) 역할까지 수행

6.4. 데이터 조작어 (DML: data manipulation language)

데이터를 활용하기 위한 언어
데이터의 추가, 삭제, 수정, 검색 등 기능을 제공하는 언어

6.5. 통합된 언어

오늘날의 DBMS는 DML, VDL, DDL이 따로 존재하기 보다는 통합된 언어로 존재
예) SQL(Structured Query Language)

참고 자료

이전 글
다음 글