网站大量收购独家精品文档,联系QQ:2885784924

(sno,cno)列为主码.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(sno,cno)列为主码

关系数据库的完整性 三种关系完整性规则 解决现实世界的三个问题 如何保证一个实体是可识别(区分)的 方法:实体完整性 如何保证能够从一个实体找到另一个相关联的实体,而不会出现找不到的情况 方法:参照完整性 如何保证用于描述实体的属性,其取值是合理的 方法:用户定义完整性 三大类完整性约束 实体完整性; 参照完整性; 用户定义完整性; 实体完整性 意义: 关系往往对应一个实体集,这时关系中的每个元组对应一个实体 现实世界中的实体是可区分的,关系中的元组也必须是可区分的 主码起到唯一标识(区分)每个元组的作用,所以它必须是唯一的,同时也是非空的 三大类完整性约束 实体完整性; 参照完整性; 用户定义完整性; 复习:外码 外码 定义:关系R1中的单个属性或属性集合,对应另一个关系R2的主码 R1称为参照关系, R2称为被参照关系 来源:由联系集转化而来,反映实体(元组)之间的联系 参照完整性 目的:保证外码引用的是一个有效的主码 规则:如果关系R的外部码对应关系S的主码,则R每个元组在外部码上的取值必须满足: 或者等于空值 或者等于某个对应的主码值(S某个元组的主码值) 参照完整性 意义: 在被参照关系S中 – 一个主码值代表所在的元组(一个实体) 在参照关系R中,元组的外部码 – 要么取空值,表示不和任何S元组(实体)存在联系 – 要么取S的某个主码值,表示表示联系是存在的,且涉及的是这个主码值所代表的S元组(实体) – 如果违反以上两种情况,表示联系涉及了不存在的实体,这是不允许的 参照完整性定义 示例: sc(sno, cno, grade) (sno, cno)列为主码, sno列为外码,cno列为外码 create table sc ( sno char(5)foreign key references student(sno), cno char(2)foreign key references course(cno), grade int, primary key(sno, cno) ) 参照完整性处理 当某个主码值被删除/更新时(这个主码值在被参照关系中)如何处理对应的外部码值(这些外部码值在参照关系中) RESTRICT 方式:仅当没有任何对应的外码值时,才可以删除/更新这个主码值,否则系统拒绝执行此操作 CASCADE 方式:连带将所有对应的外码值一块删除/更新(删除外码值,实际上就是将所在的元组删除掉) SET NULL 方式:将所有对应的外码值设为空值 参照完整性定义 示例: sc(sno, cno, grade) (sno, cno)列为主码, sno列为外码,cno列为外码 create table sc ( sno char(5)foreign key references student(sno) on delete cascade on update set null, cno char(2)foreign key references course(cno), grade int, primary key(sno, cno) ) 思考: 根据外部码取值的可能性,我们在定义外部码的属性类型时,应遵循什么原则? 用户定义完整性 目的:保证实体属性的取值有效,等等 规则:用户根据具体的应用环境定义 例如 – 年龄的取值范围为0到200,性别只能是“男”或“女” – 职工编号是4位整数 意义: 反映了现实世界的真实情况,即实体的属性必须满足要满足这些条件 反映了程序编制的要求 数据的定义 基本表的定义与删除 修改表结构 删除表 当确信不再需要某个表时,可以将其删除 删除表时会将与表有关的所有对象一起删掉,包括表中的数据。 删除表的语句格式为: DROP TABLE 表名 例:删除test表的语句为: DROP TABLE test 数据的定义 基本表的定义与删除 修改表结构 修改表结构 在定义完表之后,如果需求有变化,比如添加列、删除列或修改列定义,可以使用ALTER TABLE语句实现。 ALTER TABLE语句可以对表添加列、删除列、修改列的定义、定义主码、外码,也可以添加和删除约束。 修改表结构语法 ALTER TABLE 表名 [ ALTER COLUMN 列名 新数据类型] | [ ADD 列名 数据类型 | [ DROP COLUMN 列名 ] | [ADD PRIMARY KEY(列名 [,… n ] )] | [ADD FOREIGN KEY(列名) REFERNECES 表名(列名)]、 | [ADD DEFAULT

文档评论(0)

daoqqzhuan2 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档