《数据库系统概论》读书笔记

一:关系数据库的描述

1:实体间的联系: 1:1、1:n、m:n

 

2:候选码:关系中某一属性组的值能唯一标识一个元组(记录)而其子集不能,则该属性组所包含的属性们称为候选码。

主码:若有多个候选码,选一个作为主码。

全码:关系模式的所有属性都是候选码,称为全码。

 

二:关系代数

1:传统集合运算

并:两种关系R、S的并集由R跟S的记录合并得到;

差:R-S的表记录由R表中有而S表中没有的记录组成;

交:R、S的交集由既属于R表又属于S表的记录组成;

笛卡尔积:若R有k1条记录,S有k2条记录,则R、S的笛卡尔积有k1*k2条记录,每条记录有r+s列,前r列为R的记录,后s列为S的记录。即:遍历R中每一条记录,在其后面依次拼接S表的记录。共循环了k1*k2次。

 

2:专门关系运算

选择:从表中选出符合条件的元组(记录)组成结果表;(行查询)

投影:从表中选出若干属性列组成结果表;(列查询)

连接:从两个关系的笛卡尔积中选出属性间满足某条件的元组。

    等值连接:从R、S关系的笛卡尔积中,选取R中某些属性值与S中某些属性值相等的元组;

    自然连接:一种特殊的等值连接,选出R、S中同名的属性组的值相等的元组,并在结果中去掉重复的属系列留下一个即可;

         通过自然连接利用两个关系某相同属性把两个表拼接在了一起,此时会出现以下情况:

         悬浮元组:在R、S通过属性B的值拼接时,如果出现R中的某B属性值bn在S中没有相等值,则此时bn所在元组就会被舍弃,不加入结果表中。

         外连接:如果把悬浮元组也加入结果表中,则把bn属性所在行在另一个表中取不到值的列设为NULL值。

         左外连接:只保留左边关系R的悬浮元组。即:R中bn在S中无等值,把R中bn元组加入结果表,元组中属于S的属性列赋NULL值。

         右外连接:只保留右边关系S的悬浮元组。即:S中的bn在R中无等值,把S中bn所在元组加入结果表,该元组中属性R的属性列赋NULL值。

 

三:SQL语言

1:定义模式(定义数据库):CREATE SCHEMA 模式名(数据库名) AUTHORIZATION 用户名

2:删除模式(删除数据库):DROP SCHEMA 模式名[CASCADE|RESTRICT] 级联删除或限制不能删除

3:创建表:CREATE TABLE 表名 (列名 数据类型 约束条件,...);

4:修改表:ALTER TABLE 表名

                                        ADD 列名 数据类型 约束条件

                                        DROP 列名[CASCADE|RESTRICT]

                                        ALTER COLUMN 列名 数据类型

5:删除表:DROP TABLE 表名[CASCADE|RESTRICT]

 

6:数据查询:SELECT[ALL|DISTINCT] 表达式 FROM 表名 WHERE 表达式 GROUP BY 列名     HAVING 表达式         ORDER BY 列名[ASC|DESC];

                              去除重复属性                                                                           对groupby结果进一步筛选                       升序|降序

                WHERE 表达式常用条件:

                                                比较:=,>,<,<=,>=,!=......

                                                范围:between...and...

                                                归属:in、not in

                                                模糊查询:like 、not like  (%作通配符表示模糊内容)

7:插入数据:INSERT INTO 表名 属性列名 VALUES(属性值,...,...)

8:修改数据:UPDATE 表名 SET 列名=修改值 where 条件

9:删除数据:DELETE FROM 表名 where 条件

 

四:视图

视图不是一个具体的表,它只不过是一个“窗户”,透过它可以看到某个表中某些特定的数据以及变化。

 

五:数据库安全

1:自主存取控制

通过GRANT、REVOKE赋予用户、角色某些权限或撤销其权限;

2:强制存取控制

为用户赋予许可证,为数据设定密级。

只有当用户许可证级别大于等于数据密级时,才允许读取数据;

只有当用户许可证级别小于等于数据密级时,才允许写数据;(是写入而不是修改,低等级用户只拥有向表中增加数据的权限,不能查看,不能修改)

 

六:完整性约束

1:定义主键:PRIMARY KEY(属性名)

2:定义外键:FOREIGN KEY(属性名) REFERENCES 外表名(参考属性名)

3:自定义约束:自定义某属性的约束条件:Check 条件

 

七:触发器

触发器又叫 事件—条件—动作  规则。即:某事件(数据库的增删查改)发生前/后—符合某条件—执行某动作

 

八:关系理论

第一范式:基本表,表中无表(即属性不可再分)。

第二范式:在第一范式的基础上,每一个非主属性都可由任意一个主属性推出。

第三范式:在第二范式基础上,每个非主属性由任意一个主属性直接推出而不传递或部分推出。

第四范式:每一个主属性都可推出所有非主属性,并且没有任何一个非主属性能推出主属性。

 

九:数据库恢复

1:事务:用户定义的一系列数据库操作,要么全做,要么不做。具有ACID特征:

           原子性:事务不可分割。

           一致性:事务结果使数据库从一个一致性状态变到另一个一致性状态。

           隔离性:事务间相互独立,互不干扰。

           持续性:事务一旦成功提交,对数据库的改变是永久的而不是暂时的。

 

十:并发控制

1:数据库并发操作引起数据不一致:丢失修改、不可重复读、读到“脏”数据

2:封锁技术:事务T操作某个数据对象前先加锁,然后进行操作。在锁释放期间其他事务不能操作该数据对象。分两种:排它锁(写锁,其他事务不能读不能写)、共享锁(读锁,其他事务也可以读)。

3:死锁:两个事务互相等待对方释放锁,导致死锁。

4:处理死锁:选择一个造成死锁的最小代价的事务将其撤销,等待其他事务优先执行完再执行。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值