1.1 数据库系统简介
思维导图:
1.1.数据库系统简介
前言:
数据库系统是一个软件系统,用于管理和操作数据库。它提供了一个组织良好、高效并能够方便存取的数据存储机制,并且能够支持各种数据操作、事务管理、并发控制和恢复功能。以下是数据库系统的一些主要特点和组件:
1. **数据的组织与管理**:数据库系统提供了一种高效的方式来存储、检索和管理大量的数据。
2. **数据独立性**:物理数据独立性是指应用程序与存储在磁盘上的数据格式或数据的物理位置分离。逻辑数据独立性是指应用程序与逻辑数据结构(如表、视图等)分离。
3. **数据安全性**:数据库管理系统(DBMS)提供安全功能,如访问控制、加密等,以确保只有授权的用户可以访问数据。
4. **数据一致性与完整性**:DBMS可以实施各种完整性约束,如主键、外键等,以确保数据的一致性和正确性。
5. **事务管理**:事务是一个或多个SQL语句的序列,它作为一个整体执行,以确保数据库的一致性和完整性。DBMS支持ACID属性(原子性、一致性、隔离性、持久性),这些属性确保即使在系统崩溃的情况下,数据库也能保持一致状态。
6. **并发控制**:并发控制机制确保当多个用户同时访问数据库时,数据库的完整性和一致性得到维护。
7. **数据恢复**:在系统崩溃或其他故障情况下,DBMS可以从备份中恢复数据,以减少数据丢失。
8. **查询语言**:大多数数据库系统提供一种查询语言(如SQL),使得用户和程序员可以轻松地查询和修改数据。
9. **视图管理**:数据库系统允许创建视图,这是一个虚拟的表,它是基于一个或多个实际的表。视图可以为用户提供所需的特定视角,而不必显示基础表的所有数据。
10. **数据字典**:这是一个“关于数据库的数据库”,包含了关于数据库结构的元数据。例如,表结构、视图、权限等。
11. **多样化的数据模型**:例如关系模型、面向对象模型、层次模型、网络模型等。
数据库系统在现代企业中发挥着至关重要的作用,支持各种业务应用,从简单的数据记录和检索到复杂的数据分析和决策支持。
1.1.1 数据库技术的发展历史
我的理解
首先,数据库技术的发展可以分为三个主要阶段:人工管理阶段、文件系统阶段和数据库系统阶段。
1. **人工管理阶段(20世纪50年代之前)**:
- 这一阶段主要发生在计算机刚诞生的时期。那时的计算机被主要用于科学计算。
- 数据管理非常简单,且通过穿孔卡片或磁带来处理和存储数据。
- 特点:
- 数据基本不保存。
- 缺乏管理数据的软件系统。
- 没有文件的概念,导致数据冗余。
- 数据与程序紧密耦合,当数据结构改变时,应用程序也需要修改。
2. **文件系统阶段(20世纪50年代后期至60年代中期)**:
- 随着技术的发展,现在有了可以直接访问的存储设备如磁盘和磁鼓。
- 也有了操作系统中的文件系统来管理数据。
- 特点:
- 数据可以长期保存。
- 由文件系统管理数据。
- 文件格式多样化,提供了多种访问方式。
- 尽管数据管理有所进步,但数据的共享性和独立性仍然有限。
3. **数据库系统阶段(20世纪60年代之后)**:
- 由于传统文件系统不能满足日益增长的数据管理需求,数据库管理系统(DBMS)开始应用。
- 数据库技术允许更高级别的数据管理和共享。
- 特点:
- 采用复杂的结构化数据模型。
- 较高的数据独立性,意味着数据结构的变化不会影响程序的运行。
- 数据库系统提供了复杂的功能,支持大量数据的处理。
总之,从20世纪50年代到60年代,数据库技术经历了从简单的数据处理和存储到复杂的数据管理系统的演变。随着计算机技术的进步,数据管理变得越来越重要,导致了数据库技术的快速发展和广泛应用。
1. **数据库技术的产生背景**:随着20世纪60年代数据处理自动化的发展,数据处理开始在计算机应用中占主导地位,因此需要更好地管理这些数据。这就催生了数据库技术的产生。
2. **人工管理阶段**:在计算机技术尚未完善之前,即20世纪50年代末之前,计算机的主要任务是进行科学计算。数据是直接从卡片或磁带读取的,没有长期存储,也没有管理数据的软件系统,数据处理是批处理的方式,数据管理十分简单。
3. **文件系统阶段**:在20世纪50年代后期至60年代中期,随着直接存取的存储设备(如磁盘)的出现,操作系统中也开始有了文件系统,不再仅限于批处理,还有实时处理。此时,数据开始可以长期保存,并由文件系统来管理。
4. **数据库系统阶段**:进入20世纪60年代,人们对数据的共享提出了更高的要求,传统的文件系统已经不能满足需求,因此数据库管理系统(DBMS)应运而生。此时的数据库不再是为某个应用服务,而是为整个企业或应用服务,数据管理变得更加复杂。
5. **数据库的当前应用和未来趋势**:随着技术的进步,数据库技术被广泛应用于各个领域,如金融业、航空业、学校等。但由于各行业的需求不断增长,现有数据库技术无法完全满足,因此新一代的数据库技术开始孕育并逐渐应用于各个领域。这一代的数据库支持多种数据模型,并与许多新技术结合。总的来说,随着科技的发展,未来的数据库技术将会有更高的要求。
简而言之,从人工管理、文件系统,到现代的数据库系统,数据库技术已经经历了一个长时间的发展过程。随着科技的进步,我们可以预期未来的数据库技术将更加先进、复杂,并广泛应用于各个领域。
1.1.2 数据库系统的基本概念
这段内容介绍了数据库系统相关的几个核心概念,以下是其要点总结:
1. **数据 (Data)**:数据是数据库中存储的基本对象,包括数字、文字、图形、声音等多种形式。它们可以被计算机识别并存储。数据本身的形式并不能完全传达其意义,因此需要对数据的语义进行解释。
例子:学生李飞扬的信息如学号、姓名等都是数据。
2. **数据库 (DataBase, DB)**:数据库是一个仓库,存放在计算机存储设备中。数据库中的数据有组织地存储,数据之间相互关联。它是一个长期、有组织、可共享的大量数据的集合。
3. **数据库管理系统 (DataBase Management System, DBMS)**:是用于管理数据库的计算机系统软件,位于应用程序和操作系统之间。它为数据库提供数据定义、建立、维护、查询等功能,同时也控制数据的完整性和安全性。
常用的DBMS:SQL Server, Access, Oracle, MySQL, DB2, Informix等。
4. **数据库系统 (DataBase System, DBS)**:引入数据库后的计算机系统。它由计算机硬件、数据库、数据库管理系统、应用程序和用户构成。硬件包括主机、存储设备等;软件主要包括操作系统和数据库管理系统。用户可以是数据库管理员、应用程序员或终端用户。
总结:数据库存放数据;数据库管理系统负责数据的管理和控制;数据库系统是一个整体的计算机应用系统,强调系统的整体性。
图1-4说明了数据库系统在整个计算机系统中的地位
此外,文章中还提到了应用系统、应用开发工具、操作系统和硬件的概念。
相关文章:

