在上一篇中,我们大概了解了数据库相关的概述,以及他的内部三层模式两层映像的原理,还特地用了一条sql运转的过程,讲述数据库将如何操作。
接下来,讲述一些数据库建模相关的理论知识,主要从他的ODL(对象定义语言)、实体-联系模型,设计原则以及它的约束关系。
ODL(对象定义语言)是用面向对象的术语。通过给出的类的属性、联系和方法来描述面向对象的模型。属性用数据类型来表述。
常用的数据类型包括整型、字符串、枚举型以及结构、集合、数组、包和列表等形式的结构类型。其中集合、数组、包和列表又统称为聚集类型。联系用与之相连的类来描述。联系有单值联系和多值联系之分。
它有基本的属性,联系和方法组成。其属性是它们的类型是由基本的数据类型构成的;联系便是它们的类型是对某类对象的引用或是这种引用的集合;方法用于该类对象的函数。
用形象化的形式来描述数据模型。在E-R图中,描述实体集及其属性以及实体集之间的联系。
E-R图中的实体集相当于ODL中的类,而属性和联系用词都一样,本质上是一致。实体集的成员称为实体相当于类的对象。
实体集:与ODL类相似。实体是是集体的成员,和ODL中的对象相似。(矩形标识)
属性:与ODL中的属性本质上也相同。(椭圆表示)
联系:与ODL中的联系本质上也相同(菱形表示)
联系的三种类型:二元联系可以分为一对一、一对多(或多对一)和多对多这三种不同的类型。在E-R图中三元联系可方便地转换为三个二元联系。
为了有效设计数据库,需要选择合适的表示法(如ODL和E-R图),合理地确定的元素类型(如属性、联系或实体集),简单清晰而又真实地反映现实世界,而且要避免冗余,当然,有时为了提高效率,可能只是要求减少而不必要的冗余。
子类:从一个类中具有某些附加特性的对象组成一个附属的类,称为子类。子类除了具有原有类型的特性以外,还具有自己附加的特性--属性或联系。用这种类与子类的层次关系往往能更好的反映现实世界的层次结构。
键码(Key):是ODL中类的范围内唯一标识一个对象,或者E-R图中实体集的范围内唯一标识一个实体的属性或属性集。
单值约束:要求某个属性的值是唯一的,键码的单值约束的主要来源。
引用完整性约束:要求某个对象所引用的值在数据库中确实存在。
域约束:要求某个属性的值必须处于特定范围内或者取自特性值的集合。
键码:在类的范围内唯一标识一个对象,或者在实体集范围内唯一标识一个实体,
或者在一个关系范围内唯一标识一个元组的属性或属性集称为键码。
在了解数据库设计原则,一些键码约束规则之下,在下一篇的内容中,将会讲述关系代数运算与SQL查询的对应关系,顺便扩展查询优化技巧相关的内容。