第五篇数据库技术 数据库技术是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透 数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。 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、应用程序、开发及使用人员) ◼ 数据库的特点:(自描述的、集成记录的集合) ◼ 模型:(对现实世界的模拟)
数据模型:面向计算机系统(关系、层次、网状、对象) 概念模型:面向用户 ■数据建模:建立概念模型的过程 实体-联系(E-R)模型、语义对象模型 数据模型三要素 数据结构、数据操作、数据完整性约束 数据库应用结构 单用户结构、集中式结构、分布式结构、客户/服务器结构(CS)、浏览器/服务器结构(B/S) 52关系代数 第二章关系数据库 2.1关系模型 22关系模式 2.3关系数据库规范化 关系数据库简介 ■系统而严格地提出关系模型的是美国IBM公司的EF.Codd 1970年提出关系数据模型 之后,提出了关系代数和关系演算的概念 1972年提出了关系的第一、第二、第三范式 1974年提出了关系的BC范式 关系数据库应用数学方法来处理数据库中的数据 80年代后,关系数据库系统成为最重要、最流行的数据库系统 21关系模型概述 ■关系数据库系统 ■是支持关系模型的数据库系统 关系模型的组成 关系数据结构 关系操作集合 关系完整性约束 ■关系型数据库的特点 模型简单、数据独立性高、有较为坚实的理论基础 ■关系:有应用语义的二维表,表中的每一行描述事物或事物的一部分的状态的数据,表中的每一列描述事物的 某个特征 ■属性:二维表中的一列就是关系模式中的一个属性。注: 表中的每一个属性必须是基本类型。 表中的每一列的所有值必须是同类型、同语义的 属性的值只能是域中的值 表中的每一列都必须有唯一的名字,列在表中的顺序是不重要的 1.域:属性的取值范围。 2元组:二维表中的一行称为一个元组 3.候选码:关系中按应用语义能唯一标识元组的最小的属性集合 4.主码:指定为关系中元组标识的候选码,称主码属性组为主属性。主码有时也被称为主关键字或主键
6 ◼ 数据模型:面向计算机系统(关系、层次、网状、对象) ◼ 概念模型:面向用户 ◼ 数据建模:建立概念模型的过程 ◼ 实体-联系(E-R) 模型、语义对象模型 ◼ 数据模型三要素: ◼ 数据结构、数据操作、数据完整性约束 ◼ 数据库应用结构 ◼ 单用户结构、集中式结构、分布式结构、客户/服务器结构(C/S)、浏览器/服务器结构(B/S) ◼ 5.2 关系代数 第二章 关系数据库 ◼ 2.1 关系模型 ◼ 2.2 关系模式 ◼ 2.3 关系数据库规范化 关系数据库简介 ◼ 系统而严格地提出关系模型的是美国 IBM 公司的 E.F.Codd ◼ 1970 年提出关系数据模型 ◼ 之后,提出了关系代数和关系演算的概念 ◼ 1972 年提出了关系的第一、第二、第三范式 ◼ 1974 年提出了关系的 BC 范式 ◼ 关系数据库应用数学方法来处理数据库中的数据 ◼ 80 年代后,关系数据库系统成为最重要、最流行的数据库系统 2.1 关系模型概述 ◼ 关系数据库系统 ◼ 是支持关系模型的数据库系统 ◼ 关系模型的组成 ◼ 关系数据结构 ◼ 关系操作集合 ◼ 关系完整性约束 ◼ 关系型数据库的特点; 模型简单、数据独立性高、有较为坚实的理论基础 ◼ 关系:有应用语义的二维表,表中的每一行描述事物或事物的一部分的状态的数据,表中的每一列描述事物的 某个特征 ◼ 属性:二维表中的一列就是关系模式中的一个属性。注: ◼ 表中的每一个属性必须是基本类型。 ◼ 表中的每一列的所有值必须是同类型、同语义的 ◼ 属性的值只能是域中的值 ◼ 表中的每一列都必须有唯一的名字,列在表中的顺序是不重要的 1.域:属性的取值范围。 2.元组:二维表中的一行称为一个元组。 3.候选码:关系中按应用语义能唯一标识元组的最小的属性集合。 4.主码:指定为关系中元组标识的候选码,称主码属性组为主属性。主码有时也被称为主关键字或主键
1.关系数据结构 关系数据结构 数据的逻辑结构——二维表 的数据结构—关系 从用户角度,关系模型中数据的逻辑结构是一张二维表。 模型 及实 课程 ■数据模式:对数据的结构、类型和约束的描述。(关系模式) 联系都是用关系来表 学生登记表 例 学号姓名性别年「班级号学生(学号,姓名,性别,年 选修 关系模式: 010125曲波男190101 龄,班号) 关系名(属性1,属性 课程(课程号,课程名,周学 属性n 时,学分) 例:学生(学号,姓名, 选修(学号,课程号,成绩) 性别,年龄,班号) 016张铁男190300 2.关系操作集合 ■1)常用的关系操作 查询:选择、投影、连接、除、并、交、差 数据更新:插入、删除、修改 查询的表达能力是其中最主要的部分 2)关系操作的特点 集合操作方式,即操作的对象和结果都是集合。 非关系数据模型的数据操作方式:一次一记录 文件系统的数据操作方式 ■3)关系数据语言的种类 关系代数:用对关系的运算来表达查询要求的方式。(过程性的:既要知道要做什么,还要知道怎么做) 关系演算:用谓词来表达查询要求 ■(非过程性:是一种可以不必知道如何获得结果就能表达所要结果的语言。) 面向转化的语言:用关系表示的输入数据转换成用单个关系表示的结果。(非过程性化的语言,如:SQL) 按例子查询/按窗体查询:由于带有图形界面,用户可以见到一个或多个关系的具体样例。(如 ■4)关系数据语言的特点 关系语言是一种高度非过程化的语言 能够嵌入高级语言中使用 3.关系的三类完整性约束 关系的完整性是指关系中数据值与其描述的应用对象实际状态保证一致的约束条件 ■实体完整性 ■通常由关系系统自动支持 确保表中所有行的数据不重复(主属性不能取空值。) 例:选修(学号,课程号,成绩) 学号、课程号”为主码,则两个属性都不能取空值。 引用完整性: 确保关联之间数据的一致性,即确保进入一个表的数据与相关的表之间数据同步 例:学生实体、专业实体以及专业与学生间的一对多联系 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名) 外键(或叫外部关键字)是指一个表中的某个属性是另一个表的主关键字。 应用语义完整性 确保数据库中的数据是有意义的。 一般用数据类型和约束来保证
7 1. 关系数据结构 ◼ 数据的逻辑结构----二维表 ◼ 从用户角度,关系模型中数据的逻辑结构是一张二维表。 ◼ 数据模式:对数据的结构、类型和约束的描述。(关系模式) 关系模式: 关系名(属性1,属性 2,…,属性n) 例:学生(学号,姓名, 性别,年龄,班号) 主关键字:学号 学生登记表 1. 关系数据结构 ◼ 单一的数据结构----关系 ◼ 在关系模型中,实体以及实 体间的联系都是用关系来表 示的。 例: 学生(学号,姓名,性别,年 龄,班号) 课程(课程号,课程名,周学 时,学分) 选修(学号,课程号,成绩) 课程 选修 学生 m n 成绩 2. 关系操作集合 ◼ 1) 常用的关系操作 ◼ 查询: 选择、投影、连接、除、并、交、差 ◼ 数据更新: 插入、删除、修改 ◼ 查询的表达能力是其中最主要的部分 ◼ 2) 关系操作的特点 ◼ 集合操作方式,即操作的对象和结果都是集合。 ◼ 非关系数据模型的数据操作方式:一次一记录 ◼ 文件系统的数据操作方式 ◼ 3) 关系数据语言的种类 ◼ 关系代数:用对关系的运算来表达查询要求的方式。(过程性的:既要知道要做什么,还要知道怎么做) ◼ 关系演算:用谓词来表达查询要求 ◼ (非过程性:是一种可以不必知道如何获得结果就能表达所要结果的语言。 ) ◼ 面向转化的语言:用关系表示的输入数据转换成用单个关系表示的结果。(非过程性化的语言,如:SQL) ◼ 按例子查询/按窗体查询:由于带有图形界面,用户可以见到一个或多个关系的具体样例。(如:Access) ◼ 4) 关系数据语言的特点 ◼ 关系语言是一种高度非过程化的语言 ◼ 能够嵌入高级语言中使用 3. 关系的三类完整性约束 关系的完整性是指关系中数据值与其描述的应用对象实际状态保证一致的约束条件 ◼ 实体完整性 ◼ 通常由关系系统自动支持 确保表中所有行的数据不重复(主属性不能取空值。) 例: 选修(学号,课程号,成绩) “学号、课程号”为主码,则两个属性都不能取空值。 引用完整性: 确保关联之间数据的一致性,即确保进入一个表的数据与相关的表之间数据同步。 例: 学生实体、专业实体以及专业与学生间的一对多联系 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名) 外键(或叫外部关键字)是指一个表中的某个属性是另一个表的主关键字。 应用语义完整性: 确保数据库中的数据是有意义的。 ◼ 一般用数据类型和约束来保证
用户定义后由系统支持 ■例:性别(男/女) 关系的完整性一实例 学号姓名「年龄 匚课程号课程名 「学号课程号「成绩■ 学生情况表 果程表 学生修课表 修课表中不允许出现学生”表中没有的学号:时也不允许出现课果程”表中 表中的”课程号 直也必须是课程表中“课程号”的子集。可以通过定义 来实现,定义修课表中的学号是学生表的外键,修课表中的课程号是课程 表的外键。注意是先有主关键字值,后有外键值 22关系模式 关系概念模式关系内模式关系外模式两级映像 1、关系概念模式 ■关系概念模式主要包括出现在DB中的每个关系的说明,它包括对关系名、属性名和属性取值范围(类型)的说 明 在关系数据模型中可不说明关系与关系间的联系。关系与关系间的联系是通过连接属性实现的 概念模式由DBMS提供的数据定义语言(DDL)来定义和描述。 create table学生(学号char(6 primary key,姓 名char(6),性别char(2),年龄 smallint,班级号 har(6), constraint pk ks3 foreign key(班级 号) references班级(班级号) 例:有如下两个关系: 班级(班级号,班级名,人数),学生(学号姓名,性别,年龄,班级号 相应属性取值类型 名属性名类型「宽度各注 和宽度如右表所示 班级号字符6 班级名字符 级「人数数值 学生性别字符2 年龄数值 学生班级号字符6外部关键字 班级与学生关系说明 2关系内模式 ■从原理上讲,关系内模式与其他类型DBS的内模式没有什么不同,RDB中的每个基本表都应对应一个存储文 基于主关键字进行直接存取,一般可根据主关键字建立相应索引 在关系内模式中不用说明存储文件,存储文件的说明由 RDBMS根据基本表的定义自动映射产生 在关系内模式主要内容中要说明的是索引 ■内模式由DBMS提供的数据定义语言(DDL)来定义和描述 学生:按学号升序创建惟一的聚簇索引; create unique clustered index idx xh on学生(学号); 3关系外模式 ■外模式是概念模式的逻辑子集,是用户与DBS的接口,是对用户所用到的那部分数据的描述。 ■如:窗体、查询等
8 ◼ 用户定义后由系统支持 ◼ 例:性别(男/女) 关系的完整性-实例 ◼ 修课表中不允许出现“学生”表中没有的学号,同时也不允许出现“课程”表中 没有的课程号,修课表中“学号”的值是在学生表的“学号”的值的子集。修课 表中的“课程号” 的值也必须是课程表中“课程号”的子集。可以通过定义外键 来实现,定义修课表中的学号是学生表的外键,修课表中的课程号是课程 表的外键。注意是先有主关键字值,后有外键值 学号 姓名 年龄 …… …… …… …… …… 课程号 课程名 …… …… …… …… 学号 课程号 成绩 …… …… …… …… 学生情况表 课程表 学生修课表 主关键字 ➔ 2.2 关系模式 关系概念模式 关系内模式 关系外模式 两级映像 1、关系概念模式 ◼ 关系概念模式主要包括出现在 DB 中的每个关系的说明,它包括对关系名、属性名和属性取值范围(类型)的说 明。 ◼ 在关系数据模型中可不说明关系与关系间的联系。关系与关系间的联系是通过连接属性实现的。 ◼ 概念模式由 DBMS 提供的数据定义语言( DDL ) 来定义和描述。 ◼ 班级与学生关系说明 例:有如下两个关系: 班级(班级号,班级名,人数), 学生(学号姓名,性别,年龄,班级号) 相应属性取值类型 和宽度如右表所示 create table 学生 (学号 char(6) primary key, 姓 名 char(6), 性别 char(2), 年龄 smallint, 班级号 char(6)),constraint pk_ks3 foreign key(班级 号) references 班级 (班级号)); 2.关系内模式 ◼ 从原理上讲,关系内模式与其他类型 DBS 的内模式没有什么不同,RDB 中的每个基本表都应对应一个存储文 件。 ◼ 基于主关键字进行直接存取,一般可根据主关键字建立相应索引。 ◼ 在关系内模式中不用说明存储文件,存储文件的说明由 RDBMS 根据基本表的定义自动映射产生。 ◼ 在关系内模式主要内容中要说明的是索引。 ◼ 内模式由 DBMS 提供的数据定义语言( DDL )来定义和描述。 ◼ 学生:按学号升序创建惟一的聚簇索引;create unique clustered index idx_xh on 学生(学号); 3.关系外模式 ◼ 外模式是概念模式的逻辑子集,是用户与 DBS 的接口,是对用户所用到的那部分数据的描述。 ◼ 如:窗体、查询等
在RDB中,外模式被称作视图(VEW) 外模式由DBMS提供的DDL来定义和描述 例:在学生管理DB中,建立01001班学生的视图ⅤIEW01001,其结构包括学号,姓名,年龄,班级号 create viewview 01001 as select学号姓名年齡斑级号 from学生 where班级号=′01001′; 4两级映像 ■DBS的三级模式是对数据进行三个级别的抽象,使用户能逻辑地抽象地处理数据,而不必关心数据在机器中的 具体表示方式和存储方式 为实现三个抽象级别的联系和转换,DBMS提供两个层次的映像: ■(1)外模式概念模式映像 定义各外模式与概念模式间的映像关系。 对应于同一个概念模式可有多个外模式每个外模式,DBS都有一个外模式/概念模式映像,它定义了该外模式 与概念模式间的对应关系 映像定义常在各自的外模式中加以描述。 (2)概念模式内模式映像 定义DB全局逻辑结构与存储结构间的对应关系。 因这两级的数据结构可能不一致,即记录类型、字段类型的命名和组成可能不一样,故该映像说明概念记录 和内部记录间的对应性。 概念模式/内模式映像一般是在内模式中加以描述。 映像:是一种对应规则,它指出了映像双方是如何进行转换的 两级数据独立性 (1)物理数据独立性 若修改DB的内模式(DB的物理结构有所变化,则只修改概念模式/内模式映像即可。 可使概念模式尽可能保持不变即对内模式的修改尽量不影响概念模式对外模式和应用程序的影响则更小 (2)逻辑数据独立性 若修改DB的概念模式(增加记录类型或増加数据项,则只修改外模式/概念模式映像,可使外模式和应用程序尽 可能保持不变。 总结:DB三级模式体系结构是数据管理的结构框架按照其组织的数据是DB的内容。 设计DB时,主要是定义DB的各级模式在用户使用DB时,关心的是DB的内容 DB的模式通常是相对稳定的,而DB的数据则是经常变化的。 DB分级结构图 外模式/式 外模式/式 模式 式/内模式 内模式 23关系模式的规范化 关系模式规范化的必要性;数值依赖关系的规范化
9 ◼ 在 RDB 中,外模式被称作视图(VIEW)。 ◼ 外模式由 DBMS 提供的 DDL 来定义和描述。 例:在学生管理 DB 中,建立 01001 班学生的视图 VIEW_01001,其结构包括学号,姓名,年龄,班级号。 create view view_01001 as select 学号,姓名,年龄,班级号 from 学生 where 班级号=′01001′; 4.两级映像 ◼ DBS 的三级模式是对数据进行三个级别的抽象,使用户能逻辑地抽象地处理数据,而不必关心数据在机器中的 具体表示方式和存储方式。 ◼ 为实现三个抽象级别的联系和转换,DBMS 提供两个层次的映像: ◼ ⑴ 外模式/概念模式映像 定义各外模式与概念模式间的映像关系。 对应于同一个概念模式可有多个外模式,每个外模式,DBS 都有一个外模式/概念模式映像,它定义了该外模式 与概念模式间的对应关系。 映像定义常在各自的外模式中加以描述。 ⑵ 概念模式/内模式映像 定义 DB 全局逻辑结构与存储结构间的对应关系。 因这两级的数据结构可能不一致,即记录类型、字段类型的命名和组成可能不一样,故该映像说明概念记录 和内部记录间的对应性。 概念模式/内模式映像一般是在内模式中加以描述。 映像: 是一种对应规则,它指出了映像双方是如何进行转换的。 两级数据独立性 ⑴ 物理数据独立性 ◼ 若修改 DB 的内模式(DB 的物理结构有所变化),则只修改概念模式/内模式映像即可。 ◼ 可使概念模式尽可能保持不变,即对内模式的修改尽量不影响概念模式,对外模式和应用程序的影响则更小。 ⑵ 逻辑数据独立性 ◼ 若修改 DB 的概念模式(增加记录类型或增加数据项),则只修改外模式/概念模式映像,可使外模式和应用程序尽 可能保持不变。 总结: DB 三级模式体系结构是数据管理的结构框架,按照其组织的数据是 DB 的内容。 设计 DB 时,主要是定义 DB 的各级模式;在用户使用 DB 时,关心的是 DB 的内容。 DB 的模式通常是相对稳定的,而 DB 的数据则是经常变化的。 DB分级结构图 应用程序A 应用程序B 应用程序C 外模式 外模式 内模式 模式 外模式/模式 映射 模式/内模式 映射 外模式/模式 映射 DBMS 用户 用户 用户 2.3 关系模式的规范化 关系模式规范化的必要性; 数值依赖 关系的规范化
关系模式重要性原因: 它可用来表达独立于DBMS的设计 ■规范化: 是把有问题的关系转化为两个或多个没有这些问题的关系的过程 关系模式好的标准一一规范化形式(范式) 范式:规定关系模式应满足的特定限制,分不同等级 第一范式(INF) 第二范式(2NF) 第三范式(3NF) BC范式、第四范式(4NF)、第五范式(5NF 范式越高规范化程度越高,关系模式越好。 关系模式规范化的必要性 关系模式可能出现的问题实例 更新异常:在删除关于 ■如果一个关系没有经过规范化,可能会出现数据冗余大 数据更新造成不一致、数据插入异常和删除异常。 插入异常:必须定要等的表分 例:学生关系存在的问题:数据冗余(系主任名)、更新异 常(换系主任)、插入异常(系没有招生系主任不能插入)、删 除异常(学生毕业) 姓名所在系系主任姓名课程名成绩 曲波计算机周勇数据库原理96 曲波计算机周勇c语言92 张新信息系王甸软件工程90 004关笑计算机网勇燥作系统89 学生-选课、课程一学分关系表 0039乐自动化李冰自动化设计85 02038王乐自动化李冰电路原理82 模式分解是关系规范化的主要方法 对于有问题的关系模式,可通过模式分解的方法使之规范化 学生关系可分解为以下三个关系 学生(学号,姓名,所在系 系(所在系,系主任姓名) 考试(学号,课程名,成绩 新关系克服了学生关系存在的问题,更加合理和实用。 如何分解,涉及两个概念——关键字、函数依赖 DB中出现的数据异常现象与数据依赖有着紧密的关联。 认识和掌握函数依赖知识,对于DB的约束设计和规范化设计具有重要意义
10 ◼ 关系模式重要性原因: ◼ 它可用来表达独立于 DBMS 的设计 ◼ 规范化: ◼ 是把有问题的关系转化为两个或多个没有这些问题的关系的过程 ◼ 关系模式好的标准——规范化形式(范式) ▪ 范式:规定关系模式应满足的特定限制,分不同等级: ▪ 第一范式(1NF) ▪ 第二范式(2NF) ▪ 第三范式(3NF) ▪ BC 范式、第四范式(4NF)、第五范式(5NF) ▪ 范式越高规范化程度越高,关系模式越好。 关系模式规范化的必要性 ◼ 更新异常:在删除关于 一个实体的事实的同时, 还无意识地删除了关于另 外一个实体的事实 ◼ 插入异常:必须定要等 到有一个 事实之后才能 有关于与事实相关的另一 事实的记录 ◼ 解决方案:把一个关系 分解成多个关系,每个关 系处理一个不同的主题, 来消除更新异常和插入异 常。分解关系时,同时注 意多个关系之间的相互参 照性 学号 课程 课程 学分 100 人工智能 人工智能 3 125 文化学 文化学 2 150 市场营销 市场营销 2 175 人工智能 人工智能 2 190 文化学 文化学 2 (a)学生选课表 (b)课程学分表 学号 课程 学分 100 人工智能 3 125 文化学 2 150 市场营销 2 175 人工智能 2 190 文化学 2 学生选课表 学生-选课、课程-学分关系表 把原来 的表分 成两个 新表 关系模式可能出现的问题实例 ◼ 如果一个关系没有经过规范化,可能会出现数据冗余大、 数据更新造成不一致、数据插入异常和删除异常。 ◼ 例:学生关系存在的问题:数据冗余(系主任名)、更新异 常(换系主任)、插入异常(系没有招生系主任不能插入)、删 除异常(学生毕业)。 模式分解是关系规范化的主要方法 ◼ 对于有问题的关系模式,可通过模式分解的方法使之规范化。 ◼ 学生关系可分解为以下三个关系: 学生(学号,姓名,所在系) 系(所在系,系主任姓名) 考试(学号,课程名,成绩) 新关系克服了学生关系存在的问题,更加合理和实用。 如何分解,涉及两个概念——关键字、函数依赖 DB 中出现的数据异常现象与数据依赖有着紧密的关联。 认识和掌握函数依赖知识,对于 DB 的约束设计和规范化设计具有重要意义