第五篇数据库技术 数据库技术是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透 数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。 51.1数据库技术与数据库系统 什么是数据管理? 对数据进行分类、组织、编码、存储、检索和维护,是数据处理的中心问题 数据管理技术的发展过程 1.人工管理阶段(40年代中-50年代中) 应用程序,数据不保存;无直接存取存储设备;没有操作系统 2.文件系统阶段(50年代末-60年代中) 数据冗余度大(数据文件间是独立的,重复的) 程序与数据不独立(例身份证号位数扩大) 数据的不完整性;缺乏对数据有效统一的控制 3.数据库系统阶段(60年代末-现在) 数据是集成的;数据冗余少;程序数据独立性;易于提供安全保障 容易提供符合用户不同要求的信息 数据可长期保存 数据库系统(DB)【的 文件处理系统 数据冗余皮大 特点: 数据的定义和 舞是集成的 星复的 数据冗余少 程序与数据不教立 Customer Fie 程序播激立性 Processng 易于提供安全保障 数滑的不亮整性 容易提供符合用户 缺乏对数据有效 Rental File 不同要求的信息 统一的控制 应用程序与数据的对应关系(文件系统) 应用程序、DBMs、DB的对应关系(数据库系统) 1.2数据库系统简介 用户数据:大多数数据库把用户数据表示为关系 Design Tools 列:属性,行:对应业务环境中实体的记录 Table Creation 学号姓名所在系系主任姓名课程名成續 010125曲波计算机周勇数据库原理96 010125曲波计算机 Programs 010138张新信息系王甸 00034关笑计算机 操作系统89 0008王乐自动化李冰自动化设计85 Form Processor 0808王乐自动化李冰电路原理82 e Query Processor 学号课程名教师姓名成绩 Applicaton Metadata Report writer 号请程名成绩 数据库原理张静 procedural Languag→ Programs 数寻 @创3数据原理张静 3数等乐理 0数据库原理张静9数9 数据库系统的构成05C言刘天民9[ax言 数据库:是自描述的集成记录的集合。 用户数据(用户的表) 元数据(关于结构的描述)
1 第五篇 数据库技术 数据库技术是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透。 数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。 5.1.1 数据库技术与数据库系统 什么是数据管理? 对数据进行分类、组织、编码、存储、检索和维护,是数据处理的中心问题 数据管理技术的发展过程 1. 人工管理阶段(40 年代中--50 年代中) 应用程序,数据不保存; 无直接存取存储设备; 没有操作系统 2. 文件系统阶段(50 年代末--60 年代中) 数据冗余度大(数据文件间是独立的, 重复的) 程序与数据不独立(例身份证号位数扩大) 数据的不完整性; 缺乏对数据有效统一的控制 3. 数据库系统阶段(60 年代末--现在) 数据是集成的; 数据冗余少; 程序/数据独立性; 易于提供安全保障 容易提供符合用户不同要求的信息。 文件处理系统 ◼数据冗余度大 ◼数据文件间是独立的 ◼重复的 ◼程序与数据不独立 ◼例身份证号位数扩大 ◼数据的不完整性 应用程序与数据的对应关系(文件系统) ◼缺乏对数据有效 统一的控制 数据可长期保存 应用程序、DBMS、DB的对应关系(数据库系统) 数据库系统(DBS) 特点: 数据是集成的 数据冗余少 程序/数据独立性 易于提供安全保障 容易提供符合用户 不同要求的信息。 高级语言中嵌 入数据库的操作 提供数据库语言, 完成数据的定义和 访问 数据库系统的构成 1.2 数据库系统简介 用户数据:大多数数据库把用户数据表示为关系。 列:属性,行:对应业务环境中实体的记录 数据库:是自描述的集成记录的集合。 用户数据(用户的表) 元数据(关于结构的描述)
应用元数据(窗体、查询、报表等应用组件) 索引信息 数据库管理系统(DMS) ■设计工具子系统 产生表、窗体、查询、报表的工具 提供编程语言和对编程语言的接口 运行子系统 处理用设计工具开发的应用组件 ■例:在运行期打开窗口时,自动将数据从表中提出,并显示在窗体上 ■DBMS引擎 从上两个组件接受请求(根据表、行和列声明),并把它们翻译成对操作系统的命令,以便读写物理介 质上的数据。 512数据描述 信息世界中的基本概念 (1)实体( Entity)客观存在并可相互区别的事物称为实体。 可以是具体的人、事、物或抽象的概念。 (2)属性( Attribute)实体所具有的某一特性称为属性。 个实体可以由若干个属性来刻画 (3)码(Key)唯一标识实体的属性集称为码 (4)域( Domain)属性的取值范围称为该属性的域 (5)实体型( Entity Type)用实体名及其属性名集合来抽象和刻画。同类实体称为实体型 (6)实体集( Entity Set)同型实体的集合称为实体集 (7)联系( Relationship) 现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系 实体所具有的某一 个属性 特性称为属性 C程序设计 操作系统 选课”关系 编译原理 卫4卫 数值分析 选课关系 主关键字为两个属性的关系 主码是由现实世界的实际情况决定的 个课程关系的例子 数据库开发者必须通过了解用户的实际情况来决定哪些属性可做 关键字(Key)或主码:唯一标识实体的属性集称为关键字 513数据模型 ■在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世 界的模拟 ■数据模型应满足三方面要求 能比较真实地模拟现实世界 容易为人所理解 便于在计算机上实现 ■数据模型分成两个不同的层次 2
2 应用元数据(窗体、查询、报表等应用组件) 索引信息 二 数据库管理系统(DMS) ◼ 设计工具子系统 ◼ 产生表、窗体、查询、报表的工具 ◼ 提供编程语言和对编程语言的接口 ◼ 运行子系统 ◼ 处理用设计工具开发的应用组件 ◼ 例:在运行期打开窗口时,自动将数据从表中提出,并显示在窗体上。 ◼ DBMS 引擎 ◼ 从上两个组件接受请求(根据表、行和列声明),并把它们翻译成对操作系统的命令,以便读写物理介 质上的数据。 5.1.2 数据描述 信息世界中的基本概念 (1) 实体(Entity) 客观存在并可相互区别的事物称为实体。 可以是具体的人、事、物或抽象的概念。 (2) 属性(Attribute) 实体所具有的某一特性称为属性。 一个实体可以由若干个属性来刻画。 (3) 码(Key) 唯一标识实体的属性集称为码。 (4) 域(Domain) 属性的取值范围称为该属性的域。 (5) 实体型(Entity Type) 用实体名及其属性名集合来抽象和刻画。同类实体称为实体型 (6) 实体集(Entity Set) 同型实体的集合称为实体集 (7) 联系(Relationship) 现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系 ◼ 一个课程关系的例子 课程号 课程名 授课学时 授课学期 J001 数据库 72 6 J003 C 程序设计 54 2 Z004 操作系统 72 5 Z006 编译原理 72 6 X001 数值分析 54 3 X002 面向对象 36 4 四个属性 六 个 元 组 候选码 主码 或 关键字(Key)或 主码:唯一标识实体的属性集称为关键字。 实体所具有的某一 特性称为属性 ◼ 主码是由现实世界的实际情况决定的。 ◼ 数据库开发者必须通过了解用户的实际情况来决定哪些属性可做 主关键字 学号 课程 学分 学号 课程 学分 100 人工智能 3 100 人工智能 3 125 文化学 2 100 市场营销 2 150 市场营销 2 125 文化学 2 175 人工智能 2 150 市场营销 2 190 文化学 2 150 法律 2 图 10.18 “选课”关系 175 人工智能 3 175 文化学 4 190 文化学 4 选课关系 主关键字为两个属性的关系 属性 主码 主码 属性 5.1.3 数据模型 ◼ 在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世 界的模拟 ◼ 数据模型应满足三方面要求 ◼ 能比较真实地模拟现实世界 ◼ 容易为人所理解 ◼ 便于在计算机上实现 ◼ 数据模型分成两个不同的层次
(1)概念模型也称信息模型,它是按用户的观点来对数据和信息建模 (2)数据模型主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模。 ■客观对象的抽象过程--两步抽象 现实世界中的客观对象抽象为概念模型; 把概念模型转换为某一DBMS支持的数据模型。 概念模型是现实世界到机器世界的一个中间层次。 生数据機型(续 教据建模:根据用户的数据视图建立系统模型的过程 常用的数据建模工具: 实体一联系(E-R)模型 1988年提出广语义对象模型 1976年1 数据模型三要素 数据结构 据类型 数据操作 整性约束 特集接 非关系模型 层次模型( Hierarchical Model) 数据结构:树 网状模型( Network model) 数据结构:图 ■关系模型( Relational model) 数据结构:表 面向对象模型( Object Oriented Model) 数据结构:对象 层次模型的优缺点:典型的IMS数据库管理系统 ■优点 层次数据模型简单,对具有一对多的层次关系的部门描述自然、直观,容易理解 性能优于关系模型,不低于网状模型 层次数据模型提供了良好的完整性支持 缺点 多对多联系表示不自然 对插入和删除操作的限制多 查询子女结点必须通过双亲结点 层次命令趋于程序化 网状模型的优缺点:典型DBTG系统 优点 能够更为直接地描述现实世界,如一个结点可以有多个双亲 具有良好的性能,存取效率较高 缺点 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握 DDL、DML语言复杂,用户不容易使用
3 (1) 概念模型 也称信息模型,它是按用户的观点来对数据和信息建模。 (2) 数据模型 主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模。 ◼ 客观对象的抽象过程---两步抽象 ◼ 现实世界中的客观对象抽象为概念模型; ◼ 把概念模型转换为某一 DBMS 支持的数据模型。 概念模型是现实世界到机器世界的一个中间层次。 数据模型(续) ◼ 数据建模:根据用户的数据视图建立系统模型的过程 ◼ 常用的数据建模工具: ◼ 实体-联系(E-R)模型 ◼ 语义对象模型 ◼ 数据模型三要素: 数据结构 数据操作 完整性约束 1976年提出 1988年提出 对象数据类型 的集合,记 录、数据项和 类型 各种对象的实例数据允 许执行的操作的集合 完整性规 则的集合 ◼ 非关系模型 ◼ 层次模型(Hierarchical Model) ◼ 数据结构:树 ◼ 网状模型(Network Model ) ◼ 数据结构:图 ◼ 关系模型(Relational Model) ◼ 数据结构:表 ◼ 面向对象模型(Object Oriented Model) ◼ 数据结构:对象 层次模型的优缺点: 典型的 IMS 数据库管理系统 ◼ 优点 ◼ 层次数据模型简单,对具有一对多的层次关系的部门描述自然、直观,容易理解 ◼ 性能优于关系模型,不低于网状模型 ◼ 层次数据模型提供了良好的完整性支持 ◼ 缺点 ◼ 多对多联系表示不自然 ◼ 对插入和删除操作的限制多 ◼ 查询子女结点必须通过双亲结点 ◼ 层次命令趋于程序化 网状模型的优缺点: 典型 DBTG 系统 ◼ 优点 ◼ 能够更为直接地描述现实世界,如一个结点可以有多个双亲 ◼ 具有良好的性能,存取效率较高 ◼ 缺点 ◼ 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握 ◼ DDL、DML 语言复杂,用户不容易使用
关系数据模型: ORACLE、 SYBASE、 INFORMIX,DB2、 SQL Server、 ACESS ■关系模型: 关系数据形式上是一个二维表( table),表描述了一类应用对象的实例状态,表中的数据要满足完整性约束要求 优点 建立在严格的数学概念的基础上 概念单一。数据结构简单、清晰,用户易懂易用 实体和各类联系都用关系来表示。 对数据的检索结果也是关系。 关系模型的存取路径对用户透明 具有更高的数据独立性,更好的安全保密性 简化了程序员的工作和数据库开发建立的工作 缺点:存取路径对用户透明导致查询效率往往不如非关系数据模型 对象模型以对象模型组织的数据库叫面向对象数据库 对象 封装了数据和操作,子对象继承父对象的数据和操作,类对象定义封装和继承的形式,每个实例对象只存储各属 性的数据,当向该实例对象发消息时,根据实例对象查出其类对象,从中找出方法并检查无误后以实例对象的数据处 理该消息 ■对象式数据库的特性:检索效率高、自然合理 概念模型的用途 概念模型用于信息世界的建模 是现实世界到机器世界的一个中间层次 是数据库设计的有力工具 数据库设计人员和用户之间进行交流的语言 对概念模型的基本要求 较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识 简单、清晰、易于用户理解 数据库应用结构 数据库系统外部的体系结构 从数据库最终用户角度看 单用户结构 多用户结构 集中式结构 分布式结构 客户/服务器结构(C/S) 浏览器/服务器结构(BS) 单用户应用结构 整个数据库系统(应用程序、DBMS、数据)装在一台计算机上,为一个用户独占,不同机器之间不能共享数据。 早期的最简单的数据库系统 多用户结构—集中式应用结构 ■一个主机带多个终端的多用户结构 数据库系统,包括应用程序、DBMS、数据,都集中存放在主机上,所有处理任务都由主机来完成 各个用户通过主机的终端并发地存取数据库,共享数据资源 多用户结构分布式结构 数据库中的数据在逻辑上是一个整体,但物理地分布在计算机网络的不同结点上。 优点
4 关系数据模型: ORACLE 、SYBASE、INFORMIX, DB/2、SQL Server、ACESS ◼ 关系模型: 关系数据形式上是一个二维表(table),表描述了一类应用对象的实例状态,表中的数据要满足完整性约束要求 ◼ 优点 建立在严格的数学概念的基础上 概念单一。数据结构简单、清晰,用户易懂易用 ◼ 实体和各类联系都用关系来表示。 ◼ 对数据的检索结果也是关系。 关系模型的存取路径对用户透明 ◼ 具有更高的数据独立性,更好的安全保密性 ◼ 简化了程序员的工作和数据库开发建立的工作 ◼ 缺点: 存取路径对用户透明导致查询效率往往不如非关系数据模型 对象模型:以对象模型组织的数据库叫面向对象数据库 ◼ 对象: 封装了数据和操作,子对象继承父对象的数据和操作,类对象定义封装和继承的形式,每个实例对象只存储各属 性的数据,当向该实例对象发消息时,根据实例对象查出其类对象,从中找出方法并检查无误后以实例对象的数据处 理该消息。 ◼ 对象式数据库的特性:检索效率高、自然合理 概念模型的用途 概念模型用于信息世界的建模 是现实世界到机器世界的一个中间层次 是数据库设计的有力工具 数据库设计人员和用户之间进行交流的语言 对概念模型的基本要求 较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识 简单、清晰、易于用户理解。 数据库应用结构 数据库系统外部的体系结构 从数据库最终用户角度看 ◼ 单用户结构 ◼ 多用户结构 ◼ 集中式结构 ◼ 分布式结构 ◼ 客户/服务器结构(C/S) ◼ 浏览器/服务器结构(B/S) 单用户应用结构 ◼ 整个数据库系统(应用程序、DBMS、数据)装在一台计算机上,为一个用户独占,不同机器之间不能共享数据。 ◼ 早期的最简单的数据库系统 多用户结构——集中式应用结构 ◼ 一个主机带多个终端的多用户结构 数据库系统,包括应用程序、DBMS、数据,都集中存放在主机上,所有处理任务都由主机来完成 各个用户通过主机的终端并发地存取数据库,共享数据资源 多用户结构——分布式结构 ◼ 数据库中的数据在逻辑上是一个整体,但物理地分布在计算机网络的不同结点上。 ◼ 优点
■适应了地理上分散的公司、团体和组织对于数据库应用的需求 缺点 数据的分布存放给数据的处理、管理与维护带来困难。 当用户需要经常访问远程数据时,系统效率会明显地受到网络传输的制约 四、多用户结构一客户/服务器(C/S)结构 浏览器/服务器(B/S)结构 把DBMS功能和应用分开 客户机端仅安装通用的浏览器软件实现同用户的输入/输出,而 服务器:网络中某个(些)结点上的计算机专门用应用程序在服务器端安装和运行 客户端:其他结点上的计算机安装Ds的外围应用结构中客户端运行的程序转移到了应用务器健婆求,台 于执行DBMS功能,称为数据库服务器,简称服务器 服务器端,除了有DB服务器保存数据并运行基本的DB操作外 开发工具,用户的应用系统,称为客户机(客户·应用服务器充当客户机与DB服务器的中介,架起用户界面同DB之 间的桥梁,故也称为三层结构 第一 主流的产品 请求 第二 Oracle、 Informix和BM 的DB2 结果 客户机n 客户/服务器结构的优点 客户端的用户请求被传送到数据库服务器,数据库服务器进行处理后,只将结果返回给用户,从而显著减少了数 据传输量 数据库更加开放 客户与服务器一般都能在多种不同的硬件和软件平台上运行 可以使用不同厂商的数据库应用开发工具 客户/服务器结构的缺点 胖客户”问题 系统安装复杂,工作量大 应用维护困难,难于保密,造成安全性差。 相同的应用程序要重复安装在每一台客户机上,从系统总体来看,大大浪费了系统资源。 五、多用户结构一浏览器/服务器(B/S)结构 提出请求 浏览器 Www服 数据库 务器 服务器 →数据库 HM形式 刘览器/WWW服务器/数据库服 示意图 实现三层结构的软件: 客户端:实现同用户的输入/输出(“瘦客户”) 应用服务器:应用服务器的服务器来处理客户端提交的处理要求 veb服务器有 Microsoft的 IIS (Internet Information Server)等 DB服务器:保存数据并运行基本的DB操作 例:数据库有 Microsoft SQL Server等都可作为服务器端的DBMs 小结 数据库系统构成:(DBMS、DB、应用程序、开发及使用人员) 数据库的特点:(自描述的、集成记录的集合) 模型:(对现实世界的模拟)
5 ◼ 适应了地理上分散的公司、团体和组织对于数据库应用的需求。 ◼ 缺点 ◼ 数据的分布存放给数据的处理、管理与维护带来困难。 ◼ 当用户需要经常访问远程数据时,系统效率会明显地受到网络传输的制约。 四、多用户结构——客户/服务器(C/S)结构 ◼ 把DBMS功能和应用分开 ◼ 服务器:网络中某个(些)结点上的计算机专门用 于执行DBMS功能,称为数据库服务器,简称服务器 ◼ 客户端:其他结点上的计算机安装DBMS的外围应用 开发工具,用户的应用系统,称为客户机(客户 端) 请求 结果 主流的产品: SQL Server、Sybase、 Oracle、Informix和IBM 的DB2 浏览器/服务器(B/S)结构 ◼ 客户机端仅安装通用的浏览器软件实现同用户的输入/输出,而 应用程序在服务器端安装和运行。 ◼ 服务器端,除了有DB服务器保存数据并运行基本的DB操作外,还 有称作应用服务器的服务器来处理客户端提交的处理要求。即 C/S结构中客户端运行的程序转移到了应用服务器中。 ◼ 应用服务器充当客户机与DB服务器的中介,架起用户界面同DB之 间的桥梁,故也称为三层结构。 客户/服务器结构的优点 客户端的用户请求被传送到数据库服务器,数据库服务器进行处理后,只将结果返回给用户,从而显著减少了数 据传输量 数据库更加开放 客户与服务器一般都能在多种不同的硬件和软件平台上运行 可以使用不同厂商的数据库应用开发工具 客户/服务器结构的缺点 “胖客户”问题: ◼ 系统安装复杂,工作量大。 ◼ 应用维护困难,难于保密,造成安全性差。 ◼ 相同的应用程序要重复安装在每一台客户机上,从系统总体来看,大大浪费了系统资源。 五、多用户结构——浏览器/服务器(B/S)结构 浏览器/WWW服务器/数据库服务器结构示意图 ◼ 实现三层结构的软件: ◼ 客户端:实现同用户的输入/输出(“瘦客户”) ◼ 例:浏览器 Microsoft IE ◼ 应用服务器:应用服务器的服务器来处理客户端提交的处理要求 ◼ 例:Web服务器有Microsoft的IIS(Internet Information Server)等 ◼ DB服务器:保存数据并运行基本的DB操作 ◼ 例:数据库有Microsoft SQL Server等都可作为服务器端的DBMS WWW服 务器 数据库 浏览器 服务器 数据库 提出请求 HTML形式 数据请求 返回结果 小结 ◼ 数据库系统构成:(DBMS、DB、应用程序、开发及使用人员) ◼ 数据库的特点:(自描述的、集成记录的集合) ◼ 模型:(对现实世界的模拟)