数据库复习资料 (2)_第1页
数据库复习资料 (2)_第2页
数据库复习资料 (2)_第3页
数据库复习资料 (2)_第4页
数据库复习资料 (2)_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 第一章 数据库系统概论 一、数据库技术概述 1. 数据、数据处理、数据管理数据是描述现实世界中各种具体事物或抽象概念的可存储并具有明确意义的各种符号。数据处理是指包括数据采集、整理、编码和输入,从而有效地将数据组织到计算机中,由计算机对数据进行存储、加工、分类、检索、传输和输出等一系列的操作过程。数据管理是指数据处理的一系列活动中的基本操作环节,如对数据的组织、存储、检索和维护等工作,它是数据处理的核心。通俗说,数据管理就是指在计算机系统里对数据所进行的操作。在数据组织到计算机中之前不属于数据管理,将数据通过网络传输到另一个计算机系统的传输动作也不属于数据管理。人工管理阶段背景:硬件,没有直

2、接存取设备,软件,没有操作系统及管理数据的软件;数据处理的方式为批处理文件系统阶段背景:硬件,有直接存取设备,软件,有操作系统和专门的数据管理的软件;数据处理方式可为批处理方式也可为联机方式数据库系统阶段背景:多用户、多应用共享数据要求,大量数据处理需求。. 数据库系统数据库系统指在计算机系统中引入数据库后的系统构成,由六部分构成:数据库(DataBase,DB) 是存储在计算机系统内的、有结构的数据的集合;数据库管理系统(DataBase Management System,DBMS) 是管理数据库的系统软件,为用户和数据之间提供接口,使用户可对数据库进行各种操作。是数据库系统的核心部分。运

3、行环境 包括计算机硬件系统、操作系统、开发工具等;数据库管理员(DataBase Administraor,DBA) 主要负责设计、建立、管理和维护数据库,协调各用户对数据库的要求等;DBA不一定只是一个人,可以是一个工作组;用户(Users) 数据库系统的服务对象。数据库应用系统 满足用户功能需求的软件系统。 二、数据模型1. 数据模型概述数据模型是数据抽象的工具,即用此工具来组织数据,使数据结构化。目前广泛使用的数据模型可分为两个层次。第一层数据模型是独立于计算机系统的模型,它完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构,这类模型称为“概念数据模型”。第二层数据模

4、型是依赖于计算机系统的模型,它是直接面向数据库的逻辑结构,这类模型涉及到计算机系统和数据库管理系统,这类模型称为“结构数据模型”。现实世界(事物 事物特性)信息世界(实体 实体属性)数据世界(记录 数据项)概念模型结构模型1. 现实世界的抽象过程现实世界客观存在的世界。在现实世界中存在着各种运动着的物质,即各种事物及事物之间的联系。客观世界中的事物都有一些特征,人们正是利用这些特征来区分事物。信息世界人们通过大脑对客观世界的感知,又通过分析、归纳、抽象等方法处理,形成信息,对这些信息进行记录、整理、归纳和格式化,即构成了信息世界。实体联系模型、对象模型数据世界(机器世界)数据化了的信息世界称为

5、数据世界,也叫机器世界。关系模型、层次模型、网状模型2. 概念数据模型概念数据模型是独立于计算机系统,完全不涉及数据在计算机系统中的表示,按用户的观点在信息世界中对事物建模,强调其语义表达能力,主要用于数据库概念设计。典型的概念模型有:实体联系模型(ER模型)和对象模型。 3. 结构数据模型的三要素结构数据模型是面向计算机系统的,是现实世界中的信息最终在机器世界中得到的反映,它通常有一组严格定义了语法和语义的语言,人们可以使用它来定义、操纵数据库的数据。典型的结构数据模型有:层次模型、网状模型和关系模型。数据结构数据操作数据约束3.1 数据结构数据结构用于描述数据的静态特性。数据结构不仅要描述

6、数据本身,如数据类型、内容、属性;还要描述数据之间的联系。不同的数据模型采用不同的数据结构。在关系数据模型中用数据记录和数据项来描述。 3.2 数据操作数据操作用于描述数据的动态特性。是指对数据库中的数据所允许执行的操作的集合。主要有插入、删除、修改和查询四种操作。 3.3 数据约束数据约束是一组完整性规则的集合。完整性规则是数据模型中数据及其联系所具有的约束规则,用来限定数据库状态以及状态的变化,以保证数据的正确性。完备的数据模型都会提供描述约束的机制,尽可能完整地描述现实系统中对事物的约束规定,以达到真实描述现实系统的目的。4. 层次模型层次模型(Hierarchical Data Mod

7、el)是数据库系统中最早出现的数据模型。20世纪60年代后期,IBM开发出IMS (Information Management System) DBMS,是层次数据模型的基础。 层次模型是以记录型为结点的有向树。用树形结构表示各类实体以及实体之间的联系。现实世界中许多实体之间的联系就呈现出一种很自然的层次关系,如:行政机构、家庭关系等。层次模型中,每个结点表示一个记录类型,结点之间的连线表示记录类型间的联系,但这种联系只能是父子联系。层次模型中,任何一个给定的记录值,只有按其路径查看时,才能显示出它的完整意义。没有一个子女记录值能够脱离双亲记录值而独立存在。 层次模型的数据结构树结点表示“实

