文档库 最新最全的文档下载
当前位置:文档库 › 数据库第4章数据库完整性练习题及答案

数据库第4章数据库完整性练习题及答案

数据库第4章数据库完整性练习题及答案

第4章数据库完整性练习题

1.完整性检查和控制的防范对象是(),防止它们进入数据库。安全性控制的防范对象是(),防止他们对数据库数据的存取。

A.不合语义的数据

B.非法用户

C.不正确的数据

D.非法操作

2.找出下面SQL命令中的数据控制命令()。

3.下述SQL命令中,允许用户定义新关系时,引用其他关系的主码作为外码的是()。

D. SELECT

4.下述SQL命令的短语中,定义属性上约束条件的是()。

NULL短语短语短语短语E.

数据库完整性

第五章数据库完整性 一、选择题 1.有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于__________。 A 实体完整性约束 B 参照完整性约束 C 用户自定义完整性约束 D 关键字完整性约束 【解答】C 2.完整性约束有两大类型,其中一种是静态约束,下面( c )不属于静态约束。 A.固有约束B.隐含约束C.语义约束D.显示约束 【解答】C 3.数据库的破坏一般来自四个方面,其中__________是属于完整性约束问题。 A.系统故障B.并发所引起的数据不一致C.人为的破坏 D.输入或更新数据库的数据有误,更新事务未遵守保持数据库一致性的原则 【解答】D 4. ________子句能够实现关系参照性规则。 A. PRIMARY KEY B. NOT NULL C. FOREIGN KEY D. FOREIGN KEY...REFERENCES... 【解答】D 二、填空题 1. 数据库的是指数据的正确性和相容性 【解答】完整性 2.完整性约束是指和。 【解答】实体完整性,参照完整性 3.实体完整性是指在基本表中,。 【解答】主属性不能取空值 4.参照完整性是指在基本表中,。 【解答】外码可以是空值或者另一个关系主码的有效值 5.SQL标准使用了一系列概念来描述完整性,包括关系模型的________ 、________和 ________完整性。 【解答】实体完整性参照完整性用户定义 6.数据库完整性的定义一般由SQL的________ 语句来实现。它们作为数据库模式的一部 分存入________中。

【解答】DDL 数据字典 7.关系模型的实体完整性在________ 中用________定义。 【解答】CREATE TABLE 、PRIMARY KEY 二、问答题 1.什么是数据库的完整性? DBMS的完整性子系统的功能是什么? 【解答】数据库完整性是指数据库中数据的正确性、有效性和相容性。DBMS 的完整性控制机制至少包括完整性约束的定义机制和完整性约束的检查机制。 DBMS完整性子系统的功能是: (1)监督事务的执行,并测试是否违反完整性规则; (2)如有违反,则采取恰当的操作,如拒绝、报告违反情况,改正错误等方法进行处理。2.完整性规则由哪几个部分组成?关系数据库的完整性规则有哪几类? 【解答】完整性规则由三部分组成: 触发条件:即什么时候使用规则进行检查; 约束条件:即要检查什么样的错误; ELSE子句:即查出错误后该如何处理。 完整性规则有以下三类: 域完整性规则,用于定义属性的取值范围; 域联系的规则,定义一个或多个关系中,属性值间的联系、影响和约束。 关系完整性规则,定义更新操作对数据库中值的影响和限制。 3.试详述SQL中的完整性约束机制? 【解答】SQL中的完整性约束规则有主键约束、外键约束、属性值约束和全局约束等多种形式。 △主键约束。它是数据中最重要的一种约束。在关系中主键值不允许空,也不允许出现重复,体现了关系要满足实体完整性规则。主键可用主键子句或主键短语进行定义。 △外键约束。根据参照完整性规则,依赖关系中外键或者为空值,或者是基本关系(参照关系)中的该键的某个值。外键用外键关系子句定义,并考虑删除基本关系元组或修改基本关系的主键值的影响,依赖关系可按需要采用RESTRICT、SET NULL、CASCADE方式。△属性值约束。当要求某个属性的值不允许空值时,那么可以在属性定义后加上关键字:NOT NULL ,这是非空值约束。还可以用CHECK子句对一个属性值加以限制以及使用域约束子句CREAT DOMAIN 定义新域并加以属性值检查。 △全局约束。在关系定义时,可以说明一些比较复杂的完整性约束,这些约束涉及到多个属性间的联系或不同关系间的联系,称为全局约束。主要有基于元组的检查子句和断言。前者是对单个关系的元组值加以约束,后者则可对多个关系或聚合操作有关的完整性约束进行定义。 4. DBMS的完整性控制机制应具有哪些功能?

8实验八 数据库的完整性

实验八实现数据完整性一、实验目的 (1)实现数据完整性的概念及实施数据完整性的重要性。 (2)掌握数据完整性的分类。 (3)掌握完整性约束的添加、删除方法。 (4)掌握通用默认值的创建、实施与删除方法。 (5)掌握规则的创建、实施与删除方法。 (6)掌握级联删除、级联修改方法。 二、实验内容 1、完整性约束的添加、删除 (1)通过SQL Server Management Studio实施约束 a.为表Student的Birth字段创建检查约束,使输入的生日日期小于系统日期。 ①、选择Student表,右击→设计,打开Student表 ②、选择Birth一行,右击→CHECK约束,打开界面如下图所示 ③、单击“添加” ④、在表达式中写入:Entrance_date

