- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
该文档均来自互联网,如果侵犯了您的个人权益,请联系我们将立即删除!
1. 关系模型的基本概念(7) (8)外部关键字(Foreign Key--FK) 关系中某个属性或属性组合并非关键字,但却是另一个关系的主关键字,称此属性或属性组合为本关系的外部关键字。关系之间的联系是通过外部关键字实现的。 外键功能用来实现表间约束。 (9)关系模式 对关系的描述称为关系模式,其格式为: 关系名(属性名1,属性名2,…,属性名n) 2. 关系的基本特点(1) 在关系模型中,关系具有以下基本特点: (1)关系必须规范化,属性不可再分割。 规范化是指关系模型中每个关系模式都必须满足一定的要求,最基本的要求是关系必须是一张二维表,每个属性值必须是不可分割的最小数据单元,即表中不能再包含表。 (2)在同一关系中不允许出现相同的属性名 Access不允许同一个表中有相同的字段名。 2. 关系的基本特点(2) (3)关系中不允许有完全相同的元组。 (4)在同一关系中元组的次序无关紧要。也就是说,任意交换两行的位置并不影响数据的实际含义。 (5)在同一关系中属性的次序无关紧要。任意交换两列的位置也并不影响数据的实际含义,不会改变关系模式。 3. 关系的操作(1) 和算术运算一样。 如:1+2=3中1、2为操作数,+为操作符。结果为操作数。 关系运算中,关系作为操作数,关系运算符作为操作符。关系运算的结果是一个新的关系。 关系作为一张二维表,其可进行的操作包括:选择、投影、自然联接。 3. 关系的操作(2) 关系操作根据参与操作的数据表分为: 一元操作符:仅一个数据表参与操作 二元操作符:有二个数据表参与操作 3. 关系的操作(3) 选择操作和投影操作为一元操作符 1.选择操作 给定一个关系,从中筛选出满足某种条件的记录(或元组)的过程称为选择。 如下图所示的选择操作是所有少数民族的学生 2.投影操作 给定一个关系,从中只检索期望得到的字段(或属性)的过程称为投影。 如下图所示的投影操作是从学生表得到只有三个字段(学号、姓名、入学成绩)的关系。 3. 关系的操作(3) 自然联接操作要求二个关系参与运算,即为二元操作符。 前提条件 通常这二个关系中,有一个公共的属性(称为联接属性),在一个关系(称为一表)中它是主键,而在另一个关系(称为多表)中它是外键。如 “班级表”(一表)中主键是班级号,而班级号在“学生表”(多表)中是外键。 3. 关系的操作(4) 自然联接操作的结果: 在属性上是二个参与运算关系的属性叠加; 在元组上是在多表元组的记录基础上,扩展联接属性相同时的一表对应的数据值。即以多表为准。 3. 关系的操作(5) 自然联接的结果 前提条件:二个表间存在一个外键约束。 学生表 姓名 性别 出生日期 少数民族否 班级号 籍贯 入学成绩 简历 照片 班级表 班级号 专业名称 年级 班主任姓名 所在学院 班级人数 3. 关系的操作(6) 自然的等值联接的结果集仍是一个关系 该关系的属性(字段)是两个关系的叠加; 该关系的元组(记录)是以多表为准。 班级表 班级号 专业名称 年级 班主任姓名 所在学院 班级人数 学生表 姓名 性别 出生日期 少数民族否 班级号 籍贯 入学成绩 简历 照片 专业名称 年级 班主任姓名 所在学院 班级人数 4. 关系模型的优点 关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。 关系模型的概念单一,无论实体还是实体之间的联系都用关系表示。对数据的检索结果也是关系(即表)。所以其数据结构简单、清晰,用户易懂易用。 关系模型的存取路径对用户透明(用户无需关心数据存放路径),从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。 1.3.2 关系完整性约束 实体完整性 参照完整性 域完整性 用户定义完整性 1.实体完整性 实体完整性是指一个关系中不能存在两个完全相同的记录。一个关系对应现实世界中一个实体集。 实体完整性是通过关系的主关键字(PK)来实现的。应具有某种唯一性标识。 注意:主关键字(主属性)不能取“空值”。否则,表明关系模式中存在着不可标识的实体(因空值是“不确定”的),这与“唯一性标识”相矛盾。 2. 参照完整性 是二个表之间的约束。 参照完整性是指多表外部关键字的取值必须与一表中某元组主关键字的值相同,否则违反了参照完整性约束。 使用FK实现 问题 如何理解实体完整性和参照完整性? 1.具备完整性检查功能的数据库是具备行为能力的数据库,如果插入(修改)的元组违反定义的完整性则数据库系统将不会执行插入(修改)操作。 2.检查是否违法实体(参照)完整性的情况: 实体完整性:涉及一个数据表,其不存在主键值相同的两个元组。 参照完整性:涉及二个数据表,参照完整性是指多表外部关键字的取值必须与一表中某元组主关键字的值相同。 3.域完整性 域完整性是
文档评论(0)