第9章 设计数据库的完整性

合集下载

数据库原理及应用(第2版)--课后习题参考答案

数据库原理及应用(第2版)--课后习题参考答案

9.在利用概念层数据模型描述数据时,一般要求模型要满足三个要求。下列描述中,不属于概念层 数据模型应满足的要求的是 A A.能够描述并发数据 B.能够真实地模拟现实世界 C.容易被业务人员理解 D.能够方便地在计算机上实现 10.数据模型三要素是指 B
3
·4·
A.数据结构、数据对象和数据共享 B.数据结构、数据操作和数据完整性约束 C.数据结构、数据操作和数据的安全控制 D.数据结构、数据操作和数据的可靠性 11.下列关于实体联系模型中联系的说法,错误的是 A.一个联系可以只与一个实体有关 B.一个联系可以与两个实体有关 C.一个联系可以与多个实体有关 D.一个联系也可以不与任何实体有关 D
·1·
第 1 章 数据概述
一.选择题 1.下列关于数据库管理系统的说法,错误的是 C A.数据库管理系统与操作系统有关,操作系统的类型决定了能够运行的数据库管理系统的类型 B.数据库管理系统对数据库文件的访问必须经过操作系统实现才能实现 C.数据库应用程序可以不经过数据库管理系统而直接读取数据库文件 D.数据库管理系统对用户隐藏了数据库文件的存放位置和文件名 2.下列关于用文件管理数据的说法,错误的是 D A.用文件管理数据,难以提供应用程序对数据的独立性 B.当存储数据的文件名发生变化时,必须修改访问数据文件的应用程序 C.用文件存储数据的方式难以实现数据访问的安全控制 D.将相关的数据存储在一个文件中,有利于用户对数据进行分类,因此也可以加快用户操作数 据的效率 3.下列说法中,不属于数据库管理系统特征的是 C A.提供了应用程序和数据的独立性 B.所有的数据作为一个整体考虑,因此是相互关联的数据的集合 C.用户访问数据时,需要知道存储数据的文件的物理信息 D.能够保证数据库数据的可靠性,即使在存储数据的硬盘出现故障时,也能防止数据丢失 5.在数据库系统中,数据库管理系统和操作系统之间的关系是 A.相互调用 B.数据库管理系统调用操作系统 C.操作系统调用数据库管理系统 D.并发运行 6.数据库系统的物理独立性是指 D A.不会因为数据的变化而影响应用程序 B.不会因为数据存储结构的变化而影响应用程序 C.不会因为数据存储策略的变化而影响数据的存储结构 D.不会因为数据逻辑结构的变化而影响应用程序 7.数据库管理系统是数据库系统的核心,它负责有效地组织、存储和管理数据,它位于用户和操作 系统之间,属于 A A.系统软件 B.工具软件 C.应用软件 D.数据软件 8.数据库系统是由若干部分组成的。下列不属于数据库系统组成部分的是 A.数据库 B.操作系统 C.应用程序 D.数据库管理系统 B D

第九章数据库

第九章数据库

