数据库系统概论复习

数据库系统概论复习(期末考试复习)

导言:明天就要考数据库了,今天才开始复习,可能是我头铁吧~~
就整理一下自己的复习大纲吧!
1、数据模型——数据库系统的核心和基础,根据模型应用的不同目的,分为概念模型、逻辑模型、物理模型。其中,概念模型可用E-R图表示,即实体-联系方法;逻辑模型有:层次、网状、关系、面向对象数据模型和半结构化模型。
数据模型包括数据结构、数据操作和数据的完整性约束条件三个要素。
2、模式相对稳定,实例相对变动。
3、一个数据库只有一个模式,也只有一个内模式,但是可以有多个外模式。外模式主要是数据视图,但是一个应用程序只能使用一个外模式。
4、关系数据库系统分为关系数据结构、关系操作集合和关系完整性约束。
5、关系有3种类型,分别有基本关系(基本表或基表)、查询表和视图表。
6、在关系数据库中,实体与实体间的联系都是用关系来表示的。

							*小小的分割线*

7、集合运算一般都是二目运算,有并、差、交、笛卡尔积等。
8、在几项操作(选择、投影、差、笛卡尔积)中,投影可以去重,其他则不可以。
9、在三个模式中,外模式对应的主要是视图,模式对应的是基本表,内模式对应的是存储文件。其中,视图和基本表都是关系。
10、数据查询:
1)四种类型:表(TABLE),索引(INDEX)是可以创建后进行修改的,但是模式(SCHEMA),视图(VIEW)在创建之后就不可修改了,如果真的想修改数据,那就只能删除后重建。
2)对于级联(CASCADE)和限制(RESTRICT),如果要删除一个表,用级联的方法删除的话,会删除所有相关联的表;但是如果用限制的方法删除的话,只有在这些表不存在关联之后才能被删除。我们在使用SQL Server数据库的时候,删除表的方法往往是后者。
3)定义基本表的格式:
create table student
(
sno char(10),
sname varchar(20),

primary key(sno,…)//如果只有一个主码的时候,也可以跟在主码定义的那一行
foreign key(aaa) references Course(cno)
);

alter table student …
4)创建视图的格式:
create view is_student
as
select *
from student
where sdept=‘IS’;
5)查询:
① select distinct(去重)… from … where…group by … order by desc(降序)//默认升序
② select … from … having…group by…having(聚集函数)
③聚集函数中,除了count外,其他都是不记录有空值的记录。
④连接查询的时候,一定要注意连接条件,如果没有连接条件,则会出现笛卡尔积现象,而这肯定不是我们想要的。一般会用自然连接,将目标列中重复的属性去除。这里还有外连接,就不详细展开了。
⑤嵌套查询(in和not in)
⑥带有any或者all谓词的子查询,使用时必须要带上比较运算符。
⑦exists查询,要将外层的关系明确与内层相关联,否则将不会执行,一般目标表达式都用*,因为返回值只有真与假,给出列无实际意义
⑧有一个比较常用的查询板子,例如:至少选修了学生20130809选修的全部课程的学生号码(可以翻译成:不存在这样的课程y,学生20130809选修了,而x没有选)
select sno
from sc x
where not exists
(
select *
from sc y
where y.sno=‘20130809’ and not exists
(
select *
from sc z
where z.sno=x.sno and z.cno=y.cno
)
);
⑨对于集合查询,查询结果列数以及对应项的数据类型要相同。
⑩(临时)派生表(pass吧,多看例子就了解了)
11-
insert
into sc(…)
values(…)
或者
insert
into sc(…)
select from student
where …
12-
update sc
set sop=…
where …
或者
update sc
set …
where sno in …
13-
delete
from sc
where …
delete 要区别于drop
14-
对于空值,不会出现在精确查询结果中,例如成绩
15-
创建视图:
create view …
as
select …
from sc
where …
(with check option)//可以自动加上where语句中的条件
!!要注意的是,这个只是创建了视图,但是并不执行select语句。只有执行了查询语句,才能看到视图里面的内容。另外,视图只要你不删除,就可以永久保存,但是派生表在执行完相关的语句后就会被删除。
11、数据库安全等级
D(最低级别)、C(C1、C2)、B(B1[真正意义上的安全产品]、B2、B3)、A(A1)
12、用户权限包括数据库对象和操作类型
下面就给出几个例子感受一下吧:
grant select…/all privileges
on table sc
to us;

revoke update(sno)
on table sc
from u2;

create role r1;

grant select,update,delete
on table sc
to r1;

grant r1//角色授权
to u3,u2,u1
with admin option;

revoke r1
from u1;//通过r1收回u1的三个权限

(具体的就不解释了,毕竟明天就要考试了,我想早点睡觉哇)
13、参照完整性
跳跳跳
14、触发器和存储过程
主要还是依照实验指导书的来
还是给出一些例子吧,就是实验指导书上的一些题目:
创建触发器:
create trigger … on S
from update as
declare @ippr float,@ipno int;
select @ippr=ppr,@ipno=pno from inserted
if @ippr<0 or @ippr is null
begin
raiserror(’…’,16,1)
update paper
set ppr=10
where paper.pno=@ipno
end

create trigger … on S
instead of delete as
declare @icount int ;
select @icount=count(*) from deleted,cp where deleted.pno=CP.pno
if @icount >=1
begin
declare @ipno int;
select @ipno=deleted.pno from deleted
delete
from cp
where pno=@ipno
end

create trigger … on PAPER
for update as
declare @ippr float ,@ipno int;
select @ippr=ppr from inserted
if @ippr<0 or @ippr is null
begin
raiserror(’…’,16,1)
rollback
end

15、存储过程
create procedure …(@ccna varchar(10),@cno char output,@cna varchar(10) output,…)
as @cna=cna,@cno=cp.pno…
from customer,cp,paper
where …

16、范式
–》这里要掌握的应该是候选码、范式的判断以及如何划分关系使之满足更高的范式。
考试回来了,里面有一道概念题我写错了,所以过来再补充一下:
①在一个关系表中,候选码是唯一确定一个元组,所以任意两个元组的候选码是必须不同的!!!(当时只记得是唯一的,结果忽略了一个元组,然后我就选了必须相同,我可能是真的gg了)

1nf、2nf(不存在部份依赖)、3nf(不存在传递依赖)、bcnf(每一个决定关系都有码)…

17、事务——数据库的逻辑工作单位,并发控制的基本单位。
18、封锁:X锁(写锁),S锁(读锁)。加了S后就不能再加X了哦。
19、活锁的解决办法:先来先服务
死锁的解决办法:①一次封锁法 ②顺序封锁法

就这样吧先,要先睡觉了呢,希望明天的数据库期末考试不要太难呀呀呀呀!

  • 14
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值