大家好!此 repo 是我们创建的数据库教程的主要 repo。
您可以与此项目合作,帮助翻译和/或校阅。请 fork 这个项目,贡献您的 PR!
您可以在下面找到不同版本的翻译。
该项目的主要目标是向大家介绍这个奇妙的数据世界。许多公司还没有意识到他们的第二宝贵的资产是数据(最宝贵的资产当然是你!)。正因为如此,我经常听到诸如“我们太小,数据不是工作重点”或“这仅仅只是数据库”之类的说法......这些误解导致公司泄露重要数据,丢失宝贵数据,业务下线,在极端情况下甚至停止整个业务运营!
我们的教程将从头开始,讲解数据、模型和一些关系代数的概念,然后发展到数据库建模。请注意,此时我们并没有限定在特定的数据库,一切教程内容适用市场上的任何关系型数据库。在这第一门课程中,我们还将向您介绍 SQL 和查询的构建。我们将从基本语句开始,了解如何建立(表与表之间的)关系、如何填充这些关系以及如何获得数据(使用 SELECT)。尽管我不打算在第一门课程中就介绍超级复杂的构造(出于时间限制考虑),但我打算讲一些中等难度级别的概念,例如窗口函数(Window function)和 CTE(通用表表达式),这样您将可以解决这里[1]提出的问题。
第一课是对数据库世界的介绍,不需要任何数据库或数据知识,任何人都可以学习。但是,之后的课程知识建立在第一课所涉及概念的基础之上。如果您已经具备必备相关知识,则可以跳过第一课。
当然在我们熟练掌握对数据、建模、SQL 以及保持数据库重要的转运知识之后,是时候学习如何管理我们的数据库了。在这里,我们将开设具有不同重点和复杂程度的课程。虽然这个课程还在设计制作中,但设定的目标是从单个数据库实例的安装、基本配置、备份、调优和故障排除到使用异步和同步复制的多实例环境,并使用诸如 Patroni 等工具进行调试以实现高可用性、pgBackRest 用于备份策略和 Percona PMM 用于监控。这似乎还有很长的路要走,但我们希望最终目标是让您能够完全安装、配置、故障排除、优化…… 具备完全的知识储备、自信从容地管理线上生产环境中的 PostgreSQL 数据库。
需要注意的是,虽然我们不会覆盖学术文献课程的所有内容,但我们还是会涉及到其中一些,比如上面提到的关系代数。不过不要害怕,我们将在这里解释并引导您了解所有需要的知识。我们还将尝试使用小册子、文本教程、示例等形式制作我们自己的学习材料,并提供一些优秀的参考书目。我们也为您提供足够的知识来理解消化这些参考文献和书籍。
我相信您明白会学到什么(好吧,如果没有,请就上述内容提出疑问),但它是如何工作的?视频?只有文字?
首先,这个项目将分为不同的课程,我们会尽量使其前后连贯,逻辑清晰。也就是说,我们会有视频,我会尝试使用直播,这样我们就可以在线上进行互动并回答问题。所有视频都将发布在 Youtube 等视频流媒体上,我会尽量关注评论中的问题。此外,与任何正式培训一样,我们将给到需要完成的练习题和家庭作业。这很重要,我强烈建议您回答所有问题!
创建此材料的初衷是为了帮助每个想要或需要进入这个领域的人。它可能会帮助一个人在大学里获得更好的成绩、进入就业市场、找到一份更好的工作,或者只是想更好地了解数据库的工作原理…… 也就是说,请大家相互尊重,尝试相互帮助。如果发现任何不正确、错误信息等,请及时反馈,这有助于保持本教程的质量!此外,这是协作项目,如果您有建议、额外材料或想将其翻译成您的母语,请向我们发送 PR,我们很高兴将其纳入!
好了,说了这么多,希望大家喜欢这场旅程,下一场直播再见!!!
[1] https://github.com/elchinoo/tutorials-db/blob/main/challenges/challenge_1.md