数据库,一个我们常常提到的名词,但是你有没有想过,它到底是什么意思呢,而我们常说的 MySQL、Oracle 等又到底指什么呢?

数据库

数据库(DataBase),简称 DB,是数据库是存储数据的集合,你可以把它理解为多个数据表。数据库是“按照数据结构来组织、存储和管理数据的仓库”,是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。

数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。

数据库的概念实际包括两层意思:

  1. 数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。
  2. 数据库是数据管理的新方法和技术,他能更合适的组织数据、更方便的维护数据、更严密的控制数据和更有效的利用数据。

数据库管理系统

数据库管理系统( Database Management System )是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称 DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过 DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。

DBMS 可以支持多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。大部分 DBMS 提供数据定义语言 DDL(Data Definition Language)和数据操作语言 DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。

在生活中我们常常提到的 MySQL、Oracle 等,虽然叫的都是数据库,但其实严格意义上来说,它们应该是数据库管理系统,即 DBMS。

数据库系统

数据库系统(Database System),简称 DBS,是由数据库及其管理软件组成的系统。

其软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。数据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。数据库管理员一般是由业务水平较高、资历较深的人员担任。

DBS 是更大的概念,包括了数据库、数据库管理系统以及数据库管理人员 DBA。

SQL

那我们呢平时使用的 SQL 又是什么呢?

SQL 是一门结构化查询语言( Structured Query Language ),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

需要注意的是,SQL 是针对关系型数据库系统,与之相对应的就是 NoSQL 的非关系数据库,如 key-value 型的 Redis、文档型的 MongoDB。

我们日常工作中使用的数据库 MySQL、Oracle 等数据库管理系统,都遵循 SQL 语言,因此,我们可以通过 SQL 来操作 DBMS。

按照功能,SQL 可以分为4个部分:

  1. DDL,英文叫做 Data Definition Language,也就是数据定义语言,它用来定义我们的数据库对象,包括数据库、数据表和列。通过使用 DDL,我们可以创建,删除和修改数据库和表结构。
  2. DML,英文叫做 Data Manipulation Language,数据操作语言,我们用它操作和数据库相关的记录,比如增加、删除、修改数据表中的记录。
  3. DQL,英文叫做 Data Query Language,数据查询语言,日常中使用最多的部分,我们用它查询想要的记录。
  4. DCL,英文叫做 Data Control Language,数据控制语言,我们用它来定义访问权限和安全级别。

Oracle 与 MySQL

2019 年 5 月 DB-Engines 公布的 DBMS 的排名中,Oracle 与 MySQL 占据了前两位,这也是我们日常中使用较多的数据库。

1979 年 RSI(关系软件有限公司)发布了 Oracle 第二版(其实是第一版),它是它是第一个商用的 RDBMS(关系型数据库管理系统),随后被卖给了军方客户。随着 Oracle 的火热,RSI 也更名为 Oracle 公司,目前 Oracle 数据库最新版本为 Oracle Database 12c。

MySQL是 1995 年诞生的开源数据库管理系统,因为免费,广受好评。2008 年 SUN 收购了 MySQL,然而在 2010 年 SUN 又被 Oracle 收购,于是 Oracle 拥有了 MySQL 的管理权,而这也使得 Oracle 在数据库领域中成为绝对的领导者。

在 Oracle 收购 MySQL 的同时,MySQL 的创造者担心 MySQL 有闭源的风险,因此创建了 MySQL 的分支项目 MariaDB,MariaDB 在绝大部分情况下都是与 MySQL 兼容的,并且增加了许多新的特性,比如支持更多的存储引擎类型。

Oracle是商业数据库,费用不菲,而 MySQL 作为开源软件,则是基本免费的,因而很多企业选择使用 MySQL,尤其在中国,因为阿里的带动,更是推动了 MySQL 的发展。

