数据库系统概论 - 课程名称数据库系统概论 课 时72_第1页
数据库系统概论 - 课程名称数据库系统概论 课 时72_第2页
数据库系统概论 - 课程名称数据库系统概论 课 时72_第3页
数据库系统概论 - 课程名称数据库系统概论 课 时72_第4页
数据库系统概论 - 课程名称数据库系统概论 课 时72_第5页
已阅读5页,还剩1063页未读 继续免费阅读

下载本文档

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

文档简介

总学时:64学时

讲授:何文斌

联系:EMAIL:

数据库系统概论AnIntroductiontoDatabaseSystem东莞理工学院计算机学院

学习目标掌握数据库根本理论结合一种主流语言,进行数据库应用系统开发掌握至少一种大型数据库了解数据库新技术教材及参考书?数据库系统概论?(第四版),萨师煊,王珊。高等教育出版社。?数据库系统教程(第二版)?,施伯乐,丁宝康,汪卫编著。高等教育出版社。?数据库原理及设计?,陶宏才,清华大学出版社。?数据库系统概念?,杨冬青,唐世渭译。机械工业出版社。?数据库系统原理及应用教程?。苗雪兰,刘瑞兴,宋会群编著。机械工业出版社。内容安排(1)根底篇第一章:绪论第二章:关系数据库第三章:关系数据库标准语言SQL第四章:数据库平安性第五章:数据库完整性设计应用与开发篇第六章:关系数据理论第七章:数据库设计第八章:数据库编程内容安排(2)系统篇第九章:关系查询处理与查询优化第十章:数据库恢复技术第十一章:并发控制第十二章:数据库管理系统新技术篇数据库技术新开展第一章绪论1.1数据库系统概述1.2数据模型1.3数据库系统结构1.4数据库系统的组成1.5小结1.1

数据库系统概述1.1.1数据库的地位1.1.2四个根本概念1.1.3数据管理技术的产生与开展数据库的地位数据库技术产生于六十年代末,是数据管理的最新技术,是计算机科学的重要分支数据库技术是信息系统的核心和根底,它的出现极大地促进了计算机应用向各行各业的渗透数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志1.1数据库系统概述1.1.1数据库的地位1.1.2四个根本概念1.1.3数据管理技术的产生与开展1.1.2四个根本概念数据(Data)数据库(Database)数据库管理系统(DBMS)数据库系统(DBS)一、数据数据(Data)是数据库中存储的根本对象数据的定义描述事物的符号记录数据的种类文字、图形、图象、声音数据的特点数据与其语义是不可分的数据举例学生档案中的学生记录〔李明,男,1972,江苏,计算机系,1990〕数据的形式不能完全表达其内容数据的解释语义:学生姓名、性别、出生年月、籍贯、所在系别、入学时间解释:李明是个大学生,1972年出生,江苏人,1990年考入计算机系请给出另一个解释和语义二、数据库〔举例〕二、数据库(续)人们收集并抽取出一个应用所需要的大量数据之后,应将其保存起来以供进一步加工处理,进一步抽取有用信息数据库的定义数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据集合二、数据库(续)数据库的特征数据按一定的数据模型组织、描述和储存可为各种用户共享冗余度较小数据独立性较高易扩展三、数据库管理系统什么是DBMS数据库管理系统〔DatabaseManagementSystem,简称DBMS〕是位于用户与操作系统之间的一层数据管理软件。DBMS的用途科学地组织和存储数据、高效地获取和维护数据DBMS的主要功能数据定义功能提供数据定义语言(DDL)定义数据库中的数据对象数据组织、存储和管理实现高效、方便存取数据操纵功能:提供数据操纵语言(DML)操纵数据实现对数据库的根本操作(查询、插入、删除和修改)DBMS的主要功能数据库的运行管理 保证数据的平安性、完整性、 多用户对数据的并发使用 发生故障后的系统恢复数据库的建立和维护功能(实用程序) 数据库数据批量装载 数据库转储 介质故障恢复 数据库的重组织 性能监视等四、数据库系统什么是数据库系统数据库系统〔DatabaseSystem,简称DBS〕是指在计算机系统中引入数据库后的系统构成。在不引起混淆的情况下常常把数据库系统简称为数据库。数据库系统的构成由数据库、数据库管理系统〔及其开发工具〕、应用系统、数据库管理员〔和用户〕构成。数据库系统(续)数据库系统构成图示参看教材page_6图1.1数据库系统在计算机系统中的地位图示参看教材page_6图1.21.1数据库系统概述1.1.1数据库的地位1.1.2四个根本概念1.1.3数据管理技术的产生与开展1.1.3数据管理技术的产生和开展什么是数据管理对数据进行分类、组织、编码、存储、检索和维护,是数据处理的中心问题数据管理技术的开展过程人工管理阶段(40年代中--50年代中)文件系统阶段(50年代末--60年代中)数据库系统阶段(60年代末--现在)数据管理技术的产生和开展(续)数据管理技术的开展动力应用需求的推动计算机硬件的开展计算机软件的开展一、人工管理时期40年代中--50年代中产生的背景应用需求 科学计算 硬件水平 无直接存取存储设备 软件水平 没有操作系统 处理方式 批处理 人工管理(续)特点数据的管理者:应用程序,数据不保存。数据面向的对象:某一应用程序数据的共享程度:无共享、冗余度极大数据的独立性:不独立,完全依赖于程序数据的结构化:无结构数据控制能力:应用程序自己控制应用程序与数据的对应关系(人工管理)

应用程序1数据集1应用程序2数据集2应用程序n数据集n...…...…二、文件系统时期50年代末--60年代中产生的背景应用需求 科学计算、管理 硬件水平 磁盘、磁鼓 软件水平 有文件系统 处理方式 联机实时处理、批处理

