데이터베이스란?
- 데이터베이스는 전자적으로 저장되고 사용되는 관련있는 데이터들의 조직화된 집합을 의미함
관련있는 데이터는 인스타에 게시글을 쓰고, 회원정보를 등록하는 등 같은 출처, 서비스에서 사용되는 데이터들을 관련된 집합이라고 함
관련있는 데이터를 체계적으로 조직화하여 전자적으로 저장하여 사용함으로써 데이터를 편리하게 관리할 수 있음
- 사용자에게 DB를 정의하고 만들고 관리하는 기능을 제공하는 소프트웨어 시스템은 DBMS(database management systems)이라고 함
대표적으로 oracle, MySql등이 있음
- 데이터베이스를 정리하면서 인덱스, 데이터 유형, 구조와 같은 부수적인 데이터들이 생성되는데, 이들을 메타데이터라고 부름
- 메타데이터는 DB를 정의하거나 기술하는 data를 의미하며, 일반 데이터와 마찬가지로 DBMS를 통해 저장, 관리됨
- 데이터베이스, DBMS, 그리고 이와 연관된 어플리케이션을 합쳐서 database system(줄여서 database)이라 부름
data models
- DB의 구조를 기술하는데 사용될수 있는 개념들이 모인 집합을 data model이라 함
DB 구조는 데이터 유형, 관계, 제약 사항 등을 의마하며, 이러한 DB 구조를 data model을 통해 추상화해서 표현 가능함
- DB 모델은 여러 종류가 있으며, 각각 추상과 수준과 DB 구조화 방식이 조금씩 다름
- data model에는 DB에서 읽고 쓰기 위한 기본적인 동작들도 포함됨
- data model은 구체적으로 conceptual, logical, physical data model로 구분 가능함
conceptual data model
- 일반 사용자들이 쉽게 이해할 수 있는 개념들로 이루어진 모델이며, 추상화 수준이 가장 높음
- 비즈니스 요구 사항을 추상화하여 기술할 때 사용
- 대표적인 예시로는 E-R 다이어그램이 있음
logical data model
- 이해하기 어렵지 않으면서도 디테일하게 DB를 구조화 할 수 있는 개념을 제공함
데이터가 컴퓨터에 저장될때 구조와 비슷하게 DB 구조화를 할 수 있다는 의미
- 특정 DBMS나 스토리지에 종속되지 않는 수준에서 DB를 구조화할 수 있음
- 엑셀 테이블과 비슷한 relation data model을 주로 사용하며, 객채를 사용하는 object data model, 둘을 결합한 object-relational data model 등이 있음
physical data model
- 컴퓨터에 데이터가 어떻게 파일 형태로 저장되는지를 기술할 수 있는 수단을 제공하는 데이터 모델
data format, data order, access path등의 정보를 제공함
Schema, State
- database schema는 데이터 모델을 바탕으로 데이터베이스의 구조를 기술한 것을 의미함
- schema는 데이터베이스를 설계할 때 정해지며, 한번 정해진 이후에는 자주 바뀌지 않음
- 특정 시점에 데이터베이스에 있는 데이터는 database state 또는 snapshot이라고 함
Three-schema architecture
- DB 시스템을 구축하는 아키텍쳐의 하나로, 유저 애플리케이션으로부터 물리적인 DB를 분리시키기 위해 사용함
- external level, conceptual level, internal level의 3가지 레벨이 있으며, 각각의 레벨마다 스키마가 정의되어 있음
- internal level에서는 물리적으로 데이터가 어떻게 저장되는지 physical data model을 사용해 표현하며, 실제 데이터가 존재하는 위치가 됨
- conceptual level는 물리적 저장 구조를 숨기면서 전체 DB구조를 기술하며, logical data model을 통해 기슬됨
- external level은 특정 유저들이 필요로 하는 데이터만을 표현하는 부분이며, logical data model을 통해 표현함
- 각 레벨을 독립시켜 어느 레벨에서의 변화가 상위 레벨에 영향을 주지 않게 할 수 있음
데이터베이스의 언어
- data definition language(DDL)은 conceptual schema를 정의하기 위해 사용되는 언어임
- storage definition language는 initial schema를 정의하는 용도로 사용되는 언어를 의미함
최근의 RDBMS에서는 SDL 대신 파라미터 등의 설정으로 대신함
- vies definition language는 external schema를 정의하는 용도로 사용되는 언어를 의미함
대부분의 DBMS애서는 DDL이 VDL의 역할도 수행함
- data manipulation language(DML)은 DB의 데이터를 활용하기 위한 언어로, 데이터의 추가, 삭제 수정등의 기능을 제공함
- 현재의 DBMS는 SQL처럼 DML, VDL, DDL등을 통합한 언어를 사용하게 됨
출처:
https://www.youtube.com/watch?v=aL0XXc1yGPs&list=PLcXyemr8ZeoREWGhhZi5FZs6cvymjIBVe&index=1&t=522s