Database란 세상에 존재하는 사실을 디지털화해서 저장을 한 것이다.
Database를 관리하는 DBMS는 transaction을 처리하기 위해 존재하며, DB가 거짓말을 하지 않도록 하기 위해 관리를 한다.
Database는 굉장히 커질 수 있으며
Database는 우리 삶의 많은 측면을 다룬다.
- Database System은 서로 관련된(interrelated) 데이터들의 모음이다.
- 데이터에 접근하기 위한 프로그램의 집합
파일 시스템의 단점을 보게 되면 DBMS의 사용이유를 알게 된다.
Difficulty in accessing data
새로운 작업을 각각 실행하기 위해서는 새 프로그램을 작성해야 한다.
Data isolation
데이터가 따로 관리가 되어서 데이터를 다룰 때 어려워진다.
Integrity problem
무결성 문제는 즉, 데이터 베이스가 거짓말을 하게 되는 경우를 말한다. 예를 들어 은행의 정책이 바뀌게 되어 조건문등을 바꾸게 된다면 파일 시스템은 각 프로그램마다 모든 조건문을 바꿔줘야 한다. 하지만 DBMS를 사용하게 되면 한번만 바꾸게 되어 정책 변경이 쉽게 해결된다.
Atomicity of updates
간단히 All or Nothing 은행 거래 상황이라고 가정했을때 A가 B에게 100만원을 송금한다면 당연히 A의 통장에서는 -100만원이 되어야 하고 B는 +100만원이 되어야 한다. 이것이 동시에 한번에 이뤄지거나 아예 안이뤄져야 함
Concurrent access by multiple users
cf) 자료의 구성 단위
Bit(비트) - Nibble(니블) - Byte(바이트) - 워드(Word) - 필드(field) - 레코드(Record) - 파일(File) - 데이터 베이스(Database)
physical level
logical level
<- symentic 에서 relationship
view level
Schema <- 데이터 베이스의 구조틀
Instance <- 실세계는 계속 바뀜 : 즉, 한순간을 스냅샷 처럼 저장한 것으로 생각
Data Independence
각각의 schema가 바뀌더라도 다른 level에는 영향을 미치지 않는다.
즉, physical level을 바꾸더라도 logical level에는 영향 X인 것.