文件系统(续)特点数据的管理者:文件系统,数据可长期保存数据面向的对象:某一应用程序数据的共享程度:共享性差、冗余度大数据的结构化:记录内有结构,整体无结构数据的独立性:独立性差,数据的逻辑结构改变必须修改应用程序数据控制能力:应用程序自己控制应用程序与数据的对应关系(文件系统)应用程序1文件1应用程序2文件2应用程序n文件n存取方法...…...…文件系统中数据的结构记录内有结构。数据的结构是靠程序定义和解释的。数据只能是定长的。可以间接实现数据变长要求,但访问相应数据的应用程序复杂了。文件间是独立的,因此数据整体无结构。可以间接实现数据整体的有结构,但必须在应用程序中对描述数据间的联系。数据的最小存取单位是记录。三、数据库系统时期60年代末以来产生的背景应用背景 大规模管理 硬件背景 大容量磁盘 软件背景 有数据库管理系统 处理方式 联机实时处理,分布处理,批处理 数据库系统(续)特点数据的管理者:DBMS数据面向的对象:现实世界 数据的共享程度:共享性高 数据的独立性:高度的物理独立性和一定的逻辑独立性 数据的结构化:整体结构化数据控制能力:由DBMS统一管理和控制应用程序与数据的对应关系(数据库系统)DBMS应用程序1应用程序2数据库…数据的高共享性的好处降低数据的冗余度,节省存储空间防止数据间的不一致性使系统易于扩充数据独立性物理独立性指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变了,应用程序不用改变。逻辑独立性指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变。数据结构化整体数据的结构化是数据库的主要特征之一。数据库中实现的是数据的真正结构化数据的结构用数据模型描述,无需程序定义和解释。数据可以变长。数据的最小存取单位是数据项。DBMS对数据的控制功能数据的平安性〔Security〕保护使每个用户只能按指定方式使用和处理指定数据,保护数据以防止不合法的使用造成的数据的泄密和破坏。数据的完整性〔Integrity〕检查将数据控制在有效的范围内,或保证数据之间满足一定的关系。DBMS对数据的控制功能并发〔Concurrency〕控制对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。数据库恢复〔Recovery〕将数据库从错误状态恢复到某一的正确状态。数据模型在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟数据模型应满足三方面要求能比较真实地模拟现实世界容易为人所理解便于在计算机上实现数据模型(续)数据模型分成两个不同的层次(1)概念模型也称信息模型,它是按用户的观点来对数据和信息建模。(2)数据模型主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模。数据模型(续)客观对象的抽象过程两步抽象现实世界中的客观对象抽象为概念模型;把概念模型转换为某一DBMS支持的数据模型。

概念模型是现实世界到机器世界的一个中间层次。1.2数据模型1.2.1数据模型的组成要素1.2.2概念模型1.2.3常用数据模型1.2.4层次模型1.2.5网状模型1.2.6关系模型1.2.1数据模型的组成要素数据结构数据操作数据的约束条件1.数据结构什么是数据结构对象类型的集合两类对象与数据类型、内容、性质有关的对象与数据之间联系有关的对象数据结构是对系统静态特性的描述2.数据操作数据操作对数据库中各种对象〔型〕的实例〔值〕允许执行的操作及有关的操作规那么数据操作的类型检索更新〔包括插入、删除、修改〕数据操作(续)数据模型对操作的定义操作确实切含义操作符号操作规那么〔如优先级〕实现操作的语言数据操作是对系统动态特性的描述。3.数据的约束条件数据的约束条件一组完整性规那么的集合。完整性规那么是给定的数据模型中数据及其联系所具有的制约和储存规那么,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。数据的约束条件(续)数据模型对约束条件的定义反映和规定本数据模型必须遵守的根本的通用的完整性约束条件。例如在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件。提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。1.2.2概念模型1.概念模型2.信息世界中的根本概念3.概念模型的表示方法1.概念模型概念模型的用途概念模型用于信息世界的建模是现实世界到机器世界的一个中间层次是数据库设计的有力工具数据库设计人员和用户之间进行交流的语言对概念模型的根本要求较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识简单、清晰、易于用户理解。2.信息世界中的根本概念(1)实体〔Entity〕客观存在并可相互区别的事物称为实体。可以是具体的人、事、物或抽象的概念。(2)属性〔Attribute〕实体所具有的某一特性称为属性。一个实体可以由假设干个属性来刻画。(3)码〔Key〕唯一标识实体的属性集称为码。信息世界中的根本概念(续)(4)域〔Domain〕属性的取值范围称为该属性的域。(5)实体型〔EntityType〕用实体名及其属性名集合来抽象和刻画同类实体称为实体型(6)实体集〔EntitySet〕同型实体的集合称为实体集信息世界中的根本概念(续)(7)联系〔Relationship〕现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系实体型间联系两个实体型一对一联系〔1:1〕三个实体型一对多联系〔1:n〕一个实体型多对多联系〔m:n〕两个实体型间的联系实体型1联系名实体型2111:1联系实体型1联系名实体型2mnm:n联系实体型1联系名实体型21n1:n联系两个实体型间的联系一对一联系如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,那么称实体集A与实体集B具有一对一联系。记为1:1。实例班级与班长之间的联系:一个班级只有一个正班长一个班长只在一个班中任职两个实体型间的联系(续)一对多联系如果对于实体集A中的每一个实体,实体集B中有n个实体〔n≥0〕与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,那么称实体集A与实体集B有一对多联系记为1:n实例班级与学生之间的联系:一个班级中有假设干名学生,每个学生只在一个班级中学习两个实体型间的联系(续)多对多联系〔m:n〕如果对于实体集A中的每一个实体,实体集B中有n个实体〔n≥0〕与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体〔m≥0〕与之联系,那么称实体集A与实体B具有多对多联系。记为m:n实例课程与学生之间的联系:一门课程同时有假设干个学生选修一个学生可以同时选修多门课程多个实体型间的联系(续)多个实体型间的一对多联系假设实体集E1,E2,...,En存在联系,对于实体集Ej〔j=1,2,...,i-1,i+1,...,n〕中的给定实体,最多只和Ei中的一个实体相联系,那么我们说Ei与E1,E2,...,Ei-1,Ei+1,...,En之间的联系是一对多的。

