(科目三)数据库基础知识
1、基本概念
1.1 数据库
1、数据、信息和数据处理
-
数据是指表达信息的某种物理符号;
-
信息是对客观事物的反映,是为某一特定目的二提供的决策数据;
-
数据处理是指将数据转换成信息的过程,是对各类型的数据进行收集、整理、存储、分类、加工、检索、维护、统计传播等一系列活动的总称。
2、数据库、数据库管理系统、数据库应用系统和数据库系统。
- 数据库:是存储在计算机设备上、结构化、相互关联的数据集合。(DB)
- 数据库管理系统:为数据库的建立、使用和维护二配置的系统软件,数据库系统的核心。(DBMS)
- 数据库应用系统:系统开发人员利用数据库系统资源开发出来的、面向某个具体应用的计算机软件系统.
- 数据库系统:引进数据库技术的计算机系统,实现有组织、动态地存储大量相关数据,提供数据处理和信息资源共享的便利手段;由5个部分组成:硬件系统、数据库集合、数据库管理系统、以及相关软件、数据库管理员和用户。
1.2 数据库系统的结构
数据库系统在总体结构上一般是三级模式的结构特征,即外模式、模式和内模式,分别反映了看待数据库的三个角度。
- 外模式:也称子模式或用户模式,是数据库用户看见和使用的局部数据的逻辑结构和特征的描述。
- 模式:又称概念模式或逻辑模式,是数据库中全体数据的逻辑结构和特征的描述。
- 内模式:又叫做存储模式,是数据在数据库系统中的内部表示,即数据的物理结构和存储方式的描述。
- 三级模式之间的关系:数据库系统正在三级模式中提供了两次映像:外模式到模式的映像和模式到内模式的映像,而这两次映像就实现了数据库中数据两个层次的独立性,即逻辑独立性和物理独立性。
2、数据库技术的发展
数据处理的核心问题是数据管理。
数据管理技术的发展,经历了三个阶段:人工管理、文件系统管理、和数据库管理。
发展阶段 | 主要特征 |
---|---|
人工管理(1953-1965) | 1、数据与程序彼此依赖,自组数据分别对应一组程序。 2、不同应用程序之间不能共享数据,数据冗余量。 |
文件管理系统(1965-1970) | 1、数据与程序分开存储,相关数据组织称一种文件,由一个专门的文件不安利系统实施统一管理,应用程序通过文件管理系统对数据文件中的数据进行加工处理; 2、数据与数据之间没有有机的联系,数据的通用性较差,冗余量大; 3、数据文件仍高度依赖于对应的程序,同一数据文件很难被不同的应用程序共享。 |
数据库管理(1970-今) | 1、对所有数据实行统一管理,供不同用户共享; 2、数据文件之间可以建立关联关系,数据冗余性大大减少; 3、数据与应用程序之间完全独立,减少了应用程序开发和维护的代价。 |
3、数据库技术的实现
3.1 三个世界的转换
1、现实世界
数据库管理的对象存在于现实世界中,现实世界中的事物存在着各种各样的联系。这种联系是客观的,是由事物本身的性质决定的。
2、概念世界
概念世界也叫信息世界,是现实世界在人们头脑中的反映,是对客观事物及其联系的一种抽象描述。
现实世界到概念世界是通过概念模型来表达的。
3、数据世界
存入计算机系统中的数据是将概念世界的事物数据化的结果。为准确地反映视为本身及事物之间的各种联系,数据库中的数据一定存在一个结构,数据模型可用来准确描述这种结构。
在实践数据库管理,也就是三个世界的转化过程中,概念模型和数据模型是实现世界数据化的桥梁,是对实现现实世界数据化的桥梁,是对现实世界中的事物进行抽象的工具。
3.2数据模型
数据模型是数据库管理系统用来表示实体和实体间联系额方法,反映了数据之间存在的整体逻辑关系,其要素包括:数据结构、数据操作、和数据约束条件。数据模型主要包括层析模型、网状模型和关系模型等。
1、层次模型:用树型结构表示实体及其之间的联系。在这种模型种,记录类型位结点,由父结点和子节点构成。除根节点以外,任何结点只有一个父节点。
2、网状模型::用网状结构来表示实体及其之间的联系。在这种模型种记录类型位结点,由系欸但那及结点间的相互关联构成;允许结点由一个以上的父节点,或一个以上的结点没有父节点。
3、关系模型:关系模型使用二位表格结构表示实体及其之间的联系。关系模型以关系舒徐理论位基础,一个二维表就是一个关系,不仅能描述实体本身,还能反应实体之间的联系。
3.3 基本概念
实体:指客观存在且相互区别的事务。
属性:指实体所具有的某一特性。
实体型:用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
实体集:同型实体的集合。属性的结合表示一个具体的实体;属性的集合表示一种实体型,同类型的实体的集合位实体集。
联系:实体之间的对应关系,它反映现实世界事物之间的关联。
实体联系的类型由:一对一、一对多、多对多。
3.4 关系型数据库
一、基本概念
关系型数据库:由关系模型构成的数据库;
关系模型:对关系的描述,格式为:关系名(属性1,属性名2,……);
关系:一个关系即一张二维表,每个关系有一个关系名,比如在Visual Foxpro中,一个关系存储为一个文件,即:表(.dbf);
关系的特点:规范化、属性和元组的特性:值异、次序不重要;
元组:一个关系(表)中,水平方向的行;
属性:二维表中垂直方向的列。
域:属性的取值范围;
主关键字:属性或属性的结合,关键字的值能唯一标识一个元组;
外部关键字:表中的一个字段不是本表的主关键字或候选关键字,而是另一个表的主关键字,该字段成为外部关键字。
3.5 关系运算
关系的基本运算由两类:一类是传统的几何运算(并、交、差等),另一类是专门的关系运算(选择、投影、连接)。
- 选择:找出水平方向的
- 投影:找出垂直方向的
- 连接:对应链接。可以连接表明两个关系中都有相同的属性。取掉相同属性列,叫自然连接。
3.6数据完整性
数据完整性格是指保证数据正确的特性。
- 实体完整性:保证表中记录唯一的特性,即在一个表中不允许有重复的记录,比如,在Visual Foxpro中通过主关键字(主索引)或候选关键字(候选索引)来确保实体完整性。
- 域完整性:数据表中字段属性的约束,常指数据的有效性,它包括字段值域、字段的烈性及字段的有效规则等约束。
- 参照完整性:厎关系数据库中建立永久关联关系的数据表间数据参照引用的约束,也即当插入、删除和更新一个表中的数据时,通过参照引用相互关联的另一个表中的的数据,连检查相关联的表的数据操作是否准确
4、数据库设计
4.1 数据库设计方法
1、手工试凑法
2、规范设计法:具体步骤:需求分析、概念设计、逻辑设计和物理设计等。
4.2 数据库设计步骤
1、需求分析:这简短的工作是超能股份调查研究,了解用户需求。
2、概念结构设计。概念结构是整个系统的信息结构,它是现实世界的真实反映,包括实体与实体之间的关系。
3、逻辑结构设计。这个阶段的任务是将概念结构转换成与所选中DBMS所支持的数据模型相符合的过程。
4、物理机构设计。这个阶段的任务主要视为了一个给定的逻辑数据模型选取一个合适的物理结构,并对物理结构进行评价。
5、编码测试。进入这个阶段后,就要按照逻辑设计和物理设计的结果利用DBMS的数据定义语言把数据库描述出来。
6、运行维护。试运行的主要工作是检查应用程序的功能,测量系统的性能指标,在物理设计阶段所做的评估是否正确,此时可以得到检验。
4.3 数据库设计规范
1、范式
规范化是数据库设计中的一个重要过程,可以通过它来提出数据库中冗余的数据。
EF-Codd子1977奶奶提出规范化理论,他和后来的研究人员为数据库定义了五中规范化模式,简称范式。
2、规范化的优点
- 规范化大大减少了数据冗余
- 罚金了数据库整体组织
- 增强了数据的一致性
- 增加了数据库设计的灵活性
3、常用范式
第一范式:规定表的每个列的值都是不可分的简单数据项。在任何一个数据库中工,第一范式都是一个最基本的要求。
第二范式:有两项要求,所有表必须符合第一范式:表中每一个非主键列完全函数依赖于主键(关键字)。
第三范式:有两项要求,所有表必须满足第二范式:表中每一个非主键对主键都不存在传递依赖,而应是直接依赖。
相关文章:
(科目三)数据库基础知识
1、基本概念 1.1 数据库 1、数据、信息和数据处理 数据是指表达信息的某种物理符号; 信息是对客观事物的反映,是为某一特定目的二提供的决策数据; 数据处理是指将数据转换成信息的过程,是对各类型的数据进行收集、整理、存储、…...

