数据库系统原理数据库性课件PPT资料.ppt
- 文档编号:14680344
- 上传时间:2022-10-23
- 格式:PPT
- 页数:60
- 大小:2.23MB
数据库系统原理数据库性课件PPT资料.ppt
《数据库系统原理数据库性课件PPT资料.ppt》由会员分享,可在线阅读,更多相关《数据库系统原理数据库性课件PPT资料.ppt(60页珍藏版)》请在冰豆网上搜索。
,数据库安全性与完整性,数据库安全性与完整性是两个不同的概念:
数据库安全性的防范对象是非法用户与非法操作;
数据库完整性的防范对象是不合语义的数据。
数据库安全性与完整性,两者相似之处:
DBMS提供定义用户对数据库的操作权限的机制与定义完整性约束的机制;
将定义存储在DBMS的数据字典中;
DBMS完成对数据库安全性,完整性的验证功能。
数据库完整性(续),数据库完整性机制的任务是确保数据库中存储的数据符合现实世界语义。
为维护数据库的完整性,DBMS必须:
1.提供定义完整性约束条件的机制2.提供完整性检查的方法3.违约处理,第五章数据库完整性,5.1实体完整性5.2参照完整性5.3用户定义的完整性5.4完整性约束命名子句*5.5域中的完整性限制5.6触发器5.7小结,5.1.1实体完整性定义,关系模型的实体完整性CREATETABLE中用PRIMARYKEY定义单属性构成的码有两种说明方法定义为列级约束条件定义为表级约束条件对多个属性构成的码只有一种说明方法定义为表级约束条件,5.1.2实体完整性检查和违约处理,插入或对主码列进行更新操作时,RDBMS按照实体完整性规则自动进行检查。
包括:
1.检查主码值是否唯一,如果不唯一则拒绝插入或修改2.检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改,第五章数据库完整性,5.1实体完整性5.2参照完整性5.3用户定义的完整性5.4完整性约束命名字句*5.5域中的完整性限制5.6触发器5.7小结,5.2.1参照完整性定义,关系模型的参照完整性定义在CREATETABLE中用FOREIGNKEY短语定义哪些列为外码用REFERENCES短语指明这些外码参照哪些表的主码,例如,关系SC中一个元组表示一个学生选修的某门课程的成绩,(Sno,Cno)是主码。
Sno,Cno分别参照引用Student表的主码和Course表的主码例3定义SC中的参照完整性CREATETABLESC(SnoCHAR(9)NOTNULL,CnoCHAR(4)NOTNULL,GradeSMALLINT,PRIMARYKEY(Sno,Cno),/*在表级定义实体完整性*/FOREIGNKEY(Sno)REFERENCESStudent(Sno),/*在表级定义参照完整性*/FOREIGNKEY(Cno)REFERENCESCourse(Cno)/*在表级定义参照完整性*/);
5.2.2参照完整性检查和违约处理,违约处理,参照完整性违约处理1.拒绝(NOACTION)执行默认策略2.级联(CASCADE)操作需要进行一系列相关操作,保证数据的一致性3.设置为空值(SET-NULL)对于参照完整性,除了应该定义外码,还应定义外码列是否允许空值,例4显式说明参照完整性的违约处理示例CREATETABLESC(SnoCHAR(9)NOTNULL,CnoCHAR(4)NOTNULL,GradeSMALLINT,PRIMARYKEY(Sno,Cno),FOREIGNKEY(Sno)REFERENCESStudent(Sno)ONDELETECASCADE/*级联删除SC表中相应的元组*/ONUPDATECASCADE,/*级联更新SC表中相应的元组*/FOREIGNKEY(Cno)REFERENCESCourse(Cno)ONDELETENOACTION/*当删除course表中的元组造成了与SC表不一致时拒绝删除*/ONUPDATECASCADE/*当更新course表中的cno时,级联更新SC表中相应的元组*/);
第五章数据库完整性,5.1实体完整性5.2参照完整性5.3用户定义的完整性5.4完整性约束命名字句*5.5域中的完整性限制5.6触发器5.7小结,5.3用户定义的完整性,用户定义的完整性就是针对某一具体应用的数据必须满足的语义要求RDBMS提供验证机制,而不必由应用程序承担,5.3用户定义的完整性,5.3.1属性上的约束条件的定义5.3.2属性上的约束条件检查和违约处理5.3.3元组上的约束条件的定义5.3.4元组上的约束条件检查和违约处理,5.3.1属性上的约束条件的定义,CREATETABLE时定义列值非空(NOTNULL)列值唯一(UNIQUE)检查列值是否满足一个布尔表达式(CHECK),属性上的约束条件的定义(续),3.用CHECK短语指定列值应该满足的条件例7Student表的Ssex只允许取“男”或“女”。
CREATETABLEStudent(SnoCHAR(9)PRIMARYKEY,SnameCHAR(8)NOTNULL,SsexCHAR
(2)CHECK(SsexIN(男,女),/*性别属性Ssex只允许取男或女*/SageSMALLINT,SdeptCHAR(20);
5.3.2属性上的约束条件检查和违约处理,插入元组或修改属性的值时,RDBMS检查属性上的约束条件是否被满足如果不满足则操作被拒绝执行,5.3.3元组上的约束条件的定义,在CREATETABLE时可以用CHECK短语定义元组上的约束条件,即元组级的限制同属性值限制相比,元组级的限制可以设置不同属性之间的取值的相互约束条件,例9当学生的性别是男时,其名字不能以Ms.打头。
CREATETABLEStudent(SnoCHAR(9),SnameCHAR(8)NOTNULL,SsexCHAR
(2),SageSMALLINT,SdeptCHAR(20),PRIMARYKEY(Sno),CHECK(Ssex=女ORSnameNOTLIKEMs.%)/*定义了元组中Sname和Ssex两个属性值之间的约束条件*/);
性别是女性的元组都能通过该项检查,因为Ssex=女成立;
当性别是男性时,要通过检查则名字一定不能以Ms.打头,5.3.4元组上的约束条件检查和违约处理,插入元组或修改属性的值时,RDBMS检查元组上的约束条件是否被满足如果不满足则操作被拒绝执行,第五章数据库完整性,5.1实体完整性5.2参照完整性5.3用户定义的完整性5.4完整性约束命名子句*5.5域中的完整性限制5.6触发器5.7小结,5.4完整性约束命名子句,CONSTRAINT对完整性约束条件命名CONSTRAINTPRIMARYKEY短语|FOREIGNKEY短语|CHECK短语作用可灵活地增加、删除完整性约束条件,例10建立学生登记表Student,要求学号在9000099999之间,姓名不能取空值,年龄小于30,性别只能是“男”或“女”。
CREATETABLEStudent(SnoNUMERIC(6)CONSTRAINTC1CHECK(SnoBETWEEN90000AND99999),SnameCHAR(20)CONSTRAINTC2NOTNULL,SageNUMERIC(3)CONSTRAINTC3CHECK(Sage30),SsexCHAR
(2)CONSTRAINTC4CHECK(SsexIN(男,女),CONSTRAINTStudentKeyPRIMARYKEY(Sno);
在Student表上建立了5个约束条件,包括主码约束(命名为StudentKey)以及C1、C2、C3、C4四个列级约束。
完整性约束命名子句(续),修改表中的完整性限制使用ALTERTABLE语句修改表中的完整性限制ALTERTABLE表名DROPCONSTRAINT已定义的约束;
ALTERTABLE表名ADDCONSTRAINT定义一个新的约束条件;
完整性约束命名子句(续),例13修改表Student中的约束条件,要求学号改为在900000999999之间,年龄由小于30改为小于40可以先删除原来的约束条件,再增加新的约束条件ALTERTABLEStudentDROPCONSTRAINTC1;
ALTERTABLEStudentADDCONSTRAINTC1CHECK(SnoBETWEEN900000AND999999);
ALTERTABLEStudentDROPCONSTRAINTC3;
ALTERTABLEStudentADDCONSTRAINTC3CHECK(Sage40);
第五章数据库完整性,5.1实体完整性5.2参照完整性5.3用户定义的完整性5.4完整性约束命名字句*5.5域中的完整性限制5.6触发器5.7小结,5.5域中的完整性限制,SQL支持域的概念,并可以用CREATEDOMAIN语句建立一个域以及该域应该满足的完整性约束条件。
例14建立一个性别域,并声明性别域的取值范围CREATEDOMAINGenderDomainCHAR
(2)CHECK(VALUEIN(男,女);
这样例10中对Ssex的说明可以改写为SsexGenderDomain例15建立一个性别域GenderDomain,并对其中的限制命名CREATEDOMAINGenderDomainCHAR
(2)CONSTRAINTGDCHECK(VALUEIN(男,女);
域中的完整性限制(续),例16删除域GenderDomain的限制条件GD。
ALTERDOMAINGenderDomainDROPCONSTRAINTGD;
例17在域GenderDomain上增加限制条件GDD。
ALTERDOMAINGenderDomainADDCONSTRAINTGDDCHECK(VALUEIN(1,0);
通过例16和例17,就把性别的取值范围由(男,女)改为(1,0),域中的完整性限制(续),例建立一个颜色域COLOR,并对其中的限制命名CREATEDOMAINCOLORCHAR(6)DEFAULT?
CONSTRAINTVALID_COLORSCHECK(VALUEIN(Red,Yellow,Blue,Green,?
);
断言,如果完整性约束牵涉面较广,与多个关系有关,或者与聚合操作有关,可以使用“断言”(Assertions)机制。
句法:
CREATEASSERTIONCHECK(条件);
DROPASSERTION例每位教师开设的课程不能超过10门CREATEASSERTIONASSE1CHECK(10=ALL(SELECTCOUNT(C#)FROMCGROUPBYTEACHER);
第五章数据库完整性,5.1实体完整性5.2参照完整性5.3用户定义的完整性5.4完整性约束命名字句*5.5域中的完整性限制5.6触发器5.7小结,存储过程是事先编好的、存储在DBMS中的程序,这些程序用来完成对数据库的指定操作。
利用存储过程,可以避免在网络上传输大量无用的信息或原始数据,只需要传输调用存储过程的指令和数据库服务器返回的处理结果。
且可以反复调用,从而减轻程序编写的工作量。
存储过程的概念,不使用存储过程时,所有的数据处理都在客户端完成;
而使用存储过程时,可以使数据处理在服务器端完成。
系统本身提供了一些存储过程,用于管理数据库服务器和显示有关数据库和用户的信息,我们称之为系统存储过程,系统存储过程,用户存储过程,用户也可以编写自己的存储过程,并把它存放在数据库中。
这样安排的主要目的就是要充分发挥数据库服务器的功能,尽量减少网络上的堵塞。
存储过程的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 原理 课件