数据库系统(DataBase System,DBS)是由一个互相关联的数据的集合和一组用以访问这些数据的程序组成,这个数据的集合称为数据库。
在早期数据库的管理方法是存放在操作系统文件中,被存储在多个不同的文件中,随着时间的推移,往往会发生很多问题
文件处理系统的弊端
数据的冗余和不一致
由于文件和程序在很长的一段时间内由不同的程序员创建的,不同文件可能由不同的结构,相同的信息可能在几个地方重复存储。这种冗余会增加存储和访问开销增大,还可能导致数据不一致性(比如 学生地址的更改可能在音乐系记录中得到反映而在系统的其他地方却没有)
数据访问困难
假设我们需要对数据进行筛选,但是之前开发的应用程序并没有这个功能。那么我们要么手工提取,要么再编写一个能应对的应用程序。显然这很麻烦,并不高效
数据独立
由于数据分散在不同文件中,这些文件又可能具有不同的格式,因此编写新的应用程序来检索适当的数据是很困难的
完整性问题
数据库中所存储数据的值必须满足某些特定的一致性约束。
原子性问题
当计算机系统发生故障,一旦故障发生,数据就应被恢复到故障发生以前的一致状态,假设我们要从A账户里取500元存到B账户里,刚取出来系统就发生故障,还没来得及存到B账户里。这就造成里数据库状态的不一致性。为了保证数据库的一致性,这两个操作要么都发生,要么都不发生,也就是说这个操作必须是原子的。
并发访问异常
为了提高系统的总体性能以及加快响应速度,许多系统允许多个用户同时更新数据。假设两个人同时从一个账户里取钱,这样并发的执行就可能使账户处于一种错误的状态。又或是选课时候,并发访问可能会导致违反注册上限
安全性问题
并非数据库系统的所有用户都可以访问数据,管理员和普通用户权限显然是不同的
数据库系统为了解决这些问题而提出里概念和算法