多个实体型间的联系(续)实例课程、教师与参考书三个实体型如果一门课程可以有假设干个教师讲授,使用假设干本参考书,每一个教师只讲授一门课程,每一本参考书只供一门课程使用课程与教师、参考书之间的联系是一对多的多个实体型间的一对一联系多个实体型间的多对多联系同一实体集内各实体间的联系一对多联系实例职工实体集内部具有领导与被领导的联系某一职工〔干部〕“领导〞假设干名职工一个职工仅被另外一个职工直接领导这是一对多的联系一对一联系多对多联系3.概念模型的表示方法概念模型的表示方法很多实体-联系方法(E-R方法)用E-R图来描述现实世界的概念模型E-R方法也称为E-R模型E-R图实体型用矩形表示,矩形框内写明实体名。学生教师E-R图(续)属性用椭圆形表示,并用无向边将其与相应的实体连接起来,其中作为码的属性在属性名下加下划线。学生学号年龄性别姓名E-R图(续)联系联系本身:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型〔1:1、1:n或m:n〕联系的属性:联系本身也是一种实体型,也可以有属性。如果一个联系具有属性,那么这些属性也要用无向边与该联系连接起来联系的表示方法实体型1联系名实体型2111:1联系实体型1联系名实体型2mnm:n联系实体型1联系名实体型21n1:n联系联系的表示方法(续)实体型1联系名mn同一实体型内部的m:n联系实体型1联系名实体型21m多个实体型间的1:n联系实体型3n联系的表示方法例如班级班级-班长班长111:1联系课程选修学生mnm:n联系班级组成学生1n1:n联系联系的表示方法例如(续)职工领导1n同一实体型内部的1:n联系课程讲授教师1m多个实体型间的1:n联系参考书n联系属性的表示方法课程选修学生mn成绩利用ER模型的概念数据库设计利用ERM进行概念DB设计,关键是确定以下内容:一个概念用实体还是属性表示?一个概念用实体还是联系表示?两个实体之间的联系,还是两个以上实体间的联系?一、实体与属性的取舍一般情况下,一个概念用实体描述还是用属性描述是比较明确的。只是在少数情况下,较难取舍。用属性表示例如:对“地址〞这个概念,如果每个员工只需记录一个地址,那么将其作为员工实体的属性是适宜的。用实体而非属性以下情况之一,那么可以考虑使用实体:需记录多个值:如,员工在同一部门的不同“地点〞工作。需表达其结构或作细分查询:如,“地址〞分成国家、省、市、区、街道等。二、属性在实体与联系间的取舍一个概念是作实体的属性还是联系的属性?例如,部门经理与所管理部门间的“管理〞联系中,“经费〞这个属性是作实体的属性还是作联系的属性?用作实体的属性假定:某个部门经理可能会同时管理多个部门,且其可支配的经费是所有管理部门经费之和。员工

部门

起始期部门号

姓名

生日

部门名

员工号

管理

经费二、属性在实体与联系间的取舍〔续〕2.用作联系的属性假定:某个部门经理可能会同时管理多个部门,且要求各部门经费必须分开管理。

员工部门

起始期部门号

姓名生日部门名

员工号

管理经费三、二元联系与三元联系的取舍1.用一个三元联系例如:客户、产品及供给商3个实体间,如果规定:(1).一个客户可购置多种产品;(2).一种产品可由多个供给商提供;(3).一个客户与多个供给商有业务往来。问题:假设要表达某客户从特定供给商购置某产品,那么三个实体间的联系,用一个三元联系,还是用3个二元联系?用一个三元联系〔续〕方案1:假定用3个二元联系,分别表示为:。一个供给商能“供给〞某种产品;。一个客户“需要〞某种产品;。一个客户与某个供给商的“业务往来〞分析:只能表示客户从供给商购置产品,不能表示特定要求;。不能表达出所购置的数量关系用一个三元联系〔续〕方案2:假定用一个三元联系“合同〞表示。

客户

合同

产品

签订日期

编号

名称

银行帐号

地址

编号

名称

供应商

规格

性能

订货数量

合同编号

编号

名称

银行帐号

地址

2.用二元联系例如:客户、担保人与贷款3个实体,如果规定:(1).一个客户可有多笔贷款;(2).每笔贷款有且仅有一个客户;(3).一笔贷款可有多个担保人,但一个担保人只能担保一笔贷款。问题:如何用ER图表示3个实体间的关系?用二元联系〔续〕方案:由于未对客户和担保人进行约束,故可分别用两个二元联系来描述,并图示如下。

借款

担保

家庭住址

姓名

性别

身份证号

工作单位

客户

姓名

性别

身份证号

工作单位

经济状况

担保人

期限

数量

贷款编号

贷款

借款日期

