文档详情

数据库系统概论第五章章数据库完整性剖析.ppt

发布:2017-06-03约6.07千字共16页下载文档
文本预览下载声明
第五章 数据库完整性 要点和难点 数据库完整性的含义 数据库完整性控制方法 SQL Server 2000中的完整性控制 第五章 数据库完整性 数据库的完整性是指:数据的正确性和相容性 数据库的安全性是指:保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏 数据的完整性和安全性是两个不同的概念,但它们又密切相关 完整性防止数据库中存在不符合语义的数据(即垃圾进垃圾出), 安全性防止恶意破坏和非法存取(即非法用户和操作)。 密切相关表现在可采用相同的机制来实现完整性和安全性。 第五章 数据库完整性 为了维护数据库的完整性,DBMS必须能够: 1、提供定义完整性约束条件的机制 2、提供完整性检查的方法 3、违约处理 完整性定义与检查控制由DBMS实现,不必由应用程序来完成,从而减轻了应用程序员的负担。 目前的关系系统中对违反实体完整性和用户自定义完整性一般采用拒绝执行方式。 第五章 数据库完整性 5.1 实体完整性 实体完整性在CREATE TABLE中用PRIMARY KEY 定义,例如: CREATE TABLE SC ( Sno CHAR(9), Cno CHAR(4), Grade SMALLINT, PRIMARY KEY(Sno, Cno) ) 以后每当用户程序对基本表插入一个元组或修改一个元组的主码时,DBMS将按照实体完整性规则自动进行检查,包括: 1、检查主码值是否唯一,若不唯一则拒绝插入或修改 2、检查各主属性是否为空,只要有一个为空就拒绝插入或修改 第五章 数据库完整性 5.2 参照完整性 参照完整性在CREATE TABLE中用FOREIGN KEY 定义外码,用REFERENCES指明被参照表的主码。 实现参照完整性时要考虑的几个问题 1、外码能否接受空值 外码在本关系中是主属性时不能取空值 2、被参照关系中删除元组时的违约处理 级联删除、拒绝删除、置空删除(不一定可以) 3、被参照关系中修改元组的主码时的违约处理 级联修改、拒绝修改、置空修改(不一定可以) 4、参照关系中插入元组时的违约处理:拒绝插入 5、参照关系中修改元组的外码时的违约处理:拒绝修改 第十章 数据库安全性 10.3 SQL Server 2000中完整性 一、CREATE TABLE CREATE TABLE [ database_name.[ owner ] .| owner.] table_name ( { column_definition | column_name AS computed_column_expression | table_constraint ::= [ CONSTRAINT constraint_name ] } | [ { PRIMARY KEY | UNIQUE } [ ,...n ] ) column_definition ::= { column_name data_type } [ COLLATE collation_name ] [ [ DEFAULT constant_expression ] | [ IDENTITY [ ( seed , increment ) [ NOT FOR REPLICATION ] ] ] ] [ ROWGUIDCOL] [ column_constraint ] [ ...n ] 第十章 数据库安全性 10.3 SQL Server 2000中完整性 column_constraint ::= [ CONSTRAINT constraint_name ] { [ NULL | NOT NULL ] | [ { PRIMARY KEY | UNIQUE } [ CLUSTERED | NONCLUSTERED ] [ WITH FILLFACTOR = fillfactor ] [ON {filegroup | DEFAULT} ] ] ] | [ [ FOREIGN KEY ] REFERENCES ref_table [ ( ref_column ) ]
显示全部
相似文档