相关疑难解决方法(0)

MYSQL中的规范化

任何人都可以帮助我知道mysql中的规范化是什么,在哪种情况下以及我们如何使用它...

提前致谢.

mysql database-normalization

37
推荐指数
2
解决办法
5万
查看次数

数据库设计:第一范式和重复组

要坚持第一范式,你必须避免的一件事是重复组.而不是:

    CustID  Name  Address       Phone1      Phone2       Phone3

     102    Jerry  234 East..   555-2342   555-9854     555-2986
Run Code Online (Sandbox Code Playgroud)

您应该创建第二个电话号码表,然后在连接上创建:

CustID  Name     Address       Phone

102 Jerry    234 East..   555-2342
102 Jerry    234 East..   555-9854
102 Jerry    234 East..   555-2986
Run Code Online (Sandbox Code Playgroud)

有时,它有点模棱两可,而且很难判断一组列标题何时合格.例如,假设您目前在每个硬件上运行两次测试.您的第一个数据库设计产生了最横向的方法:

设计1

SN     Test1_Max   Test1_Min    Test1_Mean  Test2_Max   Test2_Min    Test2_Mean
2093      23          2            15         54          -24           45  
Run Code Online (Sandbox Code Playgroud)

显然,这是一个重复的组,可以更容易地表示为(在"部件"和"测试"之间的连接):

设计2

SN     Test      Max    Min    Mean     
2093    1        23     2      15       
2093    2        54     -24     45      
Run Code Online (Sandbox Code Playgroud)

但是,你可以更加垂直:

设计3

SN     Test    Statistic    Value
2093    1        Max          23
2093    1        Min …
Run Code Online (Sandbox Code Playgroud)

database-design normalization

14
推荐指数
1
解决办法
1万
查看次数

我是否正确地规范了这些数据

我正在从网上完成规范化练习,以测试我的数据规范化能力.这个特殊问题发现于:https://cs.senecac.on.ca/~dbs201/pages/Normalization_Practice.htm(练习1)

这个问题的基础表如下: 表

可以从此表创建的非标准化表是:

在此输入图像描述

为了符合First Normal表单,我必须通过将visitdate,procedure_no和procedure_name移动到它们各自的表来摆脱表中的重复字段:

在此输入图像描述

这也符合2NF和3NF,这使我怀疑我是否正确执行了标准化过程.如果我没有从UNF正确地搬到1NF,请提供反馈.

database database-normalization

10
推荐指数
1
解决办法
275
查看次数

什么是dbms中的原子性

我在1NF形式的DBMS中读过类似下面的内容.

有一句话如下:

"每列都应该是原子的."

任何人都可以通过一个例子向我解释一下吗?

sql database atomic database-normalization

6
推荐指数
3
解决办法
2万
查看次数

如何规范化SQL数据库

我想知道是否有人对如何规范化数据库有任何建议.现在,我并不是指设计结构,我的意思是如何将数据库数据从旧结构实际移动到新的标准化结构.我知道我可以编写类似PHP脚本的东西,但我想知道是否有办法在SQL中执行此操作.特别是MySQL.

**编辑:有没有人尝试过像SwisSQL这样的东西?这是一个迁移工具,但我不确定它是否能满足我的要求.

mysql sql database migration

5
推荐指数
1
解决办法
1万
查看次数

在数据库中存储 JSON 违反了 1NF?

许多 DBMS 开始允许在数据库中使用 JSON。这违反了 1NF 吗?

1NF 的规则之一是不在一列中存储多个值。但我们存储的是 JSON,它可以包含键值对。这是否违反规则?

mysql database json database-normalization

5
推荐指数
1
解决办法
572
查看次数

该表违反了哪种正常形式?

考虑一下这个表:

   +-------+-------+-------+-------+  
   | name  |hobby1 |hobby2 |hobby3 |  
   +-------+-------+-------+-------+   
   | kris  | ball  | swim  | dance |  
   | james | eat   | sing  | sleep |  
   | amy   | swim  | eat   | watch |  
   +-------+-------+-------+-------+
Run Code Online (Sandbox Code Playgroud)

爱好的类型没有优先权,因此所有的爱好都属于同一个领域.也就是说,表格中的爱好可以在任何hobby#列上移动.无论哪一列,特定的爱好都可以在任何列中.

该表违反了哪个数据库规范化规则?


编辑

问:"业余爱好列表是否按任意顺序"?

答:是的.

问:表格有主键吗?

答:是的,假设密钥是一个AUTO_INCREMENT名为的列类型user_id.

问题是列hobby#是否重复组.


旁注:这不是作业.这是一种辩论,它始于 SQL问题的评论 - 基于几个列将记录从一个表匹配到另一个表.我相信这个问题是违反1NF的明显例子.

然而,另一个人认为我" 已经堕落了1NF的谬误之一. "这个论点是基于" 关于第一范式的事实和谬误 "的"重复群体的模糊性" 一节.

我不是写这个来羞辱他,我或任何人.我写这篇文章,因为我可能错了,而且我有一些东西显然是错过的,也许这个家伙并没有对我说好.

database database-design relational-database database-schema database-normalization

4
推荐指数
3
解决办法
3009
查看次数

像我五岁一样解释 - >主键如何满足第一范式

提前感谢您的知识.我正在攻读微软技术考试,其中一个练习题是:

创建主键满足第一个普通表单.对或错?

我个人认为它是假的,因为第一个正常形式是摆脱重复的组.但是文中有一句话(数据库基础,微软出版社考试98-364),其中说明如下:

"第一个规范化形式(1NF)表示数据采用实体格式,这基本上意味着必须满足以下三个条件:•表格必须没有重复记录.一旦为表格定义了主键,就可以了已达到第一个标准化形式标准."

请帮助我理解这一点,请解释,就像我五岁.谢谢.

database database-design database-normalization

2
推荐指数
2
解决办法
899
查看次数

为什么一个表中不允许有两个主键?

我想通过 MySql 的语法了解为什么在同一个表中不允许两个主键的原因。我了解复合键,这与此无关。

我不明白为什么不允许在同一个表中使用两个单独的主键。但是我们可以将一列作为主键,将另一列作为唯一的且不为空。这实际上充当了两个不同的主键,因为我们可以使用这些键中的任何一个来清楚地识别一行。为什么第一个是不允许的,而后者是?

我试图弄清楚逻辑,但偶然发现了 Codd 的 12 条规则的第 2 条,它说

通过使用表名、主键值和列名的组合,可以保证关系数据库中的每个数据(原子值)都可以在逻辑上访问。

对于单个数据值,表名、主键值和列的组合是否应该是唯一的,还是可以有多个组合来保证访问?为什么或者为什么不?

编辑:由于问题被确定为可能重复,我将在下面解释它的不同之处 其他类似的问题是

一个表中可以有多个主键吗?

答案是否定的

我的问题是为什么理由是什么?

Codd 打算根据规则 2 说什么?

如果允许多个单独的主键会出现什么问题?

mysql sql database rdbms primary-key-design

2
推荐指数
1
解决办法
6921
查看次数

规范化和主键

在给定的表中,如果没有主键甚至不可能创建复合主键,那么该表的正常形式是什么?

如果它的零(0NF)添加一个新列并使其成为主键会将这个表转换为 1NF ?

database database-design relational-database database-normalization

1
推荐指数
1
解决办法
1749
查看次数

为什么数据库表只有一个主键?

数据库表只能有一个主键而不是两个或更多..为什么会这样?

mysql sql database oracle

0
推荐指数
1
解决办法
1113
查看次数