b.为表Student的Sdept字段,设置默认值约束,默认值取’计算机系’。选择Sdept一行,在其列属性中修改其默认值 c.为Student表的Sname字段添加唯一性约束。 选择Sname一行,右击→索引/键 出现如下界面:

单击“添加”,在类型中选择“唯一键”,在列中选择“Sname”,名称自定义 最后单击“关闭”退出

d.将SC表的Sno,cno字段设置外键约束,约束名自已取,并允许级联删除与级联更新。(此要求在SQL Server2008R2中无法做出)若已存在外键约束,请先删除。 ①、选中Sno,右击→单击“关系”,出现如下信息,可见已存在外键约束 选中键,点击删除,完成约束删除 ②、添加约束: 选中Sno,右击,选择“关系”,出现如下信息,

数据库概论试题-数据库完整性

第10章数据库完整性 1.数据库的完整性是指数据的__正确性、相容性__。 2.什么是数据库的完整性? 答:数据库的完整性是指数据的正确性和相容性。 3.SQL标准使用了一系列概念来描述完整性,包括关系模型的____实体完整性、参照完整性、用户定义___完整性。 4.数据库的完整性概念与数据库的安全性概念有什么区别和联系? 答:数据的完整性和安全性是两个不同的概念,但是有一定的联系。 前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出(GarbageInGarbageOut)所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。 5.数据库完整性的定义一般由SQL的__DDL数据字典__语句来实现。它们作为数据库模式的一部分存入中。 6.什么是数据库的完整性约束条件?可分为哪几类? 7.关系模型的实体完整性在__CREATETABLE__中用__PRIMARYKEY___定义。 8.DBMS的完整性控制机制应具有哪些功能? 答:DBMS的完整性控制机制应具有三个方面的功能: 1.定义功能,即提供定义完整性约束条件的机制。 2.检查功能,即检查用户发出的操作请求是否违背了完整性约束条件。 3.违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。 9.为了避免对基本表进行全表扫描,RDBMS核心一般都对__主码__自动建立一个__索引__。 10.RDBMS在实现参照完整性时需要考虑哪些方面? 11.关系模型的参照完整性在__CREATETABLE__中用___FOREIGNKEY__短语定义哪些列为外码列,用__REFERENCES__短语指明这些外码参照哪些表的主码。 12.假设有下面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门(部门号,名称,经理名,电话),其中部门号为主码;用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:定义每个模式的主码;定义参照完整性;定义职工年龄不得超过60岁。 CREATETABLEDEPT(DeptnoNUMBER(2),DeptnameV ARCHAR(10),ManagerV ARCHAR(10), PhoneNumberChar(12)CONSTRAINTPK_SCPRIMARYKEY(Deptno));CREATETABLEEMP(E mpnoNUMBER(4),EnameV ARCHAR(10),AgeNUMBER(2),CONSTRAINTC1CHECK(Aage<= 60),JobV ARCHAR(9),SalNUMBER(7,2),DeptnoNUMBER(2),CONSTRAINTFK_DEPTNOFOR EIGNKEY(Deptno)REFERENCESDEPT(Deptno)); 13.关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的? 答:对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性。具体的处理可以参见上面第5题或《概论》10.2中相应部分。

浅析数据库安全性控制的一般方法

数据库安全性控制的一般方法 数据库安全性控制的一般方法(SQL采取DAC控制用户的存取权限) 数据库的安全性是指保护数据库,以防止不合法的使用造成的数据泄密、更改或破坏。数据库管理系统安全性保护,就是通过种种防范措施以防止用户越权使用数据库。安全保护措施是否有效是衡量数据库系统的主要性能指标之一。 9.1 数据库安全性控制的一般方法 9.1.1 安全性级别 对数据库不合法的使用称为数据库的滥用。数据库的滥用可分为无意滥用和恶意滥用。无意滥用主要是指经过授权的用户操作不当引起的系统故障、数据库异常等现象。恶意滥用主要是指未经授权的读取数据(即偷窃信息)和未经授权的修改数据(即破坏数据)。 数据库的完整性尽可能的避免对数据库的无意滥用。数据库的安全性尽可能避免对数据库的恶意滥用。 为了防止数据库的恶意滥用,可以在下述不同的安全级别上设置各种安全措施。 (1)环境级:对计算机系统的机房和设备加以保护,防止物理破坏。 (2)职员级:对数据库系统工作人员,加强劳动纪律和职业道德教育,并正确的授予其访问数据库的权限。 (3)操作系统级:防止未经授权的用户从操作系统层着手访问数据库。 (4)网络级:由于数据库系统允许用户通过网络访问,因此,网络软件内部的安全性对数据库的安全是很重要的。 (5)数据库系统级:检验用户的身份是否合法,检验用户数据库操作权限是否正确。

