Access数据库第五章.ppt
《Access数据库第五章.ppt》由会员分享,可在线阅读,更多相关《Access数据库第五章.ppt(50页珍藏版)》请在三一办公上搜索。
1、1,上节回顾,第四章 数据库安全性4.2 数据库安全性控制授权与回收数据库角色强制存取控制方法4.4 审计4.5 数据加密4.6 统计数据库安全性,2,数据库系统概论An Introduction to Database System第五章 数据库完整性,东莞理工学院城市学院计算机与信息科学系,3,第五章 数据库完整性,定义指数据的正确性和相容性目的为了防止不合语义的数据进入数据库。现实世界的实例:学生的性别只能是男或女;本科生的年龄必须是整数,取值范围为1450;学生的学号一定是唯一的;学生所在的系必须是学校开设的系;,4,第五章 数据库完整性,完整性和安全性的区别目的不同完整性是防止数据库
2、中存在不正确的数据;安全性是防止数据库被恶意破坏或非法存取。防范对象不同完整性是防范不合语义、不正确的数据;安全性是防范非法用户和非法操作。,5,数据库完整性,完整性控制机制包括:完整性约束条件定义机制DBMS应提供定义数据库完整性约束条件,并把它们作为模式的一部分存入数据库中完整性检查的方法检查用户发出的操作请求是否违背了完整性约束条件,一般在:INSERT、UPDATE、DELETE语句执行后以及事务提交时检查。,6,数据库完整性,违约处理如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性,包括:拒绝(NO ACTION)执行该操作,或级联(CASCADE
3、)执行其他操作。,7,第五章 数据库完整性,5.1 实体完整性5.2 参照完整性5.3 用户定义的完整性5.4 完整性约束命名子句5.6 触发器5.7 小结,8,5.1.1 实体完整性定义,在CREATE TABLE中用PRIMARY KEY定义,可以是列级约束条件也可以是表级约束条件,但有些时候只能定义表级约束条件。,9,5.1.1 实体完整性定义,【例1】将Student表中的Sno属性定义为码CREATE TABLE Student/*列级定义主码*/(Sno CHAR(9)PRIMARY KEY,Sname CHAR(20)NOT NULL,Ssex CHAR(2),Sage SMAL
4、LINT,Sdept CHAR(15);,10,5.1.1 实体完整性定义,CREATE TABLE Student/*表级定义主码*/(Sno CHAR(9),Sname CHAR(20)NOT NULL,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(15),PRIMARY KEY(Sno);,11,5.1.1 实体完整性定义,【例2】将SC表中的Sno,Cno属性组定义为码CREATE TABLE SC/*只能在表级定义主码*/(Sno CHAR(9)NOT NULL,Cno CHAR(4)NOT NULL,Grade SMALLINT,PRIMARY KEY
5、(Sno,Cno);,12,5.1.2 实体完整性检查和违约处理,检查当用户程序对基本表插入一条记录或对主码进行更新操作时进行检查。包括:检查主码的值是否唯一,不唯一则拒绝操作;检查主码的各个属性是否为空,只要有一个为空就拒绝操作。,13,第五章 数据库完整性,5.1 实体完整性5.2 参照完整性5.3 用户定义的完整性5.4 完整性约束命名子句5.6 触发器5.7 小结,14,第五章 数据库完整性,附:创建Course表的SQL语句CREATE TABLE Course(Cno CHAR(4)PRIMARY KEY,Cname CHAR(40),Cpno CHAR(4),Ccredit SM
6、ALLINT,FOREIGN KEY(Cpno)REFERENCES Course(Cno);,15,5.2.1 参照完整性定义,在CREATE TABLE中用FOREIGN KEY定义哪些列为外码,用REFERENCES短语指明这些外码参照哪些表的主码。,16,5.2.1 参照完整性定义,【例3】定义SC中的参照完整性CREATE TABLE SC(Sno CHAR(9),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Student(Sno),FOREIGN KEY(Cno)REFEREN
7、CES Course(Cno);,17,5.2.2 参照完整性检查和违约处理,检查当用户程序对被参照表和参照表时进行增删改操作时进行检查。处理:对参照表的增、改外码值时可能破坏参照完整性,则以拒绝操作处理。对被参照表进行删、修改主码值时可能破坏参照完整性,则以拒绝/级联删除/设置为空值操作处理。,18,5.2.2 参照完整性检查和违约处理,【注意】系统默认的处理方式是拒绝处理,如果要让系统采用其他策略,则要在创建表时显式定义。,19,5.2.2 参照完整性检查和违约处理,【例4】显式说明参照完整性的违约处理示例CREATE TABLE SC(Sno CHAR(9),Cno CHAR(4),Gr
8、ade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY Sno REFERENCES Student(Sno)ON DELETE CASCADEON UPDATE CASCADE,FOREIGN KEY Cno REFERENCES Course(Cno)ON DELETE NO ACTIONON UPDATE CASCADE,);,当删除Student表中的元组时,级联删除SC表中相应的元组,20,第五章 数据库完整性,5.1 实体完整性5.2 参照完整性5.3 用户定义的完整性5.4 完整性约束命名子句5.6 触发器5.7 小结,21,5.3.1 属性上
9、的约束条件的定义,在CREATE TABLE中根据需要定义,包括:列值非空(NOT NULL)列值唯一(UNIQUE)检查列值是否满足一个布尔表达式(CHECK),22,5.3.1 属性上的约束条件的定义,用CHECK短语指定列值应该满足的条件【例8】SC表的Grade的值应该在0和100之间。CREATE TABLE SC(SnoCHAR(9)NOT NULL,CnoCHAR(4)NOT NULL,Grade SMALLINT CHECK(Grade=0 AND Grade=100),PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Studen
10、t(Sno),FOREIGN KEY(Cno)REFERENCES Course(Cno);,23,5.3.2属性上的约束条件检查和违约处理,检查当往表中插入元组或修改属性的值时进行检查。处理:不满足则以拒绝操作处理。,24,5.3.3 元组上的约束条件的定义,用CHECK短语指定表级应该满足的条件【例9】当学生的性别是男时,其名字不能以Ms.打头。CREATE TABLE Student(SnoCHAR(9),SnameCHAR(20)NOT NULL,SsexCHAR(2),SageSMALLINT,SdeptCHAR(15),PRIMARY KEY(Sno),CHECK(Ssex=女 O
11、R Sname NOT LIKE Ms.%);,25,5.3.4 元组上的约束条件检查和违约处理,检查当往表中插入元组或修改属性的值时进行检查。处理:不满足则以拒绝操作处理。,26,第五章 数据库完整性,5.1 实体完整性5.2 参照完整性5.3 用户定义的完整性5.4 完整性约束命名子句5.6 触发器5.7 小结,27,1 完整性约束命名子句,在CREATE TABLE中提供了完整性约束命名子句:CONSTRAINT。CONSTRAINT 格式:CONSTRAINT PRIMARY KEY 短语|FOREIGN KEY 短语|CHECK 短语,28,1 完整性约束命名子句,【例10】建立学生
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Access 数据库 第五
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6501155.html