3.孤立点分析(outlier analysis),它试图 识别出不符合规则的数据项。 4.序列模式分析(sequential pattern analysis),它试图确定随时间变化的行为 模式。 9.7数据库技术的社会影响
当今的技术已经能够存储相当大数量的数 据,但是,如果我们不能提取与手头工作 相关的有用信息项,那么这样的数据集就 是无用的。在本章中,我们将研究数据库 系统,并弄清这些系统是怎样利用抽象工 具从庞大的数据集合中提取出有用的信息。 作为相关主题,我们还要研究数据挖掘, 即一个与数据库技术密切相关的快速发展 的领域,其目标是发展在数据集上确定和 寻找数据的模式。此外,我们还将学习传 统文件结构的原理,因为他支撑了现在的 数据库和数据挖掘系统。
9.4维护数据库的完整性 9.4.1提交/回滚协议 把一个事务的所有步骤记录进日志文件的 那个点,称为提交点(commit point)。 如果问题出现在事务达到其提交点之前, 那么DBMS可能会发现自己不能完成已经执 行了一部分的事务。这种情况可以利用日 志回滚(rollback)(也称为撤销)实际上 已被事务实施的活动。
碰撞或者溢出的解决方法:一是允许扩展 桶的大小,二是允许桶溢出到一个专门为 解决这种问题二保留的溢出区。 记录的数目与文件中总的记录容量之比称 为负载因子(load factor)。 例如:14,34,7,6,9,21, 44,27,,散列函数 Xmod11,在来数据32。
0 1 2 3 4 5 6 7 8 9 10
一个事务的回滚可能会影响到别的事务, 造成这些事务也需要回滚,结果就产生了 级联回滚(cascading rollback)。 9.4.2锁定 数据库可能出现错误决算问题(incorrect summary problem)和更新丢失问题(lost update problem)。 锁定协议(locking protocol),该协议规定, 数据库中当前正在被某个事务使用的项目 都要加以标记。

第九章__SQL_Server数据库基础PPT课件

第九章__SQL_Server数据库基础PPT课件

编辑版pppt
16
(3) 文件组
为了便于分配和管理,SQL Server允许将多个文件归纳为一组, 并赋予此组一个名称,这就是文件组(File Group),文件组是 将多个数据库文件集合起来形成的一个整体。每个文件组有一个 组名。一个文件只能存在于一个文件组中,一个文件组也只能被 一个数据库使用。
编辑版pppt
15
⑵ 数据库文件
采用多个数据库文件来存储数据的优点体现在: 数据库文件可以不断扩充而不受操作系统文件大小的限制。 可以将数据库文件存储在不同的硬盘中,这样可以同时对几个硬
盘做数据存取,提高了数据处理的效率,这对于服务型的计算机 尤为有用。 事务日志文件 事务日志文件(Transaction Log File)是用来记录数据库更新 情况的文件,扩展名.ldf。例如,使用INSERT,UPDATE, DELETE等对数据库进行更改的操作都会记录在此文件中,而如 SELECT等对数据库内容不会有影响的操作则不会记录在案。一 个数据库可以有一个或多个事务日志文件。 SQL Server中采用“提前写日志( Write-Ahead Logging)” 方式,即对数据库的修改先写入事务日志中,再写入数据库。
SQL服务器中每个数据库,都有相应的一行
每个Windows用户, Windows工作组,SQL服务器用户和 SQL服务器角色,都有相应的一行
sysobjects 全部 数据库中每个对象,都有相应的一行
编辑版pppt
19
⑵ 数据类型
SQL Server 2000的数据类型分为系统数据类 型与自定义数据类型。
编辑版pppt
21
⑷ 用户自定义函数
在SQL Server 2000 中,用户可以创建自定义 函数。在SQL Server 2000中用户自定义函数 是作为一个数据库对象来管理的。可以使用企 业管理器或Transat-SQL命令来创建,修改, 删除。

信息系统分析与设计第3版课后答案第9章:详细设计

信息系统分析与设计第3版课后答案第9章:详细设计

习题答案一、简答题1. 详细设计和信息系统体系结构设计之间存在什么关系?包括哪些基本工作?答:详细设计是信息系统体系结构设计的深入和细化,体系结构设计确定信息系统的宏观结构方案,详细设计则需要给出各子系统内部的设计方案,强调细节并指导实现。

详细设计的工作包括类与接口设计,功能逻辑设计,数据库设计和界面设计等工作。

2. 功能逻辑设计包括哪几部分的工作?答:功能逻辑设计包括分析用例的BCE类,以及用例功能逻辑分析与建模等工作。

3. 数据库设计分为哪几个步骤?答:包括数据库概念设计,逻辑设计和物理设计等。

4. 什么叫持久型类?答:指类的完整信息要在数据库中存储。

