数据库原理与应用 课件 孟凡荣 第1-4章 绪论、关系数据库-关系规范化理论_第1页
数据库原理与应用 课件 孟凡荣 第1-4章 绪论、关系数据库-关系规范化理论_第2页
数据库原理与应用 课件 孟凡荣 第1-4章 绪论、关系数据库-关系规范化理论_第3页
数据库原理与应用 课件 孟凡荣 第1-4章 绪论、关系数据库-关系规范化理论_第4页
数据库原理与应用 课件 孟凡荣 第1-4章 绪论、关系数据库-关系规范化理论_第5页
已阅读5页,还剩715页未读 继续免费阅读

下载本文档

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

文档简介

数据库原理2在讲授课程内容之前,首先介绍一下数据库技术的地位,使得大家了解学习数据库原理的目的、作用和重要性。其次介绍一下课程教学大纲,使得大家对课程内容和课程要求有所了解,明确后续学习的目标。在计算机应用中的地位在计算机专业课程中的地位数据库技术的地位3在计算机应用中的地位

数据库技术代表数据处理的最高水平数据处理科学计算自动控制辅助设计人工智能4在计算机专业课程中的地位程序设计数据结构操作系统数据库原理软件工程人工智能离散数学大型数据库分布数据库网络数据库数据库应用数据挖掘大数据5课程教学大纲课程的性质、目的及任务本课程的基本要求学时分配6课程的性质、目的及任务本课程属于专业基础必修课。系统讲授数据库基础知识、数据库系统原理与技术,使学生熟悉并掌握数据库系统的原理、基本概念和数据库设计理论和方法,具备开发和应用数据库软件的能力。71.了解数据库系统的产生、发展和基本特点;2.掌握基本概念;掌握数据库模型的基本要素;掌握数据库系统的体系结构3.掌握关系数据库方法;4.了解关系系统的定义和分类及查询优化的基本原理。5.掌握标准SQL语言。6.掌握关系数据理论。7.掌握数据库设计理论和方法。8.掌握数据库完整性、安全性;9.熟悉并发控制和数据库恢复技术。10.了解数据库技术的新发展。本课程的基本要求8基础产生与发展基本概念体系结构DB设计安全性完整性恢复技术并发控制设计系统DB理论关系数据库标准SQL语言规范化理论9学时分配讲课:48学时基本概念DB、DBMSDBS、DMDBS体系结构关系代数标准SQL语句规范化理论数据库设计安全性完整性恢复技术并发控制10学时6+10学时8学时6学时8学时10主要参考书1.孟凡荣数据库原理与应用(MySQL版)清华大学出版社20192.王珊萨师煊数据库系统概论(第5版)高等教育出版社201411第1章绪论数据库的基本概念数据库系统的产生与发展数据模型数据库系统结构数据库管理系统数据库应用系统开发概述 12数据库数据库管理系统数据库系统1.1数据库的基本概念数据库应用系统13(1)数据库DB–DataBase

在计算机的存储设备上合理存放、相关联、有结构的数据集合。数据库14数据库管理系统是位于用户与操作系统之间的一层数据管理软件。它主要功能是建立和维护数据库,接受和完成用户访问数据库的各种请求。(2)数据库管理系统DBMS——

DatabaseManagementSystem15系统控制程序授权检查程序并发控制程序数据存取控制程序数据存储管理程序完整性控制程序通信控制程序终端查询语言解释程序DB控制语言解释程序DML处理程序DML翻译程序维护公用程序定义公用程序转储、编辑、打印公用程序工作日志公用程序信息格式维护公用程序统计分析公用程序DB恢复公用程序DB重构公用程序装入程序信息格式定义公用程序保密定义公用程序子模式定义公用程序模式定义公用程序系统运行控制程序公用程序语言翻译处理程序数据库管理系统一个典型DBMS程序模块组成图16(3)数据库系统(DBS——DatabaseSystem)数据库系统:是指在计算机系统中引进数据库和数据库管理系统后的组成。组成:一般由硬件、软件、数据库、用户四部分组成。用户包括:管理、开发人员和用户。17数据库系统及其应用程序的组成。即在数据库系统环境下建立起来为某种应用服务的软、硬件的集合。(4)数据库应用系统(DatabaseApplicationSystem,简记DBAS)18应用程序/用户DBMSOS硬件DBDBSDBASDB、DBMS、DBS、DBAS关系19数据、信息、数据管理与数据处理数据管理技术的产生与发展数据库系统的特点1.2数据库系统的产生与发展20

1.2.1数据、信息、数据管理与数据处理数据管理:是指对数据的分类、组织、编码、存储、查询和维护等活动,是数据处理的中心环节。数据:用以载荷信息的各种符号信息:数据有意义的表现。数据处理:是指对数据进行收集、组织、存储、加工、抽取和传播等一系列活动的总和。其目的是从大量的、原始数据中抽取、推导出对人们有价值的信息。21应用程序数据(1)人工管理阶段50年代中期以前应用程序管理数据数据不共享数据不具有独立性数据不保存1.2.2数据管理技术的发展22(2)文件系统阶段50年代后期至60年代中期应用程序1应用程序2应用程序n文件管理系统文件1文件2文件n1.2.2数据管理技术的发展数据可以长期保存由文件系统管理数据数据共享性差冗余度大数据独立性差23(3)数据库系统阶段60年代末后期以来应用程序1应用程序2应用程序n数据库管理系统(DBMS)数据库1.2.2数据管理技术的发展24三个里程碑IMS系统InformationManagementSystemDBTG系统DataBaseTaskGroup关系数据库系统25数据库系统的三个发展阶段第二代数据库系统

