[DB] Chapter 1 : Databases and Database Users
Introduction
Basic Definition
- data 기록되고 의미가 있는 알려진 사실
- database : 관련된 데이터들의 모음
- DBMS ( database management system) : 데이터베이스를 만들고 관리할 수 있도록 하는 소프트웨어 패키지
- Database system ; DB + DBMS + application
Types of Database and Database Application
- 전통적인 Application
Numeric, Texture -> 은행, 도서관 등에서 사용 - 최근의 다양한 Application
Multimedia, Biological, Data warehouses, mobile, etc.
DB와 DB 관련 기술은 경제, 서비스업, 교육 등 다양한 분야에 영향을 미치고 있다.
Recent Development
1. NoSQL
SNS 는 nontraditional 한 데이터들이 많아졌다. (posts, images, ...) 그리고 실시간으로 많은 사용자가 접근하는 기술이기에 기존 SQL을 적용하는데 어려움이 있어서 NoSQL 기술이 발전되었다.
NoSQL은 저장할 때 metadata와 value를 함께 저장한다.
mongoDB, elasticsearch 등이 있다.
2. cloud storage
: 수천개의 기계로 거대한 데이터 센터를 운영하는 것
Microsoft Azure, Google cloud, AWS 등 다양한 곳에서 클라우드 서비스를 제공하고 있다.
3. Hadoop
빅데이터를 처리하기 위한 분산 시스템 중 하나이다.
빅데이터 처리의 핵심은 분산이다. 빅데이터는 데이터의 양이 매우 많고 이것이 처리과정에서의 가장 큰 문제점이다. 데이터를 잘 분산시켜 여러개의 컴퓨터로 동시에 연산한 뒤, 이를 합하는 방식으로 시간을 대폭 줄일 수 있다.
- Map Reduce Example
input : 백만줄 짜리 글
output : 단어의 빈도수
=> 1줄의 결과를 도출하는데 1초가 걸린다고 하면, 기존 컴퓨터로는 100만초가 소요될 것이다. 하지만, 이를 백만대의 컴퓨터에 분산시켜 결과를 도출하고 결과를 모으면 1초만 걸릴 것이다.
Database System Environment
Simplified Database System Environment
1. Application은 DB와 상호작용한다.
Query : 데이터를 검색 할 수 있다.
Transaction : 데이터를 atomic하게 읽고 쓰는 작업을 진행한다.
2. Application은 허용되지 않은 사용자의 접근을 막아서 데이터를 보호해야한다.
3. application은 db의 사용자 요구사항에 대응해야한다.
DBMS의 기능성(Functionallity)
- Defining : 각각의 DB는 data type, structures, constraint 가 정의되어야함.
- Constructing : secondary medium(영구 저장장치)에 DB를 만들고 load할 수 있어야한다.
- Manipulating : 데이터베이스를 관리할 수 있어야 한다
- Retrieval :Querying, report 생성
- Modification : 삽입, 삭제, 업데이트
- Access : Web 어플리케이션으로 DB에 접근 - Processing and Sharing : 여러 user에 대해 동시성을 유지해야한다.
Main Characteristics Of The Database Approach
Self-describing nature of DB system
DB는 각각 meta-data라고 하는 카탈로그를 가지고 있다. 이 카탈로그에 DB의 구조, 타입, 조건 등을 정의해두어 DB가 스스로 정의될 수 있도록 기술한다.
이 특성 덕분에 DB는 프로그램에 의존하지 않고 분리가 가능해졌다.
+ ) NoSQL 방식에서는 metadata가 필요하지 않다. ( document에 metadata와 value를 쌍으로 저장 및 관리 )
Insulation between programs and data
program-data independence를 유지한다.
DB 구조를 변경시키더라도 DBMS에 접근하는 어플리케이션의 구조를 변경시키지 않아도 된다.
Data Abstraction
program-data 와 program-operation independence를 가능하게 만드는 특징이 추상화 방식이다.
(informal 정의) data model : a type of data abstraction
데이터 추상화를 통해 사용자는 DB에 데이터가 어떤 방식으로 저장되는지, 어떤 구조를 가지고 있는지 모르더라도 데이터를 저장, 관리할 수 있다.
Support of multiple views of the data
같은 DB에 접근하더라도 유저는 서로 다른 view를 볼 수 있어야한다. ( 예를 들어 성적같은 경우 본인의 성적만 조회해야 함) 즉, 사용자가 관심을 가지는 부분만 보여주어야한다.
Sharing of data and multiuser transaction processing
데이터를 무결정이 보장되도록 해야한다. 여러명의 사용자가 동시에 접근해도 데이터의 무결성은 깨지면 안된다.
- Concurrency Control : 각각의 transcation이 정확하게 실행되어야한다. 모든 사람들이 자신만의 DBMS를 사용 하는 것처럼 보여야한다.
ACID : atomicity, consistency, isolation, durability 충족 - Recovery subsystem : 완료된 transcation 마다 그것의 effect를 기록하여 문제가 생기면 돌아갈 수 있도록 해야한다.
- OLTP(Online Transcation Processing) 실시간으로 online transaction이 일어나는 것도 하나의 중요한 부분이다. ( 항공기 예약 시스템 등)
Advantages of Using The DB Approach
- Controlling redundancy(중복제거)
같은 정보를 다양한 사용자들에게 공유해야할 때 각각의 logical data item을 DB의 한 부분만 존재하게 하고 이를 공유한다. => data normalization - Restricting unauthorized access ( 권한 없는 접근 제한 )
- Providing persistent storage for program objects ( 객체의 영속적 저장 )
객체 지향적 DBMS는 object를 만들 수 있는데 이러한 객체도 영속적으로 저장할 수 있다.
- Impedance mismatch problem ( 임피던스 불일치 문제 )
: 예전 DBMS는 프로그래밍 언어에서의 자료구조를 다루는데 어려움이 있었다. 하지만 객체 지향적 DBMS가 나오면서 이 문제가 해결되었다 - Providing storage structures for efficient query processing ( 효율적 질의 처리를 위한 저장 구조 제공 )
DBMS는 검색을 효과적으로 하기 위해 index를 활용한다.
또한, 자신만의 버퍼와 캐시를 가지고 있다.
그 외에도 다양한 장점들이 있다.
Besides, a lot of benefits:
• Optimization of queries for efficient processing
• Backup and recovery services to avoid catastrophic disaster
• Multiple interfaces to different classes of users: mobile users (i.e., apps), causal users (i.e., query languages), application programmers (i.e. JDBC/ODBC), and so forth.
• Representing complex relationships among data: e.g., ‘Brown’ in the TRANSCRIPT view on Slide 25 • Enforcing integrity constraints on the DB (for consistency/integrity).
• Referential integrity constraint: section record related to course record
• Unique constraint: course number/semester/section number => unique
• Drawing inferences and actions from the stored data using deductive and active rules and triggers.
• Trigger (트리거): a form of rules (conditions) activated by updates to the table, resulting in some additional operations to some other tables: e.g. a student being on leave (휴학생) or dropped out of (퇴학생)
When Not To Use A DBMS
- The overhead costs of using DBMS
- DBMS가 필요 없을 때 - 너무 간단해서 사용 안해도 되는 경우
- DBMS를 작동시키는 것이 불가능 할 때 - 저장 공간이 부족할 때 => SQLite 사용하면 일부 해결
- 일반적인 목적의 DBMS 가 필수적이지 않을 때
- real-time
- 데이터가 너무 복잡해서 다루기 불가능
- DB 유저가 DBMS가 다루지 못하는 기능이 필요할 때
'Computer Science > Database' 카테고리의 다른 글
[DB] Chapter 3 : Data Modeling Using the Entity-Relationship(ER) Model (1) | 2023.10.12 |
---|---|
[DB] Chapter 2 : Database System Concepts and Architecture (0) | 2023.10.12 |
[DB] Prologue : Why Databases? (0) | 2023.10.09 |
[Postgresql] 2. 기본 쿼리 익히기 (1) (0) | 2023.01.04 |
[Postgresql] 1. 기본 세팅 및 살펴보기 (0) | 2023.01.04 |