导航菜单
首页 >  数据新闻概论考试重点知识  > 数据库系统概论(第五版)重点总结,期末考试也可以用

数据库系统概论(第五版)重点总结,期末考试也可以用

第一章: 1、四大概念: (1)数据:描述事物的可识别的符号称为数据。数据与其语义不可分离。 (2)数据库DB:长期存储在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余、较大数据独立性和易拓展性,可为各种用户共享。 (3)数据库管理系统DBMS:如mysql、oracle等,是计算机的基础软件。数据定义DDL、数据组织存储和管理、数据操纵DML为最基本的功能。事务管理和运行管理、数据库的建立和维护功能。 DQL:select from where DML:insert、delete、update DDL:create、drop、alter DCL:grant、revoke (4)数据库系统DBS:由数据库、操作系统、数据库管理系统、应用开发工具、应用系统、数据库管理员DBA、用户组成的存储、管理、处理和维护数据的系统。

2、数据库的发展 人工管理——》文件系统阶段——》数据库系统阶段

3、数据库系统的优点 数据结构化(是与文件系统最本质的区别)。 数据的共享性高、冗余度低且易扩充。 数据独立性高:物理独立性与逻辑独立性。 数据交由数据库管理系统统一管理和控制。 安全性:防止不合法使用造成的数据泄密和破坏。 完整性:正确性、有效性和相容性。 并发控制:X锁S锁 数据库恢复:REDO、UNDO

4、概念模型的基本概念:(按用户的观点对数据和信息建模) 概念模型是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模,是数据库设计人员进行数据库设计的有力工具。是数据库设计人员和用户之间进行交流的语言,双方都能看得懂。 通常使用的E-R模型(实体—联系方法)就是一种概念模型。里面含有: (1)实体:客观存在并可以相互区分的事务(这个男人、那个男人)。 (2)实体型:用实体名(男人)及其属性名集合(身高、体重、年龄…)来抽象和刻画同类实体。 (3)实体集:同类型实体的集合(那一群男人)。 (4)实体之间的关系:包括实体(型)内部的联系和实体(型)之间的联系。一对一,一对多,多对多

5、数据模型的相关概念:(按计算机系统的观点对数据建模)由下面三部分组成 数据结构(存了什么):描述组成对象和对象之间的关系。(也就是实体和实体之间的关系) 数据操作(可以怎么操作):对数据库中的对象的值进行的操作 完整性约束(实体、参照、自定义):保证数据的正确、有效和相容 6、常见数据模型 (1)网状模型:允许一个以上的结点无双亲。一个基点可以有多于一个的双亲 (2)层次模型:只有根结点可以没有双亲结点。其他结点只能有一个双亲结点

7、数据库系统三级模式和两级映像的体系结构以及逻辑独立性和物理独立性 (1)三级模式 外模式:模式的子集。是局部数据的逻辑结构和特征的描述,是数据库用户的数据视图。 模式:数据库中全体数据的逻辑结构和特性的描述,是所有用户的公共试图。 内模式:对数据的物理结构和存储方式描述。 (2)两级映像 外模式/模式映像:外模式与模式的对应关系 模式/内模式映像:模式与内模式的对应关系 (3)两个独立性 逻辑独立性:依靠外模式/模式映像。如模式中加了一个关系,但是根据对应关系,外模式不用这个表,那么外模式不用改变。 物理独立性:依靠模式/内模式映像。如物理存储结构发生改变,模式不用变。