MySQL系列:走进数据库,相关概念你都明白吗?的更多相关文章

  1. MySQL系列(三)--数据库结构优化

    良好的数据库逻辑设计和物理设计是数据库高性能的基础,所以对于数据库结构优化是很有必要的 数据库结构优化目的: 1.减少数据的冗余 2.尽量避免在数据插入.删除和更新异常 例如:有一张设计不得当的学生选 ...

  2. MySQL系列:数据库基本操作(1)

    1. 登录数据库 mysql -h localhost -u root -p 2. 数据库基本操作 2.1 查看数据库 mysql> SHOW DATABASES; +------------- ...

  3. MySQL系列(八)--数据库分库分表

    在互联网公司或者一些并发量比较大的项目,虽然有各种项目架构设计.NoSQL.MQ.ES等解决比较高的并发访问,但是对于数据库来说,压力 还是太大,这时候即使数据库架构.表结构.索引等都设计的很好了,但 ...

  4. [MySQL数据库之数据库相关概念、MySQL下载安装、MySQL软件基本管理、SQL语句]

    [MySQL数据库之数据库相关概念.MySQL下载安装.MySQL软件基本管理.SQL语句] 数据库相关概念 数据库管理软件的由来 数据库管理软件:本质就是个C/S架构的套接字程序. 我们在编写任何程 ...

  5. 重重封锁,让你一条数据都拿不到《死磕MySQL系列 十三》

    在开发中有遇到很简单的SQL却执行的非常慢,甚至只查询一行数据. 咔咔遇到的只有两种情况,一种是MySQL服务器CPU占用率很高,所有的SQL都执行的很慢直到超时,程序也直接502,另一种情况是行锁造 ...

  6. MySQL 系列(二) 你不知道的数据库操作

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 本章内容: 查看\创建\使用\删除 数据库 用户管理及授权实战 局域网 ...

  7. 屌炸天实战 MySQL 系列教程(二) 史上最屌、你不知道的数据库操作

    此篇写MySQL中最基础,也是最重要的操作! 第一篇:屌炸天实战 MySQL 系列教程(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:屌炸天实战 MySQL 系列教程(二) 史上最屌.你不 ...

  8. Mysql系列-数据库

    一 .数据库管理软件的由来 基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上. 如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组 ...

  9. 五分钟,让你明白MySQL是怎么选择索引《死磕MySQL系列 六》

    系列文章 二.一生挚友redo log.binlog<死磕MySQL系列 二> 三.MySQL强人"锁"难<死磕MySQL系列 三> 四.S 锁与 X 锁的 ...

随机推荐

  1. python 学习之 基础篇一 python及pycharm的安装

    一. Python 环境搭建(安装请参照https://www.runoob.com/python/python-install.html) Python下载 Python官网:https://www ...

  2. 蓝牙TWS耳机IBRT的原理初分析

    最近在倒腾TWS对耳的一些东西,看到一些源码,发现一个新概念,IBRT没有搞清楚,抱着吾将上下而求索的态度,详细看了一些代码,查了一些资料,还是发现了不少有价值的信息的.至少,我突然感觉自己懂了一些什 ...

  3. 苹果开始推送 macOS Catalina10.15 正式版系统更新

    北京时间今天凌晨 1 点,苹果正式推送了 macOS Catalina 10.15 正式版升级.macOS Catalina 10.15 正式版带来了许多重大改变,包括Sidecar.iTunes应用 ...

  4. [书籍翻译] 《JavaScript并发编程》第五章 使用Web Workers

    本文是我翻译<JavaScript Concurrency>书籍的第五章 使用Web Workers,该书主要以Promises.Generator.Web workers等技术来讲解Ja ...

  5. std::multiset

    Set.multiset都是集合类, 差别在与set中不允许有重复元素, multiset中允许有重复元素. sets和multiset内部以平衡二叉树实现.   multiset 多重集合容器是一个 ...

  6. ubuntu16.04安装zlib

    sudo apt-get install zlib1g-dev 下载:libzip-1.0.1.tar.gztar zxcv libzip-1.0.1.tar.gzcd libzip-1.0.1./c ...

  7. python编程系列---最详细的讲解进程与线程的关系

    进程与线程 先引入三个比如: cpu---公司 进程---办公室   线程---程序员(我们)   全局变量,内存等资源---公司提供的电脑,桌子等 进程:  操作系统分配程序执行资源的单位 线程:进 ...

  8. 使用oracle脚本生成VO和Dao

    话不多说直接上代码. 生成VO的脚本: SELECT '/**' || T2.COMMENTS || '*/ @Column(name="' || T1.COLUMN_NAME || '&q ...

  9. maven 打包 spring boot 生成docker 镜像

    1.所使用材料 ,spring boot 项目 基于maven ,maven 工具, docker工具 ps:为啥使用 docker 公司微服务需要启动太多,有两个优点吧! 1.方便管理,2.减少服务 ...

  10. 百万年薪python之路 -- 文件操作练习

    1.有如下文件,a1.txt,里面的内容为: 老男孩是最好的学校, 全心全意为学生服务, 只为学生未来,不为牟利. 我说的都是真的.哈哈 分别完成以下的功能: a,将原文件全部读出来并打印. with ...