初识数据库|数据库的特点、分类以及作用

news2024/11/14 14:21:54

数据库系统(DateBase System,简称DBS)是指在计算机系统中引入数据库后的系统构成,由计算机硬件,操作系统,DBMS,DB,应用程序和用户以及数据库开发和管理人员等组成。

(一)数据库的4大特点

1、整体数据结构化;

2、数据的共享度高;

3、数据的独立性高;

4、高度的数据控制能力

1.1整体数据结构化

数据库中的任何数据都不属于任何应用,数据是公共的,结构是全面的。在数据库中,数据文件的个数是有限的,固定的,但数据库系统的应用却是无限制的。

好处:整体数据的结构化可减少乃至消除不必要的数据冗余,因此节约了整体数据的存储空间,避免了数据的不一致性和不相容性(数据不符合规定的约束条件)。


1.2数据的共享度高

数据与数据的逻辑结构同时存储在数据库中,显示数据时,可同时显示数据的逻辑结构;整个组织的整体数据被综合考虑,整体数据结构化。因而,DBS的数据共享度较高。

好处:合法用户都可以方便的访问使用数据库中的数据,且不用担心出现数据的不一致性和不相容性。数据库中的数据可适应各种合法用户的合理要求以及各种应用的要求,可以方便的扩充新的应用。

1.3数据的独立性高

数据的独立性是指数据与应用程序之间的关联性。数据与数据的结构是存储在数据库中的(在外存上),由DBMS管理的。应用程序既不存储数据,也不存储数据的逻辑结构。

物理独立性:数据库中数据的世纪存储方式改变时,DBMS可以适当改变转换数据的方式,使用户面对数据的逻辑结构保持不变,从而处理数据的应用程序也保持不变。

逻辑独立性:数据库中数据的逻辑结构发生变化时,DBMS可以适当改变数据的转换方式,用户面对数据的逻辑结构保持不变。

好处:数据与程序相互独立,可以方便的编制各种应用程序,大大减轻应用程序的维护工作。

1.4 高度的数据控制能力

a,较高的安全性

b,较好的数据完整性

c,较强的并发控制能力

d,较强的数据恢复能力

(二)数据库分类

数据库分类有很多种,我们来看看常见的几种类别,比如说关系型数据库、文档数据库等。

2.1关系型数据库

关系型数据库管理系统(RDBMS)是最主流的数据库类型,它们使用关系(表)模型存储数据。表的模式由表名和固定数量的字段组成,一个记录(实体)对应表中的一行,由多个属性值组成。关系实际上就是一组结构统一的记录。

关系型数据库的表结构设计通常使用规范化技术,关系支持的基本操作包括:

  • 集合操作(并集、交集、差集);

  • 选择操作(基于指定条件选择表中记录的子集);

  • 投影操作(选择属性/字段的子集);

  • 连接操作(基于多个表的笛卡尔积以及选择和投影操作)。

关系型数据库使用 SQL 执行数据操作,包括表的管理、事务控制以及用户管理等。

经过多年的发展,许多 RDBMS 不仅仅支持关系模型,同时也提供了用户自定义类型、非原子属性(XML、JSON、数组等)、继承等扩展功能。

常见的关系型数据库包括:

  • Oracle

  • MySQL

  • Microsoft SQL Server

  • PostgreSQL

  • IBM Db2

  • Microsoft Access

  • SQLite

  • Snowflake

2.2文档数据库

文档存储(Document stores),也称为面向文档的数据库系统,主要特点在于无模式(schema-free)的数据结构。无模式意味着:

  • 集合(表)中的记录(行)不需要定义统一的结构,每个记录可以包含不同的属性(字段);

  • 每个记录中的各个字段的数据类型可以不同;

  • 一个字段可以包含多个值(数组);

  • 记录可以包含嵌套结构。

文档存储通常使用内部注解,可以在应用程序中直接进行处理。最常见的存储方式是 JSON。

常见的文档数据库包括:

  • MongoDB

  • Amazon DynamoDB

  • Databricks

  • Microsoft Azure Cosmos DB

  • Couchbase

2.3时序数据库