本节主要讨论数据库系统级的安全性问题。 9.1.2 数据库安全控制的一般方法 数据库系统中一般采用用户标识和鉴别、存取控制、视图以及密码存储等技术进行安全控制。 1( 标识与鉴别 用户标识和鉴别是DBMS提供的最外层保护措施。用户每次登录数据库时都要输入用户标识,DBMS进行核对后,对于合法的用户获得进入系统最外层的权限。用户标识和鉴别的方法很多,常用的方法有: (1)身份(Identification)认证 用户的身份,是系统管理员为用户定义的用户名(也称为用户标识、用户账号、用户ID),并记录在计算机系统或DBMS中。用户名是用户在计算机系统中或DBMS中的惟一标识。因此,一般不允许用户自行修改用户名。 身份认证,是指系统对输入的用户名与合法用户名对照,鉴别此用户是否为合法用户。若是,则可以进入下一步的核实;否则,不能使用系统。 (2) 口令(Password)认证 用户的口令,是合法用户自己定义的密码。为保密起见,口令由合法用户自己定义并可以随时变更。因此,口令可以认为是用户私有的钥匙。口令记录在数据库中。 口令认证是为了进一步对用户核实。通常系统要求用户输入口令,只有口令正确才能进入系统。为防止口令被人窃取,用户在终端上输入口令时,口令的内容是不显示的,在屏幕上用特定字符(用“*”或“?”的较为常见)替代。 (3)随机数运算认证 随机数认证实际上是非固定口令的认证,即用户的口令每次都是不同的。鉴别时系统提供一个随机数,用户根据预先约定的计算过程或计算函数进行计算,并将

数据库完整性

大连海事大学 数据库原理课程实验大纲 实验名称:实验七完整性实验学时: 2 适用专业: 实验环境: 执笔者:编写日期: 1实验目的 (1)掌握实体完整性、参照完整性和用户自定义完整性约束的创建方法。 (2)掌握完整性约束的运行检查机制。 (3)掌握参照完整性的级联删除和修改方法。 (4)掌握正确设计关系模式完整性约束的方法。 2实验内容 2.1掌握实体完整性约束的创建和使用方法 (1)创建表时定义由一个属性组成的主键(给约束命名)。 (2)创建表时定义由两个或两个以上属性组成的主键(给约束命名)。 (3)删除以上两个主键约束。 (4)利用ALTER TABLE语句定义上述两个主键。 2.2掌握参照完整性约束的创建和使用方法 (5)创建表时定义一个列级参照完整性约束(给约束命名)。 (6)创建表时定义一个表级的由两个属性组成的参照完整性约束(给约束命名)。(7)设计数据更新语句检查参照完整性约束是否起作用。

(8)删除上述完整性约束。 (9)利用ALTER TABLE 建立上述参照完整性约束,并且规定UPDATE/DELETE时的动作。 (10)设计数据更新语句检查参照完整性约束及其相应的动作是否起作用。 2.3掌握用户自定完整性约束的创建和使用方法 (11)定义一个检查约束,检查其值在某个取值范围内,并设计相应的更新语句检查该约束是否起作用 (12)定义一个检查其值符合某个匹配模式的检查约束(使用LIKE),并设计相应的更新语句检查该约束是否起作用 (13)定义一个检查其值符合某个正则表达式的检查约束(使用SIMILAR TO),并设计相应的更新语句检查该约束是否起作用 (14)定义一个UNIQUE约束,并设计相应的更新语句检查该约束是否起作用 (15)定义一个DEFAULT约束,设计一个INSERT语句检查该约束是否起作用。 3实验要求 (1)深入复习教材第五章数据库完整性约束内容。 (2)根据书上的例子,针对TPCH数据库模式设计各种完整性约束,每种类型完整性约束至少要设计一个,描述清楚完整性约束要求,设计和运行触发完整性约束检查的数据更新语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。也可以按照附1所列示例做实验。(3)实验步骤和实验总结中要详细描述实验过程中出现的问题、原因和解决方法。 (4)思考题:完整性约束的违约处理有哪几种方式 4实验步骤 4.1掌握实体完整性约束的创建和使用方法 (1)创建表时定义由一个属性组成的主键(给约束命名)。

数据库完整性(习题)

一、选择题 1.完整性检查和控制的防范对象是(),防止它们进入数据库。安全性控制的防范对象是(),防止他们 对数据库数据的存取。 A.不合语义的数据 B.非法用户 C.不正确的数据 D.非法操作 2.找出下面SQL命令中的数据控制命令()。 3.下述SQL命令中,允许用户定义新关系时,引用其他关系的主码作为外码的是()。 D. SELECT 4.下述SQL命令的短语中,不用于定义属性上约束条件的是()。 NULL短语短语短语短语 二、填空题 1.数据库的完整性是指数据的正确性和相容性。 2.关系模型的实体完整性在CREATE TABLE中用primary key 关键字来实现。 3.检查主码值出现不唯一和有一个为空违约情况时,则DBMS拒绝插入或修改。 4.关系模型的参照完整性在CREATE TABLE中用foreign key关键字来实现。 5.当参照完整性检查出现违约情况时,则DBMS可以采用拒绝、级联和设置为空策略处理。 6.参照完整性的级连操作的关键字是cascade 。 7.在CREATE TABLE中定义属性上的约束条件,包括not null 、unique 和check。 8.在CREATE TABLE中定义属性上的约束条件,检查列值唯一用unique 关键字。 9.关系模型的元组上的约束条件的定义,在CREATE TABLE中用check关键字来实现。 10.在Sno(学号)列上创建约束,要求Sno的值在18至22岁之间,约束名Sno_CK。请写出对应的完整性 命名子句constraint Sno_CK primary key check(sno between 18 and 22)。 1.A C ;BD 2. A 3. C 4. D 三、综合题 1.假设有下面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码; 部门(部门号,名称,经理名,电话),其中部门号为主码。用SQL 语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:定义每个模式的主码;定义参照完整性;定义职工年龄不

(安全生产)数据库的安全性与完整性

数据库的安全性和完整性 一、实验目的和要求 1、理解数据库安全性和完整性的概念。 2、掌握SQL Server2000中有关用户、角色及操作权限管理等安全性技术。 3、掌握SQL Server2000中有关约束、规则、默认值的使用等完整性技术。 二、实验内容和步骤 ㈠数据库的安全性 1、SQL Server的安全模式 认证是指来确定登陆SQL SERVER的用户的登陆账号和密码是否正确,以此来验证其是否具有连接SQL SERVER的权限,但是通过认证阶段并不代表能够访问数据,用户只有在获取访问数据库的权限之后才能对服务器上的数据库进行权限许可下的各种操作。 ⑴设置SQL Server的安全认证模式:使用企业管理器来设置,步骤如下: Step1: 展开服务器组,右击需要设置的SQL服务器,在弹出菜单中选择“属性”。 Step2: 在弹出的SQL服务器属性对话框中,选择“安全性”选项卡。 Step3: 选择仅Windows选项(NT/2000验证模式) 或SQL Server和Windows选项(混合模式)。 注:设置改变后,用户必须停止并重新启动SQL Server服务,设置才生效。 如果设置成NT认证模式,则用户在登录时输入一个具体的登陆名时,SQL SERVER将忽略该登录名。 ⑵添加SQL Server账号:若用户没有Windows NT/2000账号,则只能为他建立SQL Server账号。 ①利用企业管理器 Step1: 展开服务器,选择安全性/登录。 Step2: 右击登录文件夹,出现弹出式菜单。 Step3: 在弹出式菜单中选择“新建登录”选项后,就会出现一个登录属性对话框。 step4: 在名称框中输入一个不带反斜杠的用户名,选中SQL Server身份验证单选按钮,并在密码框中输入口令(如下图所示)。

[安全防范,数据库,计算机]浅析计算机数据库的安全防范技术

浅析计算机数据库的安全防范技术 1做好计算机数据库安全防范的重要意义 1.1做好数据库安全管理就是保护数据资源的完整性和真实性。数据库是计算机应用程序使用者保存资料的仓库,无论是企业用户、政府用户还是个人用户都逃脱不了与数据库之间的关系,任何一个应用程序、应用系统的使用都需要有数据库来保存资料。而任何数据库安全都会造成数据信息的泄漏或者损害,其后果将是不堪设想的。最典型的莫过于美国军方系统的泄密,这其实也是一起数据库安全问题,因此做好数据库安全其实就是在保护所储存资料的安全性和完整性,避免因不法侵害而导致资源丢失或损害。 1.2做好数据库安全管理就是保护企业网站或系统的正常运作。无论是采取两层架构还是三成架构,计算机应用程序最终都必须通过对数据库的访问来实现程序的正常运行,常见的如QQ聊天工具、各大网站的门户网站、办公软件、办公系统等,其使用和运行都必须访问数据库。一旦数据库出现问题,那么相应的系统和软件就会崩溃无法运行,网站就会瘫痪。所以只有搞好数据库安全管理,避免数据库遭受攻击或者出现其他损害,才能够确保网站或计算机应用系统的正常运行。 1.3做好数据库安全管理就是要减少经济损失。数据库遭受攻击或者人为损坏主要会带来两方面的经济损害,一种是直接损失,即数据库损毁、应用系统和网站崩溃的损失,计算机用户必须重新投入大量的人力物力才能把系统回复到原来状态,势必造成巨大的经济成本。另一种是间接损失,如银行信息泄露造成的储户资金被盗取盗用的危险,企业系统资料被盗取造成的企业机密泄漏的危险。这些也同样会造成巨大的经济成本,其危害甚至远远高于系统瘫痪的损失。因此,保护好数据库安全就是在保护计算机用户的经济利益,降低用户因数据库安全问题而带来的经济损失。 2应用多种技术全而防范计算机数据库安全 2.1利用三层架构搭建应用系统框架,提高数据库安全性 在三层架构出现之间,计算机应用系统的编写主要是两层架构,在这种架构下,计算机应用系统只有两个层次,一个是客户端,一个是服务器,由客户端直接把命令下达给服务器,从而实现对数据库的操作。由于系统缺乏一个对前端命令过滤分析的机制,因此这种架构系统非常容易遭受攻击。而三层架构则是在表现层和数据层之间添加了业务层,所有的命令都要经过命令层进行分析处理,再由命令层向数据库进行数据调取,最后再传回给客户端供计算机用户使用。这样就可以通过业务层对命令进行过滤分析,甚至设置相应的访问权限,就较好的保护了后端数据层,提高了系统安全性能减少了系统遭受攻击的可能性。 2.2合理选择编程语言,减少系统漏洞,加强数据库防护 同样的应用系统使用不同的编程语言也会带来不同的安全防护效果,比如普通网站的架构,如果是适用P HP或者.N ET进行编写,其安全性就不如J AVA语言那么高,这是由于不同的编程语言有其自身的特性和架构方法所引起的。相比较而言,J AVA语言具有较好的跨平台、多线程、安全性等特性,所编写的应用系统安全性会更高,这也是目前很多门户网站

实验一创建数据库及关系表数据完整性约束

实验一创建数据库及关系表、数据完整性约束 一、实验目的 1.???掌握SQL Server数据库管理系统的使用,能够在该环境中进行日常数据库操作; 2.???掌握在SQL Server中使用图形化工具创建数据库的方法; 3.掌握建立关系表的语句,掌握定义主码约束及外码约束的语句; 4.掌握修改表结构的语句。 5.掌握数据完整性约束的功能。 二、实验内容和步骤 1.创建符合如下条件的数据库: 数据库的名字为:Students 数据文件的逻辑文件名为:Students_dat,存放在用户盘某目录下; 文件的初始大小为:5MB;增长方式为自动增长,每次增加1MB。 实验结果: 2.在已建立的Students数据库中,确定出各表中的数据类型,写出创建满足下述条件的四张表的SQL语句,并查看执行结果。 实验结果: 3.写出实现如下操作的SQL语句,并查看执行结果: (1)在选课表中添加一个新的修课类别列:列名为:选课类别,类型为char(4)。(2)将课程表中的学分列的类型改为:tinyint(微整型,取值范围在0~255)。(3)删除学生表的专业列。 (4)为教师表添加主码约束,其主码列为:教师号。

4.在Students数据库中,编写建立满足完整性要求的定义表的SQL语句,执行并观察执行结果。 (1)图书表,结构如下: 书号:统一字符编码定长类型,长度为6,主码, 书名:统一字符编码可变长类型,长度为30,非空, 第一作者:普通编码定长字符类型,长度为10,非空, 出版日期:小日期时间型,小于等于当前系统日期,(用getdate()实现)印刷数量:小整型,取值范围:1000~5000,默认为4000, 价格:定点小数,小数部分一位,整数部分3位。 实验结果: (2)书店表,结构如下: 书店编号:统一字符编码定长类型,长度为6,主码, 店名:统一字符编码可变长类型,长度为30,非空, 电话:普通编码定长字符类型,12位长,取值形式:010-8位数字 地址:普通编码可变长字符类型,40位长。前两个字符必须是:北京。 实验结果: (3)图书销售表,结构如下: 书号:统一字符编码定长类型,长度为6,非空, 书店编号:统一字符编码定长类型,长度为6,非空, 销售日期:小日期时间型,非空,默认值为系统当前日期, 销售数量:微整型,取值大于0,主码(书号,书店编号,销售日期); 书号为引用“图书表”的外码;书店编号为引用“书店表”的外码。

数据库完整性与安全性实验

北京邮电大学 实验报告 课程名称数据库系统概念 实验名称数据库完整性与安全性实验教师______ 成绩_________ __

实验目的: 1.通过对完整性规则的定义实现,熟悉了解SQL Server数据库中实体完整性、参照完整 性、断言等完整性保证的规则和实现方法,加深对数据完整性的理解。 2.通过对安全性相关内容的定义,熟悉了解SQL Server数据库中安全性的内容和实现方 法,加深对数据库安全性的理解。 实验内容: 一) 完整性实验与要求: 一、建表阶段 1.利用SQL语句,分别定义数据库中各基本表的主键、候选键、外键,实现实体完整性 约束和参照完整性约束。 2.在数据库中选取两张或三张具有外键关联的表,利用语句foreign key-references创建 外键,实现参照完整性约束。 3.根据实际背景,对某些表中的某些特定属性,定义空值、非空约束。 4.建表时,使用check谓词,通过断言,添加如下一些约束: (1)1个MSC最多管理10个BSC。 (2)1个BSC最多管理50个小区/扇区。 (3)1个BTS可以连接至1-3个BSC。 (4)1个MS可以位于1到6个BTS的覆盖范围内。 (5)小区/扇区所使用的频点号在[1,124]之间。 二、主键/候选键约束验证 1. 选取定义了主键的关系表,向该表插入在主属性上取值为空的元组,观察系统反应;选取表中某些或某个元组,修改这些元组在主属性上的取值,或插入新元组,使这些元组与表中已有其它元组的主属性取值相同,观察系统反应; 2. 选取定义了候选键的关系表,向该表插入在候选键属性上取值为空的元组,观察系统反应;选取表中某些或某个元组,修改这些元组在候选键属性上的取值,或插入新元组,