1.1 数据库系统简介
思维导图: 1.1.数据库系统简介 前言: 数据库系统是一个软件系统,用于管理和操作数据库。它提供了一个组织良好、高效并能够方便存取的数据存储机制,并且能够支持各种数据操作、事务管理、并发控制和恢复功能。以下是数据库系统的…...

WebGL 绘制圆点
前言 这篇文章不说WebGL相关概念了,初学者先到网上看看WebGL相关概念。这里着重写一下在vue3前端框架下,如何通过webGL绘制圆点。 着色器代码(画点) 画点相关的着色器代码有顶点着色器和片元着色器,代码如下: 顶点着色器&…...

迅为RK3588开发板Android12 设置系统默认不锁屏
修改 frameworks/base/packages/SettingsProvider/res/values/defaults.xml 文件,修改为如下 所示: - <bool name"def_lockscreen_disabled">false</bool> <bool name"def_lockscreen_disabled">true</bool&…...

香港服务器速度快的原因
1. 传统域名解析过程 了解CDN系统先从域名解析说起。通常,我们在浏览器中输入域名,敲回车后,进入网站进行信息的获取。您分析过输入域名后浏览是如何请求到服务器上的信息,您了解域名解析的过程么? 1.1. 主机解析域…...

过滤器,监听器与拦截器的区别
过滤器,监听器与拦截器的区别 过滤器和监听器不是Spring MVC中的组件,而是Servlet的组件,由Servlet容器来管理。拦截器是Spring MVC中的组件,由Spring容器来管理 Servlet过滤器与Spring MVC 拦截器在Web应用中所处的层次如…...

