您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 02关系模型和关系运算理论
第2章关系模型和运算理论南京邮电大学计算机学院软件工程系2内容提纲1)基本概念关系模型关键码(主键和外键)关系的定义和性质三类完整性规则过程性语言与非过程性语言2)关系代数五个基本操作四个组合操作七个扩充操作3内容提纲3)关系演算元组关系演算和域关系演算的原子公式、公式的定义关系演算的安全性和等价性4)关系代数表达式的优化关系代数表达式的等价及等价转换规则启化式优化算法5)关系逻辑谓词、原子、规则和查询规则的安全性用规则模拟关系代数表达式4引言关系模型是当前的主流逻辑数据模型由IBM公司的高级研究员E.F.Codd于1970年提出应用广泛的原因:单一的数据建模概念坚实的数学理论基础提供高级接口:数据库语言SQL52.1关系模型的基本概念基本术语定义2.1用二维表格表示实体集,用关键码表示实体之间联系的数据模型称为关系模型(RelationalModel)理解用二维表格(table)表示实体集及其间联系,用关键码(或键)进行数据导航关系模型是逻辑模型的一种,也具有三个要素关系数据结构关系操作数据完整性约束规则62.1关系模型的基本概念基本术语示例SNOSNAMEAGESEXNativePlaceS1WANG20M北京S2LIU18F山东S3HU17M上海S4XIA19F四川CNOCNAMECreditCreditHoursCPNOTNOC1Math348NULLT1C2English464NULLT2C3PM232C2T2C4DB3.556C1T1SNOCNOGradeS1C280S1C370S1C485S2C160S2C275S2C390S2C4NULLS3C185S3C480S4C285S4C475TNOTNAMETITLESEXT1ZHAO讲师MT2LIU教授FSC(SNO,CNO,Grade)字段含义:学号,课程号,成绩S(SNO,SNAME,AGE,SEX,NativePlace)字段含义:学号,姓名,年龄,性别,籍贯T(TNO,TNAME,TITLE,SEX)字段含义:教师号,教师姓名,职称,性别C(CNO,CNAME,Credit,CreditHours,CPNO,TNO)字段含义:课程号,课程名,学分,学时数,先修课号,授课教师号72.1关系模型的基本概念基本术语关系数据结构:二维表字段称为属性,也称为列(column)反映事物的一个特征,每个字段都有字段名和字段值属性的取值范围(所有可取值的集合)称为属性域Domain大写字母A、B、C、…表示单个属性;大写字母…、X、Y、Z表示属性集小写字母a、b、c、…表示属性值记录称为元组(tuple),也称为行(row)记录类型称为关系模式,由模式名和属性列表组成元组集合称为关系(relation)或实例(instance),也称为表格82.1关系模型的基本概念基本术语关系数据结构:二维表元组用关键字(Keyword—简称键)来标识属性个数称为元数(arity),也称为目;元组个数为基数(cardinality)RABCDEa1b1c1d1e1a2b2c2d2e2a3b3c3d3e3a4b4c4d4e4一般术语关系模型术语字段、数据项属性记录类型关系模式记录1元组1记录2元组2记录3元组3记录4元组4字段值属性值文件关系R(A,B,C,D,E)92.1关系模型的基本概念基本术语关键码(key,简称键)由一个或多个属性组成。在实际使用中,有下列几种键1)超键(SuperKey)其值能唯一地决定其它所有属性的值的属性集2)候选键(CandidateKey)不含多余属性的超键其值能唯一地决定关系中其它所有属性的值、而它的任何真子集无此性质的属性或属性组3)主键(PrimaryKey)用户选作元组标识的候选键,称为主键(PK),简称键102.1关系模型的基本概念基本术语关键码(key,简称键)4)候补键(AlternateKey)主键之外的候选键5)全键:由关系的所有属性构成的主键6)外键(ForeignKey,FK)如果模式R中的属性K是其它模式的主键,那么K在模式R中称为外键不是本关系的键,却引用了其它关系或本关系的键的属性或属性组7)主属性与非主属性nSUPPLY(供应商,零件名,工程名)项目供应mp零件供应商112.1关系模型的基本概念基本术语示例关系模式STUDENT(学号,姓名,性别,出生日期,籍贯)假设:不允许学生重名,问:(学号,姓名,性别,出生日期,籍贯)?(学号,性别)?(学号,姓名)?(学号)?(姓名)?哪些是主属性?122.1关系模型的基本概念关系的定义和性质定义2.2关系是一个属性数目相同的元组的集合有限关系在关系模型中,关系的规范性限制:1)关系中每一个属性值都是不可分解的(原子的)2)关系中不允许出现重复元组(即不允许出现相同的元组)3)由于关系是一个集合,因此不考虑元组间的顺序,即没有行序注:关系中元组的排列是有序的,取决于索引4)元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺序132.1关系模型的基本概念关系模型的完整性规则实体完整性规则(entityintegrityrule)关系内的约束每个关系都应有一个主键每个元组的主键的值应当唯一;组成主键的属性,不能有空值(NULL)否则,主键值就起不了惟一标识元组的作用142.1关系模型的基本概念关系模型的完整性规则实体完整性规则(entityintegrityrule)例如S(SNO,SNAME,AGE,SEX,NativePlace)字段含义:学号,姓名,年龄,性别,籍贯CreateTableS(SNOCHAR(3),SNAMECHAR(8),AGEInteger,SEXCHAR(1),NativePlaceVARCHAR(20),PrimaryKey(SNO),Check(SEXIN(‘M’,‘F’)));SNOSNAMEAGESEXNativePlaceS1WANG20M北京S2LIU18F山东S2HU17M上海NULLXIA19F四川╳╳152.1关系模型的基本概念关系模型的完整性规则参照完整性规则(referenceintegrityrule)不同关系或同一关系的不同元组间的约束定义2.3参照完整性规则的形式定义如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值规则的实质:不允许引用不存在的实体在上述形式定义中关系模式R1的关系称为“参照关系”,也称“主表”、“父表”关系模式R2的关系称为“依赖关系”,也称“副表”、“子表”162.1关系模型的基本概念关系模型的完整性规则参照完整性规则(referenceintegrityrule)规则在具体使用时,有三点变通:①外键和相应主键可以不同名,只要定义在相同值域上即可②R1和R2可以是不同关系模式,也可以是同一个关系模式同一个关系模式中,表示了同一个关系中不同元组之间的联系③外键值是否允许空,应视具体问题而定当外键属性是主键的组成成分时,不允许为空172.1关系模型的基本概念关系模型的完整性规则参照完整性规则(referenceintegrityrule)示例SNOSNAMEAGESEXNativePlaceS1WANG20M北京S2LIU18F山东S3HU17M上海S4XIA19F四川CNOCNAMECreditCreditHoursCPNOTNOC1Math348NULLT1C2English464C5T2C3PM232C2T4C4DB3.556C1NULLSNOCNOGradeS1C280S1C370S1C585S2C160S2C275S2NULL90S2C4NULLS3C185S3C480S4C285S6C475TNOTNAMETITLESEXT1ZHAO讲师MT2LIU教授F╳╳╳╳╳182.1关系模型的基本概念关系模型的完整性规则用户定义的完整性规则和数据的具体内容有关的约束构建关系模式时,属性的数据类型,可能满足不了需求,需要显式定义额外的约束规则说明CHECK()子句、触发器、断言、过程…说明各种DBMS产品对完整性约束的支持程度不同数据库中完整性约束检查,由DBMS实现对DB进行更新(I/D/U)操作时检查,保证数据与现实世界的一致性192.1关系模型的基本概念关系模型的完整性规则用户定义的完整性规则示例1S(SNO,SNAME,AGE,SEX,NativePlace)字段含义:学号,姓名,年龄,性别,籍贯CreateTableS(SNOCHAR(3),SNAMECHAR(8),AGEInteger,SEXCHAR(1),NativePlaceVARCHAR(20),PrimaryKey(SNO),Check(SEXIN(‘M’,‘F’)));SNOSNAMEAGESEXNativePlaceS1WANG20M北京S2LIU18F山东S3HU17M上海S4XIA19K四川╳202.1关系模型的基本概念关系模型的完整性规则用户定义的完整性规则示例2SC(SNO,CNO,Grade)字段含义:学号,课程号,成绩CreateTableSC(SNOCHAR(3),CNOCHAR(3),GRADEDEC(5,2),PrimaryKey(SNO,CNO),ForeignKey(SNO)ReferencesS(SNO),ForeignKey(CNO)ReferencesC(CNO),Check(GRADEisNULLOrGRADEBetween0And100));SNOCNOGradeS1C280S1C370S1C585S2C160S2C275S2NULL90S2C4NULLS3C1-5S3C480S4C2101S6C475╳╳╳╳╳212.1关系模型的基本概念关系模型的三层体系结构回顾数据库的三级体系结构转换应用1应用3应用2逻辑模型内部模型外部模型3外部模型2外部模型1映像映像DB概念模型用户需求用户需求用户1用户3用户2用户需求综合用户(应用程序)用户记录模式/内模式映像外模式模式内模式DB模式/外模式映像222.1关系模型的基本概念关系模型的三层体系结构关系模型也遵循数据库的三级体系结构关系模式记录类型称为关系模式关系模式的集合就是数据库的概念模式,是问题域数据的全局逻辑视图是对数据的特征描述,不涉及物理存储方面的描述由数据定义语言(DDL)实现定义模式名、属性名、值域、模式主键定义时,模式名和属性名一般都用英文单词表示23SC(SNO,CNO,Grade)S(SNO,SNAME,AGE,SEX,NativePlace)T(TNO,TNAME,TITLE,SEX)C(CNO,CNAME,Credit,CreditHours,CPNO,TNO)2.1关系模型的基本概念关系模型的三层体系结构关系模型也遵循数据库的三级体系结构关系模式用户(应用程序)用户记录模式/内模式映像外模式模式内模式DB模式/外模式映像242.1关系模型的基本概念关系模型的三层体系结构关系模型也遵循数据库的三级体系结构子模式是用户所用到的局部数据的描述构建子模式时,需要指出数据与关系模式中相应数据的联系由数据定义语言(DDL)实现定义时需要考虑用户对数据的操作权限对子模式的操作(如插入、修改、删除)是受限的252.1关系模型的基本概念关系模型的三层体系结构关系模型也遵循数据库的三级体系结构子模式例如构建成绩子模式,要求显示学号、姓名、课程号和成绩CreateViewG(S#,SNAME,C#,SCORE)ASSelectS.SNO,SNAME,CNO,GradeFromS,SCWhereS.SNO=SC.SNOG(S#,SNAME,C#,SC
本文标题:02关系模型和关系运算理论
链接地址:https://www.777doc.com/doc-3049270 .html