浅析网络环境下数据库安全体系问题

浅析网络环境下数据库安全体系问题 如今,计算机及其网络系统的发展已经成为现代信息系统的发展标志。现代计算机和高速网络正在向着商用化、民用化以及家用化的方向发展,而且在人类社会及经济活动中发挥着至关重要的作用。因此,信息的安全已经成为人们研究与关注的重点。文章对当前网络环境下数据库所面临的威胁作了分析,包括完整性、保密性、可用性以及一致性这四个方面,对加强网络环境下数据库安全体系的构建提出了相应的建议。 标签:网络环境;数据库安全体系;威胁;建议 1 概述 众所周知,开放性是网络环境最显著的特点,人们对于网络的利用率正在日益提升。如果我们把网络环境比作市场,那么该市场中具备丰富的信息与资源,人们可以在这个开放的市场中自由进行数据的交换与传输。在网络环境中,这些信息与资源需要数据库的承载,网络数据库与其他数据库最显著的特点在于其能够实现资源共享[1]。我们平时所接触到的网站、社交软件等,都是在网络数据库的支持下发展起来的。人类生产生活离不开网络,甚至社会对网络系统的依赖性也越来越强。因此,我们必须对网络环境下数据库安全体系问题进行研究。 2 网络环境下数据库所面临的威胁 2.1 完整性 所谓数据库的完整性主要是指确保其内部数据不被破坏与删除。在操作系统中,网络数据库系统通过文件的形式进行管理,对入侵者而言,他们可以在网络下研究操作系统漏洞来窃取或者修改数据库文件,这些操作在网络数据库用户毫无察觉的情况下进行。通过数据库系统可以看出,很多数据库管理员经常对安全隐患及不正当配置进行忽略,数据库厂商也没有提供专业审计接口,或者提供了设计接口,其功能也不健全。此外,我国现阶段网络环境中的数据库系统中,面临着来自多方面的攻击印花UN。例如,SQL Server便有多方面的攻击隐患存在,包含通过网络嗅探方式获取密码、通过SQL Agent绕过访问控制机制、存在于UDP监控器端口上的缓冲区溢出等等。 2.2 保密性 数据库保密性指的是确保数据库数据不被泄露以及未经授权的获取等。SQL Server在进行网络数据交换时,采用了Tabular Data Stream协议,这一过程中如果不进行加密操作,被其他无关人员截取和篡改的可能性非常大。所以,在用户或者应用程序有必要进行数据库访问时,需要有相互交换凭证的过程。为了避免窥探网络通信做出违法行为,要对这些信息进行加密处理。

