二、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 丢失的问题