数据库知识整理 - 绪论

版权声明: https://blog.csdn.net/Ha1f_Awake/article/details/83834736

“数据库”这种东西一点都不酷,庞大而且繁杂,具备高级劝退属性——第一次接触它的时候有这种想法一点都不奇怪,但在我们认识它,熟悉它并且使用它之后,就会发现这东西很酷,它可以帮助我们更好地整理大量复杂的数据信息。虽然数据库里的东西多而杂,但东西的摆放并不杂乱。

看到“数据库”这个名词,可能很多非计算机专业的同学都准备点右上角的叉叉了_(:з」∠)_还请阁下留步,“数据库”本身并不是多深奥的概念,而且它在我们的生活中已经随处可见了,只是大家可能还没意识到,在我们网购、玩网游、使用社交软件的时候,数据库已经悄悄地发挥了它的作用。

那接下来我们就进入正题喽~


 

主要内容

1. 数据(data)

2. 数据库(database)

3. 数据库管理系统(database management system,DBMS)

4. 数据库系统

1. 概念模型

2. 层次模型

3. 网状模型

4. 关系模型


 

数据库系统概述

在系统地学习数据库之前,我们先来认识四个基本概念:数据、数据库、数据库管理系统和数据库系统。

1. 数据(data)

数据是数据库中存储的基本对象,广义的理解认为数据的种类很多。在游戏中我们角色的各项能力值、角色技能的演出效果(动画和音频),技能伤害的判定以及网购时商品的各类信息、商家的粉丝数、三项指标(描述相符、服务态度和物流服务)等,这些都可以被称为数据。判断的依据就是它是否在描述某样事物。

有时候数据只是一个简单的数字,我们还得给它赋予含义,比如各项能力值里有攻击力、防御力、敏捷度等各个数值,技能伤害可以是一般伤害、暴击伤害、异常状态伤害等。数据与其语义是密不可分的。

2. 数据库(database)

存放数据的仓库,只是这个仓库在计算机存储设备上,而且数据按一定的格式存放。过去人们把数据存放在文件柜里,现在人们可以借助计算机和数据库更便捷地管理和利用大量复杂的数据。数据库数据具有永久存储、有组织和可共享三个基本特点,具有较小的冗余度(redundancy)、较高的数据独立性(data independency)和易扩展性(scalability)。

*百科上没能找到“易扩展性”的资料,所以这里补充一下:由于数据面向整个系统,具有一定的结构,不仅可以被多个应用共享使用,而且容易增添新的应用,这就使得数据库系统弹性大,易于扩充,能更好满足不同用户的需求。

3. 数据库管理系统(database management system,DBMS)

数据库管理系统是位于用户(通过应用程序)与操作系统之间的一层数据管理软件,可以实现科学地组织和存储数据,高效地获取和维护数据。它的主要功能包括以下六个方面:

(1)数据定义:数据定义语言(Data Definition Language,DDL),用于对数据对象的组成和结构进行定义;

(2)数据组织、存储和管理:提高存储空间的利用率和数据的存取效率(索引查找、hash查找、顺序查找等);

(3)数据操纵:数据操纵语言(Data Manipulation Language,DML),对数据进行查询、插入、删除和修改等;

(4)数据库的事务管理和运行管理:数据库在建立、运用和维护时,保证数据的安全性、完整性、多用户对数据的并发使用及故障后的系统恢复,这些都是数据库管理系统必须提供的数据控制功能

(5)数据库的建立和维护:数据库初始数据的输入,数据库的转储和恢复,数据库的重组织和性能监视、分析等;

(6)其他功能:与网络中其他软件系统的通信,与另一个数据库管理系统或文件系统的数据转换等。

4. 数据库系统

数据库的建立、运用和维护等工作只靠一个数据库管理系统是远远不够的,还要有专门的人员来完成这些工作,这些人被称为数据库管理员(DataBase Administrator,DBA)。数据库、数据库管理系统、数据库管理员和应用程序共同组成了数据库系统。


数据库系统的诞生

