반응형
반응형
💋 데이터베이스 기본 개념
✔️ 데이터베이스
전자적으로 저장되고 사용되는, 관련있는 데이터들의 조직화된 집합
✔️ DBMS
- database management systems
- 사용자에게 DB를 정의하고 만들고 관리하는 기능을 제공하는 소프트웨어 시스템
✔️ metadata
- data about data
- 데이터베이스를 정의하거나 기술하는 데이터
- 데이터 유형, 구조, 제약 조건, 보안, 저장, 인덱스, 사용자 그룹 등
- 메타 데이터 역시 DBMS로 관리된다.
✔️ database system
- database + DBMS + 연관된 애플리케이션
- database라고 부르기도 한다.
💋 data models
- DB 구조를 기술하는데 사용될 수 있는 개념들
✔️ 분류
- conceptual data models
high-level
- 일반 사용자(비개발자)들이 쉽게 이해할 수 있는 데이터 모델
- 예) entity-relationship model (ER diagram)
- logical data models
representational
- 디테일하게 DB를 구조화할 수 있는 개념 제공
- 특정 DBMS, storage에 종속되지 않는 수준에서 DB를 구조화할 수 있음.
- 예) relational data model(Oracle, MySQL), object data model 등
- 유명한 DBMS는 모두 relational data model에 기반하고 있음.
- physical data models
low-level
- 컴퓨터에 데이터가 어떻게 파일 형태로 저장되는지를 기술할 수 있는 수단 제공
- data format, data orderings, access path 등
💋 database schema
- 데이터베이스 모델을 바탕으로 데이터베이스의 구조를 기술한 것
- 스키마는 데이터베이스를 설계할 때 정해지며, 한번 정해진 후에는 자주 바뀌지 않는다.
💋 database state
- 데이터베이스의 실제 데이터는 꽤 자주 바뀐다.
- 특정 시점에 데이터베이스에 있는 데이터를 database state, snapshot, 또는 database instance라고 한다.
While the database schema defines the organization of data, an instance of the database is a snapshot
of the content at any given moment. This picture includes the data and its relationship
to other data in the database at a particular time
.
💋 three-schema architecture
- 데이터베이스 시스템을 구축하는 아키텍처 중 하나
- user application으로부터 물리적으로 데이터베이스를 분리하기 위한 목적
- 세 가지 level이 존재하며 각각 레벨마다 schema가 정의되어 있다.
이 아키텍처는 각 레벨을 독립시켜, 어느 레벨에서의 변화가 상위 레벨에 영향을 주지 않기 위해 만들어졌다. 한 레벨이 변경되었을 때, mapping만을 변경해주면 되기 때문이다.
대부분 DBMS가 three level을 완벽하게 나누지는 않으며 데이터가 실제로 존재하는 곳은 internal level이다.
✔️ internal schema
- 물리적 데이터가 어떻게 저정되는지 physical data model로 표현
- data storage, data structure, access path 등 실체가 있는 내용을 기술한다.
✔️ external schema
- 실제 사용자가 바라보는 스키마 ⇒ external view, user view라고도 함.
- 각 유저가 필요로 하는 데이터만 표현한다.
- 그 외 알려줄 필요가 없는 데이터는 숨긴다.
- logical data model을 통해 표현한다.
✔️ conceptual schema
- 등장 배경
- 초창기 데이터베이스 아키텍처는 internal schema, external schema만 있었음
- 각 유저마다 필요로 하는 데이터가 달라 internel schema에서 중복되는 데이터가 포함되는 스키마가 여러 개 생김.
- 관리가 어려워지게 되어, conceptual schema 탄생
- 전체 데이터베이스에 대한 구조 기술
- internal schema를 한 번 추상화해 표현한 스키마
- 물리적 저장 구조에 대한 내용은 숨김.
- entity, data type, relationships, user operations, constraints에 집중
- logical data model을 통해 표현
💋 데이터베이스 언어
✔️ DDL(Data Definition Language)
- conceptual schema를 정의하기 위해 사용되는 언어
- internal schema까지 포함해서 정의할 수 있는 경우도 있음.
✔️ SDL(Storage Definitoin Language)
- internal schema를 정의하는 용도로 사용되는 언어
- 요즘은 특히 RDBMS에서는 SDL이 거의 없고, 파라미터 등 설정으로 대체된다.
✔️ VDL(View Definition Language)
- external schema를 정의하는 용도로 사용되는 언어
- 대부분 DBMS에서는 DDL이 VDL 역할까지 수행
- DDL이 거의 모든 것들을 커버한다.
✔️ DML(Data Manipulation Language)
- 데이터를 활용하기 위한 언어
- 데이터의 추가, 삭제, 수정, 검색 등 기능을 제공하는 언어
✔️ 통합된 언어
- 오늘날의 DBMS는 DML, VDL, DDL이 따로 존재하기보다는 하나의 통합된 언어로 존재한다. ⇒ 대표적 예가
SQL
💋 참고자료
- https://www.javatpoint.com/dbms-three-schema-architecture
- https://www.youtube.com/watch?v=aL0XXc1yGPs&list=PLcXyemr8ZeoREWGhhZi5FZs6cvymjIBVe
도움이 되었다면, 공감/댓글을 달아주면 깃짱에게 큰 힘이 됩니다!🌟
비밀댓글과 메일을 통해 오는 개인적인 질문은 받지 않고 있습니다. 꼭 공개댓글로 남겨주세요!
반응형