获取中...

-

Just a minute...

数据库基础

什么是数据库?

​ 数据库(database,又名电子化的文件柜)就是存储数据的仓库。数据库是一个以某种有结构的有顺序存储的 数据集合,理解数据库的一种最简单的办法是将其想象为一个文件柜。此文件柜是一个 存放数据的物理位置,不管数据是什么以及如何组织的。

数据库管理系统

​ 数据库管理系统是为管理数据库而设计的电脑软件系统,是数据库系统的核心组成部分主要完成对数据库的操作与管理功能,实现数据库对象的创建、数据库存储数据的查询、添加、修改与删除操作和数据库的用户管理、权限管理等。

类型

关系数据库

​ 关系型数据库,存储的格式可以直观地反映实体间的关系。关系型数据库和常见的表格比较相似,关系型数据库中表与表之间是有很多复杂的关联关系的。 常见的关系型数据库有MysqlSqlServer等。在轻量或者小型的应用中,使用不同的关系型数据库对系统的性能影响不大,但是在构建大型应用时,则需要根据应用的业务需求和性能需求,选择合适的关系型数据库。

非关系型数据库(NoSQL)

​ 指的是分布式的、非关系型的、不保证遵循ACID原则的数据存储系统。适合追求速度和可扩展性、业务多变的应用场景。现在有四种大的分类:

(1)键值对存储(key-value):代表软件Redis,它的优点能够进行数据的快速查询,而缺点是需要存储数据之间的关系。

(2)列存储:代表软件Hbase,它的优点是对数据能快速查询,数据存储的扩展性强。而缺点是数据库的功能有局限性。

3)文档数据库存储:代表软件MongoDB,它的优点是对数据结构要求不特别的严格。而缺点是查询性的性能不好,同时缺少一种统一查询语言。

(4)图形数据库存储:代表软件InfoGrid,它的优点可以方便的利用图结构相关算法进行计算。而缺点是要想得到结果必须进行整个图的计算,而且遇到不适合的数据模型时,图形数据库很难使用。

NoSQL 与关系型数据库的区别

存储方式

​ 传统的关系型数据库采用表格的储存方式, 数据以行和列的方式进行存储,要读取和查询都十分方便。而非关系型数据不适合这样的表格存储方式,通常以数据集的方式,大量的数据集中存储在一起,类似于键值对、图结构或者文档。

存储结构

​ 关系型数据库按照结构化的方法存储数据,先定义好表的结构再,根据表的结构存入数据,整个数据表的可靠性和稳定性都比较高,但一旦存入数据后,修改数据表的结构就会十分困难。而NoSQL数据库由于面对的是大量非结构化的数据的存储,可以根据数据存储的需要灵活的改变数据库的结构。

存储规范

​ 关系型数据库为了避免重复、规范化数据以及充分利用好存储空间,把数据按照最小关系表的形式进行存储,这样数据管理的就可以变得很清晰、一目了然,但随着数据表数量的增加,由于数据涉及到多张数据表,数据表之间存在着复杂的关系,数据管理会越来越复杂。而NoSQL数据库的数据存储方式是用平面数据集的方式集中存放,虽然会存在数据被重复存储,从而造成存储空间被浪费的问题,但是由于基本上单个数据库都是采用单独存放的形式,很少采用分割存放的方式,所以这样数据往往能存成一个整体,这对于数据的读写提供了极大的方便。

扩展方式

​ 关系型数据库只具备纵向扩展能力,只能通过提高处理能力,也就是选择速度更快性能更高的计算机,来进行拓展空间,局限性也大。NoSQL数据库采用横向的方式来开展数据库,也就是可以添加更多数据库服务器到资源池,然后由这些增加的服务器来负担数据量增加的开销。

查询方式

​ 关系型数据库采用结构化查询语言(即SQL)来对数据库进行查询。SQL采用的是非结构化查询语言(UnQL),也可以采用类似索引的方法来加快查询操作。

规范化

​ 可以利用ORM层(也就是对象关系映射)来将数据库中对象模型映射到基于SQL的关系型数据库中去以及进行不同类型系统的数据之间的转换。对于NoSQL数据库则没有这方面的问题,它不需要规范化数据,它通常是在一个单独的存储单元中存入一个复杂的数据实体。