Unity性能优化篇(十) 模型优化之网格合并 Easy Mesh Combine Tool插件使用以及代码实现网格合并
把多个模型的网格合并为一个网格。可以使用自己写代码,使用Unity自带的CombineMeshes方法,也可以使用资源商店的插件,在资源商店搜Mesh Combine可以搜索到相关的插件,例如Easy Mesh Combine Tool等插件。 可大幅度减少Batches数量…...

0.8秒一张图40hx矿卡stable diffusion webui 高质极速出图组合(24.3.3)
新消息是。经过三个月的等待,SD Webui (automatic1111)终于推出了新版本1.8.0,本次版本最大的更新,可能就是pytorch更新到2.1.2, 不过还是晚了pytorch 2.2.2版。 不过这版的一些更新,在forget分支上早就实现了,所以。…...

手写分布式配置中心(四)增加实时刷新功能(长轮询)
上一篇文章中实现了短轮询,不过短轮询的弊端也很明显,如果请求的频率较高,那么就会导致服务端压力大(并发高);如果请求的频率放低,那么客户端感知变更的及时性就会降低。所以我们来看另一种轮询…...

03 | 事务隔离:为什么你改了我还看不见?
提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务。最经典的例子就是转账,你要给朋友小王转 100 块钱,而此时你的银行卡只有 100 块钱。 转账过程具体到程序里会有一系列的操作,比如查询余…...

