数据库的基础图像

数据库的基础图像

数据库是结构化信息或数据的有序集合,一般以电子形式存储在计算机系统中。通常由数据库管理系统 (DBMS) 来控制。在现实中,数据、DBMS 及关联应用一起被称为数据库系统,通常简称为数据库。数据库管理系统运行在服务端,用户通过客户端连接访问服务端,像ssh登录服务器一样进行身份认证。实际的数据存储和处理操作都在服务端进行,然后,服务器将结果发送回客户端,并在客户端上显示查询结果或者其他操作的返回值。在这个过程中,用户在客户端中通过输入SQL语句来指挥服务端,客户端将SQL语句发送到MySQL服务器,服务器解析SQL语句并执行相应的数据库操作。这就是数据库系统的基本图像。

所以当我们谈学习数据库的时候,我们在学习些什么?一部分是学习通用的SQL语法,另一部分就是学习特定数据库管理系统的知识,比如适用场合、函数区别、数据类型这些。最后我们可以为某个场合的数据开发一套数据库系统,来供用户进行数据的添加、修改、删除、查询等操作。

img

数据库和电子表格(例如 Microsoft Excel)都可以便捷地存储信息,两者的主要区别包括:

  • 存储和操作数据的方式
  • 谁可以访问数据
  • 可以存储多少数据

从一开始,电子表格就是专门针对单一用户而设计的,其特性也反映了这一点。它非常适合不需要执行太多高度复杂的数据操作的单一用户或少数用户。相反,数据库是为了保存大量甚至海量有组织的信息而设计的,它允许多个用户同时使用高度复杂的逻辑和语言,快速、安全地访问和查询数据【参考:Oracle · 什么是数据库】,不能够指望用一大堆Excel表格去记录几亿人的购票、改签记录等信息,速度、安全性是一方面,大家也不希望每次买东西需要有个人来专门记账去手动改Excel,而是希望按一下按钮就买好票改好信息了。

每一个工程都有类似的发展历程,由一系列零散的技术和方法,整合和优化成一套完整的开发流程和方法论。比如早年间写的程序都比较简单,但是随着程序复杂程度的增加,对于安全性和稳定性要求的提高,在阿波罗计划的推动下,软件开发也变成了一项工程,从鲁班发展到了中建公司。此后想要构建一个过得去的项目,就需要学习这个工程并遵守相应的规范。

图片

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

和上面说的一样,使用 MySQL 就是先启动服务端,然后用户通过客户端连接服务端,用户在客户端中输入SQL语句,客户端会将SQL语句发送到MySQL服务端,服务器解析SQL语句并执行相应的数据库操作,来进行数据的添加、修改、删除、查询等操作。所以安装MySQL其实是安装MySQL服务端,就像安装Python其实是安装Python解释器一样,当然也可以访问一些在线的数据库管理系统。