database-normalization相关内容

理解规范化重复 - 我猜我没有 - 添加艺术家和标题 ID

我从一张表格开始,按日期列出了 1958 年到 1980 年的前 100 首歌曲.对于每个日期,有 100 条记录.显然,随着歌曲每周改变位置,许多将是重复的.此外,艺术家将被多次复制(想想猫王).表中有 ~ 116,000 条记录. 这个表有以下字段 uniq,日期,艺术家,标题,位置 为了消除重复项(我理解的标准化),我修改了表格,现在看起来像这样 uniq,日期,艺术家代码,标题 ..
发布时间:2021-12-17 20:35:13 数据库

SQL 数据库表中的多态性?

我的数据库中目前有多个表,它们由相同的“基本字段"组成,例如: 名称字符变化(100),说明文字,网址字符变化(255) 但我对该基本表有多个专业化,例如 tv_series 具有字段 season、episode、airing,而movies表有release_date、budget等 现在起初这不是问题,但我想创建第二个表,称为linkgroups,并带有这些专用表的外键.这意味着我 ..
发布时间:2021-12-05 21:40:32 其他开发

建模和归一化时如何处理空值?

我是 SQL 新手(仍在学习),我必须为场地创建一个数据库.客户预订的活动房间.问题是客户并不总是提供他们的姓名、电子邮件和电话号码.大多数情况下,要么是姓名和电子邮件,要么是姓名和电话.很少是全部 3,但它发生了.我需要将这些存储在各自的属性中(姓名、电子邮件、电话).但是他们给我他们的信息的方式,我有很多空值.我可以用这些空值做什么?有人告诉我最好不要有空值.之后我还需要规范化我的表格.请提出 ..

正常形式 - 2nd vs 3rd - 区别只是复合键吗?非平凡的依赖?

我已经查看了这篇文章,但我并不真正理解所使用的术语(非平凡的函数依赖,超键) 从我读过的内容来看,第二范式似乎与复合键有关,而第三范式与主键有关. 我不确定这是否正确. 所以第二范式 - 有一个复合键,表中的所有字段都必须与两个复合键字段相关.如果某些内容不相关,则应将其重构到另一个表中. 第三范式 - 一切都必须依赖于主键 - 所以我猜在第三范式中只有 1 个键,而不是在 ..
发布时间:2021-12-05 12:32:34 其他开发

3NF和BCNF的简单区别(必须能解释给一个8岁的孩子)

我已阅读报价:数据取决于密钥[1NF],整个密钥[2NF],除了密钥[3NF]什么都没有. 但是,我无法理解所谓的 3.5NF 或 BCNF.这是我的理解: BCNF 比 3NF 更严格 表中任何 FD 的左侧必须是超键(或至少是候选键) 那么为什么有些 3NF 表不在 BCNF 中呢?我的意思是,3NF 引用明确表示“只有键",这意味着所有属性都仅依赖于主键.主键毕竟是一个候 ..

在存储查找表 ID 还是纯数据之间做出决定

我发现这种情况经常出现,但我不确定处理它的最佳方法. 我的问题是如何决定使用外键查找表,还是直接在请求它的表中使用查找表值,完全避免查找表关系. 注意事项: 用第二种方法你会需要对所有人进行大规模更新记录引用数据,如果它在查找表中更改. 这个更专注对有很多表该列引用了许多查找桌子.所以很多外国钥匙意味着很多每次查询时加入表. 此数据将来自 drop将被拉下的列表从查找 ..
发布时间:2021-12-05 12:15:22 其他开发

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

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

什么是数据库范式,能否举例说明?

在关系型数据库设计中,有一个数据库规范化或简称规范化的概念,是一个组织列(属性)和表(关系)以减少数据冗余,提高数据完整性的过程.(如维基百科上所写). 由于大多数文章都有些技术性,因此更难理解,我希望有人根据有关 1NF、2NF、3NF 甚至 3.5NF (Boyce-Codd) 含义的示例编写更易于理解的解释. 解决方案 1NF是最基本的范式——表格中的每个单元格只能包含一条信息 ..
发布时间:2021-12-05 12:01:59 其他开发

