- Data Model:描述现实世界的方法
- 演变:
1.层次(记录/域/双亲儿子关系->树->虚记录)
2.网状(系/link->复合类型/链表)
3.关系(表)->可用集合论研究/高度抽象/屏蔽底层细节/代数体系/提供非过程化语言/软连接/ - 表的属性-原子属性,不能再分,基本数据类型
- R=(A1/D1,A2/D2…)-目
- Primary key:唯一决定元组的值,其中任意的子集不满足这一条件->特殊:全键
- Foreign key:引用其他表的元组,引用完整性
- Domain integrity constraint:每个属性的值符合值域的要求
- Entity integrity constraint:作为主键的值不能为空
- 基本操作:
1.selection(Π)
2.projection:删除不需要的列->结果会消除同样的元素,实际设计中不会消除
3.cross-product:合并两个关系
4.set-difference:A-B
5.union:合并两个元组 - Add operation:intersection:交集/join:连接/division:除/outer join:外连接/outer union:外并
- Joins:
1.Condition join:笛卡尔乘积乘积之后选择
2.Equi join:相等属性条件进行连接,并去掉重复列
3.Natural join:自然连接 - Division:
1.A/B:在A中与B有关系的属性
2.Πx(A)-Πx((Πx(A)XB)-A) - Outer join:
1.Left outer join
2.Right outer join
3.Full outer join
(补空值) - Outer union:
1.不满足并条件的表强行并起来 - 关系演算/关系代数
1.原子公式
2.{<I,N,T,A>|<I,N,T,A>∈Sailors∩T>7}
3.unsafe - Remarks to Traditional Data Model
1.适合OLTP(online transaction processing)以记录为基础,结构化数据支持事务型的应用
2.不很好的面向用户和应用
3.不能用很自然的办法描述事物间的真实关系
4.缺乏语义性信息
5.支持数据类型少 - E-R Data Model:
1.Entity:现实中可区分的对象表达成实体,实体以一组属性描述的
2.Entity Set:拥有相似实体的集
3.Relationship
4.Relationship set - E-R Diagram:
1.长方形->entity;菱形->relation;椭圆->属性
2.1-1;1-N;N-M
3.Participation constraints,约束,最小参与度,最大参与度
4.Weak entity:依赖于其他实体
5.Specialization and Generalization
6.Aggregation:允许两种实体集的联系也看成实体集,使其与其他实体集发生联系
7.Cateory:一个范畴内多个实体 - Object-Oriented Data Model
1.break through 1NF
2.Object-Oriented analysis and programming
3.Requirement of object’s permanent store
4.Object-Relation DBMS
5.Native Object-Oriented DBMS - Other Data Models
1.基于演绎的数据模型
2.时态数据模型
3.空间数据模型
4.XML数据模型-Native XML/XML Enabled - 总结
1.Data Model是DBMS的核心
2.Data Model是描述真实世界的方法