DB
DB(DataBase)는 관계있는 데이터들의 집합이다.
DBMS(DataBase Management System)는 유저들이 DB를 생성하고 유지할 수 있도록 도와주는 "소프트웨어 시스템"이다.
DB를 쓰지 않고 파일을 사용면 되지 않을까?
파일기반의 데이터 저장소
사용하기에 편하다
기록하고 삭제하기 간단하다
저장해야할 데이터가 많아지고 더 많은 기능과 보장을 받기 원한다.
Queries(질의)
단순한 질의뿐만 아니라 복잡한 질의의 요구도 수행할 수 있어야된다.
편리하고 정규화된 질의 언어가 필요함
또한 Schema를 통해 '데이터의 조직'과 '데이터'를 분리함
DBMS 제공: Schema DML(Data Manipulation Language) SQL
Integrity (무결성)
오로지 valid information만을 입력으로 허용해야한다.
Integrity constraints
Types
Update(갱신)
Add/delete/update
DDL(Data Definition Language)
multipe users(다중 사용자)
DBMS는 다중 사용자를 처리해주기 위해Serializability를 제공한다.
Concurrency control해준다.
Crashes(크래시)
crash during update may lead to inconsistent(일관성 없는) state
Must update on all-or none basis(a.k.a atomicity)
Transactions
Commint
Rollback
Recovery
Data Physically Separate (물리적으로 떨어져 있는 데이터)
Uniquely identify each customer
Joins
Keys
Foreign Keys
Referential integrity
Security (보안)
Security
Views
Efficency Indexes Query optimization Database tuning
New needs Data Mining Big data Analytics Data warehouse Database API
참조 문서
- 데이터베이스 시스템 / Abraham Silberschatz, Henry F. Korth, S. Sudarshan 지음 ; 정연돈 [외]옮김