三种主要的数据模型+ t' U' r9 Q+ b* x! }. K
实际DBMS所支持的数据模型主要有三种:) ~. W' Y% \+ E% x
层次模型(Hierarchical Model)8 k- U. c& m, F. ]* k3 j H4 Z
网状模型(Network Model)
- T* |+ A/ n. @$ }/ Q9 t& r 关系模型(Relational Model)其中,关系模型是当前DBMS所支持的数据模型的主流。90年代运行的DBMS几乎都是基于关系模型的。层次模型和网状模型统称为非关系模型。非关系模型的结构可以和图论中的图相对应,比较直观,但在理论上不完备,实现效率较低,故此目前很少用。但是最近,层次模型在研究面向对象的DBMS中已得到重视。在关系模型中,数据在用户的观点中(或在用户视图中)的逻辑结构是一张二维表(Table)。
1 k8 K, [6 ?, q1 }* X8 \ C 关系(Relation),对应于平常讲的一张表。/ Z* g; {6 w) y- [- `+ X+ W) O0 j) v
元组(Tuple),表中的一行。
' v) L, f% j$ U) s2 l 属性(Attribute),表中的一列称为一个属性,给每一列起一个名,称为属性名。这一列或这个属性所有可能取的值的集合称为这个属性的值域(Domain),值域中的一个元素叫做这个属性的值。2 p% f" O. r0 o f* Y$ z. ]" k
主关键字(Primary Key Attribute或Primary Key),是指能唯一标识一个元组的一个或一组属性。 ?# I5 E; Z4 r/ w( \8 S. O4 C
分量(Attribute value),是指元组中的一个属性值。
4 k' t) C2 S8 h" W2 Y+ h7 \4 U/ H 关系模式(Relational Schema),是对关系的描述,一般用关系名(属性名1,属性名2,…,属性名n)来表示。同层次模型和网状模型相比较,关系模型具有下列特点:
; ^5 ?/ x: X- e* A- b$ \ (1)概念单一在关系模型中,无论是实体还是实体之间的联系都用关系来表示。在关系模型中,在用户的观点中,数据的逻辑结构就是表,也只有这唯一的概念。在非关系模型中,用户要区分记录型与记录型之间的联系两个概念;当环境复杂时,数据结构异常复杂,难以掌握。而关系模型,由于概念单一,可以变复杂为直观、简单,易学易用。2 l& l8 A, L# m- Y! h( q" _
(2)规范化所谓关系规范化是指在关系模型中,每一个关系都要满足一定的条件要求。这些条件被称为规范条件。对于关系,一个最基本的规范条件是,要求关系中的每一个属性(或分量)均是不可分的数据项;也就是说不允许表中有表,表是不可嵌套的。5 D9 F! k1 u) ~. b5 \
(3)在关系模型中,用户对数据的操作的输入和输出都是表,也就是说,用户通过操作旧表而得到一张新表。总之,关系模型概念简单,结构清晰,用户易学易用,有严格的以数学为基础的关系理论作指导,便于DBMS的实现。基于关系的DBMS简化了应用程序员的工作,便于数据库应用系统的设计和维护。故此,关系模型自诞生以后就得到了迅速的发展,成为应用最为广泛的、唯一的数据模型。 |