数据库基础知识,超全!!!

今天总结了数据库的知识,手敲不易,点个赞再走吧,持续更新中……

5.1 数据库系统的基本概念

5.1.1 数据、数据库、数据库管理系统

1. 数据

数据定义:描述事物的符号记录
分类:

  • 临时性(随程序的结束而消亡)、持久性(对于数据长时间长时间持久作用)
  • 型(key)、值(value)
    型: 整型、实型、字符型

数据结构:包括了将多种相关数据一一定的结构方式组合构成特定的数据框架
数据库中在特定条件下称数据结构为数据模式

2. 数据库

定义:数据的集合,它具有统一的结构形式并存防御统一的存储介质内,是多种应用数据的集成,并可为各个应用所共享
特点: 集成、共享

3. 数据库管理系统

定义 : 数据库管理系统(database management system. DBMS)是数据库的机构,是一种系统软件,负责数据库的数据组织、操纵、维护、控制、保护、服务等。

数据库管理系统是数据库系统的核心

功能
(1)数据模式定义
(2)数据存取的物理构建
(3)数据操控
(4)数据的完整性、安全性定义与检查
(5)数据库的并发控制与恢复
(6)数据的服务

数据语言
(1)数据定义语言
(2)数据控制语言
(3)数据操控语言

上述数据语言按其使用方式具有两种结构方式:
交互式语言:语言简单,能在终端上即时操作,又称自含型或自主型语言
宿主型语言:一般可嵌入某些宿主语言(host languange),如C/c++\Java等高级过程性语言。

1.关系数据库中普遍使用了 结构化查询语言SQL(structured query language)是一种介于关系代数和关系演算的非过程性操作语言

sql不要求用户指定对数据的存放方式,也不需要用户了解具体的数据存放方式。

2.数据库管理系统还有为用户提供服务的服务性程序
包括:初始装入程序、数据转存程序、性能监测程序、数据库再组织程序、通信程序等

4.数据库管理员

主要工作
(1)数据库设计(数据模式的设计)
(2)数据库维护
(3)改善系统性能、提高系统效率

5.数据库系统

组成部分
数据库(数据)
数据库管理系统(软件)
数据库管理员(人员)
系统平台之一(硬件平台)
系统平台之二(软件平台)

硬件平台:计算机(硬件的基础平台)、网络(结构方式以客户/服务器(C/S)方式与浏览器/服务器(B/S)方式为主)

软件平台:操作系统(软件的基础平台 e.g.UNIX WINDOWS)、数据库系统开发工具(java\c\html等) 、接口软件

6.数据库应用系统(database application system,DBAS)

数据库应用系统组成:
数据库系统+应用软件+应用界面

层次结构:
应用系统>应用开发工具软件>数据库管理系统>操作系统>硬件

5.1.2 数据库系统的发展

三个阶段:
人工管理阶段、文件管理系统、数据库系统阶段

5.1.3 数据库系统的基本特点

1.数据的集成性

表现在以下方面:
(1)统一数据结构方式
(2)全局与局部的结构模式

2.数据的高共享性与低冗余性

减少了不必要的存储空间,避免数据的不一致性(一致性指:系统中的同意数据的不同出现应保持相同的值)

3.数据独立性

  • 物理独立性 : 数据的物理结构改变不影响数据库的逻辑结构从而不影响应用程序
  • 逻辑独立性 : 同上

4.数据统一管理与控制

  • 数据的完整性检查
  • 数据的安全性保护
  • 并发控制

5.1.4 数据库系统的内部结构体系

  • 三级模式
    概念级模式
    (是数据库系统的全局数据逻辑的描述,是全体用户公共数据视图、是一种抽象的描述,不涉及具体的硬件环境与平台、与具体软件环境无关)
    (主要描述数据的概念记录类型以及它们间的关系,还包括一些数据间语义约束,对它的描述可用DBMS中的DDL语言定义)
    内部模式(又称物理模式、给出了数据库的物理存储结构与物理存取方法。内模式的物理模式主要体现在操作系统及文件级上。对一般用户是透明的,其设计直接影响数据库的性能)
    外部模式(用户数据视图)

    以概念模式为框架所组成的数据库叫概念数据库,外模式–用户数据库、内模式–物理数据库
    这是三种数据库真实存在于计算机外存中,其他两种数据库并不真正存在于计算机中,而是通过两种映射有物理数据库映射而成。

  • 二级模式
    (1)概念级到内部级的映射:
    给出了概念模式数据的全局逻辑结构到物理存储结构的关系,此种映射一般由DBMS实现