时序数据库(Time Series DBMS)是专门为了存储时间序列数据而进行优化的数据库管理系统。时序数据的每一条记录都包含了一个时间戳信息,来源包括物联网中的传感器、智能电表、RFID 等设备,以及股票交易系统中的交易数据。

常见的时序数据库包括:

  • InfluxDB

  • Kdb

  • Prometheus

  • Graphite

  • TimescaleDB

2.4图数据库

图数据库(Graph DBMS),也称为面向图的数据库,以图(节点和边)结构表示数据。它们支持图数据的处理,以及图中具体属性的计算,例如从一个节点到另一个节点的路径。

图数据库通常不会提供所有节点的索引,因此无法直接基于属性访问节点。

常见的图数据库包括:

  • Neo4j

  • Microsoft Azure Cosmos DB

  • Virtuoso

  • OrientDB

  • ArangoDB

  • Amazon Neptune

2.5搜索引擎

搜索引擎是专门用于搜索文本内容的一类 NoSQL 数据库。除了针对搜索应用的通用优化之外,这类系统还提供了一些功能:

  • 支持复杂搜索条件

  • 全文搜索

  • 词干提取

  • 搜索结果排名和分组

  • 支持高扩展性的分布式搜索

常见的搜索引擎包括:

  • Elasticsearch

  • Splunk

  • Solr

  • OpenSearch

  • Sphinx

2.6对象数据库

对象数据库(Object oriented DBMS),也称为面向对象的数据库,设计目标是在数据库中以面向对象编程语言相同的方式存储对象,从而避免关系型数据库中的转换和分解。另外,对象之间的关系(例如继承)也是在数据库内部进行维护。

对象数据库通常使用类似 SQL 的查询语言操作对象。

由于近年来许多关系型数据库引入了面向对象的功能,例如自定义数据类型和属性;同时开发工具和框架(Hibernate、JPA 等)支持对象和关系之间的转换,对象数据库的应用并不常见。

常见的对象数据库包括:

  • InterSystems IRIS

  • InterSystems Caché

  • Db4o

  • ObjectStore

  • Actian NoSQL Database

2.7RDF存储

RDF(资源描述框架)是一种描述信息的方法论,最初用于描述 IT 资源的元数据,如今应用更加广泛,通常与语义网相结合。

RDF 模型以主-谓-宾的形式将信息表示为三元组,能够存储和处理这种三元组的数据库管理系统被称为 RDF 存储或者三元存储。RDF 存储可以看着图数据库的一个子类,谓词可以解释为主语和宾语之间的联系。但是 RDF 存储提供了一些额外的访问方法,例如类似 SQL 的查询语言 SPARQL。

常见的 RDF 存储数据库包括:

  • MarkLogic

  • Apache Jena - TDB

  • Virtuoso

  • Amazon Neptune

  • GraphDB

2.8宽列存储

宽列存储(Wide column stores),也称为可扩展记录存储,以记录的方式存储数据,支持超大数量的动态字段功能。由于字段名和记录的键不固定、而且记录可以包含数十亿个字段,宽列存储可以被看作二维键值存储。

宽列存储也具有文档数据库的无模式特性,但是实现方式完全不同。

不要将宽列存储和关系型数据库中的面向列的存储混淆,后者是关系型数据库或者数据仓库中为了改进分析性能而实现的存储方式,它们将不同记录的相同列存储在一起,而不是将同一个记录的不同字段存储在一起。

常见的宽列存储数据库包括:

  • Cassandra

  • Microsoft Azure Cosmos DB

  • HBase

  • Google Cloud Bigtable

2.9多值数据库

多值数据库(Multivalue DBMS)与关系型数据库类似,也是以表的形式存储数据。但是,多值数据库可以为记录的一个属性(字段)指定多个值。这种存储类型违反了第一范式,因此它们也被称为非第一范式(NF2)系统。

某些关系型数据库扩展了多值属性(例如数组)功能,例如 PostgreSQL。

常见的多值数据库包括:

  • Adabas

  • UniData,UniVerse

  • jBASE

2.10向量数据库

向量数据库(Vector DBMS)是专门用于高效存储、索引以及查询高维向量数据的软件系统。它们使用特殊的算法和数据结构,支持相似性搜索,通常用于 AI 机器学习、数据挖掘等领域。

