数据库系统概论知识总结

第一篇 基础篇

第一章 绪论

第二章 关系数据库

2.4 关系代数

2.4.1 传统集合运算

传统的集合运算是二目运算,包括并、差、交、笛卡尔积四种

2.4.2 专门的关系运算

专门的关系运算包括选择、投影、连接、除运算等。

元组的连接or元组的串接:n目关系与m目关系连接生成(n + m)列的元组,前n个分量为n目关系的元组,后m个分量为m目关系的元组。

象集:给定一个关系R(x,z),x和z为属性组。当t[X] = x时,象集定义为:

Z_{x} = \left \{ t[z]|t\varepsilon R,t[X] = x \right \}

选择关系运算σF (R) = {t|t∈R∧F (t)= '真'}

逻辑表达式F的基本形式:X1\ThetaY1,其中\Theta为比较运算符。

选择关系运算是从关系R中选取使逻辑表达式F为真的元组。

投影关系运算:\prod A(R) = \left \{ t[A]|t\varepsilon R\right \}

投影关系运算是从R表中选出A列,例:\prod Sname,Sdept(Student)

连接关系运算:它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。

\Theta是比较运算符,值为“=”的连接运算称为等值连接。自然连接时一种特殊的等级连接,比较分量必须是同名属性组,并且再结果中把重复的属性列去掉。

除关系运算:设关系R除以关系S的结果为关系T,则T包含所有在R但不在S中的属性及其值,且T的元组与S的元组的所有组合都在R中。例:关系R(x,y)andS(y,z),如果RandS的任意元组存在Ry = Sy,那么T = [x]。

第三章 关系数据库标准语言SQL

3.3 数据定义

SQL的数据定义语句
操作对象创建删除修改
模式create schemadrop schema
create tabledrop tablealter table
视图create viewdrop view
索引create indexdrop indexalter index

3.3.1 模式的定义与删除

1、定义

create schema<模式名>authorization<用户名>

2、删除

drop schema<模式名><删除方式>

cascade:级联,删除该模式的同时把该模式中的所有数据库对象全部删除。

restrict:限制,如果该模式已经定义数据库对象拒绝删除。

3.3.2 基本表的定义、删除与修改

1、定义基本表

create table<表名>(<列名> <数据类型>[列级完整性约束条件],

                                ........

                               <列名> <数据类型>[列级完整性约束条件];)

2、修改基本表

alter table<表名>

add <列名> <数据类型>[列级完整性约束条件] //增加列

add <表级完整性约束>

drop <列名>[删除方式]

drop constraint <完整性约束名> [删除方式]

alter conlum <列名><数据类型>

3、删除表

drop table <表名>[删除方式]

3.3.3 索引的建立与删除

1、建立索引

create [unique][cluster] index <索引名>

on <表名>(<列名>[<次序>])。。。)

2、删除

drop index <索引名>

3.4 数据查询

select [all | district] <目标列表达式>,[<目标列表达式>,....]

from <表名或视图名>[,<表名或视图名>......] | (select 语句) [as] <别名>

[where <条件表达式>]

3.4.1 单表查询

仅涉及一个表的查询

1、选择表中若干列

2、选择表中若干元组

distinct:去掉表中的重复行(select)

where:

between...and:between后是范围的下限(低值),and 后是范围的上线(高值)。

like:匹配字符串

in:确定集合

and:多重条件查询,连接前后两个条件

3、order by 子句

该子句对查询结果按照一个或多个属性列的升序(ASC)或降序(desc)排列,默认值为升序

order by grade desc 

4、聚集函数

作用于select

cout(*)统计元组个数
cout([ditinct|all] <列名>)统计一列中值的个数
sum([ditinct|all] <列名>)计算一列值的总和
avg([ditinct|all] <列名>)计算一列值的平均值
max ([ditinct|all] <列名>)求一列值中的最大值
min([ditinct|all] <列名>)求一列值中的最小值

5、group by 子句

将查询的结果按某一列或多列的值分组

having:作用于组,从中选择满足条件的组

3.4.2 连接查询

1、等值与非等值查询

where子句中用来连接两个表的条件称为连接条件或连接谓词

<表名1>.<属性名><比较运算符><表名2>.<属性名>

2、自身连接

一个表与自己进行连接,称为表的自身连接。

方式:为表起两个别名。

3、外连接

4、多表连接

form子句中添加多个表

3.4.3 嵌套查询