Jmeter读取与使用Redis数据
Jmeter 作为当前非常受欢迎的接口测试和性能测试的工具,在企业中得到非常广泛的使用,而 Redis 作为缓存数据库,也在企业中得到普遍使用, Redis服务和客户端安装 windows下安装 默认端口:6379 下载地址: …...
flask 支持跨域访问 非常简单的方式 flask_cors
安装 pip install -U flask-cors from flask import Flask from flask_cors import CORSapp Flask(__name__) CORS(app)app.route("/") def helloWorld():return "Hello, cross-origin-world!"参考 https://www.cnblogs.com/anxminise/p/9814326.html …...

Hololens 2应用开发系列(1)——使用MRTK在Unity中设置混合现实场景并进行程序模拟
Hololens 2应用开发系列(1)——使用MRTK在Unity中进行程序模拟 一、前言二、创建和设置MR场景三、MRTK输入模拟的开启 一、前言 在前面的文章中,我介绍了Hololens 2开发环境搭建和项目生成部署等相关内容,使我们能生成一个简单Ho…...

Newtonsoft.Json
目录 引言 1、简单使用 1.1、官方案例 1.2、JsonConvert 2、特性 2.1、默认模式[JsonObject(MemberSerialization.OptIn/OptOut)] 2.2、序列化为集合JsonArrayAttribute/JsonDictionaryAttribute 2.3、序列化该元素JsonProperty 2.4、忽略元素JsonIgnoreAttribute 2.5、…...
速卖通平台的API返回结果有哪些数据字段?
速卖通(AliExpress)作为阿里巴巴旗下的国际电商平台,提供了API接口供开发者使用,以获取商品、订单、物流等各种信息。然而,速卖通API返回的具体数据字段可能会随着API版本、接口类型以及时间的变化而有所不同。 在编写…...
C++ 标准模板库(STL)
1、vector 动态数组,可随时添加删除元素,在堆空间开辟内存。 方法含义front() 返回第一个元素O(1) back()返回最后一个元素O(1)pop_back()删除最后一个元素O(1)push_back(ele)在末尾插入元素O(1)size()返回实际元素个数O(1)clear()清除所有元素O(N)resi…...
【Javascript】设计模式之发布订阅模式
文章目录 1、现实中的发布-订阅模式2、DOM 事件3、简单的发布-订阅模式4、通用的发布-订阅模式5、先发布再订阅6、小结 发布—订阅模式又叫观察者模式,它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于…...