第二章 1、关系数据库(关系数据结构、关系操作集合、关系完整性约束) (1)关系数据结构 ①基本概念 域:(属性的取值范围) 一组具有相同数据类型的值的集合 笛卡尔积:一种集合运算 元组:(一行)关系中的每个元素 属性:(表中一列)表中一列对应一个域,域会相同(都是int,都是1-100,但是一个是数学成绩,一个是语文成绩),所以要取个名字,这个名字就是属性。 分量: 元组中的一个属性值 ②码 超码:一组属性集,可以唯一标识元组 候选码:是超码去掉冗余属性,及候选码的任意子集都不能唯一标识元组 主码:有很多个候选码,就选一个为主键 外码:在意表中存放的其他表的朱健。如学生表中的课程号,在课程表中课程号为主键。 ③关系 关系模式是型:对关系的描述。关系模式是静态的。比如学生和老师的关系。 关系是值,是关系模式的实例:(通常一个关系就是一张表)给定域的笛卡尔积的子集。关系是变化的,即属性的变化或者元组的变化。 关系数据库:关系的集合 关系的三种类型:基本关系(基本表)、查询表和视图 (2)关系操作集合 关系操作的对象和结果都是集合。 (3)关系完整性约束

2、关系代数 并、差、交、笛卡尔积 选择:选择元组 投影:投影列 连接:等值连接。自然连接是特殊的等值连接,会去掉重复列。(左/右)外连接

除:(x,y)除(y,z) x在左关系的象集,包含右关系y的投影。 第三章: 1、SQL语言的特点 综合统一、高度非过程化、面向集合的操作、以同一种语言提供多种使用方式、简单易懂易学。

2、SQL语言分类 数据查询语言DQL、数据操纵语言DML、数据定义语言DDL、数据控制语言DCL。 (1)数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:SELECT FROM WHERE (2)数据操纵语言DML 数据操纵语言DML主要有三种形式: 插入:INSERT 更新:UPDATE 删除:DELETE (3)数据定义语言DDL ①创建数据库中的各种对象-----表、视图、索引、同义词、聚簇等如: CREATE TABLE/VIEW/INDEX/SYN/CLUSTER表 视图 索引 同义词 簇 ②drop、truncate、alter DDL操作是隐性提交的!不能rollback (4)数据控制语言DCL 数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。如: GRANT:授权。 ROLLBACK [WORK] TO [SAVEPOINT] COMMIT [WORK]:提交。 在数据库的插入、删除和修改操作时,只有当事务在提交到数据库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看到所做的事情,别人只有在最后提交完成后才可以看到。 提交数据有三种类型:显式提交、隐式提交及自动提交。下面分别说明这三种类型。 (1) 显式提交 用COMMIT命令直接完成的提交为显式提交。其格式为:SQL>COMMIT; (2) 隐式提交:用SQL命令间接完成的提交为隐式提交。这些命令是:ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。 (3) 自动提交:若把AUTOCOMMIT设置为ON。 SQL>SET AUTOCOMMIT ON;

3、SQL操作 (1)模式 create schema authorization drop schema cascade/restrict (2)基本表 create table ( Sno varchar(10) primary key unique、not null、foreign key(xxx) references table1(column1) );

(3)数据查询

连接查询 外连接 left outer join SC on (student.sno=sc.sno)/using(sno) 后者自动去除重复行。外连接可以表示一个学生还没有选课时的学生选课表。

exists子查询。夫查询取元组,然后到子查询中查,子查询非空,则where返回true。

查询总结

数据更新

视图: 是一种虚拟的表,只存储定义,其实平时根本没有这个表,要使用是运行语句,具有和物理表相同的功能。可以对视图进行增,改,查,操作,试图通常是有一个表或者多个表的行或列的子集。对视图的修改会影响基本表。它使得我们获取数据更容易,相比多表查询。 优点:1对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。 2)用户通过简单的查询可以从复杂查询中得到结果。 3)维护数据的独立性,视图可从多个表检索数据。 4)对于相同的数据可产生不同的视图。 5)使数据安全,不同权限的人,可以给不同的视图,即他们只能看到他们能看到的东西 缺点:性能:查询视图时,必须把视图的查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,那么就无法更改数据 第四章: 1、数据库的安全性 保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。

2、数据库的不安因素 非授权用户对数据库的恶意存取和破坏、数据库中重要或敏感的数据被泄露,安全环境的脆弱性。

3、TCSEC标准和CC标准

