Objectives
- Database / DBMS / Database system의 차이
- DB의 특징
- Users of DB
- DBMS의 특징
Overview
Data
- 의미있는 사실이 저장된 것
- ex) names, addresses, phone numbers, ...
Database
- 관련된 데이터의 집합
- ex) phone book for a company
Mini-world
- 실제 world의 일부 (not all aspect)
- ex) 한양대의 DB안에 OOO교수가 있지만, 그 교수가 안경을 썼다는 정보는 없다. 즉, 한양대 DB는 학교를 운용하기 위한 관점에서 building된 DB인 것이다.
DBMS(Database Management System)
- 사용자가 매우 쉽게 DB를 만들고 관리하게 해주는 소프트웨어
Database System
- DBMS + DB
Structure of Database System
DB
- User-Data
- Meta-Data: 사용자 데이터를 관리하기 위해서 DBMS가 필요로 하는 정보
DBMS
- Software to Access Stored Data(Storage Engine) : DB를 잘 관리하기 위해 짜여진 파트
- Software to Process Queries/Programs (Query/SQL Engine): 간단한 인터페이스로 사용자가 DBMS를 다루도록 하는 소수의 명령어 제공
앞서 Database System이란, DBMS + DB라고 얘기했다. 다만, 혹자는 Database System을 DBMS + DB + Application Programs/Queries 라고 하기도 한다. 이 부분은 뭐가 정답이라기 보다는 논란의 여지가 있는 부분이다.
Application Programs / Queries
- Application Programs: 자기 고유의 코드
- Queries : DBMS를 부르는 코드
Example of a DB
- Table로 관리된다.
- ex) student table을 보면 Name, Student_Number, Class, Major라는 항목들이 있는데 이것을 attribute라고 부른다.
- 그 아래에는 실제 정보들이 들어가게 된다.
Characteristics of the DB
- Self-describing nature of a database system
- Meta-data
- 앞에서 사용자의 데이터를 관리하기 위해 DBMS가 필요로 하는 데이터라고 설명했다.
- table이 몇 개인지, 각 table마다 attribute가 몇 개인지, attribute길이는 얼마나 되는지 등을 나타낸다.
- ex) name이라는 attribute에 smith라는 value가 있으면, 그 길이는 5이다. 이런 길이 정보가 Meta-data 형태로 저장되어 관리된다.
- System Catalog
- Meta-data가 저장되는 곳이다.
- DB System은 user data 뿐만 아니라 meta data도 함께 저장하고 관리한다.
- 이게 아주 중요한 특징이다.
- 프로그램 안에서도 관리할 수 있지만, DB System은 프로그램이 아닌 DB 내에 메타 데이터 형태로 자신의 구조를 관리한다.
- Meta-data
- Insulation between programs and data
- 프로그램이 데이터에 큰 영향을 받지 않는다.
- 즉, 주소 크기를 30에서 50으로 변경하고 싶을 때, 데이터 레벨에서 해결 가능하냐 vs 코드를 수정해야 하냐 를 생각해보자.
- DB 내에서 메타 데이터를 저장하는 경우, 코드를 수정할 필요 없이 데이터 레벨에서 해결 가능하지만, 프로그램 내에 메타 데이터를 저장하는 경우, 코드를 수정해야 한다.
- 이런 이유로, application 프로그램 관리가 매우 쉬워지는 것이다.
- Data abstraction
- data structure의 detail을 숨긴다.
- Data model: conceptusl view 를 제공해서 사용자가 DB를 쉽게 관리할 수 있도록 해준다.
- 데이터 모델에 대해서는 Lecture 02에서 자세히 다룰 것이다.
- Support of multiple views of the data
- View: virtual data derived from the (actual) database
- 실제로 이렇게 저장되어 있는 건 아니지만 실제 저장된 데이터로 부터 유추해 끄집어 낸 데이터를 의미한다.
- 같은 database에 대해 다른 관점을 제공한다.
- View: virtual data derived from the (actual) database
- Sharing of data
- multiple users가 동시에 database에 접근이 가능하게 한다.
- 일관성 문제가 생길 . 수있는데, 그런 문제를 막아주는 메커니즘을 제공한다.
앞의 database example과 비교해보면, 실제로 이런 형태로 저장된 건 아니지만 그 데이터들로부터 유추해낼 수 있다는 것을 알 수 있다.
Users of DB System
- System analyst
- end users의 요구사항을 분석한다.
- 어떤 데이터가 관리되어야 하는지 파악한다.
- 프로그래밍 입장에서 어떤 기능이 제공되어야 하는지 파악한다.
- DB Designer
- System analyst가 분석한 결과를 보고 관리되어야 하는 데이터 후보를 선정한다.
- 그 집합을 어떻게 구조화 할 것인지 결정한다. (논리적으로 / 물리적으로)
- DB design process에 대해서는 Lecture 03에서 자세히 다룰 예정이다.
- Application programmer
- DB 구조가 확정된 후, 사용자에게 어떻게 기능을 제공할지 결정한다.
- 실제 어플리케이션이 구축되는 단계이다.
- 여기까지는 개발업체 소속
- Database administrator (DBA)
- 여기서부터는 개발업체 소속이 아니다.
- DBA는 어플리케이션을 모니터링하고, 문제가 생기면 해결하는 역할을 한다.
- End Users
- 자신도 모르게 DB를 사용하는 사람들이다.
DBMS Features
- Controlling redundancy
- Redundancy : 같은 데이터가 두 개 이상의 location에 저장되는 것
- Problem
- 저장공간 낭비
- 데이터의 일관성이 없어짐
- Restricting unauthorized access
- 보안상
- Persistent storage for program objects
- 데이터를 메인 메모리가 아니라 디스크에 저장하니까
- Multiple user interfaces
- 사용자의 지식 수준에 따라 다르게 제공
- Query language, programming interface, GUI, ...
- Representing complex relationships among data
- Entity 간의 관계를 표현하는 다양한 방식 제공
- Enforcing integrity constraints
- Integrity: 무결성, 결함이 없다.
- DBMS
- 무결성 조건을 정의할 수 있어야 한다.
- 무결성을 만족하는 지 점검할 수 있어야 한다.
- Backup and recovery
- 문제가 생겼을 때를 대비해서 copy본을 만들어놓고, 실제로 문제가 발생하면 최신의 copy본을 가져오는 것
- 개념은 쉬워도 실제로 수행하는 것은 굉장히 어렵다.
Advantages of Using the DBMS
- Application development time reduced
- 프로그래밍 할 필요 없이 간단한 명령어 만으로 가능하다.
- Availability of up-to-date information
- 시간 차가 발생하지 않는다. DB update는 즉각적으로 반영된다.
- Economy of scale
- 사용자가 많아질수록 DBMS 사용 부담이 줄어든다.
When Not to Use a DBMS
DBMS를 사용하지 않는 것을 권하는 경우도 있다.
- Overheads of DBMS
- 높은 초기 비용(HW, SW, Education, ...)
- 비교적 시간이 오래걸림 (보안, 일관성 문제, 무결성 조건 등 복잡하니까)
- More desirable to use redular files (not DBMS)
- 간단하고, 바뀔 가능성이 거의 없을 때
- 마감시간이 정해진 경우 즉, 그 뒤부터는 의미가 없어질 때 ex) 미사일
- multiple user가 DB에 access하는 경우가 없을 때 혹은 access하더라도 read-only인 경우 ex) 검색 엔진
해당 게시물은 한양대학교 컴퓨터소프트웨어학부 김상욱 교수님의 데이터베이스시스템및응용 강의를 바탕으로 정리한 자료입니다.
'데이터베이스시스템' 카테고리의 다른 글
[Lecture 06] Relational modeling (0) | 2024.10.12 |
---|---|
[Lecture 05] Relational data model (0) | 2024.10.06 |
[Lecture 04] ER model, ER diagram (0) | 2024.10.04 |
[Lecture 03] DB design process, Entity-relationship model (1) | 2024.10.03 |
[Lecture 02] 데이터베이스 시스템 개념 및 구조 (1) | 2024.09.30 |