- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
什么是 KISS(Keep it Simple, Stupid)方法来记住 Boyce-Codd 范式是什么以及如何采用非规范化表和 BCNF?
Wikipedia的信息:对我帮助不大。
最佳答案
Chris Date的定义其实很好,只要你理解他的意思即可:
您的数据必须分解为单独的、不同的属性/列/值,这些属性/列/值不依赖于任何其他属性。你的全名是一个属性。你的生日是一个属性。您的年龄不是属性,它取决于当前日期,该日期不属于您的生日。
每个属性都是一个事实,而不是事实的集合。更改属性中的一位会更改整个含义。你的生日是事实。你的全名是事实吗?好吧,在某些情况下是这样,因为如果您更改姓氏,您的全名就会不同,对吗?但是对于系谱学家来说,你有一个姓氏和一个姓氏,如果你改变了你的姓氏,你的姓氏就不会改变,所以它们是不同的事实。
有一个属性是特殊的,它是一个键。键是一个属性,它对于数据中的所有信息都必须是唯一的,并且绝不能更改。您的全名不是 key ,因为它可以更改。您的社会保险号码不是关键,因为它们会被重复使用。您的 SSN 加生日不是键,即使该组合永远不能重复使用,因为属性不能是两个事实的组合。 GUID 是一个键。您递增但永远不会重复使用的数字是 key 。
仅凭 key 就足以[并且是必要的!] 来识别您的值;您不能用不同的键表示相同的数据,键列的子集也不足以识别事实。假设您有一个包含 GUID 键、名称和地址值的地址簿。如果相同的名称代表不同的人并且不是“相同的数据”,则可以使用不同的键出现两次相同的名称。如果会计部门的 Mary Jones 将她的名字更改为 Mary Smith,则销售部门的 Mary Jones 也不会更改她的名字。另一方面,如果 Mary Smith 和 John Smith 有相同的街道地址并且确实是同一个地方,则不允许这样做。您必须使用街道地址和新 key 创建新的键/值对。
您也不允许将这个新的单一街道地址的键用作地址簿中的值,因为现在同一个街道地址键将被表示两次。相反,您必须使用地址簿键和街道地址键的值创建第三个键/值对;您可以通过在这组值中匹配他们的书本键和地址键来找到一个人的街道地址。
除了标识您的值的键之外,必须没有其他内容。例如,如果允许您使用“泰姬陵”地址(假设只有一个),则不允许在同一记录中使用城市值,因为如果您知道地址,您也会知道这座城市。这也将开启在不同城市拥有多个泰姬陵的可能性。相反,您必须再次创建一个具有唯一值的辅助位置键,例如泰姬陵、华盛顿特区的白宫等,以及它们所在的城市。或者禁止城市独有的“地址”。
关于database - Boyce-Codd 范式的 KISS 描述是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/539324/
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
我对傅立叶变换的有限理解是,您应该能够在不更改原始数据的情况下在时域和频域之间切换。所以,这里是我(认为我)正在做的事情的总结: 使用 kiss_fft_next_fast_size(994) 确定我
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 4 年前。 Improv
我正在开发一个 C++ 项目,使用 FRDM-KL25Z 板来测量振动。我的代码正在运行,但我需要它循环运行。我的内存有问题,我没有足够的空间来存储两次值。我使用了 free() 命令,但即便如此我也
目录 封装变化 针对接口编程,不针对实现编程 多用组合(has-a),少用继承(is-a) 为交互对象之间的松耦合设计而努力 最少知识原则 LKP / 迪
前言 一个软件轻量简单的软件架构是非常重要的,它可以让我们花最小的代价就能满足业务上的需求。那如何保证轻量简单呢?那今天就和大家分享下这其中的秘密,也就是3个重要的指导原则,KISS原则,YAG
我目前正在尝试使用亲吻 fft 将 fft 实现到 avr32 微 Controller 中以进行信号处理。 我的输出有一个奇怪的问题。 基本上,我将 ADC 样本(使用函数发生器测试)传递到 fft
显然,YAGNI 和 KISS 之间存在语法差异,但我看不出它们之间有任何语义差异。它们本质上真的是一回事吗? 最佳答案 YAGNI(你不会需要它)指的是过度分析和实现可能需要也可能不需要的东西。当然
我正在尝试使用 visual studio 2013 让 kiss fft 在同一个应用程序中编译 float 和 double 实现。我看到我需要做的就是将 kiss_fft_scalar 设置为
什么是 KISS(Keep it Simple, Stupid)方法来记住 Boyce-Codd 范式是什么以及如何采用非规范化表和 BCNF? Wikipedia的信息:对我帮助不大。 最佳答案 C
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
我从一年后开始工作,遵循 Scrum、TDD、领域驱动设计和 Uncle Bob 的食谱……但我对我们是否应用了各种原则有一些疑问,主要是在阅读 Martin 系列的“Java 应用程序架构”(从现在
我是 FFT 概念的初学者,所以我的理解是,如果我输入 1024 个信号,我将得到 513 个从 0hz 到 22050Hz 的 bin(在 44100Hz 采样率的情况下)。在 Cinder 中使用
我正在使用 couchDB 并开始实现身份验证/授权。我发现最好和最简单的解决方案是通过 ssl 连接传递凭据,但我不太确定这种策略是否能确保我的站点真正安全。 我可以保留这个策略,购买一个真正的 s
我在编译我的程序时遇到问题。我在我的项目中使用 Kiss FFT 库,但是当我尝试构建它时,我遇到了这些错误: [Linker Error] Error: Unresolved external '_
标题解释了我的问题。 我想做的很简单: 加载 MP3 轨道(通过 libmpg123) 阅读样本 对样本应用 Kiss FFT 到目前为止我尝试了什么 inline float scale(kiss_
我已经从 here 下载了 kiss fft | .但我不知道如何在 Visual Studio 中使用它。例如,在 Visual Studio 中创建一个空的 win32 项目后,我应该如何复制粘贴
如何将 kiss fft 库添加到 Visual Studio 2012 项目?因为我想编译这段代码: #include "kiss_fft.h" #include "kiss_fftr.h" kis
是否有基于 javascript 的配置应用程序框架的简单约定,其外观和感觉就像开箱即用的富客户端应用程序?例如,有是GWT ...但它很重(即它需要编译)。 更具体地说,考虑到像 JQuery 这样
我有两个模型: 服务器(属于从属) 从站(有许多服务器) 在 Controller 中,我需要获取一个包含服务器/从站信息的数组(以及一些附加信息,例如 Controller 中无法包含的业务逻辑)。
我是一名优秀的程序员,十分优秀!