第二章:概念介绍2. 什么是数据库

什么是数据库

大家好,这节课呢我们来讲一下什么是数据库。

为什么要单独讲一下数据库呢?因为数据库真的太重要了。一些工具型的纯客户端软件,可能没有集成数据库,大部分需要网络连接的软件,都在服务端集成了数据库。如果集成了数据库的软件,数据丢失,可能会导致严重的商业问题,所以需要重视起来。

很多人对数据库没有概念,不知道什么是数据库。

简单来说,数据库就是用来存储数据的。

用 Excel 理解数据库

我们以刚才讲的餐厅点餐的流程为例,来讲一下怎么用 Excel 设计一个简单的数据库。

业务流程示例

业务流程示例

首先我们看一下下面的流程:

第一步:用户登录

张三进入了一家餐厅,打开了点餐小程序。这个时候呢,小程序提示需要登录,张三就登录了小程序。

第二步:点餐

张三进入小程序之后,点了三个菜,分别是:

  • 红烧肉 36元
  • 炒青菜 18元
  • 红烧排骨 49元

第三步:修改订单

厨房做好了红烧肉、炒青菜。这个时候张三感觉够吃了,所以他红烧排骨不想要了,他就赶紧在小程序上取消了红烧排骨。

第四步:充值

吃完了之后,张三感觉很满意,然后他在这家餐厅里面又充了 200 块钱。

数据库表设计

数据库表设计

这里呢,我们在 Excel 里面建了三个 sheet 页,分别是 t_usert_foodt_recharge

这里用来表示数据库里面的三个信息:

  • t_user - 存储用户信息的表
  • t_food - 存储点餐信息的表
  • t_recharge - 存储充值信息的表

数据记录过程详解

用户表(t_user)

第一步:张三进入这家餐厅,打开了点餐小程序,这个时候提示需要登录,张三就登录了小程序。

这个过程呢,其实后台会先查询张三有没有注册过这个小程序。我们这里假设他是没有注册过,那么他就是新客户。

后台程序呢,就会在用户表里面增加一个新的数据:

数据库中新增一条用户

客户的 ID 是一个自增的,从 1 开始。

点餐表(t_food)

第二步:张三进入小程序后,点了三个菜,分别是红烧肉 36、炒青菜 18、红烧排骨 49。

后台的程序呢,就会把这三个菜记录到这 food 表里面:

数据记录到food表中

菜单的 ID 仍然是从 1 开始自增。这里有一个用户 ID,意思就是这道菜是谁点的。他的客户 ID 是 1,表示这个菜是张三点的。

订单状态更新

第三步:厨房做好了红烧肉和炒青菜。

这时候呢,也就是说这个菜的状态变化了,变成了已做好。这时候张三感觉够吃了,红烧排骨不想要了,就在小程序上取消了红烧排骨。

更新后的状态:

状态更新

充值表(t_recharge)

第四步:张三吃完之后很满意,在这家餐厅充了 200 块钱。

记录充值信息

完整流程总结

这样我们就完成了一个完整流程的数据的记录。

假如说下次张三再次来这家餐厅的时候呢,我们就可以查到:

  • 他是一个老客户
  • 他之前点过哪些菜
  • 他充值过 200 块钱

为什么不用 Excel 做数据库?

那么假如将 Excel 作为程序的数据库是否可行呢?

大多程序都支持直接去操作 Excel 去读写数据,看起来好像是可以的。但是其实也有很多问题。

⚠️

这里用 Excel 只是我们用来举例子。本质上它是一个图形化的表格工具,首先它就不是作为数据库程序设计的。

用它作为数据库呢,其实有一些很明显的问题:

1. 并发问题

其实就是同时访问的问题。因为 Excel 不支持两个操作同时打开进行,如果有多个操作进来,比如说有多个用户在点餐,那么很容易出现文件损坏或者数据丢失,或者就需要去排队处理。那这肯定是不能接受的。

2. 性能问题

Excel 处理上万条数据之后会明显的变慢,任何查询保存可能都会非常的慢。一个软件系统有几十万上百万条数据其实都很正常,用 Excel 处理的话,显然它处理不了那么大数据量的查询和保存。

3. 安全问题

Excel 它作为一个文件,只要文件被人复制走了,那么数据就相当于全部泄露掉了。这也是一个很明显的问题。

🚫

这只是我们简单想一下就能想到的最明显的一些问题。

专业的数据库系统

所以呢我们的程序,就需要去用一些专业的数据库去记录这些数据。这些数据库呢,它是天然的为程序去设计的,并且也不会有我们上面列出来的这些问题。

比如说常用的有:

  • MySQL
  • Oracle
  • PostgreSQL

这些数据库呢,我们一般称之为关系型数据库

💡

我们前面的案例中,以及我们后续程序中需要集成的就是这个关系型数据库。

下一步

理解了数据库的基本概念后,让我们开始搭建开发环境:

👉 下一节:安装 nvm


准备好了吗?

从下一章开始,我们将进入实战环节,开始安装和配置开发工具!

相关信息

💬 扫码了解更多信息

客服微信二维码

添加微信

知识星球二维码

加入知识星球