(2)外部级到概念级的映射
概念模式是一个全局模式,外模式是用户的局部模式
一个概念模式可以定义多个外模式、每个外模式是概念模式的一个基本视图
外模式到概念模式的映射给出了外模式与概念模式的对应关系。一般有DBMS来实现。

5.2 数据模型

5.2.1 数据模型的基本概念

现实世界:所见到的客观世界中的划定边界的一个部分环境
信息世界:通过抽象对现实世界的数据库级上的刻画所构成的逻辑模型
计算机世界: 在信息世界基础上致力于其在计算机物理结构上我的描述,从而形成的物理模型

数据模型: 是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为、约束条件。

数据模型描述内容
(1)数据结构
描述数据类型、内容、性质、数据兼联系
数据操作和数据约束建立在数据结构之上
(2)数据操作
主要描述在相应数据结构上的操作类型与操作方式
(3)数据约束
主要描述在相应数据结构上的语法、语义联系

数据模型按不同应用层次分为三种模型:
(1)概念性数据
面向客观世界、面向用户的模型
(2)逻辑数据模型(又称数据模型)
面向数据库的模型
e.g.层次模型、网状模型、关系模型、面向对象模型
(3)物理数据模型(又称物理模型)
一种面向计算机物理表示的模型,给出数据模型在计算机上的物理结构的表示

5.2.2 E-R 模型(entity-relationship model)

1.E-R 模型的基本概念

(1)实体
是概念世界的基本单位,是客观存在的且又能相互区别的事物。
凡是有共性的实体可以组成一个集合成为实体集。
(2)属性
属性刻画实体的特征
一个属性的取值范围称为该属性的值域(value domain) 或(value set)
(3)联系

实体间的联系:
【1】两个实体集间的联系
e.g. 1:1,M:1,1:M
【2】多个实体集间的联系
【3】一个实体集内部的联系

2. E-R模型的三个基本概念之间的连接关系

(1)实体是概念世界中的基本单位,属性附属于实体,本身并不构成独立单位
属性有属性域,每个实体可取属性域内的值,一个实体的所有属性取值组成了一个值集叫元祖(tuple)
实体有型与值之别,一个实体的所有属性构成了这个实体的型,而实体中属性值的集合构成这个实体的值
(2)实体(集)与联系
实体集间可通过联系建立连接关系

5.2.3 层次模型

基本结构是树形结构

5.2.4 网状模型

网状模型是一个不加任何条件限制的无向图,一般采用分解方法是分成若干个二级树
在网状模型DBTG(data base task group)标准中,
基本结构简单二级树叫(set),基本数据单位是记录(record) 它相当于E-R模型中的实体(集)
记录又可由若干数据项(data item)组成,相当于简单E-R模型中的属性。
系中有一个首记录(owner record) 相当于简单二级树中的根,
若干成员记录(member record) 相当于简单二级树中的叶
首记录与成员记录间的联系用有向线段表示。

5.2.5 关系模型

1.关系的数据结构

关系模型用二维表表示:表框架(frame)+元组(tuple)
表框架由n个命名的属性(attribute)组成,n为属性元数(arity)
每个属性有一个取值范围称为 值域(domain)

每行数据称为元组 ,一个元组有n个元组分量组成,每个元组分量是表框架中每个属性的投影值,一个表框架可以存放m个元组,称m为表的基数。

关系
满足以下7个条件的二维表:
(1)元组个数有限性
(2)元组的唯一性
(3)元组的次序无关性
(4)元组分量的原子性:数据不可分割
(5)属性名唯一性
(6)属性的次序无关性
(7)分量值域的同一性:属性的分量具有与该属性相同的值域

键(或码):标识元素的最小属性集
候选码(候选键):二维表中可能有若干个键
主键(键):从候选键中选取一个作为用户使用的键
外键:表A中某属性集是表B的键,则称该属性集为A的外键

关系元组的分量允许出现空值(null value),但关系的逐渐不能空,需要定义有关空值的运算。

