CS/SQL
DB 기본 개념 정리
lovelyunsh
2024. 5. 27. 20:29
DataBase, DBMS, DataBase System
- DataBase
- 전자적으로 모은 관련있는 데이터의 집합
- DBMS (DataBase Management System) : 사용자가 DB를 관리하도록 도와주는 소프트웨어
- Oracle, PostgreSQL, MSSQL, mysql etc
- metadata
- database를 설명하는 data
- 데이터 유형, 구조, 제약조건, 보안, 인덱스 등
- DataBase System
- db + dbms + application 다 합쳐 놓은 것
data models
- conceptual data models
- 가장 추상화 된 모델
- erd 등
- logical data models
- 적당히 추상화, 실제 저장된 데이터의 형태와 크게 다르지 않은 모습
- relation data model, 여기서 relation은 우리가 흔히 보는 테이블
- object model도 있음.
- 많은 DBMS가 relation data model을 활용
- ex) ORACLE, mysql, Sql Server, postgreSQL(특이하게 object model가 혼합한 Object-Relation model)
- physical data model
- 데이터가 컴퓨터에 어떻게 저장될 지
- data formet, data ordering, access path(index)
database state
- snapshot
database schema
three-schema architecture
- user application이 physical database의 변경에 영향을 받지 않도록 하기 위해 three-schema architecture를 많이 활용.
three-schema
- internal schema
- 물리적으로 데이터가 어떻게 저장되는지 physical data model을 통해 표현
- data storage, data structure, access path(=index) 등
- external schema(=user view)
- 특정 유저들이 필요로 하는 데이터만 표현, 그 외 보이지 않아도 되는 데이터는 숨김
- 동일한 데이터에 대해, 서로 다른 관점을 정의하도록 허용
- logical data model을 통해 표현
- conceptual schema
- 전체 database에 대한 구조를 기술, 물리적인 구현은 고려하지 않음
- 각 데이터베이스에는 한 개의 개념 스키마만 존재
- 개체 간의 관계 및 무결성 제약 조건에 대한 명세를 정의
- entities, data types, relationships, user operations, constatraints 등
- logical data model을 통해 기술
- 각 레벨을 독립 시켜 어느 레벨에서의 변화가 상위 레벨에 영향을 주지 않도록 하기 위함.
- 대부분의 DBMS가 three level을 완벽하게 나누지는 않는다.
- 실제 데이터가 존재하는 곳은 internal level
DDL, SDL, VDL, DML
- DDL : conceptual schema를 정의하기 위해 사용되는 언어
- SDL : internal schema를 정의하기 위해 사용되는 언어, 요즘은 SDL이 거의 없고 파라미터 설정으로 대체됨
- VDL : external schema를 정의하기 위해 사용되는 언어, 대부분의 DBMS에서 DDL이 VDL 역할까지 수행
- DML : database에 있는 data를 활용하기 위한 언어, data의 CRUD 기능을 제공
- 오늘날의 DBMS는 각각 언어를 따로 두지 않고 통합된 언어로 존재, 대표적인 예가 SQL
위 글은 쉬운코드님의 데이터베이스 영상을 토대로 정리한 내용입니다.
https://www.youtube.com/watch?v=aL0XXc1yGPs&list=PLcXyemr8ZeoREWGhhZi5FZs6cvymjIBVe&index=1