database-normalization相关内容

SQL中的标准化软件

我知道将关系分解为Boyce-Codd范式(BCNF)是通过算法完成的。 如果是由算法完成的,我想知道是否有软件可以为我进行分解?我知道怎么做,但我经常犯一些愚蠢的错误,我想完全确定我做得对。 推荐答案 规范化绝对用于现实世界.希望你知道3NF只是第三个.现在是几点,8点?但3NF应该是一个容易攻击的目标。 然而.我敢说不可能有这样的工具。 从技术上讲,规范化是每个表的一 ..
发布时间:2022-03-11 13:01:57 数据库

如何在 Firebase JSON 树中表示两种方式的关系?

警告: 这是一个练习,可以更好地理解 Firebase 不一定现实 我在用户和门钥匙之间建立了两种方式的关系.我想了解: 如何直观地表示这种关系(我只能把它想象成两棵独立的树) 这将如何在 Firebase 上运行,users 和 door-keys 是否都是父节点“myparentnodename"的子节点? 如果我以这种方式对数据库进行建模,会感觉效率非常低,因为每次我 ..

这种标准化是否正确?(两个多对多由多对一连接)

我有一个记分数据库的架构,其中包含 Game、Team、Player 表. 一支球队有很多球员,每个球员只有一支球队.每支球队都打很多场比赛,每场比赛都有很多支球队.在每场比赛中,玩家单独和作为一个团队得分 - 这映射到 player_score 和 team_score.一支球队在一场比赛中的总得分是该比赛的所有球员 player_score 和球队在该比赛中的 team_score 的总 ..

Drupal 数据库结构 - 高效/低效?

我当然不是 Drupal 专家,但我之前设计并构建了一些数据库,所以我对 3rd 方团队正在研究的数据库结构感到困惑,我让 Sequel Pro 添加了一些虚拟内容.如果使用 Drupal 的后端 GUI,我认为结构不会很明显,但我没有凭据,只有 ftp 和 ssh 访问权限. 看到没有我所期望的单个表格,例如一个组织,其中包含 ID、姓名、地址、电子邮件、邮政编码等列,我有点害怕 相 ..

3NF 和 BCNF 有什么区别?

有人可以向我解释 3NF 和 BCNF 之间的区别吗?如果您还可以提供一些示例,那就太好了.谢谢. 解决方案 3NF 和 BCNF 的区别很微妙. 3NF 定义 如果关系在 2NF 中并且没有非主属性传递依赖于主键,则该关系在 3NF 中.换句话说,如果对于 R 中的每个函数依赖 X ⟶ A,至少满足以下条件之一,则关系 R 是 3NF: X 是 R 中的键或超键 ..

优雅的规范化,无需添加字段,额外的表.最好的关系

我有 2 个表我正在尝试标准化.问题是我不想创建一个带有新字段的临时表,尽管链接表可能有效.传达“Nintendo"条目既是发行商又是开发商的最优雅的方式是什么?我不希望“任天堂"被复制.我认为多对多关系可能是这里的关键. 我想强调的是,我绝对希望保留开发者和发布者表.我不介意在两者之间建立一个新的关系. 这是我试图标准化的 2 个表: 以下是我尝试过的解决方案(我不喜欢): ..
发布时间:2021-12-26 21:07:39 其他开发

首次数据库设计:我是否过度设计?

背景 我是 CS 的一年级学生,我在我父亲的小企业做兼职.我在实际应用程序开发方面没有任何经验.我用 Python 写过脚本,用 C 写过一些课程,但没有像这样的. 我父亲有一家小型培训公司,目前所有课程都通过外部网络应用程序安排、记录和跟进.有一个导出/“报告"功能,但它非常通用,我们需要特定的报告.我们无权访问实际数据库来运行查询.我被要求建立一个自定义报告系统. 我的想法是 ..

数据库中的规范化

我有一张桌子.我怎样才能正常化这个. 解决方案 鉴于您的数据集,这是个好问题.请记住,标准化的全部意义在于减少重复.3NF 通常是最好的方法.但是根据我的经验,我发现如果重复值将是该表中的唯一值,那么将其提取到另一个表中非常没有什么好处.以重复次数最多的列 emp_type 为例.如果您要将其规范化为一个单独的表,它将如下所示: Emp_Type_Id |Emp_type-------- ..
发布时间:2021-12-26 21:01:50 其他开发

当 1NF 表没有复合候选键时,它是否在 2NF 中?

可以肯定地说,当 1NF 表没有复合候选键(主键由多列组成)时,该表自动处于 2NF 中吗? 当主键中只有一列时,表是否会违反 2NF? 解决方案 A relvar R,在 2NF 中,只要不存在非平凡的 FD,A->B,满足 R,其中 B 是非素数,其中 A是 R 的某个候选键的真子集. 您首先必须考虑所有候选键.如果所有候选键恰好是单个属性键,那么这些键中唯一可能的真子集是 ..

