软件设计师(九)数据库技术基础

news2024/11/25 10:38:31

数据库技术是研究数据库的结构、存储、设计、管理和应用的一门软件学科

一、基本概念

1、数据库和数据库系统

数据库系统(DataBase System,DBS)是一个采用了数据库技术,有组织地、动态地存储大量数据,方便多用户访问的计算机系统。DBS 是由数据库、硬件、软件和人员组成

(1)数据库(DataBase,DB)

数据库是相关数据的集合

(2)硬件

硬件是构成计算机系统的各种物理设备,包括存储数据所需的外部设备

(3)软件

包括操作系统、数据库管理系统(DBMS)和应用程序

数据库系统DBS
数据库DB
数据库管理系统DBMS

(4)人员

  • 系统分析员和数据库设计人员
  • 应用程序员
  • 最终用户
  • 数据库管理员(DBA)

2、数据库管理系统的功能

主要实现对共享数据有效的组织、管理和存取

(1)数据定义

数据定义语言DDL

(2)数据库操作

数据操作语言DML
DML分为两类:

  • 宿主型:指将 DML 语句嵌入某种主语言 (如 C、COBOL 等)中使用
  • 自含型:指可以单独使用DML 语句,供用户交互使用。

(3)数据库运行管理

(4)数据的组织、存储和管理

(5)数据库的建立和维护

(6)其他

3、数据库管理系统的特征及分类

(1)特征

  • 数据结构化且统一管理
  • 有较高的数据独立性(物理独立性和逻辑独立性)
  • 数据控制功能(安全性、完整性、并发控制和故障恢复)

(2)分类

  • 关系数据库系统 (Relation DataBase Systems,RDBS)
  • 面向对象的数据库系统 (Object-Oriented DataBase System,OODBS)
  • 对象关系数据库系统(Obiect-Oriented Relation DataBase System,ORDBS)

4、数据库系统的体系结构

数据库系统是数据密集型应用的核心。

角度体系结构
最终用户集中式、分布式、客户端/服务器、并行结构
数据库管理系统三级模式结构

(1)最终用户角度

  • 集中式数据库系统
    不仅数据是集中的,数据的管理也是集中的,数据库系统的所有功能(从形式的用户接口到 DBMS 核心)都集中在 DBMS 所在的计算机上。
    在这里插入图片描述

  • 客户端/服务器数据库系统
    客户端请求被送到服务器上执行。
    客户端主要负责数据表示服务;服务器主要负责数据库服务。
    在这里插入图片描述
    数据库服务器分为事务服务器和数据服务器

  • 并行数据库系统
    并行体系结构是多个物理上连载一个的CPU,分布式系统是多个地理上分开的CPU.
    并行体系结构分为共享内存式多处理器和无共享式并行体系结构
    在这里插入图片描述

  • 分布式数据库系统
    分布式DBMS分为两种:

  • 物理上分布、逻辑上集中的分布式

  • 物理上分布、逻辑上分布的分布式

(2)数据库管理系统 角度

三级模式和两级映像
在这里插入图片描述
在这里插入图片描述

数据按外模式的描述提供给用户,按内模式的描述存储在磁盘上,而概念模式提供了连接这两级模式的相对稳定的中间层,并使得两级中任意一级的改变都不受另一级影响。

  1. 概念模式
    也称模式,它是数据库中全部数据的逻辑结构和特征的描述,由若干个概念记录类型组成,只涉及型的描述,不涉及值。
    具体值称为模式的一个实例,可以有多个实例。
    描述概念记录类型,还要描述记录间的联系、操作以及数据的完整性和安全性等要求。

  2. 外模式
    也称用户模式或子模式,是用户与数据库系统的接口,由若干个外部记录类型组成

  3. 内模式
    也称存储模式,是数据物理结构和存储方式的描述,定义所有的内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。

  4. 两级映像

映像分类说明
概念模式/内模式映像存在于概念级和内部级之间,实现了概念模式和内模式之间的相互转换
外模式/概念模式映像存在于外部级和概念级之间,实现了外模式和概念模式之间的相互转换