事务性

​ 关系型数据库可以满足对事务性要求较高或者需要进行复杂数据查询的数据操作,而且可以充分满足数据库操作的高性能和操作稳定性的要求。NoSQL数据库虽然对于事务操作也可以使用,但不能很好的支持,很难满足其全部的需求。

读写性能

​ 关系型数据库十分强调数据的一致性,并为此降低读写性能付出了巨大的代价,面对海量数据的处理的时候效率就会变得很差。而NoSQL数据库恰恰是应对大数据方面,也就是对于大量的每天都产生非结构化的数据能够高性能的读写。

授权方式

关系型数据库常见的有Oracle,SQLServer,DB2,Mysql,除了Mysql大多数的关系型数据库如果要使用都需要支付一笔价格高昂的费用,即使是免费的Mysql性能也受到了诸多的限制。而对于NoSQL数据库,比较主流的有redis,HBase,MongoDb,memcache等产品,通常都采用开源的方式,不需要像关系型数据库那样,需要一笔高昂的花费。

相关文章
评论
分享
  • 计算机基础之操作系统常用命令

    windows操作系统常用命令1.目录操作命令:cd:改变当前目录 例:cd c:\test dir:显示目录中的文件和子目录列表 type:显示文本文件中的内容 例:type test.txt echo:显示消息 用echo 将内...

    计算机基础之操作系统常用命令
  • 计算机基础之HTTP

    HTTPHTTP,即超文本传输协议,是一种实现客户端和服务器之间通信的响应协议,它是用作客户端和服务器之间的请求。 客户端(浏览器)会向服务器提交HTTP请求;然后服务器向客户端返回响应;其中响应包含有关请求的状态信息,还可能包含请求...

    计算机基础之HTTP
  • sqlmap

    sqlmap简介SQLMap 是一个自动化的SQL注入工具,其主要功能是扫描、发现并利用给定URL的SQL注入漏洞,内置了很多绕过插件,支持的数据库是MySQL 、Oracle 、PostgreSQL 、Microsoft SQL S...

    sqlmap
  • php基础

    PHP基础PHP,全称 “Hypertext Preprocessor”,是一种流行的服务器端编程脚本语言,被广泛用于Web开发。 这里也不得不介绍phpstudy,phpstudy是一个PHP调试环境的程序集成包。该程序包集成最新的...

    php基础
  • mysql基础

    mysql基础sql简介​ SQL(Structured Query Language 结构化查询语句)是一种特定目的程序语言,用于管理关系数 据库管理系统(RDBMS),或在关系流数据管理系统(RDSMS)中进行流处理。 SQL基...

    mysql基础
  • markdown语法

    Markdown基本语法1.分级标题示例:1234567# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题这个写法和 **文字**效果是一样的 输出的结果: 一级标题二级标题三级标...

    markdown语法
  • 图床搭建

    使用Github+picGo搭建图床引子:图床是互联网中存储图片的空间,别人通过互联网看到你在博客里边分享的图片,肯定不是直接去访问你电脑相册,分享的图片得先上传到博客的服务器,博客为你生成一个独一无二的访问链接,这个链接指向的空间就...

    图床搭建
  • 信息收集

    首先,我们得先了解信息收集是什么?​ 信息收集(Information Gathering)是指通过各种方式获取所需要的信息。信息收集是信息得以利用的第一步,也是关键的一步。信息收集工作的好坏,直接关系到整个信息管理工作...

    信息收集
  • 如何配置主题

    有了博客以后,就需要对博客进行美化,所以有一个美观、个性的主题是必不可少的主题配置流程 可以在HEXO官网(https://hexo.io/themes)上找一款自己喜欢的主题 把主题压缩下载,下载完成后解压到blog/t...

    如何配置主题
  • 做一个只属于自己的博客

    利用github搭建hexo博客准备前提 提前安装好(node.js),打开[https://nodejs.org/en],选择左边那个 提前安装好(Git)[https://git-scm.com/downloads] ...

    做一个只属于自己的博客