SQL中的正常化我们使用数据库定期存储我们需要的信息。这些信息可以是关于我们的产品和服务,我们的员工,我们的老客户,或者只是我们的个人蓝光收藏。数据库让我们把这些信息保存在一个单独的位置,我们可以随时检索。然而,这些事情很快就会失控。当我们把越来越多的信息放进电脑时,电脑就变得难以使用,存储起来也很麻烦。我们需要一种方法来驯服我们的数据库,当它们变成怪物,撕裂我们的硬盘驱动器和我们的理智。我们需要在SQL中实现规范化。

了解Udemy的SQL并参加在线课程。

关系数据库和SQL

SQL中的规范化将数据库转换成更加紧凑、易于使用和高度可伸缩的数据库。但是,您需要一个可以标准化的数据库。对于大多数人来说,这将是一个关系数据库。

关系数据库的表以某种方式相互关联。当您从这些数据库中检索数据时,您的查询将同时从所有这些表中获取信息。Microsoft SQL Server、MySQL和Oracle都是这类数据库的例子,您可以通过一些调整将其他类型的数据库(如Microsoft Access)转换为关系数据库。

关系数据库模仿我们的思想如何存储和检索数据。要了解某些东西,你经常将它分成较小的碎片以包围你的思想。了解零件后,您可以在那时建立关系,以了解他们如何在整个包装中共同努力。关系数据库只是为这些小块创建容器。

例如,假设您正在设计在线商店的目录。目录是数据库的一个应用程序。您在数据库中存储您的产品信息,并使用您的网站软件将其显示给您的客户。例如,您可能希望将以下信息存储在数据库中进行体育用品商店:产品ID,产品名称,产品颜色,产品尺寸,每种产品的价格和产品描述。

您可以在表中存储此信息,但如果您对每个产品有多个选项,这可能会乏味。更好的想法是使用关系数据库。这样,您可以创建主产品表,然后单独的表格,尺寸和价格单独的表。然后,您可以通过产品ID将它们与SQL一起链接。

在Udemy了解关系数据库

了解规范化

从本质上讲,正常化是一种制作这些表格和您之间的链接更有效和有效的方法。

平面表就像电子表格。它们有很多很多列。这些表是独立的对象,您需要的一切都在表中。虽然这对于少量的记录是可以接受的,但它效率非常低,并且消耗的物理空间可能比您想要的更多。规范化试图消除平面表所带来的大量自然冗余。这使得检索记录更容易,同时释放过程中的硬盘驱动器资源。

了解如何在Udemy规范化SQL数据库

第一个正常形式

有多少应用程序使用规范化规则集和规范化表格,就有多少规范化规则集和规范化表格。然而,大多数人只需要使用前三种。

第一个正常形式只有两个正常化规则。

这些规则要求您通过您的平台表,并寻找从记录到记录的信息。通常,此信息来自数据库中列出的各种项目和人之间的数据。然后,您为此信息创建单独的表,一个用于每个重复的信息。

所有这些的关键组件是关键字段。关键字段是数字数据,它只能识别数据库中的记录。每个表应该至少有一个键列来标识其记录。然后将这些键添加到主表,创建所谓的一对多数据库模式。也就是说,一个表与数据库中的许多其他表有关系。

第二范式

第二条规则又增加了一条规则:

主键是它们表的主标识符。每个表只能有一个。第二条规范化规则规定标识任何可以分支到它们自己的表的非关键信息。这些信息现在可能不会重复,但将来可能会重复。例如,当您将新类型的产品添加到您的目录中时,您可能会发现这些新产品与以前惟一的旧产品具有相同的特征。第二条规则试图在您需要这些数据之前很久就找到它们。

第二种规范化通常会在表之间创建多对多关系。多对多关系表示在两个或多个表之间共享多个数据块。通常,这意味着您可能必须创建映射表,这些映射表实质上是将其他表映射到一起的表。

第三正常形式

第三种形式使用一个额外的规则完成了作业:

这意味着您的所有非关键信息都不能与数据库表中的另一个非键列相关联。一般来说,这意味着您必须覆盖您的数据,以查看是否有任何应将其拆分到自己的表中。此额外信息往往是您需要知道的数据,但与任何其他信息没有直接相关。例如,在大学生及其注册课程的数据库中,您想为教授创建一个单独的表格。您需要知道谁教导每门课程,但教授通常教授一门课程,可以根据需要切换。

完成第三个归一化后,您的SQL数据库通常与您获得的一样高效。有更多的正常化规则,而不是我在这里呈现的规则,但大多数人比他们的价值更麻烦。无论哪种方式,通过在SQL语句中编写表之间的关系来检索数据库中的数据。每种类型的数据库都有自己的规则,因此您需要研究特定数据库的正确公式,但输出将是相同的。您可以获得一张桌子,只需当您需要时需要的信息。

SQL中的顶级课程

SQL MicrodeGree 2021:从SQL基础知识到高级SQL
Abhishek Pughazh.
4.6 (56)
新的
SQL和PostgreSQL:完整的开发人员指南
Stephen主梁
4.7 (1125)
收视率最高
完整的SQL训练营2021:从零到英雄
何塞波罗拉
4.7 (94,980)
畅销书
Ultimate MySQL BootCamp:从SQL初学者到专家
柯尔特·斯蒂尔,伊恩·斯库诺弗
4.6 (52,044)
畅销书
SQL - MySQL数据分析和商业智能
365年职业生涯
4.6 (26,398)
畅销书
高级SQL:SQL Expert认证准备课程
甲骨文大师培训•全球8万多名学员,代码之星学院
4.4 (1,960)
畅销书
完整的SQL和数据库Bootcamp:零掌握[2021]
安德烈Neageie,Mo Binni
4.7 (1,243)
SQL初学者:使用MySQL和数据库设计学习SQL
Tim Buchalka的学习编程学院,Jon Avis - SQL教练
4.5 (8,572)
从头开始学习SQL +安全(笔)测试
拉胡尔·赫尔蒂
4.5 (1522)
畅销书
SQL&PostgreSQL为初学者:成为一个SQL专家
Jon Avis - SQL讲师
4.5 (3021)
畅销书

多个SQL课程

SQL学生还学习

赋予你的团队。引领行业。

通过Udemy for Business为您的组织订阅在线课程图书馆和数字学习工具。

请求演示