8、体”,即一条记录,树结点之间的连线表示“联系”。层次模型的数据操作按数据结构中对树的操作,实现结点的增加、删除、修改和查询。层次模型的数据约束一个模型一个根,根以外的结点只有一个双亲结点,一对多关系。5. 网状模型(Net Data Model)网状数据模型的典型代表是DBTG系统,亦称CODASYL系统。网状模型去掉了层次模型的两个限制,允许结点有多个双亲结点。可比层次模型更直接地描述现实世界。它是层次模型的泛化。数据结构用有向图描述,图顶点表示实体,边表示实体间的联系。数据操作实现对图中顶点的插入、删除、修改和查询。数据约束没有约束。 6. 关系模型关系模型是由E.F.Codd(埃德加.考

9、特)于1970年首先提出。它的基础不是图而是表。用二维表来表示实体和联系。每个二维表称为一个关系。表中每一行代表一个实体,表中每一列则代表实体的属性。二维表既反映了实体本身,也反映了实体与实体间的联系。数据结构表中的行表示实体,表和表之间的相同属性反映实体间的联系。数据操作按行可以增加、删除、修改和查询实体。数据约束任何两行不能完全相同,主键约束、域值约束、参照完整性约束、用户自定义约束等。7. 面向对象模型面向对象模型(Object-Oriented Data Model)用对象来描述事物,一个事物即为一个对象。面向对象模型的数据结构用对象、对象属性及对象之间的联系来描述。面向对象模型的数据

10、操作及完整性约束则是统一封装在对象之中的。三、数据库系统的构造数据库系统的三级模式数据库系统总体结构数据库系统的主要特点1. 数据库系统三级模式结构1.1 数据的独立性概念所谓数据独立性,是指应用程序独立于数据的逻辑表示与物理存储。通过将数据的定义与存储从程序中独立出来实现。 1.2 数据的逻辑独立性数据逻辑独立性是当概念模式改变时,例如,增加了新的关系、新的属性、改变了属性的数据类型等,由DBA对各个外模式/概念模式的映象作相应改变,可使外模式尽可能保持不变。由于应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。 1.3 数据的物理独

11、立性数据的物理独立性 是指当数据库的内模式发生改变时,如存储设备或存储方法发生改变,由DBA对概念模式/内模式映象作相应改变,使概念模式尽可能保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。2. 数据库系统总体结构图数据库设计部分结合三级模式讲透。案例教学:以教学管理系统为例。教学管理系统面向教务管理员、教师、学生、教学管理领导。在此引出视图的概念 3. 数据库系统的主要特点数据结构化可控数据冗余数据共享性好多种应用、多种语言共享数据独立性高集中统一控制数据的安全性控制数据的完整性控制并发控制 四、数据库管理系统什么是数据库管理系统数据库管理系统的功能数据

12、库管理系统的组成数据库语言 1.什么是数据库管理系统数据库管理系统(DataBase Management System)简称为DBMS。是一种负责数据库定义、建立、操作、管理和维护的系统软件。它的作用既类似于命令解释器,把用户对数据库的操作命令转换为对系统存储文件的操作;又类似于一个向导,把用户对数据库的一次访问,从用户级带到概念级,再导向物理级。 2. DBMS的功能数据库的定义数据库的建立数据库的操作数据库的控制数据库的维护与故障恢复数据通信。 3. 数据库管理系统的组成从程序的角度看,数据库管理系统是一组程序的集合体,按程序的功能可分为如下三类。3.1 语言处理程序3.2 运行控制程序

13、3.3 服务性程序 3.1 语言处理程序向用户提供数据库的定义、操作等功能。由以下编译程序或解释程序组成:数据库各级模式的语言处理程序。其作用是将各级源模式编译成各级目标模式。数据库操作编译处理程序。即将应用程序中DML语句转换成主语言编译程序能处理的形式,实现预编译。查询语言解释程序。处理终端查询语句,并决定其操作的执行过程。数据库控制语言解释程序。解释每个数据库控制命令的含义,决定操作的执行过程。 3.2 运行控制程序负责数据库运行时的管理、调度和控制。由以下程序模块组成:系统总控程序。它是整个DBMS的核心,负责控制、协调DBMS各个程序的活动,保证系统有条不紊地工作。访问控制程序。其内

14、容包括核对用户、口令,核对授权和密码,检验访问的合法性,以决定一个访问是否能进入数据库;并发控制程序。在多个用户同时访问数据库时,通过管理访问队列和封锁表,以及封锁的建立和撤消等工作,协调各个用户的访问,以避免造成数据修改和丢失等不正常现象,从而保证各应用程序读写数据的正确性;保密控制程序。在执行操作之前,核对保密规定。即数据加密约定。数据的完整性控制程序。在执行用户请求的每次操作前或后,核对数据的完整性约束条件,从而决定是否允许操作执行。数据存取程序。执行数据存取操作,是DBMS与文件系统的接口。把用户对数据库的访问请求转换为相应的文件存取命令,通过文件系统从相应的物理文件中读出数据,或向相

15、应的物理文件写入数据。数据更新程序。执行数据库中数据的插入、删除和修改操作,并负责修改相应的指针。通信控制程序。实现用户程序与DBMS之间的通信。 3.3 服务性程序提供数据库中数据的装入和维护等服务性功能,由以下一些程序模块组成:数据库装入程序 该程序将初始数据装入数据库中。 运行日志程序 该程序记载对数据库的所有访问,包括用户名、进入时间、操作方式、操作对象、数据修改前的值和数据修改后的值等。 重组织程序 当数据库性能变坏时,需要重新组织数据库,该程序可按原组织方法重新装入数据或采用新方法、新结构重新组织数据。 数据库恢复程序 当数据库系统遭到破坏时,数据库系统恢复程序可将系统恢复到可用状

