第五章 数据库系统§5.1 数据库概述
§5.2 数据库管理系统§5.3 关系数据库 §5.4 SQL语言
§5.5 数据库应用结构§5.6 数据库访问技术
合肥工业大学 计算机信息学院软件所
5.1 数据库概述5.1.1 常用术语1. 数据库(DataBase,DB)顾名思义就是存放数据的仓库,是长期保存在计算机外存上的、有结构 的、可共享的数据集合。可以描述为:数据库是相互关联的数据的集合, 它用综合的方法组织数据,具有较小的数据冗余,可供多个用户共享,具 有较高的数据独立性,具有安全控制机制,能够保证数据的安全、可靠, 允许并发地使用数据库,能有效、及时地处理数据,并能保证数据的一致 性和完整性。
2. 信息与数据信息是人们对某种事物的理解,通常可以是一件事情、一种状况或者是基 于研究和经验所获得的知识。数据是信息的表达。不同的用户所要保存和 使用的数据各不相同,保存数据的目的是使业务的运作更有效。在任何数 据库中,一般都保存有两种类型的数据:静态的,或者是历史的数据;动 态的,或者是事务性的数据。合肥工业大学 计算机信息学院软件所2
5.1 数据库概述3. 数据库管理系统(DataBase Management System,DBMS)对数据库进行管理的软件系统。数据库的一切操作, 如查询、更新、插入、删除以及各种控制,都是通过 DBMS进行的。 DBMS是位于用户(或应用程序)和操作系统之间的 软件。借助于操作系统实现对数据的存储和管理,使数据 能被各种不同的用户所共享,DBMS提供给用户可使用的 数据库语言。用户
应用程序DBMS 操作系统
4. 数据库系统(DataBase System,DBS)由DB、DBMS、应用程序、数据库管理员、用户等构 成的人-机系统。
数据库 DB数据库系统3
合肥工业大学 计算机信息学院软件所
5.1 数据库概述5.1.2 数据库技术的产生和发展 数据管理技术经历了三个发展阶段:人工管理阶段、文件管理阶段、 数据库系统阶段。
1.人工管理阶段时间:20世纪50年代中期以前 硬件:只有卡片、纸带、磁带等存储设备 软件:没有操作系统,没有进行数据管理的软件 应用:以科学计算为目的程序1
数据1
程序2
数据2
特点: …… 程序和数据放在一起 数据不能共享 特征图如有图所示。合肥工业大学 计算机信息学院软件所4
程序n
数据n
5.1 数据库概述人工管理阶段数据管理示例:两个C语言程序,分别求10个数据之和和最大值。(程序与数据放在 一起,数据没有能够共享)
合肥工业大学 计算机信息学院软件所
5.1 数据库概述2.文件系统阶段时间:20世纪60年代中期 硬件:磁带、磁盘等大容量存储设备
软件:有了操作系统 应用:不仅用于科学计算,还用于数据管理. 特点: 程序与数据分离 数据有一定的独立性 实现了以文件为单位的 数据共享 应用程序2 …文件管理系统
应用程序1
数据文件1
数据文件2
…
应用程序n
特征图
数据文件n6
合肥工业大学 计算机信息学院软件所
5.1 数据库概述文件系统阶段数据管理示例:
上例用文件实现
合肥工业大学 计算机信息学院软件所
5.1 数据库概述3.数据库系统阶段时间:20世纪60年代后期
硬件:出现了大容量且价格低廉的磁盘软件:有了数据库管理系统DBMS 应用:各个方面. 特点:
数据结构化 数据共享性高,冗余小 数据独立性高 数据由DBMS统一管理控制 为用户提供了友好的接口合肥工业大学 计算机信息学院软件所
特征图8
5.1 数据库概述数据库系统阶段数据管理示例 用户与数据库应用程序交互,数据库应用程序与DBMS交互,由DBMS负责 访问数据库中的数据,也就是应用程序不直接与数据库打交道。解决了数据的 独立性问题,实现数据的统一管理,达到数据共享的目的。
求最大值:SELECT Max(Num) FROM Data 求平均值:SELECT Avg(Num) FROM Data
合肥工业大学 计算机信息学院软件所
5.1 数据库概述4.高级数据库技术阶段20世纪80年代开始,出现了分布式数据库和面向对象数据库系统
(1)分布式数据库系统:主要有下面两个特点: 1 )多数处理就地完成:数据 库分布在各地,大多数处理由 网络上各点的局部处理机进行。 2 )各地的计算机由数据通信 网络相联系。 分布式数据库系统兼顾了集中 管理和分布处理两个方面,因 而有良好的性能。
合肥工业大学 计算机信息学院软件所
5.1 数据库概述(2)面向对象数据库系统现实世界存在着许多复杂数据结构的实际应用领域,已有的层次、网 状、关系三种数据模型对这些应用领域都显得力不从心。需要更高级 的数据库技术来表达、管理、构造与维护大容量的持久数据。面向对 象数据库正是适应这种形势发展起来的,它是面向对象的程序设计技 术与数据库技术结合的产物。 主要特点: 1.面向对象数据模型能完整地描述现实世界的数据结构,能表达数据 间嵌套、递归的联系。
2.具有面向对象技术的封装性(把数据与操作定义在一起)和继承性(继 承数据结构和操作)的特点,提高了软件的可重用性。
合肥工业大学 计算机信息学院软件所
5.1 数据库概述5.1.3 数据模型1. 层次模型数据库中数据的存储方式,较常用的数据模型有层次、网状、关系和对象等 模型。 用树型结构来表示实体及实体间的联系, 例如:19
68年,IBM公司的 IMS(Information Management System)层次模型的体系结构是 基于父/子关系的,层次模型就像一棵倒置的树。其特性是每个上层(父) 数据结点可以有多个子结点,而每个子结点只能有惟一的父结点。合肥工业大学
校
机械学院
电气工程学院
......
计算机信息学院
管理学院
院
自动化系
能源系
计算机科学技术系
电子系
系
一班
二班
一班
二班
一班
二班
一班
二班
班12
合肥工业大学 计算机信息学院软件所
5.1 数据库概述2. 网状模型用网状结构来表示实体及实体间的联系,例如:DBTG系统(注:1969 年美国CODASYL组织提出了一份“DBTG报告”,以后根据DBTG报告 实现的系统一般称为DBTG系统)。 相对于层次数据库模型,网状数据库模型有了一定的改善。网状模型的 一个最主要的优点就是允许父表和子表之间共享关联关系,即子表可以 有多个父表。此外,用户可以从网状模型的任何结点开始访问数据库。 网状模型的查找算法比层次模型要复杂,它是按结点内保存的导航信息 来实现的。
合肥工业大学 计算机信息学院软件所
5.1 数据库概述3. 关系模型用一组二维表表示实体及实体间的关系,例如:Microsoft Access,SQL Server等是关系型数据库,目前应用最广泛的是关系数据模型 关系:当用多个简单的数据描述一个复杂事物时,这些简单的数据之间 是有联系的。人们把类型相同的记录集合称为一个关系。 关系数据库中数据存储的主要载体是二维表,表由行和列组成,一行表 示一条数据记录,一列表示所有数据记录在特定域的值。一条数据记录 描述了一个应用对象的实例状态,表中的数据要满足完整性约束条件。 比如日常见到的课程表、花名册表等都可看成是关系表。
合肥工业大学 计算机信息学院软件所
5.1 数据库概述关系概念的图解关系框架 或 库结构
关系(库名)SHOP 地 址 经办人李国基 张山
属性(字段)
店 名
电话2-5036 6-6161
解放路食品店 解放路262号 桃园商场 桃园路6号
元组 或 记录
香香瓜果店
北大街26号
王宏宋良
3-62013-3637
白塔干鲜果店 西大街56号
北大街果品店 北大街231号
林青
3-1116属性 “电话”的 值 15
合肥工业大学 计算机信息学院软件所
5.1 数据库概述关系的其它概念这样的二维表被称为数据库文件 表中行被称为记录(Record)或元组 列称为字段(Field)或属性 表的第一行是字段名的集合,被称为库结构(关系框架或库结构) 列中的元素为该字段(属性)的值,且值总是限定在某个值域(domain)内 候选关键字(Candidate Key):在给定关系中,具有唯一标识特性 的一个或多个属性被称
为该关系的候选关键字。例如,学生关系中的 学号。 主关键字(Primary Key):有时候选关键字多于一个,从中选取一 个作为操作的根据,称其为主关键字。
合肥工业大学 计算机信息学院软件所
5.1 数据库概述4. 对象模型*20世纪80年代面向对象技术兴起后,人们开始探索用对象模型来组织数 据库。以对象模型组织的数据库叫面向对象数据库。对象封装了数据和 操作,封装的对象继承父对象的数据和操作。如何封装、如何继承由类 对象定义。每个实例对象在存储时只有各属性的数据,等向该实例对象 发消息时,按实例对象查出它的类对象,从中找出方法检查无误后以该 实例对象的数据运算该消息。在这个意义上,类-实例和关系模型中的 型-元组相似,只是类中有私有方法。从类继承上看,面向对象模型和 层次(单继承)、网状(多继承)模型相似。对象模型检索时也需要导航。
合肥工业大学 计算机信息学院软件所
5.1 数据库概述5. 对象关系模型*由于面向对象模型和关系模型都还存在需要改进的地方,这导致了对象关 系数据库模型的出现。对象关系数据库集中了两者的优点:关系模型的概 念和面向对象的编程风格。国际标准化组织(ISO)也在最新的SQL标准中 定义了对象关系概念。相关信息请参阅SQL2003标准。。
对象关系数据库的优点包括: 关系对象数据库具有三维结构。 支持用户自定义类型。
对象关系数据库的缺点是:用户必须同时 掌握面向对象和关系的概念。
合肥工业大学 计算机信息学院软件所
5.1 数据库概述5.1.4 数据库系统的特点(1) 采用一定的数据模型,最大限度地减少数据的冗余 (2) 最低的冗余度 (3) 有较高的数据独立性 用户面对的是简单的逻辑结构操作而不涉及数据具体的 物理存储结构 (4) 安全性 设置用户的使用权限 在数据库被破坏时,系统可把数据库恢复到可用状态。 (5) 完整性 一些完整性检验以确保数据符合某些规则,保证数据库中数据始终是正 确的。即数据完整性用来确保数据库中数据的正确和有效。合肥工业大学 计算机信息学院软件所19
5.1 数据库概述关系数据库的数据完整性: 在关系数据库中,数据完整性大多数是由列的约束条件来控制的。约束 条件可以检验进入数据库的数据值,在表一级和列一级上都可以定义约 束条件。 完整性约束条件可以防止不符合语义的数据进入数据库。通常,约束条 件是用来确保新建或修改后的数据遵循所定义的业务规则。
数据完整性包含三个方面: 实体完整性。确保表中所有的数据行不重复。
引用完整性。确保关联表之间数据
的一致性,如,学生选课表 中学号的取值范围受学生表中学号的已有值范围的约束。应用语义完整性。保证数据库中的数据是有意义的,即数据库 中的数据与实际情况相符。如人的性别只能是“男”和“女”。合肥工业大学 计算机信息学院软件所20
5.2 数据库管理系统DBMS作为数据库系统的核心软件,主要目标是使数据库成为方便用户共
享使用的资源,并提高数据的安全必、完整性和可用性。DBMS支持三级结构和两级独立性。 数据库管理系统具有三级结构,也称为三级模式。
即:用户数据逻辑结构、数据的整体逻辑结构和数据的物理存储结构。数据库管理系统保证了数据和程序之间的物理独立性和逻辑独立性。
合肥工业大学 计算机信息学院软件所