数据库,一个我们常常提到的名词,但是你有没有想过,它到底是什么意思呢,而我们常说的 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. 阿里巴巴开源 Dragonwell JDK 最新版本 8.1.1-GA 发布

    导读:新版本主要有三大变化:同步了 OpenJDK 上游社区 jdk8u222-ga 的最新更新:带来了正式的 feature:G1ElasticHeap:发布了用户期待的 Windows 实验版本 ...

  2. 【POJ2001】Shortest Prefixes

    Shortest Prefixes Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 18724   Accepted: 810 ...

  3. MyEclipse注册代码

    package test;    import java.io.BufferedReader;  import java.io.IOException;  import java.io.InputSt ...

  4. tp5中使用中间控制器代理路由,以避免创建过多的无用控制器方法

    在写项目的时候偶尔会加载一些不需要传递参数的静态视图,例如 class Index extends Common { public function index() { return $this-&g ...

  5. Z-buffer算法

    1.Z缓冲区(Z-Buffer)算法 1973年,犹他大学学生艾德·卡姆尔(Edwin Catmull)独 立开发出了能跟踪屏幕上每个像素深度的算法 Z-buffer Z-buffer让计算机生成复杂 ...

  6. 域渗透-msdtc实现dll劫持后门

    最近用的多  一个实用小tips 文章参考原创Shadow Force大牛  翻译文章参考三好大佬 利用MSDTC服务加载后门dll,实现自启动后门 后门思路可以查看趋势科技文章 https://bl ...

  7. ThinkPHP架构(一)-TP原理及路径问题及后台实现实例

    一直用CSDN的博客,由于域名当时注册写的不合适,现在想来博客园写博客,以后要坚持写啦,记录自己的技术学习路程 本人两个月前,刚完成基于PHP的研会门户网站,虽然实现了基本功能,但感觉技术有些单薄,便 ...

  8. FTPClient连续读取文件

    最近在使用FTPClient连续读取ftp上的多个文件内容时,遇到了两个问题: 1. 在for循环中,FTPClient只能读取到第一个文件内容,读取第二个时遇到NPE问题. 2. 遇到程序锁死. 下 ...

  9. ajax 轮询(适合web端二维码请求)

    (前几天 一直弄二维码轮询登录 想了半天 总算弄出来了 分享给大家    ^-^) 轮询: 所谓轮询 肯定需要 setInterval   但是怎么加ajax请求  需要有点小问题而且轮询成功后需要停 ...

  10. 冷知识: 不会出现OutOfMemoryError的内存区域

    程序计数器(PC) 因为程序计数器只是记录当前线程正在执行的那条字节码指令的地址,即使出现死循环都不会内存溢出