1nn1大型系统的概念数据库设计方法利用ERM进行大型系统DB设计,一般有两种方法,即:自顶向下和自底向上.1.自顶向下〔Top-to-Bottom〕思想:先全局后局部。也就是说,先了解企业中的全局需求,然后再考虑各部门用户的局部需要,并解决各局部需要中的冲突,生成一个包含整个企业中所有数据和应用的逻辑模式。特点:由于企业越大,其全局需要也越难把握,因此,这种方法采用得较少。2.自底向上〔Bottom-to-Top〕思想:先局部后全局。也就是说,先为各部门每个用户生成一个各自的概念模式、然后集成之。综合时,应考虑解决各种冲突,如命名、域不匹配、度量单位等。特点:由于企业各部门的局部需要较容易把握,因此,大多数情况下,根本采用这种方法。概念数据库设计实例实例任务 本实例以一个小型部门为背景,说明如何利用ERM来完成此部门的数据抽象与描述工作。其任务是:利用ERM,完成某工程公司原材料库房管理系统的概念数据库设计。系统调研(1).公司有多个原材料库房,每个库房分布在不同的地方,每个库房有不同的编号,公司对这些库房进行统一管理。(2).每个库房可以存放多种不同的原材料,为了便于管理,各种原材料分类存放,同一种原材料集中存放在同一个库房中。(3).每一个库房可安排一名或多名员工在库房工作,在这些库房,每一个管理员有且仅有一名员工是他的直接领导。(4).同一种原材料可以供给多个不同的工程工程,同一个工程工程要使用多种不同的原材料。(5).同一种原材料可由多个不同的厂家供给,同一个生产厂家可供给多种不同的原材料。概念数据库设计对调研结果进行分析,可以归纳出相应的实体型、联系型及其属性。库房实体型:具有库房号、地点、库房面积、库房类型等属性。原材料实体型:具有材料号、名称、规格、单价、说明等属性。员工实体型:具有员工号、姓名、性别、出生日期、职称等属性。工程工程实体型:具有工程号、预算资金、开工日期、竣工日期等属性生产厂家实体型:具有厂家号、厂家名称、通信地址、联系等属性。工作联系型:是1:n型联系。领导联系型:是1:n型联系,且是一种递归联系型。存放联系型:是m:n型联系,且具有“库存量〞属性。供给联系型:是一个三元联系型,且具有“供给量〞属性。ER模式建立分析并设计出对应的实体型、联系型及其属性后,画出ER图库存号地点库房面积库房类型员工号姓名性别职称库房工作员工1n存放1原材料n库存量库存号名称规格单价说明供应供应量生产厂家mp厂家号厂家名称通信地址联系电话工程项目n项目号竣工日期开工日期预算资金领导1n1.2.3常用数据模型非关系模型层次模型〔HierarchicalModel〕数据结构:以根本层次联系为根本单位根本层次联系:两个记录以及它们之间的一对多〔包括一对一)的联系网状模型(NetworkModel)数据结构:网关系模型(RelationalModel)数据结构:表面向对象模型(ObjectOrientedModel〕数据结构:对象1.2数据模型

1.2.1数据模型的组成要素1.2.2概念模型1.2.3常用数据模型1.2.4层次模型1.2.5网状模型1.2.6关系模型1.2.4层次模型1.层次数据模型的数据结构2.层次数据模型的数据操纵3.层次数据模型的与完整性约束4.层次数据模型的存储结构5.层次数据模型的优缺点

6.典型的层次数据库系统1.层次数据模型的数据结构层次模型满足下面两个条件的根本层次联系的集合为层次模型。1.有且只有一个结点没有双亲结点,这个结点称为根结点2.根以外的其它结点有且只有一个双亲结点层次模型中的几个术语根结点,双亲结点,兄弟结点,叶结点层次数据模型的数据结构(续〕根结点兄弟结点

叶结点兄弟结点

叶结点叶结点R4R5R2R3R1层次数据模型数据结构实例PRO#MONEYLEADERSEC#SNAMEPHONEDEPT#DNAMELOCATIONFA#FNAMETITLECO#CNAMEPROJECTSECTIONCOURSEFACULTYDEPTT层次数据模型的数据结构(续〕表示方法实体型:用记录类型描述。每个结点表示一个记录类型。属性:用字段描述。每个记录类型可包含假设干个字段。联系:用结点之间的连线表示记录〔类〕型之间的一对多的联系实例:教员-学生数据模型〔P23〕层次数据模型的数据结构(续〕特点结点的双亲是唯一的只能直接处理一对多的实体联系每个记录类型定义一个排序字段,也称为码字段任何记录值只有按其路径查看时,才能显出它的全部意义没有一个子女记录值能够脱离双亲记录值而独立存在层次数据模型的数据结构(续〕多对多联系在层次模型中的表示用层次模型间接表示多对多联系方法将多对多联系分解成一对多联系分解方法冗余结点法虚拟结点法2.层次模型的数据操纵查询插入删除更新3.层次模型的完整性约束无相应的双亲结点值就不能插入子女结点值如果删除双亲结点值,那么相应的子女结点值也被同时删除更新操作时,应更新所有相应记录,以保证数据的一致性4.层次数据模型的存储结构邻接法按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序链接法用指引元来反映数据之间的层次联系子女-兄弟链接法P26层次序列链接法P265.层次模型的优缺点优点层次数据模型简单,对具有一对多的层次关系的部门描述自然、直观,容易理解性能优于关系模型,不低于网状模型层次数据模型提供了良好的完整性支持缺点多对多联系表示不自然对插入和删除操作的限制多查询子女结点必须通过双亲结点层次命令趋于程序化6.典型的层次数据库系统IMS数据库管理系统第一个大型商用DBMS1968年推出IBM公司研制1.2数据模型1.2.1概念模型1.2.2数据模型的组成要素1.2.3最常用的数据模型1.2.4层次模型1.2.5网状模型1.2.6关系模型1.2.5网状模型1.网状数据模型的数据结构2.网状数据模型的数据操纵3.网状数据模型的完整性约束4.网状数据模型的存储结构5.网状数据模型的优缺点6.典型的网状数据库系统1.网状数据模型的数据结构网状模型满足下面两个条件的根本层次联系的集合为网状模型。1.允许一个以上的结点无双亲;2.一个结点可以有多于一个的双亲。网状数据模型的数据结构L1L2

L3L1L2L4

R3R1R2R2R1R4R5R3网状数据模型的数据结构(续〕表示方法〔与层次数据模型相同〕实体型:用记录类型描述。每个结点表示一个记录类型。属性:用字段描述。每个记录类型可包含假设干个字段。联系:用结点之间的连线表示记录〔类〕型之间的一对多的父子联系。网状数据模型的数据结构(续〕特点只能直接处理一对多的实体联系每个记录类型定义一个排序字段,也称为码字段任何记录值只有按其路径查看时,才能显出它的全部意义网状数据模型的数据结构(续〕网状模型与层次模型的区别网状模型允许多个结点没有双亲结点网状模型允许结点有多个双亲结点网状模型允许两个结点之间有多种联系〔复合联系〕网状模型可以更直接地去描述现实世界层次模型实际上是网状模型的一个特例网状数据模型的数据结构(续〕

L1L2R3R1R2

L3L1L2L4

R2R1R4R5R3

L1L2

R2R1网状数据模型的数据结构(续〕学生宿舍学生教研室系教师网状数据模型的数据结构(续〕父母人子女树种植砍伐养育赡养网状数据模型的数据结构(续〕多对多联系在网状模型中的表示用网状模型间接表示多对多联系方法将多对多联系直接分解成一对多联系2.网状模型的数据操纵查询插入删除更新3.网状数据模型的完整性约束网状数据库系统〔如DBTG〕对数据操纵加了一些限制,提供了一定的完整性约束码双亲结点与子女结点之间是一对多联系属籍类别参加类别(自动的,手工的)移出类别(固定的,必须的,随意的)3.网状数据模型的完整性约束完整性约束条件允许插入尚未确定双亲结点值的子女结点值允许只删除双亲结点值4.网状数据模型的存储结构关键实现记录之间的联系常用方法单向链接双向链接环状链接向首链接例:P275.网状模型的优缺点优点能够更为直接地描述现实世界,如一个结点可以有多个双亲具有良好的性能,存取效率较高缺点结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握DDL、DML语言复杂,用户不容易使用6.典型的网状数据库系统DBTG系统,亦称CODASYL系统由DBTG提出的一个系统方案奠定了数据库系统的根本概念、方法和技术70年代推出实际系统CullinetSoftwareInc.公司的IDMSUnivac公司的DMS1100Honeywell公司的IDS/2HP公司的IMAGE1.2数据模型1.2.1概念模型1.2.2数据模型的组成要素1.2.3最常用的数据模型1.2.4层次模型1.2.5网状模型1.2.6关系模型1.2.6关系模型1.关系数据模型的数据结构2.关系数据模型的操纵3.关系数据模型的完整性约束4.关系数据模型的存储结构5.关系数据模型的优缺点6.典型的关系数据库系统

关系模型最重要的一种数据模型。也是目前主要采用的数据模型1970年由美国IBM公司SanJose研究室的研究员提出本课程的重点关系数据模型的数据结构在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。学生登记表学

号姓

名年

令性

别系

名年

级95004王小明19女社会学9595006黄大鹏20男商品学9595008张文斌18女法律学95………………关系模型的根本概念关系〔Relation〕一个关系对应通常说的一张表。元组〔Tuple〕表中的一行即为一个元组。属性〔Attribute〕表中的一列即为一个属性,给每一个属性起一个名称即属性名。关系模型的根本概念主键〔Key〕表中的某个属性组,它可以唯一确定一个元组。域〔Domain〕属性的取值范围。分量元组中的一个属性值。关系模式对关系的描述关系名〔属性1,属性2,…,属性n〕学生〔学号,姓名,年龄,性别,系,年级〕关系数据模型的数据结构(续〕在关系模型中,实体以及实体间的联系都是用关系来表示。例如学生、课程、学生与课程之间的多对多联系在关系模型中可以如下表示:学生〔学号,姓名,年龄,性别,系号,年级〕课程〔课程号,课程名,授课教师,学分〕选修〔学号,课程号,成绩〕关系数据模型的数据结构(续〕关系必须是标准化的,满足一定的标准条件最根本的标准条件:关系的每一个分量必须是一个不可分的数据项。工

资扣

除职

工号姓名职称基

本工

龄职

务房

租水

电实发86051陈

平讲

师1059.515612115.5...........................2.关系模型的数据操纵查询、插入、删除、更新数据操作是集合操作,操作对象和操作结果都是关系,即假设干元组的集合存取路径对用户隐蔽,用户只要指出“干什么〞,不必详细说明“怎么干〞3.关系模型的完整性约束实体完整性参照完整性用户定义的完整性4.关系数据模型的存储结构表以文件形式存储有的DBMS一个表对应一个操作系统文件有的DBMS自己设计文件结构5.关系模型的优缺点优点建立在严格的数学概念的根底上概念单一,数据结构简单、清晰,用户易懂易用实体和各类联系都用关系来表示。对数据的检索结果也是关系。关系模型的存取路径对用户透明具有更高的数据独立性,更好的平安保密性简化了程序员的工作和数据库开发建立的工作缺点存取路径对用户透明导致查询效率往往不如非关系数据模型6.典型的关系数据库系统ORACLESYBASEINFORMIXDB/2SQLSERVERCOBASEPBASEEasyBaseDM/2OpenBase1.3数据库系统结构数据库系统内部的模式结构从数据库管理系统角度看外模式模式内模式数据库系统外部的体系结构从数据库最终用户角度看单用户结构主从式结构分布式结构客户/效劳器结构浏览器/应用效劳器/数据库效劳器结构1.3.1数据库系统的模式结构“型〞和“值〞的概念型〔Type〕对某一类数据的结构和属性的说明值〔Value〕是型的一个具体赋值例如:学生记录记录型:〔学号,姓名,性别,系别,年龄,籍贯〕该记录型的一个记录值:〔900201,李明,男,计算机,22,江苏〕数据库系统的三级模式结构

应用A应用B应用C应用D应用E外模式1外模式2外模式3外模式/模式映象模式模式/内模式映象内模式数据库DB数据库系统模式的概念模式〔Schema〕数据库中全体数据逻辑结构和特征的描述是型的描述反映的是数据的结构及其联系模式是相对稳定的模式的一个实例〔Instance〕模式的一个具体值反映数据库某一时刻的状态同一个模式可以有很多实例实例随数据库中的数据的更新而变动1.模式〔Schema〕模式〔也称逻辑模式〕数据库中全体数据的逻辑结构和特征的描述所有用户的公共数据视图,综合了所有用户的需求一个数据库只有一个模式模式的地位:是数据库系统模式结构的中间层与数据的物理存储细节和硬件环境无关与具体的应用程序、开发工具及高级程序设计语言无关模式的定义数据的逻辑结构〔数据项的名字、类型、取值范围等〕数据之间的联系数据有关的平安性、完整性要求2.外模式〔ExternalSchema〕外模式〔也称子模式或用户模式〕数据库用户〔包括应用程序员和最终用户〕使用的局部数据的逻辑结构和特征的描述数据库用户的数据视图,是与某一应用有关的数据的逻辑表示外模式〔续〕外模式的地位:介于模式与应用之间模式与外模式的关系:一对多外模式通常是模式的子集一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同外模式与应用的关系:一对多同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。外模式的用途保证数据库平安性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据3.内模式〔InternalSchema〕内模式〔也称存储模式〕是数据物理结构和存储方式的描述是数据在数据库内部的表示方式记录的存储方式〔顺序存储,按照B树结构存储,按hash方法存储〕索引的组织方式数据是否压缩存储数据是否加密数据存储记录结构的规定一个数据库只有一个内模式1.3.1数据库系统的模式结构数据库系统模式的概念数据库系统的三级模式结构数据库的二级映象功能与数据独立性数据库系统的三级模式结构应用A应用B应用C应用D应用E外模式1外模式2外模式3外模式/模式映象模式模式/内模式映象内模式数据库DB1.外模式/模式映象定义外模式与模式之间的对应关系每一个外模式都对应一个外模式/模式映象映象定义通常包含在各自外模式的描述中外模式/模式映象的用途保证数据的逻辑独立性当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。2.模式/内模式映象模式/内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系。例如,说明逻辑记录和字段在内部是如何表示的数据库中模式/内模式映象是唯一的该映象定义通常包含在模式描述中模式/内模式映象的用途保证数据的物理独立性当数据库的存储结构改变了〔例如选用了另一种存储结构〕,数据库管理员修改模式/内模式映象,使模式保持不变应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。1.3.2数据库系统外部的体系结构单用户结构主从式结构分布式结构客户/效劳器结构浏览器/应用效劳器/数据库效劳器结构1.单用户数据库系统整个数据库系统(应用程序、DBMS、数据)装在一台计算机上,为一个用户独占,不同机器之间不能共享数据。早期的最简单的数据库系统2.主从式结构的数据库系统一个主机带多个终端的多用户结构数据库系统,包括应用程序、DBMS、数据,都集中存放在主机上,所有处理任务都由主机来完成各个用户通过主机的终端并发地存取数据库,共享数据资源主从式结构的数据库系统主机终端主从式结构的数据库系统(续〕优点易于管理、控制与维护。缺点当终端用户数目增加到一定程度后,主机的任务会过分繁重,成为瓶颈,从而使系统性能下降。系统的可靠性依赖主机,当主机出现故障时,整个系统都不能使用。3.分布式结构的数据库系统数据库中的数据在逻辑上是一个整体,但物理地分布在计算机网络的不同结点上。网络中的每个结点都可以独立处理本地数据库中的数据,执行局部应用同时也可以同时存取和处理多个异地数据库中的数据,执行全局应用优点适应了地理上分散的公司、团体和组织对于数据库应用的需求。缺点数据的分布存放给数据的处理、管理与维护带来困难。当用户需要经常访问远程数据时,系统效率会明显地受到网络传输的制约。4.客户/效劳器结构的数据库系统把DBMS功能和应用分开网络中某个〔些〕结点上的计算机专门用于执行DBMS功能,称为数据库效劳器,简称效劳器其他结点上的计算机安装DBMS的外围应用开发工具,用户的应用系统,称为客户机客户/效劳器数据库系统的种类集中的效劳器结构一台数据库效劳器,多台客户机分布的效劳器结构在网络中有多台数据库效劳器分布的效劳器结构是客户/效劳器与分布式数据库的结合客户/效劳器结构的优点客户端的用户请求被传送到数据库效劳器,数据库效劳器进行处理后,只将结果返回给用户,从而显著减少了数据传输量数据库更加开放客户与效劳器一般都能在多种不同的硬件和软件平台上运行可以使用不同厂商的数据库应用开发工具客户/效劳器结构的缺点“胖客户〞问题:系统安装复杂,工作量大。应用维护困难,难于保密,造成平安性差。相同的应用程序要重复安装在每一台客户机上,从系统总体来看,大大浪费了系统资源。系统规模到达数百数千台客户机,它们的硬件配置、操作系统又常常不同,要为每一个客户机安装应用程序和相应的工具模块,其安装维护代价便不可接受了。浏览器/应用效劳器/数据库效劳器结构客户端:浏览器软件、用户界面浏览器的界面统一,广阔用户容易掌握大大减少了培训时间与费用。效劳器端分为两局部:Web效劳器、应用效劳器数据库效劳器等大大减少了系统开发和维护代价能够支持数万甚至更多的用户智能卡移动通信计算机外设机顶盒零售设备印刷机复印机互联网服务器电话交换设备嵌入式数据管理系统的结构1.4数据库系统的组成数据库数据库管理系统〔及其开发工具〕应用系统数据库管理员〔用户〕一、硬件平台及数据库数据库系统对硬件资源的要求(1)足够大的内存操作系统DBMS的核心模块数据缓冲区应用程序(2)足够大的外存磁盘操作系统DBMS应用程序数据库及其备份光盘、磁带、软盘数据备份(3)较高的通道能力,提高数据传送率二、软件DBMS操作系统与数据库接口的高级语言及其编译系统以DBMS为核心的应用开发工具为特定应用环境开发的数据库应用系统三、人员数据库管理员系统分析员数据库设计人员应用程序员(最终用户)1.数据库管理员(DBA)决定数据库中的信息内容和结构决定数据库的存储结构和存取策略定义数据的平安性要求和完整性约束条件监控数据库的使用和运行周期性转储数据库数据文件日志文件系统故障恢复介质故障恢复监视审计文件数据库的改进和重组性能监控和调优数据重组数据库重构2.系统分析员负责应用系统的需求分析和标准说明与用户及DBA协商,确定系统的硬软件配置参与数据库系统的概要设计3.数据库设计人员参加用户需求调查和系统分析确定数据库中的数据设计数据库各级模式4.应用程序员设计和编写应用系统的程序模块进行调试和安装5.用户偶然用户企业或组织机构的高中级管理人员简单用户银行的职员、机票预定人员、旅馆总台效劳员复杂用户工程师、科学家、经济学家、科技工作者等直接使用数据库语言访问数据库,甚至能够基于数据库管理系统的API编制自己的应用程序小结数据库系统概述数据库的根本概念数据管理的开展过程数据模型数据模型的三要素概念模型,E-R模型三种主要数据模型数据库系统的结构数据库系统三级模式结构数据库系统的体系结构数据库系统的组成第二章关系数据库2.1关系数据结构及形式化定义2.2关系操作2.3关系的完整性2.4关系代数2.5关系演算2.6小结关系数据库简介系统而严格地提出关系模型的是美国IBM公司的E.F.Codd1970年提出关系数据模型E.F.Codd,“ARelationalModelofDataforLargeSharedDataBanks〞,?CommunicationoftheACM?,1970之后,提出了关系代数和关系演算的概念1972年提出了关系的第一、第二、第三范式1974年提出了关系的BC范式80年代后,关系数据库系统成为最重要、最流行的数据库系统关系数据库简介典型实验系统SystemRUniversityINGRES典型商用系统ORACLESYBASEINFORMIXDB2INGRES2.1关系数据结构及形式化定义关系数据库系统是支持关系模型的数据库系统关系模型的组成关系数据结构关系操作集合关系完整性约束1.关系数据结构单一的数据结构关系现实世界的实体以及实体间的各种联系均用关系来表示数据的逻辑结构二维表从用户角度,关系模型中数据的逻辑结构是一张二维表。2.关系操作集合1)常用的关系操作2)关系操作的特点3)关系数据语言的种类4)关系数据语言的特点关系操作集合(续〕1)常用的关系操作查询选择、投影、连接、除、并、交、差数据更新插入、删除、修改查询的表达能力是其中最主要的局部关系操作集合〔续〕2)关系操作的特点集合操作方式,即操作的对象和结果都是集合。非关系数据模型的数据操作方式:一次一记录文件系统的数据操作方式关系操作集合〔续〕3)关系数据语言的种类关系代数语言用对关系的运算来表达查询要求典型代表:ISBL关系操作集合〔续〕关系数据语言的种类〔续〕关系演算语言:用谓词来表达查询要求元组关系演算语言谓词变元的根本对象是元组变量典型代表:APLHA,QUEL域关系演算语言谓词变元的根本对象是域变量典型代表:QBE具有关系代数和关系演算双重特点的语言典型代表:SQL关系操作集合〔续〕4)关系数据语言的特点关系语言是一种高度非过程化的语言存取路径的选择由DBMS的优化机制来完成用户不必用循环结构就可以完成数据操作能够嵌入高级语言中使用关系代数、元组关系演算和域关系演算三种语言在表达能力上完全等价3.关系的三类完整性约束实体完整性通常由关系系统自动支持参照完整性早期系统不支持,目前大型系统能自动支持用户定义的完整性反映应用领域需要遵循的约束条件,表达了具体领域中的语义约束用户定义后由系统支持2.2关系数据结构关系模型建立在集合代数的根底上关系数据结构的根本概念关系关系模式关系数据库2.2.1关系⒈域〔Domain〕2.笛卡尔积〔CartesianProduct〕3.关系〔Relation〕⒈域〔Domain〕域是一组具有相同数据类型的值的集合。例:整数实数介于某个取值范围的整数长度指定长度的字符串集合{‘男’,‘女’}介于某个取值范围的日期2.笛卡尔积〔CartesianProduct〕1)笛卡尔积给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={〔d1,d2,…,dn〕|diDi,i=1,2,…,n}所有域的所有取值的一个组合不能重复笛卡尔积〔续)例给出三个域:D1=SUPERVISOR={张清玫,刘逸}D2=SPECIALITY={计算机专业,信息专业}D3=POSTGRADUATE={李勇,刘晨,王敏}那么D1,D2,D3的笛卡尔积为:D1×D2×D3={(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),(张清玫,计算机专业,王敏),(张清玫,信息专业,李勇),(张清玫,信息专业,刘晨),(张清玫,信息专业,王敏),(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),(刘逸,信息专业,刘晨),(刘逸,信息专业,王敏)}笛卡尔积〔续)2)元组〔Tuple〕笛卡尔积中每一个元素〔d1,d2,…,dn〕叫作一个n元组〔n-tuple〕或简称元组。

3)分量〔Component〕笛卡尔积元素〔d1,d2,…,dn〕中的每一个值di叫作一个分量。