关系框架+关系元祖=关系
语义相关的关系集合=关系数据库
关系的框架成为关系模式
语义相关的关系模式集合构成关系数据库模式
关系模式支持子模式,对应用户数据库称视图。

2.关系操纵

(1)数据查询

  • 一个关系内的查询
    定位->操作
    定位:纵向定位、横向定位
    查询:将定位的数据从关系数据库中取出并放入指定内存

  • 对多个关系间的数据查询
    多个关系合并成一个关系-> 定位 ->操作

(2)数据删除
横向定位(元组选择)->元组删除

(3)数据插入
元祖插入

(4)数据修改
1关系的属性指定
2关系的元祖选择
3两个关系的合并
4一个或多个关系的查询
5关系中元组的插入
6关系中元组的删除

3. 关系中数据的约束

其中前两种完整性约束系统自动支持,最后一种由关系数据库提供完整性数据约束语言,用户利用该语言写出约束条件,运行时由系统自动检查。
(1)实体完整性约束
主键不能为空,因为主键唯一决定元组

(2)参照完整性约束
是关系之间相关联的基本约束,不允许关系引用不存在的元组,即:关系中的外键要么是关联关系中实际存在的元组,要么就为空值

(3)用户定义的完整性约束
针对具体环境与应用环境有用户具体设置的约束,反映应用数据的具体要求

5.3 关系代数

1. 关系模型的基本操作

n元关系R是n元有序组的集合,是它的域的笛卡尔子集。

关系模型的操作
基本操作:属性指定、元祖选择、两个关系的合并、关系的查询、关系元组的插入,关系元组的删除。

2.关系模型的基本运算

(1)插入
(2)删除
(3)修改
(4)查询
(4.1)投影运算:对关系内的域指定可引入的新的运算
(4.2)选择运算:关系R通过选择运算(并由该运算给出所选择的逻辑条件)后仍未一个关系,这关系是由R中那些满足逻辑条件的元组组成)
(4.3)笛卡尔积运算:对于两个关系的合并操作

3.关系代数中的扩充运算

(1)交运算R-S
(2)除运算T/R=S
上述除式能够成立的充分必要条件是:T中的域包含R中的所有属性,T中的有一些域不出现在R中。
(3)连接(join)与自然连接(natural join)运算
连接运算又称 θ \theta θ-连接运算 ,比较式 i θ j i\theta j iθj,i为R中的域,j为S中的域
连接中如果 θ \theta θ为“=”则为等值连接,否则称为不等值连接。
为<时为小于连接,>为大于连接

在实际应用中最常用的连接是自然连接
满足:两关系间有公共域、通过公共域的相等值进行连接

5.4 数据库设计与管理

5.4.1 数据库设计概述

定义: 设计一个能满足用户要求,性能良好的数据库
基本任务: 根据用户对象的信息需求,处理需求和数据库的支持环境(包括硬件、操作系统、DBMS)设计出设计出数据模式
信息需求:用户对象的数据及其结构,反映了数据库的静态结构
处理需求: 表示用户对象的行为和动作,反映了数据库的动态要求

两种方法
(1)面向数据的方法
以信息需求为主,兼顾处理需求
(2)面向过程的方法
以处理需求为主,兼顾信息需求

数据库设计目前一般采用生命周期法,即将整个数据库应用系统大的开发分解成目标独立的若干阶段:
(1)需求分析
(2)概念设计
(3)逻辑设计
(4)物理设计

5.4.2 数据库设计的需求分析

收集到 基础数据与一组数据流图

任务 通过详细调查现实世界要处理的对象,充分了解原系统的信息结构、对整个数据库设计具有深刻影响。

调查的重点是“数据”和“处理” ,通过调查要从中获得的用户数据的要求如下:

(1)信息要求
(2)处理要求
(3)安全性和完整性要求

分析和表达用户的需求方法:
(1)结构化分析(structured analysis)
自顶向下、逐层分解
(2)面向对象

数据字典
是进行详细的数据收集和数据分析所获得的主要结果
通常包含五个部分,即数据项,是数据的最小单位
数据流
可以是数据项也可以是数据结构
表示某一处理过程的输入或输出
数据存储
处理过程中存储的数据