两级映像保证了数据库中的数据独立性。
数据的独立性是指数据与程序独立,将数据的定义从程序中分离出去。
独立性包括数据的物理独立性和数据的逻辑独立性。

5、大数据

定义:是指“无法用现有的软件工具提取、存储、搜索、共享、分析和处理的海量的、复杂的数据集合”。
特征:大量化(Volume)、多样化(Variety)、价值密度低(Value)、快速化(Velocity)

二、数据模型

1、定义

数据模型是对现实世界数据特征的抽象。

分类说明
概念数据模型也称信息模型,是按用户的观点对数据和信息建模,主要用于数据库设计。最著名的是实体-联系模型,简称E-R模型
基本数据模型按计算机系统的观点对数据建模。基本的数据模型有层次模型、网状模型、关系模型和面向对象模型

2、数据模型的三要素

数据库结构的基础是数据模型,数据模型的三要素是数据结构、数据操作和数据的约束条件

三要素说明
数据结构数据结构是所研究的对象类型的集合,是对系统静态特性的描述。
数据操作数据操作是对数据库中各种对象 (型) 的实例(值) 允许执行的操作的集合,包括操作和操作规则。
数据的约束条件数据的约束条件是一组完整性规则的集合。对于具体的应用数据必须遵循特定的语义约束条件

3、E-R模型

概念数据模型是对信息世界建模,最常用的是实体-联系模型(E-R模型)

(1)实体

在E-R模型中,实体用矩形表示,通常矩形框内写明实体名。
实体是现实世界中可以区别其他对象的事件或物体。
实体集市具有相同属性的实体集合。

(2)联系

在E-R模型中,联系用菱形表示,通常菱形框内写明联系名。并用无向边分别与实体连接,在无向边旁标注联系的类型。
实体的联系分为实体内部的联系和实体与实体之间的联系

  1. 两个不同实体集之间的联系
    存在3中联系类型:一对一、一对多、多对多
    在这里插入图片描述

  2. 多个不同实体集之间的联系
    多个不同实体集之间存在 1:1:1、1:1:n、1Ⓜ️n 和rⓂ️n 的联系。
    在这里插入图片描述

  3. 同一实体集内的二元联系
    同一实体集内的各实体之间也存在 1:1、1:n 和 m:n 的联系
    在这里插入图片描述

(3)属性

属性是实体某方面的特性。

分类说明
简单属性和复合属性简单属性是原子的、不可再分的。复合属性可以细分为更小的部分
单值属性和多值属性一个属性可能对应一组值。例如职工家属属性
NULL属性当实体在某个属性上没有值或属性值未知时,使用 NULL 值,表示无意义或不知道
派生属性派生属性可以从其他属性得来,根据生日获取年龄

(4)实体-联系方法

构件说明
矩形表示实体集
双边矩形表示弱实体集
菱形表示联系集
双边菱形表示弱实体集对应的标识性联系
椭圆表示属性
线段将屈性与相关的实体集连接,或将实体集与联系集相连
双椭圆表示多值属性
虚椭圆表示派生属性
双线表示一个实体全部参与到联系集中

(5)扩充的E-R模型

包括弱实体、特殊化、普遍化

  1. 弱实体
    在这里插入图片描述

  2. 特殊化

学生实体集可以分为研究生、本科生和大专生等子集。将这种从普遍到特殊的过程称为“特殊化”
将几个具有共同特性的实体集概括成一个更普遍的实体集的过程称为“普遍化’。

