您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > 数据库基础与应用演示讲稿
数据库基础与应用演示讲稿1数据库基础与应用•主教材:•《数据库基础与应用》(新版)•教师:•吴旻倩•电话答疑:•13807056518数据库基础与应用演示讲稿2第2章关系运算•2.1关系数据结构•关系数据结构非常单一,它就是一张二维表(有限制的)。下面以集合论的观点给出有关概念的形式化定义。•1.域——是具有相同特性的数据集合。•例如,{男,女}是一个域,它是有人类两种性别的集合;{东,南,西,北}域;•在一些计算机语言中,允许把一个域直接定义为一种数据类型。记为:D1,D2,…Dn。数据库基础与应用演示讲稿3•2.笛卡儿积——是定义在一组域上的集合,假定一组域用D1,D2,…Dn表示,则它们的笛卡儿积表示为D1*D2*…*Dn,笛卡儿积中每个元素由下式给出:•D1*D2*…*Dn={(d1,d2,…dn)|di∈Di,1≤i≥n,n≥1}•笛卡儿积中的每个元素又习惯称为元组,每个元组的一个值di称为该元组的一个分量,n是域的个数,也是每个元组中分量的个数,具有n个分量的元组被称为n元组。在D1,D2,…Dn域中,若任一个域di的基数(所含元素的个数)用mi表示,它们的笛卡儿积中所含元组的个数为m=m1*m2*…*mn。数据库基础与应用演示讲稿4•例2-1设D1={1,3},D2={2,4},则它们的笛卡儿积D1*D2为{(1,2),(1,4),(3,2),(3,4)}。D1和D2的基数2和2,故D1*D2的基数为4,每个元素都是一个二元组。•例2-2设D1=学生={王力,赵火,孙平},D2=导师={刘华,张明},D3=专业={计算机,电子},则它们的笛卡儿积D1*D2*D3为{(王力,刘华,计算机),(,),…}。•每个元素都是一个三元组。•D1*D2*D3的基数为3*2*2=12。该笛卡儿积给出了D1中的每个学生选择D2中的每个导师学习D3中每个专业的所有可能的组合情况。数据库基础与应用演示讲稿5•构成笛卡儿积的n个域通常是互不相同的,即对应不同的集合,但也允许使用相同的域。•例2-3设D1=D2{T,F},D3={0,1},则它们的笛卡儿积D1*D2*D3为:•{(T,T,0),(T,T,1),(T,F,0),(T,T,1),(F,T,0),(F,T,1),(F,F,0),(F,F,1)}•基数•元组数据库基础与应用演示讲稿6•例2-4设D1=D2{上海,大连,南京,广州},则它们的笛卡儿积D1*D2为{(上海,上海),(上海,大连),…}•表2-1笛卡儿积的二维表示例P35。•3.关系•关系是笛卡儿积的一个子集,若笛卡儿积具有n个域,则该笛卡儿积上的关系被称为n元关系。设D1,D2,…Dn为n个域,则该域上的关系用R(D1,D2,…Dn)表示,R称为关系名,R关系所包含的全部元组是D1*D2*,…*Dn的一个子集。数据库基础与应用演示讲稿7•例2-5假定学生,导师和专业这三个域为D1=学生={王力,赵火,孙平},D2=导师={刘华,张明},D3=专业={计算机,电子},则这些域上的一种关系R(学生,导师,专业)假定如表2-2所示P35•一个n元关系具有下面六个性质:•1.属性,属性名,属性值•2.直接采用域名?•3.关系中的属性次序无关(理论上,实际上)•4.关系中任意两个元组不允许完全相同•5.关系中元组的次序可以任意•6.一个元组中的每个属性值都必须是单值数据库基础与应用演示讲稿8•例2-6设一种表结构为(学生号,姓名,性别,专业,成绩(数学,物理,化学)),有嵌套,不符合关系的要求。•若改为(学生号,姓名,性别,专业,数学成绩,物理成绩,化学成绩)就变成了一个关系,•也可以改为两个关系,可能含义更清楚。–学生关系(学生号,姓名,性别,专业)–成绩关系(学生号,数学,物理,化学)•查询时通过学生号将两个关系连接起来。数据库基础与应用演示讲稿9•4.关系模式——是关系的型,即一个关系的具体结构,通常被形式化定义为:•R(U,D,DOM,F,I)•其中R为关系名,U为所有属性名集合,D为关系的所有定义域的集合,该集合长度必然小于等于属性名集合的长度,DOM为属性向域映射的集合,它给出属性和域之间的对应关系,即哪个属性属于哪个域,F为该关系中各属性之间的数据依赖的集合,I为该关系中所定义的完整性规则的集合。数据库基础与应用演示讲稿10•例2-8假定有一个学生关系模式,它的属性名集合为{学生号,姓名,性别,年龄,专业},则所有属性所对应的域的集合D可定义为{6位数字字符串,6个字节字符串,Sex{男,女},14~35,Course{计算机,生物,机械}},•属性向域映射的集合DOM为{学生号属于6位数字字符串域,姓名属于6个字节字符串域,性别属于Sex域,年龄属于14~35内的整数域,专业属于Course域}。数据库基础与应用演示讲稿11•在数据库系统中定义一个关系模式时,主要给出关系名和所有属性名,其他都是辅助特性。•例如属性的域被作为属性的类型和长度来定义,其中必然包含了属性向域的映射,属性之间的数据依赖的分析主要是找出关系的主码属性,关系的完整性规则的建立是为了保证数据库数据的正确性和一致性。•一个关系模式可简化为:•R(A1,A2,A3,…An),即关系名(属性名组)数据库基础与应用演示讲稿12•一个关系模式可简化为:•R(A1,A2,A3,…An),即关系名(属性名组)•如关系Student(Number,Name,Sex,Age,Course)•主码的属性常放在前面并用下划线作标记;其余为一般属性。•关系模式只是一个关系的框架,具有该框架的所有元组才是该关系的值(关系的内容)。•关系的模式和关系的值共同确定了一个具体关系。实际系统允许空关系。数据库基础与应用演示讲稿13•关系模式和关系值是一个关系的两个方面,定义关系模式是为了规范和处理关系的值,处理关系值时必须按照模式去区分和标识元组中的每个分量,并理解每个分量的语义。数据库基础与应用演示讲稿14•5.码——又称为键、关键字。在关系中有超码、侯选码、主码、备用码、外码等。•超码:关系中能唯一标识每个元组的属性或属性组(集)。可有多个超码。•侯选码:关系中能唯一标识每个元组的最少属性或属性组(集)。可有多个侯选码。•主码:从侯选码中选择一个作为该关系的主码,数据库系统将按主码标识和排序每个元组。一个关系在任一时刻至多只能有一个主码,单在不同时刻可以指定不同的侯选码作为主码,当然也可以不指定主码。数据库基础与应用演示讲稿15•备用码:除了主码之外的所有侯选码都是高关系的备用码。一个关系可能没有备用码,也可能具有一个或多个备用码。•例2-9设一个关系R为(学生号,姓名,性别,年龄,专业,身份证号)–超码:学生号,身份证号,属性组(学生号,身份证号)也是一个超码。–侯选码:学生号,身份证号,–备用码:如选择学生号为主码,则另一个侯选码身份证号就是备用码。数据库基础与应用演示讲稿16•外码:在关系R1中的属性或属性组若在另一个关系R2中作为主码使用,则称该属性或属性组为R1的外码。•例2-10设R1(学生号,姓名,性别,班级号),R2(班级号,班级名,班主任),其中R1中的班级号属性在R2中是主码,所以班级号是R1的外码。•若把R2(班级号,班级名,班主任,班长),班长属性应该与R1中的主码学生号属性定义在同一域上,此时班长属性是R2的外码。数据库基础与应用演示讲稿17•主属性和非主属性•包含在任何侯选码中的属性都称为该关系的主属性,除主属性外都是非主属性。•例2-11在关系R为(学生号,姓名,性别,年龄,专业,身份证号)中,–主属性:学生号,身份证号–非主属性:姓名,性别,年龄,专业•R1(学生号,姓名,性别,班级号),R2(班级号,班级名,班主任),数据库基础与应用演示讲稿18•例2-12设有三个关系,学生(学生号,姓名,班级),课程(课程号,课程名,学分),选课(学生号,课程号,成绩)–学生号是学生关系的主码,是选课关系的外码。–课程号是课程关系的主码,是选课关系的外码。–选课关系的主码由学生号和课程号联合构成,只有合并在一起才是惟一标识元组的最少属性集,该关系的主属性为学生号和课程号,非主属性为成绩属性。数据库基础与应用演示讲稿19第2章关系运算•2.2关系完整性•关系完整性就是关系模型中数据的正确性、一致性和有效性。它包括实体完整性、参照完整性和用户定义的完整性三个方面。•每种完整性都对应有相应的完整性规则,都需要用户在定义关系数据库时给出相应定义。数据库基础与应用演示讲稿20•1.实体完整性•实体完整性规则:关系的主码不能取空值,或者说任何关系中每个元组的主码不能为空。•在关系数据库系统中,用户只要标明一个关系的主码,DBMS将自动对该关系中的每个元组的主码进行检查,若发现主码为空将给出错误信息要求用户纠正。•有的关系数据库系统中,还允许用户定义关系的备用码,系统也会自动检查。数据库基础与应用演示讲稿21•例2-13设学生关系(学生号,姓名,年龄,专业,籍贯)–学生号为主码,每个学生必须有一个学生号,取空值为非法,系统会自动拒绝学生号为空的元组存在。(实体完整性规则)•例2-14设选课关系(学生号,课程号,成绩)–主码:学生号,课程号,这两个属性值都不能为空。成绩属性允许为空。数据库基础与应用演示讲稿222.参照完整性在一个关系模型中,一个关系R1中的外码对应另一个关系R2中的主码,R1中的外码和R2中的主码不但要定义在同一域上,而且要求外码的取值不能超出主码的取值,否则将为非法数据。如R1(课程号,课程名,学分,系号),R2(系号,系名,系主任,办公电话)。*若一个关系R1中外码的取值要参照另一关系R2中主码的取值,则称R1为参照关系、引用关系、子关系等,称R2为被参照关系、被引用关系、父关系等,数据库基础与应用演示讲稿23•参照完整性规则:在两个参照和被参照关系中,参照关系中每个元组的外码或者为空,或者等于被参照关系中某个元组的主码。•在关系数据库系统中,用户只要给出一对参照关系和被参照关系,并给出参照关系中的外码,则DBMS会自动进行检查。•在实施参照完整性的两个关系中,通常父子关系是1对多;而子关系中的一个元组至多对应父关系中的一个元组,这里包含着当外码为空时不对应父关系中的任何元组。数据库基础与应用演示讲稿24•例2-15设有五个关系:•订单(订单号,客户号,雇员号,订单日期)•订单明细(订单号,商品号,单价,订购数量)•客户(客户号,姓名,性别,联系电话,联系地址)•雇员(雇员号,姓名,性别,柜台,工作电话)•商品(商品号,品牌号,型号,类别,产地,电话)•其中每个客户可以签定多个订单,每个雇员也可以签定多个订单,每个订单的客户可以订购多种商品。图2-1给出了这五种关系及其联系。数据库基础与应用演示讲稿25•3.用户定义的完整性•用户定义的完整性规则:包括对每个关系每个属性的取值限制(或约束)的具体定义,它同其他两个完整性规则一样也被记录在DBMS的数据字典中,在数据库操作时,DBMS会自动根据各种完整性规则进行监控,拒绝不符合要求的数据进入数据库。数据库基础与应用演示讲稿26第2章关系运算•2.3关系运算–关系比一般的集合要复杂,对关系可采用传统的集合运算,也可以采用专门的运算。•2.3.1传统的集合运算•包括并、交、差和笛卡儿积四种运算。对应符号∪、∩、-、×表示。•设一个元组变量用t表示,则t属于一个关系R则用t∈R表示,t不属于R用t¢R表示。数据库基础与应用演示讲稿27•假定关系R中一个属性用A表示,则t.A就表示属性A在元组t中的值。•用元组t中的一个分量同其他值进行比较需要用到六个比较运算符:>、<、>=、<=、=、<>、又称为⊙运算符。•由逻辑运算符与(∧)、或(∨)、非(-)连接比较运算式构成逻辑表达式。数据库基础与应用演示讲稿28•1.并运算(具有完全相同的结构或模式)•R和S的并记作R∪S,用集合公式表示为:R∪S={t|t∈R∨t∈S}•即并运算结果中的元组t或者属于R或者属于S,包括同时属于两者。•集合
本文标题:数据库基础与应用演示讲稿
链接地址:https://www.777doc.com/doc-612426 .html