5 什么叫用户界面?用户界面设计包括那些工作?答:用户界面是对用户与系统之间进行交互所采用的方式、途径、内容、布局、结构的总称,用户界面也叫人机界面、人机接口、人机交互界面等。

用户界面设计包括界面需求分析、输入设计、输出设计、屏幕界面设计和编写用户手册等工作。

二、填空题1. 详细设计的工作包括(类和接口设计),功能逻辑设计,(数据库设计),界面设计。

2.PIM类模型的设计来源是(业务对象模型),而PSM类模型又来源于( PIM类模型)。

3.输入方式可以分为(批输入)和(联机输入)两种类型。

4.图形屏幕界面分为(注册界面)、(主控界面)、(数据处理界面)、(事务处理界面)四种类型。

三、选择题1.选择正确的(C)A:在设计阶段所设计的类一定能够找到对应的业务对象。

B:一般实体类有属性无操作。

C:一般控制类有操作无属性。

D:边界类需要设计人员重点设计。

2. (C)不属于类的三种基本类型。

A. 界面类B. 控制类C. 资源类D. 实体类3.用户界面(D)A:是信息系统客户的界面 B:反映信息系统功能C:也叫系统界面 D:分为输入界面、输出界面和混合界面答:1:C; 2: C;3:D;四、思考题1.简述PIM类模型在系统设计中的作用。

2.简述功能逻辑设计与需求分析阶段的功能分析的关系。

《MySql数据库实例教程》9-数据库管理

《MySql数据库实例教程》9-数据库管理

【例1】创建一个用户usr2,初始密码为123。不将正密确的码密标码记会为导致过临期时,帐以户锁便定用两户天在。 第一次连接到
CREATE USER usr3@localhost IDENTIFIED BY '123'
服务器时必须选择一个新密码。
PASSWORD EXPIRE INTERVAL 180 DAY
【例】 回收用户user3在Book表上的 SELECT权限。
USE bookstore; REVOKE SELECT
ON Book FROM user3@localhost;
备份与恢复
备份和恢复需求分析
第九章 数据库管理
14
数据库中的数据丢失或被破坏可能是由于以下原因:
① 计算机硬件故障。由于使用不当或产品质量等原因,计算机硬件可能会出现故障,不能使用。如硬盘损 坏会使得存储于其上的数据丢失。
USE Bookstore; GRANT ALL ON * TO user1@localhost;
授予用户权限
(3)授予用户权限
第九章 数据库管理
11
最有效率的权限就是用户权限,对于需要授予数据库权限的所有语句,也可以定义在用户权 限上。例如,在用户级别上授予某人CREATE权限,这个用户可以创建一个新的数据库,也可 以在所有的数据库(而不是特定的数据库)中创建新表。
【【例例12】】授授予予PPeetteerr对创所建有新数用据户库的中权的力所。有表的CREATE、ALTERT和DROP权限。 GGRRAANNTT CCRREEAATTEE,AULSTEERR ,DORNO*P.*OTNO*.P* eTteOr@Ploectearl@holsotc;alhost IDENTIFIED BY 'ppwd';

《MySQL数据库原理、设计与应用》第9章课后习题答案

《MySQL数据库原理、设计与应用》第9章课后习题答案

第九章一、填空题1.数据库2.原子3.START TRANSACTION4.AUTOCOMMIT5.READ UNCOMMITTED二、判断题对1.对2.对3.错4.对5.对三、选择题1. C2.B、C、D3. B4. B5. D四、简单题1.请简述什么是事务。

答:在MySQL中,事务就是针对数据库的一组操作,它可以由一条或多条SQL语句组成,且每个SQL语句是相互依赖的。

只要在程序执行过程中有一条SQL语句执行失败或发生错误,则其他语句都不会执行。

也就是说,事务的执行要么成功,要么就返回到事务开始前的状态,这就保证了同一事务操作的同步性和数据的完整性。