设有实体集E,如果S是E的某些真子集的集合,记为 S={ S i S_i Si | S i ⊂ E , i = 1 , 2 , … , n S_i \subset E,i=1,2,\ldots,n SiEi=1,2,,n },则称S是E的一个特殊化,E是 S 1 , S 2 , … , S n S_1, S_2,\ldots, S_n S1,S2,Sn的超类, S 1 , S 2 , … , S n S_1, S_2,\ldots, S_n S1,S2,Sn称为E的子类
如果 ⋃ i = 1 n S i = E \displaystyle\bigcup_{i=1}^{n} S_i= E i=1nSi=E ,则称S是E 的全特殊化,否则是E 的部分特殊化。
如果 S i ⋂ S j = Φ S_i \bigcap S_j = \Phi SiSj=Φ i ≠ j i≠j i=j,则S 是不相交特殊化,否则是重叠特殊化。

4、关系模型

最常用的数据模型之一。
关系数据库系统采用关系模型作为数据的组织方式,在关系模型中用表格结构表达实体集以及实体集之间的联系,其最大特色是描述的一致性。

三、关系代数

1、关系数据库的基本概念

(1)属性和域

描述一个事物的特征,称为属性。
每个属性的取值范围对应一个值的集合,称为该属性的域。

(2)笛卡尔积与关系

(3)关系的相关名词

  • 目或度、
  • 候选码:若关系中的某一属性或属性组的值能唯一的标识一个元祖(记录),则称该属性或属性组为候选码,例如身份证号
  • 主码:若一个关系有多个候选码,则选定其中一个为主码。
  • 主属性:包含在任何候选码中的所有属性称为主属性。不包含在任何候选码中的属性称为非码属性。
  • 外码:如果关系模式 R 中的属性或属性组非该关系的码,但它是其他关系的码,那么该属性集对关系模式 R而言是外码。
  • 全码:关系模型的所有属性组是这个关系模式的候选码,称为全码。

(4)关系的3种类型

  1. 基本关系:通常又称为基本表或基表,它是实际存在的表,是实际存储数据的逻辑表示。
  2. 查询表:查询表是查询结果对应的表。
  3. 视图表:视图表是由基本表或其他视图表导出的表。由于它本身不独立存储在数据库数据库中只存放它的定义,所以常称为虚表。

(5)关系数据库模式

在数据库中要

(6)完整性约束

关系的完整性分为3类:实体完整性、参照完整性、用户定义完整性

(7)关系运算

关系操作的特点是操作对象和操作结果都是集合,而非关系数据模型的数据操作方式则为一次一个记录的方式。
关系数据语言分为3类::关系代数语言,关系演算语言,具有关系代数和关系演算双重特点的语言(SQL)
关系代数运算符包括4类:集合运算符、专门的关系运算符、比较运算符、逻辑运算符
在这里插入图片描述

2、基本的关系代数运算

(1)并

关系R与S具有相同的关系模式,即 R与S的元数相同(结构相同)。关系R与S的并是由属于 R 或属于 S的元组构成的集合,记作 R U S。

(2)差

关系 R与 S 具有相同的关系模式,关系 R 与 S 的差是由属于 R 但不属于 S 的元组构成的集合,记作 R-S

(3)广义笛卡尔积

两个元数分别为 n 目和 m 目的关系 R 和 S的广义笛卡儿积是一个(n+m)列的元组的集合。元组的前 n 列是关系 R 的一个元组,后 m 列是关系 S 的一个元组,记作 RXS

(4)投影

投影运算是从关系的垂直方向进行运算,在关系 R 中选出若干属性列 A组成新的关系,记作 π A ( R ) \pi_A(R) πA(R)

(5)选择

选择运算是从关系的水平方向进行运算,是从关系 R 中选择满足给定条件的诸元组,记作 σ F ( R ) \sigma_F(R) σF(R).

3、拓展的关系代数运算

(1)交

关系 R与 S具有相同的关系模式,关系 R与 S 的交是由属于 R 同时又属于 S 的元组构成的集合,记作 R ⋂ S R \bigcap S RS

(2)连接

连接分为 θ \theta θ 连接、等值连接和自然连接 3 种

(3)除

(4)广义投影

(5)外连接

外连接运算是连接运算的扩展,可以处理由于连接运算而缺失的信息。
外连接运算有3种:左外连接、右外连接和全外连接。