笛卡尔积〔续)4)基数〔Cardinalnumber〕假设Di〔i=1,2,…,n〕为有限集,其基数为mi〔i=1,2,…,n〕,那么D1×D2×…×Dn的基数M为:在上例中,基数:2×2×3=12,即D1×D2×D3共有2×2×3=12个元组笛卡尔积〔续)5)笛卡尔积的表示方法笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。在上例中,12个元组可列成一张二维表

表2.1D1,D2,D3的笛卡尔积SUPERVISORSPECIALITYPOSTGRADUATE张清玫计算机专业李勇张清玫计算机专业刘晨张清玫计算机专业王敏张清玫信息专业李勇张清玫信息专业刘晨张清玫信息专业王敏刘逸计算机专业李勇刘逸计算机专业刘晨刘逸计算机专业王敏刘逸信息专业李勇刘逸信息专业刘晨刘逸信息专业王敏3.关系〔Relation〕1)关系D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为R〔D1,D2,…,Dn〕R:关系名n:关系的目或度〔Degree〕关系〔续〕注意:关系是笛卡尔积的有限子集。无限关系在数据库系统中是无意义的。由于笛卡尔积不满足交换律,即(d1,d2,…,dn)≠(d2,d1,…,dn)但关系满足交换律,即(d1,d2,…,di,dj,…,dn〕=〔d1,d2,…,dj,di,…,dn〕〔i,j=1,2,…,n〕解决方法:为关系的每个列附加一个属性名以取消关系元组的有序性关系〔续〕例在表2.1的笛卡尔积中取出有实际意义的元组来构造关系关系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)关系名,属性名假设:导师与专业:1:1,导师与研究生:1:n于是:SAP关系可以包含三个元组{(张清玫,信息专业,李勇),

(张清玫,信息专业,刘晨),(刘逸,信息专业,王敏)}