什么是将重复的行信息集组合到进行数据库规范化时调用的新实体中?

我对某个数据库规范化有点困惑,想问问 StackOverflow: 假设您有以下将产品与颜色相关联的关系.请注意,产品 1 和产品 2 都使用相同的颜色集(蓝色和绿色). Product_Color 颜色+------------+------------+ +------------+-------------+|产品* |颜色* ||颜色 ID* |姓名 |+------------+ ..
发布时间:2021-12-26 20:58:26 其他开发

您如何确定规范化数据库的程度?

在创建数据库结构时,要遵循哪些好的指导方针或确定数据库应该规范化多远的好方法?您是否应该创建一个非规范化的数据库并随着项目的进展将其拆分?您是否应该创建完全规范化并根据性能需要组合表? 解决方案 您想开始设计一个高达第三范式的规范化数据库.在开发业务逻辑层时,您可能会决定必须进行一些非规范化,但永远不要低于第 3 种形式.始终保持第一种和第二种形式的合规性.为了代码的简单性,而不是为了性能 ..

在数据库方面,是“为了正确性而规范化,为了性能去规范化";正确的咒语?

规范化会带来许多基本和理想的特征,包括审美愉悦.此外,它在理论上也是“正确的".在这种情况下,非规范化被用作一种折衷,一种实现性能的校正.除了性能之外,还有其他原因可以对数据库进行非规范化吗? 解决方案 非规范化的两个最常见原因是: 性能 无知 前者应通过分析进行验证,而后者应通过卷起的报纸进行更正;-) 我想说一个更好的口头禅是“为了正确性而规范化,为了速度去规范化— ..

是否曾经有过使用数据库 1:1 关系有意义的时候?

前几天我正在考虑规范化,我突然想到,我想不出什么时候应该在数据库中存在 1:1 的关系. 姓名:SSN?我会把它们放在同一张桌子上. PersonID:AddressID?再次,同一张桌子. 我可以想出无数个 1:many 或 many:many 的例子(带有适当的中间表),但永远不会是 1:1. 我是否遗漏了一些明显的东西? 解决方案 1:1 关系通常表示您出于某种原 ..

来自数据库中不同实体的相同数据 - 最佳实践 - 电话号码示例

给定一个处理员工、客户和供应商的数据库系统,所有这些都有多个可能的电话号码,您将如何以一种很好的规范化方式存储这些号码?我想了想,但合乎逻辑的方法并没有让我跳出来. 解决方案 在大多数情况下... “员工"总是描述人. 有些客户是人. 有些客户是企业(组织). “供应商"通常(总是?)组织. 员工也可以是客户. 供应商也可以是客户. 单独的员工电话号码、供应商电话号码 ..
发布时间:2021-12-26 20:46:44 其他开发

标准化:什么是“重复组"?意思是?

我阅读了不同的教程,看到了不同的规范化示例,特别是第一范式中“重复组"的概念.从他们那里我收集到重复组是“某种"多值属性(例如 此处 和此处). 但是在将 ERM(实体关系模型)映射到 RDM(关系数据模型)的过程中,我们已经通过包含来自父表的外键为每个多值属性制作了单独的表?参考:这个 其次,那些“重复组"本质上是水平排列在同一行中,还是相同的值可以一次又一次地出现在同一列中,即一个 ..
发布时间:2021-12-26 20:46:23 其他开发

什么是归一化(或归一化)?

为什么数据库人员会继续规范化? 是什么?它有什么帮助? 它是否适用于数据库之外的任何内容? 解决方案 规范化基本上是设计一个数据库模式,以避免重复和冗余数据.如果相同的信息在数据库中的多处重复,则存在一处更新而另一处未更新的风险,从而导致数据损坏. 有许多标准化级别,从 1. 范式到 5. 范式.每个范式都描述了如何摆脱某些特定问题. 第一范式 (1NF) 很特别, ..
发布时间:2021-12-26 20:44:38 其他开发

我应该规范化我的数据库吗?

在为数据库(例如 MySQL)设计架构时,会出现是否完全规范化表的问题. 一方面连接(和外键约束等)非常慢,另一方面你会得到冗余数据和潜在的不一致. “最后优化"是正确的方法吗?即创建一个按手册规范化的数据库,然后查看可以进行非规范化以实现最佳速度增益的内容. 关于这种方法,我担心的是,我会选择一个可能不够快的数据库设计 - 但在那个阶段重构架构(同时支持现有数据)将非常痛苦.这 ..
发布时间:2021-12-20 16:06:38 数据库