2.请简述什么是事务的ACID特性。

答:①原子性是指一个事务必须被视为一个不可分割的最小工作单元。

②一致性是指在事务处理时,无论执行成功还是失败,都要保证数据库系统处于一致的状态,保证数据库系统从不返回到一个未处理的事务中。

③隔离性是指当一个事务在执行时,不会受到其他事务的影响。

④持久性是指事务一旦提交,其对数据库的修改就是永久性的。

五、实训题1.请利用事务实现在用户下订单时,检查商品库存是否充足。

START TRANSACTION;1# 查询id为1的商品的库存SELECT stock FROM sh_goods WHERE id = 1;# 根据结果回滚或提交COMMIT;2.请利用事务在用户下订单前,检测当前用户是否已被激活,若未激活,则需激活此用户后,才能再次下订单。

START TRANSACTION;# 查询id为1的用户是否激活SELECT is_active FROM sh_user WHERE id = 1;# 根据结果回滚或提交COMMIT;2。

数据库的完整性

数据库的完整性
第7章 数据库的安全保护
4
7.2.2 完整性约束的类型
2.由数据库应用确定的完整性约束 数据库上的大部分语义完整性约束是由数据库应用确 定的。这类完整性约束分为状态约束和变迁约束两类, 定的。这类完整性约束分为状态约束和变迁约束两类,在 数据库管理系统中这两类约束都被视为显式约束。 数据库管理系统中这两类约束都被视为显式约束。 (1)状态约束。在某一时刻数据库中的所有数据实例 状态约束。 构成了数据库的一个状态。 构成了数据库的一个状态。数据库的状态约束也称静态约 是所有数据库状态必须满足的约束。 束,是所有数据库状态必须满足的约束。每当数据库被修 改时,数据库管理系统都要进行状态约束的检查, 改时,数据库管理系统都要进行状态约束的检查,以保证 状态约束始终被满足。 状态约束始终被满足。
8
第7章 数据库的安全保护
7.2.3 完整性约束的定义方法
使用过程化定义方法, 使用过程化定义方法,完整性约束的验证程序可以由 通用程序设计语言编制。 通用程序设计语言编制。这种方法既为程序员编制高效率 的完整性验证程序提供了有利条件, 的完整性验证程序提供了有利条件,同时也给程序员带来 了很大负担。 了很大负担。程序员必须清楚他所编码的事务所涉及的所 有完整性约束,并为每一个约束编制一个验证过程, 有完整性约束,并为每一个约束编制一个验证过程,程序 员的任何误解、疏忽和遗漏都将导致数据库的不正确。 员的任何误解、疏忽和遗漏都将导致数据库的不正确。目 过程化定义方法已经被许多数据库管理系统广泛采用。 前,过程化定义方法已经被许多数据库管理系统广泛采用。 数据库的完整性约束经常是随实际应用的变化而变 化的。显式约束的过程化定义方法有一个严重缺点: 化的。显式约束的过程化定义方法有一个严重缺点:一旦 完整性约束发生变化, 完整性约束发生变化,相应事务的完整性验证程序就必须 被修改。 被修改。

第9章 数据库完整性li11-22