四、关系数据库SQL语言简介

1、SQL数据库体系结构

SQL主要有3个标准: ANSI SQL;SQL-92(SQL2);SQL-99(SQL3)

(1)SQL的特点

  1. 综合统一
  2. 高度非过程化
  3. 面相集合的操作方式
  4. 两种使用方式
  5. 语言简洁、易学易用

(2)SQL支持三级模式结构

试图对应外模式,基本表对应模式、存储文件对应内模式。
在这里插入图片描述

2、SQL的基本组成

  1. 数据定义语言。SQL DDL 提供定义关系模式和视图、删除关系和视图、修改关系模式的命令。
  2. 交互式数据操纵语言。SQL DML 提供查询、插入、删除和修改的命令
  3. 事务控制 (Transaction Control)。SQL 提供定义事务开始和结束的命令。
  4. 嵌入式 SQL 和动态 SQL (Embeded SQL and Dynamic SQL)。用于嵌入到某种通用的高级语言(C、C+、Java 等) 中混合编程。其中,SQL 负责操纵数据库,高级语言负责控制程序流程
  5. 完整性(Integrity)。SQL DDL 包括定义数据中的数据必须满足的完整性约束条件的命令,对于破坏完整性约束条件的更新将被禁止。
  6. 权限管理 (Authorization)。SQL DDL 中包括说明对关系和视图的访问权限

3、SQL数据定义

SQL的数据定义包括对表、视图、索引的创建和删除。

(1)表

  • 创建表(create table)
  • 修改表 (alter table)
  • 删除表 (drop table)

(2)索引

  1. 创建索引 (create [unique] [cluster] index)
  2. 删除索引 (drop index )

(3)视图

  1. 创建视图 (create view xx as select 查询子句)
  2. 删除视图 (drop view)

(4)SQL数据查询

(5)SQL数据更新

(6)SQL访问控制

(7)嵌入式SQL

SQL 提供了将 SQL 语句嵌入到某种高级语言中的使用方式,通常采用预编译的方法识别嵌入到高级语言中的 SQL 语句。
嵌入式SQL与主语言之间的通信通常有3种方式:

  1. SOL 通信区 (SOL Communication Area,SQLCA) 向主语言传递 SQL 语句执行的状态信息,使主语言能够根据此信息控制程序流程。
  2. 主变量也称共享变量。主语言向 SQL 语句提供参数主要通过主变量,主变量由主语言的程序定义,并用 SQL的 DECLARE 语句说明。在引用时,为了与 SQL 属性名相区别,需要在主变量前加“.”
  3. 游标 SQL 语言是面向集合的,一条 SQL 语句可产生或处理多条记录,而主语言是面向记录的,一组主变量一次只能放一条记录。所以,引入游标,通过移动游标指针来决定获取哪一条记录。

五、关系数据库的规范化

1、函数依赖

2、规范化

3、模式分解及分解应具有的特性

六、数据库的控制功能

1、事务管理

事务是一组操作的集合,要么都做,要么都不做。

  • BEGIN TRANSACTION: 事务开始
  • COMMIT:事务提交
  • ROLLBACK:事务回滚

事务原子性:原子性 (Atomicity)、一致性 (Consistency)、隔离性 (Isolation) 和持久性(Durability)

2、数据库的备份和恢复

数据库的关键技术在于建立冗余数据,即备份数据。
系统出现故障后,能够及时的使数据库恢复到故障前的正确状态,就是数据库恢复技术。

(1)故障类型

分类说明
事务内部故障有的可以通过事务程序本身发现,有的是非预期的,例如运算溢出、并发事务发生死锁等
系统故障通常称为软故障,是指造成系统停止运行的任何事件,使得系统要重新启动,如CPU故障、操作系统故障、断电
介质故障通常称为硬故障,如磁盘损坏、磁头碰撞和瞬时强磁干扰
计算机病毒计算机病毒是一种人为的故障和破坏

(2)备份方法

