《数据库原理与应用(第3版)》——2.2 概念层数据模型

简介:

本节书摘来自华章出版社《数据库原理与应用(第3版)》一 书中的第2章,第2.2节,作者:何玉洁,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.2 概念层数据模型

从图2-1可以看出,概念层数据模型实际上是现实世界到机器世界的一个中间层,机器世界实现的最终目的是为了反映和描述现实世界。本节介绍概念层数据模型的基本概念及基本构建方法。

2.2.1 基本概念

概念层数据模型是指抽象现实系统中有应用价值的元素及其关联关系,反映现实系统中有应用价值的信息结构,并且不依赖于数据的组织层数据模型。
概念层数据模型用于对信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的工具,也是数据库设计人员和业务领域的用户之间进行交流的工具,因此,该模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识;另一方面还应该简单、清晰和易于被用户理解。因为概念模型设计的正确与否,即所设计的概念模型是否合理、是否正确地表达了现实世界的业务情况,是由业务人员来判定的。
概念层数据模型是面向用户、面向现实世界的数据模型,它与具体的DBMS无关。采用概念层数据模型,设计人员可以在数据库设计的开始把主要精力放在了解现实世界上,而把涉及DBMS的一些技术性问题推迟到后面去考虑。
常用的概念层数据模型有实体-联系(Entity-Relationship,E-R)模型、语义对象模型。本书只介绍实体-联系模型,这也是最常用的一种模型。

2.2.2 实体-联系模型

如果直接将现实世界数据按某种具体的组织模型进行组织,必须同时考虑很多因素,设计工作也比较复杂,并且效果并不一定理想,因此需要一种方法能够对现实世界的信息结构进行描述。事实上这方面已经有了一些方法,我们要介绍的是P.P.S.Chen于1976年提出的实体-联系方法,即通常所说的E-R方法。这种方法由于简单、实用,因此得到了广泛的应用,也是目前描述信息结构最常用的方法。
实体-联系方法使用的工具称为E-R图,它所描述的现实世界的信息结构称为企业模式(Enterprise Schema),也把这种描述结果称为E-R模型。
在实体-联系模型中主要涉及三方面内容:实体、属性和联系。
(1)实体
实体是具有公共性质并可相互区分的现实世界对象的集合,或者说是具有相同结构的对象的集合。实体是具体的,如职工、学生、教师、课程都是实体。
在E-R图中用矩形框表示具体的实体,把实体名写在框内,如图2-2a中的“经理”和“部门”实体。
实体中每个具体的记录值(一行数据),比如学生实体中的每个具体的学生,我们称之为实体的一个实例。(注意,有些书也将实体称为实体集或实体类型,而将每行具体的记录称为实体。)
(2)属性
每个实体都具有一定的特征或性质,这样我们才能根据实体的特征来区分一个个实例。属性就是描述实体或者联系的性质或特征的数据项,属于一个实体的所有实例都具有相同的性质。在E-R模型中,这些性质或特征就是属性。比如学生的学号、姓名、性别等都是学生实体具有的特征,这些特征就构成了学生实体的属性。实体应具有多少个属性是由用户对信息的需求决定的。例如,假设用户还需要学生的出生日期信息,则可以在学生实体中加一个“出生日期”属性。
在实体的属性中,将能够唯一标识实体的一个属性或最小的一组属性(称为属性集或属性组)称为实体的标识属性,这个属性或属性组也称为实体的键。例如,“学号”就是学生实体的键。
属性在E-R图中用圆角矩形表示,在圆角矩形框内写上属性的名字,并用连线将属性框与它所描述的实体联系起来,如图2-2c所示。

screenshot

