Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 帮助数据库规范化的工具或网站_Sql_Normalization - Fatal编程技术网

Sql 帮助数据库规范化的工具或网站

Sql 帮助数据库规范化的工具或网站,sql,normalization,Sql,Normalization,是否有任何工具或在线资源(FREX教程)可以帮助新手实现数据库规范化?最好的解决方案是,您应该能够完全理解如何规范表单,在多长时间内您将依赖任何工具来为您实现这一点?我建议你,这样你就可以自己想出最好的解决方案。作为一名开发人员,你会时不时地面对这个问题,那么面试又如何呢?让我们假设你在哪里被问及这个问题?正如米奇·麦特所说,正常化不需要工具:) 下面是一些更多的资源,让您开始: 来源:Mysql网站(官方) 维基: 实现设计良好的数据库在关系数据库设计理论中, 规范化规则识别某些 必须存在

是否有任何工具或在线资源(FREX教程)可以帮助新手实现数据库规范化?

最好的解决方案是,您应该能够完全理解如何规范表单,在多长时间内您将依赖任何工具来为您实现这一点?我建议你,这样你就可以自己想出最好的解决方案。作为一名开发人员,你会时不时地面对这个问题,那么面试又如何呢?让我们假设你在哪里被问及这个问题?正如米奇·麦特所说,正常化不需要工具:)

下面是一些更多的资源,让您开始:

来源:Mysql网站(官方)

维基:

实现设计良好的数据库在关系数据库设计理论中, 规范化规则识别某些 必须存在或删除的属性 在精心设计的数据库中没有。 有几条规则 可以帮助你实现一个完善的数据库 设计:

  • 表应具有标识符。数据库的基本规则 设计理论是每一张桌子 应具有唯一的行标识符,即 用于 将任何单个记录与 表中的每一条记录。每个 表应该有一个ID列,并且没有 两个记录可以共享相同的ID 价值服务的一列或多列 作为的唯一行标识符 表是的主键 桌子在AdventureWorks数据库中, 每个表都包含一个标识列 作为主键列。对于 例如,VendorID是的主键 采购。供应商表

  • 表格应仅存储单一类型实体的数据。试图 在表中存储太多信息 会阻碍高效可靠的 表中数据的管理。 在AdventureWorks示例数据库中, 销售订单和客户 信息以单独的方式存储 桌子。虽然可以有列 包含以下两个方面的信息: 销售订单和客户在 单表,这种设计导致 有几个问题。顾客 必须提供信息、姓名和地址 为每个数据库添加并冗余存储 销售订单。这需要额外的时间 数据库中的存储空间。如果 客户地址变更,变更 必须为每个销售订单制作。 此外,如果 客户已从中删除 Sales.SalesOrderHeader表中的 该客户的信息丢失

  • 表应[尝试]避免可为空的列。表可以有列 定义为允许空值。A. 空值表示不存在 价值尽管 允许在隔离模式中使用空值 箱子,你应该少用。 这是因为他们需要特殊的服务 处理会增加复杂性 数据操作的复杂性。如果你有 具有多个可空列的表 其中有几行为空 列中的值,您应该 考虑把这些列放进去 另一个链接到主目录的表 桌子通过将数据存储在两个 单独的表,主表可以 设计简单,操作方便 偶尔需要储存这个 信息

  • 表不应具有重复的值或列。这张桌子是一张桌子 不应删除数据库中的项 包含一个属性的值列表 具体的信息。对于 例如,在 AdventureWorks数据库可能是 从多个供应商处购买。如果 表格中有一列 Production.Product表中的名称 对于供应商,这会产生一个问题。 一种解决方案是存储 列中的所有供应商。然而, 这使得显示列表变得困难 单个供应商的名称。另一个 解决办法是改变结构 要为其添加另一列的表 第二个供应商的名称。 然而,这只允许两种情况 供应商。此外,另一列 如果一本书有三个,则必须添加 供应商。如果你发现你必须 将值列表存储在单个 列,或者如果您有多个 单个数据段的列, 例如电话号码1,以及 电话号码二,你应该考虑 将复制的数据放入另一个 带有回主目录的链接的表 桌子AdventureWorks数据库已关闭 产品的生产.产品表 信息,一个采购。供应商表 供应商信息,以及第三个 表,Purchasing.ProductVendor。这 第三个表仅存储ID值 对于产品和 产品供应商。这个设计 允许任意数量的供应商参与 在不修改 表的定义,以及 将未使用的存储空间分配给 单一供应商的产品

.

作为初学者,我用过。


相信我,太棒了!(因为它可以工作并且不需要任何先决条件,也就是说,非常适合初学者)。第4页介绍了规范化。

我用于概念数据库设计。一个副作用是,它为一个适当规范化的数据库生成了模式。

认为您不应该使用工具的想法是没有思想的意识形态。数学家使用计算器,尽管他们可以自己做所有的计算。诺玛很好,我从那开始

我见过的最好的教程是Art Langer的逻辑数据建模。 另外,Art Langer博士随附的pdf:


1:不要听任何人说规范化不需要工具,因为任何人发表这样的评论都不理解问题所在

2:最好将“范式”视为数据库设计质量的衡量标准。例如,数据模式