2.1 数据库的前世今生——数据库简介

  数据库是由一批存放在数据表里的原始数据堆积而成,这些数据表之间相互关联,记录了客观事物日常的运动规律。如今我们的生活中无时无刻不在使用着数据库,例如在因特网上进行搜索,或者是在电商网站上进行购物,甚至是在自动取款机上使用银行卡,背后都是利用数据库对各类数据进行存储、修改和查询。本节将介绍数据库的一些基本概念,首先介绍数据库的发展历程,其次介绍数据库、数据库管理系统及SQL之间的联系,最后介绍我们后续要用到的MySQL数据库管理系统。

2.1.1 数据库历史发展阶段

  所谓数据库,可以想象成一个容器中存放着各种数据集。若把这个容器比作书架,书架上的每一本书就相当于一个数据集,若把这个容器比作文件夹,文件夹里的每一个文件就相当于一个数据集。据此,我们能够对数据库内的数据进行存储、分类、检索、提取和维护。发展到现在,数据库已经完成了由人工存储到机器存储的蜕变,共经历了三个阶段:人工管理阶段、文件系统阶段、数据库管理系统阶段。
(1)人工管理阶段
时间:20世纪50年代以前
事件:计算机主要用于科学计算。从硬件层面看,当时没有直接用于存储的设备,仅能借助卡片、磁带等外存达到数据存储的目的;从软件层面看,当时也没有完整的操作系统以及专门管理数据的软件;从数据层面看,当时数据量非常小且有没固定的数据结构,所有数据都直接由用户管理。
特点:数据不能长期保存,没有对数据进行管理的软件系统,数据不能共享,数据不具有独立性。
(2)文件系统阶段 时间:50年代后期到60年代中期
事件:计算机不仅用于科学计算,还运用到信息管理方面。从硬件层面看,这时出现了磁盘等数据存储设备;从软件层面看,系统可以按照文件的名称对其进行检索和访问,并可以实现文件内容的增加、修改与删除;从数据层面看,实现了文本内数据的结构化,即单个文本中各数据之间具有一定的关系,但从整体来看每个文件中的数据却是无结构的。
特点:数据可以长期保存,由文件系统管理数据,数据具有一定的共享性和独立性。
(3)数据库管理系统阶段
时间:60年代后期
事件:数据库系统克服了文件系统的缺陷,提供了对数据更高级、更有效的管理,这个阶段程序与数据的联系通过数据库管理系统(DBMS)来实现,因此计算机可以用来存储和处理规模庞大的数据集。
特点:数据实现结构化,共享性高、独立性强。

2.1.2 数据库、数据库管理系统与SQL语言

问题A:数据库与数据库管理系统是一回事么?
答案A:不是哦,数据库是用于存储数据的地方,它提供了一个数据存储的空间,而数据库管理系统是用于管理数据库的软件,它是用户创建、管理和查询数据库时所使用的软件。如果把数据库想象成一个装有Excel表格的文件夹,那么数据库管理系统就是管理这个文件夹的软件。

问题B:当今主流的数据库管理系统有哪些?
答案B:关系型数据库包括:MySQL,Oracle,SQL server,PostgreSQL等
    非关系型数据库包括:MongoDB,Hbase等

要点B:关系型数据库与非关系型数据库的区别?
区别1:关系型数据库中存放的是结构化数据集,类似于Excel表格,即行与列组合而成的二维表;非关系型数据库中存放的是非结构化数据集,例如用户得聊天记录、拍摄的图片等。
区别2:关系型数据库有且只能存放结构化数据集,但非关系型数据库不仅能存放非结构化数据集,还能存放结构化数据集。

问题C:那SQL语言又是什么呢?
答案C:SQL是Structure Query Language(结构化查询语言)的缩写,是目前广泛使用于关系型数据库的标准语言,是执行数据库管理系统的程序语言。
要点C:SQL语言包含以下4个部分:
(1)数据定义语言(DDL):Drop,Create,Alter等语句
(2)数据操作语言(DML):Insert,Update,Delete等语句
(3)数据查询语言(DQL):Select语句
(4)数据控制语言(DCL):Grant,Revoke,Commit等语句

作为数据分析师,我们需要集中精力攻克查询语言(DQL)。下面简单列举几条常用的SQL语言,期望能给读者留下一个直观的印象:
(1)数据定义语言(DDL):
【例】创建一张学生信息表,表名为student,输入语句如下:

create table student(
stu_id int(10),
name char(20),
sex char(20),
birthday datetime(5)
);

(2)数据操作语言(DML):
【例】往student表中插入一条学生信息数据,输入语句如下:

insert into student(stu_id,name,sex,birthday) values(1001,"张三","男","1989-11-11");

(3)数据查询语言(DQL):

select * from student;

# MySQL输出结果如下               
+--------+------+-----+---------------------+
| stu_id | name | sex |        birthday       |
+--------+------+-----+---------------------+
|   1001  | 张三  |    | 1989-11-11 00:00:00 |
+--------+------+-----+---------------------+

问题D:数据库、数据库管理系统与SQL语言之间有什么联系?
答案D:

2.1.3 MySQL数据库管理系统

问题A:什么是MySQL?
答案A:MySQL是一个轻量级的关系型数据库管理系统,与Oracle、SQL server等大型数据库管理系统相比,MySQL规模较小、功能有限,但正是因为它规模小,所以速度快、成本低,并且从实际应用角度来看,它所提供的功能完全可以满足于大部分业务功能,诸如此类的特性使得MySQL成为全世界最受欢迎的开源的数据库。

问题B:MySQL的优势在哪?
答案B:MySQL数据库管理系统的优势主要表现在以下几个方面:

优势 详细描述
效率高 轻量级关系型数据库,运行速度极快
成本低 对于大多数个人而言免费开源
易用性 数据库设置复杂程度低,易于学习
规范性 国际公认的标准SQL语法
兼容性 兼容数种不同的系统平台,例如Windows、Linux、Mac OS等
安全性 允许主机验证,所有密码传输均采用加密形式
接口丰富 提供C、C++、JAVA、Python等语言的API接口

问题C:MySQL相关工具有哪些?
答案C:MySQL数据库管理系统提供了许多命令行工具,也提供了可视化的管理工具。命令行工具能够用来管理MySQL服务器、登录用户以及数据库备份和恢复等,而可视化工具Workbench使得用户操作数据库更加快捷。
命令行工具实用小程序:

# 1.启动MySQL服务
net start mysql
# 2.登录MySQL
mysql -u root -p
# 回车后输入密码,例如1234
# 3.导出数据
mysqldump --opt test > mysql.test

Workbench主要功能:
1.数据库设计和模型建立
2.SQL开发(取代MySQL Query Browser)
3.数据库管理(取代MySQL Administrator)

分类: 数据库技术