软件工程数据库概论 前 9 章

本贴最后更新于 2628 天前,其中的信息可能已经事过景迁

数据库系统概论(第五版)

Ch1 绪论

1.1 术语:

  • DB (数据库 Data Base),顾名思义,是存放数据的仓库。只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。

  • DBMS(DataBase Management System),数据库管理系统是位于用户与操作系统之间的一层数据管理__软件__。 ps:理解它是一个软件

    功能:① 数据定义功能。② 数据组织、存储和管理 ③ 数据操作功能 ④ 数据库的事务管理和运行管理 ⑤ 数据库的建立和维护功能

  • __DBS(DataBase System,DBS):__数据库系统是由数据库、数据库管理系统(机器应用开发工具)、应用程序和数据库管理员(DataBase Administrator DBA)

1.2 数据管理发展阶段

  • 人工管理-> 文件管理-> 数据库系统

  • 数据库系统的优点:① 数据结构化 ② 数据的共享性高、冗余度滴且易扩充 ③ 数据独立性高 ④ 数据由数据库管理系统统一管理和控制

1.3 数据模型(设计)

现实世界-> 信息世界-> 机器世界-> 现实需求-> 概念模型(ER 图、与具体的 DBMS 无关)-> 数据模型

  1. __数据模型分为:__概念模型、逻辑模型和物理模型
  2. 根据模型应用的不同目的,可以将这些模型划分为两大类、他们分别属于两个不同的层次。第一是__概念模型__,第二类是__逻辑模型和物理模型__
  3. 概念模型:也成信息模型,他是按用户的观点来对数据的信息建模,主要用于数据库设计。
  4. 逻辑模型: 层次模型、网状模型,关系模型。(面向对象数据模型,对象关系数据模型,半结构化数据模型 ps:老师在总结的时候没有强调这三个,书上写的有)
  5. 概念模型中的一些概念(概念模型就是 ER 图:实体-联系):
  • 实体:客观存在并可相互区别的事物 ps:必须是客观存在
  • 属性: 实体所具有某一特性
  • 码:唯一表示实体的属性集
  • 实体型:用实体明及其属性名集合来抽象和刻画同类实体
  • 实体集 :统一类型实体的集合成为实体集
  • 联系:实体之间的联系通常是指不同实体机之间的联系,一对一,一对多,多对多
  1. 数据模型通常由数据结构、数据操作、数据的完整性约束条件组成。

1.4 DBS 的结构

	   用户
	     |
     应用程序-----------
         |                      |---->DBA
	   DBMS	 -----------
	     |
		OS
		 |
		DB
  1. 它的结构分为__外部结构(用户 C/S、B/S)和__内部结构(DBMS)

  2. 数据库(DBMS)的三级模式结构:模式(基本表)、外模式(视图)、内模式(文件)。为了保证数据库逻辑上的独立性,有:外模式/模式映像,为了保证数据库逻辑上的独立性,有__模式/内模式映射__。

    怎么理解会有映像这个东西,这个道理和 hibernate 为什么有一个映射表一样,我们往往要修改数据库里的数据,只要没必要修改完数据库里的数据,还要去人家程序中修改一样的数据。只要保证它们之间的对应关系不变,就会完全解耦。

Ch2 关系数据库

2.1 数据结构

什么是关系,在用户看来,关系的数据逻辑结构就是一张扁平的二维表。

2.2 数据操作

关系模型中常用的关系操作:增、删、改、查。

  • 增:并(union)∪
  • 删:差(except)—
  • 改:差(except)—,并(union)∪
  • 查:选择(select)π[pai:], 投影(project)、连接(JOin)、除(divide)、差(except),交(intersection)、笛卡儿积

PS:由于都是特殊符号,这里不在详细打了,不过要会写__关系代数表达式__

2.3 关系完整性

完整性分为:实体完整性(主键)、参照完整性(外键),自定义完整性(列上的约束,如:not null , check)

Ch3 关系数据库标准语言 SQL

增删改查语句,这里不在重复。

Ch4 数据库安全性

4.1 控制机制

