当前位置:网站首页>数据库中的范式:第一范式,第二范式,第三范式
数据库中的范式:第一范式,第二范式,第三范式
2022-07-05 10:17:00 【小的时候可菜了】
元组:表中的一行
码:表中的一列
候选码:可唯一标识,如通过(身份证号码)或者 (学校,班级,学号)可唯一标识一个人;主属性:候选码中出现过的属性
主码 : 也叫主键,从候选码中选出一个老大
外码也叫外键。如果一个关系中的一个属性
是另外一个关系中的主码
则这个属性为外码
第一范式,第二范式,第三范式的超简单介绍
第一范式: 不可再分
如一个表中有两个属性:
公司、商品(名称、数量)
,但商品可由名称、数量表示,不符合,而公司、名称、数量
符合
第二范式:建立在第一范式基础上,消除部分依赖
订单号 | 产品号 | 产品数量 | 产品折扣 | 产品价格 | 订单金额 | 订单时间 |
---|---|---|---|---|---|---|
10001 | 25 | 100 | 0.9 | 9 | 5000 | 2022-07-22 |
10001 | 26 | 200 | 0.8 | 9 | 7000 | 2022-07-23 |
订 单 号 、 产 品 号 → 产 品 数 量 、 产 品 折 扣 、 产 品 价 格 订 单 号 → 订 单 金 额 、 订 单 时 间 订单号、产品号\to产品数量、产品折扣、产品价格 \\ 订单号\to 订单金额、订单时间 订单号、产品号→产品数量、产品折扣、产品价格订单号→订单金额、订单时间
‘订单号’ 和 ‘产品号’ 是表的主键(主码),这两个字段一起决定了 ‘产品数量‘ ’产品折扣‘ ’产品价格‘ ,
而‘订单金额’和‘订单时间’仅由‘订单号’决定,不是由 主键(‘订单号’ 和 ‘产品号’)共同决定,所以‘订单金额’和‘订单时间’是部分依赖于主键
正确版本
订单号 | 产品号 | 产品数量 | 产品折扣 | 产品价格 |
---|---|---|---|---|
10001 | 25 | 100 | 0.9 | 9 |
10001 | 26 | 200 | 0.8 | 9 |
订单号 | 订单金额 | 订单时间 |
---|---|---|
10001 | 5000 | 2022-07-22 |
10001 | 7000 | 2022-07-23 |
第三范式:建立在第二范式基础上,消除传递依赖
身份证号 | 姓名 | 性别 | 年龄 |
---|---|---|---|
34666666666 | 张三 | 男 | 22 |
身 份 证 → 姓 名 → 性 别 、 年 龄 身份证 \to 姓名 \to 性别、年龄 身份证→姓名→性别、年龄
“性别”和“年龄”虽然间接依赖‘身份证号’,但直接依赖的是“姓名”,正确版本
身份证号 | 姓名 |
---|---|
34666666666 | 张三 |
姓名 | 性别 | 年龄 |
---|---|---|
张三 | 男 | 22 |
传递函数依赖: 身 份 证 → 姓 名 → 性 别 、 年 龄 但 是 性 别 、 年 龄 ↛ 姓 名 ↛ 身 份 证 身份证 \to 姓名 \to 性别、年龄 ~~~~~~但是~~~~~~ 性别、年龄 \not\to 姓名 \not\to 身份证 身份证→姓名→性别、年龄 但是 性别、年龄→姓名→身份证
边栏推荐
- [dark horse morning post] Luo Yonghao responded to ridicule Oriental selection; Dong Qing's husband Mi Chunlei was executed for more than 700million; Geely officially acquired Meizu; Huawei releases M
- 非技術部門,如何參與 DevOps?
- 【Vite】1371- 手把手开发 Vite 插件
- pytorch输出tensor张量时有省略号的解决方案(将tensor完整输出)
- WorkManager的学习二
- 横向滚动的RecycleView一屏显示五个半,低于五个平均分布
- C function returns multiple value methods
- How to judge that the thread pool has completed all tasks?
- Blockbuster: the domestic IDE is released, developed by Alibaba, and is completely open source!
- Comparative learning in the period of "arms race"
猜你喜欢
[observation] with the rise of the "independent station" model of cross-border e-commerce, how to seize the next dividend explosion era?
《天天数学》连载58:二月二十七日
钉钉、企微、飞书学会赚钱了吗?
Today in history: the first e-book came out; The inventor of magnetic stripe card was born; The pioneer of handheld computer was born
Idea create a new sprintboot project
WorkManager学习一
重磅:国产IDE发布,由阿里研发,完全开源!
C语言实现QQ聊天室小项目 [完整源码]
Universal double button or single button pop-up
Atcoder beginer contest 254 "e BFS" f st table maintenance differential array GCD "
随机推荐
Swift tableview style (I) system basic
> Could not create task ‘:app:MyTest. main()‘. > SourceSet with name ‘main‘ not found. Problem repair
Interview: is bitmap pixel memory allocated in heap memory or native
学习笔记4--高精度地图关键技术(下)
[论文阅读] KGAT: Knowledge Graph Attention Network for Recommendation
Applet image height adaptation and setting text line height
非技术部门,如何参与 DevOps?
《剑来》语句摘录(七)
Learning notes 5 - high precision map solution
Swift uses userdefaults and codable to save an array of class objects or structure instances
Have you learned to make money in Dingding, enterprise micro and Feishu?
爬虫(9) - Scrapy框架(1) | Scrapy 异步网络爬虫框架
驱动制造业产业升级新思路的领域知识网络,什么来头?
Constrained layout flow
SLAM 01.人类识别环境&路径的模型建立
How do programmers live as they like?
Using directive in angualr2 to realize that the picture size changes with the window size
Apple 5g chip research and development failure? It's too early to get rid of Qualcomm
GO项目实战 — Gorm格式化时间字段
La vue latérale du cycle affiche cinq demi - écrans en dessous de cinq distributions moyennes