为何要引入数据库,数据库与文件处理系统的好处是什么,即数据库解决了那些文件处理系统的弊端?
· 数据的冗余和不一致: 相同的信息可能在多个文件中存储,即导致存储和访问开销增大,又可能导致数据不一致。
·数据访问困难: 传统文件不支持以一种高效而方便的方式去获取所需文件
·数据孤立: 数据分散在不同文件,不同文件有不同的格式。
·完整性约束: 当新的约束加入时,文件很难通过修改程序体现新的约束。
·原子性约束如果一个操作是原子的,那么它要么全部发生要么根本不发生。文件很难保持原子性。
·并发访问异常: 由于并发性导致数据不一致,文件很难避免不一致性
·物理层: 数据实际上如何存储的。物理层详细描述复杂的底层数据结构
·逻辑层: 描述数据库存储什么数据以及这些数据见存在什么关系。逻辑层的简单结构的实现可能涉及复杂的物理层结构,但逻辑层用户不必知道,这称为物理数据独立性。
·视图层 : 只描述数据库的某个部分。
特定时刻存储在数据库中的信息集合称作数据库的一个实例。数据库的总体设计称作数据库模式。
物理模式,逻辑模式,子模式分别描述物理层,逻辑层,视图层的模式。
数据库的结构的基础是数据模型,数据模型可被分为四类:关系模型,实体-联系模型,基于对象的数据模型,半结构化数据模型。
数据操纵语言(DML)的访问类型:即增删改查。
通常有两种基本的数据操纵语言
·过程化DML:要求用户指定需要什么数据以及如何获得数据。
·声明式DML :只需要用户指定什么数据。
数据模式是通过一系列定义说明的,这些定义叫做数据定义语言,同时DDL也可以定义数据的其他特征。
存储在数据库中的数据值必须满足某些一致性约束。DDL提供了指定这种约束的工具,每当数据库更新时,数据库系统会检查这些约束。
·域约束:域可以看作取值范围,声明一种属性属于某种具体的域就相当于它可以取的值。
·参照完整性:一个关系中的给定属性集的取值也在另一关系中出现。
·断言:一个断言就是数据库时刻满足的条件
·授权: 对于不同的用户有着不同的权限。读权限,插入权限,更新权限,删除权限。
关系模型是基于记录的模型的一个实例。基于记录的模型,之所以有这个称谓,是因为数据库的结构是几种固定的记录。每个表包含一种特定类型的记录。每种记录类型定义固定数目的字段或属性。表的列对应记录类型的属性。
select instructor,name
from instructor
where deptname = 'History'
create table department
(deptname char(20),
building char(15),
budget numeric(12,2));
·提供应用程序接口如(ODBC,JDBC)
·再宿主语言中嵌入DML调用
实体通过属性集合来描述,联系是几个实体的关联。同一类型下的所有实体的集合称作实体集,同一类型下的联系的集合称为联系集。
规范化的目标是生成一个关系模式集合,使我们存储信息时没有不必要的冗余,同时又能轻易的检索数据。最常用的使用函数依赖。
权限及完整性管理器,事务管理器,文件管理器,缓冲区管理器,数据文件,数据字典,索引。
DDL解释器,DML编译器,查询执行引擎。
原子性:操作要么都发生,要么都不发生。
一致性:数据库的一致性。
持久性:在一个事务提交之后,事务的状态就会被持久化到数据库中,对数据的更新、新增等操作将会持久化到数据库中。
恢复管理器: 原子性,持久性。
事务管理器:一致性