- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MySQL开发和 与实践 第8章 数据完整性约束.ppt
;;8.1 定义完整性约束;8.1.1 实体完整性;1.主键约束
主键可以是表中的某一列,也可以是表中多个列所构成的一个组合;其中,由多个列组合而成的主键也称为复合主键。在MySQL中,主键列必须遵守以下规则。
每一个表只能定义一个主键。
唯一性原则。主键的值,也称键值,必须能够唯一标识表中的每一行记录,且不能为NULL。也就是说一张表中两个不同的行在主键上不能具胡相同的值。
最小化规则。复合主键不能包含不必要的多余列。也就是说,当从一个复合主键中删除一列后,如果剩下的列构成的主键仍能满足唯一性原则,那么这个复合主键是不正确的。
一个列名在复合主键的列表中只能出现一次。
在MySQL中,可以在CREATE TABLE或者ALTER TABLE语句中,使用PRIMARY KEY子句来创建主键约束,其实现方式有以下两种。
作为列的完整性约束
在表的某个列的属性定义时,加上关键字PRIMARY KEY实现。;2.候选键约束
如果一个属性集能唯一标识元组,且又不含有多余的属性,那么这个属性集称为关系的候选键。例如,在包含学号、姓名、性别、年龄、院系、班级等列的“学生信息表”中,“学号”能够标识一名学生,因此,它可以作为候选键,而如果规定,不允许有同名的学生,那么姓名也可以作为候选键。
候选键可以是表中的某一列,也可以是表中多个列所构成的一个组合。任何时候,候选键的值必须是唯一的,且不能为空(NULL)。候选键可以在CREATE TABLE或者ALTER TABLE语句中使用关键字UNIQUE来定义,其实现方法与主键约束类似,也是可作为列的完整性约束或者表的完整性约束两种方式。
在MySQL中,候选键与主键之间存在以下两点区别。
一个表只能创建一个主键,但可以定义若干个候选键。
定义主键约束时,系统会自动创建PRIMARY KEY索引,而定义候选键约束时,系统会自动创建UNIQUE索引。;; 现实世界中的实体之间往往存在着某种联系,在关系模型中,实体及实体间的联系都是用关系来描述的,那么自然就存在着关系与关系间的引用。例如,学生实体和班级实体可以分别用下面的关系表示,其中主码(主键)用下划线标识。
学生(学生证号,姓名,性别,生日,班级???号,备注)
班级(班级编号,班级名称,备注)
在这两个关系之间存在着属性的引用,即“学生”关系引用了“班级”关系中的主码(主键)“班级编号”。 在两个实体间,“班级编号”是“班级”关系的主码(主键),也是“学生”关系的外部码(外键)。显然,“学生”关系中的“班级编号”的值必须是确实存在的班级的“班级编号”,即“班级”关系中的该班级的记录。也就是说,“学生”关系中某个属性的取值需要参照“班级”关系的属性和值。
参照完整性规则(Referential Integrity Rule)就是定义外码(外键)和主码(主键)之间的引用规则,它是对关系间引用数据的一种限制。
参照完整性的定义为:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码K相对应,则对于R中每个元组在F上的值只允许两种可能,即要么取空值(F的每个属性值均为空值),要么等于S中某个元组的主码值。其中,关系R与S可以是不同的关系,也可以是同一关系,而F与F是定义在同一个域中。例如,在“学生”关系中每个学生的“班级编号”一项,要么取空值,表示该学生还没有分配班级;要么取值必须与“班级”关系中的某个元组的“班级编号”相同,表示这个学生分配到某个班级学习。这就是参照完整性。如果“学生”关系中,某个学生的“班级编号”取值不能与“班级”关系中任何一个元组的“班级编号”值相同,表示这个学生被分配到不属于所在学校的班级学习,这与实际应用环境不相符,显然是错误的,这就需要在关系模型中定义参照完整性进行约束。; 与实体完整性一样,参照完整性也是由系统自动支持的,即在建立关系(表)时,只要定义了“谁是主码”、“谁参照于认证”,系统将自动进行此类完整性的检查。在MySQL中,参照完整性可以通过在创建表(CREATE TABLE)或者修改表(ALTER TABLE)时定义一个外键声明来实现。
MySQL有两种常用的引擎类型(MyISAM和InnoDB),目前,只有InnoDB引擎类型支持外键约束。InnoDB引擎类型中声明外键的基本语法格式如下:
[CONSTRAINT [SYMBOL]]
FOREIGN KEY (index_col_name,…) reference_definition
reference_definition主要用于定义外键所参照的表、列、参照动作的声明和实施策略等4部分内容。它的基本语法格式如下:
REFERENCES tbl_name [(index_
您可能关注的文档
- Java程序的设计与实践第二章 Java基础.ppt
- Java程序的设计与实践第五章 抽象类、接口与内部类.ppt
- Java程序的设计与实践第八章 异常处理机制.ppt
- Java程序的设计与实践第六章 多态.ppt
- Java程序的设计与实践第十一章 多线程.ppt
- Java程序的设计与实践第十二章 Java数据库编程.ppt
- Java程序的设计与实践第四章 继承.ppt
- Java程序的设计基础第10章 多线程编程.ppt
- Java程序的设计基础第11章 Java网络编程.ppt
- Java程序的设计基础第12章 数据库编程.ppt
- 豆制品生产许可证审查细则.docx
- 可怕的白色污染主题讲座.pptx
- 2024年重庆人文科技学院招聘笔试真题含答案详解.docx
- 2024年黔西南民族职业技术学院招聘笔试真题及参考答案详解.docx
- 2024年钟山职业技术学院招聘笔试真题及答案详解一套.docx
- 2024年湖南安全技术职业学院招聘笔试真题及答案详解一套.docx
- 2024年辽宁石化职业技术学院招聘笔试真题及参考答案详解.docx
- 2024年贵州财经职业学院招聘笔试真题及参考答案详解.docx
- 2025年北师大版9年级数学上册期中试卷【满分必刷】附答案详解.docx
- 2025年北师大版9年级数学上册期中试卷【综合题】附答案详解.docx
最近下载
- 四川省(蓉城名校联盟)新高考2022级高三适应性考试数学试卷(含答案).pdf
- 水利监理质量控制体系.doc
- [五年级英语下册.doc VIP
- 《江西省宜春市明月山机场航站楼装修工程》投标技术标文件.doc
- GB_T 15114-2023 铝合金压铸件.docx
- 2021年第四期1+X建筑信息模型(BIM)职业技能初级实操题(三).pdf VIP
- 【最全】usedtodo,beusedtodoing用法辨析及练习(带答案).pdf VIP
- 财务报表审计模拟实训第六版刘雪清答案.pdf
- 广东省广州市天河区2020-2021学年八年级下学期期末考试英语试题(word版 含答案).docx VIP
- 招投标法律法规学习培训PPT.pptx VIP
文档评论(0)