模型就是对现实世界特征的模拟和抽象,数据模型是对现实世界数据特征的抽象。
数据模型应满足三方面的要求:
数据模型是数据库系统的核心和基础。
描述数据库 的组成对象,以及对象之间的联系。
这里要注意区别 数据结构不是指二叉树、图之类的,这里的数据结构指层次、网、关系等。
描述的内容:
数据结构是对系统静态特性的描述。
数据模型对操作的定义
数据操作是对系统动态特性的描述
数据模型对完整性约束条件的定义
概念模型也成信息模型,它是按照用户的观点来对数据和信息建模,用于数据库设计。
客观存在并可互相区别的事物称为实体。
实体可以是具体的人、事、物或抽象的概念,在此我们可联想到 Java 中的面向对象中实体。
实体具有的某一特性称为属性。
一个实体可以由若干个属性来刻画。
★★★
唯一标识实体的属性集称为码。
我对码的理解就是,码就是主键或者复合主键(复合主键--一张表只能有一个主键,但我们可以选多个属性值为主键)。通过码我们可以唯一的确定一个实体,比如我们的身份号,在中国通过一个人的身份证号可以确定一个人,这个身份号就是主键。再举一个复合主键的例子:
一位母亲去学校找自己儿子张三,传达室人就问你找谁。这位母亲说我儿子在高三六班名字叫张三,不巧的是,这个班级里面有两个叫张三的,还是不知道这位母亲具体要找的是哪个张三。这位母亲又说,我儿子生日是 99 年八月十五。传达室通知了高三五班的班主任,让这个 99 年八月十五出生的张三到校门口传达室与其母亲相见。
通过这个故事我们分析一下,这位母亲是通过什么信息来找到自己儿子的呢?
没错 ,就是姓名,班级,还有生日。那么在这里姓名、班级、生日就是码(数据库建立对应的表的话 我称它为复合主键),通过多个属性值 来确定唯一个实体。
用实体名及其属性名来抽象和刻画同类实体称为实体型。
同一个类型实体的集合称为实体集。
现实世界中事物内部以及事物之间的联系在信息世界中反应为实体(型)内部的联系和实体(型)之间的联系
实体-联系方法(Entity-Relationship Approach)
逻辑模型主要包括
层次模型是数据库系统中最早出现的数据模型,其典型的代表是 IBM 公司的 IMS(Information Management System)数据库。
层次模型用树形结构来表示各类实体以及实体之间的联系。
满足下列两个条件的基本层次联系的集合为层次模型
一个层次模型实例如下图:
教员学生层次数据库模型
教员层次数据库的一个值
上面两张图就很好的解释了什么是层次模型。以及层次模型的特点。
优点
缺点
网状数据库采用网状模型作为数据的组织方式,典型代表是 DBTG 系统,20 世纪 70 年代的提出的方案。
网状模型满足下面连个基本条件的基本层次联系的集合:
我们都学过数据结构这门课,结合树形结构和网状结构的特点,不难理解网状模型和层次模型的区别。
在网状模型中表示多对多联系是通过将多对多联系直接分解成一对多联系。
聊到多对多不得不提到这个经典的选课问题:
大学中,一个学生可以选修若干们课程,其一门课程可以被多个学生选修,学号是呢过与课程之间是多对多联系。
引进一个学生选课的联结记录,由三个数据项组成(在数据库中就是建立一张选课表,用来联结课程表和学生表的)
这样就可以表示某个学生选修某一门课程以及该学生的成绩了。
优点
缺点
关系数据库系统采用关系模型作为数据的组织方式,关系模型是 1970 年提出的。
现在的计算机厂商推出的书库管理系统几乎都支持关系模型,也是我们以后学习的重点。
在用户看来,关系模型中数据的逻辑结构就是一张二维表,它由行和列组成。
术语 | 解释 |
---|---|
- 关系(Relation) | 对应通常说的一张表 |
- 元组(Tuple) | 表中的一行就是一个元组 |
- 属性(Attribute) | 表中的一列就是一个属性,给每一个属性起一个名称即属性名 |
- 主码(Key) | 也成码键。表中的某个属性组,它可以是唯一确定一个元组。 |
- 域(Domain) | 是一组具有相同数据类型的值的集合。属性的取值范围来自某个域 |
-分量 | 元组中的一个属性值 |
- 关系模式 | 对关系的描述 |
最基本的规范条件:
关系的每一个分量必须是一个不可分的数据项,不允许表中还有表。
术语对比
在使用基于关系模型的数据库时候,数据的存取路径是对用户隐蔽的,用户只需要支出“干什么”,不必详细说明“怎么干”。
优点
缺点
物理模型是对数据最底层的抽象,描述数据在系统内部的表示和存取方法,在磁盘或磁带上的存储方式和存取方法。
大纲生成思维导图敬上