在where子句中再次书写完整查询语句

1、带有in谓词的子查询

2、带有比较运算符的子查询

3、带有any(some)or all 谓词的子查询

4、带有exists谓词的子查询

使用存在量词exisit后,若内层查询结果非空,则外层的where子句返回真值,否者返回假值。

3.4.4 集合查询

select语句的查询结果是元组的集合,所以多个select语句的结果可以进行集合操作。集合操作主要包括union,intersect,except(并,交,差)。

注意:参加集合操作的各查询结果的列数必须相同;对应项的数据类型也必须相同。

3.4.5 基于派生表的查询

 form子句中进行子查询,这时子查询生成的派生表称为主查询的对象,且必须为派生表生成一个别名

3.5 数据更新

3.5.1 插入数据

insert

into<表名>[(<属性列1>,【属性列2】......)]

values(<常量1>,【常量2】........)

1、插入元组

2、插入子查询结果

将value子句换成子查询

3.5.2 修改数据

update <表名>

set<列名>=<表达式>[,<列名> = <表达式>]......

[where <条件>]

1、修改某一个元组的值

2、修改多个元组的值

3、带子查询的修改语句

3.5.3 删除数据

delete

from<表名>

[where <条件>]

1、删除某一个元组的值

2、删除多个元组的值

3、带子查询的删除语句

3.6 空值处理

1、空值的产生

2、空值的判断

is null or is not null

3、空值的约束条件

4、空值的算数运算、比较运算和逻辑运算

3.7 视图

1、建立视图

2、查询视图

3、更新视图

4、视图的作用

第四章 数据库安全性

4.2 数据库安全性控制

4.2.1 授权:授予与收回

1、grant 授予

grant<权限>,【<权限>】。。。。

on <对象类型><对象名>【<对象类型><对象名>,.......】

to <用户>【,用户】。。。。。

with grant option

with grant option:允许被授予用户再次授予该权限给别的用户

on的grant权限给to

2、revoke 收回权限

remove<权限>,【<权限>】。。。。

on <对象类型><对象名>【<对象类型><对象名>,.......】

to <用户>【,用户】。。。。。【cassade|restrict】

3、创建数据库模式的权限

4.2.2 数据库角色

1、角色的创建

2、给角色授权

3、将一个角色授予其他的角色或用户

4、角色权限的收回

第五章 数据库完整性

5.1 实体完整性

关系模型的实体完整性在create table 中用 primary key 定义。(主码)

5.2 参照完整性

关系模型的参照完整性在create table 中用foreign key 短语定义哪些列为外码,用references短语指明这些外码参照哪些主码

foreign key(sno)references Student(Sno)

5.3 用户定义完整性

1、不允许取空值 NOt NULL

2、列值唯一 unique

3、check短语指定列值应该满足的条件

5.4 完整性约束命名子句

5.5 断言

5.7 触发器

触发器又叫做事件-条件-动作规则

1、定义触发器

create trigger<触发器名>// 触发事件发生时,该触发器被激活

{before|after}<触发事件>on<表名>//指明触发器激活的时间是在执行触发事件的前or后

reference new|old row as<变量>//reterence指出引用的变量

for each{row|statement} //定义触发器的类型,指明动作的执行效率

【when <触发条件>】 <触发动作体>

第二篇 设计与应用开发篇

第六章 关系数据理论

6.1 规范化

6.2.1 函数依赖

1、函数依赖概念:相当于数学中的函数,U是属性全集,x和y是U上的子集,x对应唯一确定的y,即x->y(y依赖于x)。

2、完全依赖和不完全依赖:U是属性全集,x和y是U上的子集,x1是x的真子集,如果x->y,且x1不能确定y,则是完全函数依赖,反之x1->y,则是不完全函数依赖。

3、传递依赖:U是属性全集,x、y和z是U上的子集,x->y(但是y不能确定x),y->z,则x->z。

6.2.2 码

Ⅰ. 超码:

能唯一标识实体的属性或属性组称作超码。
例如ID就是一个超码。
超码的任意超集也是超码。
例如ID和任意属性的组合都是超码。
Ⅱ. 候选码:

超码这个集合中,如果提取它们的某个子集,这个子集是可以用来区分同一个表中的元组,且该子集只有一个元素或者再从中提取的子集无法用来区分同一个表中的元组,这个集合就是候选码。一个关系表中至少有一个候选码。
例如超码(ID,name)其子集(不包括自身)(ID)可以用来区分同一个表中的元组,那么(ID,name)不是超码。
Ⅲ. 主码:

