数据库安全性和完整性
数据库的完整性:
数据的正确性
是指数据是符合现实世界语义,反映了当前实际状况的
学生的学号必须唯一
性别只能是男或女
成绩的取值范围为0~100
数据的相容性
是指数据库同一对象在不同关系表中的数据是符合逻辑的
学生所选的课程必须是学校开设的课程
学生所在的院系必须是学校已成立的院系
数据的完整性和安全性是两个不同概念:
数据的完整性
防止数据库中存在不正确的数据
防范对象:不正确的数据
完整性是阻止合法用户通过合法操作向数据库中加入不正确的数据
数据的安全性
保护数据库防止恶意的破坏和非法的存取
防范对象:非法用户和非法操作
安全性防范的是非法用户和非法操作存取数据库中的正确数据
为维护数据库的完整性,数据库管理系统必须:
- 提供定义完整性约束条件的机制
也称为完整性规则,是数据库中的数据必须满足的语义约束条件
完整性包括关系模型的实体完整性、参照完整性和用户定义完整性
这些完整性一般由SQL的数据定义语言语句来实现
- 提供完整性检查机制
检查数据是否满足完整性约束条件的机制称为完整性检查
一般在INSERT、UPDATE、DELETE语句执行后开始检查,也可以在事务提交时检查
- 违约处理
数据库管理系统若发现用户的操作违背了完整性约束条件,就采取一定的动作
拒绝执行该操作(NO ACTION)
级连执行其他操作(CASCADE)
由DBMS进行完整性检查的好处:
不必由应用程序来完成,从而减轻了应用程序员的负担
能够为所有的用户和应用提供一致的数据库完整性,避免出现漏洞
5.1 实体完整性
5.1.1 实体完整性定义
单属性构成的码可以定义为列级或表级
多个属性构成的码只能定义为表级
Ex:将Student表中的Sno属性定义为码(单属性)
(1) 在列级定义主码
CREATE TABLE Student(Sno CHAR(9) PRIMARY KEY, /*列级定义主码*/Sname CHAR(20) NOT NULL,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20)
);
(2) 在表级定义主码
CREATE TABLE Student( Sno CHAR(9),Sname CHAR(20) NOT NULL,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20),PRIMARY KEY (Sno) /*表级定义主码*/
);
将SC表中的Sno,Cno属性组定义为码(多属性)
CREATE TABLE SC( Sno CHAR(9) NOT NULL,Cno CHAR(4) NOT NULL,Grade SMALLINT,PRIMARY KEY (Sno, Cno) /*只能在表级定义主码*/
);
5.1.2 实体完整性检查和违约处理
插入或对主码列进行更新操作,DBMS会按照实体完整性规则自动进行检查
检查主码值是否唯一,如果不唯一则拒绝插入或修改
检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改
检查记录中主码值是否唯一的一种方法是进行全表扫描
依次判断表中每一条记录的主码值与将插入记录上的主码值(或者修改的新主码值)是否相同
数据库的安全级别分为7级, A.B.C.D四类.
其间安全性: A>B>C>D类. (A:验证;
B:强制控制;C:自主控制;D:一般讲没有什么能力。)
目前用的DBS,一般都是C级,其中含有一部分的B级。
其中C又分为c1, c2, 两种。 c2是 目前一般使用的安全级别。
B分为B1,B2,B3三种。 B1,B2一般是商用系统Oracle使用,B3是研究级别。
参照完整性
也称为引用完整性
• 现实世界中的实体之间往往存在着某种联系,在关系模型中,实体以及实体之间的联系都是用关系来表示的,这样就自然存在着关系与关系之间的引用
• 参照完整性就是描述实体之间的联系的
• 参照完整性一般是指多个实体或关系之间的关联关系
此完整性涉及到了外键:
• 参照完整性规则就是定义外键与被参照的主键之间的引用规则
• 外键一般应符合如下要求:
– 或者值为空
– 或者等于其所参照的关系中的某个元组的主键值
数据库安全性和完整性相关推荐
- 数据库期末总结笔记( 零基础 )--数据库安全性与完整性-范式-E-R图
第四章 数据库安全性与完整性 1.三大完整性约束 基本概念: (1)候选码:一个或一组属性能唯一的标识一个元组,而其子集不能 例:Student表中的学号sno (2)主码:若有多个候选码,则选其中一 ...
- 数据库安全性和完整性考虑_您是否考虑过云安全性?
数据库安全性和完整性考虑 云安全:简介 (Cloud Security: Introduction) The cloud, everyone's racing to be there, the blo ...
- 数据库安全性与完整性
实验一~~四,于https://blog.csdn.net/weixin_44318248/category_8883986.html 实验五:数据库安全性与完整性 实验内容与完成情况(记录所有的实验 ...
- mysql练习-数据库安全性与完整性
主要为触发器和存储过程 1 创建SQL触发器:删除学生数据,将删除的数据备份到数据表student_bf,以备误删除时进行数据恢复. 1)student(学生表): SNO学号CHAR(7) SNAM ...
- 数据库安全性 完整性
01.安全性 专有名词解释 1.数据库管理员:拥有所有对象的所有权限,根据实际情况不同的权限授予不同的用户 2.用户:拥有自己建立的对象的全部的操作权限,可以使用GRANT,把权限授予其他用户 3.角 ...
- 【Sofice小司笔记】1 关系数据库基础,包含关系数据库设计,索引,事务,安全性,完整性,查询处理优化等
数据库管理系统 DataBase Management System / DBMS DBMS 是位于用户和操作系统之间的一层数据管理软件.数据库管理系统和操作系统一样是计算机的基础软件,也是一个大型复 ...
- 【数据库系统】第一部分 数据库基础(4) 数据库安全性
本文属于「数据库系统」系列文章之一,这一系列着重于「数据库系统知识的学习与实践」.由于文章内容随时可能发生更新变动,欢迎关注和收藏数据库系统系列文章汇总目录一文以作备忘.需要特别说明的是,为了透彻理解 ...
- MySQL系列4—数据库安全性
文章目录 1. 数据库安全性 1.1 数据库安全性概述 1.2 数据库安全性控制 1.2.1 用户身份鉴别 1.2.2 存取控制 1.2.3 审计 1.2.4 视图 1.2.5 数据加密 2. 数据控 ...
- 数据库原理之数据库安全性(详细知识点)
数据库的安全性 数据库的安全性 1.1 安全性概述 1.1.1 数据库的不安全因素 1.1.2 安全标准 1.2 数据库安全性控制 1.2.1 存取控制流程 1.2.2 用户身份鉴别 1.2.3 存取 ...
最新文章
- 【bzoj2081】[Poi2010]Beads Hash
- 创建ACFS集群文件系统(命令方式)
- 多线程高并发 底层锁机制与优化的最佳实践——各种锁的分类 || synchronized 关键字 倒底锁的是什么东西?|| CAS与ABA问题||锁优化||轻量级锁一定比重量级锁的性能高吗
- Android监听程序自身被卸载
- 全球与中国机器人即服务市场领航调研与投资战略规划分析报告2022-2028年
- 10gocm-gt;session3-gt;数据备份与恢复
- 云计算平台2017年盘点——真正成为新技术新应用的基础架构
- 国家中长期教育改革和发展规划纲要(2010-2020年)
- java自定义异常和throw、throws的使用
- chroot环境的快速构建
- 中国营养与健康调查(CHNS)2018年最新数据
- java实现扫雷小游戏【完整版】
- YUV420 总结 (YU12、YV12、NV12 和 NV21)
- ubuntu 安装chrome并禁止提示更新
- jupyter notebook 恢复删除代码块
- 老板电器携手华为HarmonyOS创新升级中国厨房新理念
- R语言实现RMF模型
- 洛谷P3426 [POI2005]SZA-Template 题解
- 网页尾部footer编写--小技巧
- Android的消息循环机制:Handler