数据库的完整性

实验七数据库的完整性 一、实验目的 1.理解关系数据库中关于数据库完整性的概念 2.掌握实体完整性的定义方法 3.掌握参照完整性的定义方法 4.掌握用户自定义完整性的方法 二、实验环境(实验的软件、硬件环境) 硬件:PC机软件:SQL2000 三、实验说明 请复习数据库完整性的相关知识点,完成如下实验内容。 四、实验内容 (1)重建orderDB数据库中的表,分别为每张表建立主键,外键。 (2)各表的用户定义的完整性如下: 员工表:员工姓名,电话属性为not null;员工编号构成:年流水号,共8位,第一位为E,如E2008001,年份取雇佣日期的年份;性别:f表示 女,m表示男。 商品表:商品编号、商品名称、商品类别、建立日期设为not null;商品编号构成:年流水号,共9位,第一位为P,如P2*******,年份取建 立日期的年份 客户表:员工编号、姓名、性别、所属部门、职称、薪水设为not null; 客户号构成:年流水号,共9位,第一位为C,如C20080001,年份取 建立日期的年份 订单主表:订单编号的构成:年月日流水号,共12位,如200708090001; 订单编号、客户编号、员工编号、发票号码设为not null;业务员必须是 员工;订货日期和出货日期的默认值设为系统当前日期;订单金额默认 值为0;发票号码建立unique约束。

