2021. 3. 13. 17:29ㆍCS/DB
1. motivation
- Database : organized collection(조직화된 모음) of inter-related(상호 관련된) data that models some aspect of the real-world(실제 세계의 일부 측면을 본떠서 만든)
- databases are one of the core components(핵심 구성요소) of most computer applications
Ex) universities, financial market, enterprise information, airlins, web services, telecommuication etc..
- In the early data, database applications were built directly on top of(위에 직접 구축되었다) file systems, which leads to
=> data redundancy(불필요한 중복) and inconsistency(불일치) : data is stored in multiple(여러 개의) file formats and locations
-> 정보의 중복을 야기
=> difficulty in accessing data : need to write a new program to carry out(수행하기 위해) each new stack
=> data isolation(분리) : a property(=>어떤 값) that determines when and how changes made by one operation(작전) become visible to others / cannot controlled with file
=> integrity problems(무결성 문제) : integrity constraints(제한) (e.g., accont balance(통장 잔액) >= 0) become "buried(파묻힌)" in program code, rather than being stated explicity(명시적)
=> concurrency(동시 실행) problems : uncontrolled concurrent accesses can lead to inconsistencies(불일치, 모순)
=> security problems : hard to provide a fine-grained(세분화 된) user access control
---> database systems offer solution to all the above problems!
- Brief history of database systems
- ~ early 1960s : using magnetic tapes for storage -> tapes provided only sequentiall access(순차적 접근) / punched cards for input
- 1960 ~ 1970s : hard disks / network and hierarchical(계급에 따른) data models in use / ted Codd defined the relational data model
- 1980s : research relational prototypes evolve into commercial systems / parallel(유사한) and distributed(분포된) database systems / object-oriented(객체 지향) database systems
- 1990s : large decision support and data-mining(대규모 자료를 토대로 새로운 정보를 찾아내는 것) application / large multi-terabyte data warehouses(창고) / emergence of web commerce(상업)
- 2000s : big data storage systems / big data analysis(분석) : beyond SQL
- 2010s : SQL reloaded