您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 第3讲(关系数据库)
数据库技术与应用DatabaseTechnologyandApplication第三讲建立Access数据库关系模型数据库设计基础最常用的数据模型非关系模型层次模型(HierarchicalModel)网状模型(NetworkModel)关系模型(RelationalModel)关系模型最重要的一种数据模型。也是目前主要采用的数据模型1970年由美国IBM公司SanJose研究室的研究员E.F.Codd提出关系数据模型的数据结构在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。学生登记表学号姓名年龄性别系名年级2005004王小明19女社会学20052005006黄大鹏20男社会学20052005008张文斌18女法律学2005………………关系模型的基本概念关系(Relation)一个关系对应通常说的一张表。元组(Tuple)表中的一行即为一个元组。属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名称即属性名。关系的关键字(候选)关键字(Candidatekey)若关系中的某一属性或属性组的值能唯一地标识一个元组,则称该属性或属性组为(候选)关键字。(候选)关键字的每一个属性都必不可少。在最简单的情况下,(候选)关键字只包含一个属性。关系的关键字主关键字若一个关系有多个候选码,则选定其中一个为主关键字(Primarykey)。主关键字也简称为主键。候选关键字的诸属性称为主属性(Primeattribute)。不包含在任何侯选关键字中的属性称为非主属性(Non-keyattribute)关系模型的基本概念域(Domain)属性的取值范围。分量元组中的一个属性值。关系模式对关系结构的描述(即二维表的表头)。关系名(属性1,属性2,…,属性n)例:学生(学号,姓名,年龄,性别,系,年级)表的特点表由行(记录)、列(字段)组成每列有一个字段名,每个字段只有一个值行的上下顺序、列的左右顺序任意任意两行记录的内容不应相同字段的取值范围称为域。同一字段的域相同,不同字段的域也有可能相同。示例1.1:符合第一范式的表返回sidlnamefnameclasstelephone1JonesAllan2555-12342SmithJohn3555-43213BrownHarry2555-11225WhiteEdward3555-3344Studentssidcnomajor1101No1108Yes2105No3101Yes3108No5102No5105Noenrollmentcnocnamecroomtime101FrenchI2-104MW2102FrenchII2-113MW3105Algebra3-105MW2108Calculus2-113MW4CoursesHead:standard/basictype/simpletypeValue:singlevalue示例1.2:不符合第一范式的表返回sidnameclasstelephoneenrollmentlnamefnamecnomajor1JonesAllan2555-1234101No108Yes2SmithJohn3555-4321105No3BorwnHarry2555-1122101Yes108No4WhiteEdward3555-3344102No105NoStudentsHead:structuredtypeValue:structuredvaluecollectionofvalues关系的联系关系模型中的各个关系不是孤立的,相互之间可能存在联系。在关系模型中,关系之间的联系通过不同关系模式中的同名属性来体现。如:students(sid,fname,lname,class,telephone)courses(cno,cname,croom,ctime)Enrollment(sid,cno,major)关系模型的基本概念2.关系模型的数据操纵查询、插入、删除、更新关系代数传统的集合运算专门的关系运算传统的集合运算并差交广义笛卡尔积1.并(Union)R和S具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域R∪S仍为n目关系,由属于R或属于S的元组组成R∪S并(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∪S2.差(Difference)R和S具有相同的目n相应的属性取自同一个域R-S仍为n目关系,由属于R而不属于S的所有元组组成R-S差(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S3.交(Intersection)R和S具有相同的目n相应的属性取自同一个域R∩S仍为n目关系,由既属于R又属于S的元组组成R∩SR∩S=R–(R-S)交(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∩S4.广义笛卡尔积(ExtendedCartesianProduct)Rn目关系,k1个元组Sm目关系,k2个元组R×S列:(n+m)列的元组的集合元组的前n列是关系R的一个元组后m列是关系S的一个元组行:k1×k2个元组R×S={trts|trR∧tsS}笛卡尔积(续)studentscSnoCnoGrade9500119295001285950013889500229095002380SnoSnameSsexSageSdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19ISstudentscsnamessexsagesdeptcnograde95001李勇男20CS9500119295001李勇男20CS9500128595001李勇男20CS9500138895001李勇男20CS9500229095001李勇男20CS9500238095002刘晨女19IS95001192…………………………………………sc.snosnosnostudent.sno专门的关系运算选择投影连接除1.选择(Selection)1)选择又称为限制(Restriction)2)选择运算符的含义从关系R中选择符合条件的元组构成新的关系σF(R)选择(续)3)选择运算是从行的角度进行的运算σ选择(续)SnoSnameSsexSageSdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19ISStudent[例1]查询信息系(IS系)全体学生σSdept='IS'(Student)或σ5='IS'(Student)结果:SnoSnameSsexSageSdept95002刘晨女19IS95004张立男19IS2.投影(Projection)1)投影运算符的含义从R中选择出若干属性列组成新的关系πA(R)A:R中的属性列2.投影(Projection)2)投影操作主要是从列的角度进行运算但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)π投影(续)[例2]查询学生的姓名和所在系πSname,Sdept(Student)或π2,5(Student)结果:SnameSdept李勇CS刘晨IS王敏MA张立ISSnoSnameSsexSageSdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19ISStudent连接(自然连接)选取在某些公共属性上具有相同值的元组一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。AθBRS自然连接例:studentsc(注意sno的命名)SnoCnoGrade9500119295001285950013889500229095002380SnoSnameSsexSageSdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19ISstudent.snosnamessexsagesdeptsc.snocnograde95001李勇男20CS9500119295001李勇男20CS9500128595001李勇男20CS9500138895002刘晨女19IS9500229095002刘晨女19IS950023803.关系模型的完整性约束实体完整性参照完整性用户定义的完整性主键主键用以保证表中每个记录互不相同一个表只能有一个主键主键可以是单个属性,也可以由若干个属性组合而成。实体完整性规则一个表的主键值不能重复,且主属性不能取空值Access中主键字段标示有钥匙图案主键:“订单ID+产品ID”主键:“产品ID”参照完整性规则“一对多”关系中,“一”表的主键字段必然会出现在“多”表中,成为联系两个表的纽带;“多”表中出现的这个字段被称为外键;“一”表称为该外键的参照表。参照完整性规则规定:“多”表中的外键值或者为空,或者是“一”表中主键的有效值;外键值可以重复。参照完整性规则一对多级联更新:当“一”表主键值更新时,对应“多”表中外键字段的所有值将自动更新。级联删除:如果删除“一”表中某个记录,则与该记录主键字段值相同的外键字段值所在的所有记录也将自动删除。数据库设计步骤分析数据需求,明确所建数据库所要完成任务的目标建立概念模型(E-R图)设计数据库逻辑模型表、字段、主键、各表之间关系改进设计2.5.2.概念模型实体属性与域实体型联系实体联系的类型一对一联系(1:1)一对多联系(1:n)多对多联系(m:n)学号授课学生2.5.3.逻辑模型将E-R模型转换为关系模型的步骤如下:为每个实体建立关系模式将1:1联系和1:n联系及其属性添加到关系模式中1:1联系的处理1:n联系为M:N联系建立一个关系模式数据库逻辑结构设计E-R图向关系模型的转换转换原则:⒈一个实体型转换为一个关系模式。关系的属性:实体型的属性关系的码:实体型的码⒉一个m:n联系转换为一个关系模式。关系的属性:与该联系相连的各实体的码以及联系本身的属性关系的码:各实体码的组合3.一个1:n联系转换为与n端对应的关系模式合并。在n端关系中加入1端关系的码和联系本身的属性,合并后关系的码不变4.一个1:1联系转换可以与任何一端对应的关系模式合并。5.三个或三个以上实体间的一个多元联系转换为一个关系模式。关系的属性:与该多元联系相连的各实体的码以及联系本身的属性关系的码:各实体码的组合6.同一实体集的实体间的联系,即自联系,也可按上述1:1、1:n和m:n三种情况分别处理7.具有相同码的关系模式可合并。示例sidclassstudentcourseenrollmentfnamelnametelephonemajorcnamecroomctimecnohasdepartmenttelephonedeptnamedeanaddressn1nm2.5.4.物理模型逻辑数据模型转变为物理模型一般包含如下步骤:关系名转换为文件(表)名。属性名转换为表的字段名。对字段的属性进行明确的定义。数据库设计案例数据库系统的三级模式结构应用A应用B应用C应用D应用E外模式1外模式2外模式3外模式/模式映象模式模式/内模式映象内模式数据库1.模式(Schema)模式(也称逻辑模式)数据库中全体数据的逻辑结构和特征的描述所有用户的公共数据视图,综合了所有用户的需求一个数据库只有一个模式模式的定义数据的逻辑结构(数据项的名字、类型、取值范围等)数据之间的联系数据有关的安全性、完整性要求2.外模式(ExternalSchema)外模式(也称子模式或用户模式)数据库用户(
本文标题:第3讲(关系数据库)
链接地址:https://www.777doc.com/doc-3793437 .html