分类说明
静态转储和动态转储静态转储是指在转储期间不允许对数据库进行任何存取、修改操作;动态转储是在转储期间允许对数据库进行存取、修改操作。因此,转储和用户事务可并发执行。
海量转储和增量转储海量转储是指每次转储全部数据;增量转储是指每次只转储上次转储后更新过的数据。
日志文件在事务处理的过程中,DBMS 把事务开始、事务结束以及对数据库的插入删除和修改的每一次操作写入日志文件。

(3)恢复

  1. 反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。
  2. 对事物的更新操作执行逆操作。
  3. 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样的处理,直到事务的开始标志。

(4)数据库镜像

数据库镜像是通过复制数据实现的,用于数据库恢复。

3、并发控制

所谓并发操作,是指在多用户共享的系统中许多用户可能同时对同一数据进行操作。

(1)带来的问题

就是数据的不一致,分为三类:丢失更新、不可重复度、读脏数据
在这里插入图片描述

(2)并发控制技术

并发控制的主要技术是封锁。基本封锁的类型有排它锁(简称 X 锁或写锁)和共享锁 (简称 S 锁或读锁)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/716303.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

公众号授权登录h5

公众号授权登录h5 . 前几天一个月薪35k的兄弟,给我推了一个人工智能学习网站,看了一段时间挺有意思的。包括语音识别、机器翻译等从基础到实战都有,很详细,分享给大家。大家及时保存,说不定啥时候就没了。 . 步骤 …

认识JavaScript

大家好,今天我们来认识一下JavaScript相关内容 目录 🐷1.JavaScript是什么🐷2.JavaScript发展史🐷3.JavaScript 和 HTML 和 CSS 之间的关系🐷4.JavaScript 运行过程🐷5.JavaScript 的组成🐷6.用JavaScript写…

JavaScript 实现一键复制(id,账号)

文章目录 HTML准备JavaScript 逻辑css 在前端有很多的时候需要一键复制账号,密码等,比如QQ的复制QQ账号,一些程序应用的个人信息页,都会有一键复制这个功能,下面给大家分享一下一键复制的实现方法 HTML准备 先提前准备…

【Linux修炼】开发工具使用

🌇个人主页:平凡的小苏 📚学习格言:命运给你一个低的起点,是想看你精彩的翻盘,而不是让你自甘堕落,脚下的路虽然难走,但我还能走,比起向阳而生,我更想尝试逆风…

计算机丢失msvcr110.dll是什么意思?那个修复方法更简单

Windows系统的电脑运行一段时间,总是不可避免出现一些系统报错,比如在运行游戏或游戏的时候,报错提示“计算机丢失msvcr110.dll”,“找不到msvcr110.dll”是什么意思呢?我是运行photoshop的时候报错的,场景…

Paddle:SSLD 知识蒸馏实战

SSLD 知识蒸馏实战 论文:https://arxiv.org/abs/2103.05959 1. 算法介绍 1.1 简介 PaddleClas 融合已有的知识蒸馏方法 [2,3],提供了一种简单的半监督标签知识蒸馏方案(SSLD,Simple Semi-supervised Label Distillation),基于 I…

如何解释商业智能BI?商业智能BI未来的发展趋势?

商业智能BI能够成为当前商业世界中备受企业欢迎的数据类技术解决方案其实是有原因的,早在1958年,IBM研究员就将商业智能BI的早期形态定义为:“对事物相互关系的一种理解能力,并依靠这种能力去指导决策,以达到预期的目标…

【Python】正则表达式匹配大部分Url

