导图社区 数据库
这是一个数据库知识的思维导图,介绍了数据库基本概念、数据类型、关系数据库基本理论、关系数据库标准语言SQL几个方面的内容,非常的详细。
编辑于2021-09-23 12:49:59数据库
数据库基本概念
1.数据库基本概念
数据:对客观事物的表现形式(本身没有意义,有数字、文本、音频、视频等表现形式)
数据定义语言(Data Definition Language)对数据库中的对象的组成和结构进行定义
数据操纵语言(Data Manipulation Language)
数据库(Database,DB)是长期存储在计算机内,有组织的、可共享的大量数据的集合
数据库的特点
数据结构化:是数据库和文件系统的本质区别,数据库系统实现整体数据的结构化,是数据库的主要特征之一
数据共享性好,冗余度低
数据扩充方便
数据独立性高
逻辑独立性:是指用户的应用程序与数据库的逻辑结构相互独立
物理独立性:是指用户的应用程序与数据库中数据的物理存储是相互独立的
数据由数据库管理系统统一管理和控制
数据库管理系统(Database Management System,DBMS)位于用户与操作系统之间的一层数据管理软件
数据库系统(Database System,DS)是指计算机系统中引入数据库后的系统结构,一般由数据库、数据库管理系统、应用系统、数据库管理员和用户组成。
2.数据管理技术的产生与发展
人工管理阶段:20世纪50年代中期以前,内存容量小,没有可以直接存取的外部存储设备;没有操作系统,没有管理数据的专门软件;数据处理方式是批处理
计算机用于科学计算,数据不保存
应用程序管理数据
数据面向应用程序,数据不共享
文件系统阶段:20世纪50年代后期到60年代中期
数据可以长期保存在外存中,计算机用于数据处理
通过文件系统管理数据,应用程序和数据之间通过文件系统提供的方法进行转换
数据共享性差,冗余度高:文件面向应用程序,为某一应用程序服务,为一对一关系
数据库系统阶段:20世纪60年代以来
数据结构化:文件系统只实现了文件系统内部的结构化,但文件与文件之间独立。数据库系统实现了整体数据的结构化,这种结构可利用参照完整性去表述。实现整体数据的结构化也是数据库系统与文件系统的本质区别。
数据的共享性高,冗余度低,易扩充:数据面向整个系统,而不是某个应用程序,实现了不同应用程序对数据的共享,数据共享降低了数据冗余,节约存储空间。
数据的独立性高:在DBMS中,数据的独立性由二级映像保证
数据由DBMS统一管理和控制:DNMS由数据的安全性保护、完整性检查、并发控制和数据库恢复实现数据控制功能。
3.数据库系统的三级模式结构
模式:也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,是数据在逻辑上的视图。一个数据库只有一个模式。模式是数据库系统模式结构的中间层,与其他任何东西都五官。
外模式:也称子模式或用户模式,是模式的子集,一个数据库有多个外模式。是数据库用户的数据视图,外模式是保证数据安全的重要措施,一个用户只能看见和访问对应的外模式中的数据,而数据库中的其他数据是不可见的。
内模式:也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库中的组织方式,内模式对用户透明,但她的设计会影响数据库的性能,一个数据库只有一个内模式。
4.数据库的二级映像功能
外模式/模式映像:对每一个外模式都应该有一个外模式/模式映像,定义了外模式与模式之间的关系。当数据的存储结构改变(内模式改变),数据库管理员可以通过外模式/模式映像保证模式不变,从而使应用程序不用修改,可以有效保证数据与应用程序在物理上的独立,称为物理独立性。
模式/内模式:唯一,定义全局逻辑结构和存储结构的对应关系。当数据库的存储结构改变(内模式改变),数据库管理员可以通过修改模式/内模式映像来保证模式不变,从而使应用程序不变,保证数据与应用程序在物理上的独立性,成为数据的物理独立性。
5.视图
是一个虚表,是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制。
With Check Option:对视图进行操作时,检查是否符合定义视图子查询的条件表达式。
优点:简单、安全、有独立性、使用户以同一视角看同一数据; 缺点:性能差,更新受限制
数据模型
1.数据模型的基本概念
模型:对现实世界中具体事物的抽象,根据模型应用的不同目的,可以将模型分为:概念模型和数据模型。
数据模型:对现实世界数据特征的模拟或抽象,即数据模型是用来抽象、表示和处理现实世界中数据和信息的。主要包括层次模型、网状模型、关系模型和面向对象模型等。数据模型由数据结构、数据操作和完整性约束三个要素组成。
逻辑模型:按计算机系统的观点对数据进行建模,用于DBMS实现,逻辑模型有五种:层次、网状、关系、面向对象、对象关系模型半结构化。
物理模型:是对数据最底层的抽象,描述数据在系统内部的表示方法和存取方法。
概念模型(信息模型):由设计者按照用户的观点对数据和信息建模,实现对现实世界的抽象概念,主要用于数据库设计,表示方法为E-R图,是现实世界到信息世界的第一层抽象。概念模型只有转换为数据模型后才能在数据库中表示。
数据结构:描述数据的组成对象以及对象之间的联系。
数据操纵:对数据库中各种对象的案例允许执行的操作的集合,包括查询和更新等。
数据完整性约束:是一套完整性规则,保证数据正确、有效、相容。
2.概念模型
定义:用于信息世界的建模,是现实世界到信息时间的第一层抽象,是用户与设计者之间进行交流的语言
概念模型术语
实体:客观存在并且可以相互区分的具体事物或者抽象概念
属性:实体所具有的某个特征
域:属性的取值范围
实体集:具有相同类型和相同属性的实体的集合
实体型:实体集的名称及其所有属性名的集合
码:能够唯一标识实体的属性
联系:实体中属性与属性之间和实体与实体时间的联系:一对一、一对多、多对多
E-R模型:是实体-联系模型:用于描述现实世界的概念模型
3.数据模型
层次模型:是数据库中最早出现的数据模型,用树形结构表示各类实体及实体之间的联系。典型代表是IBM公司开发的IMS(Information Management System)数据库管理系统,曾经广泛使用的大型商用系统。只能直接表示一对多(包含一对一)关系。
网状模型:层次模型中事物的表示是层次的,但是现实世界中事物之间的联系是非层次的,网状模型可以克服。代表是DBTG系统,也称CODASYL系统。层次模型中子女与双亲节点之间的联系是唯一的,在网状模型中不唯一。
关系模型:是目前最重要的数据模型,采用关系模型作为数据的组织方式的系统成为关系数据库系统,关系模型概念简单,数据结构接单,有严格的数学基础。关系模型建立在数学概念的基础上,只包含单一的数据结构-关系,一个关系对应一个二维表。表中的一列表示一种属性。
优点:存取路径对用户透明,具有较强的数据独立性和安全保密性。
缺点:由于保密,导致查询效率不如格式化数据模型,可优化提高性能。
存取结构:关系模型中,实体与实体之间的联系都用表来表示,表以文件形式存储,一个表对应一个文件结构。
面向对象模型:是捕获子啊面向对象程序设计中所支持的对象语义的数据模型。将实体表示为类,类描述了对象属性和实体行为。采用面向对象模型组织方式的数据库系统为面向对象数据库系统。
关系数据库基本理论
提出者:1970年,IBM公司的研究员,有“关系数据库之父”的艾德加·弗兰克·科德(F`F`Codd)发表了“大型共享系统的关系数据库的关系模型”的论文,文中首次提出了数据库系统的关系模型。
关系数据结构
域:是一组具有相同数据类型的值的几何,域中包含的值的个数称为域的基数。
笛卡尔积:是域上的一种集合运算,可表示为二维表,表中的每一行对于一个元组,每一列来自一个域。(表中的一列称为属性,列名即属性名;关系的“目”是指列数,基数指行数。)
候选码:若关系中的某个属性能唯一表示一个元组,又不含多余的属性,则该属性称为关系的候选码或码。
主码:若关系中有多个候选码,则选其中的一个为主码
主属性:任意候选码的属性
非主属性:不包含在任何候选码中的属性
同一列的分量是同一类型的数据,来自同一个域;不同的列也可来自同一个域;行的顺序和列的顺序无关;不能出现两个完全一样的元组;分量必须是元子值。
关系数据库:建立在关系模型上的数据库
关系操作
关系模型中常用的关系操作包括查询、插入、删除和修改,而查询又可以分为:选择、投影、交、并、差、除、连接、笛卡尔积;而选择’投影、并、差和笛卡尔积是五种基本的操作。
关系的完整性约束:是一组完整性规则的集合,是给定的数据模型中的数据及其联系所具有的制约和依存规则。完整性约束包含以下三类:
实体完整性:若属性A是基本关系R的主属性,则A不能取空值。
参照完整性:是对关系之间引用数据的一种限制。
用户自定义完整性
关系代数
传统的集合运算
并
交
差
广义笛卡尔积
专门的关系运算
选择:在关系R中满足给定调节的个元组并生成新的关系。
投影:在关系R中选择若干属性列组成新的关系。
连接:从两个关系R和S的笛卡尔积中选取属性间满足一定条件的元组。
等值连接:=,从关系R与S的笛卡尔积中选取A与B属性值相同的那些元组
自然连接:要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性列去掉。是一种特殊的等值连接。同时从行和列的角度进行运算。
除:同时从行和列的角度进行运算
关系数据库标准语言SQL
SQL概述
SQL概念
结构化查询语言(Structured Query Language,SQL)是关系数据库的标准语言
SQL是1974你那Boyce和Chamberlin提出的。
SQL特点
综合统一:SQL集DDL\DML\DCL于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动。
高度非过程化:不必关系怎么做,只用关系做什么。因此,用户不必关心存取路径,减轻用户负担,提高数据独立性。
面向集合的操作方式:非关系模型采用的是面向记录的方式,SQL采用的是面向集合的方式,操作对象和产生的结果都是集合。
一种语法多种使用方式:SQL能以同一种语法结构提供多种使用方式
语言简洁、易学易用
数据查询:select
数据定义:Create、Drop、Alter
数据操纵:insert、update、delete
数据控制:grant、revoke
SQL对三级模式结构的支持:存储文件的逻辑结构组成了关系数据库的内模式,存储文件的物理文件是任意的,视图是从基本表中导出的表,不独立存在数据库中
参照数据库
数据定义(database definition language,DDL):关系数据库的基本操作对象是基本表、视图和索引。在同一个数据库中不能包含两个完全相同的表名,在表中不能包含两个完全相同的列名。
数据查询:是数据库的核心操作
单表查询
语句格式
Having:如果Group By中含有Having语句,只有满足条件的才被显示
Group By:用于按列名的值进行分组,该列值相等的元组为一个组
Order By:用于按列名的值进行排序,有升序和降序之分。升序:ASC;降序:DESC
查询注意事项
查询列(属性),对应关系代数中的投影;查询行(元组),对应关系代数中的选择
消除查询结果中的重复元素,需要指定Distinct关键字
Like用于字符匹配,%代表任意长度,_代表任意单个字符
当数据库字符为ASCII时,一个汉字字符用两个_代替;当字符为GBK时,一个汉字字符用一个_代替。
通常使用AND、OR、NOT连个多个条件表达式
Order By子句用于对一个属性或者多个属性进行排序
Group By用于将查询结果按某一列或者多列的值进行分组,列值相等的为一组
连接查询:是指查询时设计多个表,是关系数据库中最主要的查询
等值查询:含有=的查询
外连接查询
左外连接查询:left [outer] join
右外连接查询:right [outer] join
全外连接查询:返回左表和右表中的所有元组
自身连接查询
嵌套查询:将一个查询块嵌套在另一个查询块的Where子句或having短语条件中的查询
注意事项:嵌套查询不能在order by中,order by只能对最终结果进行排序
包含In的查询
包含比较运算符的查询
包含any或all的查询
包含exists的子查询:不返回任何实际数据,只产生逻辑真值“true”或逻辑假值“false”
数据更新
插入:insert into 表 values 数值
更新:update 表 set 列=表达式 where 条件
删除:delete from 表 where 条件
关系查询处理和查询优化
1.关系数据库的查询处理
查询处理步骤
1.查询分析:对语句本身进行分析,判断语句是否符合SQL语法规则
2.查询检查:对合法的查询语句进行语义检查,检查数据库对象是否合理;同时,根据数据字典中的用户权限和完整性约束对用户的存取权限进行检查。
3.查询优化:子啊多种执行策略和操作算法中,选择一个高效执行的查询处理策略。包含代数优化(关系代数表达式的优化)和物理优化(对存取路径和底层算法的选择)
4.查询执行:根据优化器得到的执行策略生成查询执行计划,由代码生成器生成执行这个计划的代码,然后加以执行,回送查询结果。
实现查询操作的算法
选择操作:通过扫描存储区域,选择满足条件表达式的数据,有全表扫描和索引扫描
连接操作:是查询中最常用又最耗时的操作,常用的是等值连接,等值连接最常用的算法有四种:嵌套循环算法、排序合并算法、索引连接算法、hash join算法
2.关系数据库的查询优化
查询优化的必要性:是关系数据库管理系统实现的关键技术,也是关系数据库系统的优点。减轻了用户选择存取路径的负担,极大又花了关系数据库管理系统的性能。
查询优化的优点:可从数据字典中获取很多用户程序难以获取的信息
步骤:将查询转换成内部表达式、将语法树转换成标准形式、选择底层存取路径、生成查询计划并选择代价最小的
3.代数优化
通过对关系代数中的等价变换来提高查询效率,等价指用相同的关系代替两个表达式中的对应关系,所得的结果一样。
代数优化改变查询语句的次序和组合,但不改变存取路径
4.物理优化:选择高效合理的操作算法或存取路径,求得优化的查询计划,达到查询优化的目标
基于规则的启发式优化:启发式规则是在任何情况下不能使用,但在大多情况下可以使用。
基于代价估算的优化:通过优化器估算不同执行计划的优化,并选出代价最小的优化
两者结合的优化
数据库完整性
数据库恢复技术
关系数据库设计理论
数据库安全性
定义:数据库安全性指保护数据库,防止不合法使用造成数据泄露、更改或破坏
用户标识鉴别
定义:是系统提供的最外层安全保护措施,保证只有身份合法的用户才能访问
常见的鉴别方式
口令鉴别:最广泛使用的用户鉴别方法
静态口令鉴别
动态口令鉴别
生物特征鉴别
智能卡鉴别
存取控制
定义:由数据库对象和操作类型组成
自主存取控制
定义:是指用指派模式授予用户对于不同的数据库对象有不同的存取权限,不同的用户对于同一个数据库对象也有不同的存取权限
授权:grant语句;收回权限:revoke语句;级联收回:加上cascade
强制存取控制
定义:是指为保证更高程度的安全性,安装TDI/TCSEC标准中安全策略的要求所采取的强制存取检查手段
视图机制
定义:视图对于无权存取的用户是不可见的,通过视图机制能将要保密的数据对无权存取这些数据的用户隐藏
子查询:不运行有order by 和distinct语句
虚表,从一个或几个基本表中导出的表;只存放视图的定义,不存放视图对应的数据
安全审计
定义:审计功能是指用户对数据库的所有操作自动记录下来,放到审计日志中
用户级审计:任何用户都可以设置的审计,主要是用户针对自己创建的数据库表或视图进行审计
系统级审计:只能由数据库管理员设置,用来检测成功或失败的登录请假
数据加密
定义:对敏感的数据,采用数据加密技术