20世纪50年代后期到60年代中期,操作系统中已经有了专门的数据管理软件,一般称为文件系统。文件系统实现了对数据的长期保存和系统管理,但它依旧存在三个明显的缺点:数据共享性差、冗余度大、数据独立性差。

20世纪60年代后期以来,数据量日益繁多复杂,这时候数据库系统应运而生,一把解决了文件系统遗留的三个问题。

数据库系统实现了整体数据的结构化,使数据不再只针对某一个应用,而是面向整个组织或企业,数据结构之间是有联系的。说到这里,我们现在所学的三门专业课,操作系统、数据库和数据结构已经联系起来了。


数据模型

数据库技术的发展沿着数据模型的主线推进,数据模型是对现实世界数据特征的抽象,用于描述、组织和操作数据。现有的数据库均为基于某种数据模型,数据模型是数据库系统的核心和基础

数据模型可分为两大类:第一类是概念模型,第二类是逻辑模型(层次模型、网状模型和关系模型等)和物理模型。

数据模型的三个组成要素:数据结构、数据操作和数据的完整性约束条件。(这三个要素会在后续内容中说明)

1. 概念模型

概念模型是现实世界到机器世界的一个中间层次,主要用于设计数据库

基本概念:

(1)实体(entity):客观世界具体存在的人事物或抽象的概念和联系。比如一个学生、学生的一次选课、学生与学院的关系等;

(2)属性(attribute):实体所具有的某一特性。一个实体可以通过多个属性来描述;

(3)码(key):唯一标识实体的属性(集)。比如学号是学生实体的码;

(4)实体型(entity type):实体名(属性1,属性2,...)。如:学生(学号,姓名,性别,出生年月);

(5)实体集(entity set):同一类型实体的集合称为实体集。全体学生就是一个实体集;

(6)联系(relationship):实体内部的联系通常指属性间的联系,而实体之间的联系通常指不同实体集之间的联系(一对一、一对多和多对多)。

2. 层次模型

层次模型是数据库系统中最早出现的数据模型,采用树型数据结构来表示各类实体以及实体间的联系,层次数据库系统以层次模型作为数据的组织方式。(以后可能会挖个新坑来写数据结构的东西_(:з」∠)_)

层次模型(还有网状模型)中的每个结点称为一个记录类型(实体),记录类型中的数据称为字段(属性)

层次模型的基本特点是,任何一个给定的记录值只能按其层次路径查看,没有一个子女记录值能够脱离双亲记录值而独立存在

层次模型的数据操纵主要有查询、插入、删除和更新。

进行插入操作时,如果没有相应的双亲记录值就不能插入它的子女记录值。进行删除操作时,如果删除双亲记录值,相应的子女记录值也将同时被删除。在进行数据操纵时遵循的规则就是完整性约束条件

优点:

(1)数据结构比较简单清晰;

(2)查询效率高。DBMS(数据库管理系统)中常常用指针来实现记录间的联系,这种联系亦是记录之间的存取路径;

(3)提供了良好的完整性支持。

缺点:

(1)现实中许多联系是非层次性的,结点间的多对多联系不适合用层次模型表示;

(2)一个结点具有多个双亲结点时,只能通过引入冗余数据(易产生不一致性)或引入虚拟结点(创建非自然的数据结构);

(3)无法单独查询子女结点。

因此,层次模型更适合“一对多”的情况。

3. 网状模型

网状模型采用图型数据结构来表示各类实体以及实体间的联系,层次模型实际上是特殊的网状模型。

优点:

(1)能够更直接地描述现实世界,如一个结点可以有多个双亲,结点之间可以有多种联系;

(2)存取效率较高。

缺点:

(1)结构过于复杂,不利于最终用户掌握;

(2)网状模型的DDL(数据定义语言)和DML(数据操纵语言)复杂,并且要嵌入某一种高级语言,用户不易掌握;

(3)由于记录之间的联系通过存取路径实现,所以应用程序访问数据时必须选择适合的存取路径,这就要求用户必须了解系统结构的细节,加重了敲代码的负担。

层次模型和网状模型统称为格式化模型。格式化模型的数据库系统在20世纪70年代至80年代非常流行,但由于它们在使用和实现上都要涉及数据库物理层的复杂结构,现在已逐渐被关系模型的数据库系统取代

