数据库系统第五章数据库保护(1)
数据库原理与应用第五章课件
5.2 需求分析
5.2.2 需求分析的方法
需求分析常用的调查方法有以下几种: (1)亲自参与业务活动,了解业务处理的基本情况。 (2)请专人介绍。 (3)在对用户的需求了解过程中一定会存在许多疑问,可以通
过与用户座谈、询问等方式来解决这些疑问。 (4)设计调查表请用户填写。如果调查表设计得合理接受。 (5)查问记录。即查问原系统有关的数据记录。 (6)学习文件。及时了解掌握与用户业务相关的政策和业务规
5.6 数据库实施
所谓数据库的实施,就是根据数据库的逻辑结构 设计和物理结构设计的结果,在具体RDBMS支持的计算 机系统上建立实际的数据库模式、装人数据、并进行 测试和试运行的过程。 (1)散数据库的建立与调整 (2)数据库的调整 (3)应用程序编制与调试 (4)数据库系统的试逻辑结构设计阶段 物理结构设计阶段 数据库实施阶段 数据库运行和维护阶段
5.2 需 求 分 析
5.2.1 需求分析的任务
需求分析的任务是通过详细调查所要处理的对象(组织、 部门、企业等),充分了解原有系统的工作概况,明确用户的 各种数据需求、完整性约束条件、事务处理和安全性条件等, 然后在此基础上确定新系统的功能。新系统必须充分考虑今后 可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。
(1)一个实体型转换为一个关系模式; (2)实体的属性就是关系的属性,实体的码就是关系的码。
5.5 物 理 设 计
数据库物理设计阶段主要包括以下4个过程: (1)分析影响物理数据库设计的因素。 (2)为关系模式选择存取方法。 (3)设计关系、索引等数据库文件的物理存储结构。 (4)评价物理结构。
(1)数据库的转储和恢复。 (2)维持数据库的完整性与安全性。 (3)监测并改善数据库性能。 (4)数据库的重组和重构。
北邮数据库课程设计
北邮数据库课程设计一、课程目标知识目标:1. 理解数据库的基本概念,掌握数据库系统的基本组成与功能。
2. 学会使用SQL语言进行数据库的基本操作,包括数据查询、插入、删除和修改。
3. 掌握数据库设计的基本原理,能够完成简单的数据库设计。
技能目标:1. 能够运用所学知识,使用数据库管理系统(DBMS)创建和管理小型数据库。
2. 能够运用SQL语言解决实际问题,进行数据的有效检索和分析。
3. 能够运用数据库设计原理,设计出结构合理、性能优良的数据库。
情感态度价值观目标:1. 培养学生对数据库技术的兴趣和热情,提高对信息技术的认识和重视。
2. 培养学生的团队协作意识,学会在团队中分工合作,共同完成数据库设计和开发任务。
3. 培养学生的创新意识和解决问题的能力,鼓励学生勇于尝试,善于总结,不断优化数据库设计。
课程性质:本课程为北邮数据库课程设计,旨在帮助学生掌握数据库的基础知识和技能,培养实际操作和解决问题的能力。
学生特点:学生为高年级本科生,具有一定的计算机基础和编程能力,对数据库技术有一定了解。
教学要求:结合学生特点和课程性质,本课程要求学生通过理论学习和实践操作,达到上述课程目标。
教师需采用案例教学、任务驱动等方法,引导学生主动参与,确保课程目标的实现。
同时,注重过程评价,及时了解学生的学习成果,为教学设计和评估提供依据。
二、教学内容1. 数据库基本概念:介绍数据库的定义、发展历程、数据库管理系统(DBMS)的功能与类型。
教材章节:第一章 数据库概述2. 数据模型与关系代数:讲解实体-关系模型、关系模型,以及关系代数的基本运算。
教材章节:第二章 数据模型与关系代数3. SQL语言:教授SQL语言的基本语法,包括数据查询、插入、删除、修改等操作。
教材章节:第三章 SQL语言4. 数据库设计:讲解数据库设计的基本原则,如范式理论、E-R图设计,以及数据库设计方法。
教材章节:第四章 数据库设计5. 数据库保护:介绍事务管理、并发控制、备份与恢复等数据库保护技术。
数据库第五章习题及答案
数据库第五章习题及答案本文档为数据库第五章的习题及答案,帮助读者巩固数据库相关知识。
习题1. 数据库的优点有哪些?数据库具有以下优点: - 数据共享:多个用户可以同时访问和共享数据库中的数据。
- 数据一致性:数据库提供事务管理能力,保证了数据的一致性。
- 数据持久性:数据在数据库中是永久存储的,不会因为系统关机或程序结束而丢失。
- 数据冗余度低:数据库通过规范化设计,减少了数据的冗余性,提高了数据的存储效率。
- 数据独立性:数据库支持数据与应用程序的独立性,提高了系统的灵活性和维护性。
- 数据安全性:数据库提供了用户权限管理和数据备份机制,保证了数据的安全性。
2. 数据库的三级模式结构是什么?数据库的三级模式结构包括: - 外模式(视图层):外模式是用户所看到的数据库的子集,用于描述用户对数据库的逻辑视图。
每个用户可以有不同的外模式来满足自己的需求。
- 概念模式(逻辑层):概念模式是全局数据库的逻辑结构和组织方式,描述了数据的总体逻辑视图。
概念模式独立于具体的应用程序,是数据库管理员的角度来看待数据库的。
- 内模式(物理层):内模式是数据库的存储结构和物理组织方式,描述了数据在存储介质上的实际存储方式。
3. 数据库的完整性约束有哪些?数据库的完整性约束包括: - 实体完整性约束:确保表的主键不为空,每个实体都能够唯一标识。
- 参照完整性约束:确保外键的引用关系是有效的,即外键值必须等于被引用表中的主键值或者为空。
- 用户定义完整性约束:用户可以自定义额外的完整性约束,如检查约束、唯一约束、默认约束等。
4. 数据库的关系模型有哪些特点?数据库的关系模型具有以下特点: - 数据用二维表的形式进行组织,表由行和列组成,每一行表示一个实体,每一列表示一个属性。
- 表与表之间通过主键和外键建立关联关系,形成关系。
- 关系模型提供了一种数据独立性的设计方法,使得应用程序与数据的逻辑结构相分离,提高了系统的灵活性和可维护性。
(完整版)第五章_数据库完整性(习题)
(完整版)第五章_数据库完整性(习题)一、选择题1.完整性检查和控制的防范对象是( ),防止它们进入数据库。
安全性控制的防范对象是(),防止他们对数据库数据的存取。
A.不合语义的数据 B。
非法用户 C.不正确的数据 D.非法操作2.找出下面SQL命令中的数据控制命令().A。
GRANT MIT C.UPDATE D.SELECT3.下述SQL命令中,允许用户定义新关系时,引用其他关系的主码作为外码的是()。
A。
INSERT B。
DELETE C.REFERENCES D. SELECT4.下述SQL命令的短语中,不用于定义属性上约束条件的是()。
A.NOT NULL短语 B。
UNIQUE短语 C.CHECK短语 D。
HAVING短语二、填空题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。
请写出对应的完整性命名子句constraintSno_CK primary key check(sno between 18 and 22)。
1.A C ;BD 2. A 3。
数据库系统原理课后答案 第五章
5.1 名词解释(1)SQL模式:SQL模式是表和授权的静态定义。
一个SQL模式定义为基本表的集合。
一个由模式名和模式拥有者的用户名或账号来确定,并包含模式中每一个元素(基本表、视图、索引等)的定义。
(2)SQL数据库:SQL(Structured Query Language),即‘结构式查询语言’,采用英语单词表示和结构式的语法规则。
一个SQL数据库是表的汇集,它用一个或多个SQL模式定义。
(3)基本表:在SQL中,把传统的关系模型中的关系模式称为基本表(Base Table)。
基本表是实际存储在数据库中的表,对应一个关系。
(4)存储文件:在SQL中,把传统的关系模型中的存储模式称为存储文件(Stored File)。
每个存储文件与外部存储器上一个物理文件对应。
(5)视图:在SQL中,把传统的关系模型中的子模式称为视图(View),视图是从若干基本表和(或)其他视图构造出来的表。
(6)行:在SQL中,把传统的关系模型中的元组称为行(row)。
(7)列:在SQL中,把传统的关系模型中的属性称为列(coloumn)。
(8)实表:基本表被称为“实表”,它是实际存放在数据库中的表。
(9)虚表:视图被称为“虚表”,创建一个视图时,只把视图的定义存储在数据词典中,而不存储视图所对应的数据。
(10)相关子查询:在嵌套查询中出现的符合以下特征的子查询:子查询中查询条件依赖于外层查询中的某个值,所以子查询的处理不只一次,要反复求值,以供外层查询使用。
(11)联接查询:查询时先对表进行笛卡尔积操作,然后再做等值联接、选择、投影等操作。
联接查询的效率比嵌套查询低。
(12)交互式SQL:在终端交互方式下使用的SQL语言称为交互式SQL。
(13)嵌入式SQL:嵌入在高级语言的程序中使用的SQL语言称为嵌入式SQL。
(14)共享变量:SQL和宿主语言的接口。
共享变量有宿主语言程序定义,再用SQL 的DECLARE语句说明, SQL语句就可引用这些变量传递数据库信息。
第5章 数据库安全保护
13
常用登录账号管理命令
功能 查看登录账号 创建登录账号 存储过程 sp_helplogins sp_addlogin
更改登录账号密码 sp_password 给登录账号添加角 sp_addsrvroleme 色 mber 删除登录帐号 sp_droplogin
14
SQL Server的服务器角色 角色(Role)是对权限集中管理的一 种机制,将不同的权限组合在一起就 形成了一种角色。 服务器角色是执行服务器级管理操作 的用户权限的集合。
17
角色名称 public db_accessadmin 最基本的数据库角色 可以添加或删除用户标识
权限
db_backupoperator 可以发出DBCC、CHECKPOINT和BACKUP语句 db_datareader db_datawriter 可以选择(取)数据库内任何用户表中的所有数据 可以更改数据库内任何用户表中的所有数据
15
5.1.6 SQL Server的数据库用户账号和数据库角色
数据库的用户账号
常用数据库用户账号管理命令
功能 存储过程
查看用户账号
创建用户账号 删除用户帐号
sp_helpuser
sp_adduser sp_dropuser
16
数据库角色 数据库角色是对数据库对象操作的权 限的集合。 数据库角色可分为两种: 固定的标准数据库角色 系统定义 应用程序角色 由用户根据需要定义
6
用户存取权限控制
用户存取权限指的是不同的用户对于不同的数据对 象允许执行的操作权限。 在数据库系统中,定义用户存取权限称为授权 。 这些授权定义经过编译后以一张授权表的形式存放 在数据字典中。
用户标识 授权表 数据对象 操作类型
第五章 数据库的维护和应用
第五章数据库的维护和应用一、例题解析【例题1】设数据表已经打开,为了在表尾增加一条空记录,应使用的命令是()。
A.APPEND B.APPEND BLANK C.INSERT D.INSERT BLANK【解析】答案A,APPEND命令打开一个输入记录的浏览窗口;答案D,INSERT BLANK是插入一条空记录,但必须将记录指针移动到文件尾;答案B是在文件尾追加一条空记录,这个命令常常配合REPLACE命令用于程序中添加记录。
答案:B【例题2】在打开的职工表在有字符型字段“职称”和数值型字段“工资”等,若要求先按职称的升序,职称相同再按工资降序建立排序好的zcgz.dbf文件,应使用的命令是()。
A.SORT ON职称,工资/D Tozcgz.dbfB.SORT ON工资/D,职称/A Tozcgz.dbfC.SORT ON职称+工资Tozcgz.dbfD.SORT ON职称+工资/D Tozcgz.dbf【解析】在SORT命令中,排序的依据只能是关键字段名,而不能使用关键字表达式,因此,答案C和D都是错误的。
答案B是先按工资排序,工资相同再按职称排序,与题意不符,所以正确的答案是A。
答案:A【例题3】在打开的学生档案表中有字符字段“性别”和日期型字段“出生日期”等若要先按性别排序,性别相同时再按出生日期排序创建单索引文件,应使用的命令是()。
A.INDEX ON性别,出生日期TO Xbrq.idxB.INDEX ON性别+出生日期TO xbrq.idxC.INDEX ON性别+STR(出生日期)TO xbrq.idxD.INDEX ON性别+DTOC(出生日期)TO xbrq.idx【解析】对于多重索引,索引表达式中的各字段数据类型必须是一致的。
本题中,“性别”和“出生日期”的数据类型不一致,为构成一个索引表达式,通常是使用转换函数把非字符型的数据转换成字符型的数据。
这里要用DTOC()函数将日期型转换成字符型的,因而答案B、C是错误的;答案A中,索引表达式不能是用逗号隔开的式子。
《数据库系统原理》PPT电子课件教案-第五章 数据库保护
四、用户定义的安全性措施 除了系统级的安全性措施外,Oracle还允许用户用数 据库触发器定义特殊的更复杂的用户级安全性措施。例 如,规定只能在工作时间内更新Student表,可以定义如 下触发器,其中sysdate为系统当前时间: CREATE OR REPLACE TRIGGER secure student BEFORE INSERT OR UPDATE OR DELETE ON Student BEGIN IF(TO_CHAR(sysdate,’DY’) IN(‘SAT’,’SUN’)) OR(TO_NUMBER(sysdate HH24') NOT BETWEEN 8 AND l7) THEN
常用的方法:
1)用一个用户名或者用户标识号来标明用户身份, 系统鉴别此用户是否是合法用户。 2)口令(Password)。为进一步核实用户,系统要求 用户输入口令 3)系统提供一个随机数,用户根据预先约定好的某 一过程或函数进行计算,系统根据计算结果是否正 确进一步鉴定用户身份。
2. 存取控制
(2)行级安全性 Oracle行级安全性由视图实现。用视图定义表的水 平子集,限定用户在视图上的操作,就为表的行级提供 了保护。视图上的授权与回收与表级完全相同。 例如,只允许用户U2查看Student表中信息系学生的 数据,则首先创建信息系学生视图S_ IS,然后将该视图 的SELECT权限授予U2用户。 (3)列级安全性 Oracle列级安全性可以由视图实现,也可以直接在基 本表上定义。 用视图定义表的垂直子集就可以实现列级安全性,方 法与上面类似。
Oracle对数据库对象的权限采用分散控制方式, 允许具有WITH GRANTOPTION的用户把相应权限或 其子集传递授予其他用户,但不允许循环授权,即被 授权者不能把权限再授回给授权者或其祖先, U1 U2 U3 U4 × 循环授权 Oracle把所有权限信息记录在数据字典中。当用 户进行数据库操作时,Oracle首先根据数据字典中的 权限信息,检查操作的合法性。在Oracle中,安全性 检查是任何数据库操作的第一步。
郑大计算机基础试题
第一章绪论本章练习题1、数据库是在计算机系统中按照一定的数据模型组织、存储和应用的___1__;支持数据库各种操作的软件系统叫____2________;由计算机、操作系统、DBMS、数据库、应用程序及用户等组成的一个整体叫做____3____。
1 A、文件的集合B、数据的集合C、命令的集合D、程序的集合2 A、命令系统B、数据库管理系统C、数据库系统D、操作系统3 A、文件系统B、数据库系统C、软件系统D、数据库管理系统2、数据库领域常用的数据模型有_____________A、层次模型B、网状模型C、关系模型D、面向对象模型3、目前最流行的数据模型是_____________A.层次模型B.网状模型C.关系模型D.面向对象模型4、在学生选课数据库中,学生实体与课程实体之间的联系是_____________A.1:1 B.1:NC.N:1 D.M:N5、数据库管理技术经理了__________________、____________________和________________________三个阶段。
6、数据独立性可分为________________和____________________。
7、根据数据模型的应用目的不同,数据模型分为______________和_________。
8、数据模型的三个组成要素是__________________、____________________和________________________。
9、什么是数据库?10、什么是数据库的数据独立性?11、数据库管理系统有哪些功能?第二章关系数据库大家在学习本章内容时,要掌握关系的数据结构、关系的三类完整性约束(实体完整性,参照完整性,用户自定义完整性)、关系操作(关系代数,元组关系演算,域关系演算)概念;理解关系、关系模式、关系数据库的概念;理解实体完整性、参照完整性的含义;熟练掌握关系代数中的各种运算符;学会使用关系代数的运算符进行各种操作。
第五章 数据库完整性
例2:将SC表中的SNO、cno属性组定义为码 create table sc (sno char(9) not null, cno char(4) not null, grade smallint, primary key(sno,cno) )
8
5.1.2 实体完整性的违约处理
对于实体完整性的检查,包括:
在子表中修改外码(也是主属性)的策略
6. 在参照关系(子表)中修改外码(同时是主码 属性 )。与在参照关系中插入元组类似,可以 有2种策略: 受限修改 递归修改 RDBMS在实现参照完整性时: 需要向用户提供定义主码、外码的机制。 向用户提供按照自己的应用要求选择处理依 赖关系中对应的元组的方法。
6
5.1 实体完整性
5.1.1 定义实体完整性 例1:将student表中的sno属性定义为码 create table student (sno char(9) primary key, sname char(20) not null, ssex char(2), sage smallint, sdept char(20) )
26
5.4 完整性约束命名子句
1. 完整性约束命名子句 Constraint <完整性约束条件名><完整性约 束条件> 例5.10 建立学生登记表 student,要求学号在 90000—99999 之间,姓名不能取空值,年 龄小于30,性别只能是“男”或者“女”
5
数据库完整性控制机制
DBMS完整性控制机制: 1. 提供定义完整性约束条件的机制:提供定义数 据完整性约束条件的方法,完整性约束条件作为 模式的一部分存入数据库中; 2. 提供完整性检查的方法:进行完整性检查,检 查数据是否满足约束条件; 3. 进行违约处理:若有违反,采取相应措施(拒 绝、报告、改正)处理。 完整性子系统:DBMS中执行完整性控制的子系统。 其功能为监督事务的执行,测试其是否违反完整性 约束条件;若有违反,则分情况进行预定的处理。
数据库系统概论(第五版)1第5章ppt课件
An Introduction to Database System
数据库完整性(续)
3.违约处理
数据库管理系统若发现用户的操作违背了完整性约束条件 ,就采取一定的动作 ➢ 拒绝(NO ACTION)执行该操作 ➢ 级连(CASCADE)执行其他操作
(1)在列级定义主码 CREATE TABLE Student ( Sno CHAR(9) PRIMARY KEY, Sname CHAR(20) NOT NULL, Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20) );
An Introduction to Database System
5.1 实体完整性
5.1.1 实体完整性定义 5.1.2 实体完整性检查和违约处理
An Introduction to Database System
5.1.1 实体完整性定义
❖ 关系模型的实体完整性
规定表的每一行在表中是唯一实体。通过索引、unique约束、主键约 束、 identity(a,b)(ab均为正整数,a表示开始数,b表示增幅)等强 制表中的实体唯一。
实体完整性定义(续)
[例5.2] 将SC表中的Sno,Cno属性组定义为码 CREATE TABLE SC ( Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY (Sno,Cno) /*只能在表级定义主码*/ );
An Introduction to Database System
第五章 数据库完整性
第5章 数据库保护
《数据库原理与应用》——第5章 数据库保护——东北财经大学 李红
⑵ 受限方式 (RESTRICT)
• 当参照关系中没有任何元组的外键值与被参照关系中要删除元组的主 键值相同时,系统才进行删除操作,否则拒绝删除操作。因此对“学 生”表的删除操作将被拒绝。
《数据库原理与应用》——第5章 数据库保护——东北财经大学 李红
DB完整性: • 指DB数据的正确性和相容性。 • 由DBMS提供定义完整性约束的机制。 完整性约束: • 指对数据所规定的语义约束条件。
《数据库原理与应用》——第5章 数据库保护——东北财经大学 李红
5.1.1 完整性约束的定义
1.实体完整性的定义 2.参照完整性的定义 3.用户定义完整性的定义
《数据库原理与应用》——第5章 数据库保护——东北财经大学 李红
⑶ 隔离性
• 当多个事务并发执行时,任一事务的执行不会受到其它事 务的干扰,多个事务并发执行的结果与分别执行单个事务 的结果是完全一样的,这就是事务的隔离性。
《数据库原理与应用》——第5章 数据库保护——东北财经大学 李红
2.参照完整性的定义
• 根据参照完整性规则,用户只要定义了一个关系(基本 表)的外键(外部关键字),系统就会控制外键的值要么 为空,要么等于被参照关系中某一个主键的值(系统对 外键的一种约束)。
• 使用FOREIGN KEY约束(外键约束)定义参照完整性。
第5章 数据库保护
《数据库原理与应用》——第5章 数据库保护——东北财经大学 李红
内容
5.1 数据库完整性 5.2 数据库安全性 5.3 数据库并发控制 5.4 数据库恢复 小结
数据库系统概论数据库保护
(1). 在执行插入、更新操作时要保证所有学生年龄不小于15岁.
S
S# SN SA SD
I. CONSTR(I.U.) I.
≥15
图8-7
(2). 所插入的学生选课元组中学生所选的课程必须为学校开设 的课程.
SC
S# C#
G
I. CONSTR(I.) I.
ALL.CX
C
C#
CN PC#
ALL.CX
图8-8
S
S# SN SA SD
I.AUTR(P.).WP I. N A M D
b. 将对关系S的四种存取权限授予用户WP.
S
S# SN
I.AUTR.WP I.
NA
SA SD MD
c. 任意一个学生可以读SC关系中关于自己的元组.
SC
S# C# G
I.AUTR(P.). Z I. Z
CZ GZ
d. 用户可以插入成绩在90分以上的SC元组.
事务T1: 读B; A=B+1; 写回A; 事务T2: 读A; B=A+1; 写回B; 设A,B初值均为2, 按T1-T2次序串行的执行它们时,结果是A=3, B=4. 若按T2-T1次序串行的执行它们时,结果是A=4, B=3. 1.串行调度 2. 可串行化
8.3.5 两段锁协议
一.基本概念 二. 两段锁协议规定所有的事务应遵循的规则: 1.在对任何数据进行读写之前,事务首先要获得对该数据的封锁. 2. 在释放一个封锁之后,事务不在获得任何其他封锁.
8.4 恢 复
8.4.1 故障的种类
一.事务内部的故障
事务故障意味着事务没有达到预期的终点,因此数据 库可能处于不正确状态.系统就要滚回此事务,即撤销该事 务已经作出的任何对数据库的修改,使得该事务好象根本 没有启动一样.
第五章王珊,萨师煊版《数据库系统概论》讲义及课后习题答案
完整性约束条件分类
六类完整性约束条件
•
静态列级约束 静态元组约束 静态关系约束 动态列级约束 动态元组约束 动态关系约束
• • • • •
完整性约束条件(续)
对象状态 动态 动态列级约束 ④ 静态列级约束 ① 动态元组约束 ⑤ 动态关系约束 ⑥
静态
静态元组约束 静态关系约束 ② ③
列
元组
关系
对象粒度
4. 修改被参照关系中主码的问题
• 两种策略 (1)不允许修改主码 (2)允许修改主码
允许修改主码策略
• 违约操作 ♦要修改被参照关系中某些元组的主码值, 而参照关系中有些元组的外码值正好等 于被参照关系要修改的主码值 ♦要修改参照关系中某些元组的主码值, 而被参照关系中没有任何元组的外码值 等于被参照关系修改后的主码值
允许修改主码策略
例:将Student关系中Sno=950001的元组中Sno 值改为960123。而SC关系中有 4个元组的 Sno=950001 – 级联修改:将SC关系中4个Sno=950001元组 中的Sno值也改为960123。如果参照关系同时 又是另一个关系的被参照关系,则这种修改操 作会继续级联下去。
一般是拒绝执行
• 违反参照完整性的操作:
– 拒绝执行 – 接受这个操作,同时执行一些附加的操作,以保证 数据库的状态正确
三、参照完整性的实现
例:职工-部门数据库包含职工表EMP和部门表DEPT
1 DEPT关系的主码为部门号Deptno 2 EMP关系的主码为职工号Empno, 外码为部门号Deptno 称DEPT为被参照关系或目标关系,EMP为参照关系
3.在参照关系中插入元组时的问题
• 受限插入 – 仅当被参照关系中存在相应的元组,其主码值 与参照关系插入元组的外码值相同时,系统才 执行插入操作,否则拒绝此操作。 • 递归插入 – 首先向被参照关系中插入相应的元组,其主码 值等于参照关系插入元组的外码值,然后向参 照关系插入元组。
Chapter5 数据库保护
四、 数据库恢复
检测 故障 并把数据从错误状态中恢复到某一 正确状态的功能。系统故障
硬件故障
1. 备份 恢复
定期: 大型超市定期备份数据 实时: 镜像 2. 转移 对过期不再使用的数据进行转移
例如:把历史数据导出TXT,Excel等
五、 数据库再组织
对数据库中数据的存储位置进行重新调整。
Access中
15~30
输入31,系统必须报错!
一、完整性
2、完整性规则的组成: 定义了何时检查、检查什么、查出错误又怎样 处理等事项。
• 触发条件:规定系统什么时候使用规则检查数据; • 约束条件:规定系统检查用户发出的操作请求违 背了什么样的完整性约束条件; • 违约响应:规定系统如果发现用户的操作请求违 背了完整性约束条件,应该采取一定的动作来保 证数据的完整性,即违约时要做的事情。
原子性——事务不可分隔,要么全做要么不做 一致性——事务执行前后状态一致,即满足约束 隔离性——一个事务的执行不能被其他事务干扰 持久性——事务一旦提交,数据改变是持久的
例:从帐号A转移资金额R到帐号B
BEGIN TRANSACTION READ A A←A-R
ELSE /* 拨款 */ B←B+R BEGIN DISPLAY “拨款完成” COMMIT END
执行过程 A开始 X资源 等Y资源 结束 执行过程 B开始 Y资源 等X资源 结束
死 锁
3) 死锁的预防
(1)全部锁定: 所需资源全部拿去。 (2)按次序执行 (资源多的情况, 全部锁定不合理) 资源编号 例: X→ Y→ Z
A(X,Y) B(X,Y) C(Y)
按次序拿
先拿X 再拿Y
不能取X, 拿Y 也取不到Y
数据库第5章
1-6 郑州轻工业学院软件职业技术学院
总的来说计算机安全涉及的问题
计算机系统本身的技术问题
计算机安全理论与策略
计算机安全技术
管理问题
安全管理 安全评价 安全产品
数据库原理
1-7 郑州轻工业学院软件职业技术学院
计算机安全涉及问题(续)
法学
计算机安全法律
犯罪学
计算机犯罪与侦察 安全监察
能访问他有权存取的数据,必须预 先对每个用户定义存取权限。
检查存取权限
对于通过鉴定获得上机权的用户
(即合法用户),系统根据他的存 取权限定义对他的各种操作请求进 行控制,确保他只执行合法操作。
数据库原理
1-22 郑州轻工业学院软件职业技术学院
常用存取控制方法
自主存取控制(Discretionary Access
5.3.2 授权(Authorization)与回收
在数据库系统中,定义用户存取权限称为授权 (Authorization)。 第三章讨论 SQL 的数据控制功能时,我们已知道授权有两种: 系统特权和对象特权。 系统特权是由DBA授予某些数据库用户,只有得到系统特 权,才能成为数据库用户。 对象特权可以由DBA授予,也可以由数据对象的创建者授 予,使数据库用户具有对某些数据对象进行某些操作的 特权。 在系统初始化时,系统中至少有一个具有DBA特权的用户,DBA 可以通过GRANT语句将系统特权或对象特权授予其他用户。 对于已授权的用户可以通过REVOKE语句收回所授予的特权。
用户标识和鉴定的方法有多种,为了获得更强的安全性, 往往是多种方法并举,常用的方法有以下几种:
数据库原理
1-18 郑州轻工业学院软件职业技术学院
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在一般计算机系统中,安全 措施是一级一级层层设置的
USER 用户标识 和鉴定DBLeabharlann SOS 操作系统 安全保护
DB
存取控制
密码存储
安全模型
1. 用户标识和鉴定 系统提供一定的方式让用户标识自己名字或身份, 系统进行核实,通过鉴定后才提供机器使用权。
主 要 方 法
1)用户名或用户标识号来标明用户身份。
常见对数据之间联系的限制情况
数据之间的相互关联最常见的是通过值的相等与否来体现。 象函数依赖、多值依赖等。若属性X和Y之间有函数依赖成 立,即X→Y,则当x1=x2时,必须有y1=y2成立。 任何一个关系必存在一个或多个候选码。任何一个码值唯一 地确定关系的一个元组。候选码的值唯一。主码值的分量必 须非空。 一个关系的外码的值集一定是相应的另一个关系上主码属性 值集的子集 。如在学生选课的关系中,选课必须是课程号的 子集。
3)控制完整性功能,即监视数据操作的整个过 程,保证数据的完整性。
立即执行约束与延迟执行约束 立即执行约束是指在执行用户事务时,对事务 中某一更新语句执行完后马上此数据所应满足的约 束条件进行完整性检查。 延迟执行约束是指在整个事务执行结束后方对 此约束条件进行完整性检查,结果正确方能提交。
如:银行转帐,财务报表,表中总数等统计约束等
系 统 重 要 性 能 指 标 之 一
安 全 保 护 措 施 是 数 据 库
服务器
DB
大量信息资源
安全
数据的存取控制、修改和 传播的技术手段。
保密
法律、政策、伦理、道德 等问题。防范恶意行为。
对于数据库的安全保密方式可以有系统处理的和物 理的两个方面。所谓物理的是指,对于强力逼迫和 透露口令、在通讯线路上窃听、盗窃物理存储设备 等行为而采取的将数据编为密码,加强警卫以识别 用户身份和保护存储设备等措施。
为不同的用户定义不同的视图,通过 视图把数据对象限制在一定范围,从 而自动地对数据提供一定程度的保护。
4. 审计 Audit
所谓审计功能就是把用户对数据库的所有 操作自动记录下来放入审计日志中,一旦 发生数据被非法存取,DBA可以利用审计 跟踪信息,重现相关事件,找出非法者。
5. 数据加密
所谓数据加密是根据一定算法将原始数据 (明文,plain text)变换为不可识别的格 式(密文,cipher text), 从而使不知道解 密算法的人无法获得数据的内容。
粒度 状态
列级
元组级
关系级
列定义:类型 元组值应满足 实体完整性约束、参 静态 、格式、值域 的条件 照完整性约束、函数 、空值 依赖约束、统计约束 改变列定义或 元组新旧之间 关系新旧状态间应满 动态 列值 应满足的条件 足的约束条件
完整性约束条件
完整性控制机制应具有的功能 1)定义完整性功能,即提供定义完整性约束条 件的机制。 2)检查完整性功能,即检查用户发出的操作请 求,看其是否违背了完整性约束。
GRANT
SQL的数据控制功能
REVOKE GRANT SELECT, INSERT ON Student TO User1 WITH GRANT OPTION; REVOKE INSERT ON Student FROM User1; WITH GRANT OPTION可将拥有权限授予他人
3. 视图机制
2. 静态约束和动态约束 静态约束是指对数据库每一确定状态的数据所应满 足的约束条件。包括值的约束和结构的约束。 动态约束是指数据库从一种状态转变为另一种状态 时新、旧值之间所应满足的约束条件。
例如,当更新职工工资时要求新工资值不低于旧工资值。 又如,当旧工资大于等于200元时新工资等于旧工资,否则 新工资大于或等于旧工资,这条约束体现了这样的语义: 调资范围仅限于工资低于200元的职工。
重 要 数 据 替换方法:通过密钥(Encryption Ket)将明文中 的字符转换为密文中的字符。
置换方法:将明文的字符按不同的顺序重新排列。
数据库的完整性是指数据的正确性和相容性
完整性 安全性 防止数据库中存在不符合语义的数据, 防止错误信息的输入和输出 保护数据库防止无意获取、恶意的破 坏和非法的存取
支持存取谓词的授权示例
用户名 WANGPIN LIQIN ZHANGMIN … 数据对象名 关系S 关系S 关系C … 允许的操作类型 SELECT UPDATE ALL … 存取谓词 SDept='信管' SN='LIQIN' 空 …
有的系统还允许存取谓词中引用系统变量,如一天中 的时刻,终端设备号,用户只能在某台终端、某段时 间内存取有关数据,即存取权限与时间和地点有关。
数据库中数据的共享是在DBMS统一的严
格的控制之下的共享,即只允许有合法
使用权限的用户访问允许他存取的数据
数据库系统的安全保护措施是否有效是
数据库系统主要的性能指标之一
5.1 安全性
第五章 数据库保护
5.1.1 安全性的概念
数据库的安全性是指保护数据库以防止不合 法的使用所造成的数据泄露、更改或破坏。
5.1 安全性 5.2 完整性 5.3 并发控制 5.4 恢复 5.5 数据库复制与数据库镜像
问题的提出
数据库的一大特点是数据可以共享 但数据共享必然带来数据库的安全性问题 数据库系统中的数据共享不能是无条件的共 享
例:军事秘密、国家机密、新产品实验数据、 市场需求分析、市场营销策略、销售计划、 客户档案、 医疗档案、 银行储蓄数据
一个可能的授权定义表的形式
用户名 ZHANGMIN LIQIN LIQIN LIQIN WANGNAN … 数据对象名 关系Student 关系Student 关系Course 属性SC.Grade 属性o … 允许的操作类型 SELECT UPDATE ALL UPDATE SELECT …
衡量授权机制是否灵活的一个重要指标是授权粒 度,即可以定义对象的范围,授权定义中数据对 象的粒度越小,授权子系统就越灵活。
授权粒度
与文件名有关 原始的数据组 织和授权方法 与数据名有关 某用户能检索 关系Student, 则可以检索任 何系 与数据值有关 某用户授权只 能检索指定系 学生的信息, 要求系统能支 持存取谓词
2)口令(Password)识别。
3)系统产生随机数,由用户根据某算法计 算,系统根据计算结果是否正确鉴定用 户身份。
2. 存取控制 用户 权限 用户权限是指不同的用户对于不同的数据 对象允许执行的操作权限,它由两部分组 成,一是数据对象,二是操作类型。
关系系统中的存取权限
数据对象
数据 表或者记录、字段
DBMS必须提供一种功能来保证数据库中数据的完整性。 这 种功能亦称为完整性检查,即系统用一定的机制来检查数据 库中的数据是否满足规定的条件,这种条件在数据库中称为 完整性约束条件,数据的约束条件是语义的体现,这些完整 性约束条件将作为模式的一部分存入数据库中。
1. 值的约束和结构的约束 值约束 结构约束
操作类型
查找、插入、修改、删除
模式 模式、外模式、内模式 建立、修改、使用(检索)
授权(Authorization)
对于存取权限的定义称为授权。这些定义经过 编译后存储在数据字典中。每当用户发出存取 数据库的操作请求后,DBMS查找数据字典, 根据用户权限进行合法权检查,若用户的操作 请求超出了定义的权限,系统拒绝执行此操作 。授权编译程序和合法权检查机制一起组成了 安全性子系统。
对数据的值的限制
对数据取值类型、范围、精 度等的规定。可对某个属性 和属性组合规定某个值集, 规定某属性值的类型以及格 式,规定某属性的值的集合 必须满足某种统计条件。
对数据之间联系的限制
同一关系的不同属性间可以有 一定的联系,应满足一定的约 束条件,同时,由于数据库中 数据是结构化的,不同的关系 之间也可以有联系,也可满足 一定的约束条件。