clickhouse ssb-dbgen数据构造 及 clickhouse-benchmark简单压测
一、 测试数据构造 1. 数据样例 官方文档有给出一批数据样例。优点是比较真实,缺点是太大了,动辄上百G不适合简单小测试 Anonymized Yandex.Metrica DatasetStar Schema BenchmarkWikiStatTerabyte of Click Logs from CriteoAMPLab Big Data Benchma…...

【数据分析】统计量
1. 均值、众数描述数据的集中趋势度量,四分位差、极差描述数据的离散程度。 2. 标准差、四分位差、异众比率度量离散程度,协方差是度量相关性。 期望值分别为E[X]与E[Y]的两个实随机变量X与Y之间的协方差Cov(X,Y)定义为: 从直观上来看&…...

【通用消息通知服务】0x4 - 目前进展 阶段复盘
【通用消息通知服务】0x4 - 阶段复盘 达成 基本的API已经写完✍️了(消息查看发送, 模板crud,终端crud,发送渠道crud,计划crud,计划执行查看)拆分server, executor, planner三个入口, 方便针对性水平扩展整体架构初步形成,通过队列实现了事件驱动模型和消息订阅发…...

vue若依导出word文件,简单的实现
首先前端导包,注意exportDocx的导包位置要修改成你自己的 import {exportDocx} from /utils/docUtil/docutil.js; import {addDays} from date-fns; import {listGongyi} from "/api/system/detail";然后新建一个测试按钮 <el-col :span"1.5"><…...

【LeetCode75】第四十题 最大层内元素和
目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 这道题和LeetCode75的上一题大同小异,都是要我们对二叉树进行层序遍历。 那具体如何层序遍历我再上一题也详细介绍过了&#…...

脱离束缚:数字化工厂中ARM控制器的革命性应用!
近年来,中国数字经济体系已进入高速增长阶段。制造业作为中国经济高质量发展的重要支撑力量,在面临生产成本不断上涨、关键装备和核心零部件“受制于人”等挑战时,建设数字化工厂已成必然。 数字化工厂数据采集出现的问题 在数字工厂的建设…...

queue ide is not exists in YARN
报错内容: 2023-08-17 17:30:31.342 [ERROR] [BaseTaskScheduler-Thread-7 ] o.a.l.o.s.a.AsyncExecTaskRunnerImpl (79) [run] - Failed to execute task astJob_1_codeExec_1 org.apache.linkis.orchestrator.ecm.exception.ECMPluginErrorException: errCode:…...

【C++】UDP通信:客户端向服务端发送消息并接收服务端回应的消息
目录 1 UDP简介 2 通信 3 实践 4 运行结果 1 UDP简介 (1)UDP通信是无连接的,因此不需要connect操作。 (2)UDP通信过程需要指定数据接收端的IP和端口。 (3)UDP不对收到的数据进行排序。 (4)UDP对接收到的数据报不回复确认信息。 (5)如果发生了数据丢失,不会丢一…...

RabbitMq深度学习
什么是RabbitMq? RabbitMQ是一个开源的消息队列中间件,它实现了高级消息队列协议(AMQP)。它被广泛用于分布式系统中的消息传递和异步通信。RabbitMQ提供了一种可靠的、可扩展的机制来传递消息,使不同的应用程序能够相互之间进行…...

EasyExcel自定义字段对象转换器支持转换实体和集合实体
文章目录 1. 实现ObjectConverter2. 使用3. 测试3.1 导出excel3.2 导入excel 1. 实现ObjectConverter package com.tophant.cloud.common.excel.converters;import cn.hutool.json.JSONUtil; import com.alibaba.excel.converters.Converter; import com.alibaba.excel.enums.…...

Linux重置ROOT密码(CentOS)
解释说明 在CentOS中重置root密码通常需要进入单用户模式,这是一个没有密码限制的特殊模式,允许您以root权限登录系统并更改密码。 重启系统 如果您无法登录到系统,可以通过重启系统来开始这个过程。您可以使用虚拟机控制台、物理服务器控制台…...

【Spring】一文带你彻底搞懂IOC、AOP
目录 首先简单了解一下什么是spring框架 什么是IOC? 什么是依赖注入(DI)? 控制反转和依赖注入又有什么关系? AOP是什么? SpringAOP的实现 说了这么多抽象概念,举个实例方便理解 首先简单…...

