
【数据库原理及应用】——数据模型(学习笔记)
分类和抽象是信息技术学科重要的思想方法。把客观存在的事物以数据的形式存储到计算机中,其间经历了现实世界→概念世界→数据世界的逐级抽象过程。
📖 前言:分类和抽象是信息技术学科重要的思想方法。把客观存在的事物以数据的形式存储到计算机中,其间经历了现实世界→概念世界→数据世界的逐级抽象过程。
目录
🕒 0. 思维导图
🕒 1. 数据模型的概念
- 在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。
- 通俗地讲数据模型就是现实世界的模拟,是数据库系统的核心和基础。
数据模型应满足三方面要求:
- 真实性:能比较真实地模拟现实世界
- 易理解性:容易为人所理解
- 易实现性:便于在计算机上实现
🕒 2. 三大类数据模型
- 概念模型 也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。如E-R图
- 逻辑模型:主要包括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。
- 物理模型:是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。
🕒 3. 数据模型的组成要素
🕘 3.1 数据结构
- 数据结构是指对实体模型和实体间联系的表达和实现。
描述的内容
- 与数据类型、内容、性质有关的对象
- 与数据之间联系有关的对象
数据结构是对系统静态特性的描述,通常按照数据结构的类型来命名数据模型
🕘 3.2 数据操作
- 定义:是指一组用于指定数据结构的任何有效实例执行的操作或推导规则,数据操作是对系统动态特性的描述
- 类型:查询、更新(包括插入、删除、修改)
🕘 3.3 数据的完整性约束条件
- 完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则。
- 用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。
❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页
🕒 4. 概念模型
🕘 4.1 用途与基本要求
概念模型的用途:
- 概念模型用于信息世界的建模
- 是现实世界到机器世界的一个中间层次
- 是数据库设计的有力工具
- 数据库设计人员和用户之间进行交流的语言
基本要求:
- 较强的语义表达能力
- 能够方便、直接地表达应用中的各种语义知识
- 简单、清晰、易于用户理解
🕘 4.2 基本概念
- 实体(Entity)
- 客观存在并可相互区别的事物称为实体。
- 可以是具体的人、事、物或抽象的概念。
- 实体特性(Entity Character)
- 实体所具有的特征或性质
- 一个实体可以由若干个特性来刻画
- 实体集(Entity Sets)
- 同一类型实体的集合称为实体集
- 实体标识符(Entity Identifier)
- 在实体集中唯一能确定实体集中某个实体的最小实体特性集称为实体标识符。
🕘 4.3 三个世界所用术语及其对应关系
现实世界 信息世界 计算机世界 实体集 实体记录集 表 实体 实体记录 记录 实体特征 属性 字段 实体标识符 标识属性 关键字 \begin{array}{|l|l|l|} \hline \color{Red} \text { 现实世界 } & \color{Red} \text { 信息世界 } & \color{Red} \text { 计算机世界 } \\ \hline \text { 实体集 } & \text { 实体记录集 } & \text { 表 } \\ \hline \text { 实体 } & \text { 实体记录 } & \text { 记录 } \\ \hline \text { 实体特征 } & \text { 属性 } & \text { 字段 } \\ \hline \text { 实体标识符 } & \text { 标识属性 } & \text { 关键字 } \\ \hline \end{array} 现实世界 实体集 实体 实体特征 实体标识符 信息世界 实体记录集 实体记录 属性 标识属性 计算机世界 表 记录 字段 关键字
🕘 4.4 联系(Relationship)
- 现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。
- 实体内部的联系通常是指组成实体的各属性之间的联系
- 实体之间的联系通常是指不同实体集之间的联系
🕤 4.4.1 两个实体型之间的联系
注:学生对班级,则为多对一,因为顺序不同
🕤 4.4.2 两个以上实体型之间的联系
🕤 4.4.3 单个实体型之间的联系
🕤 4.4.4 概念模型的一种表示方法(E-R图)
绘制步骤
第一步:通过对现实世界的分析、抽象,找出实体集及其属性;
第二步:找出实体集之间的联系;
第三步:找出实体集联系的属性
第四步:绘制E-R图。绘制E-R图一般先绘制局部E-R图,然后绘制全局E-R图。
一个例子
用E-R图表示某个工厂物资管理的概念模型
- 实体
仓库: 仓库号、面积、电话号码
零件 :零件号、名称、规格、单价、描述
供应商:供应商号、姓名、地址、电话号码、帐号
项目:项目号、预算、开工日期
职工:职工号、姓名、年龄、职称
实体之间的联系如下:
- (1)一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。
(2)一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,仓库和职工之间是一对多的联系。职工实体型中具有一对多的联系
(3)职工之间具有领导-被领导关系。即仓库主任领导若干保管员。
(4)供应商、项目和零件三者之间具有多对多的联系
🕒 5. 非关系模型
🕘 5.1 层次模型(Hierarchical Model)
- 数据库系统中最早出现的数据模型
- 层次数据库系统的典型代表是IBM公司的IMS(Information Management System)数据库管理系统
- 用树形结构来表示各类实体以及实体间的联系
- 用结点表示实体集,结点之间联系的基本方式是1:n
满足下面两个条件的基本层次联系的集合为层次模型
- 有且只有一个结点没有双亲结点,这个结点称为根结点
- 根以外的其它结点有且只有一个双亲结点
🕤 5.1.1 特点
- 结点的双亲是唯一的
- 只能直接处理一对多的实体联系
- 每个记录类型可以定义一个排序字段,也称为码字段
- 任何记录值只有按其路径查看时,才能显出它的全部意义
- 没有一个子女记录值能够脱离双亲记录值而独立存在
🕤 5.1.2 优缺点
- 优点:
- 层次模型的数据结构比较简单清晰
- 查询效率高,性能优于关系模型,不低于网状模型
- 层次数据模型提供了良好的完整性支持
- 缺点:
- 多对多联系表示不自然
- 对插入和删除操作的限制多,应用程序的编写比较复杂
- 查询子女结点必须通过双亲结点
- 由于结构严密,层次命令趋于程序化
🕘 5.2 网状模型(Network Model)
网状数据库系统采用网状模型作为数据的组织方式
满足下面两个条件的基本层次联系的集合:
- 允许一个以上的结点无双亲;
- 一个结点可以有多于一个的双亲。
多对多联系在网状模型中的表示:
方法:将多对多联系直接分解成一对多联系
例如:一个学生可以选修若干门课程,·某一课程可以被多个学生选修,学生与课程之间是多对多联系 ·
- 引进一个学生选课的联结记录,由3个数据项组成
学号
课程号
成绩
表示某个学生选修某一门课程及其成绩
🕤 5.2.1 优缺点
-
优点
能够更为直接地描述现实世界,如一个结点可以有多个双亲;
具有良好的性能,存取效率较高; -
缺点
结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握;
DDL、DML语言复杂,用户不容易使用;
🕒 6. 关系模型(重点)
关系数据库系统采用关系模型作为数据的组织方式
1970年美国IBM公司San Jose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型
计算机厂商新推出的数据库管理系统几乎都支持关系模型
在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
几个名词解释:
-
关系(Relation)
一个关系对应通常说的一张表 -
元组(Tuple)
表中的一行即为一个元组 -
属性(Attribute)
表中的一列即为一个属性,给每一个属性起一个名称即属性名 -
主码(Key)
表中的某个属性组,它可以唯一确定一个元组。 -
域(Domain)
属性的取值范围。 -
分量
元组中的一个属性值,不可再分。 -
关系模式
对关系的描述
关系名(属性1,属性2,…,属性n)
学生(学号,姓名,年龄,性别,系,年级)
E-R图例子
例如:我们以教学情况为例,进行E-R图设计。
假设某学校的学生选课数据库,有如下实体:
S: 学号,学生姓名,出生日期,专业,班级
T: 编号,教师姓名,职称,所在教研室
C: 课程号,课程名称,学时,考核方式
D: 院系代号,院系名称
第一步:首先找出相关实体集:学生(S) 教师(T) 课程(C) 院系(D)
规范化:
- 关系必须是规范化的,满足一定的规范条件
- 最基本的规范条件:关系的每一个分量必须是一个不可分的数据项,不允许表中还有表
- 图1.27中工资和扣除是可分的数据项,不符合关系模型要求
术语对比:
关系术语 一般表格的术语 关系名 表名 关系模式 表头(表格的描述) 关系 (一张)二维表 元组 记录或行 属性 列 属性名 列名 属性值 列值 分量 一条记录中的一个列值 非规范关系 表中有表(大表中嵌有小表) \begin{array}{|c|c|} \hline \color{Red} \text { 关系术语 } & \color{Red} \text { 一般表格的术语 } \\ \hline \text { 关系名 } & \text { 表名 } \\ \hline \text { 关系模式 } & \text { 表头(表格的描述) } \\ \hline \text { 关系 } & \text { (一张)二维表 } \\ \hline \text { 元组 } & \text { 记录或行 } \\ \hline \text { 属性 } & \text { 列 } \\ \hline \text { 属性名 } & \text { 列名 } \\ \hline \text { 属性值 } & \text { 列值 } \\ \hline \text { 分量 } & \text { 一条记录中的一个列值 } \\ \hline \text { 非规范关系 } & \text { 表中有表(大表中嵌有小表) } \\ \hline \end{array} 关系术语 关系名 关系模式 关系 元组 属性 属性名 属性值 分量 非规范关系 一般表格的术语 表名 表头(表格的描述) (一张)二维表 记录或行 列 列名 列值 一条记录中的一个列值 表中有表(大表中嵌有小表)
🕤 6.1.1 关系数据模型的操纵与完整性约束
-
数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合。
-
存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干”。
-
在关系数据库中,对数据库的查询和更新操作都归结为对关系的运算,关系运算按其表达查询方式的不同分为两大类:关系代数和关系演算。
-
关系的完整性约束条件
- 实体完整性
- 参照完整性
- 用户定义的完整性
🕤 6.1.2 存储结构
- 实体及实体间的联系都用二维表来表示
- 表以文件形式存储
- 有的DBMS一个表对应一个操作系统文件;
- 有的DBMS自己设计文件结构;
🕤 6.1.3 优缺点
- 优点
- 建立在严格的数学概念的基础上;
- 简单:实体和各类联系都用关系来表示;对数据的检索结果也是关系;
- 关系模型的存取路径对用户透明;具有更高的数据独立性,更好的安全保密性;简化了程序员的工作和数据库开发建立的工作
- 缺点
- 存取路径对用户透明导致查询效率往往不如非关系数据模型
- 为提高性能,必须对用户的查询请求进行优化,增加了开发DBMS的难度
层次和网状DBMS采用的过程性语言,而关系DBMS采用的非过程化语言
🕒 7. 面向对象数据模型
面向对象数据模型(Object-Oriented Data Model 简称OO数据模型)是面向对象程序设计方法与数据库技术相结合的产物。
在面向对象数据模型中最基本的概念是对象和类。
🕒 8. 课后习题
-
【判断题】在关系数据模型中,实体之间的联系是通过指针实现的( )。
-
【单选题】同一个关系模型的任两个元组值( )
A、不可能完全相同
B、可能全部相同
C、必须全部相同
D、以上都不是 -
【单选题】已知在某公司有多个部门,每个部门又有多名员工,而每位职工只能属于一个部门,则职工与部门两个记录型之间是( )。
A、一对一
B、一对多
C、多对多
D、多对一 -
【单选题】层次模型、网状模型和关系模型的划分原则是( )。
A、记录长度
B、文件的大小
C、联系的复杂程度
D、数据之间的联系 -
【判断题】关系模型是将数据之间的关系看成网状关系。( )
-
一个工厂可以生产若干产品,每种产品由不同的零件组成,有的零件可以用在不同的产品上。这些零件由不同的原材料制作,一种原材料可适用于多种零件的生产。工厂内有若干仓库存放零件和产品,但同一种零件或产品只能放在一个仓库内。请用E-R图画出此工厂产品、零件、材料和仓库的概念模型。
-
学校有若干个学院,每个学院有若干个班级和教研室。每个教研室有若干名教师,其中教授和副教授各带若干名研究生;每个班级有若干名学生,每个学生可以选修若干门课程,每门课可由有若干名学生选修,每个教师可以讲授多门课程,每门课程也可以由多个教师讲授。用E-R图画出该学校的概念模型。
注:本题中,不管哪种职称可抽象为教师,学生不管哪类学生可抽象为学生。
答案:1.× (解析:层次和网状是指针实现,关系不是)2.A 3.D 4.D(解析:三种模型的区别是它们用不同的方式表示数据之间的联系,层次模型用“树”,网状模型用“图”,关系模型用“二维表”) 5.×
6.第一步,经分析,本应用所涉及的实体及实体属性(可自由发挥)如下:
产品:产品编号、产品名称、产品特点
零件:零件编号、零件名称、零件材质
材料:材料编号、材料名称、材料特性
仓库:仓库编号、仓库名称、主管,位置
说明:本题要求的是画出四个实体的概念模型,故该部分其实可以省略,如果有的话,其属性也可以自由想象。
第二步,分析实体与实体之间的联系
(1)每种产品由不同的零件组成,有的零件可以用在不同的产品上,故产品跟零件是m:n的联系;
(2)一种零件由不同的原材料制作,一种原材料可适用于多种零件的生产,故零件跟材料之间是m:n的联系;
(3)工厂内有若干仓库存放零件和产品,但同一种零件或产品只能放在一个仓库内,故仓库跟零件和产品之间是1:m联系。
第三步,分析联系的属性
产品跟零件之间的组成联系有属性:零件数量
材料跟零件之间的制造联系有属性:材料数量
第四步,画出总体ER图
说明:仓库跟零件和产品之间的1:m:n联系,也可以分成两个1:m来描述。
7.第一步,首先分析出该学校管理系统的实体以及实体的属性:
学院:学院编号,学院名称,地点,联系方式
班级:班级编号,班级名称,入学年份,人数
教研室:教研室编号、教研室名称、人数、系主任
教师:工号,姓名,性别,家庭住址,职称
学生:学号,姓名,性别,籍贯
课程:课程编号,课程名称,学分,学时,先修课
第二步:分析实体与实体之间的联系
每个学院有若干个班级和教研室,所以学院与班级之间,学院与教研室之间都是1:m的联系;
每个教研室有若干名教师,故教研室跟教师之间有1:m的联系;
每个班级有若干名学生,所以班级跟学生之间是1:m的联系;
每个学生可以选修若干门课程,每门课可由有若干名学生选修,所以学生跟课程之间是m:n的联系;
教授和副教授各带若干名研究生,所以教师跟研究生之间是1:n的联系;
每个教师可以讲授多门课程,每门课程也可以由多个教师讲授,故教师和课程之间有m:n的联系。
第三步,分析联系的属性
学生跟课程之间的选修联系有属性:成绩
教师跟课程之间的教授联系有属性:讲授班级,上课时间,上课地点
第四步,画出总体ER图
OK,以上就是本期知识点“数据模型”的知识啦~~ ,感谢友友们的阅读。后续还会继续更新,欢迎持续关注哟📌~
💫如果有错误❌,欢迎批评指正呀👀~让我们一起相互进步🚀
🎉如果觉得收获满满,可以点点赞👍支持一下哟~
❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页
更多推荐
所有评论(0)