《软件设计师教程:数据库系统基础知识大总结》

news/2024/5/17 5:44:15

个人主页:李仙桎

   🔥 个人专栏: 《软件设计师》

⛺️生活的理想,就是为了理想的生活!

Alt

 ⛺️前言:各位铁汁们好啊!!!今天继续正式学习中级软件设计师考试相关的内容,后续不断更新中级软件设计师有关知识内容,通过这一个月的学习和总结冲刺通过中级软件设计师的软考认证!!希望各位铁汁多多支持!这一章节主要对数据库系统基础知识进行总结学习。(ps:这一章节在上午考试75道选择题中占比大概6道左右,下午的分析题中有一道15分的分析题,所以要好好学!!!考点: 规范化理论(必考,范式必考)、关系代数(必考))

目录

1、基本概念

1.1、数据库

1.2、数据库管理系统

1.3、DBMS的特征

1.4、DBMS 的分类

2、数据库三级模式两级映像

2.1、三级模式

2.2、两级映射

3、数据库的分析与设计过程

4、数据模型

1.1、ER模型由局部到全局的合成方式

1.2、ER模型转换为关系模型

1.3、关系模型

5、关系代数

5.1、关系模式相关名词

 5.2、七种基本运算

6、数据库完整约束

7、关系新数据库SQL简介 

8、关系型数据库的规范化

8.1、函数依赖

8.2、价值与用途

8.3、键

8.4、范式

 8.5、关系模式的分解

9、数据库的控制功能

9.1、事务管理

9.2、并非控制

​编辑9.3、 备份和我恢复

10、数据仓库与数据挖掘基础

11、大数据基本类型


1、基本概念

1.1、数据库