正则表达式: r’(\w://)?(\w)(.\w).(\w)(/\w)(.\w)?(?(\w\w)(&\w\w))?’ 解释:

World macheine和Houdini这两个软件在游戏地形制作中如何选择?

本文仅针对“World macheine和Houdini这两个软件在游戏地形制作中如何选择?”做出回答。 简单介绍 World Machine: World Machine是一款专业的地形生成软件。它提供了一套强大的工具和节点系统,用于创建高度图和地形。World Machine可以帮助…

opencv使用applyColorMap()函数,可以将灰度图或彩色图转换成自定义的彩色图,或opencv提供的20多种色彩值

文章目录 1、applyColorMap()函数的使用:(1)函数原型:void applyColorMap(InputArray src, OutputArray dst, int colormap)void applyColorMap(InputArray src, OutputArray dst, InputArray userColor) (2&#xff0…

PMP证书为什么可以不用考试就可以获得CSPM二级证书?

一、PMP证书介绍 PMP是指项目管理专业人士(Project Management Professional),是国际上公认的项目管理领域的权威认证。PMP认证由美国项目管理协会(PMI)颁发,是全球范围内最具权威性、最受认可的项目管理专…

Jmeter使用之:怎么编写扩展函数(一)

目录 前言: 1、首先编写我们的java类,如具体代码如下: 2、使用eclipse把java导出成jar包,如timetool.jar。 3、Jmeter 测试计划底部的library找到timetool.jar,导入进去。 4、在Jmeter测试计划下新建线程组&#…

咨询第三方软件测试机构报价时,软件企业应该准备什么?

随着软件行业的快速发展,软件企业也面临着越来越大的市场竞争压力。为了确保软件产品的质量和稳定性,许多企业开始选择外包软件测试服务。然而,在咨询第三方软件测试机构报价之前,软件企业需要做好一些准备工作,以获得…

AI很渴:chatGPT交流一次=喝掉一瓶水,GPT3训练=填满核反应堆

流行的大型语言模型(LLM),如OpenAI的ChatGPT和Google的Bard,耗能巨大,需要庞大的服务器农场提供足够的数据来训练这些强大的程序。对这些数据中心进行冷却也使得AI聊天机器人对水的需求量极大。新的研究表明&#xff0…

小白到运维工程师自学之路 第四十五集 (生产级Redis Cluster部署)

一、概述 Redis Cluster是Redis数据库的一种分布式解决方案,用于在多个节点上分布和 管理数据。它通过将数据分片存储在不同的节点上,实现数据的分布式存储和处理。 Redis Cluster采用主从复制的方式来保证数据的高可用性和容错性,每个主节…

ai绘画二次元软件免费的哪个好?这些二次元ai绘画软件比较好

小伙伴好呀,今天我要和你们分享一个超酷的话题——ai绘画二次元作品!是不是感觉很时髦?没错,现在我们不再局限于传统的绘画方式,而是可以通过ai技术来创造出令人赞叹的二次元世界。你不需要成为一名艺术大师&#xff0…

从文档智能开始洞察一切

文档智能 Document Intelligence 即使在当今数字至上的时代,许多交易仍依赖于发票、合同、法律文件、员工记录、财务报表等纸质文件。当企业希望对纸质记录进行数字化处理,以便搜索、保存和提取有价值的数据以用于决策和市场开拓,AI支持的文…

【教学类-36-05】动物头饰制作2.0(midjounery动物简笔画四图)一页两种动物

作品展示 背景需求: 头饰1.0的教学实践发现,完全可以利用裁剪的边缘纸条作为头饰的套环。因此重新设计word模板,合理布局图案位置,设计了一页2份的头饰。 原来样式:一页一份动物(4个) 现在样式…

16-Linux背景知识

目录 1.Linux是什么? 2.Unix & Linux 发展历程图 3.Linux 发行版 PS:CentOS 和 RedHat 的关系 4.关于 Linux 学习什么? 4.1.基础命令(重点) PS:使用命令相比于使用图形界面的主要好处 4.2.系统编程 &…

IP地址定位在电商行业中的应用

最新数据显示,随着电商行业的快速发展越来越多的企业开始将IP地址定位技术应用于其业务中。IP地址定位是一种利用互联网上的IP地址来确定用户地理位置的技术它通过识别用户的IP地址,从而可以实时追踪和定位他们的位置。 在电商行业中,IP地址定…