16、态。性能监控程序 该程序监督用户操作的执行时间与数据存储空间的占用情况,估算系统性能,以决定数据库是否需要重新组织。 转贮程序编辑和打印程序4. 数据库语言数据库管理系统是用户与数据库之间的接口。一个数据库管理系统必须为用户提供某种工具完成下列工作:建立自己的数据库,对数据库进行各种操作。这个工具就是数据库语言。数据库语言包括数据描述语言、数据操作语言、数据库管理例行程序三大部分。最常用的数据库语言就是SQL语言。 4.1 数据描述语言Data Description Language,负责描述和定义数据的各种特性。这些特性包括数据的结构、数据之间的关系、数据的完整性约束等。这些描述和定义被存

17、储在数据库管理系统中的数据字典中。数据字典(Data Dictionary, DD) 是数据库管理系统中的一个特殊文件,用于存储数据库的一些说明信息,这些说明信息称为元数据(Meta Data)。参见P20.SQL语言中的Create Table,Create View,Create Database,alter database,Drop table,Alter table等都是数据描述语言。 4.2 数据操作语言Data Manipulation Language,是用户操作数据库中数据的工具。一般包括以下几方面的操作:从数据库中检索满足条件的数据;把新的数据记录插入到数据库中去;从数据库

18、中删除某些过时的、没有保留价值的原有数据; 修改某些已经发生了变化的数据项值,使之能确切反映变化后的情况。如,Select, Insert, Delete,Update等。按使用方式可将数据操作语言分为宿主式操作语言和自主式操作语言。宿主式操作语言也称为嵌入式操作语言。4.3 数据库管理例行程序存取控制例行程序安全性控制例行程序完整性控制例行程序事务管理例行程序恢复例行程序监控例行程序 五、数据库应用系统开发概述两种模式C/S模式B/S模式组件与分布式对象技术组件技术分布式对象技术 1. C/S模式是一种分布式的计算模式。C/S模式通过网络环境,将应用划分为“前端”和“后台”。前端由客户机担任

19、GUI(Graphic User Interface)处理以及向服务器发送用户请求和接收服务器回送的处理结果;后端为服务器,主要承担数据库的管理,按用户请求进行数据处理并回送结果等工作。 两层C/S结构网络为局域网,表示层和功能层揉在一起的,逻辑上没有分开,只是将数据层分开。 三层C/S结构表示层、功能 层、数据层。表示层表示层是应用的用户接口部分,它担负着用户与应用间的对话功能。它用于检查用户从键盘等输入的数据,显示应用输出的数据。为使用户能直观地进行操作,一般要使用图形用户接口(GUI),操作简单、易学易用。在变更用户接口时,只需改写显示控制和数据检查程序,而不影响其他两层。检查的内容也只

20、限于数据的形式和值的范围,不包括有关业务本身的处理逻辑。在这层的程序开发中主要是使用可视化编程工具。 功能层功能层相当于应用的本体,它将具体的业务处理逻辑编入程序中。例如,在制作订购合同时要计算合同金额,按照定好的格式配置数据、打印订购合同,而处理所需的数据则要从表示层或数据层取得。表示层和功能层之间的数据交换要尽可能简洁。例如,用户检索数据时,要设法将有关检索要求的信息一次传送给功能层,而由功能层处理过的检索结果数据也一次传送给表示层。在应用设计中,一定要避免进行一次业务处理,在表示层和功能层间进行多几次数据交换的笨拙设计。这层的程序多半是用可视化编程工具开发的,也有使用C语言的。数据层数据

21、层就是DBMS,负责管理对数据库数据的读写。DBMS必须能迅速执行大量数据的更新和检索。现在的主流是关系数据库管理系统(RDBMS)。因此,一般从功能层传送到数据层的要求大都使用SQL语言。 三层C/S的优点:具有灵活的硬件系统构成提高程序的可维护性 利于变更和维护应用技术规范 进行严密的安全管理 2. B/S模式(多层)3. 组件技术组件(Component),是指具有某种功能的独立软件单元,其最重要的特性是可复用性。组件模型由组件和容器构成。组件通过接口向外界提供功能入口。组件的范围很广,小到一个按钮,大到一个系统,如浏览器。容器(Container),是一种存放相关组件的“器皿”。如表单

22、(Form)、页面(Page)、框架(Frame)等。组件技术应解决两个问题:复用和互操作。常见的组件规范有:VBX、OCX、ActiveX。VBX、OCX、ActiveX都是由微软推出的 4. 分布式对象技术组件向分布式环境延伸,形成了分布式对象技术。利用分布式对象技术,可以实现异构平台间分布式对象间的相互通信,极大地提高系统的可扩展性。组件技术与分布式技术用得较广泛的模型有:CORBA、COM/DCOM/COM+、JavaBeans/EJB/J2EE。参见P32-33。 六、数据库技术的发展第一代数据库系统第二代数据库系统OLTP与OLAP数据仓库与数据挖掘并行与分布式数据库系统Inter