第9章 数据库完整性li11-22
a.默认值约束定义 默认值约束定义
create table mystudent (sno char(10), sname nvarchar(4), ssex char(2), sdept nvarchar(10) default ('计算机科学 计算机科学'), 计算机科学 scomegrade smallint constraint cg_ck check (scomegrade>=0 and scomegrade<=750) ) 说明:插入行后重新打开表,可看到设定的默认值。 说明:插入行后重新打开表,可看到设定的默认值。
只能为男或女
完整性的分类 实体完整性( 实体完整性(Entity Integrity) ) 域完整性( 域完整性(Domain Integrity) ) 参照完整性( 参照完整性(Referential Integrity) ) 用户定义完整性( 用户定义完整性(User-defined Integrity) )
9.4.2 UNIQUE约束 约束
使用T-SQL语句创建 语句创建 使用
create table 雇员表 (雇员号 char(10) primary key, 雇员号 雇员名 nvarchar(8) unique ) alter table student add constraint uk_sname_s unique (sname) select * from student with (index=uk_sname_s) alter table student drop constraint uk_sname_s
• 约束: 约束:
完整性类型 约束类型
DEFAULT
描述
指定列的默认值 指定列的允许值 指定是否允许为NULL 指定是否允许为
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【例9-13】在创建表时添加表级check约束。 create table Score (sno char(10), cno char(10), degree tinyint, constraint ck_degree check (degree check (degree between 0 andand 100)) between 0 100)
9.1 完整性概述
数据库的完整性指数据的正确性和相容性,防止 不合语义的数据进入数据库。 SQL Server 2005中的数据完整性包括 域完整性、 实体完整性、 参照完整性三种。
9.1 完整性概述
9.1.1 域完整性 9.1.2 实体完整性 9.1.3 参照完整性
9.1.1 域完整性
9.2.2 UNIQUE 约束
【例9-7】当表已经创建时,可以为表添加惟一键 约束。 alter table Course add constraint un_cname unique(cname) 或 alter table Course add unique(cname)
9.2.2 UNIQUE 约束
9.2.3 DEFAULT约束
或: create table Student ( sno char(10) primary key, sname char(20), ssex char(10) constraint def1 default '男', sage tinyint, sbirthday smalldatetime, depart char(10), class char(10))
9.2.3 DEFAULT约束
【例9-11】删除DEFAULT 定义。 alter table Student drop constraint def_ssex
9.2.4 CHECK 约束
CHECK 约束对可以放入列中的值进行限制,例 如限定其取值范围、数据格式等,以强制执行域 的完整性。 CHECK 约束指定应用于列中输入的所有值的布 尔搜索条件(取值为 TRUE 或 FALSE),拒绝 所有取值为FALSE的值,并且不能引用其他表。
9.2.4 CHECK 约束
【例9-12】在创建表时添加列级check约束。 create table Score (sno char(10), cno char(10), degree tinyint check( degree between 0 and 100))
9.2.4 CHECK 约束
9.1.2 实体完整性
实体完整性将行定义为特定表的惟一实体。 实体完整性强制表的标识符列或主键的完整性 通过索引、UNIQUE 约束、PRIMARY KEY 约束 或 IDENTITY 属性。
9.1.3 参照完整性
参照完整性是基于外键与主键之间或外键与惟一 键之间的关系。 通过 FOREIGN KEY 和 CHECK 约束。 参照完整性确保键值在所有表中一致。
9.2.2 UNIQUE 约束
UNIQUE 约束在列集内强制执行值的惟一性。 对于 UNIQUE 约束中的列,不允许出现相同的值。 UNIQUE 约束的列中允许输入空值,所有空值是 作为相同的值对待的。 一个表格可以创建多个UNIQUE约束,它主要用 于不是主键但又要求不能有重复值的字段。
9.2.1 PRIMARY KEY 约束
【例9-2】在创建表的时候创建表级主键。 create table Score ( sno char(10), cno char(10), degree tinyint, constraint pk_sno_cno primary key(sno,cno) ) primary key(sno,cno)
9.2.5 FOREIGN KEY 约束
【例9-17】在创建表时添加表级外键约束。 create table Score (sno char(10), cno char(10) not null, degree tinyint, constraint fk_sno foreign key(sno) references foreign key(sno) references Student(sno) Student(sno))
【例9-8】删除惟一键约束 alter table Course drop constraint un_cname
9.2.3 DEFAULT约束
DEFAULT约束指为表中的列定义默认值。 当执行数据插入操作而又没有为该列提供数据时, 系统将自动以定义的默认值填充该列。
9.2.3 DEFAULT约束
9.2.2 UNIQUE 约束
【例9-6】在创建表的时候创建表级惟一键约束。 create table Course ( cno char(10) primary key, cname char(20) , credit char(2), note char(40), unique (cname) constraint un_cname unique (cname))
9.2.4 CHECK 约束
【例9-15】删除check约束。 alter table Score drop constraint ck_degree
9.2.4 CHECK 约束
注意: (1)列级CHECK约束只能引用被约束的列,表级 CHECK约束只能引用同一表中的列。 (2)不能在 text、ntext 或 image 列上定义 CHECK 约束。 (3)可以为每列指定多个CHECK约束。列上的多 个CHECK约束按创建顺序进行验证。
定义DEFAULT约束需要注意: (1)表中的每一列都可以包含一个DEFAULT定义, 但每列只能有一个DEFAULT定义。 (2)DEFAULT 定义可以包含常量值、函数或NULL。 (3)DEFAULT 定义不能引用表中的其他列,也不能 引用其他表、视图或存储过程。 (4)不能对数据类型为timestamp的列或具有 IDENTITY属性的列创建 DEFAULT 定义。 (5)不能对使用用户定义数据类型的列创建 DEFAULT 定义。
【本章要点】
完整性的定义、类型 使用约束实施数据库的完整性 使用规则实施数据库的完整性 使用默认值实施数据库的完整性 使用库的完整性
9.1 完整性概述 9.2 使用约束实施数据库的完整性 9.3 使用规则 9.4 使用默认值 9.5 使用IDENTITY 列 本章小结 习题九
第9章 设计数据库的完整性
【本章导读】
数据库的完整性是指数据的正确性、有效性和相 容性。正确性是指数据的合法性;有效性是指数 据是否属于所定义的有效范围;相容性是指描述 同一实体的数据应该一致。数据库的完整性关系 到数据库系统中的数据是否正确、可信和一致。 本章主要介绍了使用约束、规则、默认值和 IDENTITY列实现SQL Server 2005数据库完整性 的方法。
9.2.3 DEFAULT约束
【例9-9】在创建表时,可以创建 DEFAULT 定义 作为表定义的一部分。 create table Student ( sno char(10) primary key, sname char(20), ssex char(10) default '男', sage tinyint, sbirthday smalldatetime, depart char(10), class char(10))
9.2.1 PRIMARY KEY 约束
【例9-3】当表已经创建时,可以为表添加主键约束。 alter table Score add constraint pk_sno_cno primary key(sno,cno) 或 alter table Score add primary key(sno,cno)
【例9-1】在创建表的时候创建列级主键。 create table Student ( sno char(10) primary key, sname char(20), ssex char(10), sage tinyint, sbirthday smalldatetime, depart char(10), class char(10))
9.2.3 DEFAULT约束
【例9-10】如果某个表已经存在,则可以为其添加 DEFAULT 定义。 alter table Student add constraint def_ssex default '男' for ssex 或 alter table Student add default '男' for ssex
9.2.5 FOREIGN KEY 约束
FOREIGN KEY 约束标识表之间的关系, 建立两个表之间的联系 。
Student(sno) Course(cno)
Score(sno,cno)
9.2.5 FOREIGN KEY 约束
【例9-16】在创建表的时候添加列级外键约束。 create table Score (sno char(10) foreign key references Student (sno), cno char(10) not null, degree tinyint)
域完整性是指给定列的输入有效性。 域完整性主要由用户定义的完整性组成。 控制域有效性的方法有: 限制数据类型(通过数据类型定义)、 格式(通过 CHECK 约束和规则)、 可能值的范围(通过 FOREIGN KEY 约束、 CHECK 约束、 DEFAULT 定义、 NOT NULL 定义和规则) 修改列值时必须满足的条件
9.2.4 CHECK 约束
【例9-14】当表已经创建时,可以为表添加check 约束。 alter table Score add constraint ck_degree check (degree between 0 and 100) 或 alter table Score add check (degree between 0 and 100)
相关文档
最新文档