20世纪80年代以关系数据库为代表的。新一代数据库系统

20世纪80年代末,90年代初以来热点课题第一代数据库系统20世纪70年代以网状型数据库和层次型数据库为代表的。261.2.3数据库系统的特点

采用一定的数据模型实现数据结构化数据的冗余度小实现数据共享避免了数据的不一致性较高的数据独立性数据由DBMS统一管理和控制安全性完整性并发控制数据库恢复271.3数据模型数据模型:现实世界数据特征的模拟和抽象。模型:现实世界特征的模拟和抽象。281.3.1数据模型的几个重要问题信息世界:概念模型数据世界(计算机世界):DBMS支持的数据模型

现实世界中客观对象的抽象过程现实世界29数据模型的要求(1)真实性(2)易理解(3)易实现(1)概念数据模型(2)逻辑数据模型(3)物理数据模型30数据模型的分类数据模型的组成要素数据结构:数据操作:数据的约束条件:是对系统静态特性的描述。是对系统动态特性的描述。一组完整性规则的集合。数据本身及数据之间的联系对数据操作所要完成的功能保证数据的正确、有效、相容31概念模型是从现实世界到数据世界的一个中间层次,是数据库设计的重要工具。

特点:具有丰富的语义表达能力和直接模拟现实世界的能力,具有直观、自然、语义丰富、易于用户理解

E-R数据模型(Entity-Relationshipdatamodel),即实体—联系数据模型。

1.3.2实体联系数据模型(概念模型)32(1)实体(Entity)实体:客观存在并可相互区别的个体。实体特性:描述实体的主要特征。实体集:具有相同特性实体的集合。实体标识符:唯一能确定实体集中某个实体的最小实体特性集。33三个世界所用术语及其对应关系现实世界信息世界计算机世界实体实体记录记录实体特性属性字段实体集实体记录集表实体标识符标识属性关键字34三个世界所用术语及其对应关系现实世界信息世界计算机世界实体实体记录记录实体特性属性字段实体集实体记录集表实体标识符标识属性关键字35属性(Attribute)一个实体可以有若干个属性不能再细分的属性称为原子属性属性有型与值的区别值域(属性值的变化范围)关键字36三个世界所用术语及其对应关系现实世界信息世界计算机世界实体实体记录记录实体特性属性字段实体集实体记录集表实体标识符标识属性关键字属性37①二元联系:只有两个实体集参与的联系⑵实体(集)间的联系1:1联系(one-to-one)学校校长实体集A实体集B11381:m联系(one-to-many)学校学生实体集A实体集B1m39

m:n联系(many-to-many)教师学生实体集A实体集Bmn40m:n各种实体联系的包含关系1:n1:141

②多元联系:参与联系的实体集的个数≥3时,称为多元联系。教师学生课程42③自反联系:它描述了同一实体集内两部分实体之间的联系。职工领导1n43(3)E—R图实体名属性名联系名①E-R图的图形符号难点:起名44②绘制E-R图的步骤第一步:通过对现实世界的分析、抽象以后,找出实体集及其属性第二步:找出实体集之间的联系第四步:绘制E-R图。第三步:找出实体集联系的属性45教学管理?46教学管理第一步首先找出相关实体集有:学生(S)教师(T)课程(C)学院(D)每个实体的属性分别为:S:学号,学生姓名,出生日期,专业,班级T:工号,教师姓名,职称,所在系C:课程号,课程名称,学时,考核方式D:学院代号,学院名称47教学管理第二步找出实体集之间的联系第三步找出实体集之间联系的属性学生(S)教师(T)课程(C)学院(D)

S与C之间有m:n联系

D与S之间有1:n联系

T与C之间有m:n联系

D与T之间有1:nS与C之间联系的结果用成绩表示。T与C之间联系以学号来表示。48教学管理第四步绘制E-R图T编号教师姓名职称所在教研室S学号学生姓名专业出生日期班级第四步绘制E-R图49C课程号课程名称学时考核方式D学院代号学院名称教学管理50第四步绘制E-R图学生学院课程教师管理学习授课编制成绩学号教学情况E-R图教学管理51教学管理第二步找出实体集之间的联系

S与C之间有m:n联系

D与S之间有1:n联系

T与C之间有m:n联系

D与T之间有1:n学生(S)教师(T)课程(C)学院(D)第二步找出实体集之间的联系

S与C之间有m:n联系

S与T之间有m:n联系

D与S之间有1:n联系

T与C之间有m:n联系

D与T之间有1:n52教学管理学生(S)教师(T)课程(C)学院(D)第三步找出实体集之间联系的属性S与C之间联系的结果用成绩表示。T与C之间联系学号来表示。第二步找出实体集之间的联系

S与C之间有m:n联系

D与S之间有1:n联系

T与C之间有m:n联系

D与T之间有1:n53教学管理第三步找出实体集之间联系的属性S与C之间联系的结果用成绩表示。S与T之间联系的结果用课程号表示。T与C之间联系学号来表示。学生(S)教师(T)课程(C)学院(D)第二步找出实体集之间的联系

