6 - 数据库基础
数据库三级模式
三级模式 - 两级映射外模式(External Schema)
定义:也称子模式(Subschema)或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
理解: ① 一个数据库可以有多个外模式; ② 外模式就是用户视图; ③ 外模式是保证数据安全性的一个有力措施。
概念模式(Schema)
定义:概念模式又称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
理解: ① 一个数据库只有一个模式; ② 是数据库数据在逻辑级上的视图; ③ 数据库模式以某一种数据模型为基础; ④ 定义模式时不仅要定义数据的逻辑结构(如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等),而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。
内模式(Internal Schema)
定义:也称存储模式(Storage Schema),它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式(例如,记录的存储方式是顺序存储、按照B树结构存储还是按hash方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定)。
理解: ① 一个数据库只有一个内模式; ② 一个表可能由多个文件组成,如:数据文件、索引文件。 它是数据库管理系统(DBMS)对数据库中数据进行有效组织和管理的方法 其目的有: ① 为了减少数据冗余,实现数据共享; ② 为了提高存取效率,改善性能。
例1例2
数据模型
还有一个:面向对象数据模型
数据模型三要素: 数据结构、数据操作、数据的约束件(完整性约束等)
数据仓库
数据仓库四大特点:面向主题、集成、相对稳定、反映历史变化。
数据挖掘的方法
-
关联分析:关联分析主要用于发现不同事件之间的关联性,即一个事件发生的同时,另一个事件也经常发生。
-
序列分析:序列分析主要用于发现一定时间间隔内接连发生的事件,这些事件构成一个序列,发现的序列应该具有普遍意义。
-
分类分析:按照某种已有的标准给对象贴标签,再根据标签来分类。其首先为每个记录赋予一个标记(一组具有不同特征的类别),即按标记分类记录,然后检查这些标定的记录,描述出这些记录的特征。
-
聚类分析:聚类分析是根据“物以类聚”的原理,将本身没有类别的样本聚集成不同的组,并且对每个这样的组进行描述的过程。
关系数据库
关系模型
E-R图
ER图ER 图三要素
- 实体:通常是现实世界的业务对象,当然使用一些逻辑对象也可以。比如对于一个校园管理系统,会涉及学生、教师、课程、班级等等实体。在 ER 图中,实体使用矩形框表示。
- 属性:即某个实体拥有的属性,属性用来描述组成实体的要素,对于产品设计来说可以理解为字段。在 ER 图中,属性使用椭圆形表示。
- 联系:即实体与实体之间的关系,这个关系不仅有业务关联关系,还能通过数字表示实体之间的数量对照关系。例如,一个班级会有多个学生就是一种实体间的联系。
实体之间的关系
- 一对一联系(1:1)
如班级和班长,一个班级只有一个班长,一个班长只能在一个班级任职。 - 一对多联系(1:n)
如班级和学生,一个班级有多名学生,一名学生只能属于一个班级。 - 多对多联系(m:n)
如课程和学生,一门课程可以被多名学生选修,一名学生可以同时选修多门课程。
关系代数
1、交、并、差
符号 | 意义 | 说明 |
---|---|---|
∩ | R∩S,集合的交集 | 列与行都相同的行数 |
∪ | R∪S,集合的并集 | 两个集合的所有行 |
- | R-S,集合的差集 | 去掉与S中相同的数据行后的结果 |
交、并、差的 前提两个集合的结构必须相同
2、笛卡尔积、投影、选择
符号 | 意义 | 说明 |
---|---|---|
× | R×S,笛卡尔积 | 结果列数为二者属性列数之和,行数为二者元素数乘积。 |
⋈ | R⋈S,连接 | |
π | π姓名 (学生表),是对列的选择 |
对应 select distinct 姓名 from 学生表
|
σ | σ年龄=18 ^ 性别='男' ,是对行的过滤 |
对应 where 年龄=18 and 性别='男'
|
3、逻辑运算符
符号 | 意义 | 说明 |
---|---|---|
¬ | 非 | 对应sql的 not 或 !=
|
∧ | 与 | 对应sql的 and
|
∨ | 或 | 对应sql的 or
|
例2
函数依赖
保持函数依赖:对于关系模式R,有依赖集F,若对R进行分解,分解出来的多个关系模式,保持原来的依赖集不变,则为保持函数依赖的分解。另外,注意要消除掉冗余依赖(如传递依赖)
保持函数依赖 公理系统
无损分解
无损分解:指将一个关系模式分解成若干个关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式。
无损分解这种方法只能够用于一个关系模式分解为两个关系模式的时候:
各种键(码)
候选键的计算完整性约束
数据库三范式
image.png
- 第一范式:每个属性都是原子属性
- 第二范式:非主属性完全依赖于候选码(不存在部分依赖)
- 第三范式:非主属性没有传递依赖于候选码
- BC范式:主属性对候选键没有部分依赖和传递依赖
例题:
- 某公司有若干个仓库;
- 每个仓库只能有一名管理员,一名管理员只能在一个仓库中工作;
- 一个仓库中可以存放多种物品,一种物品也可以存放在不同的仓库中。每种物品在每个仓库中都有对应的数量。
那么关系模式 仓库(仓库名,管理员,物品名,数量) 属于哪一级范式?
答:已知函数依赖集:仓库名 → 管理员,管理员 → 仓库名,(仓库名,物品名)→ 数量
码:(管理员,物品名),(仓库名,物品名)
主属性:仓库名、管理员、物品名
非主属性:数量
因为 不存在非主属性对码的部分函数依赖和传递函数依赖。∴ 此关系模式属于3NF。
存在主属性【仓库名】对于码【(管理员,物品名)】的部分函数依赖。所以不属于BC范式