数据库安全保护存取控制流程:首先、数据库管理系统对提出 SQL 访问请求的数据库用户进行身份鉴别,防止不可信用户使用系统;然后,在 SQL 处理层进行自主存取控制和强制存取控制,进一步还可以进行推理控制。为监控恶意访问,可根据具体安全需求配置审计规则,对用户访问行为和系统关键操作进行审计。通过防止简单入侵检测规则,对异常用户行为进行检测和处理,在数据存储层,数据库管理系统不仅存放用户数据,还存储与安全有关的标记和信息(称为安全数据),提供存储加密功能等。

PS: 这些都是数据库系统自动帮我们执行的安全性流程,这些概念不知道期末考不考。

4.2 授权

通过向用户授权(RGRANT)和收回(REVOKE)的操作,一定程度上保护数据库的安全。

Ch5 数据库完整性

  • 实体完整性,即:主键约束。违约则数据库__拒绝__

  • 参照完整性,即:外键约束,违约则:拒绝,级联,设为空值

  • 自定义约束,即:列上的约束,违约则:拒绝

ps: 级联:当删除或修改被参照表(Student)的一个元组导致与参照表(SC)表的不一致时,删除或修改参照表中的所有导致不一致的元组。例如:删除 Student 表中 Sno 值为'20161231'的元组,则要从 SC 表中级联删除 SC.Sno = '20161231'的所有元组。

Ch6 关系数据库理论

  • 数据表不规范的问题:数据冗余,异常(更新异常,插入异常,删除异常)。
  • 数据表不规范的原因:依赖过于复杂。
  • 规范化的方法:模式分解。
  • 数据表设计的合理与否,评判标准(范式
    • 1NF(第一范式):表中的各个属性不可再分(不存在表中有'表'的情况)。
    • 2NF(第二范式):不存在非主属性对码的部分依赖
    • 3NF(第三范式):不存在非主属性对码的传递依赖
    • BCNF(BC 范式):每个属性都不部分依赖于候选键也不传递依赖于候选键。

ps:一般要求达到 BC 范式就可以。范式是一级一级的,满足 2NF,肯定满足 1NF,满足 3NF 的前提,肯定是要满足 1NF 和 2NF。

  • 1NF,就是保证各个属性,具有原子性,不可分割。
  • 2NF,首先我们考虑,把所有这些信息放到一个表中(学号,学生姓名、年龄、性别、课程、课程学分、系别、学科成绩,系办地址、系办电话)下面存在如下的依赖关系。
    (学号, 课程名称) → (姓名, 年龄, 成绩, 学分)。这就不符合 2NF 的要求,如果要规范,择应该把这个表分成几个表来处理。
  • 3NF,三范式的要求重点在于___传递依赖___。如果 X->Y,Y->Z,且 X,Y,Z 都在同一个表中;那就能由 X->Z 了,这就是传递依赖。
  • BC 范式:2NF 和 3NF 都是在非主属性上,BC 范式要求在主属性上也不存在部分依赖和传递依赖。

Ch7 数据库设计

数据库设计的基本步骤

  1. 需求分析(数据流图,数据字典)
  2. 概念结构设计(E-R 图)
  3. 逻辑结构设计(1:1,1:n,m:n 等对应关系,运用范式来使数据库模型优化)
  4. 物理结构设计(索引)
  5. 数据库实施
  6. 数据库运行和维护

Ch8 略(不考.....)

Ch9 查询优化

9.1 代数优化

代数优化的策略是通过对关系代数表达式的等价变换来提高查询效率。

  1. 连接、笛卡儿积的交换律(结合律)。
  2. 投影的串接定律。
  3. 选择的串接定律。
  4. 选择与投影操作的交换律,选择与笛卡儿积的交换律。
  5. 选择与并的分配律,选择差的分配律,选择对自然连接的分配律,投影与笛卡儿积的分配律,投影与并的分配律。

由于符号限制,详见这里

9.2 物理优化

  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    331 引用 • 615 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 标题和内容不符呀

    1 回复
  • zk123
    作者

    之前期末复习软件工程的数据库,然后没有敲完它,就考试了。然后想着还是不发了,弄个小黑屋标签,仅自己可见吧,你咋能看到。

    1 回复
  • 小黑屋是点击发帖的时候选择小黑屋。你这个只是名字是小黑屋,但是类型还是普通文章。

    1 回复
  • zk123
    作者

    也带了小黑屋的标签。。。

    1 回复
  • 标签只是对这篇文章的一个标记,不能代表类型。