从所有候选码中选定一个用来区别同一实体集中的不同实体称作主码,一个实体集中任意两个实体集在主码上取值不能相同。
Ⅳ. 全码:
个关系中所有属性组组成该关系模式的 候选码,称为 全码。

6.2.3 范式

1NF:属性不能再拆分。举一个反例,关系模式R(身份,身体状况),明显身份可以拆分为姓名,编号等,所以不是第一范式。

2NF:非主属性完全依赖于码

举一个反例,关系模式R(姓名,学号,班级编号,班级名),满足1NF,候选码为学号和班级编号,(学号,班级编号)->姓名,(学号,班级编号)->班级名,但是学号->姓名,班级编号->班级名,所以不是第二范式

3NF:非主属性不传递依赖于码。举一个反例,关系模式(姓名,学号,班级,班主任),满足2NF,,主键是学号,但是学号->班级,班级->班主任,得出学号->班主任,所以不是第三范式。

第七章 数据库设计

7.1、e-r模型

7.1.1 实体之间的联系

1、两个实体型之间的联系 二元联系

1对1联系、1对多联系、多对多联系

2、两个以上的实体类型之间的联系 三元联系和多元联系

1对1联系、1对多联系、多对多联系

3、单个实体型内的联系

7.2 e-r图

实体型用距形表示,属性用椭圆表示,联系用菱形表示。

第八章 数据库编程  

第三篇 系统篇

第九章 关系查询处理和查询优化

第十章 数据库恢复技术

第十一章 并发控制

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 .试述数据、数据库、数据库系统、数据库管理系统的概念。 答: ( l )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机系统中数据的概念是广义的。早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。现代计算机能存储和处理的对象十分广泛,表示这些对象的数据也越来越复杂。数据与其语义是不可分的。 500 这个数字可以表示一件物品的价格是 500 元,也可以表示一个学术会议参加的人数有 500 人,还可以表示一袋奶粉重 500 克。 ( 2 )数据库( DataBase ,简称 DB ) :数据库是长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。 ( 3 )数据库系统( DataBas 。 Sytem ,简称 DBS ) :数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。解析数据库系统和数据库是两个概念。数据库系统是一个人一机系统,数据库是数据库系统的一个组成部分。但是在日常工作中人们常常把数据库系统简称为数据库。希望读者能够从人们讲话或文章的上下文中区分“数据库系统”和“数据库”,不要引起混淆。 ( 4 )数据库管理系统( DataBase Management sytem ,简称 DBMs ) :数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。 DBMS 的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。解析 DBMS 是一个大型的复杂的软件系统,是计算机中的基础软件。目前,专门研制 DBMS 的厂商及其研制的 DBMS 产品很多。著名的有美国 IBM 公司的 DBZ 关系数据库管理系统和 IMS 层次数据库管理系统、美国 Oracle 公司的 orade 关系数据库管理系统、 s 油 ase 公司的 s 油 ase 关系数据库管理系统、美国微软公司的 SQL Serve ,关系数据库管理系统等。 2 .使用数据库系统有什么好处? 答: 使用数据库系统的好处是由数据库管理系统的特点或优点决定的。使用数据库系统的好处很多,例如,可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担,等等。使用数据库系统可以大大提高应用开发的效率。因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由 DBMS 来完成。用一个通俗的比喻,使用了 DBMS 就如有了一个好参谋、好助手,许多具体的技术工作都由这个助手来完成。开发人员就可以专注于应用逻辑的设计,而不必为数据管理的许许多多复杂的细节操心。还有,当应用逻辑改变,数据的逻辑结构也需要改变时,由于数据库系统提供了数据与程序之间的独立性,数据逻辑结构的改变是 DBA 的责任,开发人员不必修改应用程序,或者只需要修改很少的应用程序,从而既简化了应用程序的编制,又大大减少了应用程序的维护和修改。使用数据库系统可以减轻数据库系统管理人员维护系统的负担。因为 DBMS 在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、安全性、多用户并发控制、故障恢复等,都由 DBMS 执行。总之,使用数据库系统的优点是很多的,既便于数据的集中管理,控制数据冗余,提高数据的利用率和一致性,又有利于应用程序的开发和维护。读者可以在自己今后的工作中结合具体应用,认真加以体会和总结

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值