需求分析的注意事项
1,在需求分析阶段一个重要而困难的任务是收集将来应用所涉及的数据
2.必须强调用户的参与

5.4.3数据库概念设计

1. 数据库概念设计概述

目的:分析数据间的内在语义,再此基础上建立一个数据的抽象模型

方法
(1)集中式模式
根据需求由一个统一机构或人员设计一个综合的全局模式
(2)视图集成
将一个单位分解成若干部分,先对每个部分局部模式设计,建立各个部分的视图,然后以个视图为基础进行集成

2.数据库概念设计的过程

3个步骤:
(1)选择局部应用
根据系统的具体情况,在多层数据流图中选择一个适当层级的数据流图,让这组流图中的每一部分对应一个局部应用,以这一层次的数据流图为出发点,设计分E-R图

(2)视图设计
三种设计次序:

  • 自顶而下
  • 由底而上
  • 由内而外:从最基本与最明显的对象着手不不扩充至非基本不明显的其他对象

(3)视图集成
将所有局部视图统一合并成一个完整的数据模式
在进行视图集成时的常见冲突:

  • 命名冲突
  • 概念冲突
  • 域冲突
  • 约束冲突

数据库概念结构的验证:
(1)整体概念结构内部的一致性,不能存在相互矛盾的表达
(2)整体概念结构准确反映原来的每个视图结构,包括属性、实体、实体间的联系
(3)整体概念结构能够满足需求分析阶段所确定的所有要求
(4)整体概念结构最终提交给用户,征求用户和相关人员的意见,进行评审、修改和优化

5.4.4 数据库的逻辑设计

1.从E-R图向关系模式转换

数据库的逻辑设计主要工作是将E-R图转换成指定RDBMS中的关系模式

E-R模型 关系
属性 属性
实体 元组
实体集 关系
联系 关系

转换问题:
(1)命名与属性域的处理
(2)非原子属性处理
E-R图中允许出现非原子属性、关系模式中不允许
非原子属性主要有集合型、元组型
处理方法:集合纵向展开,元组横向展开
(3)联系的转换

2.逻辑模式规范化及调整、实现

(1)规范化
概念的单一化
(2)RDBMS
对逻辑模进行调整以满足RDBMS的性能、存储空间等要求、同时对模式做适应RDBMS限制条件的修改,包括如下内容:
1.调整性能以减少连接运算
2.调整关系大小,使每个关系保持在合理水平,从而可以提高存取效率
3,尽量采用快照(snapshot),因在应用中经常仅需某固定时刻的值,此时可用快照将某时刻固定,并定期更 换,此种方式可以显著提高查询速度

3.关系视图设计

又称外模式设计,是关系模式基础上所设计的直接面向操作用户的视图,可以根据用户需求随时创建,一般RDMS均提供关系视图的功能

关系视图的作用
(1)提供数据的逻辑独立性
应用程序不受逻辑模式变化影响
(2)能够适应用户对数据的不同需求
(3)有一定的数据保密功能
为每个用户划定了访问数据的范围

5.4.5 数据库的物理设计

主要目标 对数据库内部物理结构做调整并选择合理的存取路径,一提高数据库访问速度及有效利用存储空间
一般RDBMS中留给用户参与物理设计的内容大致有:

  • 索引设计
  • 集簇设计
  • 分区设计

5.4.6 数据库管理

包含以下内容:

(1)数据库的建立

  • 数据模式建立
  • 数据加载

(2)数据库的调整

  • 调整关系模式与视图使之更能适应用户的需求
  • 调整索引与集簇使数据库性能与效率更佳
  • 调整分区、数据库大小以及并发度使数据库物理性能更好

(3)数据库的重组

不断删除造成盘区内分块的增多影响I/O速度,由于不断删除和插入而造成的集簇性能的下降,存储性能的离散化

(4)数据库安全性控制与完整性控制

(5)数据库的故障校复

(6)数据库监控

都看到这里啦,还不点个赞再走?qwq

相关文章

SQLite架构简单,又有Json计算能力,有时会承担Json文件/RES...
使用Python操作内置数据库SQLite以及MySQL数据库。
破解微信数据库密码,用python导出微信聊天记录
(Unity)SQLite 是一个软件库,实现了自给自足的、无服务器...
安卓开发,利用SQLite实现登陆注册功能