1 数据库系统
为了处理文件处理系统中存在的问题提出的概念和算法。
1.1 数据视图
提供给用户抽象视图。
数据抽象:设计复杂的数据结构来表示数据,通过多个层次上的抽象对用户屏蔽复杂性。
物理层:最低层,详细描述复杂的底层数据结构
逻辑层:数据库中存储什么数据,数据间存在的关系。物理数据独立性。
视图层:最高层次的抽象,描述数据库的某个部分。系统可以为同一个数据库提供多个视图。
1.2 实例和模式
实例:特定时刻存储在数据库中的信息集合。类比为变量某一个时刻的值,以及类的实例。
模式:数据库的总体设计。类比为程序设计中的变量,类。模式可以进行分类,物理模式在物理层描述数据库的设计,逻辑模式在逻辑层描述数据。
应用程序如果不依赖物理模式,它们就被称为具有物理数据独立性。物理模式改变了也无需进行重写。
1.3 数据模型
关系模型:使用表的集合来表示数据和数据间的联系
实体联系模型:基于对现实世界中的认知,实体是现实世界中的可以区别与其他对象的一件事情或者一个物理
基于对象的数据模型:可以看成是对E-R模型增加了封装,方法函数和对象标识等概念后的拓展。
对象关系数据模型:结合了面向对象的数据模型和关系数据模型的特征。
半结构化数据模型:允许有相同数据类型的数据项中含有不同的属性集的数据定义。
1.4 数据库语言
数据库系统提供数据定义语言来定义数据库模式,数据操纵语言来表达数据库的查询和更新,它们简单的构成了单一的数据库语言。
1.4.1 数据操纵语言
DML使得用户可以访问或者操纵按照某种适当的数据模型组织起来的数据。
(1)检索(2)插入(3)删除(4)修改
可以分为两类:
- 过程化DML要求用户指定需要什么数据以及怎么样获得
- 声名式DML(非过程化)要求用户指定需要什么杨数据但是不需要指定怎么获得
1.4.2 数据定义语言
DDL可以定义数据库模式,也可以用于定义数据的其他特征。
用于说明数据库使用的存储结构和访问方式的DDL也称为数据存储和定义语言。
数据库中的数据值必须满足一些一致性约束。例如人数是整数,不能有负值等。
- 域约束:每个属性都必须对应于一个所有可能的取值构成的域。声明一个属性属于的域。比如整形,字符型等。
- 参照完整性:一个关系中给定的属性集上的取值也在另外一个关系的某一属性集中的取值出现。例如一个表中有每一个课对应的系,而我们希望这个系也会出现在专门的系的表中,有自己的id。
- 断言:数据库需要时刻满足的某一条件。例如一门课学生不能少于5个,只有不破坏断言的数据库更新才会被允许。
- 授权:读写更新删除权限。
DDL输出放在数据字典中,数据字典包含了元数据。数据字典可以看作一种特殊的表,只能由数据库系统本身进行访问和修改。读取数据修改实际的数据前,数据库系统先要参考数据字典。
1.5 关系数据库
- 表:关系模型是基于记录的模型的一个实例,数据库的结构是几种固定格式的记录。
- 数据操纵语言,SQL是非过程化的,查询。
- 数据定义语言,SQL提供了,可以定义表,完整性约束,断言等。
- 来自应用程序的数据库访问:(1)程序接口,使用DML,DDL语句发送给数据库,取回结果,例如JDBC。(2)在宿主语言中嵌入DML调用,使用DML预编译器将DML转变为宿主语言中的过程调用。
1.6 数据库设计
主要是数据库模式的设计、
- 设计过程:用户需求的规格文档-->概念设计,描述数据和它们之间的联系。不指定物理的存储细节,功能需求说明-->逻辑设计,将概念模式映射到要使用的数据库系统的实现数据模型上-->物理设计:指定数据库的物理特性,包括文件组织的形式和内部的存储结构
- 实体联系模型:实体是现实世界中的一个对象事情物体.数据库中通过属性集合来描述.联系是几个实体之间的关联. 同一类型的所有实体集合称为实体集,同理联系集.
- 实体联系模型的映射基数,表示联系集能和一实体进行关联的实体数目.
- 规范化:避免冗余,轻易检索数据.范式,使用函数依赖.
1.7 数据存储和查询
数据库功能部件大致可以分为存储管理器和查询处理部件.
1.7.1 存储管理器
存储管理器是数据库系统中在数据库中存储的低层数据和应用程序以及向系统提交的查询之间提供接口的部件.将各种DML语言翻译为底层文件系统命令.负责数据库存储,检索和更新.
其包括:
- 权限及完整性管理器.检测满足完整性约束,检查用户的访问权限.
- 事务管理器:保证数据库一致正确状态,保证并发事务的执行.
- 文件管理器:管理磁盘存储空间的分配.
- 缓冲区管理器:负责取出磁盘中的数据到内存中,决定哪些数据应该被缓存在内存中.
- 数据文件:数据库本身
- 数据字典:存储数据库的结构的元数据,尤其是数据库模式
- 索引:提供对数据项的快速访问
1.7.2 查询处理器
- DDL解释器,解释DDL语句并将定义记录在数据字典中
- DML编译器:将查询语言中的语句翻译为一个执行方案,包括一系列查询执行引擎能理解的低级指令
- 查询执行引擎:执行由DML编译器产生的低级指令
查询优化:DML编译器可以进行,一个查询可以被翻译为多种等价的具有相同的结果的执行方案中的一种 。
1.8 事务管理
事务是数据库应用中完成单一逻辑功能的操作集合。每一个事务既有原子性又有一致性。
原子性与一致性是数据库系统确切的说是恢复管理器的职责。在故障发生的情况下。为了保证原子性,数据库必须被恢复到该失败事务开始执行以前的状态,这种情况下必须进行故障恢复。
并发控制器控制并发事务间的相互影响。事务管理器包括并发控制器和恢复管理器。
1.9 数据库体系结构
可以通常分为2层或者3层。2层中 应用驻留在客户机上,通过查询语言表达式调用服务器上的数据库系统功能。例如ODBC,JDBC。3层中,客户机只作为一个前端且不包含任何直接的数据库调用。客户机与一个应用服务器进行通信。
1.10 数据挖掘与信息检索
数据挖掘 指半自动的分析大型数据库并从中找出有用模式的过程,从数据中寻找规则或者模式。
数据仓库:大企业有各种来源不同用于业务决策的数据来源,建立数据仓库,从多个来源收集数据,建立统一的模式,驻留在单个节点上面。
信息检索:查询非结构化的文本数据。重点强调基于关键词的检索,文档与查询的相似度,以及文档的分析,分类和索引。
1.11 特种数据库
- 基于对象的数据模型,看作ER模型的拓展,增加了封装,函数方法与对象标识,继承,对象标识和信息封装,对外提供访问对象的接口。
- 半结构化数据模型,有着相同类型的数据项有不同的属性集的数据说明。
1.12 数据库用户与管理员
- 数据库用户和用户界面:(1)无经验用户(2)应用程序员:快速应用开发(RAD)工具快速开发用户界面(3)老练的用户:数据库查询语言或者数据分析软件来表达他们的要求(4)专门的用户
- 数据库管理员:模式定义,存储结构以及存取方法定义,模式以及物理组织的修改,数据访问权限,日常维护
- 数据库系统的发展史
百度云课本与课后答案分享,免费永久的,给个免费的赞吧。
链接: https://pan.baidu.com/s/1Nh7ssXNxudxAMlORpDUbEg?pwd=bsck 提取码: bsck 复制这段内容后打开百度网盘手机App,操作更方便哦
--来自百度网盘超级会员v4的分享
链接: https://pan.baidu.com/s/1hh_Nxy9ME9Pjm6Xn9aXrrA?pwd=z4wq 提取码: z4wq 复制这段内容后打开百度网盘手机App,操作更方便哦
--来自百度网盘超级会员v4的分享