数据库---基本概念

一、常见术语

1.1数据

数据(Data)是数据库中存储的基本对象,数据不仅仅是指数字,还包括文本、图形、图像、音频、视频等,均可以称之为数据。

1.2数据库

数据库(DataBase,DB),顾名思义,就是存放数据的仓库。是长期存储在计算机中的有组织的、可共享的大量数据的集合。概括起来,数据库数据具有3个基本特点:永久存储、有组织、可共享。

1.3数据库管理系统

数据库管理系统(DataBase Management System,DBMS),是一个专门用于实现对数据进行管理和维护的系统软件。位于 用户应用程序和操作系统软件之间。其主要功能包含以下几个方面:
①数据库的建立与维护功能
②数据定义功能
③数据组织、存储和管理功能
④数据操作功能
⑤事务的管理和运行功能

1.4数据库系统

数据库系统(DataBase Sysetm,DBS),是指在计算机引入数据库后的系统,一般由数据库、数据库管理系统、应用程序、数据库管理员组成。
一般在不引起混淆的情况下,常常把数据库系统简称为数据库。
下图是数据库系统组成示意图:

1.5文件管理

将由开发人员定义存储数据的文件及文件结构,并借助文件管理系统的功能编写访问这些文件的应用程序,以实现对用户数据的处理的方式称为"文件管理"。
文件管理是较为早期的陈旧的管理方式,由以下缺点
①编写应用程序不方便
②数据冗余不可避免
③应用程序依赖性强,不易维护
④不支持对文件的并发访问
⑤数据间的关系弱
⑥难以满足不同用户对数据的需求
下图是早期的文件管理方式的示意图:

1.6数据库管理

随着大容量磁盘的出现,硬件价格的不断下降,软件价格的不断上升,编制和维护系统软件和应用程序的成本相应的不断的增加。在数据处理方式上,对联机实时处理的需求越来越多时,以文件方式管理数据已经远远不能满足应用的需求,于是出现了一种新的管理数据的方式---数据库技术。
与用文件管理数据相比,用数据库技术管理有以下优点
①相互关联的数据集合
②较少的数据冗余
③程序与数据独立
④保证数据安全、可靠
⑤最大限度的保证数据的完整性
⑥数据可以共享并能保证数据的一致性
下图是数据库管理方式的示意图:

二、数据模型

2.1数据信息

一般来说,数据库中的数据具有静态特征和动态特征两个方面。
静态特征。数据的静态特征包括数据的基本结构、数据间的联系以及对数据取值范围的约束。例如,学生管理的例子。学生基本信息包含学号、姓名、性别、出生日期、联系电话、所在系、专业、班号,这些都是学生具有的基本性质,是学生数据的基本结构。学生选课信息包括学号、课程号和考试成绩等,这些是学生选课的基本性质。但学生选课信息中的学号与学生基本信息中的学号是有一定关联的,即学生选课信息中的“学号”能取的值应在学生基本信息中的“学号”取值范围内,因为只有这样,学生选课信息中描述的学生选课情况才是有意义的(我们不会记录不存在的学生的选课情况),,这就是数据之间的联系。最后我们看数据取值范围的约束。我们知道人的性别的取值只能是“男”或“女”、课程的学分一般是大于0的整数值、学生的考试成绩一般在0~100分等,这些都是对某个列的数据取值范围进行的限制,目的是在数据库中存储正确的、有意义的数据。这就是对数据取值范围的约束。
动态特征。数据的动态特征是指对数据可以进行的操作以及操作规则。对数据库数据的操作主要有查询数据和更改数据,更改数据一般又包括插入、删除和更新。一般将对数据的静态特征和动态特征的描述称为数据模型三要素, 即在描述数据时要包括数据的基本结构数据的约束条件(这两个属于静态特征)和定义在数据上的操作(属于动态特征)三个方面。

2.2概念层数据模型

  概念层数据模型是指抽象现实系统中有应用价值的元素及其关联关系,反映现实系统中有应用价值的信息结构,并且不依赖于数据的组织层数据模型。
  概念层数据模型用于对信息世界进行建模,是现实世界到信息世界的第一层抽象, 是数据库设计人员进行数据库设计的工具,也是数据库设计人员和业务领域的用户之间进行交流的工具,因此,该模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识;另一方面还应该简单、清晰和易于被用户理解。因为概念模型设计的正确与否,即所设计的概念模型是否合理、是否正确地表达了现实世界的业务情况,是由业务人员来判定的。
  概念层数据模型是面向用户、面向现实世界的数据模型,与具体的DBMS无关。采用概念层数据模型,设计人员可以在数据库设计的开始把主要精力放在了解现实世界上,而把涉及DBMS的一些技术性问题推迟到后面去考虑。常用的概念层数据模型有实体-联系( Enty Reaiohip,E.R)模型、语义对象模型。本书只介绍实体联系模型,这也是最常使用的一种概念模型。
