十四 数据库
14.1 引言
数据存储在传统上是使用 单独 的 没有关联的文件,称为 平面文件
数据库是一个组织内被应用程序使用的逻辑相一致的相关数据的集合
数据库的优点:
- 冗余少
- 避免数据的不一致
- 效率
- 数据完整性
- 机密性
数据库管理系统: 是定义、创建、维护数据库的一种 工具,
DBMS允许用户来控制数据库中数据的存取
DBMS由5部分组成
- 硬件:物理上存取数据的计算机硬件
- 软件:用户存取、维护和更新物理数据的实际程序
- 数据:数据是独立于软件的一个实体
- 用户
- 最终用户:直接从数据库中获取信息的用户;分为数据库管理员DBA 和 普通用户
-
应用程序:
-
规程:数据库用户所遵循的规则集合
14.2 数据库结构体系
- 内层: 决定了数据在存储设备中的实际位置。 这个层次处理低层次的数据存取方法和如何在存储设备间传输字节。换句话说, 内层直接与硬件交互。
- 概念层: 定义数据的逻辑视图DBMS的主要功能(如增删改查)都在该层, 概念层是 中介层,使得用户不必与内层打交道
- 外层: 直接与用户(最终用户或应用程序)交互,将来自概念层的数据转化为用户熟悉的格式和视图
14.3 数据库模型
- 层次模型: 数据被组织成一棵 倒置的树,每个实体可以有不同的节点,但只能有一个双亲, 层次的最顶端有一个实体,称为根
- 网状模型: 实体 通过 图来组织。图中的部分实体可以通过多条路径来访问
- 关系模型: 关系模型中,数据组织成称为关系的 二维表,这里没有任何层次或网络结构强加于数据上, 但表或关系相互关联
14.4 关系数据库模型
在关系数据库模型中,数据是通过 关系 的集合来表示的
从表面上看, 关系就是二维表,数据的 外部视图 是 关系和表 的集合,但不代表数据以表的形式存储
数据的物理存储与数据的逻辑组织方式毫无关系
关系的特征
- 名称:每种关系都有唯一的名称
- 属性:关系中的每一列都称为属性,属性在表中是列的头,关系中属性的总数称为关系的度
- 元组:关系中的行叫做元组,元组定义了一组属性值
14.5 关系的操作
在关系数据库中,我们可以定义一些操作来通过已知的关系创建新的关系。常见的操作如下
- 插入、删除、更新、选择/查询、投影、连接、并、交、差
- 这些操作通过数据库查询语言SQL(结构化查询语言))来定义
-
结构化查询语言(SQL)是用于关系数据库上的标准化语言。 是一种 描述性(不是过程化)的语言,这意味着使用者 不需要一步步地编写详细的程序而只需声明它
-
插入: 是一元操作,它应用于一个关系。其作用是在表中插入新的元组。
- 删除: 是一元操作,根据要求删除表中相应的元组。
- 更新: 是一元操作,用来更新元组中的部分属性值
- 选择/查询: 是一元操作,用于一个关系并产生另外一个新关系,新关系中的元组(行)是原关系元组的子集
- 投影: 是一元操作,用于一个关系并产生另外一个新关系,新关系中的属性(列)是原关系元组的子集
- 连接: 是二元操作,基于共有的属性把两个关系组合起来
- 并: 是二元操作,将两个关系合并成一个新的关系,有一个限制是两个关系中必须有相同的属性
- 交: 是二元操作,将两个关系操作,创建一个新的关系,有一个限制是两个关系中必须有相同的属性
- 差:是二元操作,应用于具有相同属性的两个关系,生成的关系中的元组是那些
存在与第一个关系中而不存在于第二个关系 中的元组
14.6 数据库设计
数据库的设计是一个冗长且只能通过一步步过程来完成的任务。
第一步通常涉及与数据库潜在用户的面谈(例如,在一个大学里),去收集需要存储的信息和每个部门的存取需求。
第二步就是建立一个 实体关系模型(ERM),这种模型定义了其一些信息需要维护的实体、
这些实体的属性和实体间的关系。
实体关系模型
数据库设计者建立了 实体关系(E-R)图来表示那些其信息需要保存的实体和实体间的关系。
E-R图使用了多种几何图形
- 矩形表示实体集。
- 椭圆形表示属性。
-
菱形表示关系集。
-
关系(用菱形表示的)可以是 一对一、一对多、多对一和多对多。
-
线连接属性和实体以及连接实体集和关系集。
从E-R图到关系
-
实体集上的关系
-
对于E-R图中的每个实体集,我们都创建一个关系(表),这些关系具有n个列,
对应于这个集合所定义的n个属性。
-
关系集上的关系
-
对于E-R图中的每个关系集,我们都创建一个关系(表),这个关系中有一个列对应于
这个关系所涉及的实体集的关键字,如果关系有属性(本例中没有),
这个关系还可以有关系本身的属性对应的列。
规范化
规范表设计中的一些规则,使得表结构设计更加合理
规范化定义了一组层次范式(NF),包括1NF、2NF、3NF、BCNF(Boyce-Codd范式)、4NF、PJNF、5NF等
- 第一范式(1NF): 当我们把实体或关系转换成表格式的关系时,可能有些关系的行或列的交集有多个值。
- 第二范式(2NF): 在每个关系中,我们需要有一个关键字(称为主键),所有其他的属性(列值)都依赖于它。
Original: https://blog.csdn.net/weixin_42470629/article/details/119543629
Author: 编程进阶之路
Title: 计算机科学导论:第十四章 数据库
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/595816/
转载文章受原作者版权保护。转载请注明原作者出处!