数据库是什么?产品经理似乎不需要关注这个问题,交给技术就好了。然而,懂点数据库知识对做产品还是有帮助的,尤其是在梳理业务对象关系、在产品层面考虑产品架构和推进性能优化的时候。
在这个小课里,我会尽量结合产品设计和日常生活的类比来帮助你理解数据库的知识,毕竟单独去读一本专业的数据库书籍太枯燥了,对于做产品的人来说是一种折磨。当然,如果你一定要读一本的话,我推荐你读《高性能MySQL》,这是技术界公认的数据库经典。
回到我们这篇的主题,数据库是什么?我们可以把一个数据库想象成一座图书馆,来看看图书馆里有什么?
书架:在图书馆里,我们会有一排排的书架,每个书架都会给他命名以及提供一个编号;
书:每个书架上会放很多书,每本书也会有一个唯一的编号,例如三体这本书的编号是I.231(1)。
楼层:大点的图书馆会分很多层,比如一层是经管类、二层是社科类、三层是历史类、四层是文学类等等。
索取号:书架上还会有索取号,告诉你这个书架的书本编号范围,比如I.231 (001) ~ I.231 (280)。
这和我们的图书馆非常像,我们来对应一下:
书架:相当于我们数据库里的数据表,数据库里有很多张数据表,数据表里放着很多同类的业务对象信息;
书:每本书相当于我们数据表里的一行数据,这行数据会有作者、出版社、出版时间、ISBN版号等等信息;
楼层:相当于数据库里相对独立的存储区域,比如MySQL的扇区,上下楼取书会耗费时间,同样,跨扇区读取数据会更耗时。
索取号:我们在图书馆找书的时候,可以通过书名或作者找到这本书的索取号,然后再准确地找到索取号对应的书架和书本的位置,从而可以快速完成找书的过程。这类似于我们数据库中的索引,通过索引我们可以快速找到想要的数据。
有了上面的一个类比,相信你大概能明白数据库是什么了,我给数据库的定义是:一个有序存储各种各样数据的容器和数据管理工具。