实体-联系模型
实体_联系模型中主要涉及实体、属性和联系三方面内容。
1.实体
实体是具有公共性质,并可相互区分的现实世界对象的集合,或者说是具有相同结构的对象的集合。实体是具体的,如职工、学生、教师、课程都是实体。在E-R图中用矩形框表示具体的实体,把实体名写在框内,实体中每个具体的记录值(一行数据),我们称为实体的一个实例,如学生实体中的每个具体的学生就是学生实体的一个实例。(注意,有些书也将实体称为实体集或实体类型,而将每行具体的记录称为实体。)
2.属性
每个实体都具有一定的特征或性质,这样我们才能根据实体的特征来区分一个个实例。属性例是描述实体或者联系的性质或特征的数据项,属于一个实体的所有实例都具有相同的性质。在E-R模型中,这些性质或特征就是属性。例如,学生的学号、姓名、性别等都是学生实体具有的特征,这些特征构成了学生实体的属性。实体应具有多少个属性是由用户对信息的需求决定的。例如,假设用户还需要学生的出生日期信息,则可以在学生实体中加一个“出生日期”属性。在实体的属性中,将能够唯一标识实体的一个属性或最小的一组属性(称为属性集或属性组) 称为实体的标识属性,这个属性或属性组也称为实体的码。例如,“学号”就是学生实体的码。属性在E-R图中用圆角矩形表示,在圆角矩形框内写上属性的名字,并用连线将属性框与它 所描述的实体联系起来。
3.联系
在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界反映为实体内部的联系和实体之间的联系。实体内部的联系通常是指一个实体内部属性之间的联系,实体之间的联系通常是指不同实体属性之间的联系。
4.两个实体之间的联系通常有如下三类:
①一对一联系(1:1)
②一对多联系(1:n)
③多对多联系(m,n)
请看下方的E-R模型图:

2.3组织层数据模型

  组织层数据模型是从数据的组织形式的角度来描述信息。目前,在数据库技术的发展过程中 用到的组织层数据模型主要有层次模型( Hierarchical Model)、网状模型( Network Model)、关系模型( Relational Model )。组织层数据模型是按组织数据的逻辑结构命名的,如层次模型采用树形结构。而且各数子据库管理系统也是按其采用的组织层数据模型来分类的,如层次数据库管理系统按层次模型组织数据,而网状数据库管理系统按网状模型组织数据。
  关系模型从20世纪70~80年 代开始到现在已经发展得非常成熟,工作中常用的也是关系模型。20 世纪80年代以来,计算机厂商推出的数据库管理系统几乎都支持关系模型,非关系系统的产品也大都加上了关系接口。一般将层次模型和网状模型统称为非关系模型。非关系模型的数据库管理系统在20世纪70年代至80年代初非常流行,在数据库管理系统的产品中占主导地位,但现在已逐步被采用关系模型的数据库管理系统所取代。
2.3.1层次数据模型
层次数据模型(简称层次模型)是数据库管理系统中最早出现的数据模型。层次数据库管理系统采用层次模型作为数据的组织方式。
层次数据模型用树形结构表示实体和实体之间的联系。现实世界中许多实体之间的联系本身就呈现出一种自然的层次关系,如行政机构、家族关系等。
构成层次模型的树由节点和连线组成,节点表示实体,节点中的项表示实体的属性,连线表示相连的两个实体间的联系,这种联系是一对多的。通常把表示“一”的实体放在上方,称为父节点;把表示“多”的实体放在下方,称为子节点。将不包含任何子节点的节点称为叶节点。
层次模型可以直接、方便地表示一对多的联系,但在层次模型中有以下两点限制
(1)有且仅有一个节点无父节点,这个节点即为树的根。
(2)其他节点有且仅有一一个父节点。
层次模型的一-个基本特点是:任何一个给定的记录值只有从层次模型的根部开始按路径查看时,才能明确其含义,任何子节点都不能脱离父节点而存在。
请看下方给出的层次模型图:

