数据库系统从挂科到满分【精华再精华的数据库系统基础理论】1

非常完整的数据库系统课程知识点体系详解,无论期末考试还是自学MySQL,每节结束都有思维导图总结,考点总结,从最基础的理论开始不断由浅入深,后期会涉及数据库语言。本文持续更新,欢迎关注

第一话:概述

1. 四个基本概念:

  • 数据(Data) D
  • 数据库(DataaBase) DB
  • 数据库系统(DataBase System)DBS
  • 数据库管理系统(DataBase Mangement System) DBMS

DBS = DBMS+DB+DBA

1.1 数据 D

Data 属于数据库储存的基本对象,数据是有结构的,我们所描述的struct在数据库里面叫做 “record”。

1.2 数据库 DB

大量 “数据” 的集合

1.3 数据库系统 【范围最广】DBS

数据库系统属于计算机的系统构成。

在不引起混淆的情况下,我们有习惯把“数据库系统”称作为“数据库”

数据库系统的组成:

  1. 数据库
  2. 数据库管理系统
  3. 应用程序
  4. 数据管理员 【DataBase Administrator】DBA

数据库系统的组构逻辑关系:

带火箭的是DBS的组成部分
在这里插入图片描述

1.4 数据库管理系统(数据库系统的构成之一)DBMS

一个基础用户软件,用于组织和储存数据,获取和维护数据
两种数据语言类型:

  • DDL 数据定义语言
  • DML 数据操纵语言

数据库的基本操作:增删改查,事务管理,运行管理,修复等。
在数据库系统运行的基本工作单位是事务,事务相当于操作系统中的进程。

2. 数据库系统的特点

2.1 数据管理方法手段的历史演变

我们管理数据的手段从最开始的“人工管理”到“文件管理”,到现在的“数据库管理”,经历的演变过程。
随程序管理数据:
在这里插入图片描述
文件管理数据:
在这里插入图片描述
数据库系统管理数据:
在这里插入图片描述

2.2 数据库系统的特点
  • 数据结构化
  • 数据的共享性高,冗余度低
  • 数据独立
  • 由数据库管理系统统一管理

上面所说的特点与其说是数据库系统的特点,不如说是我们如果设计一个数据库系统所要满足的条件特点。

  1. 数据结构化:数据可以变长多对象,数据的最小存取单位是数据项,数据可以用数据模型表示
  2. 数据共享性高,冗余度低:共享意思就是多个用户可以访问同一组数据,所谓冗余度,就是数据的重复度,节约空间
  3. 独立性:分为物理独立和逻辑独立,所谓物理独立的意思是应用程序和数据库的物理储存是分开的,当数据的物理储存改变,应用程序的储存不会改变,逻辑独立的意思是当数据的结构发生改变,不会影响到应用程序的数据结构。
  4. 数据由数据库系统统一管理和控制:数据库管理系统提供的数据控制功能包括:安全性,数据完整性检查,并发控制,数据恢复

3. 数据模型

3.1 数据模型的分类

如果从层次上面分的话由概念模型实体模型
如果从表示方法上分的话可以分为:层次模型,网状模型,关系模型,面向对象模型,对象关系数据模型,半结构化数据模型(XML),非结构化数据模型,模型…

先说从层次看数据模型:概念模型也叫信息模型,按着用户的观点对数据和信息建模,比方说现在我们要描述一个人,那我们可以设计身高体重姓名性别这些信息来对这个对象进行建模,把现实世界的认知在虚拟世界反映出来。

实体模型分为逻辑模型和物理模型,逻辑模型也就是从表示方法上分的模型:关系、网状、面向对象…那些,物理模型就是在磁盘上的表示方法和存取方法,比如说,这种数据用定长的内存段来存取,那种数据用变长内存段存取。

我们实现数据建模,一般来说是属于:逻辑模型的建模,会用DBMS(数据库管理系统)实现

存在这样的深浅层关系:
在这里插入图片描述

3.2 信息模型