23、net/Web数据库面向对象的数据库系统 1. 第一代数据库系统以层次数据库管理系统和网状数据库管理系统的出现为标志,其典型代表分别是IMS和DBTG系统。层次数据库和网状数据库均支持三级模式的体系结构,均用存取路径表示数据间的联系,都有数据定义语言和导航式的数据操纵语言。对这两种数据库的应用要求:一是要熟悉数据库的各种路径,二是有较高的应用数据库的编程技巧。层次型和网状型均缺少相应的数学理论基础。 2. 第二代数据库系统支持关系数据模型的关系数据库系统是第二代数据库系统。关系模型既简单,又有坚实的数学基础。 3. OLTP与OLAPOLTP(Online Transaction Proces

24、sing)即联机事务处理。是一种数据库应用技术。如民航的订票系统、银行储蓄系统、证券交易系统等均属于OLTP的应用。OLAP(Online Analysis Processing)即联机分析处理。也是一种数据库应用技术,1993年由E.F.Codd提出。OLAP着重于“数据分析”,而OLTP着重于“数据管理”。OLAP的典型应用就是决策支持系统(DSS)。 4. 数据仓库与数据挖掘数据仓库(Data Warehouse)的概念由W.H.Inmon于1991年提出,其给出的定义为:数据仓库是面向主题的、集成的、稳定的、不同时间的数据集合,用以支持经营管理中决策制定过程。Sybase: Indus

25、try Warehouse Studio 3.2IBM: Visual Warehouse OLAPOracle: Oracle Warehouse BuilderMicrosoft: SQL Server OLAP Service数据挖掘(Data Mining)是在大量的、不完整的、有噪声的数据中发现潜在的、有价值的模式和数据间关系的过程。数据挖掘技术有:判断法、决策树、人工神经网络、遗传算法、模糊技术、粗集方法、可视化技术等。5. 并行与分布式数据库系统并行数据库系统即将传统的数据库管理技术与并行处理技术相结合形成的数据库系统。其特点是由多处理机及多个磁盘构成,数据库系统的吞吐量大大提高

26、,事务响应时间大大缩短。分布式数据库系统,目前没有统一的定义,多种理解参见P45。具有如下特点:数据的物理分散性;数据的逻辑整体性;数据分布的独立性;站点自治与协调;数据的冗余与冗余透明性。 6.Internet/Web数据库Internet/Web数据库,其实质是在传统的关系数据库技术基础上,对数据库模型、存储机制和检索技术等方面进行改进,而构造出基于Internet/Web应用的数据库系统。Internet/Web数据库的主要特征:采用多维处理、变长存储以及面向对象等新技术,使数据库应用转为全面基于Internet的应用。 7. 面向对象的数据库系统面向对象的数据库系统(OODBS),即以

27、面向对象的程序设计语言为基础,引入数据库技术,来建立的新一代的数据库系统。OODBS概念是1989年以英国Glasgow大学的Atkinson为首的6名学者首先提出的。1990年,以美国Berkeley大学Stonebraker为首的DBMS功能委员会提出以关系数据库系统为基础,建立对象关系数据库系统(ORDBS)。有人把ORDBS归为第三代数据库系统,而把OODBS归为第四代数据库系统。第二章 实体联系数据模型 一、数据模型综述1.为什么需要数据模型?由于数据的定义与操作从应用程序中剥离出来,交由DBMS来定义和管理。于是DBMS需要采用某种数据结构来定义、存储所要管理的数据。狭义上讲,这种

28、数据结构就是DBMS的数据模型。另一方面,现实系统要向计算机化的管理转变,因此,在数据库设计时,也必须用某种方式将其所关心、管理的数据抽取出来并组织起来,数据模型也正是起到这种作用。技术上的要求和应用要求数据的静态结构。数据的动态操作(增删改查询)。数据的完整性约束。综合说来,应描述数据、数据之间的联系、数据语义及完整性限制,同时还需要提供对数据操作的方法。2. 如何描述数据模型?用数据模型的三要素 3.如何评价数据模型?真实地描述现实系统。基本要求易于为一般用户所理解。易于计算机实现。 4.数据模型为什么有层次性?从数据抽象的过程看。数据模型是数据库设计时数据抽象的工具,由于抽象层次的存在,

29、相应地,数据模型也会有层次。从评价指标(第二、三项)的互斥性看。目前已被商用化DBMS支持的数据模型中,没有一个能同时满足上述三项要求。也就是说无法在数据库应用系统开发时,从设计到实现只使用一个数据模型。 5.数据模型的未来有两个发展方向:设计、开发与实现的一统数据模型。如面向对象模型。“层次共存,自动转换”。即设计用的数据模型到数据库管理系统所用的数据模型之间的相互转换由计算机辅助完成。如实现ERM向关系模型相互转换的工具有:Sybase公司的Power Designer、CA公司的ERwin等;实现对象模型向关系模型转换的工具有:Rational公司的Rose。 6.ERM的地位与作用?传

30、统三种数据模型的特点:能较好地满足第一和第三项评价要求。三种数据模型的不足:不易被业务用户理解。这是提出语义数据模型(Semantic Data Model)的基础。 实体联系模型(Entity Relationship Model, ERM)是用得最多且最成熟的语义数据模型。属于数据库应用系统设计的内容。 从数据库应用系统设计角度看,ER模型主要用于DB概念设计,是DB概念设计较常用的设计工具。 二、数据库设计综述数据库设计一般分为如下步骤:需求分析概念数据库设计逻辑数据库设计模式优化物理数据库设计安全设计 三、实体联系模型实体、实体集及属性联系及联系集ERM中的完整性约束弱实体ERM各元素

