数据库三级模式
外模式(External Schema)
定义:也称子模式(Subschema)或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
理解: ① 一个数据库可以有多个外模式; ② 外模式就是用户视图; ③ 外模式是保证数据安全性的一个有力措施。
概念模式(Schema)
定义:概念模式又称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
理解: ① 一个数据库只有一个模式; ② 是数据库数据在逻辑级上的视图; ③ 数据库模式以某一种数据模型为基础; ④ 定义模式时不仅要定义数据的逻辑结构(如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等),而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。
内模式(Internal Schema)
定义:也称存储模式(Storage Schema),它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式(例如,记录的存储方式是顺序存储、按照B树结构存储还是按hash方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定)。
理解: ① 一个数据库只有一个内模式; ② 一个表可能由多个文件组成,如:数据文件、索引文件。 它是数据库管理系统(DBMS)对数据库中数据进行有效组织和管理的方法 其目的有: ① 为了减少数据冗余,实现数据共享; ② 为了提高存取效率,改善性能。
数据模型
还有一个:面向对象数据模型
数据模型三要素: 数据结构、数据操作、数据的约束件(完整性约束等)
数据仓库
数据仓库四大特点:面向主题、集成、相对稳定、反映历史变化。
数据挖掘的方法
关联分析:关联分析主要用于发现不同事件之间的关联性,即一个事件发生的同时,另一个事件也经常发生。
序列分析:序列分析主要用于发现一定时间间隔内接连发生的事件,这些事件构成一个序列,发现的序列应该具有普遍意义。
分类分析:按照某种已有的标准给对象贴标签,再根据标签来分类。其首先为每个记录赋予一个标记(一组具有不同特征的类别),即按标记分类记录,然后检查这些标定的记录,描述出这些记录的特征。
聚类分析:聚类分析是根据“物以类聚”的原理,将本身没有类别的样本聚集成不同的组,并且对每个这样的组进行描述的过程。
关系数据库
关系模型
E-R图
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
|
函数依赖
保持函数依赖:对于关系模式R,有依赖集F,若对R进行分解,分解出来的多个关系模式,保持原来的依赖集不变,则为保持函数依赖的分解。另外,注意要消除掉冗余依赖(如传递依赖)
无损分解
无损分解:指将一个关系模式分解成若干个关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式。
这种方法只能够用于一个关系模式分解为两个关系模式的时候:
各种键(码)
完整性约束
数据库三范式
- 第一范式:每个属性都是原子属性
- 第二范式:非主属性完全依赖于候选码(不存在部分依赖)
- 第三范式:非主属性没有传递依赖于候选码
- BC范式:主属性对候选键没有部分依赖和传递依赖
例题:
- 某公司有若干个仓库;
- 每个仓库只能有一名管理员,一名管理员只能在一个仓库中工作;
- 一个仓库中可以存放多种物品,一种物品也可以存放在不同的仓库中。每种物品在每个仓库中都有对应的数量。
那么关系模式 仓库(仓库名,管理员,物品名,数量) 属于哪一级范式?
答:已知函数依赖集:仓库名 → 管理员,管理员 → 仓库名,(仓库名,物品名)→ 数量
码:(管理员,物品名),(仓库名,物品名)
主属性:仓库名、管理员、物品名
非主属性:数量
因为 不存在非主属性对码的部分函数依赖和传递函数依赖。∴ 此关系模式属于3NF。
存在主属性【仓库名】对于码【(管理员,物品名)】的部分函数依赖。所以不属于BC范式