国际旅游网络的大数据分析(数学建模练习题)
题目:国际旅游网络的大数据分析 伴随着大数据时代的到来,数据分析已经深入到现代社会生活中的各个方面。 无论是国家政府部门、企事业单位还是个人,数据分析工作都是进行决策之前的 重要环节。 山东省应用统计学会是在省民政厅注册的学术类社会组织&…...

音视频技术开发周刊 | 308
每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 OpenAI首席科学家最新访谈:对模型创业两点建议、安全与对齐、Transformer够好吗? OpenAI首席科学家Ilya Sutskever最近和他的朋友Sven Strohband进…...

多旋翼飞控底层算法开发系列实验 | 多旋翼动力系统设计实验3
多旋翼动力系统设计实验3 01/多旋翼动力系统简介 多旋翼无人机的动力系统通常包括螺旋桨、电机、电调以及电池。动力系统是多旋翼最重要的组成部分,它决定了多旋翼的主要性能,如悬停时间、载重能力、飞行速度和飞行距离等。动力系统的部件…...

Redis之Sentinel(哨兵)机制
一、Sentinel是什么? Sentinel(哨岗、哨兵)是Redis的高可用性(high availability)解决方案:由一个或多个Sentinel实例(instance)组成的Sentinel系统(system)…...

加密的PDF文件,如何解密?
PDF文件带有打开密码、限制编辑,这两种密码设置了之后如何解密? 不管是打开密码或者是限制编辑,在知道密码的情况下,解密PDF密码,我们只需要在PDF编辑器中打开文件 – 属性 – 安全,将权限状态修改为无保护…...

【java】获取当前年份
目录 一、代码示例二、截图示例 一、代码示例 package com.learning;import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.Year; import java.util.Calendar; import java.util.Date;/*** 获取当前年份*/ public class GetCurrentYear {public …...

前端面试话术集锦第一篇
🚗前端面试集锦目录 💖前端面试话术集锦第一篇💖 💖前端面试话术集锦第二篇💖 文章目录 1. 前端需要注意哪些SEO2. \<img>的title和alt有什么区别3. HTTP的⼏种请求⽅法⽤途4. 从浏览器地址栏输⼊url到显示⻚⾯的步骤5. 如何进⾏⽹站性能优化6. HTTP状态码及其…...

NeRFMeshing - 精确提取NeRF中的3D网格
准确的 3D 场景和对象重建对于机器人、摄影测量和 AR/VR 等各种应用至关重要。 NeRF 在合成新颖视图方面取得了成功,但在准确表示底层几何方面存在不足。 推荐:用 NSDT编辑器 快速搭建可编程3D场景 我们已经看到了最新的进展,例如 NVIDIA 的 …...

后端面试话术集锦第五篇:rabbitmq面试话术
🚗后端面试集锦目录 💖后端面试话术集锦第 1 篇:spring面试话术💖 💖后端面试话术集锦第 2 篇:spring boot面试话术💖 💖后端面试话术集锦第 3 篇:spring cloud面试话术💖 💖后端面试话术集锦第 4 篇:ElasticSearch面试话术💖 💖后端面试话术集锦第 5 …...

Spring Boot(Vue3+ElementPlus+Axios+MyBatisPlus+Spring Boot 前后端分离)【一】
😀前言 本篇博文是关于Spring Boot(Vue3ElementPlusAxiosMyBatisPlusSpring Boot 前后端分离)【一】,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章…...

vue3之reactive和ref学习篇
<script lang"ts" setup> // reactive参数必须为引用类型 和ref简单类型或者引用类型 import { reactive, ref } from vue; const arr reactive([10]) const count ref(0); let increasing true; console.log(count) const change ()>{if(increasing){c…...

【推荐】Spring与Mybatis集成整合
目录 1.概述 2.集成 2.1代码演示: 3.整合 3.1概述 3.2 进行整合分页 接着上两篇,我已经写了Mybatis动态之灵活使用,mybatis的分页和特殊字符的使用方式接下来把它们集成起来,是如何的呢👇👇…...

listdir, makedirs, shuffle, exists, webdriver.Chrome, roll方法快速查阅
1 os.listdir() os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。 2 os.makedirs(path) 方法用于递归创建目录。 如果子目录创建失败或者已经存在,会抛出一个 OSError 的异常 3 numpy.random.shuffle(x) 由numpy.random调用,可…...