31、图示 1. 实体、实体型及属性1.1 实体、实体型实体(Entity):现实世界中有别于其他对象的对象。对象可以是具体的,也可以是抽象的。具体的实体如某某学生、某某老师等;而抽象的实体如某门课程、某份合同等。实体型(Entity Set):同类实体的集合。通常情况下简称为实体。如学生、教师、课程、合同。实体是指具体的个体,而实体型是对有共同特性的实体进行归类。实体用矩形来表示。学生 1.2 属性属性(Attribute):是指实体的特征或性质,即实体用属性描述。如学生实体的属性有:学号、姓名、生日、年龄、性别、住址等。属性按结构分:简单属性、复合属性和子属性。简单属性表示属性不可再分;复合属性

32、表示该属性还可再分为子属性。如姓名可分为现用名、曾用名、英文名等。实体用属性描述,实体集中的所有实体具有相同的属性。属性用椭圆框表示。 1.3 域域(Domain):指属性的取值范围。属性按取值分,有单值属性,多值属性、导出属性和空值属性。只有一个取值的属性称为单值属性;多于一个取值的属性为多值属性;值不确定或还没有值的属性称为空值属性;其值可由另一个属性的取值推导出来的属性为导出属性。多值属性如学位,一个人可能获得多个学位;导出属性如年龄,可由生日导出;空值属性如学位,当还没有获得学位时,其值不定。1.4 键键(Key):能惟一标识实体的一个或一组属性。如学号、课程号等。按键所包含的属性个数

33、分:简单键和复合键。由一个属性构成的键称为简单键;由多个属性构成的键称为复合键。候选键(Candidate Key):最小属性集合的键。主键(Primary Key):当存在多个候选键时,需选定其中一个作为主键,将其作为描述实体的惟一标识。键用属性名加下划线表示。 学号最小属性集合,意即在该集合中没有一个属性是多余的。如学生实体,其属性有:学号,姓名,性别,年龄等,在这些属性中,学号可惟一确定各个不同的实体,根据键的定义,学号是键;同样,学号与姓名的集合也可以惟一确定各个不同的实体,(学号,姓名)也是键,但它不是候选键,因为在这个键的集合中,姓名是多余的。进而可以得出结论:单属性的键一定是候选

34、键,多属性构成的键有可能不是候选键。 2. 联系及联系型2.1 联系及联系集联系联系(Relationship):是两个或多个实体间的关联。如“张三”选修“C语言”,此联系用“成绩”属性来描述。 2.1 联系及联系型(续)联系型联系型(Relationship Set):相似的一组联系称为联系型。因此联系型就是实体型与实体型之间的联系。通常简称为联系。联系型的阶:一个联系型所关联的实体型的数量n,称为联系型的阶。即称为n元联系。如“学生”与“课程”两个实体型通过“选课”关联,此联系称为二元联系。如“商品”、“客户”、“售货员”三个实体型通过“门市另售”相关联,此联系称为三元联系。见图2-2。

35、2.2 联系型存在的几种情况联系用棱型框表示。联系型存在的4种情况二元联系(Binary Relationship):三元联系(Ternary Relationship):两个实体型间存在多个不同的联系:如“员工”和“部门”两个实体之间既存在“工作”关系,又存在“管理”关系。递归联系(Recursive Relationship):同一个实体型中的两个实体之间存在的关联。如“员工”实体型中的两个具体的人之间存在的“领导”与“被领导”关系。 归纳上面所介绍的是关于实体联系模型的数据结构的内容。它是利用“实体”来描述现实世界中的客观事物,实体又由“属性”来描述,并用主键来惟一标识;用“联系”来描述

36、事物之间的关联,联系也可有其属性描述,联系由所参与实体的主键共同惟一标识。实体联系模型缩写为ERM。 3. ERM中的完整性约束3.1 一般性约束根据关联的实体参与到联系中数量间的约束,联系型可分为:一对一(1:1)联系一对多(1:n)联系多对多(m:n)联系 联系型分类定义定义 设联系型R关联实体型A和B,如果A中的一个实体只与B中的一个实体关联,反过来,B中的一个实体也只与A中的一个实体关联,则称R是一对一联系型;如果A中的一个实体与B中的n个实体关联,反过来,B中的一个实体只与A中的一个实体关联,则称R是一对多联系型;如果A中的一个实体与B中的n个实体关联,反过来,B中的一个实体又与A中

37、的m个实体关联,则称R是多对多联系型。3.2 键约束键约束(Key Constraint)是指在一个联系型R中,实体型A中的一个实体,对应在实体型B中只能找到一个相关联的实体;或实体型B中的一个实体,对应在实体型A中只能找到一个相关联的实体。键约束的作用键约束对于联系型主键的确定有重要的作用。对于1:1联系,其主键就可取关联的任一实体的主键独立担当;对于1:n联系,其主键只需由n方实体的主键担当;对于m:n联系,其主键必须由关联的所有实体的主键担当。 3.3 参与约束参与约束(Participation Constraint)是实体与联系之间的约束,也称为实体关联约束。参与约束分为完全参与(T

38、otal Participation)约束和部分参与(Partial Participation)约束。完全参与约束表示与联系关联的某个实体型中的所有实体,全部参与到联系中来。如“学生”实体型与“选课”联系型,所有的学生实体都会参与“选课”联系。部分参与约束则表示与联系关联的某个实体型,只有部分实体参与到联系中来。如“员工”实体型与“管理”联系,只有部分员工参与管理。完全参与约束图示时,用粗线表示。参见P63图2-14。 4. 弱实体弱实体是指管理主体之外的实体型。也称为外部实体。如,员工是企业管理的主体之一,然而企业为员工办理保险时,不可避免地会涉及保险的受益人,受益人一般不是企业的员工,“