S与C之间有m:n联系

S与T之间有m:n联系

D与S之间有1:n联系

T与C之间有m:n联系

D与T之间有1:n54第四步绘制E-R图教学情况E-R图教学管理学生学院课程教师管理学习授课编制成绩学号教学课程号55教学管理第二步找出实体集之间的联系

S、T、C之间有三元联系,且为m:n联系

D与S之间有1:n联系

D与T之间有1:n第三步找出实体集之间联系的属性S、T、C之间联系的结果用成绩表示。学生(S)教师(T)课程(C)院系(D)56第四步绘制E-R图教学情况E-R图教学管理学生学院课程教师管理编制STC成绩57教学情况?图书管理?超市管理?思考:581.3.3最常用的数据模型层次模型网状模型关系模型面向对象模型59满足如下条件:(1)有且只有一个结点没有双亲结点,称为根结点(2)根以外的其它结点有且只有一个双亲结点。⑴层次模型60R1R3R2R4R5R6兄弟结点叶结点根结点数据结构61D1计算机系Y1Z140副教授080101数据库W1层次模型的具体实例I1计算机学院X1………学院代号院长姓名系号系名系主任名课程号课程名学时姓名年龄职称系课程教师学院层次模型例子办公室号办公室名办公室主任名办公室学院名称62数据操作1)查询从根结点开始,按给定条件沿一个层次路径查找所需要的记录。①插入:指定一个插入层次路径,完成数据的插入操作。②删除:先定位到要删除的记录上,完成删除任务。③修改:先定位,然后可将修改后的记录值写回到数据库中。2)更新63ACBC7C5B6B4B1A1C8C6C4C9C2C14C364C7C5B6B4B1A1C8C6C4C9C2C14C3层次序列链接法65C7C5B6B4B1A1C8C6C4C9C2C14C3子女兄弟链接法…A2C8C6C4B6C9C2B4C14C7C5C3B1A166数据约束1)除根结点外,任何其它结点不能离开其双亲结点而孤立存在。2)不能直接表示m:n。3)对层次结构进行修改时,不允许改变原数据库中记录类型之间的双亲子女联系,这使得数据库的适应能力受到限制。67优缺点缺点:不能直接表示多对多关系操作限制多结构严密,层次命令程序化优点:简单清晰性能较高良好的完整性支持68允许一个以上的结点无双亲一个结点可以有多于一个的双亲班级学生社团s1s2网状结构一个例子⑵网状模型69学生学习课程的网状数据库模式课程课程号课程名学时数学生学号姓名年龄性别70将m:n转换为两个1:n联系s1s2学号姓名年龄性别学生课程号课程名学时数课程学号课程号成绩学习71单向链接法72优缺点优点:能直接描述现实世界存取效率高缺点:结构复杂,难掌握其DDL,DML语言复杂,不易使用73数据结构:学号姓名性别年龄学院110301张弛男19计算机110302王利男18计算机210301李红女18机电210302赵丹女17机电210303郭皖男20机电┅

关系:二维表元组:行;记录属性:列;字段码:关键字⑶关系模型二维表格74关系模式(RelationSchema)关系模式是关系中信息内容结构的描述。S(学号,姓名,性别,年龄,学院,专业,班级)R:是关系名U:是组成关系R的全部属性的集合D:是U中属性取值的值域DOM:是属性列到域的映射I:是一组完整性约束条件Σ(F):是属性集间的一组数据依赖R(U,D,DOM,I,Σ)简写:R(U)或R(U,F)75学号姓名性别年龄专业学号课号成绩课号课名学时学分学期76选择、投影、连接关系演算:以数理逻辑中的谓词演算来表达关系的操作。数据操作:查询、更新关系代数:传统的集合运算特殊的关系运算77数据约束实体完整性参照完整性用户定义完整性78缺点:效率低优缺点优点:坚实的理论基础表达能力强简单数据独立性高79将现实世界的一切事物看作对象,一个对象不仅包括描述它的数据,而且还包括对它进行操作方法的定义。我们也可以把面向对象数据模型看作是一种可扩充的数据模型,这种数据模型比传统数据模型有更丰富的语义,用户根据应用需要可以定义新的数据类型及相应的约束和操作。⑷面向对象数据模型80学生学号姓名性别学籍管理课程课程号课程名学时教学计划管理1+1+成绩学生课程学习成绩学号姓名性别课程号课程名学时81

