已阅读5页,还剩67页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
安全标准:TCSEC和CC实现数据库系统安全的技术和方法用户身份认证访问控制技术:数模转换器(授权、撤销)和媒体访问控制视图技术:视图、角色审计技术:成人数据加密存储和加密传输:MD5、DES、RSA安全在某些情况下,技术发展受阻,系统使用成本增加。并非所有的安全问题都可以通过技术来解决,应该有配套的法律和道德保障和约束。第五章数据库完整性,数据库完整性,数据库完整性数据正确性(输入正确,存储正确)指的是数据与现实世界的语义一致,反映当前实际情况的数据兼容性(符合要求,规则)指的是数据库中同一对象在不同关系表中的数据是符合逻辑的,例如,学生的学号必须只能是男的或女的,同一个人性别的不同表要统一。本科学生的年龄是14到50之间的整数,只有数字学生选择的课程必须是学校提供的课程,并且学生所在的部门必须是学校的既定部门月。否则,它是无效的。数据库的完整性(续)。数据的完整性和安全性是两个不同概念数据的完整性,以防止数据库中非语义数据的存在。也就是说,防止数据库中不正确数据保护对象的存在:非语义和不正确数据的安全保护;保护数据库免受恶意破坏和非法访问保护对象:非法用户和非法操作;数据库完整性(续);为了保持数据库的完整性,数据库管理系统必须:1 .提供定义完整性约束的机制完整性约束,也称为完整性规则。这是数据库中的数据必须满足的语义约束条件。SQL标准使用一系列概念来描述完整性,包括关系模型的实体完整性、引用完整性和用户定义的完整性。这些完整性通常通过SQL数据定义语言语句来实现。数据库完整性(续)。2.提供完整性检查的方法。数据库管理系统中检查数据是否满足完整性约束条件的机制称为完整性检查。通常,检查是在执行INSERT、UPDATE和DELETE语句后开始的,也可以在提交事务时进行检查。数据库完整性(续)。3.默认处理。如果数据库管理系统发现用户的操作违反了完整性约束,它将采取一定的措施来拒绝(NOACTION)CASCADE操作并执行其他操作。第五章数据库完整性,5.1实体完整性5.2引用完整性5.3用户定义的完整性5.4完整性约束命名语句* 5.5域中的完整性限制5.6断言5.7触发5.8摘要,5.1实体完整性,5.1.1实体完整性定义5.1.2实体完整性检查和默认处理,5.1.1实体完整性定义,关系模型的实体完整性指定表的每一行是表中唯一的实体。通过索引、唯一约束、主键约束、标识(a,b)(ab是正整数,a代表起始数,b代表增加数)等来强制表中实体的唯一性。在CREATETABLE中,由PRIMARYKEY定义的单个属性组成的代码有两种描述方法,定义为列级约束,定义为表级约束,而由多个属性组成的代码只有一种描述方法,定义为表级约束,定义为实体完整性(续)。示例5.1将学生表中的Sno属性定义为代码(1)在列级别定义主代码创建表学生(Snochar (9)主键,Snamecar (20)非空,SSEXCHAR (2),SAGE SMALLINT,SDEPTChar(20);实体完整性定义(续),(2)主要代码创建表学生(SNOCHAR (9),SNAMACHAR(20)不为空,SSEX CHAR (2),SAGE SMALLINT,SDEPTCHAR (20),主键(SNO)在表级定义;实体完整性定义(续),示例5.2系统控制表中的Sno和Cno属性组定义为代码创建表系统控制(SnO CHAR (9) NOT NULL,CNO CHAR (4) NOT NULL,GRADE SMALLINT,主键(SnO,CNO)/*主代码*/)只能在表级别定义;5.1实体完整性,5.1.1实体完整性定义5.1.2实体完整性检查和默认处理,5.1.2实体完整性检查和默认处理,当插入或更新主代码列时,关系数据库管理系统包括以下步骤:检查主代码值是否唯一;如果主代码值不唯一,拒绝插入或修改;检查主代码的每个属性是否为空;如果只有一个属性为空,拒绝插入或修改;实体完整性检查和默认处理(续), 检查记录中的主代码值是否唯一的一种方法是扫描整个表以顺序判断表中每个记录的主代码值是否与要插入记录的主代码值(或修改后的新主代码值)相同,实体完整性检查和默认处理(续)。 表格扫描的缺点是耗时的。为了避免对基本表进行全表扫描,RDBMS核心通常会自动在主代码上创建一个索引,该索引通常用作主索引。例如,新插入记录的主代码值是25。通过主代码索引,从B树的根节点搜索和读取三个节点:根节点(51)、中间节点(1230)和叶节点(152025)。主代码值已经存在,不能插入此记录。第五章数据库完整性。5.1实体完整性5.2参照完整性5.3用户定义的完整性5.4完整性约束命名语句* 5.5域中的完整性限制5.6断言5.7触发5.8摘要,5.2参照完整性,5.2.1参照完整性定义(也称为参照完整性)是指维护表之间的定义关系。您可以使用外键约束、检查约束等。它确保所有表中键值的一致性,确保表之间数据的一致性,并防止数据丢失或不存在的数据在数据库中传播。5.2.2参照完整性检查和默认处理,5.2.1参照完整性定义,CREATETABLE中的关系模型参照完整性定义使用FOREIGNKEY短语来定义哪些列是外来代码,使用REFERENCES短语来指示哪些表被这些外来代码引用,并且参照完整性定义(续),例如,关系SC中的(Sno,Cno)是主要代码。Sno和Cno通过分别参考学生表的主代码和课程表的主代码(示例5.3),定义了标准体系中的参照完整性创建表SC (SNOCHAR (9)不为空,CNOCHAR (4)不为空,等级小,主键(SNO,CNO)。/*在表级别定义实体完整性*/外键(SNO)引用学生(SNO),/*在表级别定义引用完整性*/外键(CNO)引用课程(CNO)/*定义引用完整性*/);5.2参照完整性,5.2.1参照完整性定义5.2.2参照完整性检查和默认处理,参照完整性检查和默认处理,一个参照完整性连接两个表中相应的元组,以添加、删除和修改被参照的表和参照表,这可能会破坏参照完整性,必须进行检查,参照完整性检查和默认处理(续),例如,表SC和Student有四种情况可能会破坏参照完整性。向表:SC中添加一个元组。元组的Sno属性值在表Student中找不到元组,并且其Sno属性值等于它。修改SC表中的元组。修改后,元组的Sno属性值在表Student中找不到元组,并且其Sno属性值等于它。从学生表中删除一个元组会导致SC表中某些元组的Sno属性值在学生表中找不到元组,并且其Sno属性值等于它。修改学生表中某个元组的Sno属性,导致SC表中某些元组的Sno属性的值在学生表中找不到元组,并且其Sno属性的值等于它。参照完整性检查和默认处理(续),表5.1可能违反参照完整性和默认处理,参照完整性检查和默认处理(续),参照完整性默认处理(1)不允许执行not。该策略通常被设置为默认策略(2)级联操作当删除或修改被引用表的元组(学生)导致与引用表(SC)不一致时,则删除或修改导致引用表中不一致的所有元组(3)被设置为空值(SET-NULL),并且当删除或修改被引用表的元组导致不一致时,导致引用表中不一致的所有元组的相应属性被设置为空值。例如,关于完整性检查和默认处理(续),以下两个相关学生(学生编号、姓名、性别、专业编号、年龄)专业(专业编号、专业名称)假设删除了专业表中的一个元组,并且专业编号为12。根据将专业号设置为空的策略,学生表中专业号=12的所有元组的专业号应设置为对应于空的含义:删除一个专业,该专业的所有学生都不确定其专业,并等待重新分配。外部代码、参照完整性检查和默认处理(续)。对于引用完整性,除了定义外部代码之外,它还应该定义外部代码列是否允许空值。请参考动画参照完整性中的第5.2节介绍A数据库系统,参考完整性检查和默认处理(续),示例5.4创建表SC(非空,一个明确说明参考完整性的默认处理示例。CnoCHAR(4)NOTNULL,gradesmalint,primarykey (sno,cno),foreign key(SnO)referencesstudent(SnO)OnDeleteChaskade/* cascade删除sc表中相应的元组*/updatecascade。/*级联更新SC表中的对应元组*/外键(cno)引用进程(CNO) ondeletenoaction/*拒绝删除*/ONUPDATECASCADE/*级联更新SC表中的对应元组*/)当更新进程表中的CNO时;第5章数据库完整性、5.1实体完整性、5.2引用完整性、5.3用户定义的完整性、5.4完整性约束命名语句*5.5域完整性限制、5.6断言、5.7触发器、5.8摘要、5.3用户定义的完整性、用户定义的完整性:特定应用程序数据必须满足的语义要求。它指的是特定关系数据库的约束条件,反映了特定应用程序中涉及的数据必须满足的特定业务规则。除了前两个,用户认为它很重要。维护系统保证的机制有四种方式:约束、规则、默认值和触发器。关系数据库管理系统提供了一种机制来定义和检查用户定义的完整性,它不需要由应用程序承担,5.3用户定义的完整性,5.3.1属性约束,5.3.2元组约束,以及1。属性约束的定义。当CREATETABLE时,属性上的约束列值被定义为非空。列值是UNIQUE。检查列值是否满足条件表达式(检查)。属性上约束的定义(续),(1)示例5.5不允许空值。定义供应链表时,声明Sno、Cno和等级属性不允许空值。创建表sc (snochar (9)不为空,cnochar (4)不为空,gradesmalintnotnull,primarykey (sno,cno),/*如果表级实体完整性的定义意味着Sno和Cno不允许空值,则列级不允许空值的定义可能不会写入*/);对属性的约束定义(续),(2)列值是唯一的示例5.6建立部门表,要求部门名称dname列值是唯一的,部门编号deptno列是创建表部门的主要代码(Deptno数值(2),Dnamechar (9)唯一不为空,/*要求Dname列值是唯一的,不能为空*/locatchar (10),主键(Deptno);属性约束的定义(续),(3)使用CHECK短语指定列值应满足示例5.7学生表中的Ssex只允许取“男性”或“女性”。创建表学生(snochar (9) primarykey,snamechar (8)不为空,Ssexcar (2)检查(ssexinin(男性,女性),/*性别属性ssex只允许男性或女性*/sageSallint,SDeptchar(20);属性约束的定义(续),示例5.8SC表的等级值应介于0和100之间。创建表sc (snochar (9),cnochar (4),gradesmalintcheck(等级=0,等级=100),/*等级值范围从0到100 */primarykey (sno,cno),foreignkey (sno)参考学生(sno),foreignkey (cno)参考课程(cno);当插入元组或修改属性值时,关系数据库管理系统检查是否满足对属性的约束,如果不满足,则拒绝操作,2。属性的约束检查和默认处理,5.3用户定义的完整性,5.3.1属性约束,5.3.2元组约束,1。元组约束的定义,当CREATETABLE时,CHECK短语可用于定义元组约束,即元组级约束与属性值约束相比,可设置多个属性值的相互约束,元组约束的定义(续),示例5.9当学生的性别为男性时,其姓名不能以ms开头。Create table student (snochar (9),Snamecar(8)not null,Ssexcar (2),sagesmallint,sdeptchar (20),primarykey (sno),check (ssex=女性或姓名)%)/*定义元组中sname和ssex两个属性值之间的约束条件*/)。性别是能够通过考试的女性的元组,因为ssex=女性已经建立;当性别为男性时,名称不能以ms开头。当插入元组或通过检查元组上的约束条件检查和默认处理来修改属性值时,关系数据库管理系统检查元组上的约束条件是否满足,如果不满足,则操作被拒绝,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《玲玲的画》公开课教案
- 2024年特种设备安全教育、培训制度
- 2024等腰三角形三线合一
- 《梦游天姥吟留别》教学设计及课件
- 《对印版画》教案
- 幼儿园科学知识点测试题及答案
- 自动化工程测试题目及答案解析集
- 职场软技能自测题与答案
- 班干部竞选(可编辑)小学生
- 2025中国农业科学院作物科学研究所作物倍性育种技术创新研究组科研助理招聘2人笔试考试备考题库及答案解析
- 民非企业财务管理制度
- 购物卡互通协议书
- GB/T 14600-2025电子气体一氧化二氮
- 机动车C4D驾照试卷及答案
- 顺丰公司安全管理制度
- 下一步生产计划和调度计划
- 空间碎片监测与防护-深度研究
- 2024年内蒙古对口高考中职英语试卷
- 液压锁紧回路课件
- 《肿瘤姑息治疗》课件
- 24秋国家开放大学《软件工程》形考任务1-4参考答案
评论
0/150
提交评论