常见的向量数据库包括:

  • Kdb

  • Chroma

  • Pinecone

  • Milvus

(三)数据库的作用

可能很多人会问:我的数据就存放在自己电脑的excel表里不就可以了,为什么还要搞个数据库呢?

这是因为数据库比excel有更多的优势。比如数据库可以存放大量的数据,允许很多人同时使用里面的数据。下面我们来看下数据库的三个重要价值:

3.1首先,方便用户存储、访问数据

数据库可以存储大量的数据信息,方便用户进行有效的访问。数据库还可以对数据进行分类保存,并且能够提供快速的查询。例如:我们平时使用谷歌搜索内容时,谷歌也是基于数据库和数据分类技术来达到快速搜索的目的。

图片

3.2帮助我们安全的保存数据

数据库可以满足应用的共享和安全方面的要求,把数据放在数据库中在很多情况下也是出于安全的考虑。例如:如果一个公司把员工所有资料都放在电脑上,资料的保密性就不是很好了。如果把员工的资料存到数据库中,就可以设置一些权限,从而保证数据的安全性。

3.3利用数据库可以进行数据分析,提升数据价值

例如:超市中把物品销售信息保存在数据库中,每个月销售情况的排名决定了下半月的进货数量。数据库查询的结果实际上产生了新的数据信息。

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

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

相关文章

RK3568 安装Miniconda3

下载链接:https://download.csdn.net/download/smile_5me/89012477?spm=1001.2014.3001.5503 需要RK3568运行Ubuntu,之前的文章有关于如何安装Ubuntu以及遇到的问题 1、 拷贝 Miniconda3-latest-Linux-aarch64.sh 到开发板 2、运行安装 Miniconda3-latest-Linux-aarch64.…

Maven 环境一键部署

文章目录 一、场景说明二、脚本职责三、参数说明四、操作示例五、注意事项 一、场景说明 本自动化脚本旨在为提高研发、测试、运维快速部署应用环境而编写。 脚本遵循拿来即用的原则快速完成 CentOS 系统各应用环境部署工作。 统一研发、测试、生产环境的部署模式、部署结构、…

Oracle 写丢失保护/影子表空间(Lost Write Protection with Shadow Tablespace)

写丢失是Oracle数据库与独立I/O子系统交互时一种错误场景。假如Oracle发出的写磁盘命令,I/O子系统也返回成功写磁盘的消息(但数据此时可能依然在I/O系统缓存中),如果在I/O系统实际写盘之前Oracle再次读取该数据,则I/O系…

sparksql简介

什么是sparksql sparksql是一个用来处理结构话数据的spark模块,它允许开发者便捷地使用sql语句的方式来处理数据;它是用来处理大规模结构化数据的分布式计算引擎,其他分布式计算引擎比较火的还有hive,map-reduce方式。 sparksql…

网络编程 - 套接字

1、预备知识 1.1、理解源IP地址和目的IP地址 在IP数据包头部中, 有两个IP地址, 分别叫做源IP地址, 和目的IP地址; 思考: 我们光有IP地址就可以完成通信了嘛? 想象一下发qq消息的例子, 有了IP地址能够把消息发送到对方的机器上, 但是还需要有一个其他的标识来区分…

Windows server 2012 R2系统怎么显示桌面图标

当我们在使用Windows server2012 R2服务器计算机时,为了方便,我们可以添加桌面图标。下面就给大家分享一下添加桌面图标的方法; 操作步骤如下: 1、第一步,我们打开server服务器,就可以看到如下画面&#x…

Elasticsearch从入门到精通-06ES统计分析语法

Elasticsearch从入门到精通-06ES统计分析语法 bucket和metric概念简介 bucket就是一个聚合搜索时的数据分组。如:销售部门有员工张三和李四,开发部门有员工王五和赵六。那么根据部门分组聚合得到结果就是两个bucket。销售部门bucket中有张三和李四&…

【ESP32 Arduino】定时器的使用