层次模型网状模型关系模型面向对象模型开始情况1968年IBM公司IMS系统1969年CODASYL的DBTG报告1970年E·F·CODD20世纪80年代数据结构复杂(树结构)复杂(有向图)简单(二维表)复杂(嵌套、递归)数据联系通过指针通过指针通过表间的公共属性通过对象标识查询语言过程性语言过程性语言非过程性语言面向对象语言典型产品IMSIDS/Ⅱ,IMAGE/3000OracleSybase、DB2SQLServerONTOSDB盛行期间20世纪70年代20世纪70年代至80年代中期20世纪80年代至今20世纪90年代至今四种结构数据模型比较82值1.4.1数据库系统的三级模式结构模式(Schema):数据库中全体数据的逻辑结构和特征的描述。模式反映的是数据的结构及其联系。实例(Instance):模式的一个具体值。实例反映的是数据库某一时刻的状态。1.4数据库系统结构型83应用A应用B应用C应用D应用E外模式1外模式2外模式3模式内模式数据库模式/内模式外模式/模式(1)模式模式也称逻辑模式。是对数据库全局逻辑结构的描述,是数据库所有用户的公共数据视图。84(2)外模式简称子模式,也称用户模式。是用户观念下局部数据结构的逻辑描述,是用户能够看见和使用的局部数据的逻辑结构和特征的描述。应用A应用B应用C应用D应用E外模式1外模式2外模式3模式内模式数据库模式/内模式外模式/模式85(3)内模式存储模式。是对数据库中数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。应用A应用B应用C应用D应用E外模式1外模式2外模式3模式内模式数据库模式/内模式外模式/模式86这两层映象保证了数据库系统中的数据具有较高的逻辑独立性和物理独立性。1.4.2数据库的两级映像与数据独立性外模式/模式映象模式/内模式映象逻辑独立性物理独立性87用户数据库外模式概念数据库物理数据库内模式用户A1用户A2用户B外模式B外模式A内部模式模式外模式/模式映象模式/内部模式映象数据库DBMSOS数据库的分级结构与抽象层次对应图用户视图DBA视图系统程序员视图模式88应用系统/用户内模式模式外模式DBDBMSOS数据抽象级别软件系统层次用户DBA系统程序员各种人员的数据视图89数据库管理员(DBA)负责全面管理和控制数据库系统。主要职责有:1)决定数据库中的信息内容和结构2)决定数据库的存储结构和存取策略3)定义数据的安全性要求和完整性约束条件4)监控数据库的使用和运行5)负责数据库性能的改进和数据库的重组及重构工作。重组重构901.4.3用户通过DBMS访问数据库的过程应用程序/用户DB系统缓冲区DBMSDBOS外模式模式内模式用户访问数据库的过程91DBMS的工作模式数据请求数据(处理结果)低层命令数据(查询结果)

DB物理数据库DBMS操作系统(OS)用户应用程序921.5数据库管理系统1.5.1数据库管理系统的主要功能数据库定义功能数据库管理功能数据库的建立和维护功能数据组织、存储和管理功能通信功能931.5.2数据库管理系统应该满足的要求容易使用;数据处理速度快、能力强具有可发展性具有逻辑数据独立性和物理数据独立性确保数据的完整性具有良好的数据保密性和安全性兼容性好逻辑数据结构简单强有力的用户语言941.5.3数据库管理系统程序模块的组成951.5.4数据库管理系统的层次结构961.5.5常见的数据库管理系统

MicrosoftAccess

Oracle

MicrosoftSQLServer971.5.5常见的数据库管理系统

OracleDatabase,又名OracleRDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。到目前仍在数据库市场上占有主要份额。劳伦斯·埃里森和他的朋友,之前的同事BobMiner和EdOates在1977年建立了软件开发实验室咨询公司(SDL,SoftwareDevelopmentLaboratories)。SDL开发了Oracle软件的最初版本。Oracle的名称来自于埃里森在Ampex工作时参加的一个由中央情报局创建的项目的代码名称。981.5.5常见的数据库管理系统

SQLServer是一个关系数据库管理系统。它最初是由MicrosoftSybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本。Sybase则较专注于SQLServer在UNIX操作系统上的应用。SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统,该版本继承了SQLServer7.0版本的优点,同时又比它增加了许多更先进的功能。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行MicrosoftWindows98到运行MicrosoftWindows2000的大型多处理器的服务器等多种平台使用。991.5.5常见的数据库管理系统

Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统,它是微软OFFICE的一个成员。优点:简单易学使用方便100单用户结构1.6数据库应用系统开发概述101集中式结构102分布式结构:数据在逻辑上相关、物理上分布,既能执行局部应用又能执行全局应用的结构。103客户/服务器(C/S)结构:根据客户端和服务器端所完成的功能可以划分出多种方案,但目的是在给定环境下使Client和Server上负载均衡分配、减少网上的数据传输量,以获得系统的更高运行性能。104基于Web的数据库系统:主要研究有效地访问和管理Web上的信息,简称Web数据库系统。多层B/S模式结构105数据库技术研究的领域数据库管理系统软件的研制数据库设计数据库理论1061072.1

关系模型

2.2

关系代数*2.3

关系演算

2.4

查询优化

2.5

关系系统1082.1关系模型2.1.1关系数据结构关系的非形式化定义:满足一定条件的二维表。基本术语1.域:一组具有相同数据类型的值的集合。1092.笛卡尔积(CartesianProduct)给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:

D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}元组(Tuple):每一个元素(d1,d2,…,dn)分量:元素中的每一个值di若Di(i=1,2,…,n)为有限集,其基数(Cardinalnumber)为mi(i=1,2,…,n),则D1×D2×…×Dn的基数为:

n

M=∏mi

i=1

