11.24 数据库原理课堂笔记

本文介绍了数据库的附加与分离操作,以及在服务运行时如何复制数据库。重点讲解了数据库的完整性和安全性,包括实体完整性(主键约束)、参照完整性和用户自定义完整性。详细阐述了触发器的作用和不同类型的触发器,以及它们在维护数据完整性和安全性中的应用。同时,提到了数据库的安全性措施,但未展开详细讨论。
摘要由CSDN通过智能技术生成

数据库附加和分离
数据库服务正在运行的时候没法复制数据库(被占用了),可以分离(detach)数据库进行复制,然后再附加(attach)。同理,可以用脱机和联机

数据库结构是抽象的,不要考虑具体的程序实现只要以最简单的方式把所有需要的数据保存下来。

新建视图

选择添加一些表
会显示被添加的表和表之间的关联
查询语句中如果包含WHERE条件,会产生表和表之间的联系

完整性和安全性

关系数据库 三类完整性约束
完整性的定义:正确,有效,一致
实体完整性,参照完整性,用户自定义完整性

对每个Insert/Update/Delete操作,增加检查代码
如果一个属性是主属性(就是主键的一部分),就不能为空(也就是主键不能为空)

实体完整性:

主键
primary key (sno,cno)

参照完整性:

父表-子表
主键-外键
外键的值,要么必须属于对应的主键的值,要么为空

references 父表名(表项)
foreign key(表项) references 父表名(表项)

限制策略:默认策略,违反完整性的操作被拒
级联策略cascade:父表修改和删除,子表也被修改和删除
置空策略set null:受影响的子表的值置空

用户自定义完整性:

CHECK 如果违背了check,系统拒绝插入和修改操作。

触发器

触发器事件有三种
INSERT触发器,UPDATE触发器,DELETE触发

CREATE TRIGGER tri_ins_student
ON student
AFTER INSERT
AS
	DECLARE @no char(7)
	select @no = sno from inserted
	INSERT INTO grade VALUES(@no,'1',0)
	INSERT INTO grade VALUES(@no,'2',0)
	INSERT INTO grade VALUES(@no,'3',0)
	INSERT INTO grade VALUES(@no,'4',0)

在触发器工作的过程中会产生临时表,inserted表和deleted表
(在Oracle中叫做new表和old表)

安全性

没来得及讲

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值