(3)联系
在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界反映为实体内部的联系和实体之间的联系。实体内部的联系通常是指一个实体内部属性之间的联系,实体之间的联系通常是指不同实体属性之间的联系。比如在“职工”实体中,假设有职工号、职工姓名、所在部门和部门经理号等属性,其中“部门经理号”描述的是这个职工所在部门的经理的编号。一般来说,部门经理也属于单位的职工,而且通常与职工采用的是同一套职工编码方式,因此“部门经理号”与“职工号”之间有一种关联的关系,即“部门经理号”的取值在“职工号”取值范围内。这就是实体内部的联系。而“学生”和“系”之间就是实体之间的联系,“学生”是一个实体,假设该实体中有学号、姓名、性别、所在系等属性,“系”也是一个实体,假设该实体中包含系名、系联系电话,系办公地点等属性,则“学生”实体中的“所在系”与“系”实体中的“系名”之间存在一种关联关系,即“学生”实体中“所在系”属性的取值范围必须在“系”实体中“系名”属性的取值范围内,因为不可能招收不在学校已有系范围内的学生。因此像“系”和“学生”这种关联到两个不同实体的联系就是实体之间的联系。通常情况下我们遇到的联系大多都是实体之间的联系。
联系是数据之间的关联关系,是客观存在的应用语义链。在E-R图中联系用菱形框表示,框内写上联系名,并用连线将联系框与它所关联的实体连接起来,如图2-2c中的“选课”联系。
联系也可以有自己的属性,比如图2-2c所示的“选课”联系中有“成绩”属性。
两个实体之间的联系通常有如下三种类型。
1)一对一联系(1∶1)。如果实体A中的每个实例在实体B中至多有一个(也可以没有)实例与之关联,反之亦然,则称实体A与实体B具有一对一联系,记作1∶1。
例如,部门和经理(假设一个部门只允许有一个经理,一个人只允许担任一个部门的经理)、系和正系主任(假设一个系只允许有一个正主任,一个人只允许担任一个系的主任)都是一对一的联系,如图2-2a所示。
2)一对多联系(1∶n)。如果实体A中的每个实例在实体B中有n(n≥0)个实例与之关联,而实体B中的每个实例在实体A中最多只有一个实例与之关联,则称实体A与实体B是一对多联系,记作1∶n。
例如,假设一个部门有若干职工,而一个职工只允许在一个部门工作,则部门和职工之间就是一对多联系。又比如,假设一个系有多名教师,而一个教师只允许在一个系工作,则系和教师之间也是一对多联系,如图2-2b所示。
3)多对多联系(m∶n)。如果实体A中的每个实例在实体B中有n(n≥0)个实例与之关联,而实体B中的每个实例在实体A中也有m(m≥0)个实例与之关联,则称实体A与实体B是多对多联系,记为m∶n。
比如学生和课程,一个学生可以选修多门课程,一门课程也可以被多个学生选修,因此学生和课程之间是多对多的联系,如图2-2c所示。
实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。
注意:实体之间联系的种类是与语义直接相关的,也就是由客观实际情况决定的。例如,部门和经理,如果客观情况是一个部门只有一个经理,一个人只担任一个部门的经理,则部门和经理之间是一对一联系。但如果客观情况是一个部门可以有多个经理,而一个人只担任一个部门的经理,则部门和经理之间就是一对多联系。如果客观情况是一个部门可以有多个经理,而且一个人也可以担任多个部门的经理,则部门和经理之间就是多对多联系。
E-R图不仅能描述两个实体之间的联系,而且还能描述两个以上实体之间的联系。比如有顾客、商品、售货员三个实体,并且有语义:每个顾客可以从多个售货员那里购买商品,并且可以购买多种商品;每个售货员可以向多名顾客销售商品,并且可以销售多种商品;每种商品可由多个售货员销售,并且可以销售给多名顾客。描述顾客、商品和售货员之间的关联关系的E-R图如图2-3
所示,这里联系被命名为“销售”。
E-R图被广泛用于数据库设计的概念结构设计阶段。用E-R图表示的数据库概念设计结果非常直观,易于用户理解,而且所设计的E-R图与具体的数据组织方式无关,并且可以被直观地转换为关系数据库中的关系表。