关系〔续〕2)元组关系中的每个元素是关系中的元组,通常用t表示。3)单元关系与二元关系当n=1时,称该关系为单元关系〔Unaryrelation〕。当n=2时,称该关系为二元关系〔Binaryrelation〕。关系〔续〕4)关系的表示关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。表2.2

SAP关系SUPERVISORSPECIALITYPOSTGRADUATE张清玫信息专业李勇张清玫信息专业刘晨刘逸信息专业王敏关系〔续〕5)属性关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性〔Attribute〕。n目关系必有n个属性。关系〔续〕6)码候选码〔Candidatekey〕假设关系中的某一属性组的值能唯一地标识一个元组,那么称该属性组为候选码在最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码〔All-key〕关系〔续〕码(续)主码假设一个关系有多个候选码,那么选定其中一个为主码〔Primarykey〕主码的诸属性称为主属性〔Primeattribute〕。不包含在任何侯选码中的属性称为非码属性〔Non-keyattribute〕关系〔续〕7)三类关系根本关系〔根本表或基表〕实际存在的表,是实际存储数据的逻辑表示查询表查询结果对应的表视图表由根本表或其他视图表导出的表,是虚表,不对应实际存储的数据8)根本关系的性质①列是同质的〔Homogeneous〕每一列中的分量是同一类型的数据,来自同一个域②不同的列可出自同一个域其中的每一列称为一个属性不同的属性要给予不同的属性名根本关系的性质(续)上例中也可以只给出两个域:人〔PERSON〕=张清玫,刘逸,李勇,刘晨,王敏专业〔SPECIALITY〕=计算机专业,信息专业SAP关系的导师属性和研究生属性都从PERSON域中取值为了防止混淆,必须给这两个属性取不同的属性名,而不能直接使用域名。例如定义:导师属性名为SUPERVISOR-PERSON〔或SUPERVISOR〕研究生属性名为POSTGRADUATE-PERSON〔或POSTGRADUATE〕根本关系的性质(续)③列的顺序无所谓列的次序可以任意交换遵循这一性质的数据库产品(如ORACLE),增加新属性时,永远是插至最后一列但也有许多关系数据库产品没有遵循这一性质,例如FoxPro仍然区分了属性顺序根本关系的性质(续)④任意两个元组不能完全相同由笛卡尔积的性质决定但许多关系数据库产品没有遵循这一性质。例如:Oracle,FoxPro等都允许关系表中存在两个完全相同的元组,除非用户特别定义了相应的约束条件。根本关系的性质(续)⑤行的顺序无所谓行的次序可以任意交换遵循这一性质的数据库产品(如ORACLE),插入一个元组时永远插至最后一行但也有许多关系数据库产品没有遵循这一性质,例如FoxPro仍然区分了元组的顺序根本关系的性质(续)⑥分量必须取原子值每一个分量都必须是不可分的数据项。这是标准条件中最根本的一条表2.3