2.1关系模型110例如:D1={孙悟空,宋江,林黛玉}D2={男,女}D3={西游记,水浒传,红楼梦}D1ХD2ХD3={{孙悟空,男},{宋江,男},{林黛玉,男},{孙悟空,女},{宋江,女},{林黛玉,女}}ХD3={{孙悟空,男,西游记},{宋江,男,西游记},{林黛玉,男,西游记},{孙悟空,女,西游记},{宋江,女,西游记},{林黛玉,女,西游记},

{孙悟空,男,水浒传},{宋江,男,水浒传},{林黛玉,男,水浒传},{孙悟空,女,水浒传},{宋江,女,水浒传},{林黛玉,女,水浒传},

{孙悟空,男,红楼梦},{宋江,男,红楼梦},{林黛玉,男,红楼梦},{孙悟空,女,红楼梦},{宋江,女,红楼梦},{林黛玉,女,红楼梦}}

2.1关系模型1113.关系(Relation)的数学定义

D1×D2×…×Dn的子集叫作在域D1、D2、…、Dn上的关系,用

R(D1,D2,…,Dn)表示。R:关系的名字n:关系的目或度(Degree)。单元关系(Unaryrelation)n=1二元关系(Binaryrelation)n=22.1关系模型112

小说名

人物名

性别西游记孙悟空

男水浒传宋江

男红楼梦林黛玉

女小说人物对照表对于一个笛卡尔积只有取它的子集才有意义,这也和用户看待的二维表一样,只有满足一定条件的二维表才是研究的对象。2.1关系模型1134.码候选码(CandidateKey):在一个关系中,能惟一标识元组的属性或最小属性集称为关系的候选码。主码(PrimaryKey):若一个关系中有多个候选码,则选其中的一个为主码。包含在任何一个候选码中的属性称为主属性(PrimaryAttribute),不包含在任何候选码中的属性称为非主属性(Non-primaryAttribute)或非码属性(Non-keyAttribute)。2.1关系模型114外码(ForeignKey):设F是基本关系R的一个或一组属性,但不是R的码。Ks是基本关系S的主码。如果F与Ks相对应,则称F是R的外码。并称基本关系R为参照关系(ReferencingRelation),基本关系S为被参照关系(ReferencedRelationship)。2.1关系模型4.码115例如:学生关系和专业关系分别为:学生(学生编号,姓名,性别,年龄,专业编号,身份证号码)专业(专业编号,专业名称,专业负责人)在关系数据库中,表与表的联系就是通过公共属性实现的,这个公共属性是一个表的主码和另外一个表的外码

2.1关系模型4.码1165.关系的性质1)分量必须取原子值2)列是同质的,即每一列的分量是同一类型的数据,来自同一个域。3)表中的列称为属性,给每列起一个名称即属性名,不同属性要起不同的属性名。4)列的顺序无关5)关系中任意两行不能相同。6)行的顺序无关。2.1关系模型1172.1.2关系操作1操作对象是关系2基本操作方式

属性指定元祖选择关系合并

元组插入元组删除检索更新2.1关系模型118关系代数语言关系演算语言具有关系代数和关系演算双重特点的语言域关系数据语言元组关系数据语言ISBLAPLHAQUELQBESQL关系数据语言关系数据语言2.1关系模型1192.1.3关系完整性约束实体完整性参照完整性用户自定义完整性2.1关系模型120实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。2.1关系模型121导师编号姓名性别职称1001刘易男副教授1002张清枚男教授1003王敏女教授研究生编号姓名性别研究方向导师编号2004001李勇男网络安全10012004002刘晨女IPv610022004003张三男数据仓库10032004004李立男数据挖掘10022004005赵兵男网格安全导师研究生2.1关系模型122外码:设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码。规则:若F是基本关系R的外码,并与S的主码Ks相对应,则对于R中每个元组在F上的值必须为:取空值(F的每个属性值均为空值)等于S中某个元组的主码值参照完整性2.1关系模型参照完整性123例如:学生(学号、姓名、性别…)课程(课程号、课程名、学时…)学习(学号、课程号、成绩)思考:每个关系的主码哪个关系有外码2.1关系模型124某一具体应用所涉及的数据必须满足的语义要求。职称(助教,讲师,副教授,教授)性别(男,女)用户自定义的完整性2.1关系模型2.1

关系模型

2.2

关系代数*2.3

关系演算

2.4

查询优化

2.5

关系系统

概述传统的集合运算专门的关系运算2.2关系代数概述1.关系代数2.关系代数运算的三个要素3.关系代数运算的分类4.表示记号2.2关系代数1.关系代数用户对关系数据的操作通过关系代数表达式描述。2.关系代数运算的三个要素运算对象:关系运算结果:关系运算符:四类2.2关系代数概述集合运算符∪-∩×并差交广义笛卡尔积比较运算符>≥<≤=≠大于大于等于小于小于等于等于不等于运算符含义运算符含义表1关系代数运算符

2.2关系代数概述专门的关系运算符σπ

÷选择投影连接除逻辑运算符

∧∨非与或运算符含义运算符含义表2关系代数运算符(续)

2.2关系代数概述集合运算将关系看成元组的集合运算是从关系的“水平”方向即行的角度来进行专门的关系运算不仅涉及行而且涉及列算术比较辅助专门的关系运算符进行操作逻辑运算辅助专门的关系运算符进行操作2.2关系代数概述3.关系代数运算的分类 传统的集合运算并、差、交、广义笛卡尔积 专门的关系运算选择、投影、连接、除2.2关系代数概述4.表示记号设关系模式为R(A1,A2,…,An)R,t

