第一范式: 第一范式要求表中的行必须是唯一的,属性应该是原子的(atomic)。这个范式对于关系的定义来说是冗余的,换句话说,如果一个表真可以表示一个关系,那么它一定符合第一范式。

行的唯一性是可以通过在表中定义一个唯一的主键而实现的。

对于属性,只能使用随属性的数据类型定义一起定义的操作来对它们进行操作。和集合定义具有主观性一样,属性的原子性也是主观的。例如,以Employees关系中的雇员名字为例,应该将它表示为一个属性(fullname),两个属性(firstname, lastname),还是三个属性(firstname, middlename, lastname)?应该依据程序而定。

第二范式:非键属性(nonkey attribute)和候选键属性之间必须满足一定的条件。对于每个候选键,每个非键属性都必须完全函数依赖于整个候选键。换句话说,一个非键属性不能只完全函数依赖于候选键的一部分。非正式的说,如果要获取任何非键属性,就必须提供同一行中某个候选键的所有属性值。如果知道了一个候选键的所有属性值,就能够找到任意行的任意属性值。

第三范式:所有非键属性必须非传递依赖于候选键。通俗的说,所有非键属性都必须相互独立。换句话说,一个非键属性不能依赖于其他非键属性。

最新文章

  1. 关于安卓6.0权限申请 PermissionDog
  2. 理解javascript中的对话框
  3. 随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000ms以内),哪个先显示完毕,就决定去哪个城市。分别用Runnable接口和Thread类实现。
  4. 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  5. [CareerCup] 5.4 Explain Expression ((n & (n-1)) == 0) 解释表达式
  6. 使用 Vagrant 打造跨平台开发环境
  7. MySql 查询一周内最近7天记录
  8. 【综述】(MIT博士)林达华老师-"概率模型与计算机视觉”
  9. WordPress BackWPup插件‘tab’参数跨站脚本漏洞
  10. SuperMap iClient
  11. iOS程序生命周期 AppDelegate
  12. phpcms 制作简单企业站的常用标签
  13. vue-router 中踏过的坑
  14. python第二天,list和tuple
  15. MongoDB 安装教程
  16. 安装CDH5时出错 5.68.168.192.in-addr.arpa domain name pointer bogon.
  17. fzu1901 kmp
  18. Debian 使用 cron 执行定时任务
  19. 1、 小白带你入坑xamarin系列之环境搭建和准备
  20. drupal中安装CKEditor文本编辑器,并配置图片上传功能 之 方法二

热门文章

  1. sharepoint 2010 显示和隐藏Ribbon区域条
  2. 理解 Python 中的线程
  3. 拿到阿里,网易游戏,腾讯,smartx的offer的过程 (转)
  4. 在Activity中为什么要用managedQuery()
  5. iOS发展 ---- 至iPhone 6自适应布局设计 Auto Layout
  6. mysql增量ID 启动值更改方法
  7. HTC one/M7电信802d 毒蛇ViperOne2.1.0/高级毒蛇工具/完美root,精简/更多自定义,稳定,流畅ROM
  8. LAMP配置参考地址
  9. php(LAMP)开发环境配置相关问题及解决办法
  10. Android平台调用Web Service:螺纹的引入