当前位置:网站首页>数据库系统原理与应用教程(009)—— 概念模型与数据模型
数据库系统原理与应用教程(009)—— 概念模型与数据模型
2022-07-07 10:09:00 【睿思达DBA_WGX】
数据库系统原理与应用教程(009)—— 概念模型与数据模型
目录
创建数据库的步骤为:(1)根据现实世界进行系统需求分析;(2)使用概念模型真实、全面地描述现实世界中的管理对象及其联系;(3)将概念模型转换为某种DBMS支持的数据模型。
创建数据库的这三个步骤分别对应信息的三种世界,即:现实世界,信息世界和数据世界。如下图所示。
一、信息的现实世界
信息的现实世界是我们所管理的各种事物以及事物之间的联系。信息的现实世界通过实体、实体集及实体集之间的联系来表示。
1、实体
现实世界中存在的可以相互区分的事物或概念称为实体。实体可分为事物实体和概念实体。例如:一个学生、一台机器、一间教室、一本书等是事物实体。一门课、一个班级等是概念实体。
2、实体的特征
每个实体都有自己的特征,利用实体的特征可以区分不同的实体。例如:学生可以通过学号、姓名、性别、年龄、出生日期、身高、体重等特征来加以描述。
一个实体有非常多的特征,但在创建数据库时我们会根据管理的需求来决定保存哪些特征。对于一个单位的职工来讲,如果是基于人事管理,可以选择工号、姓名、出生日期、职务、工资等特征加以描述。而如果基于职工的健康管理,可以选择工号、姓名、出生日期、身高、体重、血压等特征加以描述。
3、实体集
具有相同特征或能使用相同特征描述的实体的集合称为实体集。例如:一个学生是实体,需要管理的所有学生就是实体集。一个班级是实体,需要管理的所有班级就是实体集。
4、实体集之间的联系
现实世界中的实体集不是孤立的,实体集之间存在各种各样的联系。实体集之间的联系是指不同实体集中的实体之间的对应关系。例如:班级和学生之间存在隶属关系,学生和课程之间存在选课关系,教师和课程之间存在讲授关系等。两个实体集之间存在以下三种联系:
(1)一对一联系(1:1)
有两个实体集A和B,如果实体集A与实体集B之间具有一对一联系,则对于实体集A中的每一个实体,实体集B中最多有一个实体(也可以没有)与之联系;反之,对于实体集B中的每一个实体,实体集A也最多有一个实体与之联系。实体集A与实体集B之间的联系表示为1:1,例如:学校和校长具有一对一联系,一个学校只能有一个校长,反之,一个校长也只能在一个学校中任校长。实体集之间的一对一联系如下图所示。
(2)一对多联系(1:n)
有两个实体集A和B,如果实体集A与实体集B之间具有一对多联系,则对于实体集A中的每一个实体,实体集B中有一个或多个实体与之联系;反之,对于实体集B中的每一个实体,实体集A最多有一个实体与之联系。实体集A与实体集B之间的联系表示为1:n,例如:班级和学生具有一对多联系,一个班级可以有多个学生,反之,一个学生只能在一个班级中学习。实体集之间的一对多联系如下图所示。
(3)多对多联系(m:n)
有两个实体集A和B,如果实体集A与实体集B之间具有多对多联系,则对于实体集A中的每一个实体,实体集B中有一个或多个实体与之联系;反之,对于实体集B中的每一个实体,实体集A也有一个或多个实体与之联系。实体集A与实体集B之间的联系表示为m:n,例如:学生和课程具有多对多联系,一个学生可以选修多门课程,反之,一门课程可有由多个学生选修。实体集之间的多对多联系如下图所示。
二、信息世界及概念模型
信息世界就是对现实世界的描述。在信息世界中,实体的特征称为属性,实体通过属性表示称为实例,同类实例的集合称为对象,实体集之间的联系用对象联系表示。
信息世界通过概念模型(也称为信息模型)、过程模型和状态模型反映现实世界。概念模型通过E-R图中的对象、属性和联系对现实世界中的事物及联系给出静态描述。过程模型通过信息流程图和数据字典描述事物的处理方法和信息加工过程。状态模型通过事物状态转换图对事物做出动态描述。
数据库主要根据概念模型设计,数据处理方法主要根据过程模型设计,状态模型对数据库的系统功能设计有重要的参考价值。
1、概念模型
(1)实例和对象
实体通过属性表示称为实例,同类实例的集合称为对象。
(2)属性
属性是实体的某个特征的抽象表示。如学生的姓名,性别,年龄就是学生的属性,其中有一个学生姓名为李明,性别为男,年龄为20,则李明、男、20称为属性值。
(3)域
属性的取值范围称为属性的域。例如:职工的年龄范围18—60就是年龄的域。
(4)码、主码、候选码
能够唯一标识一个实体的属性或属性组称为码(key)。例如:学号是学生实体的码,因为学号可以唯一标识学生实体。如果一个实体有多个码,通常把其中的一个码作为主码(primary key),则其余的码称为候选码(candidate key)。
2、概念模型的表示方法
可以使用 E-R 图(实体-联系图)表示概念模型。E-R 图也称为 E-R 模型,提供了表示实体集、属性和联系的方法。
(1)实体集的表示-
E-R 图使用矩形表示实体集,矩形内写上实体集的名称,如下图所示。
(2)属性的表示
E-R 图使用椭圆表示实体集的属性,并且用线段将其与相应的实体集连接起来,如下图所示。
由于实体集的属性比较多,有些实体可能有几十个甚至上百个属性,所以在 E-R 图中,实体集的属性可以不画出来,使用数据字典(文字)的方式表示。
(3)联系的表示
E-R 图使用菱形表示实体集之间的联系,菱形内写上联系的名称,并且用线段与有关的实体集连接起来,同时在线段的旁边标出联系的类型。
联系也可能有属性,如果联系具有属性,需要用线段将属性和联系连接起来。联系的属性必须在 E-R 图上标出,不能通过数据字典表示。下图中的属性【分数】就是联系【选修】的属性。
三、信息的数据世界及数据模型
信息世界的信息,经过处理形成计算机能够处理的数据,就是计算机世界,也称为数据世界。数据世界涉及到的相关概念如下:
1、数据项
数据项是对象属性的数据表示。数据项有型和值之分,数据项的型是对数据项特性的表示,包括数据项的名称、数据类型、数据长度和域等。数据项的值是其具体取值。如学生的姓名,数据项的型可以表示为:姓名,字符型,长度20。某一个学生姓名数据项的取值为张涛。
2、记录
记录是实例的数据表示。记录有型和值之分,记录的型是记录的结构,由数据项的型构成。记录的值表示对象中的一个实例,记录的分量是数据项的值。例如:【姓名,性别,年龄,电话,所在系】是学生数据的记录的型,【张涛,男,20,13783587788,经济系】是某一个学生记录的值,表示学生对象的一个实例。而记录的值中的【张涛】、【男】、【20】、【13783587788】、【经济系】都是数据项的值。
3、文件
文件是对象的数据表示,是同类记录的集合。同一个文件中的记录类型应该相同。例如:根据所有学生的信息创建一个数据文件,则每条记录的型都是相同的。
4、数据模型
数据模型是数据特征的抽象,数据模型用于表示记录结构以及记录的联系。最常见的数据包括层次模型、网状模型和关系模型。层次模型和网状模型称为非关系模型。
(1)数据模型的三要素
数据模型具有数据结构、数据操作和完整性约束条件三要素:
A)数据结构:数据在数据库中以什么样的结构加以保存。层次结构、网状结构和关系(表)结构的数据模型分别命名为层次模型、网状模型和关系模型。
B)数据操作:数据库中可以进行的数据操作主要有数据查询和数据更新(插入、删除和修改),简称增、删、改、查。
C)数据约束条件:数据约束条件是一组数据完整性规则的集合。数据完整性规则是数据模型中的数据及其联系所具有的制约和依存规则。例如:关系数据模型中的实体完整性、参照完整性和用户自定义完整性。数据约束条件用于保证数据库中数据的正确、有效和相容。
(2)层次模型
层次模型的采用层次结构(树状结构)表示各类实体以及实体之间的联系,层次数据库系统的典型代表为 IBM 公司的 IMS 数据库管理系统。
(3)网状模型
网状模型的采用网状结构表示各类实体以及实体之间的联系,网状数据库系统的典型代表是 DBTG 系统。
(4)关系模型
关系模型是最常用的数据模型。关系模型使用表(table)表示各类实体以及实体之间的联系。
① 关系的相关概念
A)关系:一个关系对应一张二维表。
B)元组:关系中的一行称为一个元组。有的数据库管理系统称为记录(record)。
C)属性:关系中的一列称为一个属性。有的数据库管理系统称为列(column)或字段(field)。
D)码:关系中的某个属性或属性组,它们的取值能够唯一标识一个元组,这样的属性或属性组称为关系的码。
E)域:属性的取值范围称为域。
F)分量:元组中的一个属性的值称为分量。
G)关系模式:关系模式是对关系的描述。关系模式的表示形式如下:
关系名(属性1,属性2,……,属性n)
例如:学生关系可以表示为
学生(学号,姓名,性别,出生日期,民族,政治面貌,电话,所在系)
② 关系操作:关系操作主要包括数据查询和插入、删除、修改数据。
③ 关系的完整性约束条件:实体完整性、参照完整性、用户自定义完整性。
(5)关系模型和非关系模型的比较
A)关系数据模型建立在严格的数学基础之上。
B)关系数据模型概念单一,容易理解。在关系数据库中,实体和实体之间的联系都是用关系表示的。
C)关系数据模型的存取路径对用户隐蔽。用户根据数据库的逻辑模式和子模式操作数据,而不用关心数据库的物理模式和数据库在计算机中的存储情况。
D)关系数据模型中的数据联系是通过数据冗余(外码)实现的。
四、信息的三种世界之间的联系
信息的现实世界、信息世界和数据世界的关系可以用下表来表示:
现实世界 | 信息世界 | 数据世界 |
---|---|---|
实体 | 实例 | 记录 |
特征 | 属性 | 数据项 |
实体集 | 对象 | 文件 |
实体集之间的联系 | 对象之间的联系 | 数据之间的联系 |
概念模型 | 数据模型 |
信息的三种世界之间的转换关系如下图所示。
边栏推荐
- STM32F1与STM32CubeIDE编程实例-MAX7219驱动8位7段数码管(基于SPI)
- Sonar:cognitive complexity
- Visual Studio 2019 (LocalDB)\MSSQLLocalDB SQL Server 2014 数据库版本为852无法打开,此服务器支持782版及更低版本
- STM32F1与STM32CubeIDE编程实例-315M超再生无线遥控模块驱动
- [neural network] convolutional neural network CNN [including Matlab source code 1932]
- Common locking table processing methods in Oracle
- CMU15445 (Fall 2019) 之 Project#2 - Hash Table 详解
- 【紋理特征提取】基於matlab局部二值模式LBP圖像紋理特征提取【含Matlab源碼 1931期】
- Basic introduction to the 16 tabs tab control in the fleet tutorial (the tutorial includes source code)
- NPC Jincang was invited to participate in the "aerospace 706" I have an appointment with aerospace computer "national Partner Conference
猜你喜欢
Visual Studio 2019 (LocalDB)\MSSQLLocalDB SQL Server 2014 数据库版本为852无法打开,此服务器支持782版及更低版本
zero-shot, one-shot和few-shot
从工具升级为解决方案,有赞的新站位指向新价值
STM32F1与STM32CubeIDE编程实例-315M超再生无线遥控模块驱动
SwiftUI 教程之如何在 2 秒内实现自动滚动功能
2022 年第八届“认证杯”中国高校风险管理与控制能力挑战赛
Nuclear boat (I): when "male mothers" come into reality, can the biotechnology revolution liberate women?
Camera calibration (2): summary of monocular camera calibration
[filter tracking] strapdown inertial navigation simulation based on MATLAB [including Matlab source code 1935]
Solve the problem that vscode can only open two tabs
随机推荐
What are the top-level domain names? How is it classified?
从工具升级为解决方案,有赞的新站位指向新价值
超标量处理器设计 姚永斌 第10章 指令提交 摘录
《通信软件开发与应用》课程结业报告
【全栈计划 —— 编程语言之C#】基础入门知识一文懂
Superscalar processor design yaoyongbin Chapter 10 instruction submission excerpt
源代码防泄密中的技术区别再哪里
Half of the people don't know the difference between for and foreach???
When sink is consumed in mysql, the self incrementing primary key has been set in the database table. How to operate in Flink?
wallys/Qualcomm IPQ8072A networking SBC supports dual 10GbE, WiFi 6
[extraction des caractéristiques de texture] extraction des caractéristiques de texture de l'image LBP basée sur le mode binaire local de Matlab [y compris le code source de Matlab 1931]
Stm32f1 and stm32subeide programming example -max7219 drives 8-bit 7-segment nixie tube (based on SPI)
【滤波跟踪】基于matlab扩展卡尔曼滤波EKF和无迹卡尔曼滤波UKF比较【含Matlab源码 1933期】
[filter tracking] strapdown inertial navigation pure inertial navigation solution matlab implementation
108.网络安全渗透测试—[权限提升篇6]—[Windows内核溢出提权]
[shortest circuit] acwing 1127 Sweet butter (heap optimized dijsktra or SPFA)
110.网络安全渗透测试—[权限提升篇8]—[Windows SqlServer xp_cmdshell存储过程提权]
人大金仓受邀参加《航天七〇六“我与航天电脑有约”全国合作伙伴大会》
Some opinions and code implementation of Siou loss: more powerful learning for bounding box regression zhora gevorgyan
【神经网络】卷积神经网络CNN【含Matlab源码 1932期】