他的目的在于清晰的表达数据的在显示世界的语义信息

  • 实体【Entity】
  • 属性【Attribute】
  • 码【Key】
  • 实体型【Entity Type】
  • 实体集【Entity Set】
  • 联系【Relationship】

在这里插入图片描述
Entity Type是表观实体类型,比如学生数据,商品数据;Attribute是实体数据的属性,比如学生数据包括:身高,体重,Key作为这个数据实体类唯一ID。

而RelationShip 可以指实体内部的,也可以指代实体外部的,我们一般有1对1,n对1,n对m这些描述。

于是,我们产生了E-R(Entity - Relation Ship)图来描述概念模型。E-R反映的是实体,属性,关系之间的关系。

3.2.1 E-R图的画法:

矩形框:实体;关系:菱形;椭圆:属性

1对1的关系:(1个萝卜1个坑)
在这里插入图片描述
1对m的关系:(一呼百应)

在这里插入图片描述
n对m的关系:(萝卜白菜各有所爱)

在这里插入图片描述

3.3 逻辑模型【关系模型】

示例:
在用户观点下的关系模型是一张二维表
在这里插入图片描述
真实的关系模型:
在这里插入图片描述

3.3.1 关系模型的数据结构(重点)
关系模型术语英文作用描述
关系RelationShip我们常说的关系指的是一张表,也是集合
元组Tuple数据表的一行数据
属性Attribute数据项名字
主码Key元组的ID,一个ID对应一行数据
Domain某个属性的范围
分量Component元组里面某个属性值

关于Domain,举例:性别的Domain=(男,女),学生年龄的Domain=(14~45岁)

我们管 “表中有表” 的情况叫做 “非规范关系”

需要注意的是,关系模型下不允许表中有表的情况,什么叫做表中有表?就是某个属性下有二级表如下图:
在这里插入图片描述
上面这种不属于关系模型!!

对于关系模型而言,一切注重于 “关系”,我们对于数据的操作是一种集合操作,操作对象和操作得到的结果都属于关系。怎么理解呢? 我们常用对数据的操作有:增,删,改,查,这些操作的对象都是一个数据集合,而数据集合就是关系。

3.3.2 关系模型的优缺点

优点:

  1. 数据的存取路径对于用户是透明的,用户只需要告诉DBMS需要什么,不必告诉DBMS怎样找,这样可以提高数据的独立性和安全性。
  2. 易于用户掌握和理解

缺点:

  1. 由于存取路径对于用户透明,查询效率低下,不如格式化的数据模型
3.3.2 关系模型的完整性约束

完整性约束的意思是:到底怎样才能定义一个关系呢?需要满足怎样的条件才能称作为关系呢?

  • 实体完整:每个元组的每个属性值都应该有分量数据
  • 参照完整:对于每个元组的每个分量都有对应的属性名
3.4 逻辑模型【层次模型】

示例:
在用户观点下的层次模型是一棵

在这里插入图片描述
在这里插入图片描述

3.4.1 层次模型的数据结构,特点,完整性约束

数据结构和树的概念类似:根节点,双亲,叶节点,兄弟节点,子女,每一个节点对应一个数据项
完整性约束:双亲不能插入子女的节点值,删除双亲子女一起删除

优点

  1. 查询效率高
  2. 性能高于关系模型,网状模型

缺点

  1. 插入删除等操作限制繁琐,应用程序编写复杂
3.5 逻辑模型【网状模型】

和我们在数据结构里面学的图类似,属于对层次模型的一种发展。他最大的特点在于允许存在一个儿子对应多个父亲,也允许儿子没有父亲
网状模型示例:
在这里插入图片描述
网状模型的完整性约束相当不严谨,但是在DBMS里面会有很多对网状模型进行约束的条件,
优点
同样有存取效率高,但比层次模型低。
缺点
在DBMS里面记录之间的联系通过记录两个节点的存取路径实现的,所以程序访问必须选择数据存取路径

3.6 对于逻辑模型的描述

