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

数据库系统(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.mzph.cn/news/756630.shtml

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

相关文章

[BT]BUUCTF刷题第一天(3.19)

第一天(共4题) Web [极客大挑战 2019]EasySQL Payload: 用户名:admin or 11# (密码也可以改成这个) 密码:1(可任意) 网站漏洞代码: sql"select *…

Android和IOS Flutter应用开发使用 Provider.of 时,可以使用 listen: false 来避免不必要的重建

文章目录 listen: false解释示例 listen: false 使用 Provider.of 时,可以使用 listen: false 来避免不必要的重建 解释 当您使用 Provider.of 获取状态对象时,默认情况下,该对象每次发生变化时都会触发重建该对象所在的组件。这在大多数情…

云平台一键迁移(腾讯云windos服务器迁移到阿里云windos服务器)

参考文档 https://help.aliyun.com/zh/smc/use-cases/one-click-cloud-platform-migration 迁移文档 https://cloud.tencent.com/document/product/598/37140 #腾讯密钥创建 https://cloud.tencent.com/document/product/1340/51945 安装腾讯云自动化服务助手 一.导入迁移…

GitHub gpg体验

文档 实践 生成新 GPG 密钥 gpg --full-generate-key查看本地GPG列表 gpg --list-keys关联GPG公钥与Github账户 gpg --armor --export {key_id}GPG私钥对Git commit进行签名 git config --local user.signingkey {key_id} # git config --global user.signingkey {key_id} git…

JVM常用垃圾收集器

JVM 4.1 哪些对象可以作为GC ROOT? 虚拟机栈(栈帧中的局部变量表)中引用的对象本地方法栈中引用的对象方法区静态变量引用的对象方法区常量引用的对象被同步锁持有的对象JNI(Java Native Interface)引用的对象 4.2 常用垃圾收集…

计算机二级(Python)真题讲解每日一题:《方菱形》

描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬ 请写代码替换横线&#xff0…

SpringCloud入门(1) Eureka Ribbon Nacos

这里写目录标题 认识微服务SpringCloud 服务拆分和远程调用服务拆分案例实现远程调用 RestTemplate Eureka注册中心Eureka的结构和作用搭建eureka-server服务注册服务发现 Ribbon负载均衡 LoadBalancedLoadBalancerIntercepor源码解析负载均衡策略饥饿加载 Nacos注册中心安装与…

PySpark案例实战

一、前言介绍 二、基础准备 # 导包 from pyspark import SparkConf,SparkContext #创建SparkConf类对象 confSparkConf().setMaster("local[*]").setAppName("test_spark_app") #基于SparkXConf类对象创建SparkContext对象 scSparkContext(confconf) #打印…

深入理解栈和队列(一):栈

个人主页:17_Kevin-CSDN博客 专栏:《数据结构》 一、栈的概念 栈(Stack)是一种特殊的线性表,它遵循后进先出(Last-In-First-Out,LIFO)的原则。栈可以被看作是一个只能在一端进行操作…

【python】爬取杭州市二手房销售数据做数据分析【附源码】

一、背景 在数据分析和市场调研中,获取房地产数据是至关重要的一环。本文介绍了如何利用 Python 中的 requests、lxml 库以及 pandas 库,结合 XPath 解析网页信息,实现对链家网二手房销售数据的爬取,并将数据导出为 Excel 文件的过…

多特征变量序列预测(11) 基于Pytorch的TCN-GRU预测模型

往期精彩内容: 时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较-CSDN博客 风速预测(一)数据集介绍和预处理-CSDN博客 风速预测(二)基于Pytorch的EMD-LSTM模型-CSDN博客 风速预测&#xff…

springcloud修炼——Eureka注册中心

如果你要理解这个技术博客博客专栏 请先学习以下基本的知识: 什么是微服务什么是服务拆分什么是springcloud Springcloud为微服务开发提供了一个比较泛用和全面的解决框架,springcloud继承了spring一直以来的风格——不重复造轮子,里面很多的…

【NLP笔记】Transformer

文章目录 基本架构EmbeddingEncoderself-attentionMulti-Attention残差连接LayerNorm DecoderMask&Cross Attention线性层&softmax损失函数 论文链接: Attention Is All You Need 参考文章: 【NLP】《Attention Is All You Need》的阅读笔记 一…

WPF按钮相关

跟着官网敲的按钮相关的内容,还涉及了wpf很多其他的知识 1.创建基本按钮 <Grid><StackPanel HorizontalAlignment"Left"><Button>Button1</Button><Button>Button2</Button><Button>Button3</Button></StackPan…

如何在gitee上fork github上面的项目,并保持同步更新

前言 当看到github上面比较好的项目&#xff0c;想用到自己的项目&#xff0c;又不想仓库别人看&#xff0c;同时网络不好&#xff0c;囊中又羞涩的情况下&#xff0c;怎么办&#xff1f; 可以考虑用gitee来同步更新github上面的项目。 一、在gitee创建私有仓库 新建的是选择…

Windows电脑设置自动关机的教程

前言 说来也是搞笑&#xff1a;朋友跟我诉苦说&#xff0c;他有时候下班忘了关闭电脑&#xff0c;结果经常因为电脑不关机导致被领导扣工资。 说到扣工资这个问题&#xff0c;直接仲裁就好啦&#xff01;哈哈哈&#xff0c;突然又是一波泼天的富贵来临&#xff0c;这必须要接住…

计算方法——数据拟合

1、引入&#xff1a;单变量数据拟合 原先的插值要求给出的数据点要在拟合的函数上&#xff0c;但数据拟合&#xff0c;只需整体“近似”&#xff0c;不强求所有的数据点一致 假设给出数据&#xff1a; 那么 偏差 的定义为&#xff1a; 但是偏差“大小”&#xff0c;最好是用绝…

计算机网络:数据交换方式

计算机网络&#xff1a;数据交换方式 电路交换分组交换报文交换传输对比 本博客介绍计算机之间数据交换的三种方式&#xff0c;分别是电路交换、分组交换以及报文交换。 电路交换 我们首先来看电路交换&#xff0c;在电话问世后不久&#xff0c;人们就发现要让所有的电话机都…

c++类和对象(中)类的6个默认成员函数及const成员函数

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 今日主菜&#xff1a;类和对象 主厨&#xff1a;邪王真眼 所属专栏&#xff1a;c专栏 主厨的主页&#xff1a;Chef‘s blog 前言&#xff1a; 咱们之前也是…

【开发环境搭建篇】IDEA安装和配置

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过大学刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0…