数据库系统DBS概述-什么是数据库系统
数据、数据库、数据库管理系统、数据库系统
数据(Data):数据是数据库中存储的基本对象。,定义为描述事物的符号记录,也可以是文字、图像、图形、声音、语言等。
数据库(DataBase,简称DB):数据库时长期储存在计算机内,有组织的,可共享的大量数据的集合。
数据库数据具有永久存储、有组织和可共享三个基本特点
- 有组织:在电脑内D盘和C盘都是可以的
- 可共享:可以给别人用
数据库管理系统(DataBase Management System,DBMS:我们可以把这个理解为是仓库管理员,管理着数据的存储和流动,数据库管理系统的主要功能包括:
- 数据定义功能:DBMS提供数据定义语言(Data Definition Language,DDL),用户可以通过它方便地对数据库中的数据对象进行定义。
- 数据组织、存储和管理:DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、数据的存取路径等。
- 数据操纵功能:DBMS提供数据操纵语言(Data Manipulation Language, DML),用户可以使用DML操纵数据,实现对数据库的基本操作,查询、插入、删除和修改等。
- 数据库的事务管理和运行管理:数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统回复。
- 数据库的建立和维护功能:数据库初始数据的输入、转换功能,数据库的转储、恢复功能数据库的重组织功能和性能监视、分析功能等。
数据库系统(DataBase System,DBS):数据库系统一般由数据库DB、数据库管理系统(及开发工具)DBMS、应用系统APP、数据库管理员DBA构成。
数据库管理员它是一个身份,一个角色,就是要用DBMS来进行一些相对应的操作。

如图为整个数据库系统。我们来捋一下:
- 数据库管理员DBA利用数据库管理系统DBMS建立一个数据库DB,数据库里面有一张成绩表
- 用户就是教师,教师操控程序APP(成绩管理软件),教师可以把成绩录进去,🦌好之后,就会把数据传给数据库管理系统DBMS,接着DBMS根据自己的管理方式,把数据写入数据库
我们也可以这样分类: - 应用层面:用户、应用系统、应用开发工具
- 设计层面:数据库管理系统DBMS、数据库管理员DBA、操作系统
- 底层:数据库DB
数据管理技术的产生和发展
数据管理技术经历了人工管理、文件系统、数据库系统3个阶段。
人工管理阶段:人工管理数据具有以下特点:
数据不保存:最早开始的计算机存储是靠纸袋的孔来进行的应用程序管理数据:数据和程序是在一起的,程序没了,数据也就没了数据不共享:一个应用程序对应一个数据,纸袋执行完就废了数据不具有独立性:跟应用程序绑定在一起
缺点:数据的逻辑结构或逻辑结构发生变化后,必须对应用程序做相应的修改,加重了程序员的负担。
文件系统阶段:用文件系统管理数据具有如下特点:
数据可以长期保存:比如保存一个word之类的,不再用纸袋了由文件系统管理数据:既然保存在文件里了,那肯定可以用文件系统进行管理了
缺点:数据共享性差,冗余度大:一个文件存储的数据只能供一个程序使用,下个程序想使用还得再建一个文件。比如在学籍管理系统使用文件A,成绩管理系统使用文件B,但是这两个文件可能是有相同的数据的,比如说姓名、学号、班级等。数据独立性差:并不是说大家都可以访问,还是跟程序绑定。
数据库系统阶段:用数据库系统管理数据具有如下特点:
数据结构化:数据像一张规范的表格,有固定的行和列:数据的共享性高,冗余度低,易扩充:一个数据库/表,就可以有很多程序来访问数据独立性高:不跟应用程序绑定,谁来访问都可以,只要按照格式就可以数据由DBMS统一管理和控制:由一个集中的人/软件来进行数据库的管理和维护
数据模型-数据如何组织与关联
数据模型(Data Model):它也是一种模型,它是对现实世界数据特征的抽象。数据模型就是现实世界的模拟。类似于沙盘就是对楼房的模拟。
两类数据模型
数据模型应满足三方面要求:
能比较真实地模拟现实世界:张三名字是一个文本,年龄身高体重是数字,还可能有小数之类的容易为人所理解:给数据起名,姓名就叫name,别叫其他怪东西便于在计算机上实现
根据模型应用的不同目的,可分为两类:
第一类是概念模型(Conceptual Model)。
概念模型:也称信息模型,它是按照用户的观点来对数据和信息建模,主要用于数据库设计。其实就是我们在数据库的设计阶段,根据我们对用户数据和信息的理解,然后设计出来的模型。
第二类模型是逻辑模型和物理模型。
- 逻辑模型:主要包括
层次模型,网状模型,关系模型,面向对象模型和对象关系模型等。它是按计算机系统的观点对数据建模 ,主要用于DBMS的实现。层次模型有二叉树;网状模型有图的结构;关系模型也就是主流的模型,也就是表格/二维表; - 物理模型:是对数据最底层的抽象,它描述数据在系统内部的表示方法和存取方法,在磁盘上或磁带上的存储方式和存取方法是面向计算机系统的。
- 可以这样理解,逻辑模型就是思考不同数据应该如何联系起来,比如一个君主立宪制从上往下分,各个官员谁管谁;而物理模型就是如何实现它。
三者的递进关系:
- 概念模型:先画「业务蓝图」,比如 “学生可以选多门课,一门课可以被多个学生选”
- 逻辑模型:把蓝图转成「计算机能理解的结构」,比如设计成三张表:学生表、课程表、选课表
- 物理模型:最后落地成「硬件可存储的实现」,比如决定用 B + 树做索引、用页式存储管理
数据模型的组成要素
数据模型通常由数据结构、数据操作和完整性约束三个部分组成
- 数据结构:数据结构描述数据库的组成对象以及对象之间的联系。数据结构是所描述的对象类型的集合,是对系统静态特征的描述。其实就是我们之前说的模型。
- 数据操作:数据库主要有查询和更新(包括插入、删除、修改)两大类操作。数据操作是对系统动态特征的描述。
- 数据的完整性约束条件:数据的完整性约束条件是一组完整性规则。在第一个表里学号001是张三,你第二个表学号001号就必须也得是张三;第二个就是你的身高和体重不能是图片,得是数字;成绩最高100,不能出现101。
概念模型
概念模型是现实世界到机器世界的一个中间层次,表现为:
- 概念模型用于信息世界的建模
- 现实世界到信息世界的第一层抽象
- 数据库设计人员进行数据库设计的有力工具
- 数据库设计人员和用户之间进行交流的语言:我设计的这个数据库符不符合你的实际应用?
概念模型设计要求: - 具有较强的语义表达能力:我这个模型要能非常清楚的表示出现实世界中它是什么意思
- 能够方便、直接地表达应用中的各种语义知识:有学生姓名,就应该有学号等信息
- 简单、清晰、易于用户理解
信息世界的基本概念:
实体(Entity):客观存在并可相互区别的事务称为实体。 实体可以是具体的人、事、物,也可以是抽象的概念或联系。比如一个职工、一个部门、一门课。
属性(Attribute):实体所具有的某一特征称为属性。 一个实体可以由若干个属性来刻画。比如一个学生实体可以有学号,姓名等若干个属性。
码(Key):唯一标识实体的属性集称为码。比如学号是学生的码。
域(Domain):域是一组具有相同数据类型的值的集合。属性的取值范围。比如说成绩域的范围是0-100,学号是8为整数。性别是男或女。
实体型(Entity Type):具有相同属性的实体必然具有相同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。比如学生(学号,姓名,性别,出生年月)就是一个实体型。
实体集(Entity Set):同一类型实体的集合称为实体集。比如全体学生就是一个实体集。
联系(Relationship):在现实世界中,事物内部以及事物之间是有联系的,这个在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。实体内部通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。
两个实体之间的联系:
一对一联系(1:1):如果对于实体集A中的每一个实体,实体集B中最多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记作1:1。比如班级是实体集A,班长是实体集B,那么班级和班长具有一对一联系,如下图所示:

一对多联系(1:n):如果对于实体集A中的每一个实体,实体集B中有n个实体(n>=0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n。比如班级与学生之间的联系,如图:

多对多联系(m:n):如果对于实体集A中的每一个实体,实体集B中有n个实体(m>=0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体与之联系,则称实体集A与实体集B多对多联系,记为m:n。实际上1:1是1:多的特例,1:多又是多对多的特例。比如学校的选课系统,一门课可以由多个学生选,而一个学生又可以选多门课:

两个以上实体型的联系:两个以上的实体型之间也存在着一对一、一对多、多对多联系。若实体型$E_1,E_2,...,E_n$之间存在联系,对于实体型$E_i$中给定的实体,最多只和$E_i$中的一个实体相联系,则说$E_i$与$E_1,E_2,...,E_i-1,E_i+1,...,E_n$之间能联系是一对多的。比如对于课程,教师,参考书这三个实体型,如图:


单个实体型内的联系:同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。比如员工中的职工和领导:

概念模型的一种表示方法:实体-联系图(E-R图):
E-R图提供了表示实体型、属性和联系的方法:
- 实体型:用矩形表示,矩形框内写明实体名。
- 属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来。
- 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1、1:n、m:n等)。如果一个联系具有属性,则这些属性也要用无向边跟联系连接起来。联系的属性,本质就是为 “实体组合” 做 1:1 描述。


联系的属性,本质就是为 “实体组合” 做 1:1 描述。上面的含义是,某一个供应商,为某一个项目,供应了某一种零件,供应的数量是多少。
最常用的数据模型
目前,常用逻辑数据模型有:层次模型、网状模型、关系模型、面向对象模型、对象关系模型。
关系模型
关系数据模型的数据结构
- 关系(Relation):一个关系对应通常说的一张表,如下表中的这张学生登记表。
- 元组(Tuple):表中的一行即为一个元组。
- 属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名。
比如下表有六列,也就是六个属性,而这整整一个表叫做属性:

- 码(Key):也称为码键。表中的某个属性组,它可以唯一确定一个元组;如上表中的学号,可以唯一确定一个学生,也就成为本关系的码。
- 域(Domain):属性的取值范围,如人的年龄一般在1~114514岁之间。
- 分量:元组中的一个属性值。
- 关系模式:对关系的描述,一般表示为:关系名($属性_1,属性_2,....,属性_n$)
举个例子,学生、课程之间的多对多联系在关系模型中可以如下表示: - 学生(学号,姓名,年龄,性别,系名,年级)
- 课程(课程号,课程名,学分)
- 选修(学号,课程号,成绩)
关系数据模型额操作与完整性约束:关系数据模型的操作主要包括查询、插入、删除和更新数据。这些操作必须满足关系的完整性约束条件。
关系的完整性约束条件包括三大类:
- 实体完整性:想办法确定出唯一的实体
- 参照完整性:如上面选修这个实体,它的学号和课程号不能瞎填,必须得参照学生实体
- 用户定义的完整性:也就是数据得在域内
关系数据模型的优点:
- 关系模型与格式化模型不同,它是建立在严格的数学概念的基础上的。
- 关系模型的概念单一:关系模型是一个二维表,你进行一系列操作后的结果肯定也是二维表
- 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性也简化了程序员的工作和数据库开发建立的工作:在计算机中我们要记住,透明的意思是看不见
数据库系统DBS结构-数据库运作原理
数据库系统模式的概念
模式(Schema) 是数据库中全体数据的逻辑结构和特征的描述,同一个模式可以有很多实例。
是不是有一种“这家伙在说什么啊”的感觉,我们来看下实例:
1 | 在学生选课数据库模式中,包含学生记录、课程记录和学生选课记录,则2003年有一个学生数据库的实例,该实例包含了2003年学校中所有学生的记录(如果某校有10000个学生,则有10000个学生记录)、学校开设的所有课程的记录和所有学生选课的记录。 |
| 概念 | 类比 | 说明 |
|---|---|---|
| 模式(Schema) | 游戏角色模板 | 定义了角色有 “姓名、职业、等级、血量” 这些属性,结构固定 |
| 实例(Instance) | 你创建的具体角色 | 比如 “战士张三,等级 10,血量 1000”,数据会随游戏变化 |
| 多个实例 | 不同玩家的角色 | 都遵循同一个角色模板,但数据各不相同 |
| 其实模式严格意义上来讲更像是模板,这不就是我们伟大二游明日方舟终末地的蓝图系统吗😋。我可以造紫瓶蓝瓶设施,但是机器本身是一样,只是里面放的东西不一样😋。 |
数据库系统的三级模式结构
数据库系统的三级模式结构是指数据库系统是由外模式、模式、内模式三级构成。

- 外模式:用户想要看自己的信息,为了保证数据库透明原则,外模式会将只属于你的数据从数据库调用出来,比如你的成绩,它是应用程序在访问数据库的时候所用到的一种模式。
- 模式:我们查到了自己的成绩,但是这个成绩是怎么在数据库中存储的呢?比如通过一个二维表,这个二维表包含你的全部信息。
- 内模式:你的数据库中有这么多数据,你在计算机的实际物理硬盘当中是怎么存的,比如说你是在D盘存的还是在C盘存的,这也叫做物理模式。
- 通俗点来讲,外模式就是单领出一个数据来看,而模式是所有表,内模式是这些数据储存的地方。我们在DBMS上看到的其实就是模式反映出来的。
注意: - 外模式通常是模式的子集,一个数据库可以有多个外模式
- 同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。
- 外模式是保证数据安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。
数据库的二级映像功能与数据独立性
数据库的三级模式是对数据的3个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地抽象地处理数据,而不必关心数据在计算机中的具体表示方法与存储方式。
DBS在这三个模式之间提供了两层映射:
- 外模式/模式映像
- 模式/内模式映像
具体方式如上一节的图,这两层映像抱枕两个DBS中的数据能够具有较高的逻辑独立性和物理独立性。
数据库系统的组成
数据库系统一般由数据库DB、数据库系统DBS(及其开发工具)、应用系统APP、数据库管理员DBA构成。
硬件平台及数据库:硬件资源要求:
- 要有足够大的内存,存放操作系统、DBMS的核心模块、数据缓冲区和应用程序。内存不是外存,我草拟的计组还在追我🤬
- 有足够大的磁盘或磁盘阵列等设备存放数据库,有足够的磁带(或光盘)作数据备份。
- 要求系统有较高的通道能力,以提高数据传送率。
软件:数据库系统的软件主要包括:
- DBMS。DBMS是为数据库的建立、使用和维护配置的系统软件。
- 支持DMBS运行的操作系统
- 具有与数据库接口的高级语言及编程语言,便于开发应用程序APP
- 以DBMS为核心的应用开发工具
- 为特定应用环境开发的数据库应用系统。
人员:开发、管理和使用数据库系统的人员主要是:
- 数据库管理员:维护,改进
- 系统分析员:根据需求和规范说明,要和用户及DBA结合,er图,建模
- 数据库设计人员:建表,各级模式设计
- 应用程序员
- 最终用户
说些什么吧!