4、数据库安全性控制方法 (1)用户身份鉴别: ①静态口令:密码 ②动态口令:短信验证码 ③生物特征鉴别:扫脸、指纹 ④智能卡鉴别:校园卡进门 (2)多层存取控制:主要包括 定义用户权限 和 合法权限检测,其组成了存取控制子系统。 (3)审计 (4)视图 (5)数据加密 5、存取控制 (1)自主存取控制DAC:不同用户对不同对象的权限不同,对同一对象的权限也不同。用户也可以把自己的权限赋予他人。 ①GRANT select,insert,update(column),ALL PRIVILEGES ON TABLE table_name/public TO user_name WITH GRANT OPTION;指定了这个,那么被授予权限的用户可以继续把权限赋予别人,但是不允许循环赋予。 ②REVOKE select ON TABLE table_name FROM user_name/public CASCADE;级联,那么不仅收回他的权限,他所赋予的用户的权限也会收回。 ③角色:权限的集合 CREATE ROLE role_name; GRANT 权限 ON 对象 对象名 TO role_name WITH ADMIN OPTION; GRANT role_name TO role_name2 REVOKE 权限 ON 对象 对象名 FROM role_name;

(2)强制存取控制。①仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应客体。②仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体。

6、审计 把用户的操作记录到审计日志中。 AUDIT alter,update ON SC 开启审计功能 NOAUDIT alter,update ON SC 关闭审计功能

7、数据加密:将明文转为密文 存储加密:透明(对用户透明),非透明(加函数) 传输加密   第五章:数据库完整性 1、数据库的完整性是指数据的正确性和相容性 2、数据库管理系统在安全性方面的功能 (1)提供定义完整性约束条件的机制 (2)提供完整性检查的方法 (3)进行违约处理 3、实体完整性约束 主属性不能为空、主码值必须唯一 4、参照完整性约束

5、用户自定义完整性 (1)属性上的约束条件 不允许空值、列值唯一、check短语指定列值应该满足的条件、 (2)元组上的约束条件 check(。。。。)独立一行,而不是跟在列定义后面 (3)create table(sno number(8) CONSTRAINT C1 CHECK (xxxxx)) 在create table中定义约束,并起名称,方便修改和删除。 6、断言:create assertion ass_name check(xxxx); 与触发器的不同在于,它只能进行检查并拒绝执行和允许执行。不能修改数据等。 7、触发器 触发器是一种特殊的存储过程,主要是通过事件来触发而被执行的。 它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。 可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。 包括触发时机:before和after 触发器类型:语句级for each statement、行级for each row 触发条件 触发动作体

第六章、关系数据理论 1、关系模式存在的问题 数据冗余、更新异常、插入异常、删除异常。 为了解决 2、函数依赖 平凡的函数依赖:x->y 但y属于x 非平凡函数依赖:我们研究的一般默认是非平凡函数依赖 完全函数依赖:x->y , 且y不函数依赖于x的任意子集 部分函数依赖 3、超码 U->K 候选码U完全函数依赖K

4、范式 范式可以说是一种体系,也是一种评判标准。数据库中的数据满足不同程度要求的为不同范式。 一个低一级范式的关系模式通过模式分解可以转换为若干个高一级范式的关系模式的集合,这个过程就是规范化。