文章目录 前言一、ESPTIMER定时器的介绍1.1 定时器是什么 二、分频系数2.1 为什么需要分频系数2.2 分频系数怎么计算 三、定时器的使用3.1 初始化定时器对象3.2 设置中断时间3.3 设置回调函数3.4 使能定时器 四、示例代码总结 前言 在嵌入式系统中,定时器是一项重要…

Iterator对象功能学习

package config;import java.util.Iterator; import java.util.Properties; import java.util.Set;/*** 这个类演示了如何使用Properties类来存储和访问键值对。* Properties类继承自Hashtable,因此它可以用来存储键值对数据,且支持同步。*/ public clas…

Git多分支管理实践

想要实现本地文件对远程文件的管理,必须懂得Git的相关操作。 工作中不免会遇到一个仓库多个分支的管理。 git多分支管理属于git的进阶版操作,下面我们来看看。 1. 拉取一个git仓库 git仓库名假设为:test_demo,默认是主仓库&…

文件路径引用错误

报错This dependency was not found: * /view/superAdmin/menu/icon.vue in ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-opti…

云手机为企业出海提供多元化解决方案

随着全球市场的不断扩大,发展出海业务已经成为许多企业开发新市场的重要途径。而在这个竞争激烈的市场中,云手机作为一种全新的工具,为企业提供了多元的解决方案,助力其在海外市场通过各种方式取得成功。本文将介绍企业可以通过云…

利用pexpect实现ssh自动登录时命令行无法自动换行问题解决

问题描述 使用python的pexpect模块的pexpect.spawn()进行ssh自动登录时,出现超出一定长度(80个字符)时光标自动切换到本行行首进行覆盖输入的情形 原因 使用spawn时输入窗口大小默认限制为[24,80](可通过spawn类的getwinsize(…

Maximizing Influence with Graph Neural Networks

Abstract 寻找使网络影响力最大化的种子集是一个众所周知的 NP 难题。尽管贪心算法可以提供接近最优的解决方案,但影响估计的子问题导致解决方案效率低下。在这项工作中,我们提出了 GLIE,这是一种图神经网络,它学习如何估计独立级…

新能源汽车充电桩消防安全视频智能可视化监管建设方案

一、方案背景 据应急管理部门统计公布的数据显示,仅2023年第一季度,新能源汽车自燃率就上涨了32%,平均每天就有8辆新能源汽车发生火灾(含自燃)。在已查明起火原因中,58%源于电池问题,19%源于碰…

备战蓝桥杯Day34 - 每日一题

题目描述 解题思路 1.输入数据n,并将字符串类型转换成整数类型 2.求出输入n是2的几次幂(调用math库中的求对数的方法),在下面的循环中要用到 3.定义sum和,将抽取到的牌的总数加起来存储 4.count 0 # 记录 2 的第几…

分享一下现在哪些相亲软件好用?盘点四款热门的相亲软件

很多单身的小伙伴都在问有哪些靠谱的相亲软件,平时自己的工作和生活圈子太小没有办法找到结婚对象,通过手机上的相软件找对象也是一个不错的尝试。今天我来为大家分享几款成功率比较高的婚恋相亲软件! 1、一伴婚恋 这款APP目前是线上找对象…

DP:斐波那契数列模型

创作不易,感谢三连支持 ! 斐波那契数列用于一维探索的单峰函数之中,用于求解最优值的方法。其主要优势为,在第一次迭代的时候求解两个函数值,之后每次迭代只需求解一次 。 一、第N个泰波那契数 . - 力扣(…

JAVA 栈和队列总结

除了最底层下面三个是实现类,其他都是接口。 双端队列(队头队尾都可以插入和删除元素)的方法: 普通队列方法: 常用的是add(),poll(), element() 我们用Deque(双端队列)实现栈 Deque当栈用的时候的方法。 deque.push…

【史上最全面arduino esp32教程】SPI层次结构SPI协议与SPI控制器结构

文章目录 前言一、SPI 程序层次1.1 硬件原理图1.2 硬件框图1.3 软件层次 二、SPI协议2.1 硬件连线2.2 如何访问SPI设备2.3 SPI 框图 总结 前言 欢迎阅读本篇文章,将为您介绍Arduino ESP32上的SPI通信协议。SPI(Serial Peripheral Interface)…