非规范化关系POSTGRADUATESUPERVISORSPECIALITYPG1PG2张清玫信息专业李勇刘晨刘逸信息专业王敏2.2.2关系模式1.什么是关系模式2.定义关系模式3.关系模式与关系1.什么是关系模式关系模式〔RelationSchema〕是型关系是值关系模式是对关系的描述元组集合的结构属性构成属性来自的域属性与域之间的映象关系元组语义以及完整性约束条件属性间的数据依赖关系集合2.定义关系模式关系模式可以形式化地表示为: R〔U,D,dom,F〕 R关系名 U组成该关系的属性名集合 D属性组U中属性所来自的域 dom属性向域的映象集合 F属性间的数据依赖关系集合定义关系模式(续)例:导师和研究生出自同一个域——人,取不同的属性名,并在模式中定义属性向域的映象,即说明它们分别出自哪个域:dom〔SUPERVISOR-PERSON〕=dom〔POSTGRADUATE-PERSON〕=PERSON定义关系模式(续)关系模式通常可以简记为

R(U)或

R(A1,A2,…,An)

R关系名A1,A2,…,An属性名注:域名及属性向域的映象常常直接说明为属性的类型、长度3.关系模式与关系关系模式对关系的描述静态的、稳定的关系关系模式在某一时刻的状态或内容动态的、随时间不断变化的关系模式和关系往往统称为关系通过上下文加以区别2.2.3关系数据库1.关系数据库2.关系数据库的型与值1.关系数据库在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。2.关系数据库的型与值关系数据库也有型和值之分关系数据库的型称为关系数据库模式,是对关系数据库的描述假设干域的定义在这些域上定义的假设干关系模式关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常简称为关系数据库2.3关系的完整性关系模型的完整性规那么是对关系的某种约束条件。关系模型中三类完整性约束:实体完整性参照完整性用户定义的完整性实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。2.3.1实体完整性实体完整性规那么〔EntityIntegrity〕假设属性A是根本关系R的主属性,那么属性A不能取空值例SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)POSTGRADUATE属性为主码〔假设研究生不会重名〕,那么其不能取空值实体完整性(续)关系模型必须遵守实体完整性规那么的原因(1)实体完整性规那么是针对根本关系而言的。一个根本表通常对应现实世界的一个实体集或多对多联系。(2)现实世界中的实体和实体间的联系都是可区分的,即它们具有某种唯一性标识。(3)相应地,关系模型中以主码作为唯一性标识。(4)主码中的属性即主属性不能取空值。空值就是“不知道〞或“无意义〞的值。主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第〔2〕点相矛盾,因此这个规那么称为实体完整性。实体完整性(续)注意:实体完整性规那么规定根本关系的所有主属性都不能取空值例选修〔学号,课程号,成绩〕“学号、课程号〞为主码,那么两个属性都不能取空值。2.3.2参照完整性1.关系间的引用2.外码3.参照完整性规那么1.关系间的引用在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用。例1学生实体、专业实体以及专业与学生间的一对多联系学生〔学号,姓名,性别,专业号,年龄〕专业〔专业号,专业名〕

