/*

 * http://sosal.kr/

 * made by so_Sal

 */

 

DBMS : Database Management System. 데이터베이스 관리 시스템
대규모 데이터를 유지 및 관리하는데 도움이 되도록 설계된 소프트웨어.
A very large, integrated collection of data.



Why use a DBMS?

1. 데이터 독립성, 효율적인 접근.
DBMS는 추세부사항을 은닉하는 데이터의 추상적인 관점을 제공하며,
일반적인 file-system을 이용한 정보관리보다 더 효과적인 저장, 검색 기술을 이용하여 효과적이다.

2. 데이터 무결성, 보안성

3. 데이터 관리

4. 동시접근 및 손상복구
Concurrency Control : Multi user가 동시접근하며, Inconsistency가 일어나지 않도록 돕는다.


Data model : 고수준의 논리적인 데이터를 기술하는 구성자들의 집합.
사용자에게 불필요한 저수준의 내용들은 감추고,
사용자가 원하는 데이터를 데이터 모델에 의하여 정의할 수 있도록 돕는다.
오늘날 대부분의 DBMS은 Relational data model (관계모델) 에 기반한다.

Relational model of data // most widely model today.
관계모델은 중요한 데이터 기술 구성자는 relation이며, relation은 record들의 집합이다.

* Schema
어떤 relation에 의거한 데이터 기술을 schema라고 하는데,
한 관계모델에서의 schema는 relation의 이름, 필드 (attribute or row)의 이름과 타입을 명세한다.

ex) 어떤 홈페이지의 회원정보는 다음과 같은 스키마를 가진 relation으로 정의할 수 있다.
Member(ID:string, Name:string, Age:integer, No:Integer)




위 예는 4개의 필드 (ID, Name, Age, No.)를 가지는 Member relation의 instant이다.

각 record (혹은 tuple)들은 Member relation의 schema를 따른다.
schema는 record의 템플릿으로 간주할 수 있다.

DBMS - Levels of Abstraction.
DDL (Data Definition Language)는 외부 스키마와 (External Schema == view)
개념 스키마 (Conceptual Schema)를 정의하기 위해 사용된다.




view == External Schema.

3단계의 계층.


혹은 Sub-Schema - schema 의
2단계 계층으로 DBMS의 abstraction을
표현하기도 한다.








Physical Schema.
데이터베이스에 저장되는 relation들이 secondary storage에 어떤식으로 저장되는지를 명시한다.
물리적 스키마는 데이터가 일반적으로 어떻게 접근되는가에 대한 이해를 기반으로 하여 결정한다.

Conceptual Schema : 모든 relation 들을 기술하는 부분.
개념 스키마는 오직 Logical Data만 서술한다. (자료의 유무만을 서술)
실제로 저장되어있는 방법 등은 Physical Schema가 관리한다.

ex) Member(ID:string, Name:string, Age:integer, No:Integer)

External Schema.
DBMS의 정보들을 사용하는 사람 혹은 프로그래머들의 수준에서
그들이 원하는 정보에 따라 데이터가 주어진다.
Conceptual Schema에 있는 다양한 relation들 중에서 필요한 정보를 모아
사용자에게 맞는 새로운 Schema를 보여준다.



Data independence
데이터의 독립성은 Abstraction of data 로부터 달성된다.

1. Logical Data independency
기초가 되는 Conceptual Schema가 변경될 경우,
이전과 동일한 View (External schema) relation이 계산되도록
View (External Schema)의 정의가 수정 될 수 있다.
이러한 특성을 Logical Data independency 라고 한다.

2. Physical data independency
Conceptual Schema 에서는 Logical Data만 서술할 뿐,
물리적인 세부 데이터들은 서술하지 않는다.
이러한 특성을 Physical data independency 라고 한다.



Transaction.
트랜섹션은 DBMS의 논리적인 작업 단위를 뜻한다.
(An atomic sequence of database action / read, write)
하나의 트랜섹션이 끝나기 전까지는 DBMS 의 데이터는 변경되지 않으며
중간에 단 하나의 오류라고 있다면, 이 트랜섹션은 재 실행되도록 한다.

//
금융결제를 예로 들면, 입금이 진행되는 마지막 부분에서 결제가 취소되었을 때
이 트랜섹션이 성공적으로 완료된다면 금융적인 오류가 발생하므로 굉장히 위험에 처하게 된다.


Concurrency Control
DBMS는 Multuiple user가 동시 접근하며, inconsistence가 일어나지 않도록 돕는다.
이것은 Locking protocol에 의해 실현 되는데, 여러 트랜젝션들이 interleave 하게 되어
데이터들이 서로 간섭하는 결과가 나오지 않도록 돕는다.

- Strict 2PL Locking protocol
2PL : Two Phase locking : 하나의 트랜젝션 안에, L- U은 섞어서 나오지 않는다.
- LLLLLLLL UUUUUU -



참고서적 : 데이터베이스 시스템 3rd Edition. Raghu Ramakrishnan, Johannes Gehrke.


Posted by sosal sosal

댓글을 달아 주세요