R,t[Ai]它的一个关系设为R。t

R表示t是R的一个元组t[Ai]则表示元组t中相应于属性Ai的一个分量2.2关系代数概述2.2

关系代数

概述

传统的集合运算

专门的关系运算2.2.1传统的集合运算并差交广义笛卡尔积1.并(Union)R和S(相容关系)具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域R∪S

仍为n目关系,由属于R或属于S的元组组成

R∪S={t|t

R∨t

S}2.2.1传统的集合运算ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∪S

1.并(Union)2.2.1传统的集合运算R和S(相容关系)具有相同的目n相应的属性取自同一个域R-S

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

R-S={t|t

R∧t

S}2.差(Difference)2.2.1传统的集合运算ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S

2.差(Difference)2.2.1传统的集合运算R和S(相容关系)具有相同的目n相应的属性取自同一个域R∩S仍为n目关系,由既属于R又属于S的元组组成

R∩S={t|t

R∧t

S} R∩S=R

–(R-S)3.交(Intersection)2.2.1传统的集合运算ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∩S

3.交(Intersection)2.2.1传统的集合运算Rn目关系,k1个元组Sm目关系,k2个元组R×S

列:(n+m)列的元组的集合元组的前n列是关系R的一个元组后m列是关系S的一个元组行:k1×k2个元组R×S={tr

ts|tr

R∧ts

S}4.广义笛卡尔积(ExtendedCartesianProduct)2.2.1传统的集合运算ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×S

ABCa1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c14.广义笛卡尔积(ExtendedCartesianProduct)2.2.1传统的集合运算2.2

关系代数概述传统的集合运算专门的关系运算选择投影连接除2.2.2专门的关系运算1)选择又称为限制(Restriction)2)选择运算符的含义在关系R中选择满足给定条件的元组组成一个新的关系

σF(R)={t|t

R∧F(t)='真'}F:选择条件,是由比较运算符和/或逻辑运算符组合构成的表达式选择运算是单目运算,运算符为“σ”2.2.2专门的关系运算1.选择(Selection)3)选择运算是从行的角度进行的运算4)举例 设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC。σ2.2.2专门的关系运算1.选择(Selection)148学生学号姓名性别籍贯出生年份学院091501王英女河北1997计算机091502王小梅女江苏2000信电091503张小飞男江西1996计算机091504孙志鹏男海南1998计算机091505徐颖女江苏1997信电091506钱易蒙男河北2000外文………………2.2.2专门的关系运算149[例1]查询计算机全体学生情况

学院=“计算机”(学生)

6=“计算机”(学生)学号姓名性别籍贯出生年份学院091501王英女河北1997计算机091503张小飞男江西1996计算机091504孙志鹏男海南1998计算机………………2.2.2专门的关系运算150选择运算的关键问题确定操作对象是哪个关系?操作的条件是什么?如何表示?2.2.2专门的关系运算151[例2]查询90年代出生的全体学生情况

出生年份>=1990∧出生年份<=1999

(学生)学号姓名性别籍贯出生年份学院091501王英女河北1997计算机091503张小飞男江西1996计算机091504孙志鹏男海南1998计算机091505徐颖女江苏1997信电….……………2.2.2专门的关系运算152[例3]查询信电学院江苏籍全体学生情况

学院=“信电”∧籍贯=“江苏”(学生)学号姓名性别籍贯出生年份学院091502王小梅女江苏2000信电091505徐颖女江苏1997信电………………2.2.2专门的关系运算153[例4]查询江苏或者河北全体学生情况

籍贯=“江苏”∨籍贯=“河北”

(学生)学号姓名性别籍贯出生年份学院091501王英女河北1997计算机091502王小梅女江苏2000信电091505徐颖女江苏1997信电091506钱易蒙男河北2000外文………………2.2.2专门的关系运算1)投影运算符的含义从R中选择出若干属性列组成新的关系

πA(R)={t[A]|t

R} A:R中的属性列

2.2.2专门的关系运算2.投影(Projection)2)投影操作主要是从列的角度进行运算但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)π2.2.2专门的关系运算2.投影(Projection)1562.2.2专门的关系运算学生学号姓名性别籍贯出生年份学院091501王英女河北1997计算机091502王小梅女江苏2000信电091503张小飞男江西1996计算机091504孙志鹏男海南1998计算机091505徐颖女江苏1997信电091506钱易蒙男河北2000外文………………157[例5]查询所有学生的姓名和籍贯

姓名,籍贯

(学生)

2,4

(学生)姓名籍贯王英河北王小梅江苏张小飞江西孙志鹏海南徐颖江苏钱易蒙河北….…2.2.2专门的关系运算158[例6]查询学生生源来自哪些省份?

籍贯(学生)籍贯河北江苏江西海南…

4(学生)投影之后不仅取消了原关系中的某些列,而且还取消了某些元组。2.2.2专门的关系运算159[例7]查找出生年份在1998年以前(不含1998年)的学生的姓名、籍贯及其出生年份情况。

Π姓名,籍贯,出生年份(σ出生年份<1998(学生))姓名籍贯出生年份王英河北1997张小飞江西1996徐颖江苏1997………2.2.2专门的关系运算1)连接也称为θ连接2)连接运算的含义从两个关系的笛卡尔积中选取属性间满足一定条件的元组

