二、DB的抽象与演变
2.1 DB的标准结构
DBMS管理数据的三个层次
● (局部模式)Entrenal Level 外部层次 = User Level 用户层次
○ 用户能够看到雨处理的数据,全局数据中的某一部分
● (全局模式)Conceptual Level 概念层次 = Logic Level 逻辑层次
○ 从全局角度理解、管理的数据、含响应的关联约束
● (存储模式)Internal Level 内部层次 = Physical Level
数据与模式
模式(Schema) :
对DB中的数据所进行的一种结构化的描述,所观察到的数据的结构信息
视图(View)/数据(Data):
表现形式下的数据
两层映像
EC Mapping (External Schema-Conceptual Schema Mapping)
将外模式映射为概念模式,从而支持实现数据概念视图—> 外部视图的转换 ,便于用户观察和使用
CI Mapping (Conceptual Schema-Internal Schema Mapping)
将概念模式映射为内模式,从而支持实现数据概念视图向内部视图的转换,便于计算机进行存储处理
两个独立性
逻辑数据独立性:
概念模式变化时,可以不改变外部模式(只修改EC-mapping),从而不需要改应用程序
物理数据的独立性:
内模式变化时,可以不改变概念模式(只修改CI-mapping),从而不改变外部模式
2.2 数据模型
数据模型:规定统一描述方式的模型,(数据结构、操作、约束)
数据模型是对模式本身结构的抽象,模式是数据本身结构形式化的抽象
三大经典数据模型
关系模式:表
层次模型:树
网状模型:图
三、DB发展史
1.文件系统,直接利用OS的接口
2.数据库系统(层次 图 )
3.数据库系统(表 )
4.关系数据库—>对象关系数据库、面相对象数据库
关系数据库的约束
- 行列组织数据,关系的第一范式
- 数据项不可再分
- 关系运算:关系代数、元祖演算、域演算---->标准SQL
- 关系数据库设计理论
对象关系数据库
- 可以有效支持不满足关系第一范式的数据项
- 以对象来封装需分解的数据项
- 行对象&列对象:聚集对象&结构对象
面向对象DB
- 面相对象技术(O-O) 与 集合/聚集操作技术(SQL)的结合
- 支持复杂的数据类型,数据封装&抽象数据结构
- 支持面向对象的一特性:类 、继承、封装、多态
多数据库的互联
3.2 新型数据库
OA:DB + Management Infomation System DB Machine = DB + Computer Architecture Intelligent DB = DB + Aritificial Intelligence Distrubuted DB(DDB分布式数据库) = Computer Network + DB Image DB、Mulitimedia DB Temporal DB = DB + 时态技术处理 Mobile DB = DB + 移动计算技术 Active DB = DB + 产生式 、触发技术 Ruzzy DB = DB + 模糊处理技术 Real_Time DB = DB + 实时技术 Engineering DB = DB + CAD/CAPP/CAM Geographical DB = DB + 数字地图 + 定位系统 + 空间分析 Statiscical DB = DB + 统计学 Internat DB = DB + Internet/(www网页、html) DW、DM = DB + OLAP + 统计学 NoSQL =
四、关系模型
关系模型发展
- 从表&表的处理方式中抽象出来,是在对传统表以及操作进行数学化严格定义基础上,引入集合理论&逻辑理论提出的
- 三大经典数据模型(关系数据模型、网状模型、层次模型)
- SQL是建立在关系数据模型之上的
关系模型研究什么?
- 形象的说,一个关系relation就是一个table
- 关系模型就是处理table的,三部分构成
- DB各种数据基本结构形式(Table/Realtion)
- Table&Table之间所有可能发生的各种操作(关系运算)
- 描述这些操作所应该遵守的约束条件(完整性约束)
三要素:
-
基本结构 Relation、Table
-
基本操作 Relation Operator
- 并 Union
- 差 Difference
- 广义积 Product
- 选择 selection
- 投影 projection
- 交 intersection
- 连接 join
- 除 division
-
实体完整性、参照完整性、用户自定义完整性
域Domain
一组值的集合,这组值拥有相同的数据类型
一个列的取值范围,相当于列的枚举
域中元素的个数为:基数Cardinality
笛卡尔积:域 * 域
表达了所有可能的所有元祖
关系Relation
一组域 的 笛卡尔积的 子集,有意义的组合
关系中的概念:
- 候选码 候选键
关系中的一个属性组,能够唯一标识元祖 一行
- 主码 主键PK
候选码可以有多个,需要指定一个
- 主属性 非主属性
包含在任何一个候选码中的属性:主属性
其他属性:非主属性
- 全码All key
所有的属性构成这个关系的候选码
- 外码 外键 FK
属性组是其他关系的候选码
4.2 关系模式的完整性
实体完整性
关系的主码中的属性值不能为空值
参照完整性
可以为空值
五、关系代数
5.1 关系代数
并相容性
5.2 关系代数 基本操作
5.2.1 并union
不区分大小写,去重
5.2.2 差different
5.2.3 广义笛卡尔积 (Cartesian Product)
5.2.4 选择select
对行的选择
5.2.4 投影Project
对列的选择
5.3 关系代数 扩展操作
5.3.1 交 Intersection
5.3.2 连接 join
5.3.3 等值连接
join的一种特例
5.3.4 自然连接
join的一种特例,去除重复的col
5.4 关系代数 复杂扩展操作
5.4.1 除Division
5.4.2 外连接
自然连接的时候,会出现 后面表找不到key 丢失的问题
六、关系演算
6.1 原子公式
前面关系代数的操作中已经出现了关系演算
6.2 量词公式
6.3 等价变化
6.4 复杂例子
全都学过
全部 李明老师的课程 都进行验证,该同学都 存在 一条学过的记录
全都没学过
至少学过一门
至少有一没学过
存在 一条李明老师的课程,该同学 存在 一条没有学过的记录
6.5 关系代数转换元祖演算
6.6 关系域演算
元祖演算是 元祖变量 为操作单位,域演算是以 域变量为操作的单位
元祖演算 & 域演算 是可以等价互换的
6.7 QBE
Query By Example
6.8 关系运算的安全性
“不产生无线关系&无穷验证的运算被称为是安全的”
6.8.1 关系代数安全
- 关系代数:是一种集合运算,是安全的:集合本身是安全的,有限元素集合的有限次运算也是有限的
6.8.2 关系演算不一定
- 关系演算:不一定是安全的
关系演算安全性需要施加一个约束,任何公式都需要在一个集合范围内操作,而不是无限范围内操作,才能保证安全性
安全约束有限集合DOM
DOM()是一个有限集合,其中的每个符号要么是()中明显出现的符号,要么是出现在()中的某个关系R的某元组的分量
6.8.2 关系元祖表达式
6.9 三种关系运算
- 关系代数:集合为操作对象
- 元祖演算:以元祖为对象的操作思维,取出关系的每一个元祖进行验证,每一个元组就一次循环
- 域演算:以域变量为对象的抽象思维,域的每一个变量进行验证
6.9.1 三种关系的比较
- 等价的
关系代数 = 安全的元组演算 = 安全的域演算
- 非过程性的(执行的时候不一定按次序)
过程性比较:域演算 > 元祖演算 > 关系代数
- 数据库语言完备性的基础
- 能实现这三种关系,那么语言是完备的
- 多数数据库都能实现这三种运算,还能赋值、聚集
- 等价的
- 关系演算:不一定是安全的
- 关系代数:是一种集合运算,是安全的:集合本身是安全的,有限元素集合的有限次运算也是有限的
- 候选码 候选键
-
猜你喜欢
网友评论
- 搜索
- 最新文章
- 热门文章