第一章:数据库绪论
1.1数据库系统概述
1.1.1数据库的4个基本概念数据Data
数据Data是数据库中存储的基本对象。
数据的定义:描述事物的符号记录。
数据的种类:数字、文字、图形图像等。
数据库Database
数据库Database是长期储存在计算机内、有组织的、可共享的大量数据的集合。
数据库的基本特征:数据按一定的数据模型组织、描述和储存;可为各种用户共享;冗余度较小;数据独立性较高;易扩展。
数据库管理系统DBMS
数据库管理系统是位于用户与操作系统之间的一层数据管理软件,是基础软件,是一个大型复杂的软件系统。
数据库管理系统用于科学地组织和存储数据、高效地获取和维护数据。
数据库系统DBS
数据库系统Database System
数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序、数据库管理员构成。
1.1.2数据库管理技术的产生和发展
什么是数据管理?
对数据进行分类、组织、编码、存储、检索和维护;数据处理的中心问题。
数据管理技术的发展过程:
人工管理阶段(20世纪50年代中之前)
文件系统阶段(20世纪50年代末-60年代中)
数据库系统阶段(20世纪60年代末-现在)
数据库系统阶段产生的背景:
应用背景 | 大规模数据管理 |
硬件背景 | 大容量磁盘、磁盘阵列 |
软件背景 | 有数据库管理系统 |
处理方式 | 联机实时处理,分布处理,批处理 |
1.1.3数据库系统的特点
1、数据结构化
数据的整体结构化是数据库的主要特征之一
整体结构化不再仅仅针对某一个应用,而是面向全组织;不仅数据内部结构化,整体是结构化,数据之间具有联系;数据记录可以变长;数据的最小存取单位是数据项。
2、数据的共享性高,冗余度低且易扩充
数据共享的好处:减少数据冗余,节约存储空间;避免数据之间的不相容性与不一致性;使系统易于扩充。
3、数据独立性高
数据独立性高是指物理独立性和逻辑独立性
物理独立性:指用户的应用程序与数据库中数据的物理存储使相互独立的。
逻辑独立性:指用户的应用程序与数据库的逻辑结构使相互独立的。
数据独立性由数据库管理系统的二级映像功能来保证。
4、数据由数据库管理系统统一管理和控制
数据库管理系统提供的数据控制功能
(1)数据的安全性(security)保护
保护数据以防止不合法的使用造成的数据的泄密和破坏。
(2)数据的完整性(integrity)检查
保证数据的正确性、有效性和相容性。
(3)并发(concurrency)控制
对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。
(4)数据库恢复(recovery)
将数据库从错误状态恢复到某一已知的正确状态。
1.2数据模型
数据模型使对现实世界数据特征的抽象(现实世界的模拟)
数据模型应满足三方面要求:能比较真实地模拟现实世界;容易为人所理解;便于在计算机上实现
数据模型使数据库系统的核心和基础
1.2.1两类数据模型
(1)概念模型(信息模型),它是按用户的观点来对数据和信息建模,用于数据库设计。
(2)逻辑模型和物理模型
逻辑模型主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。按计算机系统的观点对数据建模,用于DBMS实现。
物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方式,在磁盘或磁带上的存储方式和存取方法。
客观对象的抽象过程:现实世界中的客观对象抽象为概念模型→将概念模型转换为某一数据库管理系统支持的数据模型。
1.2.2概念模型
概念模型的用途
概念模型用于信息世界的建模;使现实世界到机器世界的一个中间层次;使数据库设计的有力工具;数据库设计人员和用户之间进行交流的语言
对概念模型的基本要求:较强的语义表达能力;简单、清晰、易于用户理解
信息世界中的基本概念
(1)实体Entity
客观存在并可相互区别的事物称为实体。可以使具体的人、事、物或抽象的概念。
(2)属性Attribute
实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。
(3)码key
唯一标识实体的属性集称为码。
(4)实体型entity type
用实体名及其属性名集合来抽象和刻画同类实体称为实体型。
(5)实体集entity set
同一类型实体的集合称为实体集。
(6)联系 relationship
实体内部的联系通常是指组成实体的各属性之间的联系
实体之间的联系通常是指不同实体集之间的联系
实体之间的联系有一对一、一对多和多对多等多种类型
实体-联系方法entity-relationship approach
用E-R图来描述现实世界的概念模型
E-R方法也称为E-R模型
实体型用矩形表示
属性用椭圆形表示
联系用菱形表示
1.2.3数据模型的组成要素
数据结构/数据操作/数据的完整性约束条件
数据模型的数据结构
描述数据库的组成对象,以及对象之间的联系
描述的内容
1与对象的类型、内容、性质有关
2与数据之间的联系有关
数据结构事对系统静态特性的描述
数据操作
对数据库中各种对象的实例允许执行的操作的集合,包括操作及有关的操作规则
数据操作的类型:查询,插入,删除,修改
数据模型对操作的定义
操作的确切含义,操作符号,操作规则(如优先级),实现操作的语言
数据操作是对系统动态特性的描述
数据的完整性约束条件
一组完整性规则的集合
完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则
用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容
数据模型对完整性约束条件的定义:反映和规定必须遵守的基本的通用的完整性约束条件;提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件
1.2.4常用的数据模型
层次模型
网状模型
关系模型
面向对象数据模型
对象关系数据模型
半结构化数据模型
1.2.5层次模型
层次模型是数据库系统中最早出现的数据模型
层次数据库系统的典型代表是IBM公司的IMS数据库管理系统
层次模型用树形结构来表示各类实体以及实体间的联系
满足以下两个条件的基本层次联系的集合为层次模型:
1.有且只有一个结点没有双亲结点,这个结点称为根结点
2.跟以外的其它结点有且只有一个双亲结点
层次模型的特点:
结点的双亲是唯一的;只能直接处理一对多的实体联系;每个记录类型可以定义一个排序字段,也称为码字段;任何记录值只有按其路径查看时,才能显出它的全部意义;没有一个子女记录值能够脱离双亲记录值而独立存在。
层次模型的完整性约束条件
1无相应的双亲结点值就不能插入子女结点值
2如果删除双亲结点值,则相应的子女结点值也被同时删除
3更新操作时,应更新所有相应记录,以保证数据的一致性
优点
层次模型的数据结构比较简单清晰
查询效率高,性能优于关系模型,不低于网状模型
层次数据模型提供了良好的完整性支持
缺点
结点之间多对多联系表示不自然
对插入和删除操作的限制多,应用程序的编写比较复杂
插叙子女结点必须通过双亲结点
层次命令趋于程序化
1.2.6网状模型
网状数据库系统采用网状模型作为数据的组织方式
满足以下两个条件的为网状模型:
1.允许一个以上的结点无双亲
2.一个结点可以有多于一个的双亲
网状数据库系统(如DBTG)对数据操纵加了一些限制,提供了一定的完整性约束
码:唯一标识记录的数据项集合
一个联系中双亲记录与子女记录之间是一对多联系
支持双亲记录和子女记录之间某些约束条件
优点
能够更为直接地描述现实世界,如一个结点可以有多个双亲
具有良好的性能,存取效率较高
缺点
结构比较复杂,而且随着应用环境的扩大,数据库结构就变得越来越复杂,不利于最终用户掌握
DDL、DML语言复杂,用户不容易使用
记录之间联系是通过存取路径实现的,用户必须了解系统结构的细节
1.2.7关系模型
关系模型的数据结构
关系(relation)
一个关系对应通常说的一张表
元组(tuple)
表中的一行即为一个元组
属性(attribute)
表中的一列即为一个属性,给一个属性起一个名称即属性名
主码(key)
也称码键。表中的某个属性组,它可以唯一确定一个元组
域(Domain)
是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
分量
元组中的一个属性值
关系模式
对关系的描述
关系必须是规范化的,满足一定的规范条件
关系的每一个分量必须是一个不可分的数据项,不允许表中还有表。
优点
建立在严格的数据概念的基础上
概念单一:实体和各类联系都用关系来表示;对数据的检索结果也是关系
关系模型的存取路径对用户透明:具有更高的数据独立性,更好的安全保密性;简化了程序员的工作和数据库开发建立的工作
缺点
存取路径对用户透明,查询效率往往不如格式化数据模型
为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度
1.3数据库系统的结构
1.3.1数据库系统模式的概念
数据模型中有“型”type和“值”value的概念
型是指对某一类数据的结构和属性的说明,值是型的具体赋值
例如:学生记录型为(学号,姓名,年龄),则值为(20201314,维京,20)
模式是数据库中全体数据的逻辑结构和特征的描述,仅仅涉及型而不涉及值
模式的一个具体值称为模式的一个实例,一个模式可能有很多具体值即很多实例
例如:2020年入学的学生资料数据库实例和2019年入学的学生资料数据库实例
实例中学生不同(值)但每个学生都是要记录学号姓名年龄(型)的,所以仅仅涉及型
模式是相对稳定的,而实例是相对变化的
1.3.2数据库系统的三级模式结构
1模式schema
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图
一个数据库只有一个模式
2外模式external schema
外模式也称子模式subschema或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
外模式是模式的子集,一个数据库可以有多个外模式
因为它是各个用户的数据视图,如果不同的用户在应用需求、看待数据的方式不同,则外模式的描述不同
3内模式internal schema
内模式也称存储模式storage schema,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的组织形式
例如:记录的存储方式是堆存储还是按照某个值属性的升降存储,索引按照什么方式组织,是hash索引还是B+树索引
1.3.3数据库的二级映像功能与数据独立性
数据库管理系统在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像
1外模式/模式映像
当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映像作相应改变
,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性
2模式/内模式映像
当数据库的存储结构改变时(例如选用了另一种存储结构),由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变
从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性
1.4数据库系统的组成
1.硬件平台及数据库
(1)要有足够大的内存,存放操作系统、数据库管理系统的核心模块、数据缓冲区和应用程序
(2)有足够大的磁盘或磁盘阵列等设备存放数据库,有足够大的磁带作数据备份
(3)要求系统有较高的通道能力,以提高数据传送率
2.软件
(1)数据库管理系统。数据库管理系统是为数据库的建立、使用和维护配置的系统软件。
(2)支持数据库管理系统运行的操作系统。
(3)具有与数据库接口的高级语言及其编译系统,便于开发应用程序。
(4)为特定应用环境开发的数据库应用系统
(5)以数据库管理系统为核心的应用开发工具。
3.人员
(1)数据库管理员database administrator,DBA
职责包括:
①决定数据库中的信息内容和结构
②决定数据库的存储结构和存取策略
③定义数据的安全性要求和完整性约束条件
④监控数据库的使用和运行
⑤、数据库的改进和重组、重构
(2)系统分析员和数据库设计人员
(3)应用管理员
(4)用户
①最终用户
②简单用户
③复杂用户