订单明细表:订单编号、商品编号、数量、单价设为not null。 五、实验步骤 请完成实验内容,并写出具体的实验步骤 六、思考题: 1.什么是数据库的完整性? 2.SQLServer数据完整性的实现方式有(1)声明数据完整性,(2)过程数据完整性,请区别他们的异同和使用情况? 七、总结(实验过程的体会、心得和实验教与学之间还需改进的内容)

数据库的安全性与完整性

4 数据库的安全性与完整性 数据库在各种信息系统中得到广泛的应用,数据在信息系统中的价值越来越重要,数据库系统的安全与保护成为一个越来越值得重要关注的方面。 数据库系统中的数据由DBMS统一管理与控制,为了保证数据库中数据的安全、完整和正确有效,要求对数据库实施保护,使其免受某些因素对其中数据造成的破坏。 一般说来,对数据库的破坏来自以下4个方面: (1)非法用户 非法用户是指那些未经授权而恶意访问、修改甚至破坏数据库的用户,包括那些超越权限来访问数据库的用户。一般说来,非法用户对数据库的危害是相当严重的。 (2)非法数据 非法数据是指那些不符合规定或语义要求的数据,一般由用户的误操作引起。 (3)各种故障 各种故障指的是各种硬件故障(如磁盘介质)、系统软件与应用软件的错误、用户的失误等。 (4)多用户的并发访问 数据库是共享资源,允许多个用户并发访问(Concurrent Access),由此会出现多个用户同时存取同一个数据的情况。如果对这种并发访问不加控制,各个用户就可能存取到不正确的数据,从而破坏数据库的一致性。 针对以上4种对数据库破坏的可能情况,数据库管理系统(DBMS)核心已采取相应措施对数据库实施保护,具体如下: (1)利用权限机制,只允许有合法权限的用户存取所允许的数据,这就是本章4.1节“数据库安全性”应解决的问题。 (2)利用完整性约束,防止非法数据进入数据库,这是本章4.2节“数据库完整性”应解决的问题。 (3)提供故障恢复(Recovery)能力,以保证各种故障发生后,能将数据库中的数据从错误状态恢复到一致状态,此即本章4.3节“故障恢复技术”的内容。 (4)提供并发控制(Concurrent Control)机制,控制多个用户对同一数据的并发操作,以保证多个用户并发访问的顺利进行,此即本章4.4节“并发控制”的内容。

浅析数据库的安全需求与安全技术

