版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库复习资料第一章 数据库系统概论一、数据库技术概述1. 数据、数据处理、数据管理 数据是描述现实世界中各种具体事物或抽象概念 的可存储并具有明确意义的各种符号。 数据处理是指包括数据采集、整理、编码和输入, 从而有效地将数据组织到计算机中,由计算机对数 据进行存储、加工、分类、检索、传输和输出等一 系列的操作过程。数据管理是指数据处理的一系列活动中的基本操 作环节,如对数据的组织、存储、检索和维护等工 作,它是数据处理的核心。通俗说,数据管理就是 指在计算机系统里对数据所进行的操作。在数据组 织到计算机中之前不属于数据管理,将数据通过网 络传输到另一个计算机系统的传输动作也不属于 数据管理
2、。人工管理阶段 背景:硬件,没有直接存取设备,软件,没有操作 系统及管理数据的软件;数据处理的方式为批处理 文件系统阶段背景:硬件,有直接存取设备,软件,有操作系统 和专门的数据管理的软件;数据处理方式可为批处 理方式也可为联机方式数据库系统阶段 背景:多用户、多应用共享数据要求,大量数据处 理需求。. 数据库系统 数据库系统指在计算机系统中引入数据库后的系 统构成,由六部分构成:数据库( DataBase,DB) 是存储在计算机系统内 的、有结构的数据的集合;数 据 库 管 理 系 统 ( DataBase Management System,DBMS) 是管理数据库的系统软件,为用户 和数
3、据之间提供接口,使用户可对数据库进行各种 操作。是数据库系统的核心部分。运行环境 包括计算机硬件系统、操作系统、开 发工具等;数据库管理员 ( DataBase Administraor,DBA)主要负责设计、建立、管理和维护数据库,协调各用 户对数据库的要求等; DBA不一定只是一个人,可 以是一个工作组;用户( Users ) 数据库系统的服务对象。 数据库应用系统 满足用户功能需求的软件系统。二、数据模型1. 数据模型概述数据模型是数据抽象的工具,即用此工具来组织数 据,使数据结构化。目前广泛使用的数据模型可分 为两个层次。第一层数据模型是独立于计算机系统 的模型,它完全不涉及信息在系统
4、中的表示,只是 用来描述某个特定组织所关心的信息结构,这类模 型称为“概念数据模型” 。第二层数据模型是依赖 于计算机系统的模型,它是直接面向数据库的逻辑 结构,这类模型涉及到计算机系统和数据库管理系 统,这类模型称为“结构数据模型” 。 现实世界(事物 事物特性) 信息世界(实体 实体属性) 数据世界(记录 数据项) 概念模型 结构模型1. 现实世界的抽象过程现实世界客观存在的世界。在现实世界中存在着各种运动着 的物质,即各种事物及事物之间的联系。客观世界 中的事物都有一些特征,人们正是利用这些特征来 区分事物。信息世界 人们通过大脑对客观世界的感知,又通过分析、归 纳、抽象等方法处理,形成
5、信息,对这些信息进行 记录、整理、归纳和格式化,即构成了信息世界。 实体联系模型、对象模型 数据世界(机器世界) 数据化了的信息世界称为数据世界,也叫机器世 界。关系模型、层次模型、网状模型2. 概念数据模型概念数据模型是独立于计算机系统,完全不涉及数 据在计算机系统中的表示,按用户的观点在信息世 界中对事物建模,强调其语义表达能力,主要用于 数据库概念设计。典型的概念模型有: 实体联系模型 ( ER模型) 和对 象模型。3. 结构数据模型的三要素 结构数据模型是面向计算机系统的,是现实世界中 的信息最终在机器世界中得到的反映,它通常有一 组严格定义了语法和语义的语言,人们可以使用它 来定义、
6、操纵数据库的数据。典型的结构数据模型 有:层次模型、网状模型和关系模型。数据结构 数据操作 数据约束3.1 数据结构 数据结构用于描述数据的静态特性。数据结构不仅 要描述数据本身,如数据类型、内容、属性;还要 描述数据之间的联系。不同的数据模型采用不同的数据结构。在关系数据 模型中用数据记录和数据项来描述。3.2 数据操作 数据操作用于描述数据的动态特性。是指对数据库 中的数据所允许执行的操作的集合。主要有插入、 删除、修改和查询四种操作。3.3 数据约束 数据约束是一组完整性规则的集合。完整性规则是 数据模型中数据及其联系所具有的约束规则,用来 限定数据库状态以及状态的变化,以保证数据的正
7、确性。完备的数据模型都会提供描述约束的机制,尽可能 完整地描述现实系统中对事物的约束规定,以达到 真实描述现实系统的目的。4. 层次模型 层次模型 (Hierarchical Data Model) 是数据库系 统中最早出现的数据模型。 20 世纪 60 年代后期, IBM开发出 IMS (Information Management System) DBMS,是层次数据模型的基础。 层次模型是以记录型为结点的有向树。用树形结构 表示各类实体以及实体之间的联系。现实世界中许 多实体之间的联系就呈现出一种很自然的层次关 系,如:行政机构、家庭关系等。 层次模型中,每个结点表示一个记录类型,结点之
8、 间的连线表示记录类型间的联系,但这种联系只能 是父子联系。层次模型中,任何一个给定的记录值,只有按其路 径查看时,才能显示出它的完整意义。没有一个子 女记录值能够脱离双亲记录值而独立存在。层次模型的数据结构树结点表示“实体” ,即 一条记录,树结点之间的连线表示“联系” 。层次模型的数据操作按数据结构中对树的操 作,实现结点的增加、删除、修改和查询。 层次模型的数据约束一个模型一个根,根以外 的结点只有一个双亲结点,一对多关系。5. 网状模型 (Net Data Model) 网状数据模型的典型代表是DBTG系统,亦称CODASYL系统。网状模型去掉了层次模型的两个限制,允许结点有 多个双亲
9、结点。可比层次模型更直接地描述现实世 界。它是层次模型的泛化。数据结构用有向图描述,图顶点表示实体,边表 示实体间的联系。数据操作实现对图中顶点的插入、删除、修改和 查询。数据约束没有约束。6. 关系模型 关系模型是由 E.F.Codd( 埃德加 .考特) 于1970年首 先提出。它的基础不是图而是表。用二维表来表示 实体和联系。每个二维表称为一个关系。 表中每一行代表一个实体,表中每一列则代表实体 的属性。二维表既反映了实体本身,也反映了实体 与实体间的联系。数据结构表中的行表示实体,表和表之间的相 同属性反映实体间的联系。数据操作按行可以增加、删除、修改和查询实 体。数据约束任何两行不能完
10、全相同,主键约束、 域值约束、参照完整性约束、用户自定义约束等。7. 面向对象模型 面向对象模型( Object-Oriented Data Model )用 对象来描述事物,一个事物即为一个对象。 面向对象模型的数据结构用对象、对象属性及 对象之间的联系来描述。面向对象模型的数据操作及完整性约束则是统一 封装在对象之中的。三、数据库系统的构造 数据库系统的三级模式 数据库系统总体结构 数据库系统的主要特点1. 数据库系统三级模式结构1.1 数据的独立性概念 所谓数据独立性,是指应用程序独立于数据的逻辑 表示与物理存储。通过将数据的定义与存储从程序 中独立出来实现。1.2 数据的逻辑独立性 数
11、据逻辑独立性是当概念模式改变时,例如,增加 了新的关系、 新的属性、 改变了属性的数据类型等, 由 DBA对各个外模式 / 概念模式的映象作相应改变, 可使外模式尽可能保持不变。由于应用程序是依据 数据的外模式编写的,从而应用程序不必修改,保 证了数据与程序的逻辑独立性,简称数据的逻辑独 立性。1.3 数据的物理独立性数据的物理独立性 是指当数据库的内模式发生改 变时,如存储设备或存储方法发生改变,由DBA对概念模式 / 内模式映象作相应改变,使概念模式尽 可能保持不变,从而应用程序也不必改变,保证了 数据与程序的物理独立性,简称数据的物理独立 性。2. 数据库系统总体结构图 数据库设计部分结
12、合三级模式讲透。 案例教学:以教学管理系统为例。 教学管理系统面向教务管理员、教师、学生、教学 管理领导。在此引出视图的概念3. 数据库系统的主要特点数据结构化 可控数据冗余 数据共享性好 多种应用、多种语言共享 数据独立性高 集中统一控制 数据的安全性控制 数据的完整性控制 并发控制四、数据库管理系统 什么是数据库管理系统 数据库管理系统的功能 数据库管理系统的组成 数据库语言1. 什么是数据库管理系统数据库管理系统 (DataBase Management System) 简 称为 DBMS。是一种负责数据库定义、建立、操作、管理和维护 的系统软件。它的作用既类似于命令解释器,把用户对数据
13、库的 操作命令转换为对系统存储文件的操作;又类似于 一个向导,把用户对数据库的一次访问,从用户级 带到概念级,再导向物理级。2. DBMS 的功能数据库的定义 数据库的建立 数据库的操作 数据库的控制 数据库的维护与故障恢复 数据通信。3. 数据库管理系统的组成 从程序的角度看,数据库管理系统是一组程序的集 合体,按程序的功能可分为如下三类。3.1 语言处理程序3.2 运行控制程序3.3 服务性程序3.1 语言处理程序 向用户提供数据库的定义、操作等功能。由以下编 译程序或解释程序组成: 数据库各级模式的语言处理程序。其作用是将各级 源模式编译成各级目标模式。数据库操作编译处理程序。即将应用程
14、序中DML语句转换成主语言编译程序能处理的形式,实现预编 译。查询语言解释程序。处理终端查询语句,并决定其 操作的执行过程。数据库控制语言解释程序。解释每个数据库控制命 令的含义,决定操作的执行过程。3.2 运行控制程序 负责数据库运行时的管理、调度和控制。由以下程 序模块组成:系统总控程序。它是整个 DBMS的核心,负责控制、 协调 DBMS各个程序的活动,保证系统有条不紊地 工作。访问控制程序。其内容包括核对用户、口令,核对 授权和密码,检验访问的合法性,以决定一个访问 是否能进入数据库;并发控制程序。在多个用户同时访问数据库时,通 过管理访问队列和封锁表,以及封锁的建立和撤消 等工作,协
15、调各个用户的访问,以避免造成数据修 改和丢失等不正常现象,从而保证各应用程序读写 数据的正确性; 保密控制程序。在执行操作之前,核对保密规定。 即数据加密约定。数据的完整性控制程序。在执行用户请求的每次操 作前或后,核对数据的完整性约束条件,从而决定 是否允许操作执行。数据存取程序。执行数据存取操作,是DBMS与文件系统的接口。把用户对数据库的访问请求转换为 相应的文件存取命令,通过文件系统从相应的物理 文件中读出数据,或向相应的物理文件写入数据。 数据更新程序。执行数据库中数据的插入、删除和 修改操作,并负责修改相应的指针。 通信控制程序。实现用户程序与 DBMS之间的通信。3.3 服务性程
16、序 提供数据库中数据的装入和维护等服务性功能,由 以下一些程序模块组成: 数据库装入程序 该程序将初始数据装入数据库 中。运行日志程序 该程序记载对数据库的所有访问, 包括用户名、进入时间、操作方式、操作对象、数 据修改前的值和数据修改后的值等。重组织程序 当数据库性能变坏时,需要重新组织 数据库,该程序可按原组织方法重新装入数据或采 用新方法、新结构重新组织数据。数据库恢复程序 当数据库系统遭到破坏时,数据 库系统恢复程序可将系统恢复到可用状态。 性能监控程序 该程序监督用户操作的执行时间与 数据存储空间的占用情况,估算系统性能,以决定 数据库是否需要重新组织。转贮程序编辑和打印程序4. 数
17、据库语言 数据库管理系统是用户与数据库之间的接口。一个 数据库管理系统必须为用户提供某种工具完成下 列工作:建立自己的数据库,对数据库进行各种操 作。这个工具就是数据库语言。数据库语言包括数据描述语言、数据操作语言、数 据库管理例行程序三大部分。最常用的数据库语言就是 SQL语言。4.1 数据描述语言Data Description Language ,负责描述和定义数 据的各种特性。这些特性包括数据的结构、数据之 间的关系、数据的完整性约束等。这些描述和定义 被存储在数据库管理系统中的数据字典中。 数据字典 (Data Dictionary, DD)是数据库管理系统中的一个特殊文件,用于存储
18、数据库的一些说 明信息,这些说明信息称为元数据 (Meta Data) 。 参见 P20.SQL 语言中的 Create Table,Create View,Create Database,alter database,Drop table,Alter table 等都是数据描述语言。4.2 数据操作语言Data Manipulation Language ,是用户操作数据库 中数据的工具。一般包括以下几方面的操作: 从数据库中检索满足条件的数据; 把新的数据记录插入到数据库中去; 从数据库中删除某些过时的、没有保留价值的原有 数据;修改某些已经发生了变化的数据项值,使之能确 切反映变化后的情
19、况。如, Select, Insert, Delete,Update 等。 按使用方式可将数据操作语言分为宿主式操作语 言和自主式操作语言。宿主式操作语言也称为嵌入 式操作语言。4.3 数据库管理例行程序 存取控制例行程序 安全性控制例行程序 完整性控制例行程序 事务管理例行程序 恢复例行程序 监控例行程序五、数据库应用系统开发概述两种模式C/S 模式B/S 模式 组件与分布式对象技术 组件技术 分布式对象技术1. C/S 模式 是一种分布式的计算模式。 C/S 模式通过网络环境, 将应用划分为“前端”和“后台” 。前端由客户机 担任 GUI(Graphic User Interface) 处
20、理以及向服 务器发送用户请求和接收服务器回送的处理结果; 后端为服务器,主要承担数据库的管理,按用户请 求进行数据处理并回送结果等工作。两层 C/S 结构 网络为局域网,表示层和功能层揉在一起的,逻辑 上没有分开,只是将数据层分开。三层 C/S 结构 表示层、功能 层、数据层。 表示层表示层是应用的用户接口部分 , 它担负着用户 与应用间的对话功能。它用于检查用户从键盘等输 入的数据 , 显示应用输出的数据。为使用户能直观 地进行操作 , 一般要使用图形用户接口 (GUI), 操作 简单、易学易用。在变更用户接口时 , 只需改写显 示控制和数据检查程序 , 而不影响其他两层。检查 的内容也只限
21、于数据的形式和值的范围, 不包括有关业务本身的处理逻辑。 在这层的程序开发中主要 是使用可视化编程工具。功能层功能层相当于应用的本体 , 它将具体的业务处 理逻辑编入程序中。例如 , 在制作订购合同时要计 算合同金额 , 按照定好的格式配置数据、打印订购 合同, 而处理所需的数据则要从表示层或数据层取 得。表示层和功能层之间的数据交换要尽可能简 洁。例如 , 用户检索数据时 , 要设法将有关检索要求 的信息一次传送给功能层 , 而由功能层处理过的检 索结果数据也一次传送给表示层。在应用设计中 , 一定要避免进行一次业务处理 , 在表示层和功能层 间进行多几次数据交换的笨拙设计。这层的程序多 半
22、是用可视化编程工具开发的 ,也有使用 C 语言 的。数据层数据层就是 DBMS负, 责管理对数据库数据的读 写。 DBMS必须能迅速执行大量数据的更新和检索。 现在的主流是关系数据库管理系统 (RDBMS。) 因此 , 一般从功能层传送到数据层的要求大都使用SQL语言。三层 C/S 的优点: 具有灵活的硬件系统构成 提高程序的可维护性 利于变更和维护应用技术规范进行严密的安全管理2. B/S 模式(多层)3. 组件技术 组件 (Component) ,是指具有某种功能的独立软件 单元,其最重要的特性是可复用性。组件模型由组 件和容器构成。组件通过接口向外界提供功能入口。组件的范围很 广,小到一
23、个按钮,大到一个系统,如浏览器。 容器 (Container) ,是一种存放相关组件的 “器皿”。 如表单 (Form) 、页面 (Page) 、框架 (Frame) 等。 组件技术应解决两个问题:复用和互操作。 常见的组件规范有: VBX、OCX、ActiveX 。 VBX、 OCX、 ActiveX 都是由微软推出的4. 分布式对象技术 组件向分布式环境延伸,形成了分布式对象技术。 利用分布式对象技术,可以实现异构平台间分布式 对象间的相互通信,极大地提高系统的可扩展性。 组件技术与分布式技术用得较广泛的模型有: CORB、A COM/DCOM/CO、M+JavaBeans/EJB/J2E
24、E 。参 见 P32-33 。六、数据库技术的发展 第一代数据库系统 第二代数据库系统 OLTP与 OLAP 数据仓库与数据挖掘 并行与分布式数据库系统 Internet/Web 数据库 面向对象的数据库系统1. 第一代数据库系统 以层次数据库管理系统和网状数据库管理系统的 出现为标志,其典型代表分别是 IMS和 DBTG系统。 层次数据库和网状数据库均支持三级模式的体系 结构,均用存取路径表示数据间的联系,都有数据 定义语言和导航式的数据操纵语言。对这两种数据库的应用要求:一是要熟悉数据库的 各种路径,二是有较高的应用数据库的编程技巧。 层次型和网状型均缺少相应的数学理论基础。2. 第二代数
25、据库系统 支持关系数据模型的关系数据库系统是第二代数 据库系统。关系模型既简单,又有坚实的数学基础。3. OLTP 与 OLAPOLTP(Online Transaction Processing)即联机事务处理。是一种数据库应用技术。如民航的订票系 统、银行储蓄系统、证券交易系统等均属于 OLTP的应用。OLAP(Online Analysis Processing) 即联机分析处 理。也是一种数据库应用技术, 1993 年由 E.F.Codd 提出。OLAP着重于“数据分析”,而 OLTP着重于“数 据管理” 。 OLAP的典型应用就是决策支持系统 (DSS)。4. 数据仓库与数据挖掘数据
26、仓库 (Data Warehouse) 的概念由 W.H.Inmon 于 1991 年提出, 其给出的定义为: 数据仓库是面向主 题的、集成的、稳定的、不同时间的数据集合,用 以支持经营管理中决策制定过程。Sybase: Industry Warehouse Studio 3.2IBM: Visual Warehouse OLAPOracle: Oracle Warehouse BuilderMicrosoft: SQL Server OLAP Service 数据挖掘 (Data Mining) 是在大量的、不完整的、 有噪声的数据中发现潜在的、有价值的模式和数据 间关系的过程。数据挖掘技术
27、有: 判断法、 决策树、人工神经网络、 遗传算法、模糊技术、粗集方法、可视化技术等。5. 并行与分布式数据库系统 并行数据库系统即将传统的数据库管理技术与并 行处理技术相结合形成的数据库系统。其特点是由 多处理机及多个磁盘构成,数据库系统的吞吐量大 大提高,事务响应时间大大缩短。分布式数据库系统,目前没有统一的定义,多种理 解参见 P45。具有如下特点: 数据的物理分散性;数据的逻辑整体性;数据分布 的独立性;站点自治与协调;数据的冗余与冗余透 明性。6.Internet/Web 数据库Internet/Web 数据库,其实质是在传统的关系数据 库技术基础上,对数据库模型、存储机制和检索技 术
28、等方面进行改进,而构造出基于 Internet/Web 应用的数据库系统。Internet/Web 数据库的主要特征:采用多维处理、 变长存储以及面向对象等新技术,使数据库应用转 为全面基于 Internet 的应用。7. 面向对象的数据库系统 面向对象的数据库系统( OODB)S,即以面向对象的 程序设计语言为基础,引入数据库技术,来建立的 新一代的数据库系统。OODBS概念 是 1989 年以英 国 Glasgow 大 学的Atkinson 为首的 6 名学者首先提出的。1990 年,以美国 Berkeley 大学 Stonebraker 为首 的 DBMS功能委员会提出以关系数据库系统为
29、基础, 建立对象关系数据库系统( ORDB)S。有人把 ORDBS归为第三代数据库系统,而把 OODBS 归为第四代数据库系统。第二章 实体联系数据模型 一、数据模型综述1. 为什么需要数据模型? 由于数据的定义与操作从应用程序中剥离出来,交 由 DBMS来定义和管理。于是 DBMS需要采用某种数 据结构来定义、存储所要管理的数据。狭义上讲 , 这种数据结构就是 DBMS的数据模型。另一方面 , 现实系统要向计算机化的管理转变 , 因 此, 在数据库设计时 ,也必须用某种方式将其所关 心、管理的数据抽取出来并组织起来,数据模型也 正是起到这种作用。技术上的要求和应用要求 数据的静态结构。数据的
30、动态操作(增删改查询) 。 数据的完整性约束。综合说来,应描述数据、数据之间的联系、数据语 义及完整性限制,同时还需要提供对数据操作的方 法。2. 如何描述数据模型? 用数据模型的三要素3. 如何评价数据模型? 真实地描述现实系统。基本要求 易于为一般用户所理解。易于计算机实现。4. 数据模型为什么有层次性? 从数据抽象的过程看。 数据模型是数据库设计时数据抽象的工具,由于抽 象层次的存在,相应地,数据模型也会有层次。 从评价指标(第二、三项)的互斥性看。 目前已被商用化 DBMS支持的数据模型中,没有一 个能同时满足上述三项要求。也就是说无法在数据 库应用系统开发时,从设计到实现只使用一个数
31、据 模型。5. 数据模型的未来 有两个发展方向: 设计、开发与实现的一统数据模型。如面向对象模 型。“层次共存,自动转换” 。即设计用的数据模型到 数据库管理系统所用的数据模型之间的相互转换 由计算机辅助完成。如实现 ERM向关系模型相互转 换的工具有: Sybase 公司的 Power Designer 、 CA 公司的 ERwin 等;实现对象模型向关系模型转换的 工具有: Rational 公司的 Rose。6. ERM 的地位与作用? 传统三种数据模型的特点:能较好地满足第一和第 三项评价要求。三种数据模型的不足:不易被业务用户理解。这是 提出语义数据模型 (Semantic Data
32、 Model) 的基础。 实体联系模型 (Entity Relationship Model, ERM) 是用得最多且最成熟的语义数据模型。属于数据库 应用系统设计的内容。从数据库应用系统设计角度看, ER 模型主要用于 DB概念设计,是 DB概念设计较常用的设计工具。二、数据库设计综述 数据库设计一般分为如下步骤: 需求分析 概念数据库设计 逻辑数据库设计 模式优化 物理数据库设计 安全设计三、实体联系模型 实体、实体集及属性 联系及联系集 ERM中的完整性约束 弱实体ERM各元素图示1. 实体、实体型及属性1.1 实体、实体型实体 (Entity) :现实世界中有别于其他对象的对 象。对象
33、可以是具体的,也可以是抽象的。具体的 实体如某某学生、某某老师等;而抽象的实体如某 门课程、某份合同等。实体型 (Entity Set) :同类实体的集合。通常情况 下简称为实体。如学生、教师、课程、合同。 实体是指具体的个体,而实体型是对有共同特性的 实体进行归类。实体用矩形来表示。学生1.2 属性属性 (Attribute) :是指实体的特征或性质,即实 体用属性描述。 如学生实体的属性有: 学号、 姓名、 生日、年龄、性别、住址等。属性按结构分 : 简单属性、复合属性和子属性。简 单属性表示属性不可再分;复合属性表示该属性还 可再分为子属性。如姓名可分为现用名、曾用名、 英文名等。实体用
34、属性描述,实体集中的所有实体具有相同的 属性。属性用椭圆框表示。1.3 域域 (Domain) :指属性的取值范围。属性按取值分,有单值属性,多值属性、导出属性 和空值属性。只有一个取值的属性称为单值属性; 多于一个取值的属性为多值属性;值不确定或还没 有值的属性称为空值属性;其值可由另一个属性的 取值推导出来的属性为导出属性。多值属性如学位,一个人可能获得多个学位;导出 属性如年龄,可由生日导出;空值属性如学位,当 还没有获得学位时,其值不定。1.4 键键 (Key) :能惟一标识实体的一个或一组属性。如 学号、课程号等。按键所包含的属性个数分:简单键和复合键。由一 个属性构成的键称为简单键
35、;由多个属性构成的键 称为复合键。候选键 (Candidate Key) :最小属性集合的键。 主键 (Primary Key) :当存在多个候选键时,需选 定其中一个作为主键,将其作为描述实体的惟一标 识。键用属性名加下划线表示。 学号 最小属性集合,意即在该集合中没有一个属性是多余的。如学生实体, 其属性有: 学号, 姓名,性别, 年龄等,在这些属性中,学号可惟一确定各个不同 的实体,根据键的定义,学号是键;同样,学号与 姓名的集合也可以惟一确定各个不同的实体,( 学号, 姓名 )也是键,但它不是候选键,因为在这个键 的集合中,姓名是多余的。进而可以得出结论:单 属性的键一定是候选键,多属
36、性构成的键有可能不 是候选键。2. 联系及联系型2.1 联系及联系集联系联系 (Relationship) :是两个或多个实体间的关 联。如“张三”选修“ C 语言”,此联系用“成绩”属性 来描述。2.1 联系及联系型(续)联系型联系型 (Relationship Set) :相似的一组联系称为 联系型。因此联系型就是实体型与实体型之间的联 系。通常简称为联系。联系型的阶: 一个联系型所关联的实体型的数量 n, 称为联系型的阶。即称为 n 元联系。如“学生”与 “课程”两个实体型通过“选课”关联,此联系称 为二元联系。如“商品” 、“客户”、“售货员”三个 实体型通过“门市另售”相关联,此联系
37、称为三元 联系。见图 2-2 。2.2 联系型存在的几种情况 联系用棱型框表示。 联系型存在的 4 种情况 二元联系 (Binary Relationship):三元联系 (Ternary Relationship) : 两个实体型间存在多个不同的联系:如“员工”和 “部门”两个实体之间既存在“工作”关系,又存 在“管理”关系。递归联系 (Recursive Relationship) :同一个实体 型中的两个实体之间存在的关联。如“员工”实体 型中的两个具体的人之间存在的“领导”与“被领 导”关系。归纳 上面所介绍的是关于实体联系模型的数据结构的 内容。它是利用“实体”来描述现实世界中的客观
38、事物, 实体又由“属性”来描述,并用主键来惟一标识; 用“联系”来描述事物之间的关联,联系也可有其 属性描述,联系由所参与实体的主键共同惟一标 识。实体联系模型缩写为 ERM。3. ERM 中的完整性约束3.1 一般性约束 根据关联的实体参与到联系中数量间的约束,联系 型可分为: 一对一 (1:1) 联系 一对多 (1:n) 联系 多对多 (m:n) 联系联系型分类定义定义 设联系型 R 关联实体型 A和 B,如果 A中的 一个实体只与 B 中的一个实体关联,反过来, B中 的一个实体也只与 A 中的一个实体关联,则称 R是 一对一联系型;如果 A中的一个实体与 B中的 n 个 实体关联,反过
39、来, B 中的一个实体只与 A 中的一 个实体关联,则称 R是一对多联系型;如果 A 中的 一个实体与 B中的 n 个实体关联,反过来, B中的 一个实体又与 A 中的 m个实体关联,则称 R是多对 多联系型。3.2 键约束 键约束 (Key Constraint) 是指在一个联系型 R 中, 实体型 A 中的一个实体,对应在实体型 B 中只能找 到一个相关联的实体;或实体型 B 中的一个实体, 对应在实体型 A 中只能找到一个相关联的实体。 键约束的作用 键约束对于联系型主键的确定有重要的作用。对于 1:1 联系,其主键就可取关联的任一实体的主键独 立担当;对于 1:n 联系,其主键只需由
40、n 方实体的 主键担当;对于 m:n 联系,其主键必须由关联的所 有实体的主键担当。3.3 参与约束 参与约束 (Participation Constraint)是实体与联系之间的约束,也称为实体关联约束。 参与约束分为完全参与 (Total Participation) 约 束和部分参与 (Partial Participation) 约束。 完全参与约束表示与联系关联的某个实体型中的 所有实体,全部参与到联系中来。如“学生”实体 型与“选课”联系型, 所有的学生实体都会参与 “选 课”联系。 部分参与约束则表示与联系关联的某个实体型,只 有部分实体参与到联系中来。如“员工”实体型与 “管
41、理”联系,只有部分员工参与管理。完全参与约束图示时,用粗线表示。参见 P63 图2-14 。4. 弱实体 弱实体是指管理主体之外的实体型。也称为外部实 体。如,员工是企业管理的主体之一,然而企业为员工 办理保险时,不可避免地会涉及保险的受益人,受 益人一般不是企业的员工, “受益人”则称为弱实 体。识别实体:与弱实体型关联的实体型,称为识别实 体型。如“员工”实体型。识别联系:实体型与弱实体型之间的联系称为识别 联系。对弱实体有如下约束: 识别实体与弱实体之间的联系必须是 1:n 联系; 弱实体必须完全参与识别联系。 弱实体和识别联系用粗线条表示。5. ERM 各元素图示四、应用实例 经调研,
42、了解到如下数据信息: 某公司有多个原材料库房,每个库房分布在不同的 地方,每个库房有不同的编号,公司对这些库房进 行统一管理; 每个库房可以存放多种不同的原材料,为了便于管 理,各种原材料分类存放,同一种原材料集中存放 在同一个库房里; 每一个库房可安排一名或多名员工管理库房,在这 些库房里,每一个管理员有且仅有一名员工是他的 直接领导; 应用实例 同一种原材料可以供应多个不同的工程项目,同一 个工程项目要使用多种不同的原材料; 同一种原材料可由多个不同的厂家生产,同一个生 产厂家可生产多种不同的原材料。从第 4点了解到: 工程项目实体编号, 预算资金, 开工日期,竣工日期;原材料与工程项目之
43、间的供 应联系为 n : m;从第 5 点了解到:厂家实体编号,名称,地址, 联系电话;原材料与厂家之间的供应联系为n: m。应用实例实体型及属性库房实体型: 库房号、 地点、库房面积、 库房类型。 员工实体型:员工号、姓名、性别、出生年月、职 务。原材料实体型: 材料号、名称、规格、单价、 说明 工程项目实体型:项目号、预算资金、开工日期、 竣工日期。生产厂家实体型:厂家号、厂家名称、通信地址、 联系电话。应用实例联系型及属性工作联系型: 1:n领导联系型: 1:n,且是递归联系。 存放联系型: m:n,且有“库存量”属性。 供应联系型:三元联系,且有“供应量”属性。五、扩展实体联系模型扩展
44、实体联系模型实质上是与面向对象模型异曲 同工。1. 类层次子类 (Subclass) 概念:有时,需要将实体型中的实体分成子类。分 类后体现为一种层次关系,最上层为超类 ( Superclass ),下层即为子类。如,小时工和合 同工是员工的子类。表示:小时工 ISA( is a)员工、合同工 ISA 员工。 ISA 为这种类层次的联系。子类属性:除可继承超类属性外还可有自己独特的 属性。小时工合同工2. 演绎与归纳2.1 演绎 概念:演绎是根据超类来识别子类的处理过程。 方法:先定义超类,再由超类来定义子类,然后加 入子类的特定属性,即由“一般”到“特殊”的方 法。例如,员工按工作性质分,可
45、分为:管理人员(特 定属性为职务级别) 、技术人员(特定属性为技术 职称)、销售人员(特定属性为销售业绩) 。2.2 归纳 概念:归纳是指归纳出多个实体型的共同特征,并 形成由这些共同特征构成的新实体型。 方法:先定义子类,再定义超类,即由“特殊”到 “一般”,有的教材称此为“一般化” 。 例如,通过对博士生、硕士生、本科生、专科生、预科生、硕博连读生、 本硕连读生等子类进行归纳, 得出“学生”这个超类。2.3 演绎的原则 重叠约束 (Overlap) 重叠约束要求演绎出的子类实体不能有重叠或交 叉,又名“正交约束” 。它是演绎时应遵守的默认 原则。包容约束 (Covering) 包容约束要求
46、超类中的每个实体必须属于某一个 子类。也就是说,子类的所有实体,构成超类中的 所有实体,又名“完全性约束” 。包容约束实际上要求在演绎时,要找全所有的子 类,不要漏掉某一个子类。3. 聚集 联系是指实体间的关联。但有时,在实体和联系之 间也存在联系的情况。这就与联系的概念有矛盾。 为了解决此问题,引入“聚集”概念。 将联系以及该联系所关联的实体一起,作为一个 “高层”实体(或虚实体)来对待,该高层实体即 为聚集。然后将高层实体看作一般的实体,与其他 的实体一起建立新的联系。通过这种抽象处理后, 保持了联系概念的一致性,即联系是实体间的关 联。第三章 关系数据库的理论基础 一、关系数据库概述 关
47、系数据模型,于 1970 年由 E.F.Codd 首先提出 关系模型带来了数据库领域的革命,它是目前最流 行的 RDBMS的基础。在关系模型中,数据结构通过表来描述的,表既可 以描述实体,也可描述联系,如学生表则描述的是 学生实体,成绩表则描述的是学生实体与课程实体 之间的联系。分三点讨论 关系数据模型的概念与术语 关系数据操作 关系模型的四类完整性约束1. 关系数据模型的概念与术语1.1 元组、属性和域 元组:表中的每一行称为一个元组,与一个实体对 应,也称为记录。属性:表中每一列称为一个属性。每个属性都有一 个属性名。与实体的属性对应,也称为字段。 域:每个属性所对应的值变化范围叫做属性的
48、域。1.2 关系、关系模式 关系与关系名:关系是元组的集合。每个关系都有 一个关系名,它与实体名相对应。若一个关系由 n 个属性构成,则称该关系为 n 元关系。 关系模式:对关系的描述称为关系模式。由关系名 及其所有属性名的集合构成。例如:教师 ( 职工号 , 姓名, 性别,职务,专业) 。一个关系模式可以有多个 关系。如,学生 (学号,姓名,性别,出生日期 ,住址, 电话) ,一个大学就可能有多个学生表。1.3 关系模型、关系数据库 关系模型:是所有的关系模式的集合。一个关系模 型描述了若干实体及其相互联系,反映了对客观世 界一部分的逻辑抽象。关系数据库:对应于一个关系模型的所有关系的集 合
49、称为关系数据库。1.4 关键字 在给定的关系中,能用来唯一地标识一个元组的属 性或属性组,称为给定关系的关键字 (Key) 。与实 体的“键”对应。可唯一标识关系中每一个元组的属性或属性组,而 又不包含多余的属性,称为该关系的候选关键字 (Candidate Key) 。与实体的候选键对应。若一个关系中有多个候选关键字,则选取其中一个 为主关键字 (Primary Key) 。与实体的主键对应。 在给定的关系中,经常需要根据某个或某几个属性 的值,来唯一地存取某个元组,也就是需要用某个 或某几个属性来唯一地标识一个元组,称这样的属 性组为给定关系的关键字。关键字(续) 包含在候选关键字中的属性
50、叫主属性。 主关键字在数据库设计中是一个很重要的概念,每 个关系都必须选择一个候选关键字作为主关键字; 对任一关系,主关键字一经选定,通常是不能随意 改变的。关键字举例 在关系模式: 学生(学号,姓名,性别,出生日期 ,联系电话 ,家庭 住址) 中,“学号”、“姓名”(假设不存在同名同姓) ,“联系 电话”(假定没有姐妹或兄弟在同一所学校)等, 均为候选关键字;10“学号”、“学号,姓名”等是关键字; 一般选“学号”为主关键字;“学号”、“姓名”、“联系电话”均为主属性。结论 从上例中可看出:主关键字一定是候选关键字;候 选关键字一定是关键字。反过来不一定成立。1.5 外部关键字设有两个关系
51、R和 S,它们的共有属性 X 是关系 S 的候选关键字或主关键字, 但不是关系 R的关键字, 则称 X 为关系 R的外部关键字或外部码 (External Key) 。例如,有两个关系: 职工(职工号,姓名,性别,年龄,部门号 ) 部门(部门号 ,部门名)在职工关系中, “部门号”不是关键字;在部门关 系中,“部门号”是关键字;则称“部门号”是职 工关系的外部关键字。外部关键字为两个表之间的联系提供了桥梁作用。 已隐含 X 是候选关键字。2. 关系数据操作数据查询 对一个关系内的数据查询主要是选择一些指定的 属性以及选择满足某些逻辑条件的元组。而对多个 关系的数据查询可以分解为:先将多个关系合
52、并成 一个关系, 然后再对合并后的关系进行查询。 因此, 对数据查询可以分解为三种基本操作:一个关系内 的属性指定;一个关系内元组的选择和两个关系的 合并。数据插入,即在关系中插入一些新的元组。 数据删除,在关系内删除一些元组。数据修改,在关系内修改一些元组的内容。数据修 改可以分解成两个更为基本的操作:先删除要修改 的元组,然后插入修改后的元组。因此上述四种操作,包含的操作方法有五种:关系 的属性指定、关系的元组选择、两个关系的合并、 关系中元组的插入和关系中元组的删除。3. 关系模型的四类完整性约束 关系模型的完整性约束规则是对关系的某种约束 条件,确保数据库中数据的正确性、一致性和有效
53、性,防止错误的数据进入数据库中造成无效操作。 完整性约束分为四类:3.1 域完整性约束域完整性 (Domain Integrity) 约束要求属性值必须 取自其对应的值域;一个属性值能否为空值由其语 义决定。域完整性约束是最基本的约束,不需要显式定义。 域完整性约束可以通过数据定义来实现,如数据类 型、数据宽度、默认值等就能限制域的范围。3.2 实体完整性约束 实体完整性( Entity Integrity )约束的规则是: 主关键字值必须是唯一的,且不能为空值。 这一规则规定了关系中不能有重复的元组,不存在 没有被标识的元组。一张表只能有一个主键,主键一旦设定,一般不再 修改。实体完整性约束
54、(续 1) 这一规则的理论依据有: 一个关系通常对应现实世界的一个实体型; 现实世界的实体是可区分的,即它们具有某种唯一 性标识; 在关系模型中主关键字作为唯一性标识; 如果主关键字取空值,说明存在某个不可标识的实 体,所以主关键字不能取空值。在关系模型中,实体完整性约束除了主键约束外, 还提供有唯一约束。唯一约束主要是针对候选键 的,以保证候选键值的完整性。唯一约束要求候选键值唯一,有且仅有一个空值。 表中的候选键可设定为唯一约束,反过来说,设定 为唯一约束的属性(组)就是该表的候选键。一张 表可有多个候选键,因此一张表也可有多个唯一约 束。3.3 参照完整性约束参照完整性 (Referen
55、tial Integrity) 约束又称为 引用完整性。参照完整性约束规则:设有两个关系 R 和 S,属性 (组) A是 S 的候选关键字,是 R的外部关键字, 则对于 R中的 A 的取值只有两种可能性: 取空值。11等于 S 中某个元组的关键字值。 参照完整性约束(续 1) 例如,前面职工关系中的部门号只能取两种值: 空值,说明该职工还未明确工作部门; 取部门关系中出现的部门值,说明此职工的部门已 确定,不可能分配到一个不存在的部门中去。 参照完整性规则定义了外部关键字与主(候选)关 键字的引用规则,不引用不存在的实体;外部关键 字与主(候选)关键字对应可实现两个关系的关联。 参照完整性约束
56、(外键约束) 在关系模型中,通过定义外键约束或触发器来保证参照完整性约束。 外键所在的表称为从表;外键作为主键或候选键的 表称为主表。结论主表 从表 主表中的主键值在修改和删除 时,从表中与该表主键值相同的外键值可级联 (CASCADE修) 改和删除,或改为空 (SET NULL) 或默 认值(SET DEFAULT),或禁止 (NO ACTION)主表主键 值的修改和删除。从表主表 从表中的外键值在插入和修改时, 其值应参照主表中的主键。外键约束需要显式定义,且应在从表上定义外键约 束。参照完整性约束(触发器) 利用触发器也可保证两表间的数据完整性。主表的 触发器维护主表到从表方向的数据完整性,而从表 的触发器维护从表到主表方向的参照完整性。3.4 用户自定义完整性约束 用户自定义完整性约束是针对某一具体数据的约 束条
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钣金喷粉知识培训课件
- 专业、职业、敬业的营销团队
- 蓄势待发2025年工作报告
- Unit 3 What would you like Part B(说课稿)-2024-2025学年人教PEP版英语五年级上册
- 河南省部分学校2024-2025学年高一上学期12月月考试题 物理(含答案)
- 北京市海淀区2024-2025学年高二上学期期末考试历史试题(含答案)
- 甘肃省金昌市(2024年-2025年小学六年级语文)统编版能力评测((上下)学期)试卷及答案
- 贵州盛华职业学院《公司法与商法(ACCA)》2023-2024学年第一学期期末试卷
- 贵州农业职业学院《软装设计》2023-2024学年第一学期期末试卷
- Unit 2 Morals and Virtues Reading for Writing 说课稿-2023-2024学年高中英语人教版(2019)必修第三册
- 辽宁盘锦浩业化工“1.15”泄漏爆炸着火事故警示教育
- 供应链案例亚马逊欧洲公司分销战略课件
- 石化行业八大高风险作业安全规范培训课件
- 村老支书追悼词
- DB3302T 1131-2022企业法律顾问服务基本规范
- 2022年自愿性认证活动获证组织现场监督检查表、确认书
- 中南大学年《高等数学上》期末考试试题及答案
- 付款通知确认单
- 小龙虾高密度养殖试验基地建设项目可行性研究报告
- 《桥梁工程计算书》word版
- 中考《红星照耀中国》各篇章练习题及答案(1-12)
评论
0/150
提交评论