【图书介绍】《数据库原理与应用(MySQL 8版本)》-优快云博客
《数据库原理与应用(MySQL 8版本)(数据库技术丛书)》(邓立国,等)【摘要 书评 试读】- 京东图书
由于计算机不能直接处理现实世界中的具体事务,因此人们必须事先把要处理的事物特征进行抽象化,转换成计算机能够处理的数据。这个过程使用的工具就是数据模型。从客观世界到计算机世界,包括现实世界→信息世界→计算机世界的抽象过程,这个过程所对应的数据模型分别为概念模型、逻辑模型和物理模型。本节主要介绍数据模型的组成要素和3种不同抽象层次的数据模型(概念模型、逻辑模型和物理模型)等有关内容。
1.2.1 数据模型的组成要素
数据模型是对现实世界中某个对象的特征进行的模拟与抽象,是数据库系统的核心和基础。数据模型的严格定义是一组概念的集合。这些概念精确地描述了系统的静态特性、动态特性和完整性约束条件。因此,数据模型通常由数据结构、数据操作和完整性约束条件3部分 组成。
- 数据结构:是数据对象的集合。它描述数据对象的类型、内容、属性以及数据对象之间的关系,是对系统静态特性的描述。
- 数据操作:是数据库中数据能够执行的操作的集合,包括操作及有关的操作规则,主要有检索(查询)和更新(插入、删除和修改)两类操作,是对系统动态特性的描述。
- 数据完整性约束条件:是数据完整性规则的集合。它是对数据与数据之间的关系制约以及关系依存的规则,用以保证数据的完整性和一致性。
1.2.2 数据的概念模型
概念模型是现实世界到计算机世界的第一个中间层次,用于实现现实世界到信息世界的抽象化。它用符号记录现实世界的信息和联系,用规范化的数据库定义语言表示对现实世界的抽象化与描述,与具体的计算机系统无关。概念模型既是数据库设计人员对数据库进行设计的有力工具,也是数据库设计人员与用户交流的有力工具。概念模型涉及如下内容。
1. 概念模型中的基本概念
1)实体
客观世界存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。例如,一个学生、一个部门、一门课程、学生的一次选课、部门的一次订货、老师与院系之间的工作关系等都是实体。
2)属性
实体所具有的某一特性称为属性。一个实体可以由多个属性来刻画。例如,学生实体可以由学号、姓名、性别、出生年月、所在院系、入学时间等属性组成。这些属性组合起来表示一个学生的特征。
3)码
唯一标识实体的属性集合称为码。例如,学号是学生实体的码。
4)域
属性的取值范围称为该属性的域,它是具有相同数据类型的数据集合。例如,学号的域为8位整数,姓名域为字符串集合,性别域为{男,女}。
5)实体型
由于具有相同属性的实体必然具有共同的特征和性质,因此,用实体名及描述实体的各个属性名,就完全可以刻画出全部同质实体的共同特征和性质。我们把形式为“实体名(属性名1,属性名2,…,属性名n)”的表示形式称为实体型,用它刻画实体的共同特征和性质。例如,学生(学号,姓名,性别,年龄,所在院系,入学时间)就是一个实体型,而(20160016,李明,男,19,计算机,2016)是该实体型的一个值。
6)实体集
同一类型实体的集合称为实体集。例如,全体学生就是一个实体集。
7)联系
在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体型内部的联系和实体型之间的联系。实体型内部的联系通常指组成实体的各个属性之间的联系,实体型之间的联系通常指不同实体集之间的联系。
2. 概念模型中实体型之间的联系
1)两个实体型之间的联系
两个实体型之间的联系可以分为3种,即一对一联系、一对多联系和多对多联系。
- 一对一联系(1:1)
如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,就称实体集A、B中的实体型A与实体型B具有一对一联系,记为1:1。
例如,在学校的班级实体集和班长实体集中,一个班级只有一个正班长,一个班长只在一个班中任职,班级实体型与班长实体型是一对一的联系。
- 一对多联系(1:n)
如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系;反之,对于实体集B中的每一个实体,实体集A中至多有一个实体与之联系,就称实体型A与实体型B有一对多的联系,记为1: n。
例如,在班级实体集与学生实体集中,一个班级中有若干名学生,每个学生只在一个班级中学习,班级实体型与学生实体型之间就具有一对多的联系。
- 多对多联系(m:n)
如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系;反之,对于实体集B中的每一个实体,实体集A中有m个实体(m≥0)与之联系,就称实体型A与实体型B之间具有多对多的联系,记为m:n。
例如,在课程实体集和学生实体集中,一门课程同时有若干个学生选修,一个学生可以同时选修多门课程,课程实体型与学生实体型之间就具有多对多的联系。
2)两个以上实体型之间的联系
两个以上实体型之间也存在一对一、一对多和多对多的联系。
例如,有课程、教师和参考书3个实体集,如果一门课程可以由若干个教师讲授,使用若干本参考书,而每个教师只讲授一门课程,每一本参考书只供一门课程使用,则课程与教师、参考书之间的联系就是一对多的联系。
又如,有供应商、项目、零件3个实体集,如果一个供应商可以供应多个项目的多种零件,每个项目可以使用多个供应商供应的零件,每种零件可以由不同供应商提供,则供应商、项目和零件之间存在多对多的联系。
3)单个实体型内的联系
同一个实体集内的各个实体之间也可以存在一对一、一对多和多对多的联系。这属于实体型属性之间的联系。例如,职工实体集内部具有领导与被领导的联系,如果某一职工(干部)领导若干名职工,一个职工仅被另一个职工(干部)直接领导,这就是一对多的联系。
显然,一对一联系是一对多联系的特例,而一对多联系是多对多联系的特例。
3. 概念模型的E-R图表示方法
概念模型的表示方法有很多,其中最著名、最常用的是P.P.S.Chen于1976年提出的实体-联系方法(entity-relationship approach)。该方法用E-R图描述对现实世界进行抽象的概念模型,E-R方法也称为E-R模型。
E-R图提供了表示实体型、属性和联系的方法。在E-R图中,用矩形表示实体型,矩形内写明实体名称;用椭圆表示属性,并用无向边与相应的实体型相连;用菱形表示联系,菱形内写明联系名,并用无向边分别与有关实体型相连,同时在无向边旁标上联系的类型(1:1、1:n或m:n)。
用E-R图表示两个实体型之间的一对一、一对多和多对多的联系,如图1-5所示。
(a)1:1联系 (b)1:n联系 (c)m:n联系
图1-5 E-R图
E-R图也可以表示两个以上实体型以及单个实体型内的联系,如课程、教师和参考书3个实体型之间的一对多联系,供应商、项目、零件3个实体型之间多对多的联系以及职工实体型内部具有领导与被领导的一对多联系,分别如图1-6(a)、1-6(b)和图1-7所示。
用E-R图表示具有学号、姓名、性别、出生年月、所在院系和入学时间等属性的学生实体,如图1-8所示。
4. 一个用E-R图表示概念模型的具体实例
假设有一物质管理处,需要进行物质管理的对象有仓库、零件、供应商、项目和职工,它们是E-R模型中的实体,并具有如下属性:
(1)仓库的属性:包括仓库号、仓库面积、仓库电话号码。
(2)零件的属性:包括零件号、零件名称、零件规格、零件单价、零件描述。
(3)供应商的属性:包括供应商号、供应商姓名、供应商地址、供应商电话号码、供应商账号。
(4)项目的属性:包括项目号、项目预算、开工日期。
(5)职工的属性:包括职工号、职工姓名、职工年龄、职称。
这些实体之间的联系如下:
- 仓库和零件之间具有多对多的联系:因为一个仓库可以存放多种零件,同时一种零件也可以被存放在多个仓库中。现用库存量来表示某种零件在某个仓库中的数量。
- 仓库和职工之间具有一对多的联系:因为在实际工作中,一个仓库可能需要多名仓库管理员(职工),而一名仓库管理员(职工)只能在一个仓库工作。
- 职工实体型中领导与被领导的职工具有一对多的联系:在仓库管理员的职工实体型中,一个仓库只有一名主任,该主任领导若干名管理员,主任与管理员之间具有领导与被领导关系。因此,职工实体型中具有一对多的联系。
- 供应商、项目和零件三者之间具有多对多的联系:因为一个供应商可以为多个项目提供多种零件,每个项目可以使用不同供应商提供的零件,每种零件可由不同供应商供给。因此,供应商、项目和零件三者之间具有多对多的联系。
满足上述条件的实体及其属性图如图1-9(a)所示,实体及其联系图如图1-9(b)所示,物资管理的E-R图如图1-9(c)所示。
1.2.3 数据的逻辑模型
逻辑模型是信息世界到计算机世界的抽象。将信息世界中的概念模型进一步转换成便于计算机处理的数据模型,即为逻辑模型。逻辑模型主要用于DBMS的实现。目前比较成熟地应用在数据库系统中的逻辑模型有层次模型、网状模型和关系模型。它们之间的根本区别在于数据之间联系的表示方式不同(即记录型之间的联系方式不同)。层次模型以“树结构”表示数据之间的联系,网状模型以“图结构”表示数据之间的联系,关系模型用“二维表”(或称为关系)表示数据之间的联系。
1. 层次模型
层次模型是数据库中最早出现的数据模型,它将现实世界的实体之间抽象成一种自上而下的层次关系,用树形结构表示各类实体以及实体间的联系。层次模型的结构特点如下:
(1)有且只有一个节点没有双亲节点,这个节点称为根节点。
(2)根以外的其他节点有且只有一个双亲节点。
(3)上下层节点之间表示一对多的联系。
层次模型本身虽然只能表示一对多的联系,但多对多联系的概念模型可以通过冗余节点法和虚拟节点法分解为一对多的联系,然后使用层次模型来表示。
层次模型的优点是数据结构比较简单、清晰、提供良好的完整性支持,数据库查询效率高。但由于层次模型受文件系统的影响较大,模型受限很多,物理成分复杂,因此不适用于表示非层次性的联系。
2. 网状模型
网状模型是一种非层次模型,它去掉了层次模型的两个限制,与层次模型相比,可以更直接地描述现实世界。网状模型的结构特点如下:
(1)允许一个以上的节点没有双亲节点。
(2)一个节点可以有多个双亲节点。
(3)节点之间表示多对多的联系。
网状模型优于层次模型,具有良好的性能和高效率的存储方式。但其数据结构比较复杂,数据模式和系统实现均不理想。
3. 关系模型
关系模型是目前最重要的一种数据模型。从用户观点看,关系模型由一组关系组成,每个关系的数据结构是一张规范化的二维表。实体与实体之间的联系都用关系来表示。
关系模型的优点如下:
- 建立在严格的数学概念的基础上。
- 关系模型的概念单一,数据结构简单、清晰,用户易懂易用;
- 关系模型的存储路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,简化了程序员的工作和数据库开发建立的工作,但也因此使得查找效率不如层次模型和网状模型。
在此,我们仅对层次模型、网状模型和关系模型的数据结构进行简单的介绍,关于层次模型和网状模型的操作和完整性约束条件的内容可查阅其他参考文献。关系数据模型的详细内容将在本书的第2章介绍。
1.2.4 数据的物理模型
物理模型指逻辑模型在计算机中的存储结构。数据库中的数据存储由DBMS完成,它既存储数据,又存储数据之间的联系。层次模型通常采用邻接法和链接法来存储数据及数据之间的联系。网状模型通常采用链接法。关系模型实体与实体之间都用表表示。在关系数据库的物理组织中,有的DBMS中的一张表对应一个操作系统文件,有的DBMS从操作系统中获得若干个大的文件,自己设计表、索引等存储结构。