学号姓名性别专业号年龄801张三女0119802李四男0120803王五男0120804赵六女0220805钱七男0219学生(学号,姓名,性别,专业号,年龄)专业号专业名01信息02数学03计算机专业(专业号,专业名)关系间的引用(续)例2学生、课程、学生与课程之间的多对多联系学生〔学号,姓名,性别,专业号,年龄〕课程〔课程号,课程名,学分〕选修〔学号,课程号,成绩〕

课程号课程名学分01数据库402数据结构403编译404PASCAL2学号姓名性别专业号年龄801张三女0119802李四男0120803王五男0120804赵六女0220805钱七男0219学生学生选课课程学号课程号成绩801049280103788010285802038280204908030488关系间的引用(续)例3学生实体及其内部的领导联系(一对多)学生〔学号,姓名,性别,专业号,年龄,班长〕学号姓名性别专业号年龄班长801张三女0119802802李四男0120803王五男0120802804赵六女0220805805钱七男02192.外码〔ForeignKey〕设F是根本关系R的一个或一组属性,但不是关系R的码。如果F与根本关系S的主码Ks相对应,那么称F是根本关系R的外码根本关系R称为参照关系〔ReferencingRelation〕根本关系S称为被参照关系〔ReferencedRelation〕或目标关系〔TargetRelation〕。外码(续)说明关系R和S不一定是不同的关系目标关系S的主码Ks和参照关系的外码F必须定义在同一个〔或一组〕域上外码并不一定要与相应的主码同名当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别3.参照完整性规那么假设属性〔或属性组〕F是根本关系R的外码它与根本关系S的主码Ks相对应〔根本关系R和S不一定是不同的关系〕,那么对于R中每个元组在F上的值必须为:或者取空值〔F的每个属性值均为空值〕或者等于S中某个元组的主码值。参照完整性规那么(续)学生关系中每个元组的“专业号〞属性只取下面两类值:〔1〕空值,表示尚未给该学生分配专业〔2〕非空值,这时该值必须是专业关系中某个元组的“专业号〞值,表示该学生不可能分配到一个不存在的专业中参照完整性规那么(续)选修〔学号,课程号,成绩〕“学号〞和“课程号〞是选修关系中的主属性按照实体完整性和参照完整性规那么,它们只能取相应被参照关系中已经存在的主码值参照完整性规那么(续)学生〔学号,姓名,性别,专业号,年龄,班长〕“班长〞属性值可以取两类值:〔1〕空值,表示该学生所在班级尚未选出班长,或该学生本人即是班长;〔2〕非空值,这时该值必须是本关系中某个元组的学号值2.3.3用户定义的完整性用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。用户定义的完整性(续)例: 课程(课程号,课程名,学分)“课程名〞属性必须取唯一值非主属性“课程名〞也不能取空值“学分〞属性只能取值{1,2,3,4}2.4关系代数

概述

传统的集合运算专门的关系运算概述1.关系代数2.运算的三要素3.关系代数运算的三个要素4.关系代数运算的分类5.表示记号概述1.关系代数 一种抽象的查询语言 用对关系的运算来表达查询概述(续)2.关系代数运算的三个要素运算对象:关系运算结果:关系运算符:四类概述(续)集合运算符将关系看成元组的集合运算是从关系的“水平〞方向即行的角度来进行并、差、交、广义笛卡尔积专门的关系运算符不仅涉及行而且涉及列选择、投影、连接、除算术比较符辅助专门的关系运算符进行操作逻辑运算符辅助专门的关系运算符进行操作大于大于等于小于小于等于等于不等于>≥<≤=≠比较运算符并差交广义笛卡尔积∪-∩×集合运算符含义运算符含义运算符表2.4关系代数运算符

概述(续)非与或

∧∨逻辑运算符选择投影连接除σπ

÷专门的关系运算符含义运算符含义运算符表2.4关系代数运算符〔续〕概述(续)概述(续)5.表示记号〔1〕R,tR,t[Ai]设关系模式为R(A1,A2,…,An)它的一个关系设为R。tR表示t是R的一个元组t[Ai]那么表示元组t中相应于属性Ai的一个分量概述(续)〔2〕A,t[A],A假设A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一局部,那么A称为属性列或域列。t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元组t在属性列A上诸分量的集合。A那么表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余的属性组。概述(续)〔3〕trtsR为n目关系,S为m目关系。trR,tsS,trts称为元组的连接。它是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。概述(续)4〕象集Zx给定一个关系R〔X,Z〕,X和Z为属性组。当t[X]=x时,x在R中的象集〔ImagesSet〕为: Zx={t[Z]|tR,t[X]=x} 它表示R中属性组X上值为x的诸元组在Z上分量的集合。2.4.1传统的集合运算并差交广义笛卡尔积1.并〔Union〕R和S具有相同的目n〔即两个关系都有n个属性〕相应的属性取自同一个域R∪S仍为n目关系,由属于R或属于S的元组组成R∪S={t|tR∨tS}对应SQL语言中的UNION并(续)c1b2a2c2b2a1c1b1a1CBAc2b3a1c1b2a2c2b2a1c1b1a1CBAc1b2a2c2b3a1c2b2a1CBARSR∪S

2.差〔Difference〕R和S具有相同的目n相应的属性取自同一个域R-S

仍为n目关系,由属于R而不属于S的所有元组组成

R-S={

温馨提示

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

评论

0/150

提交评论