数据库—第九章

合集下载

数据库系统原理课后答案 第九章

数据库系统原理课后答案 第九章

9.1 名词解释(1)OODBS:是指面向对象数据库系统,它既具数据库管理的基本功能,又能支持面向对象的数据模型。

(2)ORDBS:基于对象关系数据模型的DBS称为对象关系数据库系统(ORDBS)。

(3)平面关系模型:传统的关系模型称为“平面关系模型”,它要求关系模式具有第一范式(1NF)性质,关系具有规范化的结构。

也就是规定属性值是不可分解的,即不允许属性值具有复合结构(元组或关系)。

(4)嵌套关系模型:是从平面关系模型发展而成的。

它允许关系的属性值又可以是一个关系,而且可以出现多次嵌套。

嵌套关系突破了1NF的定义框架,是“非1NF关系”。

(5)复合对象模型:在嵌套关系模型上进一步放宽要求。

在关系定义上,集合与元组不再有交替出现的严格限制,此时的关系中,属性类型可以是基本数据类型、结构类型(元组类型)或集体类型(即关系类型)。

(6)数据的泛化/细化:是对概念之间联系进行抽象的一种方法。

当在较低层上的抽象表达了与之联系的较高层上抽象的特殊情况时,就称较高层上抽象是较低层上抽象的"泛化",而较低层上抽象是较高层上抽象的"细化"。

(7)对象关系模型:在传统关系数据基础上,提供元组、数组、集合等更为丰富的数据类型及处理新数据类型操作的能力而形成的数据模型。

(注:传统关系模型只支持字符、数值、字串,布尔值等等基本数据类型及其处理功能)(8)类型级继承性:当继承性发生在类型级时,子类型继承了超类型的属性。

也就是说,超类型所具有的属性,在子类上也具有。

(9)表级继承性:继承性也可发生在表级,(就是元组集合上发生继承),子表继承超表全部属性,超表中每个元组最多可以与子表中一个元组对应,而子表中的每个元组在超表中恰有一个元组对应,并在继承的属性值上具有相同的值。

(10)引用类型:数据类型可以嵌套定义,在嵌套引用时,不是引用对象本身,而是个用对象标识符(即指针),这种指针被称为引用类型。

第9章 创建数据库