39、受益人”则称为弱实体。识别实体:与弱实体型关联的实体型,称为识别实体型。如“员工”实体型。识别联系:实体型与弱实体型之间的联系称为识别联系。 对弱实体有如下约束:识别实体与弱实体之间的联系必须是1:n联系;弱实体必须完全参与识别联系。弱实体和识别联系用粗线条表示。 5. ERM各元素图示四、应用实例经调研,了解到如下数据信息:某公司有多个原材料库房,每个库房分布在不同的地方,每个库房有不同的编号,公司对这些库房进行统一管理;每个库房可以存放多种不同的原材料,为了便于管理,各种原材料分类存放,同一种原材料集中存放在同一个库房里;每一个库房可安排一名或多名员工管理库房,在这些库房里,每一个管理员有

40、且仅有一名员工是他的直接领导;应用实例同一种原材料可以供应多个不同的工程项目,同一个工程项目要使用多种不同的原材料;同一种原材料可由多个不同的厂家生产,同一个生产厂家可生产多种不同的原材料。从第4点了解到:工程项目实体编号,预算资金,开工日期,竣工日期;原材料与工程项目之间的供应联系为n:m;从第5点了解到:厂家实体编号,名称,地址,联系电话;原材料与厂家之间的供应联系为n:m。 应用实例实体型及属性库房实体型:库房号、地点、库房面积、库房类型。员工实体型:员工号、姓名、性别、出生年月、职务。原材料实体型:材料号、名称、规格、单价、说明。工程项目实体型:项目号、预算资金、开工日期、竣工日期。生

41、产厂家实体型:厂家号、厂家名称、通信地址、联系电话。 应用实例联系型及属性工作联系型:1:n领导联系型:1:n,且是递归联系。存放联系型:m:n,且有“库存量”属性。供应联系型:三元联系,且有“供应量”属性。 五、扩展实体联系模型扩展实体联系模型实质上是与面向对象模型异曲同工。 1. 类层次子类(Subclass)概念:有时,需要将实体型中的实体分成子类。分类后体现为一种层次关系,最上层为超类(Superclass),下层即为子类。如,小时工和合同工是员工的子类。表示:小时工ISA(is a)员工、合同工ISA员工。ISA为这种类层次的联系。子类属性:除可继承超类属性外还可有自己独特的属性。小

42、时工合同工 2. 演绎与归纳2.1 演绎概念:演绎是根据超类来识别子类的处理过程。方法:先定义超类,再由超类来定义子类,然后加入子类的特定属性,即由“一般”到“特殊”的方法。例如,员工按工作性质分,可分为:管理人员(特定属性为职务级别)、技术人员(特定属性为技术职称)、销售人员(特定属性为销售业绩)。 2.2 归纳概念:归纳是指归纳出多个实体型的共同特征,并形成由这些共同特征构成的新实体型。方法:先定义子类,再定义超类,即由“特殊”到“一般”,有的教材称此为“一般化”。例如,通过对博士生、硕士生、本科生、专科生、预科生、硕博连读生、本硕连读生等子类进行归纳,得出“学生”这个超类。 2.3 演绎

43、的原则重叠约束(Overlap)重叠约束要求演绎出的子类实体不能有重叠或交叉,又名“正交约束”。它是演绎时应遵守的默认原则。包容约束(Covering)包容约束要求超类中的每个实体必须属于某一个子类。也就是说,子类的所有实体,构成超类中的所有实体,又名“完全性约束”。包容约束实际上要求在演绎时,要找全所有的子类,不要漏掉某一个子类。 3. 聚集联系是指实体间的关联。但有时,在实体和联系之间也存在联系的情况。这就与联系的概念有矛盾。为了解决此问题,引入“聚集”概念。将联系以及该联系所关联的实体一起,作为一个“高层”实体(或虚实体)来对待,该高层实体即为聚集。然后将高层实体看作一般的实体,与其他的

44、实体一起建立新的联系。通过这种抽象处理后,保持了联系概念的一致性,即联系是实体间的关联。第三章 关系数据库的理论基础一、关系数据库概述关系数据模型,于1970年由E.F.Codd首先提出。关系模型带来了数据库领域的革命,它是目前最流行的RDBMS的基础。在关系模型中,数据结构通过表来描述的,表既可以描述实体,也可描述联系,如学生表则描述的是学生实体,成绩表则描述的是学生实体与课程实体之间的联系。分三点讨论关系数据模型的概念与术语 关系数据操作 关系模型的四类完整性约束 1. 关系数据模型的概念与术语 1.1 元组、属性和域元组:表中的每一行称为一个元组,与一个实体对应,也称为记录。属性:表中每

45、一列称为一个属性。每个属性都有一个属性名。与实体的属性对应,也称为字段。域:每个属性所对应的值变化范围叫做属性的域。1.2 关系、关系模式关系与关系名:关系是元组的集合。每个关系都有一个关系名,它与实体名相对应。若一个关系由n个属性构成,则称该关系为n元关系。关系模式:对关系的描述称为关系模式。由关系名及其所有属性名的集合构成。例如:教师(职工号,姓名,性别,职务,专业)。一个关系模式可以有多个关系。如,学生(学号,姓名,性别,出生日期,住址,电话),一个大学就可能有多个学生表。1.3 关系模型、关系数据库关系模型:是所有的关系模式的集合。一个关系模型描述了若干实体及其相互联系,反映了对客观世