浅析数据库的安全需求与安全技术 所谓的数据库安全具体的讲是说保护该库,目的是为了避免不正当使用而导致的信息外泄以及变更等。该库在当前的社工中占有非常关键的位置。文章具体的分析了它的关键意义和安全规定,进而阐述了它的安全方法和相关的技术。 标签:数据库;安全需求;安全技术 1 关于其安全意义 该体系是一个体系软件,具体应用的时候它和别的软件是相同的都要维护。该安全之所以非常关键,关键是因为有如下的一些缘由。第一,在库中放置的总数较多的数据,其重要性和保密级数可以分成如下的一些类型,此类信息为很多的使用人享受,但是因为使用人不一样,所以他们的权限也有差异。所以,该体系要切实的结合不一样的使用人的权限,确保他们获取其所需的,和其权限能够有效对应的一些信息,并非是所有的使用人都能够访问这些信息。此时对使用人开展分类设置,认真的掌控好使用人并更信息库中的信息的权利,进而最大化的降低一个使用人在没有授权的背景中变革信息的几率,而对别的使用人的活动带来一些不合理的干扰。第二,在数据库里,其冗余度不高,如果信息被改动的话,之前的内容就会丢失。所以,要设置信息恢复科技,以此来确保在体系或者是步骤发生问题之后,能够迅速的复原。其次,因为其是联机活动的,所以可以许可很多的使用人一次的开展存取活动,所以要使用合理的方法来避免因此而导致的完整性被干扰的现象。其牵扯到别的软件,所以他的安全还牵扯到其软件和信息的安全。所以,要切实的分析其安全事项,设置综合化的预防方法。 总体上讲,该体系在给我们带来益处的时候,也对使用人提出了更为严苛的安全性的规定。因此,其安全十分的受人们关注。 2 关于其安全威胁和应对方法 它是存在于操作体系以上的,要靠着电脑硬件来活动,因此它的安全性完全的要借助于该体系的安全以及硬件的安全。而且相关的工作者的不当操作以及不法人员的故意攻击同样会影响到其安全性。通過分析如上的两个要素,我们可知,该问题关键有如下的一些。第一,硬件导致的信息丢失。比如存储装置受到影响,体系掉电带来的信息破坏。第二,软件维护不合理导致的信息外泄。比如操作体系之中的不利点或者是缺乏存储机制,又或是干扰到其机制,进而使得信息外泄。第五,电脑放在不安全地方容易被盗听。第六,授权人设置了不合理的维护方法。第七,信息输入不合理。比如在输入之前的时候被改动,关键信息在输入之前被外泄。第八,没有授权的使用人的不正当使用,或者是授权的使用人不顺着设定的权限来活动。其受到的不利现象是多方面的,要想确保其安全性,就要设置合理的安全方法,采用优秀的技术方法,财会确保信息库不被外泄,不被破坏和干扰。

数据库的完整性和安全性实验报告

信息工程学院实验报告 课程名称:《数据库原理》 实验项目名称:数据库的完整性和安全性 一、实 验 目 的: (1)掌握数据库约束的概念; (2)熟悉SQL SERVER 的完整性约束技术。 (3)了解SQL SERVER 的违反完整性处理措施。 (4)了解登录账户的管理理念与具体方法。 (5)了解数据库用户的管理的要则。 (6)了解用户权限管理的内涵与方法。 二、实 验 设 备 与 器 件 Win7 +Sql server 2008 三、实 验 内 容 与 步 骤 (一)测试完整性 运行附录中的SQL 语句,理解SQL 语句中包含的完整性定义。然后执行下面的SQL 语句,看是否能正常运行,若无法执行,请说明原因。 1.对dept 表进行数据增删改,并检查完整性规则 Dept 已存在的完整性规则如下: dno CHAR(2) PRIMARY KEY dname VARCHAR(20) NOT NULL,UNIQUE (1)增加数据 INSERT INTO dept VALUES('D1','计科系');----正常插入 INSERT INTO dept VALUES('D2','电信系');----正常插入 INSERT INTO dept VALUES(NULL,'机械系'); ----违反dno 主键(NOT NULL )规则 INSERT INTO dept VALUES('D2','机械系'); ----违反dno 主键(UNIQUE ) INSERT INTO dept VALUES('D3',NULL); ----违反dname 的NOT NULL 规则

数据库完整性-习题解答

第十章数据库完整性 习题解答和解析 1.什么是数据库的完整性 答:数据库的完整性是指数据的正确性和相容性。 2.数据库的完整性概念与数据库的安全性概念有什么区别和联系 答:数据的完整性和安全性是两个不同的概念,但是有一定的联系。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出(Garbage In Garbage Out)所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。 3.什么是数据库的完整性约束条件可分为哪几类 答:完整性约束条件是指数据库中的数据应该满足的语义约束条件。一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。 静态列级约束是对一个列的取值域的说明,包括以下几个方面: (1)对数据类型的约束,包括数据的类型、长度、单位可精度等; (2)对数据格式的约束; (3)对取值范围或取值集合的约束; (4)对空值的约束; (5)其他约束。 静态元组约束就是规定组成一个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。 静态关系约束是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。常见的静态关系约束有: (1)实体完整性约束; (2)参照完整性约束; (3)函数依赖约束。 动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面:(1)修改列定义时的约束; (2)修改列值时的约束。 动态元组约束是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件。

浅析数据完整性问题