RS={trts|tr

R∧ts

S∧tr[A]θts[B]}A和B:分别为R和S上度数相等且可比的属性组θ:比较运算符

连接运算从R和S的广义笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组。

AθB2.2.2专门的关系运算3.连接(Join)3)两类常用连接运算等值连接(equijoin)什么是等值连接θ为“=”的连接运算称为等值连接

等值连接的含义从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:RS={trts|tr

R∧ts

S∧tr[A]=ts[B]}A=B2.2.2专门的关系运算3.连接(Join)自然连接(Naturaljoin)什么是自然连接自然连接是一种特殊的等值连接两个关系中进行比较的分量必须是相同的属性组在结果中把重复的属性列去掉自然连接的含义

R和S具有相同的属性组B

R

S={trts|tr

R∧ts

S∧tr[B]=ts[B]}2.2.2专门的关系运算3.连接(Join)4)一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。

AθBRS2.2.2专门的关系运算3.连接(Join)5)举例ABCa1b15a1b26a2b38BEb13b27b310b32RS2.2.2专门的关系运算3.连接(Join)R

S

AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310

C<E2.2.2专门的关系运算3.连接(Join)

等值连接R

SR.B=S.B

AR.BCS.BEa1b15b13a1b26b27a2b38b3102.2.2专门的关系运算3.连接(Join)

自然连接R

S

ABCEa1b153a1b267a2b38102.2.2专门的关系运算3.连接(Join)ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×S

R.AR.BR.C

a1b1c1

a1b1c1a1b1c1a1b2c2

a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1S.AS.BS.C

a1b2c2a1b3c2

a2b2c1a1b2c2a1b3c2

a2b2c1a1b2c2a1b3c2

a2b2c1R×S2.2.2专门的关系运算3.连接(Join)169R.AR.BR.C

a1b1c1

a1b1c1a1b1c1a1b2c2

a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1S.AS.BS.C

a1b2c2a1b3c2

a2b2c1a1b2c2a1b3c2

a2b2c1a1b2c2a1b3c2

a2b2c1RSR.B≠S.BR.AR.BR.C

a1b1c1

a1b1c1a1b1c1a1b2c2a2b2c1S.AS.BS.C

a1b2c2a1b3c2

a2b2c1a1b3c2a1b3c2R×SR.AR.BR.CS.AS.BS.Ca1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a1b2c2a2b2c1a2b2c1RSR.B=S.BRS170关系SC和关系C的自然联接SNOCNOGRADES3C387S1C288S4C379S9C483CNOCNAMECDEPTTNAMEC2离散数学计算机汪宏伟C3高等数学通信钱红C4数据结构计算机马良C1计算机原理计算机李兵关系C关系SC第一步,计算SC×C;第二步,计算满足SC.CNO=C.CNO条件的元组;第三步,去掉重复列,操作结果为:2.2.2专门的关系运算171关系SC和关系C的自然联接SNOCNOGRADECNAMECDEPTTNAMES3C387高等数学通讯钱红S1C288离散数学计算机汪宏伟S4C379高等数学通信钱红S9C483数据结构计算机马良2.2.2专门的关系运算172自然连接和等值连接的区别①等值连接要求相等的分量,但不一定是公共属性,而自然连接要求相等的分量必须是公共属性②等值连接不做投影运算,而自然连接要把重复的属性去掉;③自然连接一定是等值连接,但等值连接不一定是自然连接。2.2.2专门的关系运算173查询选修课程号为180103的学生情况和课程号、成绩

课程号=“180103”(学生课程)学生(

课程号=“180103”

(学习))

课程号=“180103”(学生学习)学生(

课程号=“180103”

(课程))学生学习

课程号=“180103”

(课程)思考:1、找出全部课程的课程号2、找出每个学生选修的课程号3、每个学生选修的课程号是否包含全部课程的课程号?174查询选修了全部课程的学生的学号?2.2.2专门的关系运算象集Z给定一个关系R(X,Z),X和Z为属性组。当t[X]=x时,x在R中的象集(ImagesSet)为:

Zx={t[Z]|t

R,t[X]=x}

它表示R中属性组X上值为x的诸元组在Z上分量的集合。2.2.2专门的关系运算5.除(Division)ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1RA=a1的象集BCb1c2b2c3b2c12.2.2专门的关系运算5.除(Division)给定关系R(X,Y)

和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。

R÷S={tr[X]|tr

R∧πY(S)

Yx}

Yx:x在R中的象集,x=tr[X]2.2.2专门的关系运算5.除(Division)除操作是同时从行和列角度进行运算

÷RS2.2.2专门的关系运算5.除(Division)ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2RS2.2.2专门的关系运算5.除(Division)在关系R中,A可以取四个值{a1,a2,a3,a4}a1的象集为{(b1,c2),(b2,c3),(b2,c1)}

a2的象集为{(b3,c7),(b2,c3)}

a3的象集为{(b4,c6)}

a4的象集为{(b6,c6)}S在(B,C)上的投影为

{(b1,c2),(b2,c1),(b2,c3)}只有a1的象集包含了S在(B,C)属性组上的投影所以R÷S={a1}Aa1R÷S2.2.2专门的关系运算5.除(Division)181除法的代数表示方法R÷S=

x(R)—

