[DB] [1.3] View of Data
0. Reference
- Database System concepts 7th를 보고 정리했습니다.
1. Database System
- Database System이란 서로 연관된 데이터의 집합과 사용자가 이 데이터를 관리하는 프로그램들의 집합을 의미한다.
- Database System의 주요 목적 중 하나는 사용자에게 데이터에 대한 "abstract view"를 제공하는 것이다.
- 즉, 데이터베이스의 실제 복잡한 시스템은 숨기고, 사용자에게 단순하고 직관적이게 데이터를 관리할 수 있도록 제공한다.
2. Data Models
- Data Structure는 Data model에 의해 결정되게 된다.
- 여기서 Data model은 데이터를 표현하고, 데이터 간의 관계, consistency constraints를 기술하기 위한 도구들의 모음이다.
- 이러한 Data model의 종류는 다음과 같다.
"""
i) Relational model
ii) ER data model
iii) Entity-Relationship model
iv) Semi-structured Data model
v) Object-Based Data Model
vi) Network model
vii) Hierarchical model
"""
- 해당 책에선 대부분 Relational Model에 포커싱두고있다.
- 그 이유는, 대부분의 데이터베이스 애플리케이션들은 Relational Model에 기반을 두고 있기 때문이다.
3. Relational Data Model
- Data를 table형식으로 표현하는 것을 의미한다.
- 각 table은 columns과 rows를 가지고 있는데,
- columns은 feature, rows는 하나의 특정 정보를 의미한다.

4. Data Abstraction
- Database system이 효율적으로 동작하기 위해선, 데이터를 효율적으로 검색할 수 있어야 한다.
- 이러한 효율성을 위해 DB내의 데이터를 복잡한 데이터 구조로 표현한다.
- 다만, 많은 사용자들은 CS에 대해 자세히 알지 못하기 때문에, 이러한 복잡성을 data abstraction을 통해 숨기고,
- 사용자가 DB System과 쉽게 상호작용할 수 있도록 설계한다.
4.1. 3 step of data abstraction
- data abstraction은 3단계로 구성되어 있다.
step 1) : Physical Level
- 데이터가 실제로 어떻게 저장되는지 설명한다.
- 디스크에 데이터가 어떤 형태로 저장되는지, 어떤 인덱스나 포인터가 사용되는지 등 복잡하고 저수준의 데이터 구조를 기술한다.
step 2) : Logical Level
- 어떤 데이터가 저장되고, 그 데이터 들 간에 어떤 관계가 존재하는지를 설명하는 수준이다.
- DB 관리자는 DB에 어떤 정보를 저장할지 결정하기 위해 이 수준을 사용한다.
step 3) : View Level
- DB의 일부분만을 사용자에게 보여준다.

5. Instances and Schemas
- DB는 시간이 지나면서 데이터가 삽입되거나 삭제되며 변화한다.
- 이러한 DB의 상태를 표현하기 위해 Instance와 Schema라는 개념이 도입된다.
5.1. Instance
- Instance는 특정 시점에 DB에 저장된 정보의 집합을 의미한다.
5.2. Schema
- DB의 전체적인 설계 구조를 의미한다.
- DB가 어떻게 구성되어 있는지, 어떤 테이블이 있으며, 각 테이블에 어떤 attribute가 있는지 정의한다.
- 프로그램에서 변수 선언 및 타입 정의와 유사하다.
ex) instructor(ID, name, dept_name, salary)