数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

在本篇系列推文中,将列出所有关于 MySQL 数据库的一系列文章,以方便大家阅读,当然,也需要在此声明:如果文章中出现了错误,请大家帮忙斧正,深感荣幸。

数据库,可以简单的解释为:高效的存储和处理数据的介质(主要分为磁盘和内存两种)。

简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。

在经济管理的日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。

严格来说,数据库是长期储存在计算机内、有组织的、可共享的数据集合。数据库中的数据指的是以一定的数据模型组织、描述和储存在一起、具有尽可能小的冗余度、较高的数据独立性和易扩展性的特点并可在一定范围内为多个用户共享。

这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改、查由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。

数据库的基本结构分三个层次,反映了观察数据库的三种不同角度。

以内模式为框架所组成的数据库叫做物理数据库;以概念模式为框架所组成的数据叫概念数据库;以外模式为框架所组成的数据库叫用户数据库。

⑴ 物理数据层。

它是数据库的最内层,是物理存贮设备上实际存储的数据的集合。这些数据是原始数据,是用户加工的对象,由内部模式描述的指令操作处理的位串、字符和字组成。

⑵ 概念数据层。

它是数据库的中间一层,是数据库的整体逻辑表示。指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的集合。它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。

⑶ 用户数据层。

它是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。

数据库不同层次之间的联系是通过映射进行转换的。

根据数据库存储介质的不同,可以将其分为两类,即:关系型数据库(SQL)和非关系型数据库(NoSQL,Not Only SQL)。

关系型数据库:

大型:Oracle、DB2 等;

中型:SQL Server、MySQL 等;

小型:Sqlite、Access 、H2等。

非关系型数据库:

Memcached、MongoDB 和 Redis 等。

关系型数据库:

安全,其将数据保存到磁盘之中,基本不可能出现丢失数据的情况;

比较浪费空间,因为其用二维表的形式存储数据。

关系型数据库通过外键关联来建立表与表之间的关系

非关系型数据库:

存储数据的效率比较高;

不是特别安全,突然断电时会导致数据丢失。

非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定

关系型数据库,是一种建立在关系模型(数学模型)上的数据库。

至于关系模型,则是一种所谓建立在关系上的模型,其包含三个方面,分别为:

数据结构:数据存储的形式,二维表(行和列);

操作指令集合:所有的 SQL 语句;

完整性约束:表内数据约束(字段与字段)和表与表之间的约束(外键)。

数据库:从需要存储的数据需求中分析,如果是一类数据(实体),则应该设计成二维表;

二维表:由表头(字段名,用来规定数据的名称)和数据(实际存储的内容)部分组成。

二维表示例:

在此处,如果表中对应的某个字段值为空,但是系统依然会为其分配存储空间,这也就是关系型数据库比较浪费空间的原因啦!

DB:Database,数据库;

DBMS:Database Management System,数据库管理系统;

DBS:Database System = DBMS + DB,数据库系统;

DBA:Database Administrator,数据库管理员。

行\记录:row\record,本质都是指表中的一行(一条记录),行是从结构角度出发,记录则是从数据角度出发。

列\字段:column\field,本质都是指表中的一列(一个字段),列是从结构角度出发,字段则是从数据角度出发。

SQL:Structured Query Language,结构化查询语言(数据以查询为主,99% 都是在进行查询操作)。

SQL 主要分为三种:

DDL:Data Definition Language,数据定义语言,用来维护存储数据的结构(数据库、表),代表指令为create、drop和alter等。

DML:Data Manipulation Language,数据操作语言,用来对数据进行操作(表中的内容)代表指令为insert、delete和update等,不过在 DML 内部又单独进行了一个分类,即 DQL(Data Query Language),数据查询语言,代表指令为select.

DCL:Data Control Language,数据控制语言,主要是负责(用户)权限管理,代表指令为grant和revoke等。

SQL 是关系型数据库的操作指令,是一种约束,但不强制,类似于 W3C,因此这意味着:不同的数据库产品(如 Oracle 和 MySQL)内部可能会有一些细微的区别。

- The End -

「若你有原创文章想与大家分享,欢迎投稿。」

程序 丨 geekxz