数据库原理

为什么要用数据库?为什么不都用 Pandas 来搞定?因为几乎所有的公司都用数据库。我们到公司里,会发现公司的数据,大部分是存在数据库里面。它不会给我们很多 csv 文件,而是会给我们一个数据库的账号和密码。

数据库发展了几十年,非常成熟,完全满足商业的需要。

首先,它能够保证数据的完整。即使有一些数据节点崩溃了,数据库也会尽量帮我们恢复。这个特别特别重要,因为我们特别怕数据丢。公司的数据绝对不能丢了。

其次,它基于 SQL,用起来非常方便。SQL 是工作必须掌握的,功能非常强大。数据库允许多个用户并发访问,不会说:因为你正在访问,所以别人就得在后面排队。

作为数据分析师,我们下面简单了解一下数据库的设计。在公司里,一般都有专门的数据库管理员。我们来了解一下她们的工作,这样好和她们打交道。如果大家对数据库感兴趣,可以去 B 站上看专门的数据库设计和管理课程。

数据库的设计包括四个阶段:首先理解用户需求,然后建立实体关系模型,然后把这个实体关系模型落实到表的设计、整个数据库的设计上,最后提供数据访问和分析。

首先看需求工程。一般来说,公司里的数据库会有一个说明文档,解释这个数据库想要满足的需求。我们拿着这个文档,就大概知道这个数据库是为了干啥的。这很重要。否则我们登录上数据库后,看着各种表,摸不到头脑。

这个文档中会记录这些东西:数据库里面存了什么?包括哪些相关的概念?这些概念有些什么属性?属性的类型?对象之间的关系?等等。比如一个关于书的表格,它可能就包括作者、制造商、分销商、出版商等各种概念。

其次是概念建模阶段。在这个阶段,我们建立实体关系模型。数据库中一个重要的概念是“关系”。表格里的每一行就是一个关系。在概念建模阶段,我们要建立的就是概念之间的关系。比如一本书和它的作者的关系,就是作者“写”了这本书的关系。我们建立这样的模型。

然后是逻辑设计和物理设计。物理设计方面,是数据库为了让我们能够迅速地访问,在物理设计上是做过很多优化的。逻辑设计,就是设计表的结构 Schema。因为每个表的一行是一个关系,每一列是一个属性,所以我们可以通过 Schema 指定一个表格的属性,属性的类型,属性内容能不能为空(NULL),属性是不是一个“主键”。主键的内容就必须是唯一的,就像 Pandas 的 Index 一样。

最后就是各种查询和访问的接入了。这主要是通过 SQL 实现的。我们下面就学习这些。


Index Previous Next