진박사의 일상

[데베시] 2강 본문

프로그래밍/공부

[데베시] 2강

진박사. 2021. 9. 16. 04:18

목표 : 데이터베이스 시스템의 개념과 구조

 - 데이터모델(카테고리), 스키마&인스턴스(3단계 스키마 구조), 데이터 독립, 데이터베이스 언어와 인터페이스

 

데이터 모델

- DB의 구조(데이터의 특성)를 기술하는 개념의 집합

- 데이터 추상화를 가능하게 함

- concept의 수준별 모델 : Physical Model, Conceptual Model, Representational Models

 

Physical Data Models (물리 데이터 모델)

- 컴퓨터 저장 매체에 데이터가 어떻게 물리적으로 저장되는가에 대한 상세를 기술

- 물리적 저장 방식에 가까움 -> Low-level Data Model

- 레코드와 관련된 정보 : Type, Index, Access path

 

Conceptual Data Models(개념 데이터 모델)

- 사람의 입장으로 데이터가 개념적으로 어떻게 표현되는지 기술

- 사람이 인식하는 방식에 가까움 -> High-level Data Model

- 예시 : Entity-relationship model(ER model)

 

Representational Data Models(표현 데이터 모델)

- 물리 모델과 개념 모델의 중간에 위치 -> 사람이 이해하기 쉬움, 데이터가 저장소에 저장되는 방식과도 유사

- 그래서 Implementation data models(구현 데이터 모델)이라고도 함.

- 대부분의 상업적 DBMS에서 사용

- 예시 : Relatoinal model(우세), Network model, Hirerarchical model

 

Schemas and Instances

- Database Schema (or meta-data or intension) : 모델에 의해 표현된 DB 구조의 기술.

데이터베이스가 설계될 때부터 데이터베이스 디자이너에 의해 정의됨. DB life cycle 동안 거의 변하지 않음.

- Schema diagram :  스키마의 요소를 그림으로 표현

- Database Instance : 실제 DB에 특정 시점에 저장된 데이터. database state, snapshot, occurrence, extension 등으로 불림. DB의 insertions, updates, deletions 등에 의해 자주 바뀜

 

Three-Schema Architecture

- 목적 : 응용 프로그램이 DB 구조에 종속되지 않도록 막기 위해 설계됨. (독립성을 위해)

- Database designer : 어떤 데이터가 저장될지 고름, DB의 구조와 특징(즉, 스키마)을 정의

 

- Internal Level : 전체 DB의 물리적 저장소 구조를 기술 -> 물리 데이터 모델로 표현

- Conceptual Level : 사용자를 위해 전체 DB를 논리 구조로 기술

Entities, Data types, Relations, User Operatioins, Constraints 등으로 구성

물리적 저장소 구조의 상세를 숨김 -> 상위 데이터 모델(개념적, 표현적 데이터 모델)로 표현

- External or View level : 특정 유저 그룹이 관심 있는 논리적 DB 구조의 일부를 기술

전체 DB의 나머지 부분을 숨김 -> 상위 데이터 모델(개념적, 표현적 데이터 모델)로 표현

각 레벨 사이의 Mapping을 통해 변환, 각 레벨은 서로 독립적이라 각 레벨의 스키마의 구조가 바뀌어도 다른 레벨에는 영향이 없음.

Three-Schema Architecture

External과 Internal Schema는 DB를 서로 다른 방식으로 표현

-> Internal Schema는 물리적으로 DB가 저장된 방식을 기술

-> External Schema는 논리적, 개념적으로 DB의 구조를 기술

 

Mapping mechanism - 스키마 레벨 사이에서 연결

1. 사용자 쿼리는 External Level Schema

2. External Level 쿼리 -> Conceptual Level 쿼리로 매핑

3. Conceptual Level 쿼리 -> Internal Level Schema로 매핑

4. 저장된 DB에서 결과를 가져옴

5. External View로 결과를 매핑

 

Data Independence

- 정의 : 상위 레벨의 스키마를 변경하지 않으면서 DB 시스템의 한 레벨의 스키마를 변경할 수 있도록 함.

- 종류 : Logical data independence, Physical data independence

