Database (DB)
- 데이터베이스는 전자적으로 저장되고 관리되는 관련된 데이터들의 조직화된 집합이다. 데이터베이스는 특정 목적을 위해 데이터를 구조화하고 저장하여 효율적으로 접근하고 관리할 수 있도록 한다.
Database Management System (DBMS)
- 데이터베이스 관리 시스템(Database Management System, DBMS)은 사용자에게 데이터베이스를 정의, 생성, 관리하는 기능을 제공하는 소프트웨어 시스템이다.
- 데이터베이스 구조를 정의할 때 생성되는 메타데이터(데이터에 관한 데이터) 또한 DBMS에 의해 저장되고 관리된다.
- DBMS는 데이터베이스를 관리하고 보호하며, 여러 사용자가 동시에 접근할 수 있도록 한다.
Database System
- 데이터베이스 시스템은 데이터베이스(DB), 데이터베이스 관리 시스템(DBMS), 및 데이터베이스와 상호작용하는 애플리케이션들로 구성된 시스템이다.
- 흔히 데이터베이스(Database)라고 불리기도 한다.
Data Models
- 데이터 모델은 데이터베이스의 구조를 기술하기 위해 사용되는 개념들의 집합이다. 이는 데이터베이스의 데이터를 어떻게 구조화하고, 저장하며, 관리할지에 대한 개념적 틀을 제공한다.
- 분류:
- Conceptual (or High-Level) Data Models:
- 일반 사용자가 이해하기 쉽게 데이터베이스의 구조를 추상화한 모델이다.
- 비즈니스 요구 사항을 추상화하여 기술할 때 주로 사용된다.
- 예: ER 다이어그램(엔터티-관계 다이어그램)
- Logical (or Representational) Data Models:
- 사용자가 이해하기 어렵지 않으면서도 데이터베이스를 디테일하게 구조화할 수 있는 개념을 제공한다.
- 데이터가 컴퓨터에 저장될 때의 구조와 밀접한 관련이 있다.
- 특정 DBMS에 종속되지 않는 추상적인 수준에서 데이터베이스 구조를 설계할 수 있다.
- 예: 관계형 데이터 모델, 객체 데이터 모델, 객체-관계형 데이터 모델
- Physical (or Low-Level) Data Models:
- 데이터가 물리적으로 컴퓨터에 어떻게 저장되는지를 설명하는 모델이다.
- 데이터의 포맷, 데이터 저장 순서, 접근 경로(인덱스 등) 등을 포함한다.
- Conceptual (or High-Level) Data Models:
Database Schema
- 데이터베이스 스키마는 데이터 모델을 기반으로 데이터베이스의 구조를 기술한 것이다. 데이터베이스의 설계 단계에서 정의되며, 데이터베이스의 논리적 구조를 표현한다.
- 스키마는 정적이며, 한 번 정의되면 자주 변경되지 않는다.
Database State
- 데이터베이스 상태는 특정 시점에 데이터베이스에 저장된 데이터의 실제 값을 의미한다.
- 데이터베이스 상태는 동적이며, 데이터가 추가되거나 수정됨에 따라 자주 변화한다. 특정 시점의 데이터베이스 상태를 스냅샷이라고도 한다.
Three-Schema Architecture
- Three-schema 아키텍처는 데이터베이스 시스템을 설계할 때 데이터베이스 구조를 세 가지 레벨로 나누어 표현하는 방식이다.
- 애플리케이션과 물리적 데이터 저장소를 분리하여 상호 독립성을 유지하며 특정 레벨에서의 변경이 다른 레벨에 영향을 미치지 않도록 한다.
- 대부분의 DBMS가 three level을 완벽하게 혹은 명시적으로 나누지는 않는다.
- External Schema:
- 특정 사용자나 애플리케이션이 필요로 하는 데이터만 표현한 사용자 뷰이다.
- Logical Data Model을 통해 표현된다.
- Conceptual Schema:
- 데이터베이스의 전체 구조를 기술하며, 물리적 저장 방식에 관한 내용은 숨긴다.
- 주로 엔터티, 데이터 타입, 관계, 제약 조건 등을 포함한다.
- Logical Data Model을 사용하여 기술된다.
- Internal Schema:
- 데이터가 실제로 컴퓨터에 어떻게 저장되는지를 기술한 물리적 구조이다.
- Physical Data Model을 통해 표현되며, 데이터 저장소의 레이아웃, 접근 경로 등을 포함한다.
Database Language
- DDL (Data Definition Language):
- 데이터베이스의 구조를 정의하기 위한 언어이다. 주로 Conceptual Schema를 정의하는 데 사용된다.
- 일부 DBMS에서는 DDL로 Internal Schema까지 정의할 수 있다.
- SDL (Storage Definition Language):
- 데이터가 물리적으로 어떻게 저장될지를 정의하는 언어이다. Internal Schema를 기술한다.
- 현대의 DBMS에서는 이 언어를 별도로 사용하지 않고, DDL이 이를 포함하거나 설정 파일로 대체된다.
- VDL (View Definition Language):
- 특정 사용자나 애플리케이션을 위한 뷰를 정의하는 언어이다. External Schema를 정의하는 데 사용된다.
- 대부분의 DBMS에서는 DDL이 VDL의 역할도 겸한다.
- DML (Data Manipulation Language):
- 데이터베이스 내의 데이터를 조작하기 위한 언어이다. 데이터의 생성, 읽기, 수정, 삭제(CRUD) 기능을 제공한다.
- DML은 크게 두 가지로 나뉜다:
- 절차적 DML: 사용자가 원하는 데이터를 어떻게 검색할지 명시하는 언어 (예: PL/SQL)
- 비절차적 DML: 사용자가 원하는 데이터만 명시하고, 어떻게 검색할지는 DBMS가 알아서 처리하는 언어 (예: SQL)
728x90
'Database' 카테고리의 다른 글
[DB] Stored Procedure (0) | 2024.08.16 |
---|---|
[DB] Stored Function (0) | 2024.08.15 |
[DB] 인덱스 (0) | 2024.08.06 |
[DB] MongoDB (0) | 2024.08.02 |
파티셔닝과 샤딩 (0) | 2024.07.22 |