相关文章
|
9月前
|
存储 机器学习/深度学习 搜索推荐
深入解析矢量数据库的数据模型与索引机制
【4月更文挑战第30天】本文深入探讨了矢量数据库的数据模型和索引机制。向量数据库以高维向量表示数据,采用稀疏或密集向量形式,并通过数据编码和组织优化存储与检索。索引机制包括基于树的(如KD-Tree和Ball Tree)、基于哈希的(LSH)和近似方法(PQ),加速相似性搜索。理解这些原理有助于利用矢量数据库处理大规模高维数据,应用于推荐系统、图像搜索等领域。随着技术发展,矢量数据库将扮演更重要角色。
|
5月前
|
前端开发 数据库 开发者
数据模型(数据库表设计)生成代码
BizWorks ToolKit 插件集成 Mybatis-Plus 代码生成工具,支持从数据库表批量生成代码,简化开发流程。本文详细介绍配置方法及项目示例,包括配置文件格式、生成选项及具体操作步骤,帮助开发者快速实现代码同步更新。配置文件 `.mp.yaml` 支持自定义输出目录、生成组件等,适用于多种项目结构。
66 0
|
6月前
|
API 数据库 开发者
【独家揭秘】Django ORM高手秘籍:如何玩转数据模型与数据库交互的艺术?
【8月更文挑战第31天】本文通过具体示例详细介绍了Django ORM的使用方法,包括数据模型设计与数据库操作的最佳实践。从创建应用和定义模型开始,逐步演示了查询、创建、更新和删除数据的全过程,并展示了关联查询与过滤的技巧,帮助开发者更高效地利用Django ORM构建和维护Web应用。通过这些基础概念和实践技巧,读者可以更好地掌握Django ORM,提升开发效率。
67 0
|
8月前
|
SQL 关系型数据库 MySQL
MySQL数据库数据模型概念入门及基础的SQL语句2024
MySQL数据库数据模型概念入门及基础的SQL语句2024
50 0
|
8月前
|
存储 监控 数据管理
数据库原理与应用——简答题练习(数据管理技术发展、数据库主要特征、数据模型、关系模型、实体性之间的关系、DBMS的功能、相关术语解释、数据库系统)
数据库原理与应用——简答题练习(数据管理技术发展、数据库主要特征、数据模型、关系模型、实体性之间的关系、DBMS的功能、相关术语解释、数据库系统)
102 0
|
8月前
|
SQL 关系型数据库 MySQL
MySQL数据库——概述-MySQL的安装、启动与停止和客户端连接、关系型数据库(RDBMS)、数据模型
MySQL数据库——概述-MySQL的安装、启动与停止和客户端连接、关系型数据库(RDBMS)、数据模型
76 0
|
9月前
|
存储 SQL 数据挖掘
数据模型概述与数据库基础
数据模型是描述现实世界数据对象结构的形式化、真实和易理解的表示。分为概念模型(信息模型)和数据模型,前者面向用户,后者关注计算机实现。数据库是结构化、共享、低冗余的数据集合,提供数据独立性。数据库管理系统(DBMS)负责数据的存储、访问和管理,而数据库系统(DBS)包括数据库、DBMS、应用系统、DBA和用户。数据库系统开发涉及需求分析、系统设计(概念设计、逻辑设计、物理设计)、系统实现和运行维护(数据更新、备份、分析等)。
75 0
|
9月前
|
SQL 关系型数据库 MySQL
【MySQL-1】理解关系型数据库&数据的数据模型
【MySQL-1】理解关系型数据库&数据的数据模型
|
存储 分布式计算 NoSQL
分布式数据库HBase的基本概念和架构之基本数据模型的Cell
HBase是一个分布式数据库系统,基于Google的Bigtable和Apache Hadoop的HDFS构建而成。它是一个分布式数据库的NoSQL数据库,主要用于存储和处理海量数据。HBase的核心特性包括高可用性、高性能和高伸缩性。在阿里云开发者社区中,我们将介绍HBase的基本概念和架构,以及它的基本数据模型Cell。
740 0
|
存储 分布式计算 NoSQL
分布式数据库HBase的基本概念和架构之基本数据模型的Row
HBase是一个分布式数据库系统,基于Google的Bigtable和Apache Hadoop的HDFS构建而成。
297 0

热门文章

最新文章