46、界一部分的逻辑抽象。关系数据库:对应于一个关系模型的所有关系的集合称为关系数据库。1.4 关键字在给定的关系中,能用来唯一地标识一个元组的属性或属性组,称为给定关系的关键字(Key)。与实体的“键”对应。可唯一标识关系中每一个元组的属性或属性组,而又不包含多余的属性,称为该关系的候选关键字(Candidate Key)。与实体的候选键对应。若一个关系中有多个候选关键字,则选取其中一个为主关键字(Primary Key)。与实体的主键对应。在给定的关系中,经常需要根据某个或某几个属性的值,来唯一地存取某个元组,也就是需要用某个或某几个属性来唯一地标识一个元组,称这样的属性组为给定关系的关键字。关

47、键字(续)包含在候选关键字中的属性叫主属性。主关键字在数据库设计中是一个很重要的概念,每个关系都必须选择一个候选关键字作为主关键字;对任一关系,主关键字一经选定,通常是不能随意改变的。关键字举例在关系模式:学生(学号,姓名,性别,出生日期,联系电话,家庭住址)中,“学号”、“姓名”(假设不存在同名同姓),“联系电话”(假定没有姐妹或兄弟在同一所学校)等,均为候选关键字;“学号”、“学号,姓名”等是关键字;一般选“学号”为主关键字;“学号”、“姓名”、“联系电话”均为主属性。结论从上例中可看出:主关键字一定是候选关键字;候选关键字一定是关键字。反过来不一定成立。1.5 外部关键字设有两个关系R和

48、S,它们的共有属性X是关系S的候选关键字或主关键字,但不是关系R的关键字,则称X为关系R的外部关键字或外部码(External Key)。例如,有两个关系:职工(职工号,姓名,性别,年龄,部门号)部门(部门号,部门名)在职工关系中,“部门号”不是关键字;在部门关系中,“部门号”是关键字;则称“部门号”是职工关系的外部关键字。外部关键字为两个表之间的联系提供了桥梁作用。已隐含X是候选关键字。2. 关系数据操作数据查询对一个关系内的数据查询主要是选择一些指定的属性以及选择满足某些逻辑条件的元组。而对多个关系的数据查询可以分解为:先将多个关系合并成一个关系,然后再对合并后的关系进行查询。因此,对数据

49、查询可以分解为三种基本操作:一个关系内的属性指定;一个关系内元组的选择和两个关系的合并。数据插入,即在关系中插入一些新的元组。数据删除,在关系内删除一些元组。数据修改,在关系内修改一些元组的内容。数据修改可以分解成两个更为基本的操作:先删除要修改的元组,然后插入修改后的元组。因此上述四种操作,包含的操作方法有五种:关系的属性指定、关系的元组选择、两个关系的合并、关系中元组的插入和关系中元组的删除。3. 关系模型的四类完整性约束 关系模型的完整性约束规则是对关系的某种约束条件,确保数据库中数据的正确性、一致性和有效性,防止错误的数据进入数据库中造成无效操作。完整性约束分为四类:3.1 域完整性约

50、束域完整性(Domain Integrity)约束要求属性值必须取自其对应的值域;一个属性值能否为空值由其语义决定。域完整性约束是最基本的约束,不需要显式定义。域完整性约束可以通过数据定义来实现,如数据类型、数据宽度、默认值等就能限制域的范围。3.2 实体完整性约束实体完整性(Entity Integrity)约束的规则是:主关键字值必须是唯一的,且不能为空值。这一规则规定了关系中不能有重复的元组,不存在没有被标识的元组。一张表只能有一个主键,主键一旦设定,一般不再修改。实体完整性约束(续1)这一规则的理论依据有:一个关系通常对应现实世界的一个实体型;现实世界的实体是可区分的,即它们具有某种唯

51、一性标识;在关系模型中主关键字作为唯一性标识;如果主关键字取空值,说明存在某个不可标识的实体,所以主关键字不能取空值。在关系模型中,实体完整性约束除了主键约束外,还提供有唯一约束。唯一约束主要是针对候选键的,以保证候选键值的完整性。唯一约束要求候选键值唯一,有且仅有一个空值。表中的候选键可设定为唯一约束,反过来说,设定为唯一约束的属性(组)就是该表的候选键。一张表可有多个候选键,因此一张表也可有多个唯一约束。3.3 参照完整性约束参照完整性(Referential Integrity)约束又称为引用完整性。参照完整性约束规则:设有两个关系R和S,属性(组)A是S的候选关键字,是R的外部关键字,

52、则对于R中的A的取值只有两种可能性:取空值。等于S中某个元组的关键字值。参照完整性约束(续1)例如,前面职工关系中的部门号只能取两种值:空值,说明该职工还未明确工作部门;取部门关系中出现的部门值,说明此职工的部门已确定,不可能分配到一个不存在的部门中去。参照完整性规则定义了外部关键字与主(候选)关键字的引用规则,不引用不存在的实体;外部关键字与主(候选)关键字对应可实现两个关系的关联。参照完整性约束(外键约束)在关系模型中,通过定义外键约束或触发器来保证参照完整性约束。外键所在的表称为从表;外键作为主键或候选键的表称为主表。结论主表 从表 主表中的主键值在修改和删除时,从表中与该表主键值相同的