- 특징 : DBMS의 가장 중요한 특징 중 하나, 응용 프로그램을 관리하는 overhead를 확실하게 감소시켜줌.

 

Logical Data Independence

- Conceptual Schema를 변경할 때 External Schema가 바뀌지 않음 -> External Schema를 참조하는 응용 프로그램을 다시 작성할 필요가 없음.

 

Physical Data Independence

- Internal Schema를 변경할 때 Conceptual Schema 변경 X -> External Schema, 응용 프로그램을 변경될 필요 없음

 

 

DBMS Languages

- DBMS에 의해 제공되며 DB를 조작, 관리하는 언어

- Data Definition Language(DDL) : DB의 External/Conceptual Schema를 정의하는 언어

- Data Manipulation Language(DML) : 사용자가 data의 검색, 삽입, 삭제, 수정에 사용하는 언어

- Storage Definition Language(SDL) : DB의 Internal Schema를 관리하는 언어

- View Definition Language(VDL) : 특정 사용자의 뷰를 명시하는데 사용되는 언어

- Procedural DML(절차적 DML) : 사용자 쿼리를 절차적으로 정의. 데이터를 검색하는 방법에 초점 -> 상세한 step을 명시

- Non-procedural DML(비절차적 DML) : 사용자 쿼리를 선언적으로 정의. 검색해야 할 데이터에 초점.

 

DBMS Interfaces

- Menu-based Interfaces : 메뉴에서 제공하는 쿼리를 통해 DB에 접근, 웹 어플리케이션에 사용

- Graphical User Interface : DB 스키마에 대한 그래픽을 조작해 DB에 접근, 초심자용 어플리케이션

- Forms-based Interface : 폼을 채워서 DB 접근

- Natural Language Interface : 자연어 인터페이스로 DB 접근

- Interfaces for DBAs : 데이터베이스 관리자를 위한 인터페이스

 

DBMS Component Modules

Stored data manager : 저장소에 저장된 모든 데이터(User Data + 시스템 카탈로그의 Meta Data)를 향하는 접근을 통제. 

DDL Compiler : DDL에 의해 정의된 Schema를 처리, 스키마에 관한 메타데이터를 DBMS의 시스템 카탈로그에 저장

Runtime Database Processor : 사용자의 query를 처리하기 위해 DB에 접근

Query Compiler(Interactive SQL) : high-level의 DBMS queries를 파싱 -> 내부 구조가 이해할 수 있는 구조로 컴파일링. 

Precompiler : 전체 프로그램 중 SQL의 DML 명령어 부분을 추출

DML Compiler : DML 명령어들을 DB 접근을 위한 object code로 컴파일

 

Database System Utilites

- Database Utilities : DBA가 DB 시스템을 쉽게 관리하도록 도움

- Loading : DBMS 외부에 존재하는 data file을 DB로 자동 변환해 로딩, 새로운 DB 만드는데 유용

- Backup : DB의 백업 카피를 생성, 문제가 생겼을때 백업으로 복원

- Database storage reorganization : DB 파일을 다른 파일 구조로 재구조화. DBMS 성능을 높이는데 도움.

- Perfomance monitoring : DB 사용을 모니터링하고 DBA에게 통계 자료를 제공. 다른 포맷으로 reorganize할지 말지에 대한 결정을 내리는데 도움.

 

Classification of DBMS

- Relational Model(관계형 모델) : DB를 tables의 모음으로 표현, table은 records의 세트로 구성, 가장 인기

- Network Model(네트워크 모델) : 데이터를 record type과 1:N set type으로 표현, 거의 사용 x

- Hierarchical Model(계층형 모델) : 계층형 tree 구조로 표현, 거의 사용 x

- Object Model(객체지향 모델) : DB를 classes의 모음으로 표현, 데이터는 class에 속한 objects로 표현, 모델링 특징이 뛰어남(상속, 복잡한 오브젝트 등)

- 사용자의 수에 따른 구별 : single user DBMS(ex Excel), Multi-user (일반적)

- site 수에 따른 구별 : Centralized DBMS(중앙 집중형), Distributed DBMS(분산된, Homogeneous(같은 모델), Heterogeneous(서로 다른 모델))

- 목적에 따른 구별 : General purpose & Special purpose