数据库原理详解,拯救你的期末考试三部曲【一】
2021/6/3 2:24:16
本文主要是介绍数据库原理详解,拯救你的期末考试三部曲【一】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
数据库原理一到三章
第一章:绪论
一、数据库系统概述
1、数据库四个基本概念
① 数据(Data)
数据是数据库存储的基本对象,是描述事物的符号记录。
② 数据库(Database)
数据库简称DB,是长期存储
在计算机内、有组织
的、可共享
的大量数据的集合
基本特征:
- 按一定的数据模型组织、描述、存储
- 可共享、冗余度较小、易扩展
- 数据独立性较高
③ 数据库管理系统(DBMS)
数据库管理系统 (Database management system, DBMS )是位于用户与操作系统之间
的一层数据管理软件
,它和操作系统一样都是基础软件
,也是一个大型复杂的软件系统
。用于科学地组织和存储数据、高效地获取和维护数据。
主要功能:
- 数据定义功能:提供DDL(数据定义语言)
- 数据组织、存储和管理功能
- 数据操作功能:提供DML(数据操纵语言)
- 数据库事务管理与运行管理
- 数据库的建立和维护功能
- 其他功能:连接其它软件,数据转换
④ 数据库系统(DBS)
数据库系统( (Database System, DBS)是指在计算机系统中引入数据库后的系统构成,在不引起混淆的情况下,称数据库系统为数据库。
构成:
- 数据库
- 数据库管理系统
- 应用程序
- 数据库管理员(DBA)
特点:
- 数据结构化
- 数据的共享性高,冗余度低且易扩充
- 数据独立性高:应用程序和数据库相互独立,体现在物理独立性、逻辑独立性
- 数据由数据库管理系统统一管理和控制
2、 DBS、DBMS、DB的关系
DBS最大,包含了DBMS、DB、DBA
二、数据模型
数据模型也是一种模型,它是对现实世界数据特征的抽象
1、两类数据模型
第一类模型:概念模型,第二类模型:逻辑模型和物理模型
① 转化过程
三个世界,两步抽象:数据来源于现实世界,我们要将现实世界的数据抽象成为信息世界的数据,然后将信息世界的数据用一定结构抽象转化为机器世界能够识别的数据形式。
现实世界 》》》 概念模型 》》》 数据库管理系统支持的数据模型
概念模型 》》》 逻辑模型 》》》 物理模型
② 基本概念
概念模型:按用户的观点来对数据和信息建模,用于数据库设计
数据库管理系统支持的数据模型:
逻辑模型:主要包含网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。按计算机系统的观点对数据建模,用于DBMS实现。
物理模型:是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。
2、概念模型
① 信息世界的基本概念
实体:客观存在且可以相互区别的事物 学生、老师等可称为实体
属性:实体具有的某一特征称为属性 学生的学号
码:唯一标识实体的属性集成为码 身份证号
实体型:具有相同属性的实体必然具有共同的特征和性质 一张表的表名
实体集:同一类型实体的集合 学生实体的集合,即一张表的所有属性
联系:不同实体之间的联系,有一对一,一对多,多对多。
概念模型的一种表示方式:实体-联系方法,用E-R图来描述现实世界的概念模型。
3、数据模型的组成要素
数据结构、数据操作、数据的完整性
① 数据结构
数据结构描述数据库的组成对象以及对象之间的联系。
描述的内容有两类:一类是对象的类型、内容和性质有关的;一类是数据之间联系有关的。
数据结构是所描述对象类型的集合,是对系统静态特性的描述。
② 数据操作
数据操作是指对数据库中各种对象的实例允许执行的操作的集合。增删改查为主要操作。
数据操作是对系统动态特性的描述。
③ 数据完整性约束条件
数据的完整性约束条件是一组完整性规则。
4、常用的数据模型
层次模型、网状模型、关系模型、面向对象的数据模型、对象关系数据模型、半结构化数据模型
① 层次模型
两个基本条件:
- 有且只有一个结点没有双亲结点,这个结点称为根节点
- 根以外的其它节点有且只有一个双亲结点
联系:用结点之间的联系(有向边)表示,这种联系是父子之间的一对多的联系。
特点:结点的双亲唯一,只能处理一对多的实体联系,任何记录值只有按其路径查看才能显出它的全部意义,没有一个子女记录值能够脱离双亲记录值而独立存在。
操作与完整性约束:
- 无相应的双亲结点值不能插入子女结点值
- 如果删除双亲节点值,则相应的子女节点值也同时被删除
- 执行更新操作,要更新所有的相应记录
优点:
层次模型比较简单清晰,提供了良好的完整性支持,查询效率高
缺点:
结点之间的多对多关系表示不自然,操作复杂,对插入和删除限制多,查询子女结点必须通过双亲结点,过于程序化。
② 网状模型结构
层次模型可看作网状模型的特例
两个条件:
- 允许一个以上结点无双亲
- 一个结点可以有多个双亲
特点:可以有多个结点没有父节点,至少有一个结点有多个父节点,子女结点与双亲结点的联系可以不唯一。
操作与完整性约束:
- 码:唯一标识数据
- 一个联系中双亲记录与子女记录之间是一对多联系
- 支持双亲记录与子女记录之间某些约束条件
优点:能够直接地描述现实世界
缺点:结构比较复杂,DDL、DML语言较为复杂,联系定义了存取路径,用户必须了解结构细节
③ 关系模型
关系模型的术语:
域:一组具有相同数据类型的值的集合,属性的取值范围来自某个域。例如大学生的年龄属性的域是(15~35),性别的域是(男,女)。
关系模型的条件:每个关系的数据结构是一张规范的二维表。例如上表即是关系名为关系模型的二维表,其表示了关系模型这一结构。
操作与完整性约束:
- 实体完整性
- 参照完整性
- 用户定义完整性
优点:建立在严格的数学概念的基础上,概念单一,存取路径透明。
缺点:查询效率不足,必须优化用户的查询请求,增加开发难度
三、数据库系统的结构
1、数据库系统模式概念
型:对某一数据的结构和属性的说明
值:型的具体赋值
模式:数据库中全体数据的逻辑结构和特征的描述
2、三级模式结构
外模式:用户所看到的数据视图 模式/逻辑模式:所建立的表的集合 内模式:表中数据的存储方式和物理结构
① 模式
概念:模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
地位:是数据库系统模式结构的中间层
定义:数据的逻辑结构、数据之间的联系、有关的安全性与完整性要求
② 外模式
概念:外模式也称子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
地位:介于模式与应用之间
关系:与内模式和应用都是一对多的关系
③ 内模式
一个数据库只有一个内模式
概念:内模式也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的组织模式。
3、二级映像
① 外模式/模式映像
概念:
描述了数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构,一个模式可有多个外模式。每个数据库都有一个外模式/模式映像,它定义了外模式与模式之间的对应关系。
数据的逻辑独立性:
当模式改变时,由数据库管理员对外模式/模式的映像作出相应改变(对属性和关系的改变),应用程序由外模式编写,从而应用程序不用改变,保证了数据与程序的逻辑独立性,称为数据的逻辑独立性
② 模式/模式映像
概念:
数据库只有一个模式,也只有一个内模式,所以模式/模式映像是唯一的,它定义了数据全局逻辑结构和存储结构之间的对应关系。
数据的物理独立性:
当数据库存储结构改变时(对存储结构的改变),由数据库管理员对模式/模式映像作相应的改变,使模式保持不变,从而应用程序不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。
四、数据库系统的组成(DBS)
数据库(DB)、数据库管理系统(DBMS)、应用程序、数据库管理员(DBA)
第二章:关系数据库
一、关系定义、操作及完整性
1、关系
① 域
概念:一组具有相同数据类型的值的集合
特性:一个域允许的不同取值个数称为这个域的基数
② 笛卡尔积
例子:
D1=导师集合SUPERVISOR={张清玫,刘逸}
D2=专业集合SPECIALITY={计算机专业,信息专业}
D3=研究生集合POSTGRADUATE={李勇,刘晨,王敏}
D1,D2,D3的笛卡尔积为 D1 ×D2 ×D3 = {
( 张清玫,计算机专业,李勇) ,( 张清玫,计算机专业,刘晨)
( 张清玫,计算机专业,王敏) ,( 张清玫,信息专业,李勇),( 张清玫,信息专业,刘晨) ,( 张清玫,信息专业,王敏), ( 刘逸,计算机专业,李勇) ,( 刘逸,计算机专业,刘晨), ( 刘逸,计算机专业,王敏) ,( 刘逸,信息专业,李勇), ( 刘逸,信息专业,刘晨), ( 刘逸,信息专业,王敏) }
术语:
-
张清玫-可称为分量(某个元组中的值)
-
( 张清玫,计算机专业,李勇)-可称为元组(一行)
-
2×2×3=12-称为该笛卡尔积的基数,即其元组个数
③ 关系
关系是笛卡尔积的有限子集,是一张二维表
关系术语:
候选码:某一属性组的值能够唯一地标识一个元组,而子集不能。
主码:从多个候选码中选定一个作为主码。
主属性:候选码的所有属性
非主属性/非码属性:属性组除主属性以外的属性
全码:关系模式的所有属性是这个关系模式的候选码时
关系的类型:
基本关系(基本表或者基表)、查询表、视图表
基本关系的性质:
- 列是的类型一致
- 不同的列可以来自相同的域
- 列或者列的顺序无所谓
- 任意两个元组的候选码不能相同
- 分量必须取原子值,每一个分量不可分
2、关系模式
3、关系操作
4、关系完整性
出题会根据完整性规则
① 实体完整性
若属性A是基本关系R的主属性,则A不能取空值。
- 主属性非空(候选码不能为空)
- 主码各不相同
② 参照完整性
概念:
设F是基本关系R的一个或一组属性,但不是关系R的码,Ks是基本S关系的主码。如果F与Ks相对应,则称F是R的外码。并称基本关系R是参照关系,基本关系S的被参照关系或目标关系。关系R和关系S可以是相同关系。
意义:如果关系R2的某个元组t2参照了关系R1的某个元组t1,则t1必须存在。
理解:
如果关系R2的外码F与关系R1的主码P相对应,则R2中的每一个元组在F上的取值:
❖或者为空值,
❖或者等于R1中某个元组的P值。
③ 用户定义的完整性
用户自己定义的完整性:比如成绩不能为负数,性别不能为人妖只有男女。
二、关系代数
用集合运算符和专门的关系运算符,运算对象是关系,运算结果还是关系
1、关系运算符
2、并
合并两表,保留自己和对方的不同,省去对方相同
3、差
两表向减,抛弃相同,保留不同,不进行合并
4、交
两表合并,抛弃不同,保留相同
5、笛卡尔积
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GlDlMcnf-1622640599201)(C:\Users\官二的磊子\Desktop\未来村村长\image-20210602191932693.png)]
求两表元组的组合的所有情况
6、选择
根据属性查出元组
7、投影
选出属性重新建立关系
8、连接
先组合(笛卡尔积),然后根据CE两个属性的值进行θ的比较,抛弃不符合CθE的组合。
① 等值连接
在等值连接时,不符合相等的元组将被舍弃,被舍弃的元组称为悬浮元组。
② 自然连接
自然连接在等值连接的基础上抛弃了重复属性列
③ 外连接
保留悬浮元组的等值连接
左外连接:
右外连接:
9、除运算
从R与S相同属性列中,在R中找到符合S中BC所有属性值组合(A的属性相同的为一组)的组合,得到除开BC的属性值。
三、综合运算举例
第三章:SQL概述
SQL是一体化语言,集成数据查询、数据定义、数据操纵、数据控制为一体。即是自含式语言忧伤嵌入式语言。是面向集合的语言。
基本表:一个关系对应一个基本表
存储文件:逻辑结构构成关系数据库的内模式,物理结构对用户隐蔽
视图:虚拟的表,数据库只存放视图的定义,不存放视图对应的数据。
关系:一个关系数据库系统可以建立多个数据库,一个数据库可以建立多个模式,一个模式下通常包括多个表、视图和索引等数据库对象。
一、模式的定义与删除
① 定义模式
② 删除模式
二、基本表的定义、删除与修改
① 定义基本表
② 修改基本表
③ 删除基本表
三、索引的建立与删除
索引可以动态的定义,不允许用户在数据操作中引用索引。索引的建立要适当,建立在使用率高的列,过多的索引会降低插入、删除、更新的效率。
① 索引的建立
② 索引的修改
③ 索引的删除
四、查询数据
4、查询之单表查询
① 单表查询根据查询条件
② 聚焦函数与GROUP BY
5、查询之连接查询
① 等值连接
② 自然连接
③ 自身连接
④ 外连接
⑥ 多表连接
6、查询之嵌套查询
① IN谓词
② 运算比较符
③ ANY、SOME、ALL
④ EXISTS
7、查询之集合查询
① 并操作UNION
② 交操作INTERSECT
③ 差操作EXCEPT
8、查询综合练习
五、插入数据
1、相关概念
2、举例
① 插入元组
② 插入子查询
六、修改数据
① 修改某一个元组的值
② 修改多个元组的值
③ 带子查询的修改语句
七、删除数据
① 删除某一个元组的值
② 删除多个元组的值
③ 带子查询的删除语句
八、关于空值
1、空值的处理
2、空值的产生
3、空值的判断
4、空值的约束条件
5、空值的算术运算、比较运算和逻辑运算
九、视图
1、概念
2、建立视图
① 建立基于多个基表的视图
② 基于视图的视图
③ 带表达式的视图
④ 分组视图
2、删除视图
3、查询视图
4、 更新视图
这篇关于数据库原理详解,拯救你的期末考试三部曲【一】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24鸿蒙原生开发手记:03-元服务开发全流程(开发元服务,只需要看这一篇文章)
- 2024-11-24细说敏捷:敏捷四会之每日站会
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解