数据库(Database,缩写为DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。

1.2、数据库管理系统

数据库管理系统(Database Management System,DBMS)是数据库系统的核心软件,要在操作系统的支持下工作,解决如何科学地组织和存储数据、如何高效地获取和维护数据的系统软件问题。其主要功能包括数据定义功能、数据操纵功能、数据库的运行管理、数据组织、存储、管理和数据库的建立与维护。

1.3、DBMS的特征

        (1)数据结构化且统一管理。
        (2)有较高的数据独立性。
        (3)提供数据控制功能。

1.4、DBMS 的分类

(1)关系数据库系统:是支持关系模型的数据库系统。
(2)面向对象的数据库系统:是支持以对象形式对数据建模的数据库系统。
(3)对象关系数据库系统:在传统的关系数据模型基础上,提供元组、数组、集合等更丰富的数据类型以及处理新的数据类型操作的能力,这样形成的数据模型称为对象关系数据模型。基于对象关系数据模型的DBS称为对象关系数据库系统。

2、数据库三级模式两级映像

数据库系统分为了三个级别的层次,即:内模式,概念模式,外模式

2.1、三级模式

  • 内模式:(又称物理数据库模式);它是和物理层次数据库直接关联的,负责管理存储数据的方式,即数据应以什么格式存放在物理文件上面,以及如何优化这些存储方式;该模式的关注点在于数据如何存放上面
  • 概念模式:即数据库中的”表“,在该模式中,根据业务以及应用,数据被分成了若干张”表“,表之间会有相应的关联
  • 外模式:处于用户的应用层次,即数据库中的“视图”,使用户在对数据的控制上有了更多的手段,有了更为灵活的处置方式(表现就是我们现在电脑上看到的淘宝页面将数据展示给我们看)

2.2、两级映射

  • 外模式—概念模式映射:外模式和概念模式具有映射关系,该关系即“视图”和“表”之间的映射关系,表变化,改映射关系,不需要改应用程序
  • 概念模式—内模式映射:即用户想要改变存储结构,我们只需要调整这种映射关系,而不需要去修改用户的应用程序

3、数据库的分析与设计过程

考点:整个设计过程,不同设计阶段的产出物,E-R图

4、数据模型

模型就是对现实世界特征的模拟和抽象。
数学模型是对现实世界数据特征的抽象。
数据模型是用来描述数据的一组概念和定义。
数据模型的三要素是数据结构、数据操作、数据的约束条件。
数据结构:是所研究的对象类型的集合,是对系统静态特性的描述。
数据操作是对数据库中各种对象的实例(值)允许执行的操作的集合,包括操作及操作规则。数据操作是对系统动态特性的描述。
数据的约束条件:是一组完整性规则的集合。对于具体的应用数据必须遵循特定的
语义约束条件,以保证数据的正确、有效、相容。

在ER模型中,矩形表示实体(如学生,课程),椭圆表示属性(如学号,姓名,性别,年龄),菱形表示联系(如选课);其中学生和课程之间具有多对多关系

1.1、ER模型由局部到全局的合成方式

我们在绘制数据库的ER图时,常常从局部开始绘制,然后将许多局部的ER图合成位全局的ER图,而局部的ER图合成全局的ER图时可以有两种方式:逐步集成和一次集成

集成的方法:即逐步集成或者一次集成

  • 逐步集成即首先将两个局部图集成在一起,然后与第三个合并在一起…
  • 一次集成即将所有ER图一次集成;

集成的优点:方式简单,不易出错;缺点:一次集成容易出错,出错后难以纠错,逐步集成步骤繁锁

1.2、ER模型转换为关系模型

一个实体型转换为一个关系模式

  • 1:1联系:即一一对应的关系中,一个实体型转换为一个关系模式,再把这种联系放在任意一个其他实体中,因此在此种转换中需要两个实体的参与
  • 1:n联系:即一对多的关系中,如部门实体与和员工实体之间;仍然是一个实体型转换为一个关系模型,但这种联系只能记录在多这边,如员工
  • m:n联系,即多对多的关系中,此种关系至少需要三个实体参与(多对多的联系也必须转成一个实体

1.3、关系模型

5、关系代数

以选择题的形式出现;有如下运算:并;交;差;笛卡尔积;投影;选择;联接

各个运算的表示符号

        并(∪)、差(-)、笛卡尔积(×)、投影(π)、选择(σ)

5.1、关系模式相关名词

 5.2、七种基本运算

差运算:即得到A集合中B所没有的元素,如A-B即得到B在A中所没有的元素

笛卡尔积中若AXB,则将A第一行记录写下,然后将其重复记录三次,然后将B的三行记录与A重写的记录一一对应的写下,然后对A的第二行记录进行同样的重写,以及将B对应的记录重写…

投影:该操作即将所选的“列”记录下来
图示选择Sno、Sname,那么Sno实际是No001 003 004,Sname同理,所以只有三行

选择:该操作将所选的“行”记录下来
选择是根据某些条件对关系做水平切割,对元组行的选择列出如上述中Sn0-Soooo3(S1),是指从S1中选择Sno字段为Soooo3的数据。

自然联接

概念:自然连接的结果以左侧关系为主,右侧关系去除重复列,如R(A,B,C,D,E)和E(C,D,E,F)进行自然连接的结果为:(A,B,R.C,R.D,R.E,F)

 自然连接会去掉重复的列,所以自然连接后有(R.A、R.B、R.C、R.E、S.E、S.F),但是笛卡尔积不会掉重复列,将R和S笛卡尔积后选择第一列和第五列相同而且第三列和第六列相等的行(选择),然后投影(1、2、3、4、7、8)列的值就是自然选择的结果

根据提早执行选取操作,所以选D

6、数据库完整约束

7、关系新数据库SQL简介 

8、关系型数据库的规范化

8.1、函数依赖

函数依赖:即函数关系,如学号对应姓名,姓名可以重复,但学号是唯一的,且唯一的学号对应相应了可重复的姓名        X->Y

部分函数依赖(部分依赖):主键是两个属性的组合键,若主键中的一部分可以确定某个属性,则为部分函数依赖
通过(学号,课程号)的组合键,可以通过主键的一部分即学号确定姓名属性

传递函数依赖(传递依赖):即:若A可以确定B,B可以确定C,则A可以确定C(注意:B不能确定A,因为此时二者即为等价)

8.2、价值与用途

在非规范化的关系模式中,可能存在的问题包括:数据冗余,更新异常,插入异常,删除异常

解决数据冗余,如在记录大学生所属系别时,DNO和DNAME是唯一对应的,LOCATION也可以根据DNO唯一确定,这里存储重复冗余

8.3、键

考点:候选键的概念、求法、候选键和主键的关系、外键求法

主属性:包含诸为候选码中的所有属性,候选码(AC、AB)所以主属性(A、B、C)

8.4、范式

第一范式的概念:在关系模式R中,当且仅当所有域(列的取值范围,如性别的取值范围就是男和女)列的取值范围只包含原子值,即每个分量都是不可再分的数据项,则称R是第一范式

该表不是1NF,因为高级职称人数还可以分为教授和副教授。去掉高级职称人数,直接写教授、副教授就是1NF

第二范式的概念:当且仅当R是1NF,且每一个非主属性完全依赖(即:主键中的所有属性共同作用才能决定该属性)主键(且不存在部分依赖)时,则称R是第二范式

SNO学号和CNO共同确定成绩GRADE,存在部份依赖,CNO就可以确定课程学分CREDIT

解决方案:把CNO和CREDIT单独提取出来做一个新的关系模式,去掉原来的关系模式的CREDIT主键是单属性,即只有一个,不可能存在部分依赖

第三范式的概念:当且仅当R是2NF,且E中没有非主属性传递依赖于码时,则称R是第三范式

 DNO、DNAME、LOCATION单独提取出成为新的关系模式即为满足第三范式

BCNF的概念:设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每一个依赖的决定因素必定包含R的某个候选码
即把所以依赖写出来,左边部分必须是候选键

 

 8.5、关系模式的分解

关系模式实际上就是记录类型。它的定义包括:模式名,属性名,值域名以及模式的主键。 关系模式不涉及到物理存储方面的描述,仅仅是对数据特性的描述。

范式级别不够时我们采取模式的拆分,拆分完级别就提高了 

9、数据库的控制功能

9.1、事务管理

9.2、并非控制

9.3、 备份和我恢复

10、数据仓库与数据挖掘基础

11、大数据基本类型


http://www.mrgr.cn/p/75463016

相关文章

Ansible 自动化运维

一、介绍 1、定义: ansible是自动化运维工具,基于Python开发,具有批量系统配置、批量程序部署、批量运行命令等功能。 ansible是基于 paramiko(框架) 开发的,并且基于模块化工作,本身没有批量…

node.js egg.js

Egg 是 Node.js 社区广泛使用的框架,简洁且扩展性强,按照固定约定进行开发,低协作成本。 在Egg.js框架中,ctx 是一个非常核心且常用的对象,全称为 Context,它代表了当前 HTTP 请求的上下文。ctx 对象封装了…

java中serverlet的体系结构

GenericServlet继承三个接口,HttpServerlet继承GenericServlet

React-editor-js not showing up in a function component

React-editor-js not showing up in a function component react-editor-js 在react 函数组件中显示不出来 真的,我马上就想放弃它了。但是看它周下载量还挺多,我不信别人没遇到过。于是我继续在网络上挖呀挖。只是我一开始的方向错了。我一直以为我的写…

Profinet转Modbus网关接称重设备与1200PLC通讯

Profinet转Modbus网关(XD-MDPN100)是一种能够实现Modbus协议和Profinet协议之间转换的设备。Profinet转Modbus网关可提供单个或多个RS485接口,使用Profinet转Modbus网关将称重设备与西门子1200 PLC进行通讯,可以避免繁琐的编程和配置过程,节省了工程师的时间和精力。其次,…

自动驾驶横向控制算法

本文内容来源是B站——忠厚老实的老王,侵删。 三个坐标系和一些有关的物理量 使用 frenet坐标系可以实现将车辆纵向控制和横向控制解耦,将其分开控制。使用右手系来进行学习。 一些有关物理量的基本概念: 运动学方程 建立微分方程 主要是弄…

给Qt搭建一个简单的Json服务器用于软件调试

一. vscode+nodejs+npm安装 二. nodejs服务器开启打开vscode - 终端 - 新建终端进入json_server目录 cd D:\json_server运行启动命令, 启动json-server服务器 npm run json:server效果如下: PS D:\json_server> npm run json:server> jsonserver@1.0.0 json:server > …

酒店订单管理系统搭建教程

1、演示环境配置 centos7.9、mysql5.7、php7.2 2、宝塔创建站点记录创建站点时候创建的数据库信息3、上传fastadmin压缩包点击开始上传 4、解压上传的fastadmin5、配置网站目录和运行目录运行目录选择public点击保存即可 6、配置伪静态选择thinkphp 7、直接访问域名根据自己的实…

加速软件定义汽车进程:安波福推出全栈式软硬件平台

随着智能汽车行业的飞速发展,“软件定义汽车”也得到了越来越多行业人士的认可,成为了汽车行业的大势所趋。为了推动和加速软件定义汽车的进程,也有越来越多的科技企业在为其不断添砖加瓦。 2024北京国际车展期间,安波福正式对外展…

14、pWnOS_v2.0(VulnHub)

pWnOS_v2.0 一、nmap 靶机ip找不见的自行上网查找解决办法。二、web渗透 目录爆破/blog/whatweb/search.php/register.php qwe 123qwe点击给定的链接兔子洞,无法登入?一直卡在这个界面wfuzz貌似没什么用nmap -> 目录Simple PHP Blog 0.4.0perl 1191.pl如果出现运行报错Can…

SQL Server实战三:数据库表完整性约束及索引、视图的创建、编辑与删除

本文介绍基于Microsoft SQL Server软件,实现数据库表完整性约束、索引与视图的创建、编辑与删除等操作的方法~本文介绍基于Microsoft SQL Server软件,实现数据库表完整性约束、索引与视图的创建、编辑与删除等操作的方法。 目录1 交互式为数据库表S创建PRIMARY KEY约束2 交互…

上位机开发-PyQt5

PyQt是一套Python的GUI开发框架,即图形用户界面开发框架 其中PyQt是Qt(C语言实现的)为Python专门提供的扩展 PySide官网:Qt for Python 插件安装 pip install 插件名字 # 安装 pip uninstall 插件名字 # 卸载 pip install 插件名字 -i 指定下载的镜…

vue.js 3 初学经验:开发环境搭建,Windows,nginx

Windows 11 nginx-1.20.0 "vue": "^3.4.21" ---序章 vue3 开发,不需要后端服务业是可以的。 在需要后端服务时,使用 nginx 来转发请求是很好的(个人开发者)。注,还有什么其它方式吗? 注,本文的后端服务 是使用 Java 开发的 HTTP 接口。 注,参考资料…

怎么给字符串字段加索引?

怎么给字符串字段加索引? 现在,几乎所有的系统都支持邮箱登录,如何在邮箱这样的字段上建立合理的索引,是我们今天要讨论的问题。 假设,你现在维护一个支持邮箱登录的系统,用户表是这么定义的: …

使用图集Atlas创建Fnt文件的工具

fnt文件生成unity字体的原理其实就是渲染图集Atlas上的Sprite,这边直接利用Unity自带的图集工具生成fnt文件 注意:这里生成的fnt文件还没发直接用,因为没有关联字符,这个工具只是第1步,要配合Fnt编辑工具一起使用 public class SpriteToFntTool : EditorWindow {[MenuItem…

ffmpeg与sdl的个人笔记

说明 这里的ffmpeg基础知识和sdl基础知识仅提及与示例代码相关的知识点, 进阶可学习雷神的博客。 https://blog.csdn.net/leixiaohua1020 当然,如代码写的有问题或有更好的见解,欢迎指正! 音视频基础知识 在学习音视频理论知识时&#xff…

Spirng 当中 Bean的作用域

Spirng 当中 Bean的作用域 @目录Spirng 当中 Bean的作用域每博一文案1. Spring6 当中的 Bean的作用域1.2 singleton 默认1.3 prototype1.4 Spring 中的 bean 标签当中scope= 属性其他的值说明1.5 自定义作用域,一个线程一个 Bean2. 总结:3. 最后:每博一文案 青年,青年!无论受…

EyeDropper 拾色器

EyeDropperEyeDropper:拾色器,从屏幕上选择颜色 需要用户交互操作<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0&…

装饰器模式【结构型模式C++】

1.概述 装饰器模式是一种结构型设计模式&#xff0c; 允许你通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为。 2.结构 抽象构件&#xff08;Component&#xff09;角色&#xff1a;定义一个抽象接口以规范准备接收附加责任的对象。具体构件&#xff08;Concre…