数据库系统中文版

Chapter 0 Preface

| 关于   «  0.1. 如何使用本系统   ::   目录   ::   1.1. ERD 和 RDD 有何关系?  »

0.2. 数据库概念导论

0.2.1. 使用本书的指南:

学习数据库课程有许多不同的方法。这里你只需要应用 $"READ$ $ONCE$ $VIEW$ $MANY"$ 方法即可。这是学习数据库概念最简单且最快的方法

对于数据库领域的新手。

由于作者信奉“一图胜千言”的原则,并且为了帮助初学者学习数据库概念并节省他们的时间,本书得到了

通过大量图片、表格、可视化图表和图示。

本书作者强烈推荐按照书中呈现的顺序学习,因为某些概念和可视化内容是其他内容的前提。

0.2.2. 数据库基本定义

DATA: 是事实和数字的集合,可以对其进行加工以产生信息(即,数据是信息的原材料)。每条数据都是一条单独的事实,单独来看意义不大。

信息 :是对数据片段的处理结果。“接收或给予的新闻或知识”。当你处理或组织事实(即数据)时,所得到的就是信息。

例如 ,如果我们有所有学生的成绩数据( 这是数据 ),那么我们可以推断出最高分和平均分( 这是信息 )。

_images/DataVsInfoEx.png

数据与信息之间的主要区别:

_images/DataVsInfo.png

DATABASE: 是相关数据的集合( 例如,"医院数据库"存储医生、患者、患者的诊断与治疗以及患者的账单 )。

_images/HospitalDB.png

数据库管理系统 (DBMS): 是用于存储、检索和运行数据查询的软件系统。

数据库管理系统(DBMS)作为最终用户与数据库之间的接口,允许用户在数据库中创建、读取、更新和删除数据。

DBMS 管理数据、数据库引擎和数据库模式,允许用户和其他程序对数据进行操作或提取。

这有助于提供数据安全、数据完整性、并发性和统一的数据管理程序。

DBMS 的类型:

  • 分布式数据库管理系统。

  • 层次数据库管理系统。

  • 网络数据库管理系统。

  • 面向对象数据库管理系统。

  • 关系数据库管理系统。( 本书主要关注此类型 )

关系型数据库管理系统 (RDBMS):因其用户友好的界面而成为最流行的数据模型。它基于对表格中行和列中的数据归一化。

当你需要一个可扩展、灵活且能够管理大量信息的数据存储系统时,这是一个可行的选项。

DBMS 示例:

_images/DBMSSoftwares.png

数据库应用:

"database application" 是 "database application program" 的缩写形式。

数据库应用 :是一种主要目的是从计算机化数据库中检索信息的计算机程序。从此处,可以插入、修改或删除信息,随后将这些信息回传至数据库。

数据库应用程序 应使用标准的关系数据库管理系统进行管理,与用户的接口由 DBMS 本身实现,或使用任何其他编程语言在嵌入式 DBMS 之上构建应用程序逻辑。

构建应用逻辑意味着 按顺序执行一组程序语句,该序列精确地模仿设计场景步骤以完成特定任务;在此执行过程中,程序代码可能通过查询多次访问数据库,如图 1 所示。

_images/studentusingcomputercalculatinghergpa2.png

上图说明了学生如何使用其学号通过后台步骤获取其 GPA 成绩。展示了根据大学 GPA 计算规则的应用逻辑执行顺序的步骤。

首先 ,学生输入其学号,然后系统使用该学号选择学生在各门课程的成绩,系统接着根据图中给出的表格应用逻辑算术运算来计算 GPA,最后将 GPA 返回给学生。此执行序列是一些访问数据库的 SQL 命令( 例如,使用其 ID 从数据库中选取学生成绩 )以及一些用于完成 GPA 计算并向用户呈现结果的逻辑与算术编程语句的组合( 例如,$"Grade points=credits*Grade"$ )。这是技术如何在程序代码中自动识别业务逻辑的真实生活示例。

因此,程序员和数据库设计人员可以在单一数据库之上构建大量应用程序,如下图所示。现代数据库应用程序支持来自多个用户的并发更新和查询。

_images/singleDatabaseSupportMultiApps.png

数据库应用程序示例

当今许多最广泛使用的计算机系统是数据库应用程序。下面给出一些示例。

  • 在线百科全书:(例如,维基百科)

  • 社交媒体网站:

