入门
让我们先了解一下本课程的目标受众、先决条件和学习目标。
让我们来看看本课程的目标受众和学习目标。
本课程适合谁
本课程《SQL反模式:避免数据库编程中的陷阱》面向希望更高效地使用SQL的软件开发人员。其价值并不局限于初学者或资深专业人士;无论经验水平如何,所有开发者都能从本课程的内容中获益。
课程中的一些主题可能对您来说已经熟悉。然而,通过完成课程中的练习,很可能会促使您以全新的视角看待问题,并提出更优的解决方案。同时,这也是巩固已有知识理解的良好实践。
尽管受过专业训练的数据库管理员可能早已掌握避免本课程所述SQL陷阱的最佳方法,但本课程仍能帮助他们从软件开发者的角度出发,理解问题。开发人员与DBA之间常常存在方法上的分歧,而像“SQL反模式”这样的课程有助于双方更有效地协作。DBA可以利用反模式的概念,向所合作的开发人员解释良好实践,从而促进双方更高效的协同工作。
接下来的部分将详细介绍本课程涵盖的内容以及不会涉及的内容。
关于本课程
反模式是指用户采用某种技术来解决问题,却反而引发更多问题的情况。反模式频繁出现,类型多样,但它们之间存在共通之处。许多面向对象软件设计和项目管理领域的反模式已在波特兰模式库中被记录,也收录于1998年威廉·J·布朗等人合著的《反模式》一书中。
《SQL反模式》汇集了来自互联网、培训讨论、技术支持交流、其他开发者的反馈以及作者自身错误经历中最常见的失误。没有什么比深夜反复修正自己错误的经历更能成为最好的老师。
本课程不包含SQL语法或术语的基础教学。课程假定您已掌握足够的SQL语法知识,能够熟练使用该语言并完成实际工作。
性能、可扩展性和优化对于开发数据库驱动的应用程序(尤其是网络应用)至关重要。尽管本课程会简要提及这些概念,但它们并非本课程的核心重点。对这些话题感兴趣的学员可参考专门讨论数据库编程性能问题的书籍,例如《SQL性能调优》和《高性能MySQL》。
数据访问框架和对象关系映射库也不是本课程的重点。简而言之,本课程主要面向使用SQL语言的开发人员,而非数据库管理员。
本课程聚焦于SQL和关系型数据库,不涉及其他技术,如面向对象数据库、键值存储、列式数据库、文档型数据库、层次化数据库、网络数据库、Map/Reduce框架或语义数据存储。比较这些替代性数据管理方案的优势与局限及其适用场景固然有趣,但这属于其他课程的内容。