DataLoader
import torchvision from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter# 准备的测试数据集 数据放在了CIFAR10文件夹下test_data torchvision.datasets.CIFAR10("./CIFAR10",trainFalse, transformtorchvision.transfor…...

持续集成(CICD)- Jenkins+Git+gogs综合实战(笔记二)
文章目录 七、拉取代码方法一:直接填写命令进行拉取(不建议用这种)方法二:使用源码管理拉取代码步骤一:确认环境(检查自己是否有Git插件)步骤二:构建项目时对项目的源码管理选择 Git步骤三:输入你仓库的SSH地址或者https地址,并且添加gitee的用户名和密方法一和方法二…...
VUE:key属性的作用
在 Vue.js 中,key属性的主要作用是帮助 Vue 在进行 DOM 更新时,能够更准确地识别哪些节点可以复用。 当key值发生变化时,Vue 会执行以下步骤: 1.查找旧节点:Vue 会查找虚拟 DOM 中具有旧key值的节点。 2.匹配新节点…...

linux的通信方案(SYSTEM V)
文章目录 共享内存(Share Memory)信号队列(Message Queue)信号量(semaphore) 进程间通信的核心理念:让不同的进程看见同一块资源 linux下的通信方案: SYSTEM V 共享内存(Share Memory) 特点:1.共享内存是进程见通信最…...
VUE 入门及应用 ( 路由 router )
6.前端路由 router Vue Router | Vue.js 的官方路由 (vuejs.org) 官方地址 : https://router.vuejs.org/zh/ 6.1.基本配置 6.1.0.准备 MyPage.vue 创建 用于测试 vue文件 ../views/MyPage.vue <template><div><h1>MyPage</h1></div> </…...

SpringBoot集成RocketMQ
RocketMQ是一个纯Java、分布式、队列模型的开源消息中间件,前身是MetaQ,是阿里参考Kafka特点研发的一个队列模型的消息中间件,后开源给apache基金会成为了apache的顶级开源项目,具有高性能、高可靠、高实时、分布式特点。 环境搭…...
【Web】关于FastJson反序列化开始前的那些前置知识
目录 FastJson介绍 FJ序列化与反序列化方法 关于反序列化三种方式的关系与区别 FastJson反序列化漏洞原理通识 关于getter&setter FastJson介绍 FastJson(快速JSON)是一个Java语言编写的高性能、功能丰富且易于使用的JSON解析和序列化库。它由…...

工业镜头的重要参数之视场、放大倍率、芯片尺寸--51camera
今天来简单介绍下工业镜头中常用的参数中的三个: 1、视场 视场(FOV)也称视野,是指能被视觉系统观察到的物方可视范围。 对于镜头而言,可观察到的视场跟镜头放大倍率及相机芯片选择有关。因此需要根据被观察物体的尺寸ÿ…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...

短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...