我们所有人都利用在线媒体网站来与朋友联系并向世界传达我们的观点。每天,许多人使用他们的在线媒体账户,如 Twitter、Facebook 和 Google。DBMS 将所有用户数据存储在数据库中,因此他们能够相互连接。例如,Facebook 是建立在 MySQL 之上的。

  • 银行与信用卡交换系统:

  • 教育行业:(例如,大学和学校的数据库系统)

  • 电子邮件系统:(例如,Gmail)

  • 电子商务网站与在线购物:

如今,基于网络的购物已成为一种主要模式。人们无需光顾商店并浪费时间。每个人都需要通过基于网络的购物网站(例如,Amazon、spotify、Apple)从家中购物。因此,这些电子商务网站使用 DBMSs 来协助处理收货费用、分期付款以及购买所有售出或退回商品的独特数据。

Amazon.com 是一个非常成功的例子,它使用了 Oracle 关系数据库管理系统。

  • 铁路订票系统:

在铁路路线预订框架中,需要信息库来存储车票预约记录、列车到达状态以及航班信息。此外,如果列车晚点,个人会通过信息库更新获知该信息。

  • 图书馆管理系统:

图书馆中有大量的书籍,因此,以传统方式存储其相对数据记录效率不高,解决方案是利用数据库管理系统(DBMS)来保存所有书籍的数据,这些数据与书名、出版日期、书籍的可获取性以及作者相关联。

_images/DatabaseApplicationExamples.png

数据库系统环境: 是否包含 DBMS 软件以及数据本身和应用程序。

_images/DatabaseSystemComponents.png
_images/DatabaseSystemEnvironment.png

0.2.3. 数据库类型

0.2.3.1. 扁平文件:

_images/CSVFileExample2.png

0.2.3.2. 关系数据库:

在关系型数据库中,所有数据都存储在表中,这些表在物理上由行和列组成。数据库中的每个表必须存储有关特定事物的信息,例如员工、产品或客户。

注意:每个表不能存储关于不同事物(概念)的数据 。

下表比较了两种类型的数据库(平面文件与关系型数据库):

_images/FaltFileVsRElationalDatabase.png

下图展示了 在数据库中使用平面文件设计的困难和缺点,以及通过将其转换为关系设计来解决其问题的方法。

Settings

Proficient Saving... Error Saving
Server Error
Resubmit

扁平文件(即单表数据库)的缺点

  • 数据冗余

  • 复杂数据的問題

  • 批量更新问题(部门电话号码)

  • 添加不完整数据的问题(没有员工的新部门)

  • 删除一组数据的问题(从特定部门删除所有员工)

提示:关系数据库概念可以解决扁平文件设计中遇到的许多问题 。

0.2.4. 数据建模

0.2.4.1. 数据建模是什么?

  • 创建数据模型的过程。

  • 是一个用于定义和分析组织内相应信息系统范围内支持业务流程所需数据需求的过程。

  • 它涉及通过文本和符号的图表来表达数据和信息,以可视化相互关系。它需要对期望的业务结果有深入理解,并且是创建稳健软件解决方案的基础。因此,数据建模过程涉及专业数据库设计师和开发人员与信息系统的业务利益相关者及潜在用户紧密合作。

  • 数据建模有助于提高命名、规则、语义和安全方面的一致性,从而改善数据分析。因此,它创建数据模型,通过该模型描述数据关联和约束,并最终进行编码以重用。

  • 其重点在于数据可用性和组织性的需求,独立于其应用方式。

0.2.4.2. 数据模型定义:

  • 通过上述数据建模过程创建的模型。

  • 模型是对整个信息系统或其部分的信息可视化表示。其目标是阐明系统中使用的数据类型、存储的数据类型、这些数据项之间的关系、数据的分组和组织方式以及其格式和属性。

  • 数据模型为构建新数据库或将现有应用程序重新工程化为商业解决方案提供了蓝图。

  • 这些模型可以根据所使用的模型类型,在不同抽象级别上呈现数据。

0.2.4.3. 数据模型的类型

主要有三种不同类型的数据模型: 概念数据模型 、 逻辑数据模型 和 物理数据模型 ,每种都有特定的用途。

对这三种模型的一般理解是,业务分析师从业务角度使用概念模型和逻辑模型来对系统所需和产生的数据进行建模,而数据库设计师则细化早期设计以生成物理模型,用于呈现准备进行数据库构建的物理数据库结构。

概念数据模型: __________________________

