文章目录
2021年上半年课程学习了数据库系统概论,想做个大总结
按照课本
基础篇
数据库系统的绪论部分
介绍了什么是数据库系统,数据模型,数据库系统的结构,数据库系统的组成
首先什么是数据库?
先了解几个必要的概念:
-
数据data:描述事物的符号记录
-
数据库DB:长期存储在计算机内,有组织,可共享大量数据的集合,也有人说它其实就是个大仓库
-
数据库管理系统DBMS:其实它就是一个应用,一个系统软件,用于用户与操作系统之间的一层数据管理软件
-
数据库管理员DBA:它不是指某一个人,而是一组人,专门负责全面管理和控制数据库系统
-
数据库系统DBS:由数据库,数据库管理系统(及其应用开发工具),应用程序和数据库管理员组成的存储,管理,处理和维护数据的系统
了解数据库的管理技术的产生和发展
(这里不做过多的阐述,可自行百度了解)
了解数据库系统的特点
提到数据库系统,我首先想到的是表,无数的表,所以第一个特点是:
- 数据结构化
能被被多个用户,多个应用使用,可想,数据共享性高,冗余的数据就相应减少,节省更多存储空间,所以第二个特点:
- 数据的共享性高,冗余度低以及易扩充
数据库系统的独立性高,体现在物理和逻辑上,用户使用的应用程序与数据库系统中数据的物理存储相互独立,彼此不受影响,逻辑结构的 改变应用程序不需要改变,第三个特点:
- 数据独立性高
第四个特点,设计内容比较多,后面会继续讲:
- 数据由数据库管理系统统一管理和控制
接着讲讲数据模型
首先要知道数据模型是啥?
数据模型:对现实世界数据特征的抽象
数据模型用来干啥
用来描述数据,组织数据以及对数据进行操作
数据模型的组成有什么?
数据模型通常由数据结构,数据操作以及数据完整性约束条件三部分组成
数据模型有啥呢?
数据模型分为两类:
- 概念模型:主要是是用于数据库设计,针对的是用户
- 逻辑模型和物理模型:
- 逻辑模型:用于数据库管理系统的实现
- 物理模型:物理模型的实现是数据库管理系统的任务,它是对数据最底层的抽象,描述数据在系统内部的表示方法和存取方式。
===================================================
这里我一直在犹豫要不要说一下概念模型,因为它有几个重要的概念需要了解,我还是说一下吧
1. 实体:客观存在并且可以相互区分的事物
2. 属性:区分实体的某一些特性
3. 码key:唯一标识实体的属性(也就是说码也属于一个实众多属性的一个属性)
4. 实体型:当有那么一类实体具有相同的属性时,我们就把实体名和属性名集合来抽象和刻画同类实体,如学生(学号,姓名,性别,出生年月,院系)就是一个实体型
5. 实体集:同一类型的实体的集合就是一个实体集,如全体学生就是一个实体集
6. 联系:这里讲一下联系的类型:一对一,一对多,多对多等
===================================================
接着讲数据模型吧
数据模型都有什么具体的模型分类?
- 层次模型
- 网状模型
- 关系模型
- 面向对象数据模型
- 对象关系数据模型
- 半结构化数据模型
层次模型和网状模型属于格式化模型,现已经被关系模型的数据库取代,这里就不细讲了,感兴趣可自行百度了解
++重点放在关系模型++
关系模型
书上有一句话很重要:
关系数据库系统采用关系模型为数据的组织方式
关系模型中的对数据的操作都是对++集合++的操作,操作对象和结果都是关系
关系模型的组成
- 关系模型的数据结构:就是一张张规范的二维表(规范:这里后面还会讲到数据库的规范化)
- 数据操作:数据操作就是对表进行增删改查操作。
- 完整性约束
- 实体完整性
- 参照完整性
- 用户定义完整性
(关于完整性约束,后面会补充)
数据库系统的结构
角度不同,得出的答案也不同
- 从内部看,数据库应用开发人员角度:数据库系统结构采用三级模式结构
- 从外部看,用户角度:数据库系统结构有很多分类:客户-服务器,浏览器-应用服务端,分布式结构,单用户结构,主从式结等
数据模型:
型:对某一类数据的结构和属性的说明
值:对型的一个具体赋值
重点:
三级模式结构
数据库系统是由外模式,模式,内模式三级构成
一个数据库只有一个模式
也只有一个内模式
但可以有多个外模式
-
模式是什么?
其实模式就是一个视图,是所有用户的公共视图 -
外模式(子模式/用户模式):简单来说就是数据库用户可以看到的数据视图,数据库管理系统提供外模式数据定义语言DDL来严格定义外模式
-
内模式(存储模式):比较底层的东西,是数据物理结构和存储方式的描述,是数据在系统内部的组织方式。举个例子,要存储一批数据,我要采用什么存储方式呢?是堆存储还是按照属性值聚簇存储呢?
数据库的二级映像功能和数据独立性
哪两层?
- 外模式/模式映像(逻辑独立性)
- 模式/内模式映像(物理独立性)
设置这样的目的?
是为了保证数据库系统的数据能够保持较高的逻辑独立性和物理独立性