5、数据库范式,根据某个场景设计数据表? ①第一范式:(确保每列保持原子性)所有字段值都是不可分解的原子值。 第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。 用户信息遵循了第一范式的要求,这样在对用户使用城市进行分类的时候就非常方便,也提高了数据库的性能。 ②第二范式:(确保表中的每列都和主键相关)在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。消除非主属性对码的部份依赖 第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。 比如要设计一个订单信息表,因为订单中可能会有多种商品,所以要将订单编号和商品编号作为数据库表的联合主键。 ③第三范式:(确保每列都和主键列直接相关,而不是间接相关) 数据表中的每一列数据都和主键直接相关,而不能间接相关。消除非主属性对码的传递依赖 第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。 比如在设计一个订单数据表的时候,可以将客户编号作为一个外键和订单表建立相应的关系。而不可以在订单表中添加关于客户其它信息(比如姓名、所属公司等)的字段。 ④BCNF:符合3NF,并且,主属性不依赖于主属性。消除主属性对码的部份依赖和传递依赖 若关系模式属于第二范式,且每个属性都不传递依赖于键码,则R属于BC范式。 通常BC范式的条件有多种等价的表述:每个非平凡依赖的左边必须包含键码;每个决定因素必须包含键码。 BC范式既检查非主属性,又检查主属性。当只检查非主属性时,就成了第三范式。满足BC范式的关系都必然满足第三范式。 还可以这么说:若一个关系达到了第三范式,并且它只有一个候选码,或者它的每个候选码都是单属性,则该关系自然达到BC范式。 一般,一个数据库设计符合3NF或BCNF就可以了。 ⑤第四范式:要求把同一表内的多对多关系删除。 ⑥第五范式:从最终结构重新建立原始结构。

6、数据依赖的公理系统

第七章、数据库设计 1、数据库设计的步骤 需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护。 2、需求分析: 通过调查、收集与分析,获得用户对数据库的 信息要求、处理要求、安全性与完整性要求。 3、数据字典 关于数据库中数据的描述,即元数据,而不是数据本身。 数据字典在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善。 4、概念结构设计 (1)概念模型的特点:真实充分反映现实,易于理解,易于更改,易于向关系网状层次等各种数据模型转换。 (2)E-R模型:实体(属性)+联系(属性、几对几) 实体与属性划分原则: ① 现实世界中作为属性的尽量作为属性 ② 属性不能再有可以描述的性质 ③ 属性不能再和其他实体有联系 (3)E-R图集成 属性冲突:属性值的类型、气质范围或取值集合不同。如身高有的cm、有的m 命名冲突:同名异义,异名同义。 结构冲突: 同一对象在不同应用中具有不同的抽象 同一实体在不同子系统中E-R所包含的属性以及排序不同 实体间的联系在不同E-R图中为不同的类型 5、逻辑设计结构 E-R图向关系模式的转换

6、存取方法 10、什么是索引? 数据库索引,是数据库管理系统中一个排序的数据结构,索引的实现通常使用B树及其变种B+树。 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。 11.索引的作用?它的优点缺点是什么? ①索引作用:协助快速查询、更新数据库表中数据。 ②为表设置索引要付出代价的: 一是增加了数据库的存储空间 二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。 12.索引的优缺点? 创建索引可以大大提高系统的性能(优点): 1.通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 2.可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 3.可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 4.在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 5.通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。 增加索引也有许多不利的方面(缺点): 1.创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。 2.索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。 3.当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。 4.哪些列适合建立索引、哪些不适合建索引? 索引是建立在数据库表中的某些列的上面。在创建索引的时候,应该考虑在哪些列上可以创建索引,在哪些列上不能创建索引。 一般来说,应该在这些列上创建索引: (1)在经常需要搜索的列上,可以加快搜索的速度; (2)在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构; (3)在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度; (4)在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的; (5)在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间; (6)在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。 对于有些列不应该创建索引: (1)对于那些在查询中很少使用或者参考的列不应该创建索引。 这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。 (2)对于那些只有很少数据值的列也不应该增加索引。 这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。 (3)对于那些定义为text, image和bit数据类型的列不应该增加索引。 这是因为,这些列的数据量要么相当大,要么取值很少。 (4)当修改性能远远大于检索性能时,不应该创建索引。 这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改性能远远大于检索性能时,不应该创建索引。 5.什么样的字段适合建索引 唯一、不为空、经常被查询的字段 7.B树和B+树的区别 B树,每个节点都存储key和data,所有节点组成这棵树,并且叶子节点指针为nul,叶子结点不包含任何关键字信息。 B+树,所有的叶子结点中包含了全部关键字的信息,及指向含有这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大的顺序

相关推荐: