数据库管理系统被称为DBMS(database management system),用于建立和管理海量数据,为用户提供如下功能:
1. 持久存储 DBMS源于文件系统,支持对独立于应用的超大量数据的存储,不同之处在于DBMS灵活度高于FS,并且在数据结构上支持超大量数据的有效访问。
2. 程序设计接口 DBMS允许用户或者应用程序通过强有力的查询语言对数据进行访问和修改。不仅提供对文件的读写,而且还具备以更复杂的方式管理数据的灵活性。
3. 事务管理 DBMS支持数据并发存取,可以有很多不同进程(事物)对数据访问。支持三个特性,独立性(isolation),原子性(atomicity),持久性(durability)
DBMS功能:
1. 数据定义语言(data-manipulation language)
2. 查询语言(query language)
3. 超大数据量数据的长时间存储。
4. 多用户即时存取。
关系数据库
accountNo | balance | type |
12345 | 1000.00 | saving |
67890 | 2846.92 | checking |
。。。 | 。。。 | 。。。 |
标志例子:
查询67890账号的余额
SELECT balance
FROM Accounts
WHERE accountNo=67890;
查询余额为负值的储蓄账号
SELECT accountNo
FROM Accounts
WHERE type= ‘saving’ AND balance < 0
事物处理:
1 记日志:每一个变化都记录在单独磁盘上。
2 并发控制(concurrency control):事物必须表现为以孤立的方式执行。
3 消除死锁(deadlock resolution)
框架:
第2章给出的表述数据库设计的高层表示法,称为实体联系模型(entity-relationship model)。
第3章介绍关系模型。如何把实体-联系设计转换为关系设计,或“关系数据库模式”。介绍“函数依赖”概念。
第4章介绍面向对象数据库设计方法。介绍ODL语言。
5-10章讨论数据库程序设计。
第5章从关系模型查询抽象画处理开始,引入关系上的操作符集,形成了”关系代数“。
第6章介绍SQL中关于查询的基本思想和数据库模式的表达。
第7章介绍SQL中对数据的约束条件和触发器。
第8章介绍SQL程序设计的某些高级内容。
第9章介绍OOP数据库程序设计的标准语言。
第10章研究基于逻辑的语言。