数据产品经理高效学习手册:产品设计、技术常识与机器学习
上QQ阅读APP看书,第一时间看更新

第2章 产品经理必知的数据库知识

2.1 数据库是什么

2.1.1 为什么应该了解数据库

产品经理需要对产品有个全面的认识:所有产品的功能层面最终是要落实在数据层面的。例如,用户注册页面增加新的注册信息,相应的,就需要在数据库的用户信息表中新增几个字段来存储新的注册信息。

数据产品就是各个数据模型的集合,如典型的电商产品。用户在电商平台上看到各种商品,每天都有商品更新,这些商品的信息就存储在数据库商品信息表中;用户购买商品前需要进行用户注册,注册用户的姓名、联系方式、联系地址等信息都存储在数据库的用户信息表中;用户下单购买商品后,这条购买记录就被存储起来放在了数据库订单信息表中;用户有时会把有购买意向的商品暂时存放起来,这个存放的地方就是购物车信息表。

所以,我们可以发现,产品经理设计的各种产品功能最后都要在数据层面找到对应的数据模型。另外,产品经理进行产品功能更改时也会导致数据库中相关数据字段的修改或删除甚至是数据兼容性问题,这都要求产品经理尤其是数据产品经理要学习数据库的相关知识。如果产品经理懂得数据库的相关知识,就可以从数据层面来综合考虑产品的功能设计问题,更好地同技术人员进行沟通,从而更好地推进产品规划设计和研发工作。

2.1.2 应知的数据库基本常识

1.数据库是如何产生的

数据库的产生是因为数据读/写的需要。应用程序运行过程中会产生大量数据,例如,需要保存用户的各种基础信息数据和用户行为数据,这些数据就需要存储在某个地方。当然,最原始的存储地址可能是存在某个Word文件或CSV文件中。

但随着应用程序的功能越来越复杂,存储的数据量也越来越大,如何管理这些数据就成了大问题。工作中不仅需要存储这些数据,还需要不断地对这些文件进行读/写操作。如果让每个应用程序都编写代码各自进行数据的读/写操作,一方面会导致效率低下且易出错;另一方面,各应用程序访问数据的接口不相同,也会导致数据难以复用。所以,实践的需求促进了数据库管理软件的诞生。

通过将应用程序与数据相互独立开来,由数据库提供统一的应用程序接口,应用程序不再直接管理数据,而是通过数据库软件提供的接口来读/写数据,数据库作为一种专门管理数据的软件就出现了。这样,应用程序改变或数据库改变时就互不影响了,如图2-1所示。

图2-1 数据库管理系统与应用程序

如此,研发人员编写应用程序时,数据读/写的功能就被大大简化了,这样也降低了应用程序研发人员的负担。

2.目前流行的数据库

数据库是信息的集合,是计算机数据存储的仓库或容器。数据库设计的目的是管理大量的信息,给用户提供数据的抽象视图,即系统隐藏有关数据存储和维护的某些细节。理解数据库最直观的方法就是把它看成是一个文件柜,数据就是放在这个柜子里面的文件。

数据库设计就是根据业务实际需求,结合选用的数据库管理系统,构造出符合业务系统的数据存储模型,进而建立好数据库中表结构、表与表之间关联关系的过程,实现数据的有效存储和高效访问。

数据库是一个逻辑上的概念,它本质上是一些互相关联的数据的集合。从物理层面来看,数据库就是一系列存储在磁盘上的数据表文件。数据库中的数据组成了“表”,有点类似Excel软件中的各个工作表,如图2-2所示。

图2-2 数据库示意

目前,应用广泛的数据库是MySQL数据库。MySQL是一种典型的关系型数据库。除了MySQL这种关系型数据库,你可能还听说过非关系型(NoSQL)数据库,如MongoDB、Cassandra、Dynamo等,常被用来存储一些文本数据。

综合来看,各种应用程序的核心数据存储仍然使用MySQL数据库进行存储,而NoSQL数据库作为MySQL数据库的补充,经常存储一些非核心的文本类数据信息。本书将以MySQL为例来讲解有关数据库的知识。