该数据模型定义了系统包含 什么 。

概念数据模型仅包含存储信息所需的主要概念(实体)以及这些实体之间的关系,但不包含有关每条信息的任何详细信息。

在此模型中,实体被以高层方式指定,使用业务名称而非技术名称;这使得模型能够被管理层和用户理解,而不仅仅是技术人员。

概念模型被视为初始模型,其目的是在不涉及任何细节的情况下,组织、界定并定义业务概念和规则。

它通常由业务利益相关者和数据架构师创建。

重点在于以用户在“现实世界”中看到的方式来表示数据。

_images/conceptualuniversitymodel.png

逻辑数据模型: (实现模型) _______________________________________________

定义了无论使用何种数据库管理系统(DBMS)都应实施的 HOW 方式。

包含对已定义实体的低级描述,以及它们之间的相互关系和需要存储的数据类型。

该模型确定是否已收集业务的所有需求。逻辑数据模型描述数据,而不考虑它们如何在数据库中物理实现。

其目的是开发规则与数据结构的技術地圖。

该模型通常由数据库设计人员和业务分析师创建。

_images/Logicaluniversitymodel.png

物理数据模型 _______________________

描述系统如何实施以及 如何使用特定的 DBMS 系统存储数据 。

物理数据模型通常是从逻辑数据模型派生而来,并考虑所有特定技术的细节。

其目的是数据库的实际实现。

逻辑数据模型与物理数据模型之间的一个主要区别是使用表和列名,而不是实体和属性名。

该模型通常由数据库管理员 (DBA) 和开发人员创建。

_images/physicaluniversitymodel.png

下面的图表描述了通常包含在这三个模型中的不同功能:

_images/ModelsFeatures.png
_images/conLogPhyFinalComp.png

概念和逻辑数据模型可被视为与技术无关、面向业务的数据模型(逻辑模型更为详细),而物理数据模型则是为了实际实施而创建的

并创建一个数据库,从而考虑到技术特性(数据类型、命名约定和限制等)。

从一个单一的概念数据模型,我们期望获得一个更详细的逻辑数据模型,两者均旨在从业务角度表示所需的数据结构。从那个

逻辑数据模型,然后我们可以创建任意数量的物理数据模型,每个模型都针对特定的数据库引擎进行设计,如下图所示:

_images/logicalconceptualphysicalbusinessimportance.png

0.2.4.4. 数据模型使用示例

实体关系图 (ERD) (概念数据模型示例)

定义实体与其属性之间的关系。在示例中,ERD 包含多对多关系,且不包含外键

键。它们是隐含的。在实体关系图(ERD)中,我们只是可视化实体、它们的属性以及它们之间的关系。我们不关心它们在哪里

外键如何关联或如何实现多对多关系。(但我们确实强调主键!)

关系模型 (RDD) (逻辑数据模型示例)

我们指的是我们模型的一个实现。此时,我们应该明确属性的格式以及我们使用的外键,

以及我们可能需要用来拼接实体的链接表。关系模型基本上是一个可能的数据库实现模型。

简而言之 ,实体关系图(ERD)是我们数据库的抽象概念,它通过实体和属性进行描述,是一种概念数据模型。关系模型定义了格式和关系在

一种数据库能够理解的方式,即逻辑数据模型的一种。

“关系图”可能旨在展示此类数据的物理列和关系(就像在 Access 或任何其他 DBMS 中那样)

其中 ERD 在更高层次的抽象中仅对实体进行框选。

提示:实体关系图 (ERD) 和关系数据模型 (RDD) 将在下一章中更详细地讨论 。

0.2.4.5. 为何使用数据模型?

使用数据模型的主要目标是:

  • 确保数据库所需的所有数据对象(概念或实体)均得到准确表示。

  • 数据模型有助于在概念、物理和逻辑层面设计数据库。

  • 数据模型结构有助于定义关系表,包括主键、外键、关系以及其他任何约束。

  • 它提供了基础数据的清晰视图,数据库开发人员可以使用它来创建物理数据库。

  • 它有助于识别冗余和缺失的数据。

  • 数据的遗漏会导致生成有缺陷的报告并产生不正确的结果。

  • 尽管数据模型的初始创建既耗费人力又耗时,但从长远来看,它能使您的 IT 基础设施升级和维护更加快速且经济。 •

   «  0.1. 如何使用本系统   ::   目录   ::   1.1. ERD 和 RDD 有何关系?  »

关闭窗口