计算机笔记9.10

数据库

安全性和完整性约束

数据库出问题的几种原因
系统出问题
多用户的并发访问导致一致性出问题
人为的破坏(有意的-非法用户,或者无意的)
编程出错,输入数据有问题

数据库的安全

  • 定义视图,某类用户只能查询这个视图,无法查询基表(权限控制)
  • 访问控制 普通用户、拥有某些资源特权的用户、数据库管理员(DBA)
  • 用户的标识和身份的验证(密码验证等等)
  • 授权 DBA授权(DBA创建新用户,然后进去授权)
  • 角色机制(对某一类角色(基本进行同一类操作)进行授权)
  • 数据加密(不能绕过数据库系统去访问数据,比如用操作系统层直接访问是不允许的)
  • 审计追踪(数据被破解,如何去追踪,主要靠日志),就好像摄像头监控

统计数据库的安全
防止合法用户通过推理得到不该得到的数据

追踪器
通用追踪器:可以使用通用追踪器追踪(利用统计)某个元组

关于隐私的数据挖掘

完整性约束

每一个关系的合法的实例应该满足的条件就是完整性约束的规则(比如成年人才能去网吧,网吧里面的人就得是18岁)
完整性约束能够保证进入数据库的数据都是干净的
静态约束
- 不允许表中套表,这就是一范式规则
- 主键约束(实体完整性约束)
- 外键约束
- 显式约束

动态约束 触发器
数据状态变化时的约束

插入操作,外键值r2必须在另外一个表r1主键的范围内做相应的插入
删除操作,删除r2的没有限制,删除r1必须查询r2里面是否有,如果有一般是两种情况,要么报错,要么级联删除
更新操作,类似于插入操作(r2)

断言
多个表的约束,需要写断言去约束

触发器
主要是解决动态约束
数据库从一个状态转移到另一个状态应该遵守的一些行为

传统的数据库是被动的
主动数据库和被动数据库:被动就是来一条命令执行一条命令,数据库达到一定的状态会主动采取一些措施,这就是主动数据库

ECA规则,也是触发器,支持eca规则的就是主动数据库
E事件 C条件 A动作

猜你喜欢

转载自blog.csdn.net/Ding_xiaofei/article/details/82597301