4. 关系模型

关系模型是最重要的一种数据模型(也是这一系列的主要讲述对象)。关系数据库系统采用关系模型作为数据的组织方式。

每个关系的数据结构就是一张规范化二维表。

学号 姓名 年龄 性别 系名 年级
20190301 欧阳 18 数技 2019
20190305 翠花 19 数技 2019
20190316 小嘤 18 数艺 2019
... ... ... ... ... ...

下面介绍关系模型中的重要术语

(1)关系(relation):一个关系对应一张二维表;

(2)元祖(tuple):表中的一行即为一个元祖;

(3)属性(attribute):表中的一列即为一个属性,表中的6列分别对应6个属性;

(4)码(key):表中的某个属性(组),它可以唯一确定一个元组。如学号可以唯一确定一个学生,所以它是本关系的码;

(5)域(domain):属性的取值范围来自某个域;

(6)分量:元组中的一个属性值;

(7)关系模式:关系名(属性1,属性2,...)。如学生(学号,姓名,年龄,性别,系名,年级)。

关系模型要求关系必须是规范化的,关系中的每一个分量必须是不可分的数据项。

关系模型的数据操纵主要包括查询、插入、删除和更新数据,这些操作必须满足关系的完整性约束条件。关系的完整性约束条件包括三大类:实体完整性、参照完整性和用户定义的完整性。

优点:

(1)与格式化模式不同,它建立在严格的数学概念基础上;

(2)关系模型的概念单一,用户易懂易用;

(3)关系模型的存取路径对用户透明,从而具有更高的数据独立性和安全保密性,简化了程序猿的工作和数据库的开发建立工作。

虽然关系模型深受用户欢迎,但它仍旧存在缺点。由于存取路径对用户是隐蔽的,查询效率往往不如格式化数据模型。不过查询请求是可以优化的,用户不必考虑这些细节问题。


数据库系统的三级模式结构

模式(schema)是数据中全体数据的逻辑结构和特征的描述,只涉及“型”的描述不涉及具体的“值”。模式的具体值称为模式的实例(instance),同一个模式可以有很多实例。

模式是相对稳定的,而实例是相对变动的。模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。

数据库系统的三级模式结构是指数据库系统是由外模式模式内模式三级构成。

(1)模式(schema):逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。

(2)外模式(external schema):子模式(subschema)或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。

外模式通常是模式的子集,一个数据库可以有多个外模式。对于模式中同一数据,外模式中的结构、类型、长度、保密级别都可以不同。

每个用户只能看见和访问外模式中的数据,所以外模式是保证数据库安全性的一个有力措施。

(3)内模式(internal schema):存储模式(storage schema),一个数据库只有一个内模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。

数据库系统中位于三级模式之间的两层映像:外模式/模式映像模式/内模式映像

目前我们只需要知道外模式/模式映像保证了数据与程序的逻辑独立性,而模式/内模式映像保证了物理独立性。

数据与程序之间的独立性使数据的定义和描述可以从应用程序分离出去,数据的存取由DBMS管理,简化了应用程序的编制,大大减少了代码的维护和修改。


数据库的用户

这里的用户指最终用户(end user)。最终用户通过应用系统的用户接口使用数据库。常用的接口方式有浏览器、菜单驱动、表格操作、图形显示、报表书写等。

最终用户分为以下三类:

(1)偶然用户。这类用户不常访问数据库,但每次访问往往需要不同的数据库信息;

(2)简单用户。多数最终用户为简单用户,其主要工作是查询和更新数据库,一般都是通过应用程序猿精心设计并具有良好界面的应用程序存取数据库;

(3)复杂用户。具有较高科学技术背景的人员,能够直接使用数据库语言访问数据库,甚至基于DBMS的应用程序接口编制直接的应用程序。


(笔者现为大二学生,“数据库知识整理”系列的内容大部分参考自教材《数据库系统概论(第5版)》)

猜你喜欢

转载自blog.csdn.net/Ha1f_Awake/article/details/83834736
今日推荐