浅析数据完整性问题 在开发C/S结构的大型数据库应用软件时,一般情况下,软件开发人员和数据库设计人员并不是同一个人,这就需要协商好一些即可由程序设计人员解决又可由数据库设计人员来解决的问题,保证数据完整性就是一个这样的问题。 ---- 笔者举一个最简单的例子:货物出库、退货的例子 ---- 这里有库存表(kcb)、出库单表(ckb) 和退货单表(thb) ---- 库存表包含如下列:WPBH,KCSL〔物品编号,库存数量〕 ---- 出库单表含如下列:WPBH,CKSL〔物品编号,出库数量〕 ---- 退货单表含如下列:WPBH,THSL〔物品编号,退货数量〕 ---- 假如我们进行了如下交易: ---- 1.物品A有十件出库 ---- 2.物品A有五件退货(可再出库) ---- 我们都知道,这两笔交易都需要修改库存表,但修改库存表的工作由谁来做。可以肯定的说,程序设计人员和数据库设计人员都可以完成。 ---- 首先我们举例由程序设计人员如何完成: ---- 1.出库时,产生新出库记录插入到出库单表中,同时将库存表中的KCSL用KCSL减掉出库数量的值取代。 ---- 2.退货时,产生新退货记录插入到退货表中,同时将库存表中的KCSL用KCSL加上退货数量的值取代。 ---- 由于不同的开发平台,完成这项工作的代码不尽相同,故不写出具体代码。 ---- 接下来看看由数据库设计人员是如何完成这项工作: ---- 数据库设计人员完成这项工作靠的是触发器。 ---- 数据库设计人员建立如下SQL语句为出库单表(ckb)建立插入触发器 CREATE TRIGGER FORINSERT ON ckb FOR INSERT AS

数据库系统2-3:参照完整性约束

数据库系统2-3:参照完整性约束 在关系模型中,实体与实体之间的关联同样采用关系模式来描述。通过引用对应实体的关系模式的主码来表示对应实体之间的关联。 定义:设F是基本关系R的一个或一组属性,但不是R的主码,若F与基本关系S的主码K相对应,则称F是基本关系R的外码。 其中R为参照关系,S为被参照关系(也称目标关系),而且F和K必须定义在同一个域上。 例如,关系模式:部门(部门编码,部门名称,电话,办公地址) 职工(职工编码,姓名,性别,年龄,籍贯,所属部门编码) 其中职工关系模式中的“所属部门编码”与部门关系模式中的主码“部门编码”相对应,所以“所属部门编码”是职工关系模式中的外码。职工关系模式通过外码来描述与部门关系模式的关联。职工关系中的每个元组(每个元组描述一个职工实体)通过外码表示该职工所属的部门。当然,被参照关系的主码和参照关系的外码可以同名,也可以不同名。被参照关系与参照关系可以是不同关系,也可以是同一关系。 例如,职工(职工编码,姓名,性别,年龄,籍贯,所属部门编码,班组长编码) 其中“班组长编码”与本身的主码“职工编码”相对应,属性“班组长编码”是外码,职工关系模式既是参照关系也是被参照关系。 参照完整性规则:若属性F是基本关系R的外码,且F与基本关系S的主码K相对应,则对于R中每个元组在F上的值必须为: (1)或者取空值 (2)或者等于S中某个元组的主码值。 在职工关系中,某一个职工“所属部门编码”要么取空值,表示该职工未被分配到指定部门。要么等于部门关系中某个元组的“部门编码”,表示该职工隶属于指定部门。若既不为空值,又不等于被参照关系——部门中某个元组的“部门编码”分量,表示该职工被分配到一个不存在的部门,则违背参照完整性规则。所以,参照完整性规则就是定义外码与主码之间的引用规则,也是关系模式之间关联的规则。 【

数据库5关系数据库完整性实验

数据库系统原理 实验报告 实验名称:关系数据库完整性实验任课教师:霍纬刚 学号:100341324 姓名:汪何媛 完成日期:2012.11.28

一、实验目的 通过ORACLE的完整性,理解关系数据库的完整性 二、实验内容与步骤 ORACLE环境中通过触发器可以定义为更复杂的完整性约束 例1:通过触发器产生主键值 create sequence ql minvalue 010341416; create table student(sno number(9) primary key ,sname varchar2(20)); create or replace trigger add_student before insert on student for each row begin select ql.nextval into :new.sno from dual; end; 验证触发器: SQL>insert into student (sname)values(‘刘辉’); SQL>insert into student (sname)values(‘刘俊波’); 例2:创建一个行级触发器,记录下给个用户对数据库的表进行数据操纵的次数 create or replace trigger audit_student after delete or insert or update on student for each row begin if deleting then update audit_student set del =del+1 where user_name=user and table_name='student'; end if; if inserting then update audit_student set ins=ins+1 where user_name=user and table_name='student'; end if; if updating then update audit_student set upd=upd+1; where user_name =user and table_name='student'; end if ; end; 要求:1)定义基本表: Audit_student(user_name,table_name,del,ins,upt) 2)输入元组,例“SCOTT”,“student”,0,0,0 3)以SCOTT身份登录,对student表进行增加删除和修改操作,之后查看 audit_student表的内容变化。 例3、为教师表Teacher定义完整性规则:“职称(pos)为教授时其工资(sal)不得低于1000元,如果低于1000元,自动改为1000元”。 create or replace trigger update_sal

相关文档
相关文档 最新文档