经过上面的讲解,我们会发现,我们对于一个逻辑模型描述会从:数据结构,数据操作,完整性约束的方面去探索。

我们可以说数据模型由这三部分组成。

3.7 数据模型的思维导图总结

在这里插入图片描述

4. 数据库系统的结构

可以从两个角度去看,如果从 “应用程序员” 角度看,数据库系统采用三级模式结构,属于数据库系统的内部结构表征。

关于数据库角色定义可以参考下节

如果从数据库 “最终用户” 的角度去看的话,数据库系统的外部结构表征可以分为:

  • 单用户
  • 主从式
  • 分布式
  • 客户-服务器
  • 浏览器-应用服务器

对此,我们更加关于从数据库系统开发人员所看到的三级模式结构
接下来我们默认使用信息模型或者关系模型描述。

4.1 数据库系统模式(Schema)和实例(Instance)

什么叫模式?
模式意思是对数据库实体进行一定规则的逻辑选取,可以理解成就是一个规则。

什么叫实例?
实例的意思是模式的某个状态的具体表现

可以把Schema和Instance理解成数据库系统的类和实体

举例:
现有学生选课的信息,我们制定一个模式叫 “学生选课数据库”,那我们需要

  • 学生表(名字,性别,年龄,学号)
  • 课程表(课程名字,授课老师,课程编号)
  • 学生选课表(学生名字,课程名字)

那么我们的“2019年学生选课数据库”实例:

  • 2019年学生表(名字,性别,年龄,学号)
  • 2019年课程表(课程名字,授课老师,课程编号)
  • 2019年学生选课表(学生名字,课程名字)

如果我们更换年份,虽然在同一个模式下,2019,2020之间的实例是不一致的。

4.2 数据库系统的三级模式

所谓三级模式指的是:内模式【Internal Schema】,模式【Schema】,外模式【External Schema】
模式就是4.1所说的模式,外模式就是模式的子集,内模式是对数据物理结构和储存方式的描述

模式(逻辑模式),内模式(物理模式)外模式(子逻辑模式)

(1)一个应用的数据库一般只有一个模式,因为模式作为数据库系统模式结构的中心
(2)外模式可以被多个应用程序使用,但是一个应用程序只能用一个外模式,外模式属于保护数据库安全性的手段之一,比如说我们利用外模式设计权限访问,设计不同的应用需求。
(3)内模式会表示一些数据库内部储存的表示方式,比如记录存储方式(顺序储存,堆存储 …),索引的组织方式(B+树,Hash …)

4.3 数据库的二级映像

三级模式是对数据进行了三个抽象级别的定义,那么在这三个模式转换上我们设计一种叫做 “映像” 的关系来描述,所以会有:

  • 【外模式 / 模式 映像】=【ES/S】
  • 【模式 / 内模式 映像】=【S/IS】

我们设计二级映像的目的就是为了保持数据的独立性。

模式改变的时候,【ES/S】需要做出改变,保持外模式不变(我们遵循一个原则:尽量不变动外部接口
因为应用程序时根据数据的外部模式编写的,需要保持数据和程序的逻辑独立性,另外为了实现程序和数据的各自中心化。

在这里插入图片描述

5. 数据库系统的组成

区分 “组成” 和 “结构” 这两个词语,组成描述系统的组件,零件,而结构描述的是系统的构造逻辑。

数据库系统的组成:

  • 数据库 DB
  • 数据库管理系统 DBMS
  • 应用程序 App
  • 数据库管理员 DBA
5.1 人员角色

我们设定角色:数据库管理员,数据库设计员,应用程序员,最终用户,模式对应的可见性:

在这里插入图片描述
不同的人员角色会对应不同的数据视图

数据库管理员DMA负责什么呢?
参与确定数据库的信息内容和结构设计,监控数据库的使用和允许和确定数据安全性要求和完整性约束条件。

数据库设计员负责什么?
设计各级模式,确定数据库的数据

应用程序员?
负责编写数据库应用系统模块

最终用户?
银行职员,前台人员…

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值