数据库概述

导读:本篇文章讲解 数据库概述,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

数据库

数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。


上述内容引用自 百度百科

使用数据库的优点

  1. 数据库可以结构化存储大量的数据信息,方便用户进行有效的检索及访问。
  2. 数据库将数据存储在持久化介质中(如固态硬盘,机械硬盘等),不用担心断电导致的数据丢失。
  3. 通过命令对数据进行各种操作,有利于与其他程序对接。
  4. 通过命令对数据进行增删改查等操作,能够提高效率。
  5. 数据库可以有效地保持数据信息的一致性、完整性、降低数据冗余。
  6. 实现数据的共享,一个数据库可供多个用户同时使用。
  7. 提供数据独立性 、 数据安全性 、 数据完整性 、 并发控制 、故障恢复等几个方面的数据库安全的防护技术。

上述部分内容引用自 C语言中文网 华为云 百度百科


数据库类型

关系型数据库

关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。
主流的关系型数据库有Oracle、DB2、MySQL、PostgreSQL、SQL Server 等多个品种,每种数据库的语法、功能和特性也各具特色。


上述内容引用自 百度百科

关系型数据库中,数据与数据之间总是存在着某种关联,而这种关联会导致用户对数据库进行的某些操作所花费的时间变长。

关系型数据库的优点
  1. 容易理解
    二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解。
  2. 使用方便
    通用的 SQL 语言使得操作关系型数据库非常方便。
  3. 易于维护
    丰富的完整性(实体完整性,参照完整性和用户自定义的完整性)大大降低了数据冗余和数据不一致的几率。

上述内容整理自网络


关系型数据库所遇到的瓶颈
  1. 高并发读写能力差:
    网站类用户的并发性访问非常高,而一台数据库的最大连接数有限,且硬盘 I/O 有限,不能满足很多人同时连接。

  2. 海量数据情况下读写效率低:
    对大数据量的表进行读写操作时,需要等待较长的时间等待响应。

  3. 可扩展性不足:
    不像web server和app server那样简单的添加硬件和服务节点来拓展性能和负荷工作能力。

  4. 数据模型灵活度低:
    关系型数据库的数据模型定义严格,无法快速容纳新的数据类型(需要提前知道需要存储什么样类型的数据)。

  5. 性能欠佳:
    在关系型数据库中,导致性能欠佳的最主要原因是多表的关联查询,以及复杂的数据分析类型的复杂SQL报表查询。为了保证数据库的ACID特性,必须尽量按照其要求的范式进行设计,关系型数据库中的表都是存储一个格式化的数据结构。

上述内容整理自网络


非关系型数据库

NoSQL (Not Only SQL),泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,特别是大数据应用难题。
常见非关系型数据库管理系统:Oracle,MySql, Microsoft SQL Server, SQLite, PostgreSQL, IBM DB2。


上述内容引用自 百度百科

非关系型数据库的优点
  1. 灵活的数据模型
    非关系型数据库存储数据的格式可以是 key-value 形式、文档形式、图片形式等。使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
  2. 载体多样化
    NoSQL 可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘。
  3. 大数据量,高性能
    NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般MySQL使用Query Cache。NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说性能就要高很多。
  4. 低成本
    NoSQL 数据库部署简单,使用到的软件基本上都是开源软件。

上述内容整理自网络


非关系型数据库的缺点
  1. 高成本
    NoSQL 不提供 SQL 支持,学习成本较高。
  2. 不太支持关联查询
    对较复杂的表进行关联查询难度大。
  3. 安全性较弱
    非关系数据库不支持事务处理,无法保证数据的完整性和安全性。适合处理海量数据,但是不一定安全。

上述内容整理自网络


结构化查询语言 SQL

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。


上述内容引用自 百度百科

语句结构

  1. 数据查询语言(Data Query Language, DQL):
    其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其它类型的SQL语句一起使用。

  2. 数据操作语言(Data Manipulation Language,DML):
    其语句包括动词INSERT、UPDATE和DELETE。它们分别用于添加、修改和删除。

  3. 事务控制语言(Transaction Control Language, TCL):
    事务控制语言是SQL语言四大主要分类之一,是SQL语言的子集,用于控制数据库中的事务处理。事务是包含一个或多个SQL语句的逻辑工作单元,通常是一组数据操作语言(DML)语句。TCL的语句能确保被DML语句影响的表的所有行及时得以更新。

  4. 数据控制语言 ( Data Control Language,DCL ) :
    它的语句通过GRANT或REVOKE实现权限控制,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。

  5. 数据定义语言(Data Definition Language,DDL) :
    其语句包括动词CREATE,ALTER和DROP。在数据库中创建新表或修改、删除表(CREATE TABLE 或 DROP TABLE);为表加入索引等。

  6. 指针控制语言(Cursor Control Language, CCL):
    指针控制语言(Cursor Control Language, CCL)规定了 SQL语句在宿主语言的程序中的使用的规则,是SQL语言的分类之一。CCL包含了DECLARE CURSOR(声明游标)、FETCH INTO(进入)和UPDATE WHERE CURRENT(更新当前位置)等语句,主要用于用于对一个或多个表单独行的操作。

上述内容整理自网络


数据库管理系统 (Database Management System,DBMS)

数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。它可以支持多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。


上述内容引用自 百度百科

注:
数据库管理系统常被称为数据库,但两者是不同的,切勿将两者混为一谈。

DB-Engines

DB-Engines排名是一个数据库领域的流行度榜单,它对全球范围内的300多款数据库进行了排名,榜单排名每月更新一次。如果某个数据库的排名越靠前,则表示它越流行。所以在很多技术选型的场合,都会引用DB-Engines的排名数据,用于论证技术的成熟度和流行度。


上述内容引用自 腾讯云

前往 DB-Engines

数据库管理系统单月流行度排行

DB-Engines 根据流行度对数据库管理系统进行排名,排名每月更新一次。排名的数据依据 5 个不同的指标:

  1. Google 以及 Bing 搜索引擎的关键字搜索数量
  2. Google Trends 的搜索数量
  3. Indeed 网站中的职位搜索量
  4. LinkedIn 中提到关键字的个人资料数
  5. Stackoverflow 上相关的问题和关注者数量
    数据库管理系统单月排行
数据库管理系统流行度走势图

数据管管理系统走势图

DB-Engines 年度数据库管理系统评选规则

DB-Engines 是全球知名的数据库流行度排行榜网站,它评选年度数据库的标准十分简单:计算数据库当前最新流行度分数(2021年1月)的同比增长量,分数增长最多的即为年度数据库。

DB-Engines近年年度数据库
年份 年度数据库
2013 MongoDB
2014 MongoDB
2015 Oracle
2016 Microsoft SQL Server
2017 PostgreSQL
2018 PostgreSQL
2019 MySQL
2020 PostgreSQL
2021 Snowflake

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/84055.html

(0)
小半的头像小半

相关推荐

半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!