数据库范式
来源:互联网 发布:淘宝网刷单是真的吗 编辑:程序博客网 时间:2024/06/07 01:24
话说有个画展,很多画家,每个画家至少有一个作品(作品名不重),我想记录以下信息 :1每个作品名字 2作品的作家 3作品价格 4作家联系方式
第一范式:无重复的列
基本上是个表就满足第一范式,于是我坐了下面的表
作品名作家名作品价格作家联系方式
第二范式:属性完全依赖于主键[消除部分子函数依赖]
最近简单的方法使用单个属性做主键,例如以作品名字做主键(加粗),下面就满足第二范式了。
作品名作家名作品价格作家联系方式
反例:自从发现主键好用后一发不可收拾,于是做了一个组合元素的主键,把作品名和作家名做成组合主键(加粗),看看下面的例子如何问题来了:根据作品名可以知道作品价格,而不可能根据作家名知道作品价格,这种自然而然的关系不难理解,同理联系方式依赖作家名而不是作品名作品名作家名作品价格作家联系方式
于是我们说作品价格依赖作品名,不依赖作家名,这是不完全依赖,不符合第二范式的要求,于是果断放弃这种想法。单属性主键可以避免不完全依赖第三范式:属性不依赖于其它非主属性[消除传递依赖]
非主键属性之间的依赖不利于表的维护,我们先理一下关系表,假设A->B表示B依赖A
作品名->作品价格
作品名->作家名->作家联系方式 ===>非主键属性之间还有依赖,继续拆分成 :作品名->作家名和作家名->作家联系方式,作家名和作品价格之间没有依赖,并且同时依赖于作品名
于是分成下面表
作品名作家名作品价格作家名作家联系方式这样就满足第三范式了
- 数据库范式 三范式
- 数据库范式
- 数据库范式
- 数据库范式
- 数据库范式
- 数据库范式
- 数据库范式
- 数据库范式
- 数据库范式
- 数据库范式
- 数据库---范式
- 数据库范式
- 数据库范式
- 数据库范式
- 数据库范式
- 数据库范式
- 数据库范式
- 数据库范式
- 4_19_天天一记
- 单端口 实现Xen 虚拟机多VLAN
- 4_20_天天一记
- 使用普通方式和连接池方式获取Oracle和Mysql链接
- 《实例学习OpenXava(中文免费版)第一版》发布
- 数据库范式
- HDU-1283 简单模拟
- Objective-C https://itunes.apple.com/cn/app/ha-ha-ba-xiu-xian-shi-jian/id1112036209?mt=8
- Back-propagation Neural Net(BP神经网络)算法实现介绍浅析
- ok6410开发板的andriod系统下装apk的几种方法整理
- 安装.net3.5时出现的VC++ Runtime Error错误
- 什么是分布式计算
- API与C#的数据类型对应关系表
- 11 步教你选择最稳定的 MySQL 版本