53、外键值可级联(CASCADE)修改和删除,或改为空(SET NULL)或默认值(SET DEFAULT),或禁止(NO ACTION)主表主键值的修改和删除。从表主表 从表中的外键值在插入和修改时,其值应参照主表中的主键。外键约束需要显式定义,且应在从表上定义外键约束。参照完整性约束(触发器)利用触发器也可保证两表间的数据完整性。主表的触发器维护主表到从表方向的数据完整性,而从表的触发器维护从表到主表方向的参照完整性。3.4 用户自定义完整性约束用户自定义完整性约束是针对某一具体数据的约束条件,由应用环境决定,它反映的是某一具体应用所涉及的数据必须满足的语义要求。例如,可以给出规则:退休年龄男

54、60岁,女55岁。学生借阅图书不能超过10本等等。域完整性约束规定了二维表列的取值情况;实体完整性约束规定了二维表行的取值情况;参照完整性规定了具有联系的两表间相同属性的取值情况。用户自定义完整性约束在关系模型中,用户自定义完整性可用检查约束(CHECK CONSTRAINT)或断言(ASSERTION)来保证。检查约束,有时也称为表约束或表限制,可用来检查:表中某一列的值是否在某一取值范围之内;表中某几列之间是否满足指定的条件。二、关系运算(Relational Operators)1. 关系的数学定义笛卡尔积定义:给定一组任意集合D1,D2,Dn,它们可以包括相同的元素。这n个集合的笛卡尔

55、积为D1D2 Dn=(d1,d2,dn)| di Di, i=1,2,,n)笛卡尔积可以表示为一个二维表,表中的每一行对应一个元组,表中的每一列对应一个域。关系的数学定义(续 )关系定义:设有属性A1,A2,Ak,它们分别在域D1,D2,Dk中取值,则这些域构成的一个笛卡尔乘积空间D=D1D2 Dk中的任一个子集D为一个关系,记为R。其关系模式是属性Ai的有序集合,记为R(A1,A2,Ak)。D中任一个元素称为R的一个元组。k称为关系R的目或元。使用集合论的符号,上述定义可表述为:R=| DD或R=tk| tk DD tk=2. 传统的关系运算 合并(Union)求差(Difference)相

56、交(Intersection)乘积(Cartesian Product)进行此四种运算的运算符属于双目运算符,或称二元运算符。说明在传统的关系运算中,除乘积外,所有其他运算中参与运算的两个关系必须是相容可并的,即它们必须具有相同的元,且一个关系的第j个属性与另一个关系的第j个属性必须从相同的域中取值(但属性的名字不必相同)。2.1合并(Union)设R和S分别为n元关系,R与S的并为属于R或属于S的元组组成的一个新关系。记为:RS=t|t Rt SRS具有与R相同的属性名集合。合并举例A1A2A3bbcd2323dbdbA1A2A3abceg32256cddffA1A2A3bbcdaeg232

57、3356dbdbcffRSRS2.2 求差(Difference)设R和S分别为n元关系,R与S的差为属于R而不属于S的元组组成的一个新关系。记为:R-S= t|t Rt SR-S具有与R相同的属性名集合。求差举例A1A2A3bbcd2323dbdbA1A2A3abceg32256cddffA1A2A3bd33bbRSR-S2.3 相交(Intersection)设R和S分别为n元关系,R与S的交为属于R同时属于S的元组组成的一个新关系。记为:RS= t|t Rt SRS具有与R相同的属性名集合。根据定义, RS=R-(R-S)。因此交运算可以用差运算表示。用图解释RS=R-(R-S)的关系相

58、交举例A1A2A3bbcd2323dbdbA1A2A3abceg32256cddffA1A2A3bc22ddRSR S2.4 乘积(Cartesian Product)两个关系R和S(设R为k1元关系,S为k2元关系)的广义笛卡尔乘积,是由属于R的任一元组tk1和属于S的任一元组tk2连接而成的新元组t所组成的一个新关系。记为:RS=t|t= tk1 R tk2 SRS为一个k1+k2元的新关系。前k1个分量为R的一个元组,后k2个分量为S的一个元组;RS有k1k2个元组。乘积举例A1A2A3bbcd2323dbdbB1B2ab32A1A2A3B1B2bbbbccdd22332233ddbbd

59、dbbabababab32323232RSRS在此引出改名操作。若求S S,如何表示呢?3. 专门的关系运算 进行投影与选择运算的运算符称为单目运算符或称一元运算符。3.1 投影(Projection)投影运算是从一个现有的关系中,选取某些属性(列),并可对这些属性重新排列,最后从得出的结果中删除重复的行,而得到一个新关系。若R是一个k元关系,其元组变量为tk=,那么关系R在其属性Aj1,Aj2,Ajn(nk,j1,j2,jn为1k 之间互不相同的整数)上的投影记为:j1,j2,jn(R)=t|t= R投影举例A1A2A3bbcd2323dbdbA3A2db23R3,2(R)3.2 选择(Se

60、lection)选择运算是从一个现有关系中,选择满足一定条件的元组组成一个新的关系。记为:F(R)=t|t= t R F=True 选择举例A1A2A3abcg3226cddf25 3f (S)A1A2A3abceg32256cddffS3.3 连接(join)连接可定义为RS后再作“选择”操作。它是关系代数中使用最频繁的操作之一。条件连接等连接自然连接外连接3.3.1 条件连接(condition Join)设R为k1元关系,S为k2元关系,A为关系R的属性, B为关系S的属性,A、B具有相同的域,则两个关系R和S的连接,是由属于R的任一元组变量tk1和属于S的任一元组变量tk2连接而成,且

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论