数据库系统概论「姊妹篇.第二弹」
在上一篇中,我们大概了解了数据库相关的概述,以及他的内部三层模式两层映像的原理,还特地用了一条sql运转的过程,讲述数据库将如何操作。
接下来,讲述一些数据库建模相关的理论知识,主要从他的ODL(对象定义语言)、实体-联系模型,设计原则以及它的约束关系。
ODL 对象定义语言
ODL(对象定义语言)是用面向对象的术语。通过给出的类的属性、联系和方法来描述面向对象的模型。属性用数据类型来表述。
常用的数据类型包括整型、字符串、枚举型以及结构、集合、数组、包和列表等形式的结构类型。其中集合、数组、包和列表又统称为聚集类型。联系用与之相连的类来描述。联系有单值联系和多值联系之分。
它有基本的属性,联系和方法组成。其属性是它们的类型是由基本的数据类型构成的;联系便是它们的类型是对某类对象的引用或是这种引用的集合;方法用于该类对象的函数。
用形象化的形式来描述数据模型。在E-R图中,描述实体集及其属性以及实体集之间的联系。
E-R图中的实体集相当于ODL中的类,而属性和联系用词都一样,本质上是一致。实体集的成员称为实体相当于类的对象。
实体集:与ODL类相似。实体是是集体的成员,和ODL中的对象相似。(矩形标识)
属性:与ODL中的属性本质上也相同。(椭圆表示)
联系:与ODL中的联系本质上也相同(菱形表示)
联系的三种类型:二元联系可以分为一对一、一对多(或多对一)和多对多这三种不同的类型。在E-R图中三元联系可方便地转换为三个二元联系。
▲图/ 来源于百度百科
设计原则
为了有效设计数据库,需要选择合适的表示法(如ODL和E-R图),合理地确定的元素类型(如属性、联系或实体集),简单清晰而又真实地反映现实世界,而且要避免冗余,当然,有时为了提高效率,可能只是要求减少而不必要的冗余。
子类:从一个类中具有某些附加特性的对象组成一个附属的类,称为子类。子类除了具有原有类型的特性以外,还具有自己附加的特性--属性或联系。用这种类与子类的层次关系往往能更好的反映现实世界的层次结构。
▲图/ 学生的两个子类:研究生、本科生键码的约束
键码(Key):是ODL中类的范围内唯一标识一个对象,或者E-R图中实体集的范围内唯一标识一个实体的属性或属性集。
单值约束:要求某个属性的值是唯一的,键码的单值约束的主要来源。
引用完整性约束:要求某个对象所引用的值在数据库中确实存在。
域约束:要求某个属性的值必须处于特定范围内或者取自特性值的集合。
键码:在类的范围内唯一标识一个对象,或者在实体集范围内唯一标识一个实体,
或者在一个关系范围内唯一标识一个元组的属性或属性集称为键码。
在了解数据库设计原则,一些键码约束规则之下,在下一篇的内容中,将会讲述关系代数运算与SQL查询的对应关系,顺便扩展查询优化技巧相关的内容。
- 《LoadRunner从入门到精通》策划中——《Web性能测试实战》的姊妹篇调查意见
- 《LoadRunner从入门到精通》策划中——《Web性能测试实战》的姊妹篇调查意见
- 数据库系统概论 中文高清PDF版下载
- 创建你的第一个LYNC 2010 响应组-第二弹
- 数据库系统概论 学习笔记(三)第三部分
- 【捷哥浅谈PHP】第二弹---经典算法的运用(冒泡排序和快速排序)
- 【探索HTML5第二弹03】走近地图应用的世界,看我们google地图可以看些什么!
- 《数据库系统概论》实验指导书
- Linux设备驱动子系统第二弹 - SD卡
- Longest Consecutive Sequence 优化强迫症第二弹
- 免费的编程中文书籍索引 第二弹
- 【数据库系统概论】绪论----数据库系统概论(一)
- Android动画特效第二弹——QQ聊天彩蛋蹦蹦哒
- ExtJS 的一些使用总结(适用于3.x版本)——第二弹
- 第二弹Linux基础一mkdir/cp/mv/rm/zip/unzip命令详解
- 青瓷引擎之纯JavaScript打造HTML5游戏第二弹——《跳跃的方块》Part 6(分数上传及排行榜查询)
- Thread进阶第二弹 ----- 什么是Thread ? 什么是多线程?
- 自制window下core animation引擎 - demo第二弹 - 仿QQ电脑管家加速小火箭
- HTML网页制作基础第二弹
- iframe跨域通信的通用解决方案-第二弹!(终极解决方案)