非常完整的数据库系统课程知识点体系详解,无论期末考试还是自学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相关推荐

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

    第三话:关系数据库 1. 关系模型 在关系数据库的世界里面无论是实体还是实体之间的关系都用关系来进行表示. 1.1 关系 域:单一属性的取值范围,实质上是某一种数据类型的值的集合 [域的笛卡尔积空间] ...

  2. 中原工学院大学计算机挂科,挂科

    挂科,就是不通过或不及格的代名词.具体地说,就是指某人的某一科目或多门科目因各种原因考试不及格而未能达到要求的标准,需要重考或重修的意思. "挂科"衍生自"挂了" ...

  3. 大专里学计算机应用会挂科吗,女生适合学计算机专业吗?别等大学挂科再后悔...

    之前呢小编和粉丝们聊到了数学不好的同学们,在选择大学专业的时候,可以考虑的一些方向,像中国语言文学类.外国语言文学类.新闻传播类这三大类啊,咱们可以重点的家考虑,那么还有呢像法学这样的专业,咱们有个家 ...

  4. c语言课程设计挂科率高吗,有没有挂科的人指教下怎么让老师把成绩改高呢???...

    差3分就能及格了 晕死啊不想补考重修啊!!!! 有没有成功挽回老师分数的朋友给点招啊谢谢!!!! 人打赏 0人 点赞 主帖获得的天涯分:0 来自 天涯社区客户端 | 举报 | 楼主 | 楼主发言:35 ...

  5. 大二学科不挂科 速冲方法推荐(数据结构+计组+操作系统+算法+数据库+计网)

    文章目录 前引 学科速成总结 1.数据结构 2.计算机组成原理 3.操作系统 4.数据库系统概论 5.算法设计与分析 结束语 前引 这段时间本来是紧锣密鼓的在准备面试 原本以为自己已经学过的科目 考试 ...

  6. 上海交大计算机专业挂科,上海交大,3名本科生绩点不足1.0被勒令退学,大学不挂科很难?...

    文|学个习 原创文章,欢迎转发分享! 2021年1月18日,在上海交通大学本科教学信息网上连发三条"送达公告". 然后,打开该"送达公告"以后是下面这样的. 其 ...

  7. 大学计算机基础挂了能毕业吗,大学挂科率最高的十个科目,你中枪了吗?

    原标题:大学挂科率最高的十个科目,你中枪了吗? 大学挂科率最高的十个科目 期末考试快到了,对于大学的同学来说, 挂科这一专有名词是再熟悉不过的了. 正所谓,问世间"挂科"为何物, ...

  8. 陶哲轩自述考砸经历:智商高达230的数学天才,却因没复习险些挂科

    机器之心报道 编辑:蛋酱.小舟 很难相信,智商高达 230 的陶哲轩(Terence Tao),也会在一场考试中险些挂科.从这篇自述文章中,我们可以近距离感受到,数学天才的荣耀背后,是多少个不懈探索的 ...

  9. 3年国奖、一作9篇SCI,完美逆袭的中大博士坦言自己也曾濒临挂科

    本文来源:中山大学 材料科学与工程学院  采写:王祉漪.何洛.刘许福 当我们在实验室见到林昭勇的时候,几乎没有人能够将这个第一眼看上去"有些瘦"."平凡朴素"的 ...

最新文章

  1. BusinessObject J2EE单点登陆简单使用
  2. 分子排列不同会导致_原子或分子之间的作用力是什么力?
  3. Java基础-我所理解的泛型
  4. 安卓案例:利用SQLiteOpenHelper操作数据库及表
  5. 超级智能玩具《小小机器人》|全新50种玩法,创造力之源
  6. kali安装后的基本配置
  7. python中的type函数-python的type函数
  8. the catalina_home environment variable
  9. php 通过 create user 和grant 命令无法创建数据库用户和授权的解决办法
  10. GaMD-高斯加速分子动力学模拟中文教程
  11. 物联网老年人健康管理系统源码
  12. HDU-5857-Median
  13. set_set_switching_activity
  14. Pytorch迁移学习加载部分预训练权重
  15. 吐血推荐 36招搞定电脑一切难题
  16. win10关闭动态磁贴_磁贴怎么用
  17. STM32按键设计一之扫描
  18. 微信分账:分账接收方列表格式错误
  19. 分享:如何使DFC实现跨平台
  20. 《数字图像处理 冈萨雷斯》绪论——学习笔记

热门文章

  1. 山西省大学计算机专业排名,山西省:排名前14的大学!山西的大学分为5档,前2档最难考!...
  2. 菜鸟弱弱地问:找个薪资待遇差的工作能成长吗?
  3. MinIO The access key ID you provided does not exist in our records问题解决
  4. Matlab 用途(我的理解)
  5. Golang使用qrcode生成二维码,以及生成带logo的二维码
  6. java8 四大函数式接口 和 用于数据处理的 stream流 使用详解
  7. 精妙绝伦的设计模式:策略模式+模板模式+工厂模式
  8. 2022华为杯A题思路分析移动场景超分辨定位问题
  9. 生信笔记:E值究竟是什么?!!!
  10. XML 中的 xmlns 等属性的意义