2.3.2网状数据模型
在现实世界中,事物之间的联系更多的是非层次的,用层次数据模型表达现实世界中存在的联系有很多限制。如果去掉层次模型中的两点限制,即允许一个以上的节点无父节点,并且每个节点可以有多个父节点,便构成了网状模型。用留形结构表示实体和实体之间的联系的数据模型称为两状数据模型,简称网状模型。在网状模型中,同样使用父节点和子节点这样的术语,并且同样般把父节点放置在子节点的上方。由于网状数据模型没有层次数据模型的两点限制,因此可以直接表示多对多联系。但在网状 模型中,多对多联系实现起来太复杂,因此,一些 支持网状模型的数据库管理系统对多对多联系 进行了限制。
网状模型和层次模型本质上是一样的,从逻辑上看,它们都是用连线表示实体之间的联系,用节点表示实体;从物理上看,层次模型和网状模型都是用指针来实现文件以及记录之间的联系,其差别仅在于网状模型中的连线或指针更复杂、更纵横交错,从而使数据结构更复杂
请看下方给出的网状模型图:

2.3.3关系数据模型
关系数据模型是目前最重要的一种数据模型,关系数据库是采用关系数据模型作为数据的组织方式。关系数据模型源于数学,它把数据看成是二维表中的元素,而这个二维表在关系数据库中就称为关系。
关系(表格数据)表示实体和实体之间的联系的模型称为关系数据模型。在关系数据模型中,实体本身以及实体和实体之间的联系都用关系来表示,实体之间的联系不再通过指针来实现。
对于用户来说,关系的操作应该很简单,但关系数据库管理系统本身是很复杂的。关系操作之所以对用户很简单,是因为它把大量的工作交给了数据库管理系统来实现。尽管在层次数据库掂和网状数据库诞生时就有了关系模型数据库的设想,但研制和开发关系数据库管理系统却花费了所比人们想象的要长得多的时间。关系数据库管理系统真正成为商品并投人使用要比层次数据库和本 网状数据库晚十几年。但关系数据库管理系统一经投入使用, 便显示出了强大的活力和生命力,结并逐步取代了层次数据库和网状数据库。关系数据模型易于设计、实现、维护和使用,它与层次数据模型和网状数据模型的最根本区描别是,关系数据模型采用非导航式的数据访向方式,数据结构的变化不会影响对数据的访问
请看下方给出的关系数据模型图:

2.4面向对象数据模型

  面向对象数据模型是捕获在面向对象程序设计中所支持的对象语义的逻辑数据模型,它是持久的和共享的对象集合,具有模拟整个解决方案的能力。面向对象数据模型把实体表示为类,一个类描述了对象属性和实体行为。例如,一个“学生”类不仅仅有学生的属性,如学号、姓名和性别等,还包含模仿学生行为(如选修课程)的方法。类-对象的实例对应于学生个体。在对象内部,类的属性用特殊值来区分每个学生(对象),但所有对象都属于类,共享类的行为模式。面向 对象数据库通过逻辑包含( logical containment )来维护联系。
  面向对象数据库基于把数据和与对象相关的代码封装成单一组件, 外面不能看到其里面的内容。因此,面向对象数据模型强调对象(由数据和代码组成),而不是单独的数据。这主要是从面向对象程序设计语言继承过来的。在面向对象程序设计语言里,程序员可以定义包含它们自己的内部结构、特征和行为的新类型或对象类。这样,不能认为数据是独立存在的,而是与代码(成员函数的方法)相关,代码(code)定义了对象能做什么(它们的行为或有用的服务)。面向对象数据模型的结构非常容易变化。与传统的数据库(如层次、网状或关系)不同,对象模型没有单一固定的数据库结构。编程人员可以给类或对象类型定义任何有用的结构,如链接列表、集合、数组等。此外,对象可以包含可变的复杂度,利用多重类型和多重结构。

三、数据库结构

数据库系统的三级模式由外模式、模式、内模式组成。三者共同构建了数据库的完整结构。

3.1外模式

