第4章数据库安全及维护
- 格式:pdf
- 大小:357.89 KB
- 文档页数:11
第4章数据库和数据仓库4.1本章知识框架与学习要求数据库技术是数据管理的最新技术,是计算机科学的重要分支。
它已经成为先进信息技术的重要组成部分,是现代计算机信息系统和计算机应用系统的基础和核心。
数据库已经成为人们存储数据、管理信息、共享资源的最先进最常用的技术。
认识和掌握有关的数据库技术对学好本课程具有重要作用。
本章主要介绍了数据库技术的相关概念包括数据的组织层次、数据模型、信息模型、关系规范化等,以及数据库的设计方法,数据库仓库和数据挖掘的概念。
4.1.1 知识框架与学习要求一、数据的描述与组织(掌握)(一)三个世界1.现实世界2.信息世界3.计算机世界(二)数据组织的层次1.数据项(字段)2.记录3.数据文件4.数据库二、数据库管理技术(一)数据管理的发展(了解)1.简单应用阶段2.文件系统阶段3.数据库系统阶段(二)数据库管理系统(掌握)1.数据库系统(DBS)2.数据库管理系统(DBMS)(1)数据库的定义功能(2)数据库的操作功能(3)数据库的保护功能(4)数据库的维护功能(5)数据的存储管理三、数据模型(掌握)(一)信息模型(概念模型)1.信息模型的要素2.两个实体集之间联系的分类3.实体联系模型(E-R模型)(二)数据模型1.数据模型的三要素2.数据模型与信息模型的关系3.三种主要的数据模型(1)层次模型(Hierarchical Model)(2)网状模型(Network Model)(3)关系模型(Relational Model)(三)概念模型向关系模型的转换(四)关系的规范化1.第一范式(1NF)2.第二范式(2NF)3.第三范式(3NF)五、数据库设计(掌握)(一)数据库设计方法简述(二)数据库设计步骤六、数据仓库和数据挖掘(了解)(一)数据仓库1.数据仓库的概念2.数据仓库和数据库的区别3.数据仓库的特性4.数据仓库的基本结构5.数据仓库工具的组成(二)数据挖掘1.数据挖掘的概念2.数据仓库与数据挖掘的关系4.1.2 学习重点本章重点掌握以下几方面的内容:1.三个世界即现实世界、信息世界、计算机世界的特点及区别与联系;2.人工管理阶段、文件系统阶段及数据库系统阶段应用程序与数据关系的区别;3.数据库管理系统功能4.信息(概念)模型的要素、E-R模型的绘制方法;5.数据模型的三要素、数据模型与信息模型的关系、关系模型;6.概念模型向关系模型的转换;7.数据库设计方法和步骤4.2 教材习题与解答4.2.1 习题一、名词解释1.数据库2.记录3.DBMS4.DBS5.概念模式6.数据模型7.概念模型8.键或码9.数据操作10.1NF 11. 2NF 12.3NF 13.关系14.关系模式15.数据仓库16.数据挖掘二、简答题1. 数据库系统组织数据的特点是什么?2. 数据库系统与文件系统的区别是什么?3. 数据管理经历了哪几个阶段?各个阶段的特点是什么?4. 数据模型的三要素是什么?5. 数据库管理系统的主要功能是什么?6. 信息模型的要素有哪些?7. 试述概念模式在数据库中的重要地位。
第四章数据库安全性控制(习题集)二、选择题1、以下(D)不属于实现数据库系统安全性的主要技术和方法。
A. 存取控制技术 B. 视图技术C. 审计技术D. 出入机房登记和加锁 2、SQL中的视图提高了数据库系统的(D)。
A. 完整性 B. 并发控制 C. 隔离性 D. 安全性3、SQL语言的GRANT和REMOVE语句主要是用来维护数据库的(C)。
A. 完整性 B. 可靠性 C. 安全性 D. 一致性4、在数据库的安全性控制中,授权的数据对象的(A),授权子系统就越灵活。
A. 范围越小 B. 约束越细致 C. 范围越大 D. 约束范围大5、SQL中的视图机制提高了数据库系统的( D )。
A.完整性 B.并发控制 C.隔离性 D.安全性 6、SQL语言的GRANT和REVOKE语句主要是用来维护数据库的(C )。
A.完整性 B.可靠性 C.安全性 D.一致性 7 、安全性控制的防范对象是(B),防止他们对数据库数据的存取。
A.不合语义的数据 B.非法用户 C.不正确的数据 D.不符合约束数据 8、找出下面SQL 命令中的数据控制命令( A )。
A.GRANT B.COMMIT C.UPDATE D.SELECT三、填空题1、数据库的安全性是指保护数据库以防止不合法的使用所造成的_数据泄露、数据更改或数据破坏_。
2、完整性检查和控制的防范对象,防止它们进入数据库。
安全性控制的防范对象是,防止他们对数据库数据的存取。
3、计算机系统有三类安全性问题,即_技术安全_ 、_管理安全_和 _政策法规_。
4、用户标识和鉴别的方法有很多种,而且在一个系统中往往是多种方法并举,以获得更强的安全性。
常用的方法有通过输入_用户标识__和 _口令_来鉴别用户。
5、用户权限是由两个要素组成的:_数据对象_ 和 _操作类型_ 。
6、在数据库系统中,定义存取权限称为_授权_ 。
SQL语言用_GRANT_语句向用户授予对数据的操作权限,用_REVOKE_语句收回授予的权限。
第1篇第一章总则第一条为加强公司数据库安全管理工作,保障公司数据资源的安全、完整和可用,防止数据泄露、篡改和损坏,依据《中华人民共和国网络安全法》、《中华人民共和国数据安全法》等相关法律法规,结合公司实际情况,制定本规定。
第二条本规定适用于公司所有涉及数据存储、处理和传输的数据库系统,包括但不限于企业资源计划(ERP)、客户关系管理(CRM)、财务系统、人力资源系统等。
第三条公司数据库安全管理应遵循以下原则:(一)安全第一,预防为主;(二)分级保护,责任到人;(三)技术和管理相结合,确保数据安全;(四)持续改进,不断提高安全管理水平。
第二章组织与管理第四条公司成立数据库安全管理委员会,负责统筹规划、组织协调、监督指导数据库安全管理工作。
第五条数据库安全管理委员会下设数据库安全管理办公室,负责具体实施数据库安全管理工作。
第六条各部门、各业务单元应明确数据库安全管理责任人,负责本部门、本业务单元数据库安全管理工作。
第七条公司应建立健全数据库安全管理制度,明确数据库安全管理的职责、权限和流程。
第八条公司应定期开展数据库安全培训,提高员工数据库安全意识和技能。
第三章数据库安全策略第九条数据库访问控制(一)实行最小权限原则,根据用户职责分配相应的数据库访问权限。
(二)对数据库用户进行分类管理,分为系统管理员、业务操作员、审计员等。
(三)对数据库用户实施密码策略,确保密码复杂度、有效期和修改频率符合要求。
(四)定期对数据库用户进行安全审计,及时发现并处理违规操作。
第十条数据库安全审计(一)实施实时监控,对数据库访问行为进行记录和审计。
(二)定期对数据库访问日志进行分析,发现异常行为及时处理。
(三)建立数据库安全事件报告制度,对重大安全事件进行通报和处理。
第十一条数据库加密与传输安全(一)对敏感数据进行加密存储,确保数据在存储、传输和访问过程中的安全。
(二)采用SSL/TLS等加密协议,保障数据库访问传输安全。
第一章绪论4个基本概念:数据、数据库、数据库管理系统、数据库系统数据:描述事物的符号记录数据的含义称为数据的语义计算机系统层次结构:硬件、操作系统、数据库管理系统、应用开发工具、应用系统数据库发展阶段:人工管理阶段、文件系统阶段、数据库系统阶段。
从文件系统到数据库系统标着着数据管理技术的飞跃。
数据库是计算机的基础软件数据库系统特点:数据结构化数据共享性高、冗余度低且易扩充数据独立性高物理独立性:指用户的应用程序与数据库中数据的物理储存时相互独立的。
逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的。
数据由数据库管理系统统一管理和控制数据模型:是数据库系统的核心和基础。
描述了系统的静态特性、动态特性和完整性约束条件。
第一类:概念模型第二类:逻辑模型和物理模型概念模型表示法:实体联系方法:用E-R图表示。
数据模型的组成要素:数据结构数据操作数据的完整性约束条件常用数据模型:层次模型网状模型关系模型:最重要的数据模型,是用二维表的形式表示实体和实体间联系的数据模型。
面向对象数据类型对象关系的数据模型半结构化数据模型实体:客观存在且相互可区别的事物。
实体间联系:一对一、一对多、多对多。
基本层次联系:指两个记录以及它们之间一对多(包括一对一)的联系。
关系模型要求关系必须是规范化的。
模式:是数据库中全体数据的逻辑结构和特征的描述。
只涉及“型”,不涉及值。
实例:模式的一个具体值。
模式是相对稳定的、实例是相对变动的。
三级模式结构:模式,也称为逻辑模式外模式,也称为子模式或用户模式。
内模式:也曾内存储模式。
一个数据库中只能有一个内模式。
两种映像:外模式/模式映像、模式/内模式映像。
第二章关系数据库数据模型一般来说是由三个部分组成:数据结构数据操作数据约束域:一组具有相同数据类型的值的集合。
一个域允许不同取值的个数称为这个域的基数。
候选码:某一个属性组的值能唯一标识一个元组,而其子集不能,成该属性组为候选码。
数据库安全管理规定范文1. 总则1.1 数据库安全管理规定的目的是确保数据库系统和其中存储的数据的安全性和完整性,保护数据库系统免受未经授权的访问、意外破坏和非法操纵。
1.2 数据库安全管理规定适用于所有使用数据库系统的员工和管理员。
2. 数据库系统访问控制2.1 数据库管理员应实施合适的访问控制措施,包括但不限于用户身份验证、密码管理、访问权限控制等,以确保只有授权用户能够访问数据库系统。
2.2 所有用户必须使用唯一的个人账号和密码进行登录,并且禁止共享账号和密码。
密码应包括字母、数字和特殊符号,长度不少于8位,且定期更换。
2.3 数据库管理员应定期审查和更新用户的访问权限,对于无需访问数据库系统的用户,应及时取消其访问权限。
2.4 数据库管理员应记录和监控用户的数据库系统登录行为,并及时发现和处置异常登录活动。
3. 数据库备份与恢复3.1 数据库管理员应定期对数据库系统进行备份,并将备份数据存储在安全的地方,以防止数据丢失或损坏。
3.2 数据库管理员应测试和验证数据库备份的可恢复性,确保在需要时能够快速恢复数据库系统。
3.3 数据库管理员应保持备份数据的机密性,并采取措施防止备份数据被未经授权的访问或泄露。
4. 数据库系统安全漏洞管理4.1 数据库管理员应定期进行数据库系统安全漏洞扫描,并及时修补系统和数据库的漏洞。
4.2 数据库管理员应定期更新数据库系统的安全补丁和升级程序,确保数据库系统的安全性。
4.3 数据库管理员应跟踪和了解最新的数据库系统安全威胁和攻击方式,及时采取防范措施。
5. 数据库系统审计与监控5.1 数据库管理员应启用数据库系统的审计功能,记录用户对数据库系统的操作和访问行为。
5.2 数据库管理员应定期审计和监控数据库系统中的异常活动,如未经授权的访问、非法操作等,及时发现和处理安全事件。
5.3 数据库管理员应保存审计日志,并定期检查和分析审计日志,发现潜在的安全问题。
6. 数据库系统物理安全6.1 数据库服务器应存放在安全的机房或机柜中,限制物理访问权限,确保只有授权人员能够接触数据库服务器。
第一章总则第一条为确保医院数据库的安全、稳定、高效运行,规范医院数据库的管理和使用,特制定本制度。
第二条本制度适用于医院内所有数据库,包括但不限于患者信息数据库、药品信息数据库、医疗设备数据库、财务数据库等。
第三条医院数据库管理遵循以下原则:1. 安全性原则:确保数据库安全,防止数据泄露、篡改和丢失。
2. 可靠性原则:保证数据库的稳定运行,提高系统可用性。
3. 效率性原则:优化数据库结构,提高查询效率。
4. 规范性原则:建立健全数据库管理制度,规范数据库的使用。
第二章数据库管理员职责第四条医院设立数据库管理员(DBA)岗位,负责数据库的日常管理和维护。
第五条数据库管理员职责如下:1. 负责数据库的安装、配置、升级和备份工作。
2. 监控数据库性能,发现并解决数据库运行中的问题。
3. 制定数据库备份策略,定期进行数据备份和恢复。
4. 对数据库进行优化,提高查询效率。
5. 负责数据库的安全管理,包括用户权限设置、数据加密等。
6. 对数据库使用人员进行培训和指导。
7. 参与数据库规划、设计、实施和维护工作。
第三章数据库使用规定第六条数据库使用人员需遵守以下规定:1. 严格按照授权范围使用数据库,不得越权操作。
2. 不得擅自修改数据库结构,如需修改,应经数据库管理员批准。
3. 不得在数据库中存储无关信息,确保数据库数据准确、完整。
4. 不得随意删除、修改数据库中的数据,如需删除或修改,应经数据库管理员批准。
5. 不得利用数据库进行违法活动,如窃取、泄露患者隐私等。
第七条数据库使用人员需定期对数据库进行备份,确保数据安全。
第四章数据库安全与维护第八条数据库管理员应定期对数据库进行安全检查,包括:1. 检查数据库权限设置,确保用户权限符合规定。
2. 检查数据库访问日志,发现异常情况及时处理。
3. 检查数据库备份情况,确保数据备份完整、可用。
第九条数据库管理员应定期对数据库进行维护,包括:1. 对数据库进行优化,提高查询效率。
第一章总则第一条为确保本单位的数据库安全,防止数据泄露、篡改、丢失等风险,保障单位信息资产的安全与完整,依据国家相关法律法规,结合本单位实际情况,特制定本制度。
第二条本制度适用于本单位所有数据库,包括但不限于生产数据库、测试数据库、开发数据库等。
第三条本制度遵循以下原则:1. 防范为主,防治结合;2. 安全分级,分类管理;3. 责任明确,协同防护;4. 技术保障,持续改进。
第二章数据库安全分类与分级第四条数据库安全分类:1. 核心数据库:存储单位核心业务数据,如财务、人力资源等;2. 重要数据库:存储单位重要业务数据,如客户信息、订单等;3. 一般数据库:存储单位一般业务数据,如文档、报表等。
第五条数据库安全分级:1. 高级安全等级:针对核心数据库,采取严格的安全防护措施;2. 中级安全等级:针对重要数据库,采取较为严格的安全防护措施;3. 初级安全等级:针对一般数据库,采取基本的安全防护措施。
第三章数据库安全管理职责第六条数据库安全管理责任:1. 数据库管理员(DBA)负责数据库的日常维护、安全监控和应急处置;2. 业务部门负责所使用数据库的数据安全,确保数据真实性、完整性和准确性;3. 信息安全部门负责数据库安全管理制度的建设、实施和监督。
第七条数据库管理员职责:1. 负责数据库的安装、配置、升级和备份;2. 负责数据库用户权限的分配、管理和监控;3. 负责数据库安全事件的应急处置;4. 定期对数据库进行安全检查和风险评估。
第四章数据库安全措施第八条数据库访问控制:1. 严格限制数据库访问权限,确保只有授权用户才能访问数据库;2. 对数据库用户进行身份验证和权限控制,确保用户访问权限与实际业务需求相匹配。
第九条数据库加密:1. 对敏感数据进行加密存储,防止数据泄露;2. 对传输中的数据进行加密传输,保障数据传输安全。
第十条数据库备份与恢复:1. 定期对数据库进行备份,确保数据安全;2. 建立完善的数据库恢复机制,确保数据在遭受破坏时能够及时恢复。
第二章关系数据库1 .试述关系模型的三个组成部分。
答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
2 .试述关系数据语言的特点和分类。
答:关系数据语言可以分为三类:关系代数语言。
关系演算语言:元组关系演算语言和域关系演算语言。
SQL:具有关系代数和关系演算双重特点的语言。
这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。
3 (略)4 .5 . 述关系模型的完整性规则。
在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?答:实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值。
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。
即属性F本身不是主属性,则可以取空值,否则不能取空值。
6.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:1)求供应工程J1零件的供应商SNO:πSno(σJno=‘J1’(SPJ))2)求供应工程J1零件P1的供应商SNO:πSno(σJno=‘J1’∧Pno=‘P1‘(SPJ))3)求供应工程J1零件为红色的供应商SNO:πSno(πSno,,Pno(σJno=‘J1‘ (SPJ))∞πPno(σCOLOR=’红‘(P)))4)求没有使用供应商生产的红色零件的工程号JNO:πJno(SPJ)- πJNO(σcity=‘’∧Color=‘红‘(S∞SPJ∞P)5)求至少用了供应商S1所供应的全部零件的工程号JNO:πJno,Pno(SPJ)÷πPno(σSno=‘S1‘(SPJ))7. 试述等值连接与自然连接的区别和联系。
答:连接运算符是“=”的连接运算称为等值连接。
它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。
第4章数据库安全性数据库知识点整理第4章数据库安全性了解计算机系统安全性问题数据库安全性问题威胁数据库安全性因素掌握TCSEC和CC标准的主要内容C2级DBMS、B1级DBMS的主要特征DBMS提供的安全措施⽤户⾝份鉴别、⾃主存取控制、强制存取控制技术视图技术和审计技术数据加密存储和加密传输使⽤SQL语⾔中的GRANT语句和REVOKE语句来实现⾃主存取控制知识点什么是数据库的安全性数据库的安全性是指保护数据库以防⽌不合法的使⽤所造成的数据泄露、更改或破坏举例说明对数据库安全性产⽣威胁的因素⾮授权⽤户对数据库的恶意存取和破坏数据库中重要或敏感的数据被泄露安全环境的脆弱性信息安全标准的发展历史,CC评估保证级划分的基本内容TCSEC/TDI 安全级别划分安全级别定义A1 验证设计(verified design)B3 安全域(security domains)B2 结构化保护(structural protection)B1 标记安全保护(labeled security protection)C2 受控的存取保护(controlled access protection)C1 ⾃主安全保护(discretionary security protection)D 最⼩保护(minimal protection)CC评估保证级(EAL)的划分评估保证级定义 TCSEC安全级别(近似相当)EAL1 功能测试(functionally tested)EAL2 结构测试(structurally tested) C1EAL3 系统地测试和检查(methodically tested and checked) C2EAL4 系统地设计、测试和复查(methodically designed,tested and reviewed) B1EAL5 半形式化设计和测试(semiformally designed and tested) B2EAL6 半形式化验证的设计和测试(semiformally verified design and tested) B3EAL7 形式化验证的设计和测试(formally verified design and tested) A1实现数据库安全性控制的常⽤⽅法和技术⽤户⾝份鉴别该⽅法由系统提供⼀定的⽅式让⽤户标识⾃⼰的名字或⾝份。
第4章数据库安全及维护本章学习目标数据库系统中由于大量数据集中存放,而且为许多用户直接共享,是宝贵的信息资源,所以安全性问题更为重要。
系统安全保护措施是否有效是数据库系统的主要性能指标之一。
本章将介绍以下几部分内容:●数据库安全性问题的基本概念和保证数据安全性的基本措施●数据库并发情况下的数据安全及处理方法●数据发生故障情况下的恢复技术4.1 数据库安全性4.1.1 基本概念数据库的安全性指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。
安全性问题不是数据库系统所独有的,计算机系统都有这个问题,是因为在数据库系统中,大量数据集中存放,并为许多用户直接共享,是宝贵的信息资源,从而使安全性问题更为突出,系统安全保护措施是否有效是数据库系统的主要性能指标之一。
安全性问题和保密问题是密切相关的。
前者主要涉及数据的存取控制、修改和传播的技术手段;而后者在很大程度上是法律、政策、伦理、道德等问题。
这一节主要讨论安全性的一般概念和方法,然后介绍一些数据库系统的安全性措施。
4.1.2 安全措施的设置模型在计算机系统中,安全措施通常是一级一级层层设置的。
例如可以有如图4-1所示的计算机系统安全模型。
图4-1 计算机系统安全模型在如图4-1所示的安全模型中,用户在进入计算机系统时,首先根据用户输入的用户标识进行身份验证,只有合法的用户才准许登录计算机系统。
进入计算机系统后,DBMS对用户进行存取控制,只允许用户执行合法操作,操作系统同时允许用户进行安全操作。
数据最终可数据库技术及应用54以通过加入存取密码的方式存储到数据库中。
下面讨论最常见的用户标识与鉴别、存取控制等安全措施。
1.用户标识和鉴别首先,系统提供一定的方式让用户标识自己的名字或身份。
系统进行核实,通过鉴别后才提供机器使用权。
常用的方法有:●用一个用户名或者用户标识号来标明用户身份,系统鉴别此用户是否为合法用户。
若是,则可以进入下一步的核实;若不是,则不能使用计算机。
●口令(Password):为了进一步核实用户,系统常常要求用户输入口令。
为保密起见,用户在终端上输入的口令通常显示为其他符号(Windows环境下通常显示为*),系统核对口令以鉴别用户身份。
该方法简单易行,但用户名、口令容易被人窃取,因此还可用更复杂的方法。
●系统提供一个随机数,用户根据预先约定好的某一过程或函数进行计算,系统根据用户计算结果是否正确进一步鉴别用户身份。
2.存取控制当用户通过了用户标识和鉴别后,要根据预先定义好的用户权限进行存取控制,保证用户只能存取自己有权存取的数据。
这里的用户权限是指不同的用户对于不同的数据对象允许执行的操作权限,它由两部分组成:一是数据对象,二是操作类型,定义用户的存取权限就是要设置该用户可以在哪些数据对象上进行哪些类型的操作。
表4-1列出了关系系统中的数据对象内容和操作类型。
表4-1 关系系统中的存取权限数据对象操作类型模式、外模式、内模式建立、修改、使用(检索)表或记录、字段查找、插入、修改、删除表中的数据对象由两类组成:一类是数据本身,如关系数据库中的表、字段,非关系数据库中的记录、字段(亦称为数据项);另一类是外模式、模式、内模式。
在非关系系统中,外模式、模式、内模式的建立、修改均由数据库管理员(DBA)负责,一般用户无权执行这些操作,因此存取控制的数据对象仅限于数据本身。
在关系系统中DBA可以把建立、修改基本表的权力授予用户,用户获得此权力后可以建立基本表、索引、视图。
所以,关系系统中存取控制的数据对象不仅有数据,而且有模式、外模式、内模式等数据字典中的内容。
下面讨论数据库中存取控制的一般方法和技术。
定义用户存取权限称为授权(Authorization)。
这些定义经过编译后存储在数据字典中。
每当用户发出存取数据库的操作请求后,DBMS查找数据字典,根据数据字典中的用户权限进行合法权检查(Authorization Check)。
若用户的操作请求超出了定义的权限,系统拒绝执行此操作,授权编译程序和合法权检查机制一起组成了安全性子系统。
例如,在第4章中讲到的SQL语句中的授权、回收权限语句就是这种工作原理。
第4章数据库安全及维护554.2 数据库的完整性4.2.1 基本概念1.数据库的完整性数据库的完整性指数据的正确性和相容性,DBMS必须提供一种功能来保证数据库中数据的完整性,这种功能亦称为完整性检查,即系统用一定的机制来检查数据库中的数据是否满足规定的条件,这种条件在数据库中称为完整性约束条件,这些完整性约束条件将作为模式的一部分存入数据库中。
2.数据的完整性和安全性的区别数据的完整性和安全性是两个不同的概念,数据的完整性是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出(Garbage In Garbage Out)所造成的无效操作和错误结果;数据的安全性是保护数据库以防止恶意的破坏和非法的存取,当然,完整性和安全性是密切相关的,如果从系统实现的方法来看,某一种机制常常既可用于安全性保护也可用于完整性保证。
4.2.2 完整性约束完整性约束条件可以进行以下分类:1.值的约束和结构的约束值的约束是对数据值的限制,结构的约束是指对数据之间联系的限制(1)关于对数据值的约束。
这类约束条件是指对数据取值类型、范围、精度等的规定,例如:●对某个属性和属性组合规定某个值集,教师年龄是大于或等于16,小于或等于65的整数或实数,若为实数,可规定精度为小数点后一位数字。
又如,规定年份是四位整数,月份是一至十二的整数。
规定零件颜色是红、绿、黄、黑、白五种。
●规定某属性值的类型和格式。
如规定学号第一个字符必须是字母,后面是7位数字,规定学生名字是字符串。
●规定某属性的值的集合必须满足某种统计条件。
如任何职工的工资不得超过此部门平均工资的三倍,任何职工的奖金不得超过此部门平均工资的30%。
(2)关于数据之间联系的约束。
数据库中同一关系的不同属性之间可以有一定的联系,从而应满足一定的约束条件,同时,由于数据库中数据是结构化的,不同的关系之间也可以有联系,因而不同关系的属性之间也可满足一定的约束条件,例如:数据之间的相互关联最常见的是通过值的相等与否来体现。
又如,任何一个关系必存在一个或多个候选键。
任何一个键值唯一地确定关系的一个元组,因此候选键的值在关系中必须是唯一的,主键值也必须非空(关系模型的实体完整性)。
一个关系中某属性的值集是同一关系或另一关系中某属性值集的子集。
如在前面提到的几个基本表中,选课表中的课程号c_number必须是课程表c_number的子集。
这个例子是关系模型的参照完整性,即一个关系的外键的值集一定是相应的另一个关系上主键属性值集的子集。
数据库技术及应用562.静态约束和动态约束静态约束是指对数据库每一确定状态的数据所应满足的约束条件。
以上所讲的约束都属于静态约束。
动态约束是指数据库从一种状态转变为另一种状态时新、旧值之间所应满足的约束条件。
例如,当更新教师工资时要求新工资值不低于旧工资值。
又如,当学生学费大于等于3500元时新学费等于旧学费,否则新学费大于或等于旧学费,这条约束体现了这样的语义:调整收费范围仅限于学费低于3500元的学生。
3.立即执行约束和延迟执行约束立即执行约束是指在执行用户事务时,对事务中某一更新语句执行完后马上对此数据所应满足的约束条件进行完整性检查。
延迟执行约束是指在整个事务执行结束后才对此约束条件进行完整性检查,结果正确才能提交。
4.完整性的实现完整性的实现应包括以下两个方面:●系统要提供定义完整性约束条件的功能。
●系统提供检查完整性约束条件的方法。
对于数据值的那类完整性约束条件通常在模式中定义。
例如在模式中定义属性名、类型、长度、码属性名并标明其值是唯一的、非空的等,另外的那些约束条件就要用专门的方式加以定义,如编写程序实现约束。
4.3 并发控制4.3.1 基本概念数据库是一个共享资源,可以由多个用户使用。
这些用户程序可以一个一个地串行执行。
每个时刻只有一个用户程序运行,执行对数据库的存取。
其他用户程序必须等到这个用户程序结束以后才能对数据库存取。
如果一个程序执行时,用户进行大量数据的输入/输出工作,则数据库系统的大部分时间将处于休闲状态,为了充分利用数据库资源,应该允许多个用户程序并行地存取数据库,这样就会产生多个用户程序并发地存取同一数据的情况。
若对并发操作不加控制就会存储和读取不正确的数据,破坏数据库的完整性(一致性)。
1.事务事务(Transaction)是并发控制的单位,是一个操作序列。
这些操作要么都做,要么都不做,是一个不可分割的工作单位。
事务通常以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK操作结束。
COMMIT即提交,提交事务中所有的操作,事务正常结束;ROLLBACK即撤消已作的所有操作,回滚到事务开始时的状态。
这里的操作指对数据库的更新操作。
事务和程序是两个概念,一般地讲,程序可包括多个事务。
由于事务是并发控制的基本单位,所以下面的讨论均以事务为对象。
第4章数据库安全及维护572.数据一致性级别的概念首先分析火车票订票系统中的一个活动序列(如表4-2所示):①甲售票点读出某车次的车票余额A,设A=20。
②乙售票点读出同一车次的车票余额A,也为20。
③甲售票点卖出一张车票,修改余额A←A-1。
所以A为19,把A写回数据库。
同时乙售票点也卖出一张车票,修改余额A←A-1。
所以A为19,把A写回数据库。
结果,卖出两张车票而余额只减少1。
表4-2 数据的不一致性丢失修改不能重复读取读“脏”数据T1T2T1T2T1T2①读A=20①读A=50读B=100求和=150①读C=100 C=C*2写回C②读A=20②读B=100B=B*2写回B②读C=200③A=A-1 写回A=19③④ROLLBACKC恢复为100④A=A-1写回A=19④读A=50读B=200求和=250(验算不对)④数据的不一致性:因多个事务对同一数据的交叉修改(并发操作)而引起的数据不正确或数据修改丢失就称为数据的不一致性。
上例中,因为在并发操作情况下,对甲、乙两个事务的操作序列的调度是随机的,若按上面的调度序列执行,甲事务的修改就被丢失。
这是由于第③步中乙事务修改A并写回后破坏了甲事务的修改。
仔细分析并发操作,可能会产生以下几种不一致性:●丢失修改:两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了T1提交的结果,T1的修改被丢失。
上面预订车票例子就属于此类。
●不能重复读取:事务T1读取某一数据,事务T2读取并修改了同一数据,T1为了对读取值进行校对再读此数据,得到了不同的结果。
例如T1读取B=100,T2读取B并把B改为200,T1再读B得200,与第一次读取值不一致。