第9章 创建数据库
13
9.1 创建和打开数据库
5) 使用Transact-SQL语言创建数据库
CREATE DATABASE database_name /*指定数据库名*/ [ON子句 ] /*指定数据库中数据文件和文件组属性*/ [LOG ON子句 ] /*指定日志文件属性*/
各参数的含义:database_name 所创建的数据库逻辑名称,其命名规则与一般高级 语言的标识符相同,最大长度为128个字符。
Alter Database usedb Add Log File (Name=add_use1_log, FileName= 'd:\sql\addlog1.ldf', Size=2,Maxsize=50,FileGrowth=10%)
25
9.2 修改数据库
1) 改变数据库定义
(2) 使用Transact-SQL修改数据库 例9-8 更改数据库usedb中文件add_use2的初始大小为10M 程序清单:
(2) 使用Transact-SQL修改数据库
使用ALTER DATABASE 命令可以对数据库的选项进行修改。 ALTER DATABASE命令的基本格式为:
ALTER DATABASE database_name {ADD FILE <filespec>[,…n] /*在文件组中增加数据文件*/ [TO FILEGROUP filegroup_name] | REMOVE FILE file_name /*删除数据文件*/ | ADD LOG FILE <filespec>[,…n] /*增加日志文件*/ | REMOVE FILE log_ file_name /*删除日志文件*/ | ADD FILEGROUP filegroup_name /*增加文件组*/ | REMOVE FILEGROUP filegroup_name /*删除文件组*/

《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。

数据库基础及其应用第九章课后作业

数据库基础及其应用第九章课后作业

第九章 SQL Server数据库简单应用一、单选题1.使用“CREATE DATABASE AAA”命令所建立数据库文件的初始大小是(A)字节。

A. 1MB. 2MC. 3MD. 4M2.下面关于索引的描述不正确的是(B)。

A. 索引是一个指向表中数据的指针B. 索引是在列上建立的一种数据库对象C. 索引的建立和撤消对表的数据毫无影响D. 表的建立和撤消对索引毫无影响3.下面关于聚集索引和非聚集索引说法正确的是(B)。

A. 每个表只能建立一个非聚集索引B. 非聚集索引需要较多的硬盘空间和内存C. 一张表上不能同时建立聚集和非聚集索引D. 一个复合索引只能是聚集索引4.“Create Unique Index AAA On 学生表(学号)”将在学生表上创建名为AAA的(A)。

A. 惟一索引B. 聚集索引C. 复合索引D. 唯一聚集索引5.下列标识符可以作为局部变量使用(C)。

A. [@Myvar]B. My varC. @MyvarD. @My var6.Transact SQL支持的程序结构语句主要有(A)。

A. Begin…EndB. If…Then…ELSEC. Do CaseD. Do While7.属于事务控制的语句是(A)。

A. Begin Tran、Commit、RollBackB. Begin、Continue、EndC. Create Tran、Commit、RollBackD. Begin Tran、Continue、End8.SQL Server触发器主要针对下列语句创建(B)。

A. SELECT、INSERT、DELETEB. INSERT、UPDATE、DELETEC. SELECT、UPDATE、INSERTD. INSERT、UPDATE、CREATE9.下面关于索引的描述不正确的是(B)。

A. 索引是一个指向表中数据的指针B. 索引是在元组上建立的一种数据库对象C. 索引的建立和撤消对表中的数据毫无影响D. 表被撤消时将同时撤消在其上建立的索引10.以下哪种情况应尽量创建索引(A)。

数据库技术与应用—SQL_Server_2008(第2版)第9章_视图

数据库技术与应用—SQL_Server_2008(第2版)第9章_视图



【例9.1】建立计算机系学生的视图。 CREATE VIEW vw_Stu_jsj1 AS SELECT studentID, studentName, sex, speciality FROM Student WHERE speciality = '计算机' 本查询省略了视图列名,隐含为与 SELECT 语句中的列相同 的名称。
参数说明

column:视图中的列使用的名称。


组成视图的列名要么全部省略要么全部指定,没有第三 种选择。如果省略了视图的各个列名,则视图列将获得 与SELECT语句中的列相同的名称。 但是对于下列情况,必须在视图定义中指定每列的名称: 视图中有任何从算术表达式、内置函数或常量派生出 的列。 视图中两列或多列具有相同名称(通常由于视图定义 包含联接,而来自两个或多个不同表的列具有相同的 名称)。 希望使视图中的列名与它的源列名不同。这时也可以 在视图中重命名列。无论重命名与否,视图列都会继 承其源列的数据类型。
9.4 通过视图查询数据

视图定义好后,用户就可以像对基本表一样对视图进行查 询了。 【例9.7】在计算机系学生的视图中找出所有女生信息。
SELECT studentID, studentName, sex FROM vw_Stu_jsj1 WHERE sex= '女‘


系统执行对视图的查询时,首先进行有效性检查,以确认 查询中涉及到的表、视图等是否存在。如果存在,则从数 据字典中取出视图的定义,把定义好的子查询和用户的查 询结合起来,转换成等价的对基本表的查询。 例如,本例的查询就相当于执行了下面的SQL语句:
视图的分类


Oracle数据库管理与开发第9章 系统安全管理

Oracle数据库管理与开发第9章 系统安全管理

INSERT
SELECT
UPDATE
创建用户角色
创建用户角色的语法:
create role role_name [ not identified | identified by [password] | [exeternally] | [globally]]
试一试
创建一个名为designer的角色,该角色的口令为123456
创建用户
试一试
创建一个mr用户,口令为mrsoft,并设置默认的表空间为users,临时表 空间为temp的用户。
SQL> create user mr identified by mrsoft default tablespace users temporary tablespace temp;
安全特性
3.过程安全 过程方案的对象权限(其中包括独立的过程、函数和包)只有EXECUTE权限,将这个权限 授予需要执行的过程或需要编译另一个需要调用它的过程。 (1)过程对象。具有某个过程的EXECUTE对象权限的用户可以执行该过程,也可以编译引 用该过程的程序单元。过程调用时不会检查权限。具有EXECUTE ANY PROCEDURE系统权限的 用户可以执行数据库中的任何过程。当用户需要创建过程时,必须拥有CREATE PROCEDURE 系统权限或者是CREATE ANY PROCEDURE系统权限。当需要修改过程时,需要ALTER ANY PROCEDURE系统权限。 拥有过程的用户必须拥有在过程体中引用的方案对象的权限。为了创建过程,必须为过程 引用的所有对象授予用户必要的权限。 (2)包对象。拥有包的EXECUTE对象权限的用户,可以执行包中的任何公共过程和函数, 能够访问和修改任何公共包变量的值。对于包不能授予EXECUTE权限,当为数据库应用开发 过程、函数和包时,要考虑建立安全性。

数据库复习第九章习题

数据库复习第九章习题

第九章习题一、选择题:1.保护数据库,防止未经授权的或不合法的使用造成的数据泄漏、更改破坏。

这是指数据的____。

A.安全性B.完整性C.并发控制D.恢复答案:A2.在数据系统中,对存取权限的定义称为____。

A.命令B.授权C.定义D.审计答案:B3.数据库管理系统通常提供授权功能来控制不同用户访问数据的权限,这主要是为了实现数据库的____。

A.可靠性B.一致性C.完整性D.安全性答案:D4.授权编译系统和合法性检查机制一起组成了____子系统。

A.安全性B.完整性C.并发控制D.恢复答案:A5.在数据库的安全性控制中,为了保证用户只能存取他有权存取的数据。

在授权的定义中,数据对象的____,授权子系统就越灵活。

A.范围越小B.范围越大C.约束越细致D.范围越适中答案:A6.按TCSEC(TDI)系统安全标准,系统可信程度逐渐增高的次序是________。

A. D、C、B、AB. A、B、C、DC. D、B2、B1、CD. C、B1、B2、D答案:A7.________是最低级别,在安全性方面几乎没有什么专门的机制来保障。

A.D级B.C2级C.B1级D.A级答案:A8.________是安全产品的最低档次,提供受控的存取保护(DAC)。

很多商业产品已得到该级别的认证。

A.D级B.C2级C.B1级D.A级答案:B9.________对系统的数据加以标记,并对标记的主体和客体实施强制存取控制(MAC)以及审计等安全机制,能够较好地满足大型企业或一般政府部门对于数据的安全需求,是真正意义上的安全产品。

A.D级B.C2级C.B1级D.A级答案:C10.________提供验证设计,即提供B3级保护的同时给出系统的形式化设计说明和验证以确信各安全保护真正实现。

A.D级B.C2级C.B1级D.A级答案:D二、填空题:1.保护数据安全性的一般方法是____。

答案:设置用户标识和存取权限控制2.数据的安全性是指____。

数据库系统原理教程课后习题及答案(第九章)

数据库系统原理教程课后习题及答案(第九章)

第9章数据库恢复技术1.试述事务的概念及事务的4 个特性。

答:事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。

事务具有4 个特性:原子性(Atomicity )、一致性(consistency )、隔离性( Isolation )和持续性(Durability )。

这4 个特性也简称为ACID 特性。

原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。

一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。

隔离性:一个事务的执行不能被其他事务干扰。

即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。

持续性:持续性也称永久性(Perfnanence ) ,指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。

接下来的其他操作或故障不应该对其执行结果有任何影响。

2 .为什么事务非正常结束时会影响数据库数据的正确性,请列举一例说明之。

答:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。

如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致的状态。

例如某工厂的库存管理系统中,要把数量为Q 的某种零件从仓库1 移到仓库2 存放。

则可以定义一个事务T , T 包括两个操作;Ql = Ql 一Q , Q2= Q2 + Q。

如果T 非正常终止时只做了第一个操作,则数据库就处于不一致性状态,库存量无缘无故少了Q 。

3 .数据库中为什么要有恢复子系统?它的功能是什么?答:因为计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此必须要有恢复子系统。

第9章_数据库保护

第9章_数据库保护

9.2.2 数据库安全性目标
① 机密性:指信息不能对未授权的用户公 开; ② 完整性:指保证数据是正确的,没有经 过非授权用户的修改(即保证只有授权 用户才被允许修改数据); ③ 可用性:指授权的用户不能被拒绝访问。
9.2.3 数据库安全控制
• 数据库在安全性机制设置方面可分为4个控制 层次 :
9.2 数据库安全
• 数据库的安全性是指保证数据不被非 法访问,保证数据不会因非法使用而 被泄密、更改和破坏。
9.2.1 数据库安全保护范围
(1)计算机外部环境保护
① 自然环境保护。如加强计算机房、设备及其周边 环境的警戒、防火、防盗等,防止人为的物理破 坏。
② 社会环境中的安全保护。如建立各种法律法规、 规章制度,对计算机工作人员进行安全教育,使 其能正确使用数据库。 ③ 设备环境中的安全保护。如及时进行设备检查、 维护等。

用户与登录
• 登录是连接到SQL Server的账号信息,包括登 录名、口令等。 • 登录属于数据库服务器级的安全策略。 • 无论采用哪种身份验证方式,都需要具备有效 的登录账号。
• SQL Server建有默认的登录账号:sa 。
• 用户是数据库级的安全策略,用户是为特定数 据库定义的。
权限管理
9.3.1 完整性概念
• 数据库的完整性是指数据库中的数据在逻辑上的 正确性、有效性和相容性。
―正确性(Correctness)是指数据的合法性; ―有效性(Valid)是指数据属于所定义的有效 范围;
―相容性(Consistency)是指表示同一事实的两 个数据应当一致。
9.3.2 DBMS的完整性控制
事务的ACID性质
① 原子性(Atomicity)。事务必须是数据库的逻辑工作单 元,即事务中包括的诸操作要么全执行,要么全不执行。 ② 一致性(Consistency)。事务在完成时,必须使所有的数 据都保持一致状态。

第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 指定是否允许为

数据库第09章

数据库第09章

2.释放ODBC连接 当一个应用系统不再需要一个连接句柄时, 应该释放该句柄所分配的所有资源。实现这一 功能的函数是:
SQLRETURN SQLFreeHandle( SQLSMALLINT HandleType, SQLHANDLE Handle);
其中,参数Handle是连接句柄。 例如:
SQLAllocHandle(SQL_HANDLE_DBC, hdbc1);
1.建立ODBC环境 2.建立ODBC连接 3.建立语句句柄 4.执行SQL语句 5.终止
例如: SQLHENV henv1;
SQLAllocHandle(SQL_HANDL E_ENV,SQL_NULL_HANDLE, &henv1);
2.释放ODBC环境 在结束应用系统之前,必须释放为该应用 系统保留的所有资源。完成这一过程的ODBC 函数是:
核心级API; 扩展1级API; 扩展2级API。
1.核心级API
核心级API包括最基本的功能,它们构成 了驱动程序的核心。核心级API包括分配、释 放环境句柄、连接句柄和执行SQL语句等。核 心级的驱动程序还能完成其他一些基本的功能, 如向语句中传入参数、存取执行结果、目录操 作和错误跟踪等。
2.扩展1级API
数据库第09章
1
9.1 数据库互连概述
提出和产生ODBC的根本原因是不同 的数据库管理系统的存在。
目前,广泛使用的关系数据库管理系 统(RDBMS)有几十种,最常用的也有 十几种。
它们之间有许多差异。例如:
支持和实现SQL语句的程度不同(有 的支持SQL89的基本集,有的支持SQL92的基 本集);
SQLRETURN SQLConnect( SQLHDBC ConnectionHandle, SQLCHAR * ServerName, SQLSMALLINT NameLength1, SQLCHAR * UserName, SQLSMALLINT NameLength2, SQLCHAR * Authentication, SQLSMALLINT NameLength3);

数据库系统l试题库及答案 第9章 查找

数据库系统l试题库及答案 第9章 查找

第9章查找9.1知识点:静态查找表一、填空题1.在数据的存放无规律而言的线性表中进行检索的最佳方法是。

2.查找表是由构成的集合。

3.若对查找表只做“查询某个特定的数据元素是否在查找表中”和“查询某个特定的数据元素的各种属性”操作,则称此类查找表为。

若在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已存在的某个数据元素,则称此类查找表为。

4.在n个记录的有序顺序表中进行折半查找,最大的比较次数为。

5.是顺序查找的一种改进方法,又称索引顺序查找,具体实现为将一个主表分成n个子表,要求子表之间元素是按,而子表中元素可以无序的,用每个子表最大关键字和指示块中第一个记录在表中位置建立。

6.分块查找的时间复杂度是。

7.顺序查找n个元素的顺序表,若查找成功,则比较关键字的次数最多为次;当使用监视哨时,若查找失败,则比较关键字的次数为次。

8.由于查找运算的主要运算是关键字的比较,所以通常把______________作为衡量一个查找算法效率优劣的标准。

它的计算公式为________________________________________。

二、选择题1.()在表长为n的链表中进行顺序查找,它的平均查找长度为()。

A. ASL=nB. ASL=(n+1)/2C. ASL=+1D. ASL≈log2(n+1)-12.()采用折半查找方法查找长度为n的线性表时,平均时间复杂度为()。

A.O(n2)B.O(nlogn)C.O(n)D.O(logn)3.()折半查找有序表(4,6,10,12,20,30,50,70,88,100)。

若查找表中元素58,则它将依次与表中()比较大小,查找结果是失败。

A.20,70,30,50 B.30,88,70,50 C.20,50 D.30,88,504.()有序线性表(a1,a2,a3,…,a256)是从小到大排列的,对一个给定的值k,用二分法检索表中与k相等的元素,在查找不成功的情况下,最多需要检索()次。

第9章 数据库安全性和完整性

第9章 数据库安全性和完整性

4.
9.2 数据库完整性
数据库的完整性是指数据的正确性、有 效性和相容性 数据库是否具备完整性关系到数据库系 统能否真实地反映现实世界,因此维护 数据库的完整性是非常重要的 为维护数据库的完整性,DBMS必须提 供一种机制来检查数据库中的数据,看 其是否满足语义规定的条件
完整性约束条件
仅当主体的许可证级别小于或等于客体的密级时该主体才能写相应的客体即用户可以为写入的数据对象赋予高于自己的许可证级别的密级这样一旦数据被写入该用户自己也不能再读该数据对象了这两种规则的共同点在于它们均禁止了拥有高许可证级别的主体更新低密级的数据对象从而防止了敏感数据的泄漏强制存取控制mac是对数据本身进行密级标记无论数据如何复制标记与数据是一个不可分的整体只有符合密级标记要求的用户才可以操纵数据从而提供了更高级别的安全性前面已经提到较高安全性级别提供的安全保护要包含较低级别的所有保护因此在实现mac时要首先实现dac即dac与mac共同构成dbms的安全机制系统首先进行dac检查对通过dac检查的允许存取的数据对象再由系统自动进行mac检查只有通过mac检查的数据对象方可存取进行存取权限控制时我们可以为不同的用户定义不同的视图把数据对象限制在一定的范围内也就是说通过视图机制把要保密的数据对无权存取的用户隐藏起来从而自动地对数据提供一定程度的安全保护视图机制间接地实现了支持存取谓词的用户权限定义在不直接支持存取谓词的系统中可以先建立视图然后在视图上进一步定义存取权限前面讲的用户标识与鉴别存取控制仅是安全性标准的一个重要方面但不是全部因为任何系统的安全保护措施都不是完美无缺的蓄意盗窃破坏数据的人总是想方设法打破控制为了使dbms达到一定的安全级别还需要在其它方面提供相应的支持例如按照tditcsec标准中安全策略的要求审计功能就是dbms达到c2以上安全级别必不可少的一项指标审计功能把用户对数据库的所有操作自动记录下来放入审计日志auditlog中dba可以利用审计跟踪的信息重现导致数据库现有状况的一系列事件找出非法存取数据的人时间和内容等审计通常是很费时间和空间的所以dbms往往都将其作为可选特征允许dba根据应用对安全性的要求灵活地打开或关闭审计功能对于高度敏感性数据例如财务数据军事数据国家机密除以上安全性措施外还可以采用数据加密技术数据加密是防止数据库中数据在存储和传输中失密的有效手段加密的基本思想是根据一定的算法将原始数据术语为明文plaintext变换为不可直接识别的格式术语为密文ciphertext从而使得不知道解密算法的人无法获知数据的内容加密方法主要有两种一种是替换方法该方法使用密钥encryptionkey将明文中的每一个字符转换为密文中的一个字符另一种是置换方法该方法仅将明文的字符按不同的顺序重新排

数据库第九章

数据库第九章
函数依赖于,函数决定
a f1 b h2
a f3
c f4
11
函数依赖
函数依赖:一种完整性约束,表示特定的属性值之间的关系,可以用来 判断模式规范化和建议改进
例,考虑r(A,B)及其下列实例r
AB 14 15 37 对此实例,A B不成立,但B A成立 ∵若B属性值确定了,则A属性值也唯一确定了。于是有 B → A
由于包含n个元素的集合含有个2n子集,因此共有2nX2n个可能的函数依 赖
后面会介绍完成此任务的另一过程
22
属性集的闭包
如何判断集合是否为超码
一种方法是:计算F+ ,在F+中找出所有 i ,检查{ 1 2 3 … }= R。 但是这么做开销很大,因为F+可能很大
另一种方法是:计算的闭包
10
函数依赖
设R是一个关系模式,且有属性集 R, R
函数依赖

借用了数学上的函数概念: x → f(x)
在R上成立当且仅当对任意合法关系r(R),若r的任意两条元组t1和t2
在属性集上的值相同,则他们在属性集上的值也相同。即,
t1[] = t2[] t1[] = t2[]
AG I:用G增补A C得AG CG,再由CG I根据传递规则得到
CG HI:由CG H和CG I,可根据函数依赖的定义导出“并规则”
得到,或增补CG I得到CG CGI,增补CG H得到CGI HI,再利
用传递规则得到
20
Armstrong公理的补充定律
使用空值(null):存储一个不知道所在系的教师信息,可以使用空值表 示dept_name, building, budget数据,但是空值难以处理

数据库原理与应用章节练习题及答案-第9章

数据库原理与应用章节练习题及答案-第9章

1.试述实现数据库安全性控制的常用方法和技术。

数据库安全性控制的常用技术包括用户标识与鉴别、存取控制、视图机制、审计、密码保护等。

2.什么是数据库中的自主存取控制方法和强制存取控制方法?在自主存取控制方法中,用户对于不同的数据对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户。

DBMS通过验证用户是否具有对访问数据有相应的权限来决定是否允许用户执行数据访问。

在强制存取控制中,DBMS所管理的全部实体被分为主体和客体两大类。

主体和客体都具有自己的安全级别。

但主体访问客体时,不仅要求主体具有访问客体的权限,而且要求主体的安全级和客体的安全级之间满足支配关系。

3.DBMS的完整性控制机制应具有哪些功能?DBMS的数据库完整性控制机制应具有以下三个功能:(1)定义功能:提供定义完整性约束条件的机制;(2)检查功能:检查用户发出的操作请求是否违背了约束条件。

一般有两种检查方式:一种是立即执行约束(即一条语句执行完成后立即检查),另一种是延迟执行约束(即在整个事务执行完毕后再检查约束);(3)违约响应功能:如果操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。

4.试述事务的概念及事务的四个特性。

数据库系统中的事务是一个不可分的操作序列,其中的操作要么全部都不执行,要把全部都执行。

事务一般应满足四个性质,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

这四个性质在数据库领域中一般合称为事务的ACID性质。

(1)原子性事务的原子性是指一个事务内部的所有操作要么全部都执行,要么一个也不执行,即所有操作是一个整体。

(2)一致性事务的一致性是指事务的执行保证数据库从一个一致状态转到另一个一致状态,即数据不会应事务的执行而导致不一致。

但是,事务的内部无须满足数据库的一致性。

分布式数据库系统知识点及习题

分布式数据库系统知识点及习题

第9章分布式数据库系统9.1 基本内容分析9.1.1 本章重要概念(1)分布计算的三种形式:处理分布,数据分布,功能分布。

(2)C/S系统,工作模式,技术特征,体系结构,两层、三层、多层C/S结构。

(3)DDBS的定义、特点、优点、缺点和分类;分布式数据存储的两种形式(分片和分配)。

(4)DDB的体系结构:六层模式,分布透明性的三个层次,DDBS的组成,DDBMS的功能和组成。

(5)分布式查询处理的查询代价,基于半联接的优化策略,基于联接的优化策略。

(6)分布式数据库的并发控制和恢复中出现的问题,以及处理机制。

9.1.2 本章的重点篇幅(1)两层、三层、多层C/S结构。

(教材P365-367)(2)分布式数据存储:分片和分配。

(教材P375-377)(3)DDB的体系结构。

(教材P378的图9.10,P381的图9.12)(4)基于半联接的执行示意图。

(教材P389的图9.17)9.2 教材中习题9的解答9.1 名词解释·集中计算:单点数据和单点处理的方式称为集中计算。

·分布计算:随着计算机网络技术的发展,突破集中计算框架,DBMS的运行环境逐渐从单机扩展到网络,对数据的处理从集中式走向分布式、从封闭式走向开放式。

这种计算环境称为分布计算。

·处理分布:指系统中处理是分布的,数据是集中的这种情况。

·数据分布:指系统中数据是分布的,但逻辑上是一个整体这种情况。

·功能分布:将计算机功能分布在不同计算机上执行,譬如把DBMS功能放在服务器上执行,把应用处理功能放在客户机上执行。

·服务器位置透明性:指C/S系统向客户提供服务器位置透明性服务,用户不必知道服务器的位置,就可以请求服务器的服务。

·集中式DBS:所有工作都由一台计算机完成,这种DBS称为集中式DBS。

·DDBS:是物理上分散逻辑上集中的DBS,每一场地既能完成局部应用又能完成全局应用,这种系统称为DDBS。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

the Interface between SQL statements and programming language



SQL define an array of characters SQLSTATE that is set every time the system is called. SQLSTATE connects the host-language program with the SQL execution system. 00000: no error 02000: could not be found
Options
1.
2.
3.
SQL statements are embedded in a host language (e.g., C). Code in a specialized language is stored in the database itself (e.g., PSM, PL/SQL). Connection tools are used to allow a conventional language to access a database (e.g., CLI, JDBC, PHP/DB).

Need for Dynamic SQL

Most applications use specific queries and modification statements to interact with the database.

The DBMS compiles EXEC SQL … statements into specific procedure calls and produces an ordinary host-language program that uses a library.

while (1) { EXEC SQL FETCH FROM execCursor INTO :execName,:execAddr,:certNo,:worth; if (NO_MORE_TUPLES) BREAK; IF (WORTH < 1000) EXEC SQL DELETE FROM MovieExec WHERE CURRENT OF execCursor; else ….. EXEC SQL CLOSE execCursor;
Implementations of SQLSTATE
SQL defines an array of characters SQLSTATE that is set every time the system is called. Errors are signaled there Different systems use different way Oracle provides us with a header file sqlca.h that declares a communication area and defines macros to access it, such as NOT FOUND. Sybase provides SQLCA with sqlcode 0:success, <0: fail, 100: not found
Queries produce sets of tuples as a result, while none of the major host languages supports a set data type directly. So, cursors are used.




A cursor declaration: EXEC SQL DECLARE <cursor> CURSOR FOR <query> A statement EXEC SQL OPEN<cursor> : the cursor is ready to retrieve the first tuple of the relation over which the cursor ranges. EXEC SQL FETCH FROM < cursor > INTO <list of variables> EXEC SQL CLOSE <cursor>: the cursor is no longer ranges over tuples of the relation.
Protecting against concurrent updates
EXEC SQL DECLARE execCursor INSENSITIVE CURSOR FOR SELECT netWorth FROM MovieExec;


The SQL system will guarantee that changes to relation MovieExec made between one opening and closing of execCursor will not affect the set of tuples fetched. Insensitive cursors could be expensive, systems spend a lot of time to manage data access.

Sometimes we don‟t know what it needs to do until it runs?



Each embedded SQL statement introduced with EXEC SQL Shared variables : exchange data between SQL and a host language. When they are referred by a SQL statement, these shared variables are prefixed by a colon, but they appear without colon in hostlanguage statements. EXEC SQL BEGIN / END DECLARE SECTION to declare shared variables.
Scrolling Cursors
EXEC SQL DECLARE execCursor SCROLL CURSOR FOR MovieExec; The cursor may be used in a manner other than moving forward in the order of tuples. Follow FETCH by one of several options that tell where to find the desired tuple. Those options are NEXT, PRIOR, FIRST, LAST and so on.
More about cursor: Nhomakorabea
The order in which tuples are fetched from the relation can be specified. The effect of changes to the relation that the cursor ranges over can be limited. The motion of the cursor through the list of tuples can be varied.


How to identify SQL statements? How to move data between SQL and a conventional programming language? Mismatch problem exists?
How to recognize SQL statements (the Interface between SQL statements and programming language)
Chapter 9 SQL in a server environment


SQL in a Programming Environment embedded SQL persistent stored modules Database-Connection Libraries Call-level interface (CLI) JDBC PHP
Example: Find the price for a given beer at a given bar
Sells (bar, beer, price) EXEC SQL BEGIN DECLARATION SECTION CHAR theBar[21], theBeer[21]; Float thePrice; EXEC SQL END DECLARAE SECTION EXEC SQL SELECT price INTO :thePrice FROM sells WHERE beer = :theBeer AND bar =:theBar;
SQL in a Programming Environment


Embedded SQL: add to a conventional programming language (C for example, we called host language ), certain statements that represent SQL operation. Host language+embedded SQL code?
System Implementation
Host Language + Embedded SQL Preprocessing Host Language + Function calls Host-language compiler Object-code program
相关文档
最新文档