在数据库列中存储分隔列表真的那么糟糕吗?

想象一个带有一组复选框的网络表单(可以选择任何一个或全部).我选择将它们保存在以逗号分隔的值列表中,这些值存储在数据库表的一列中. 现在,我知道正确的解决方案是创建第二个表并正确规范化数据库.实施简单的解决方案更快,而且我希望快速获得该应用程序的概念验证,而不必在上面花费太多时间. 我认为在我的情况下,节省的时间和更简单的代码是值得的,这是一种防御性的设计选择,还是应该从一开始就将其标 ..
发布时间:2021-12-05 11:47:16 其他开发

dbms中的原子性是什么

我在 DBMS 的 1NF 形式中读到类似下面的内容. 有一句话是这样的: “每一列都应该是原子的." 谁能用一个例子向我彻底解释一下? 解决方案 “每一列都应该是原子的." Chris Date 说,“请非常小心地注意,合法值不仅仅是像整数 3 这样简单的东西.相反,值可以是任意复杂的;例如,一个值可能是几何点、多边形、X 射线、XML 文档、指纹、数组、堆栈 ..
发布时间:2021-11-30 14:45:03 其他开发

在 SQL Server 中实现多态关联的最佳方法是什么?

我有很多实例需要在我的数据库中实现某种多态关联.我总是浪费大量时间重新考虑所有选项.这是我能想到的3个.我希望有 SQL Server 的最佳实践. 这里是多列方法 这里是无外键方法 这是基表方法 解决方案 我用下面的方案解决了类似的问题: 基于Many-Many的设计:即使ObjectN和Something之间的关系是1-Many,它也等同于关系表PK修改后的Ma ..

强制执行依赖于父列值的复合唯一约束

使用提供的架构,我想以某种方式强制每个显示都有唯一的 reserved_seat:seat_id.换句话说,如果该放映中已经预订了特定座位,则您无法预订该座位. 一种选择是同时将showing_id添加到reservation_seat(这是多余的),然后对(showing_id,seat_id)进行唯一约束. 这可以在 sql 中完成还是落在应用程序代码中? DDL: CRE ..

facebook 是否满足第二规范化形式?

根据第二规范化形式“所有非键属性的功能都完全依赖于主键".这意味着所有非键属性都不能依赖于主键的子集.在 Facebook 中,我们可以通过 email_id、user_name 或 mobile_number 登录(因此 email_id、user_name 或 mobile_number 是主键).使用这些方法中的任何一种登录后,我们就可以访问整个帐户.我的问题是“非键属性是否部分依赖于主键的 ..

确定该数据是否真的是第四范式?

我有一些-公司,位置和产品详细信息可存储在数据库中. 样本数据公司定位产品------------------------------abc山顶alphaabc山顶betaabc河滨阿尔法abc河滨beta越野车下桥伽马越野车地下桥越野车下桥欧米茄 据我了解,这种关系是多值的.而且数据需要按照MVD进行归一化 不是从候选密钥(公司不是候选密钥的公司->>位置和公司->>产品衍生) 或 ..
发布时间:2021-04-28 20:30:57 其他开发

证明无损或有损分解

我试图解决一个有关证明给定分解是有损还是无损的问题 通过应用测试无损连接属性.F = {AB→C,C→E,B→D,E→A}是功能依赖项的集合在R上一世.R(ABCDE)分解为R1(AB),R2(ADE)和R3(BCD)ii.R(ABCDE)分解为R1(BCD),R2(ACE)和R3(BD) ** 我对解决方案的尝试: ** 仅当给定表之间具有公共属性并且公共属性是候选 ..

存储“冗余"消息.避免加入外键

我正在为一个Web应用程序项目设计一个数据库,得出的结论是,我可能有很少的查询,这些查询需要很多联接表才能进行一次检查. 我想知道将外键存储在减少这些查询所需的联接数量的途中有多糟? 给你一个我现在所拥有的例子:服务=>预订=>交易=>钱包=> BonusOffer 我需要检查该服务是否已经用与奖金相关联的钱包购买了.将BonusOffer ID存储为Transaction的外键 ..