外模式,亦称子模式或者用户模式(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
作用:保证了数据库的安全性和完整性。每个用户只能看见和访问所对应的外模式中的数据,数中的安全性和完整性。每个用户且只能看见和访问所对应的外模式中的数据,数据库中的其余数据他们是看不到的(安全性)。
ps:一个外模式可以被多个应用程序所使用,但一个应用程序只能使用一个外模式

3.2模式

模式,亦称逻辑模式或者概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。(个人认为“模式”更像是一个动作,是在你定义这个表时候添加的一些列、约束等的动作)。
一个数据库只有一个概念模式。既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序、开发工具以及高级程序设计语言无关。
作用:定义了数据的逻辑结构(如表、列、数据类型、约束等),以及数据之间的关联关系。

3.3内模式

内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。当然数据库管理系统在物理存储方面有很大的灵活性(你想把数据存硬盘可以,存u盘都行),当数据存储的介质或存取方式发生变化的时候,只用改变内模式,而不影响概念模式(你把数据从硬盘拷贝到u盘,并不会改变表的结构,有几个表,表里有几列都不会变)和外模式(电脑上玩原神,在手机上打开,并不会因为数据存储的位置发生变化,而导致等级降低)。
作用:内模式它可以给出数据库的物理存储结构,其中包括存储记录的类型、索引和文件的物理结构,以及数据是否压缩、加密等。

举例子来实际讲解以下三级模式:为学校设计一个数据库系统。系统中记录学生的信息、课程的信息以及学生和课程之间的关联关系。
①外模式
对于学校的教务管理部门,他们主要关心学生的基本信息、课程信息以及学生的选课情况。因此,我们可以为他们设计一个外模式,其中包含学生表(包含学生ID、姓名、年龄等字段)、课程表(包含课程ID、课程名称、授课教师等字段)以及选课表(包含学生ID、课程ID、成绩等字段)。这样,教务管理部门就可以通过这个外模式来查询、更新和管理学生、课程以及选课的相关信息。
对于学校的教师,他们可能更关心自己所教授的课程以及选课的学生情况。因此,我们可以为教师设计一个不同的外模式,其中主要包含课程表以及选课表的相关字段。这样,教师可以方便地查看自己所教授的课程信息以及学生的选课和成绩情况。
②模式
模式是整个数据库的逻辑结构,它描述了数据的整体组织和关系。在这个例子中,模式可能包含三个主要的实体:学生、课程和选课。每个实体都有相应的属性,如学生的姓名、年龄,课程的名称、教师,以及选课的学生ID、课程ID和成绩。这些实体之间通过关系(如选课关系)相互连接。模式还定义了数据的完整性约束,如主键约束、外键约束等,以确保数据的准确性和一致性。
③内模式
内模式描述了数据在物理存储介质上的组织和存储方式。它关心的是数据的存储结构、索引方式、数据的压缩和加密等。例如,在这个例子中,我们可能会选择使用关系型数据库管理系统(如MySQL)来存储数据。在物理存储上,学生表、课程表和选课表可能会被存储为不同的文件或表空间,每个表中的数据按照特定的行格式进行存储。为了提高查询效率,我们可能还会为某些字段建立索引

3.4模式映像

①外模式/模式映像
模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对应于同一个模式,可以有多个外模式。对于每个外模式,数据库管理系统都有一个外模式到模式的映像,它定义了该外模式与模式之间的对应关系,即如何从外模式找到其对应的模式。这些映像定义通常包含在各自的外模式描述中。当模式改变时(如增加新的关系、新的属性、改变属性的数据类型等),可由数据库管理员用外模式定义语句,调整外模式到模式的映像,从而保持外模式不变。由于应用程序般是依据数据的外模式编写的,因此也不必修改应用程序,从而保证了程序与数据的逻辑独立性。
②模式/内模式映像
模式/内模式映像定义了数据库的逻辑结构与物理存储之间的对应关系,该映像关系通常被保存在数据库的系统表(由数据库管理系统自动创建和维护,用于存放维护系统正常运行的表)中。当数据库的物理存储改变了,如选择了另一个存储位置,只需要对模式/内模式映像做出相应的调整,就可以保持模式不变,不必改变应用程序。因此保证了数据与程序的物理独立性。
映像的作用:正是这两层映射保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性,使得数据的定义和描述可以从应用程序中分离出去,从而简化了数据库应用程序的开发,也减少了维护应用程序的工作量。

四、其他问题答疑

问题1:一个联系可以关联2个实体,还可以关联更多的实体吗?
回答:可以,一个联系可以关联多个实体,最少2个。
问题2:映像是由什么实现的?
回答:外模式到模式的映像是由应用程序实现的,模式到内模式的映像是由DBMS实现的
问题3:外模式是模式的子集吗?
回答:是,可以看作是。

posted @ 2024-04-02 00:12  excellent_1  阅读(40)  评论(0编辑  收藏  举报