데이터베이스 시스템 [개념]
cleanUrl: /데이터베이스-시스템
1. 데이터베이스 기본 개념
1.1. 데이터 (data)
- 컴퓨터에 저장되어 사용될 수 있는 정보
- 예) 행정 데이터, 의료 데이터, 성적 데이터, 실험 데이터, …
1.2. 데이터베이스(database)
- 전자적으로 저장되고 사용되는, 관련있는 데이터들의 조직화된 집합
전자적으로 저장하고 사용
- 데이터가 컴퓨터에 저장되고 사용
관련있는 데이터
- SNS의 사진, 글, 댓글 같은 일련의 정보들
- 같은 출처, 목적, 서비스 안에서 생성되는 데이터들
조직화된 집합
- 내가 찾으려는 데이터를 빨리 찾기 위해서는 잘 정리하는 것이 중요
- 불필요한 데이터가 중복적으로 생성되는 것을 막음
- 데이터의 불일치를 막음
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와 데이터베이스 시스템의 차이점
항목 | DBMS | 데이터베이스 시스템 |
정의 | 데이터 저장 및 관리 소프트웨어 시스템 (예: MySQL, Oracle) | DBMS + 데이터베이스 + 관련 응용 프로그램 및 사용자 인터페이스의 전체 시스템 |
범위 | 데이터베이스의 관리 기능에 집중 | 데이터베이스를 운영하는 전체 시스템 (DBMS, 데이터베이스, 응용 프로그램 포함) |
구성 요소 | DBMS 소프트웨어 (예: MySQL, Oracle) | DBMS + 데이터베이스 + 응용 프로그램 + 사용자 인터페이스 등 |
예시 | MySQL, PostgreSQL, Oracle DB | 호텔 예약 시스템, 온라인 쇼핑몰 데이터베이스 시스템 |

- 전체적인 흐름 설명
- 프로그래머: SQL 쿼리(예:
SELECT * FROM users WHERE age > 30;)를 DBMS로 전송 - DBMS:
- 쿼리 파싱: SQL 쿼리를 이해할 수 있는 형태로 변환.
- 쿼리 최적화: 쿼리를 효율적으로 실행할 수 있는 방법을 선택.
- 실행 계획 수립: 선택된 최적화 방법을 실제로 실행하기 위한 구체적인 단계 설정.
- 어떤 방식으로 데이터를 검색할지, 어떤 자료 구조를 활용할지 결정
- 검색된 데이터 반환
- 스토리지 엔진:
- 테이블에서 실제 데이터 검색
- 검색 방법에 따라 데이터가 물리적으로 저장된 장소에서 직접 데이터를 읽는 단계
- 응답: DBMS에서 프로그래머로 결과 반환
쿼리 파싱, 최적화 후 실행 계획 수립
실행기에서 데이터 검색
보충 설명 DBMS 단계에서 쿼리 최적화와 실행기에서 데이터 검색의 차이
구분 | 쿼리 최적화 | 실행기에서 데이터 검색 |
시점 | 쿼리가 실제 실행되기 전에 쿼리의 실행 계획을 최적화 | 쿼리 최적화 후, 실제로 데이터를 검색하고 반환하는 단계 |
역할 | 쿼리의 실행 계획을 개선하여 성능을 높임 | 최적화된 계획에 따라 실제로 데이터를 찾고 반환 |
핵심 작업 | - 쿼리 리팩토링
- 인덱스 사용
- 조인 방식 결정
- 조건 순서 최적화 | - 테이블/인덱스 스캔
- 조인 실행
- 결과 반환 |
목표 | 성능을 최대한 높이는 효율적인 실행 계획 수립 | 최적화된 실행 계획에 따라 정확한 데이터 검색 |
2. 데이터 모델 (data models)
- DB 구조를 기술하는데 사용될 수 있는 개념들
2.1. 개념적 데이터 모델 (conceptual data models)
high-level
- 일반 사용자(비전공자)들이 쉽게 이해할 수 있는 데이터 모델
- 추상화 수준이 가장 높음
- 비즈니스 요구 사항을 추상화하여 기술할 때 사용
- 예) entity-relationship model (ER diagram)
- 예시1

- 예시2

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가 정의되어 있다.

- 등장 배경
- 각 레벨을 독립시켜, 어느 레벨에서의 변화가 상위 레벨에 영향을 주지 않기 위해 만들어졌다.
- 한 레벨이 변경되었을 때, 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)
참고 자료

백엔드에서 사용되는 데이터베이스(database) 기본 개념을 설명합니다~ 중요한 DB 용어들을 잘 알고 있어야 기본기를 탄탄하게 다지는데 도움이 되겠죠? :)
#데이터베이스 #database #DB #기본개념 #DBMS #datamodel #schema #threeschemaarcithecture #DML #DDL 데이터베이스(database)는 여러 기본 개념들이 많이 있습니다~ 이런 개념들을 명확히 이해하고 있어야 데이터베이스를 깊게 파고 들어도 어려움 없이 잘 이해할 수 있죠 오늘은 데이터베이스의 중요한 기본 개념들을 설명합니다. database, DBMS, database system, data model, schema, three-schema architecture, DDL, DML 등등 여러 DB 기본 개념들을 정리하고 가셔요~ :) 00:00 오프닝 00:08 database & DBMS & DB system 05:42 data models 11:40 database schema & state 18:33 database language(DDL, DML, etc) 20:36 클로징
1-1. 데이터베이스 시스템 개념 정리
1. 용어1. 데이터 (data)- 컴퓨터에 저장되어 사용될 수 있는 정보- 행정 데이터, 의료 데이터, 성적 데이터, 실험 데이터, ...2. 데이터베이스(database)- 실세계의 일부를 표현하는 연관된 데이터들의 구조화된 집합ex) 스마트 폰의 전화번호부 데이터베이스 -> 전화번호라는 작은 세계를 표현ex) 영화 데이터베이스 (영화라는 작은 세계를 표현)3. 데이터베이스 관리 시스템 (DBMS: database management system)- 데이터베이스의 생성과 관리를 담당하는 소프트웨어 패키지- DBMS는 운영체제와 함께 중요한 시스템 소프트웨어 패키지로 분류됨* 기능1. 데이터 저장 및 검색2. 보안 관리3. 데이터 무결성4. 트랜잭션 관리5. 백업 및 복구ex) Oracle, MS SQ..
codefinity.com
DBMS Three schema Architecture - javatpoint
DBMS Three schema Architecture with DBMS Overview, DBMS vs Files System, DBMS Architecture, Three schema Architecture, DBMS Language, DBMS Keys, DBMS Generalization, DBMS Specialization, Relational Model concept, SQL Introduction, Advantage of SQL, DBMS Normalization, Functional Dependency, DBMS Schedule, Concurrency Control etc.
