第02讲 关系数据库理论

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

网络沟通世界,技术成就未来!安徽新华-蒋菲菲SQLServer2000数据库管理系统安徽新华2009年11月23日第二讲关系数据库理论引入SQLServer2000是一个功能强大、操作方便的数据库管理系统,其日益受到广大数据库用户的青睐,因此在学习之前,了解和掌握SQLServer2000的功能是非常必要的。学习目标–掌握关系模型的概念–掌握数据结构的概念–理解关系完整性的描述–掌握关系模型的数据操作和关系代数的运算学习完本课程,您应该能够:知识重、难点分析重点:–关系数据模型–数据结构的概念难点:–关系模型的数据操作和关系代数的运算2.1关系模型概述关系数据库的定义关系数据库是指一些相关的表和其他数据库对象的集合。在关系数据库中,信息存放在二维表格结构的表中,一个关系数据库包含多个数据表,每一个表包含行(记录)和列(字段)。一般来说,数据库都有多个表。数据库所包含的表之间是有关联的,关联性是由主键和外键所体现的参照关系实现。数据库不仅包含表,还包含其他的数据库对象,例如,视图、存储过程和索引等。关系模型的数据结构(续)学号姓名性别年龄学部号原单位980101张力女221计算机系980102林宏业男212数学系980103王明男224哲学系980203李婷婷女231计算机系关系元组(行)关系名学生关系模式(行定义)关系模型示例关系模型的数据结构(续)学号姓名性别年龄学部号原单位980101张力女221计算机系980102林宏业男212数学系980103王明男224哲学系980203李婷婷女231计算机系学生登记表属性(列)和属性名码值域(15=年龄=30)关系模型示例2.关系数据模型的基本概念(1)关系(Relation):对应于关系模式的一个具体的表称为关系,又称表(Table)。(2)关系模式(RelationScheme):二维表的表头那一行称为关系模式,又称表的框架或记录类型,是对关系的描述。关系模式可表示为:关系模式名(属性名1,属性名1,...,属性名n)的形式。例如:学生(学号,姓名,性别,出生日期,籍贯)。(3)记录(Record):关系中的每一行称为关系的一个记录,又称行(Row)或元组。(4)属性(Attributes):关系中的每一列称为关系的一个属性,又称列(Column)。给每一个属性起一个名称即属性名。(5)值域(Domain):关系中的每一属性所对应的取值范围叫属性的变域,简称域。(6)候选关键字或候选码如果在一个关系中,存在多个属性(或属性组合)都能用来唯一标识该关系的元组,这些属性(或属性组合)称为候选关键字或候选码。(7)主关键字或主键(Primarykey):在一个关系的若干侯选关键字中指定作为关键字的属性(或属性组合),称为主关键字或主码,每个表有而且仅有一个主键,而且不允许为空值或者重复。(8)外部关键字或外键(ForeignKey):一个表中的某个列(非主健)是另一个表的主码,它用来与其他表建立关联,称为外键。(9)主表与从表:主表和从表是指以外键相关联的两个表,以(另外一个表的)外键作为主键的表称为主表,外键所在的表称为从表。关系模型的数据结构(续)SnoCnoGrade98001192980013889800229098002389SnoSnameSsexSageSdept98001李勇男20SC98002刘晨女19IS98003王敏女18MA学生(主表)成绩(从表)主键外键两表的关联4.关系数据模型优缺点优点:由于实体和联系都用关系描述,保证了数据操作语言的一致性;结构简单直观、用户易理解。有严格的设计理论。存取路径对用户透明,从而具有更高的独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作量。缺点:由于存取路径对用户透明,造成查询速度慢,效率低于非关系型数据模型。关系模型中对关系的限定每一个关系仅有一种记录类型,即一种关系模式。每一个关系模式中属性的个数是固定的,并必须命名,在同一个关系模式中,属性必须是不同的。每一个属性是不可分的,也不允许出现重复属性。在关系中元组的顺序(即行序)是无关紧要的。在关系中列的顺序也是无关紧要的,即列的顺序可任意交换。关系中不允许出现重复元组。2.3关系模型的数据完整性概念:关系模型的数据完整性是指数据库中数据的正确性和一致性。数据完整性由数据库完整性规则来维护。四类完整性规则:实体完整性规则域完整性规则参照完整性规则用户定义的完整性规则属性的类型NULL属性:–null表示“无意义”,当实体在某个属性上没有值时设为null,如通讯录(姓名,email,电话,BP),若某人没有email地址,则在email属性上取值为null。–null表示“值未知”,即值存在,但目前没有获得该信息,如职工(姓名,部门,工种,身份证),如果目前不知道职工身份证号码,则设身份证值为null。–实体完整性作为主码的属性上取值不能为null。实体完整性规则实体完整性规则:要求关系中的元组在组成主键的属性上取值必须唯一,不能有空值。意义:关系对应到现实世界中的实体集,元组对应到实体,实体是相互可区分的,通过主码来唯一标识,若主码为空,则出现不可标识的实体,这是不容许的。例如:在关系“学生(学号,姓名,年龄,班级)”中,学号属性为主码,则要求学号不能取空值。参照完整性规则参照完整性规则:这条规则可以根据外键的值检查输入数据的合法性。保证了外键字段的值都是一个有效的主键(外健的取值必须是另一个表的主健的有效值,或者是一个空值),从而可以实施参照完整性。意义::参照完整性用于确保相关联的表间的数据应保持一致,避免因一个表的记录修改,造成另一个表的内容变为无效的值。例如:从表:学生(学号,姓名,性别,专业号,年龄)主表:专业(专业号,专业名)参照完整性规则供应商号供应商名所在城市B01红星北京S10宇宙上海T20黎明天津Z01立新重庆零件号颜色供应商号010红B01312白S10201蓝T20今要向关系P中插入新行,新行的值分别列出如下。哪些行能够插入?A.(‘037’,‘绿’,null)B.(null,‘黄’,‘T20’)C.(‘201’,‘红’,‘T20’)D.(‘105’,‘蓝’,‘B01’)E.(‘101’,‘黄’,‘T11’)零件关系P(主码“零件号”,外码“供应商号”)供应商关系S(主码是“供应商号”)用户定义完整性规则用户定义完整性规则:这条规则指用户根据应用环境的不同针对某一具体关系数据库定义的约束条件。这是针对某一具体数据的约束条件,由应用环境决定。它反映某一具体应用所涉及的数据必须满足的语义要求。系统支持实体完整性和参照完整性由系统自动支持。系统应提供定义和检验用户定义的完整性的机制2.4关系模型的数据操作和关系代数传统的集合运算:并、交、差、广义笛卡尔积专门的关系运算:选择、投影、连接、除关系代数用到的运算符:-集合运算符:∪(并)、∩(交)、-(差)、×(广义笛卡尔积)-专门的关系运算符:σ(选择)、π(投影)、(连接)、÷(除)-算术比较符:θ={>、≥、<、≤、=、≠}-逻辑运算符:(非)、∧(与)、∨(或)传统的集合运算—并ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1ABCa1b1c1a1b2c2a2b2c1a1b3c2RSR∪SRSR∪S={t|t∈R∨t∈S},t是元组变量。传统的集合运算—交ABCa1b2c2a2b2c1ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∩S传统的集合运算—差ABCa1b1c1ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR-SR-S={t|t∈R∧tS}传统的集合运算—广义笛卡尔积R×S={t|t=tr,ts∧tr∈R∧ts∈S}ABCABCa1b1c1a1b2c2a1b1c1a1b3c2a1b1c1a2b2c1a1b2c2a1b2c2a1b2c2a1b3c2a1b2c2a2b2c1a2b2c1a1b2c2a2b2c1a1b3c2a2b2c1a2b2c1ABCa1b1c1a1b2c3a2b2c1ABCa1b2c2a1b3c2a2b2c1RSS×R专门的关系运算—选择在关系R中选择满足给定条件的元组(从行的角度)F(R)={t|tR,F(t)=‘真’}F是选择的条件,tR,F(t)要么为真,要么为假F的形式:由逻辑运算符连接算术表达式而成逻辑表达式:,,算术表达式:XYX,Y是属性名、常量、或简单函数是比较算符,{,,,,,≠}选择运算SnoSnameSsexSageSdept98001李勇男20SC98002刘晨女19IS98003王敏女18MA98004张立男19ISσSdept=‘IS’(Student)SnoSnameSsexSageSdept98002刘晨女19IS98004张立男19ISStudentσF(R)={t|t∈R∧F(t)=‘真’}选择运算示例找年龄不小于20的男学生AGE≥20∧SEX=‘male’(S)专门的关系运算—投影SdeptSCISMASnoSnameSsexSageSdept98001李勇男20SC98002刘晨女19IS98003王敏女18MA98004张立男19ISStudentπSdept(Student)定义–从关系R中取若干列组成新的关系(从列的角度)πA(R)={t[A]|t∈R}投影投影的结果中要去掉相同的行cbcfedcbaCBABCbcefRB,C(R)投影示例给出所有学生的姓名和年龄SN,AGE(S)找001号学生所选修的课程号C#(S#=001(SC))专门的关系运算—连接连接的形式表示:S=σiθ(r+j)(R×S)RABC123456789DE3162ABCDE123311236245662RSSR等值连接示例两个关系R和S的等值连接表示为:ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32RSRS等值连接示例专门的关系运算—自然连接两个关系R和S的自然连接表示为:ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52ABCEa1b153a1b267a2b3810a2b382RSRS自然连接示例专门的关系运算—除除运算:给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y具有相同的域集。R与S的除运算得到一个新的关系P(X),P中每一个元组值对应R在Y上的象集Yx包含S在Y上投影的集合。记作:R÷S。Aa1RSR÷SABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2“除”运算的一个实际应用学号(Sno)课程号(Cno)成绩(Grade)980011929800138898002290980023891、设有一个学生课程关系SC(Student-course),查询至少选修1号课程和3号课程的学生号码。2、首先建立一个临时课程关系K,临时关系的属性Cno包含1号课和3号课:3、然后求:πSno,Cno(SC)÷K,结果为:Cno13学号(Sno)98001总结集合运算符、专门的关系运算符:、算术比较符关系运算:选择、投影、连接(自然连接、等值连接)

1 / 39
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功