版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库系统概论AnIntroductiontoDatabaseSystem
第一章绪论第一章绪论1.1数据库系统概述1.2数据模型1.3数据库系统结构1.4数据库系统的组成1.5数据库技术的研究领域1.6小结1.1
数据库系统概述
1.1.1数据库的地位
1.1.2四个基本概念
1.1.3数据管理技术的产生与发展数据库的地位数据库技术产生于六十年代末,是数据管理的最新技术,是计算机科学的重要分支数据库系统与操作系统一样是计算机系统的基础软件,也称为系统软件、平台软件。它的出现极大地促进了计算机技术在各行各业的应用数据库技术是信息系统的核心和基础,是信息化建设的基础设施数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志以往对于软件开发人员的技术要求数据库面向对象技术PatternsModeling技术程序语言数据结构Algorithm开发人员核心技术未来对于软件开发人员的技术要求IntegrationArchitectureTestingConfiguration开发人员核心技术程序语言数据结构AlgorithmDB建模模式OO1.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_5图1.1数据库系统在计算机系统中的位置图示参看教材page_5图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.1数据库系统概述1.2数据模型1.3数据库系统结构1.4数据库系统的组成1.5数据库技术的研究领域1.6小结数据模型在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟数据模型应满足三方面要求能比较真实地模拟现实世界容易为人所理解便于在计算机上实现数据模型(续)数据模型分成两个不同的层次(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成绩E-R图(续)E-R图实例:
P19-P20
某工厂物资管理E-R图1.2.3常用数据模型非关系模型层次模型(HierarchicalModel)网状模型(NetworkModel)数据结构:以基本层次联系为基本单位
基本层次联系:两个记录以及它们之间的一对多(包括一对一)的联系常用数据模型(续)关系模型(RelationalModel)数据结构:表面向对象模型(ObjectOrientedModel)数据结构:对象2.4
关系代数
概述传统的集合运算专门的关系运算概述1.关系代数2.运算的三要素3.关系代数运算的三个要素4.关系代数运算的分类5.表示记号概述1.关系代数 一种抽象的查询语言 用对关系的运算来表达查询概述(续)2.关系代数运算的三个要素运算对象:关系运算结果:关系运算符:四类概述(续)集合运算符将关系看成元组的集合运算是从关系的“水平”方向即行的角度来进行专门的关系运算符不仅涉及行而且涉及列算术比较符辅助专门的关系运算符进行操作逻辑运算符辅助专门的关系运算符进行操作集合运算符∪-∩×并差交广义笛卡尔积比较运算符>≥<≤=≠大于大于等于小于小于等于等于不等于运算符含义运算符含义表2.4关系代数运算符
概述(续)专门的关系运算符σπ
÷选择投影连接除逻辑运算符
∧∨非与或运算符含义运算符含义表2.4关系代数运算符(续)
概述(续)概述(续)4.关系代数运算的分类 传统的集合运算并、差、交、广义笛卡尔积 专门的关系运算选择、投影、连接、除概述(续)5.表示记号
(1)R,t
R,t[Ai]
设关系模式为R(A1,A2,…,An)它的一个关系设为R。t
R表示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目关系。tr
R,ts
S,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]|t
R,t[X]=x}
它表示R中属性组X上值为x的诸元组在Z上分量的集合。2.4
关系代数
概述
传统的集合运算
专门的关系运算2.4.1传统的集合运算并差交广义笛卡尔积1.并(Union)R和S具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域R∪S
仍为n目关系,由属于R或属于S的元组组成
R∪S={t|t
R∨t
S}并(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∪S
2.差(Difference)R和S具有相同的目n相应的属性取自同一个域R-S
仍为n目关系,由属于R而不属于S的所有元组组成
R-S={t|t
R∧t
S}差(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S
3.交(Intersection)R和S具有相同的目n相应的属性取自同一个域R∩S仍为n目关系,由既属于R又属于S的元组组成
R∩S={t|t
R∧t
S} R∩S=R
–(R-S)交(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∩S
4.广义笛卡尔积(ExtendedCartesianProduct)Rn目关系,k1个元组Sm目关系,k2个元组R×S
列:(n+m)列的元组的集合元组的前n列是关系R的一个元组后m列是关系S的一个元组行:k1×k2个元组R×S={tr
ts|tr
R∧ts
S}广义笛卡尔积(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×S
ABCa1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c12.4
关系代数概述传统的集合运算专门的关系运算2.4.2专门的关系运算选择投影连接除1.选择(Selection)1)选择又称为限制(Restriction)2)选择运算符的含义在关系R中选择满足给定条件的诸元组
σF(R)={t|t
R∧F(t)='真'}F:选择条件,是一个逻辑表达式,基本形式为:
[(]
X1θY1[)][φ[(]X2θY2[)]]…θ:比较运算符(>,≥,<,≤,=或<>)X1,Y1等:属性名、常量、简单函数;属性名也可以用它的序号来代替;φ:逻辑运算符(∧或∨)[]:表示任选项…:表示上述格式可以重复下去选择(续)3)选择运算是从行的角度进行的运算4)举例 设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC。σ选择(续)学号Sno姓名Sname性别Ssex年龄Sage所在系Sdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19IS(a)
Student例1例2例4例3例9选择(续)(b)Course课程号课程名先行课学分CnoCnameCpnoCcredit1数据库542数学
23信息系统144操作系统635数据结构746数据处理
27PASCAL语言64例9选择(续)
(c)SC学号课程号成绩SnoCnoGrade9500119295001285950013889500229095002380例7例9选择(续)[例1]查询信息系(IS系)全体学生
σSdept
='IS'(Student)
或σ5='IS'(Student)结果:SnoSnameSsexSageSdept95002刘晨女19IS95004张立男19IS选择(续)[例2]查询年龄小于20岁的学生
σSage<20(Student)
或σ4<20(Student)
结果:
SnoSnameSsexSageSdept95002刘晨女19IS95003王敏女18MA95004张立男19IS
2.投影(Projection)1)投影运算符的含义从R中选择出若干属性列组成新的关系
πA(R)={t[A]|t
R} A:R中的属性列
2.投影(Projection)2)投影操作主要是从列的角度进行运算但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)π投影(续)3)举例[例3]查询学生的姓名和所在系 即求Student关系上学生姓名和所在系两个属性上的投影
πSname,Sdept(Student)
或π2,5(Student)结果:投影(续)SnameSdept李勇CS刘晨IS王敏MA张立IS投影(续)[例4]查询学生关系Student中都有哪些系
πSdept(Student)
结果:SdeptCSISMA3.连接(Join)1)连接也称为θ连接2)连接运算的含义从两个关系的笛卡尔积中选取属性间满足一定条件的元组
RS={|tr
R∧ts
S∧tr[A]θts[B]}A和B:分别为R和S上度数相等且可比的属性组θ:比较运算符
连接运算从R和S的广义笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组。
AθBtrts
连接(续)3)两类常用连接运算等值连接(equijoin)什么是等值连接θ为“=”的连接运算称为等值连接
等值连接的含义从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:
RS={|tr
R∧ts
S∧tr[A]=ts[B]}A=Btrts
连接(续)自然连接(Naturaljoin)什么是自然连接自然连接是一种特殊的等值连接两个关系中进行比较的分量必须是相同的属性组在结果中把重复的属性列去掉自然连接的含义
R和S具有相同的属性组B
R
S={|tr
R∧ts
S∧tr[B]=ts[B]}trts连接(续)4)一般的连接操作是从行的角度进行运算。 自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。
AθBRS连接(续)5)举例
[例5]ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS连接(续)R
S
AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310
C<E连接(续)
等值连接R
SR.B=S.B
AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32连接(续)
自然连接R
S
ABCEa1b153a1b267a2b3810a2b3824)象集Z
给定一个关系R(X,Z),X和Z为属性组。当t[X]=x时,x在R中的象集(ImagesSet)为:
Zx={t[Z]|t
R,t[X]=x}
它表示R中属性组X上值为x的诸元组在Z上分量的集合。4)象集ZABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2R÷SAa1RS4.除(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)除操作是同时从行和列角度进行运算
3)举例
[例6](p62)÷RS除(续)ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2R÷SAa1RS分析:在关系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}5.综合举例以学生-课程数据库为例(P.59)[例7]查询至少选修1号课程和3号课程的学生号码
首先建立一个临时关系K:
然后求:πSno.Cno(SC)÷K
Cno
1
3综合举例(续)例7续πSno.Cno(SC)
95001象集{1,2,3} 95002象集{2,3}
πCno(K)={1,3}
于是:πSno.Cno(SC)÷K={95001}SnoCno950011950012950013950022950023综合举例(续)[例8]查询选修了2号课程的学生的学号。
πSno(σCno='2'(SC))={95001,95002}
综合举例(续)[例9]查询至少选修了一门其直接先行课为5号课程的课程的学生姓名。
πSname(σCpno='5'(CourseSCStudent))或
πSname(σCpno='5'(Course)SCπSno,Sname(Student))或πSname(πSno(σCpno='5'(Course)SC)πSno,Sname(Student))
综合举例(续)[例10]查询选修了全部课程的学生号码和姓名。
πSno,Cno(SC)÷πCno(Course)πSno,Sname(Student)
小结l
关系代数运算 关系代数运算 并、差、交、笛卡尔积、投影、选择、连接、除 基本运算 并、差、笛卡尔积、投影、选择 交、连接、除 可以用5种基本运算来表达引进它们并不增加语言的能力,但可以简化表达小结(续)l
关系代数表达式关系代数运算经有限次复合后形成的式子l
典型关系代数语言ISBL(InformationSystemBaseLanguage)由IBMUnitedKingdom研究中心研制用于PRTV(PeterleeRelationalTestVehicle)实验系统第二章关系数据库2.1关系模型概述2.2关系数据结构2.3关系的完整性2.4关系代数2.5关系演算2.6小结2.5关系演算关系演算以数理逻辑中的谓词演算为基础种类:按谓词变元不同分类1.元组关系演算:以元组变量作为谓词变元的基本对象元组关系演算语言ALPHA2.域关系演算:以域变量作为谓词变元的基本对象域关系演算语言QBE2.5.1元组关系演算语言ALPHA由E.F.Codd提出INGRES所用的QUEL语言是参照ALPHA语言研制的语句检索语句GET更新语句PUT,HOLD,UPDATE,DELETE,DROP一、检索操作
语句格式:
GET
工作空间名
[(定额)](表达式1)
[:操作条件][DOWN/UP表达式2]
定额:规定检索的元组个数格式:数字表达式1:指定语句的操作对象格式:关系名|关系名.属性名|元组变量.属性名|集函数[,…]操作条件:将操作结果限定在满足条件的元组中格式:逻辑表达式表达式2:指定排序方式格式:关系名.属性名|元组变量.属性名[,…]检索操作(续)(1)简单检索(即不带条件的检索)(2)限定的检索(即带条件的检索)(3)带排序的检索(4)带定额的检索(5)用元组变量的检索(6)用存在量词的检索检索操作(续)(7)带有多个关系的表达式的检索(8)用全称量词的检索(9)用两种量词的检索(10)用蕴函(Implication)的检索(11)集函数(1)简单检索 GET
工作空间名(表达式1)[例1]查询所有被选修的课程号码。
GETW(SC.Cno)
[例2]查询所有学生的数据。
GETW(Student)(2)限定的检索格式
GET
工作空间名(表达式1):操作条件[例3]查询信息系(IS)中年龄小于20岁的学生的学号和年龄。
GETW(Student.Sno,Student.Sage):Student.Sdept='IS'∧Student.Sage<20(3)带排序的检索格式
GET
工作空间名(表达式1)[:操作条件]DOWN/UP表达式2
[例4]查询计算机科学系(CS)学生的学号、年龄,结果按年龄降序排序。
GETW(Student.Sno,Student.Sage):Student.Sdept='CS‘
DOWNStudent.Sage(4)带定额的检索
格式
:GET
工作空间名(定额)(表达式1)
[:操作条件][DOWN/UP
表达式2][例5]取出一个信息系学生的学号。
GETW(1)(Student.Sno): Student.Sdept='IS'
[例6]查询信息系年龄最大的三个学生的学号及其年龄,结果按年龄降序排序。
GETW(3)(Student.Sno,Student.Sage):Student.Sdept='IS'DOWNStudent.Sage(5)用元组变量的检索元组变量的含义表示可以在某一关系范围内变化(也称为范围变量RangeVariable)元组变量的用途①简化关系名:设一个较短名字的元组变量来代替较长的关系名。②操作条件中使用量词时必须用元组变量。定义元组变量格式:RANGE关系名变量名一个关系可以设多个元组变量(6)用存在量词的检索[例8]查询选修2号课程的学生名字。
RANGESCX
GETW(Student.Sname):
X(X.Sno=Student.Sno∧X.Cno='2')[例9]查询选修了这样课程的学生学号,其直接先行课是6号课程。
RANGECourseCXGETW(SC.Sno):
CX(CX.Cno=SC.Cno∧CX.Pcno='6')
用存在量词的检索(续)[例10]查询至少选修一门其先行课为6号课程的学生名字
RANGECourseCXSCSCX GETW(Student.Sname):
SCX(SCX.Sno=Student.Sno∧
CX(CX.Cno=SCX.Cno∧CX.Pcno='6'))
前束范式形式:
GETW(Student.Sname):
SCX
CX(SCX.Sno=Student.Sno∧CX.Cno=SCX.Cno∧CX.Pcno='6')(7)带有多个关系的表达式的检索
[例11]查询成绩为90分以上的学生名字与课程名字。
RANGESCSCXGETW(Student.Sname,Course.Cname):
SCX(SCX.Grade≥90∧SCX.Sno=Student.Sno∧Course.Cno=SCX.Cno)(8)用全称量词的检索
[例12]查询不选1号课程的学生名字。
RANGESCSCXGETW(Student.Sname):SCX(SCX.Sno≠Student.Sno∨SCX.Cno≠'1')用存在量词表示:
RANGESCSCXGETW(Student.Sname):
SCX(SCX.Sno=Student.Sno∧SCX.Cno='1')(9)用两种量词的检索[例13]查询选修了全部课程的学生姓名。
RANGECourseCXSCSCXGETW(Student.Sname):CX
SCX (SCX.Sno=Student.Sno∧ SCX.Cno=CX.Cno)(10)用蕴函(Implication)的检索
[例14]查询最少选修了95002学生所选课程的学生学号。
RANGECouseCXSCSCXSCSCYGETW(Student.Sno):CX(
SCX(SCX.Sno='95002'∧SCX.Cno=CX.Cno)
SCY(SCY.Sno=Student.Sno∧ SCY.Cno=CX.Cno))(11)集函数常用集函数(Aggregationfunction)或内部函数(Build-infunction)函数名功能COUNT
对元组计数TOTAL
求总和MAX
求最大值MIN
求最小值AVG
求平均值集函数(续)[例15]查询学生所在系的数目。
GETW(COUNT(Student.Sdept))COUNT函数在计数时会自动排除重复值。
[例16]查询信息系学生的平均年龄GETW(AVG(Student.Sage):Student.Sdept='IS’)
二、更新操作(1)修改操作(2)插入操作(3)删除操作(1)修改操作步骤①用HOLD语句将要修改的元组从数据库中读到工作空间中HOLD
工作空间名(表达式1)[:操作条件]HOLD语句是带上并发控制的GET语句②用宿主语言修改工作空间中元组的属性③用UPDATE语句将修改后的元组送回数据库中
UPDATE
工作空间名修改操作(续)[例17]把95007学生从计算机科学系转到信息系。HOLDW(Student.Sno,Student.Sdetp):Student.Sno='95007'
(从Student关系中读出95007学生的数据)
MOVE'IS'TOW.Sdept
(用宿主语言进行修改)
UPDATEW
(把修改后的元组送回Student关系)(2)插入操作步骤①用宿主语言在工作空间中建立新元组②用PUT语句把该元组存入指定关系中
PUT
工作空间名(关系名)
PUT语句只对一个关系操作插入操作(续)[例18]学校新开设了一门2学分的课程“计算机组织与结构”,其课程号为8,直接先行课为6号课程。插入该课程元组
MOVE'8'TOW.CnoMOVE'计算机组织与结构'TOW.CnameMOVE'6'TOW.CpnoMOVE'2'TOW.Ccredit
PUTW(Course)(3)删除操作①用HOLD语句把要删除的元组从数据库中读到工作空间中②用DELETE语句删除该元组
DELETE
工作空间名删除操作(续)[例19]95110学生因故退学,删除该学生元组。
HOLDW(Student):Student.Sno='95110'DELETEW
删除操作(续)[例20]将学号95001改为95102。
HOLDW(Student):Student.Sno='95001'
DELETEWMOVE'95102'TOW.SnoMOVE'李勇'TOW.SnameMOVE'男'OW.SsexMOVE'20'TOW.SageMOVE'CS'TOW.Sdept
PUTW(Student)
删除操作(续)[例21]删除全部学生。
HOLDW(SC)DELETEW
HOLDW(Student)DELETEW在删除操作中保持参照完整性小结:元组关系演算语言ALPHA检索操作GETGET
工作空间名
[(定额)](表达式1)
[:操作条件][DOWN/UP表达式2]插入操作建立新元组--PUT修改操作HOLD--修改--UPDATE删除操作HOLD--DELETE2.5关系演算2.5.1元组关系演算语言ALPHA2.5.2域关系演算语言QBE2.5.2域关系演算语言QBE
l
一种典型的域关系演算语言 由M.M.Zloof提出
1978年在IBM370上得以实现
QBE也指此关系数据库管理系统l
QBE:QueryByExample
基于屏幕表格的查询语言查询要求:以填写表格的方式构造查询用示例元素(域变量)来表示查询结果可能的情况查询结果:以表格形式显示QBE操作框架
关系名属性名操作命令元组属性值或查询条件或操作命令一、检索操作(1)用户提出要求;(2)屏幕显示空白表格;
(3)用户在最左边一栏输入要查询的关系名,例如Student;Student检索操作(续)(4)系统显示该关系的属性名
(5)用户在上面构造查询要求
StudentSnoSnameSsexSageSdept
P.T
AO.C
StudentSnoSnameSsexSageSdept
检索操作(续)(6)屏幕显示查询结果StudentSnoSnameSsexSageSdept
李勇张立
C
构造查询的几个要素示例元素即域变量一定要加下划线示例元素是这个域中可能的一个值,它不必是查询结果中的元素打印操作符P.
指定查询结果所含属性列查询条件不用加下划线可使用比较运算符>,≥,<,≤,=和≠
其中=可以省略排序要求1.简单查询[例1]查询全体学生的全部数据。StudentSnoSnameSsexSageSdept
P.95001P.李勇P.男P.20P.CS简单查询(续)
显示全部数据也可以简单地把P.操作符作用在关系名上。StudentSnoSnameSsexSageSdept
P.
2.条件查询(1)简单条件
[例2]求信息系全体学生的姓名。StudentSnoSnameSsexSageSdept
P.李勇
IS条件查询(续)
[例3]求年龄大于19岁的学生的学号。StudentSnoSnameSsexSageSdept
P.95001
>19条件查询(与条件)[例4]求计算机科学系年龄大于19岁的学生的学号。方法(1):把两个条件写在同一行上StudentSnoSnameSsexSageSdept
P.95001
>19CS条件查询(续)
方法(2):把两个条件写在不同行上,但使用相同的示例元素值StudentSnoSnameSsexSageSdept
P.95001P.95001
>19CS条件查询(续)[例5]查询既选修了1号课程又选修了2号课程的学生的学号。SCSnoCnoGrade
P.95001P.9500112
条件查询(续)[例6]查询计算机科学系或者年龄大于19岁的学生的学号。StudentSnoSnameSsexSageSdept
P.95001P.95002
>19CS
多表连接
[例7]查询选修1号课程的学生姓名。
注意:示例元素Sno是连接属性,其值在两个表中要相同。SCSnoCnoGrade
950011
StudentSnoSnameSsexSageSdept
95001P.李勇
条件查询(非条件)[例8]查询未选修1号课程的学生姓名
思路:显示学号为95001的学生名字,而该学生选修1号课程的情况为假SCSnoCnoGrade
950011
StudentSnoSnameSsexSageSdept
95001P.李勇
条件查询(续)[例9]查询有两个人以上选修的课程号思路:查询这样的课程1,它不仅被95001选修而且也被另一个学生(
95001)选修了SCSnoCnoGrade
95001
.95001P.11
3.集函数常用集函数:函数名功能CNT对元组计数SUM求总和AVG求平均值MAX求最大值MIN求最小值集函数(续)[例10]查询信息系学生的平均年龄。StudentSnoSnameSsexSageSdept
P.AVG.ALL.IS4.对查询结果排序(续)[例11]查全体男生的姓名,要求查询结果按所在系升序排序,对相同系的学生按年龄降序排序。StudentSnoSnameSsexSageSdept
P.李勇男DO(2).AO(1).二、修改操作[例12]把95001学生的年龄改为18岁。方法(1):将操作符“U.”放在值上StudentSnoSnameSsexSageSdept95001
U.18
修改操作(续)方法(2):将操作符“U.”放在关系上码95001标明要修改的元组。“U.”标明所在的行是修改后的新值。由于主码是不能修改的,所以系统不会混淆要修改的属性。StudentSnoSnameSsexSageSdeptU.95001
18
修改操作(续)[例13]将计算机系所有学生的年龄都改为18岁StudentSnoSnameSsexSageSdept95008
U.18
CS修改操作(续)
[例14]把95001学生的年龄增加1岁分两行分别表示改前和改后的示例元素必须将操作符“U.”放在关系上StudentSnoSnameSsexSageSdept
U.9500195001
1717+1
修改操作(续)
[例15]将计算机系所有学生的年龄都增加1岁StudentSnoSnameSsexSageSdept
U.9500895008
1818+1
CS2.插入操作[例16]把信息系女生95701,姓名张三,年龄17岁存入数据库中。StudentSnoSnameSsexSageSdeptI.95701张三女17IS关系数据库简介系统而严格地提出关系模型的是美国IBM公司的E.F.Codd1970年提出关系数据模型E.F.Codd,“ARelationalModelofDataforLargeSharedDataBanks”,《CommunicationoftheACM》,1970之后,提出了关系代数和关系演算的概念1972年提出了关系的第一、第二、第三范式1974年提出了关系的BC范式关系数据库简介关系数据库应用数学方法来处理数据库中的数据80年代后,关系数据库系统成为最重要、最流行的数据库系统关系数据库简介典型实验系统SystemRUniversityINGRES典型商用系统ORACLESYBASEINFORMIXDB2INGRES第二章关系数据库2.1关系模型概述2.2关系数据结构2.3关系的完整性2.4关系代数2.5关系演算2.6小结2.1关系模型概述关系数据库系统是支持关系模型的数据库系统关系模型的组成关系数据结构关系操作集合关系完整性约束1.关系数据结构单一的数据结构关系现实世界的实体以及实体间的各种联系均用关系来表示数据的逻辑结构二维表从用户角度,关系模型中数据的逻辑结构是一张二维表。2.关系操作集合1)常用的关系操作2)关系操作的特点3)关系数据语言的种类4)关系数据语言的特点关系操作集合(续)1)常用的关系操作查询选择、投影、连接、除、并、交、差数据更新插入、删除、修改查询的表达能力是其中最主要的部分关系操作集合(续)2)关系操作的特点集合操作方式,即操作的对象和结果都是集合。非关系数据模型的数据操作方式:一次一记录文件系统的数据操作方式关系操作集合(续)3)关系数据语言的种类关系代数语言用对关系的运算来表达查询要求典型代表:ISBL关系操作集合(续)关系数据语言的种类(续)关系演算语言:用谓词来表达查询要求元组关系演算语言谓词变元的基本对象是元组变量典型代表:APLHA,QUEL域关系演算语言谓词变元的基本对象是域变量典型代表:QBE具有关系代数和关系演算双重特点的语言典型代表:SQL关系操作集合(续)4)关系数据语言的特点关系语言是一种高度非过程化的语言存取路径的选择由DBMS的优化机制来完成用户不必用循环结构就可以完成数据操作能够嵌入高级语言中使用关系代数、元组关系演算和域关系演算三种语言在表达能力上完全等价3.关系的三类完整性约束实体完整性通常由关系系统自动支持参照完整性早期系统不支持,目前大型系统能自动支持用户定义的完整性反映应用领域需要遵循的约束条件,体现了具体领域中的语义约束用户定义后由系统支持第二章关系数据库2.1关系模型概述2.2关系数据结构2.3关系的完整性2.4关系代数2.5关系演算2.6小结2.2关系数据结构关系模型建立在集合代数的基础上关系数据结构的基本概念关系关系模式关系数据库2.2关系数据结构2.2.1关系2.2.2关系模式2.2.3关系数据库2.2.1关系⒈域(Domain)
2.笛卡尔积(CartesianProduct)
3.关系(Relation)⒈域(Domain)域是一组具有相同数据类型的值的集合。例:整数实数介于某个取值范围的整数长度指定长度的字符串集合{‘男’,‘女’}介于某个取值范围的日期2.笛卡尔积(CartesianProduct)1)笛卡尔积给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)|di
Di,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个元组可列成一张二维表
笛卡尔积(续)3.关系(Relation)1)关系D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为
R(D1,D2,…,Dn)
R:关系名
n:关系的目或度(Degree)关系(续)注意:关系是笛卡尔积的有限子集。无限关系在数据库系统中是无意义的。由于笛卡尔积不满足交换律,即
(d1,d2,…,dn)≠(d2,d1,…,dn)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年网络直播平台运营与推广合同
- 社交媒体运营推广服务合同
- 2024年跨境电商门面商铺租赁服务合同3篇
- 股东大会决议书起草委托代理协议
- 智能硬件开发教程基础指南
- 酒店餐饮服务管理合同
- 篮球馆租赁合同
- 2025版高科技产业园区建筑工程招投标合同范本3篇
- 管理制度实施细则说明
- 体育赛事参赛者意外保障免责条款
- 国家电网招聘之财务会计类题库含完整答案(必刷)
- 2024年手术室带教工作计划样本(5篇)
- 保安服务招投标书范本(两篇)2024
- 辽宁省沈阳市五校协作体2024-2025学年高二上学期11月期中考试语文试题(含答案)
- 保密知识培训
- 江西省稳派教育2025届数学高二上期末教学质量检测模拟试题含解析
- 八年级历史上册(部编版)第六单元中华民族的抗日战争(大单元教学设计)
- 2022-2023学年北京市海淀区高二(上)期末英语试卷(含答案解析)
- 2021-2022学年统编本五四制道德与法治五年级上册期末检测题及答案(共6套)
- (BRB)屈曲约束支撑施工专项方案
- 期末达标测试卷(试题)-2024-2025学年人教PEP版英语四年级上册
评论
0/150
提交评论