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

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

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

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

×
保存成功