- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章数据库保护机制
第8章数据库保护机制 数据库中存放着大量的有价值的信息, 因此采用怎样行之有效的措施保护数据库 是非常重要的。 比如,保护数据库数据的正确性、有 效性,保护数据库安全性,保护数据库既 使是出现各种故障,也能对其进行有效地 恢复等。 第8章数据库保护机制 8.1 完整性控制 8.2 安全性控制 8.3 并发控制 8.4 数据库备份与恢复 8.1 数据库的完整性 数据库的完整性指数据的正确性和有效性。 数据库的完整性是为了防止数据库中存在 不符合实际语义的数据,防止错误信息的 输入和输出。 数据库是否具备完整性关系到数据库系统 能否真实地反映现实世界,因此维护数据 库完整性是非常重要的。 8.1.1 完整性规则 完整性规则是指附加在数据库数据上的语义约束条 件。 DBMS的完整性控制机制应具有三个方面的功能: 1. 完整性定义功能。提供定义完整性规则的机制; 如:性别IN {‘男’,’女’} 2.完整性检查功能。检查用户发出的操作请求是否 违背了完整性约束条件; 3.如果发现用户操作违背了完整性规则,触发的过 程(如撤销用户操作) 。 8.1.1 完整性规则 完整性规则作用的对象可以是关系、元组 和列。因此完整性规则可分为: 1.列上的约束:列的类型、取值范围、精度、 排序等约束。 2.元组的约束:元组中各个字段间的联系的 约束。 3.关系的约束:若干元组之间、关系集合上 以及关系之间的联系的约束。 8.1.1 完整性规则 完整性约束又可分为:静态约束、动态约 束。 1.静态约束:是指数据库在每一确切状态时, 数据对象所满足的约束条件,它反映数据 库状态合理性的约束。这是最重要的一类 约束。 2.动态约束:是指数据库从一种状态转变到 另一状态时,新、旧值之间所满足的约束 条件,它是反映数据库状态变迁的约束。 8.1.1 完整性规则 上述两种分类结合起来,形成了6种完整 性约束。 静态列级约束 静态元组约束 静态关系约束 动态列级约束 动态元组约束 动态关系约束 8.1.2 SQL Server的完整性 本节介绍SQL Server的完整性控制策略。 SQL Server数据完整性有四种类型: 实体完整性、域完整性、 参照完整性、用户定义完整性 8.1.2 SQL Seerver的完整性 1. 实体完整性 构成主键的主属性不能取空值。体现为: UNIQUE唯一性约束(不允许为null) PRIMARY KEY 约束(不允许为null) 例: CREATE TABLE 选课 (学号CHAR(8) NOT NULL,……, PRIMARY KEY(学号,课号) , … ) 8.1.2 SQL Server的完整性 2. 域完整性 属性列(字段)满足的约束条件。体现为: (1)数据类型的约束:包括数据的类型、长度、 单位、精度等。 (2)数据格式的约束 例:规定学号的前两位表示入学年份,中 间两位表示系的编号,后四位为班级号和序 号,xxxxxxxx。出生日期:YY-MM-DD 8.1.2 SQL Server的完整性 (3)取值范围或取值集合的约束. 例如:规定成绩的取值范围为0~100 域级check子句 (4)对空值的约束:有的列允许取空值,有的 列不允许取空值。 (5)设置默认值default约束。 例8.1 建立关系模式teacher(tno,tname,sex,age,sfID,join_date),要求主键为工号tno,不能为空且必须是数字字符;姓名非空;年龄必须介于18-65之间;身份证号,必须唯一;性别只能是‘男’或‘女’;进入单位日期默认状态取系统时间。 CREATE TABLE teacher( Tno VARCHAR(6) NOT NULL CHECK(isnumeric(tno)=1), Tname VARCHAR(10)NOT NULL, Sfid CHAR(18) UNIQUE, Sex CHAR(2)CHECK (sex IN(男,女)), Age INT CHECK(age BETWEEN 18 AND 65), Join_date DATETIME DEFAULT GETDATE(), PRIMARY KEY(tno)) 8.1.2 SQL Server的完整性 3. 参照完整性 两个表之间满足的引用关系的约束。即:外键表中外键的取值参照主键表中主键的值。体现为: CREATE TABLE 选课 (…. , FOREIGN KEY(学号) REFERENCES 学生(学号) ON UPDATE CASCADE| NO ACTION ON DELETE CASCADE| NO ACTION , …) 默认受限删除或更新,但可设置为CASCADE| NO AC
文档评论(0)