x((

x(R)×

y(S))—R)2.2.2专门的关系运算5.除(Division)学号课程号S1C1S1C2S2C1S2C2S2C3S3C2课程号C1C2C3第一步:求

x(R)

T=Π学号(SC)

SC(R)C(S)求选修了全部课程的学生学号学号S1S2S3课程号C1C2C3第三步:求T

S

学号S1S1S1学号C1C2C3S2S2S2S3C1C2C3C1S3S3C2C3第二步:求

y(S)S=Π课程号(C)

课程名高数英语体育学号课程号S1C1S1C2S2C1S2C2S2C3S3C2学号S2SC(R)第四步:计算W=(T

S)-RC(S)求选修了全部课程的学生学号课程号C1C2C3课程名高数英语体育第六步:R÷S=T-V学号课程号S1C3S3C1S3C3第五步:求

x(W)V=Π学号(W)学号S1S3SnoSnameSsexSageSdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19IS

Student5.综合举例2.2.2专门的关系运算CourseCnoCnameCpnoCcredit1数据库542数学

23信息系统144操作系统635数据结构746数据处理

27PASCAL语言642.2.2专门的关系运算

SnoCnoGrade9500119295001285950013889500229095002380SC2.2.2专门的关系运算首先建立一个临时关系K:

然后求:πSno,Cno(SC)÷K

Cno

1

3以学生-课程数据库为例例

查询至少选修1号课程和3号课程的学生学号2.2.2专门的关系运算πSno.Cno(SC)SnoCno950011950012950013950022950023

95001象集{1,2,3} 95002象集{2,3}

πCno(K)={1,3}

于是:πSno,Cno(SC)÷K={95001}2.2.2专门的关系运算例

查询至少选修1号课程和3号课程的学生学号πSno,Cno(SC)÷πCno(σCno=‘1’∨Cno=‘3’(Course))={95001}2.2.2专门的关系运算2.2.3关系代数举例学号姓名性别籍贯出生年份学院090101王英女河北1989计算机090102王小梅女江苏1990信电090103张小飞男宜昌1990计算机090104孙志鹏男海南1991计算机090105徐颖女江苏1991信电090106钱易蒙男河北1990外文………………课程号课程名学时开课学期课程性质180101数据结构722必修180102操作系统883必修180103数据库原理564必修……………学号课程号成绩090101180101720901011801028809010118010377090102180101700901021801026509010218010370………学生学习课程(1)找出计算机学院女同学的名单Π姓名(σ学院=“计算机”∧性别=“女”(学生))(2)求选修180101号课程的学生名单Π姓名(σ课程号=“180101”(学习

学生))(3)求同时选修数据库及数学的学生名单Π姓名,课程号(学习

学生)÷Π课程号(σ课程名=“数据库”∨课程名=“数学”(课程))(4)没有选修任何课程的学生名单及所在系Π姓名,学院(学生)-Π姓名,学院(学习

学生)1912.2.3关系代数举例192与关系代数不同,关系演算是非过程化语言,它只描述所需要的信息,而不给出获得该信息的具体过程。按照谓词变元的不同,关系演算分为元组关系演算和域关系演算两种。

*2.3关系演算元组关系是以元组变量作为谓词变元的基本对象元组关系演算语言ALPHA

共有GET、PUT、HOLD、UPDATE、DELETE、DROP6条语句操作语句工作空间名(表达式):操作条件*2.3.1元组关系演算查询所有学生的数据GETW(学生)查询学生表中有哪些院系GETW(学生.学院)查询所有1980年以后出生的学生学号和籍贯GET

W(学生.学号,学生.籍贯):学生.出生年份>1980查询所有学生的数据,结果按出生年份降序排序GETW(学生)

DOWN出生年份*2.3.1元组关系演算查询所有学生的数据GETW(学生)查询学生表中有哪些院系GETW(学生.学院)查询所有1980年以后出生的学生学号和籍贯GET

W(学生.学号,学生.籍贯):学生.出生年份>1980查询所有学生的数据,结果按出生年份降序排序GETW(学生)

DOWN出生年份*2.3.1元组关系演算196域关系演算表达式的定义用域变量代替元组变量的每一个分量,域变量的变化范围是某个值域而不是一个关系域关系演算的查询表达式为:{t1,t2,…,tk|P(t1,t2,…,tk)}

其中t1,t2,…,tk代表域变量,P是域演算公式。*2.3.1域关系演算197用户输入查询查询的内部表示执行查询步骤向用户报告查询结果查询语句的句法分析查询优化处理查询

1、响应用户查询的一般过程

2.4查询优化198例:查询学号为091502的学生选修的课程名称。E1=π课程名(σ课程.学号=学习.学号∧学习.学号=‘091502’(课程×学习))E2=π课程名(σ课程.学号=学习.学号(课程×σ学号=‘091502’(学习)))E3=π课程名(课程∞σ学号=‘091502’(学习))查询效率:E3>E2>E12.4.1查询优化的必要性199关系代数表达式的等价变换规则1)连接、笛卡尔积交换律

E1×E2≡E2×E1

E1E2≡E2E1

E1E2≡E2E1FF2)连接、笛卡尔积结合律

(E1×E2)×E3≡E1×(E2×E3)

(E1E2)E3≡E1(E2E3)

(E1E2)E3≡E1

温馨提示

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

评论

0/150

提交评论