一张图彻底理解级联!!!!!
1 学生表中肯定包含多条记录
每一条记录代表一名学生
因为
每一条记录保存了一名学生的核心信息: 该学生的姓名,性别,学生证号
但是
学生表中必须给每一条记录一个编号id
为什么
就是为了级联!!!
事实上
每个表我们都会倾向于给一个编号id
为什么?
为了级联!!!
为什么级联?
因为表信息的分散化存储
为什么分散化?
因为一张表记录所有信息弊端实在太多!!!
2 课程成绩表,学生证表,女性学生健康表,男性学生健康表都依赖于学生证表而存在
3 课程成绩表包含多条记录
每条记录代表一位学生某一门课程的成绩
因为
每条记录除了包含一门课程的成绩外还包含与成绩相关的其他必须信息:哪个学生,哪门课
但是
这两个信息不能直接用人类语言直接表示
因为
这是一张成绩表,最主要的信息只能是成绩,其他信息只能用编号替代
问题是什么?
怎么知道用编号替代的信息是什么呢?
答案是
级联!!!!!
那么
学生编号,课程编号在哪里定义呢?
显然
在学生表和课程表中用id定义啊
还有
为什么课程成绩表中除了包含成绩外还要包含其他成绩呢?
因为
该条记录不能只包含成绩吧,如果只包含成绩,这张表就是没有意义的
所以
信息的分散简化存储决定了必须进行级联
4 学生证表包含多条记录
每条记录代表一行学生证
当然
除了学生证的基本信息外如学生证编号,发证日期,结束日期
还包括
一些必须的信息如:哪个学生的?
当然
这个信息只能用编号表示
问题是
这个学生编号传递的信息太少了怎么办?
级联!!
级联之后
就可以获得的信息就多了
不仅有学生证编号,学生编号,还有学生姓名,性别等等
换句话说
级联之后
信息更丰富了
丰富到两张表的信息都知道了
5 课程表
课程表由多条记录组成
每条记录代表一门课程
一条记录除了保存了一名课程最重要的信息:课程名称之外
还要包含其他必要的信息:课程编号
因为你课程信息还会在其他表中作为必要信息存在
所以
必须给出对课程的编号
一个编号就代表了一条记录
并包含了这条记录所代表的意义,以及所包含的核心信息和必要信息
当然
这个编号
可能用不到
因为它只是必要的
好处不止一个
6 女性学生健康表
包含多条记录
每条记录代表一个女性的健康检查结果
所以
核心信息必须要有:检查日期,检查项目如(心肝脾肺肾子宫)
必要的信息:哪个女生的
这个信息要用编号表示
7 男性健康表同上
8 现在重新清理下思路
学生表包含的实义信息有:姓名,性别
包含的编号信息: 学生编号,学生证编号
现在想知道所有学生学习了哪些课程,分别都取得了多少分数
怎么办?
将学生表和课程成绩表级联
可以得到
一张虚拟表
表中的每条记录
包含了一名学生的这些信息
姓名,性别,学生证号,学生编号,课程编号,课程分数
课程编号的意义是要表示出来的
因此还要与课程表级联
级联后
将获得每一课程编号对应的课程名称
在虚拟表中将包含的信息有
姓名,性别,学生证号,学生编号,课程编号,课程分数,课程名称
发现编号一般就是用来级联的
级联后,将获得在该表中的编号在另外一张表中同样编号对应的那条记录的所有信息
然后我们
可以筛选出我们想要的信息,比如课程编号就不要了,只要课程名称
如果想要获得某个学生学习了哪些课程,分别都取得了多少分数
怎么办?
按id对以上记录进行筛选就行了啊
先获得所有的那些,再筛选个别的那些
级联是信息聚合的方式
编号是级联的媒介
一张图彻底理解级联!!!!!相关推荐
- 我画了近百张图来理解红黑树
文章已同步发表于微信公众号JasonGaoH,我画了近百张图来理解红黑树,文章略有修改. 之前在公司组内分享了红黑树的工作原理,今天把它整理下发出来,希望能对大家有所帮助,对自己也算是一个知识点的总结 ...
- 三张图-帮助理解腾讯开源毫秒服务引擎msec源码
第一张:UML图 链接:https://www.processon.com/view/link/5852139ce4b05a02846e5c11 (虚线表示基类) 不是我故意画得那么复杂,而是原本就那 ...
- 01.几张图轻松理解String.intern()
当调用 intern() 方法时,编译器会将字符串添加到方法区的运行常量池中(stringTable维护),并返回指向该常量的引用. 在翻<深入理解Java虚拟机>的书时,又看到了2-7的 ...
- 几张图可以理解GC JVM调优的内容
public class ApiPurchaseOrderServiceApp {public static void main(String[] args) throws Exception {Ap ...
- 30张图轻松理解HTTP在面试中所有会出现的题【秋招系列】
前言 又是一年秋招与跳槽热闹的开展着,而在面试过程中,HTTP 被提问的概率还是非常高的. 我搜集了 5 大类 HTTP 面试常问的题目,同时这 5 大类题跟 HTTP 的发展和演变关联性是比较大的, ...
- 三次简化一张图:一招理解LSTM/GRU门控机制
机器之心专栏 作者:张皓 RNN 在处理时序数据时十分成功.但是,对 RNN 及其变种 LSTM 和 GRU 结构的理解仍然是一个困难的任务.本文介绍一种理解 LSTM 和 GRU 的简单通用的方法. ...
- 6张图,带你深入理解GitOps,真硬核!
大家好,我是小碗汤,今天分享一篇6张图深入理解GitOps,内容硬核,建议兄弟们收藏~ 在使用 K8s 的云原生应用中,Serverless,Devops 工具以及大量其他云技术.通常,基础设施代码和 ...
- 我以前一直没有真正理解支持向量机,直到我画了一张图!
选自towardsdatascience 作者:Rohit Pandey 编译:机器之心(almosthuman2014) 点击文末阅读原文 我以前一直没有真正理解支持向量机,直到我画了一张图. 1. ...
- 几张图帮你理解 docker 基本原理及快速入门
http://hainiubl.com/topics/13 什么是docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Goog ...
最新文章
- 遍历列表python_python列表的遍历与循环
- 十三种基于直方图的图像全局二值化算法原理、实现、代码及效果(转)
- python3环境下 tensorflow环境中经常遇到'*' has type str, but expected one of: bytes问题的解决
- 如何处理网络丢包故障?—Vecloud微云
- jsonp获取服务器数据的方式
- linux pxe安装mysql_搭建PXE实现自动化安装系统
- 数组/指针,字符数组/字符串/指向字符的指针
- 【Matlab学习笔记】保存图片(待续)
- NWT杂事:来公司只喝酒不谈工作
- Java代码模拟实现购物车
- 大唐杯题库(300道)(一)
- 解决windows7“您可能没有权限使用网络资源”的方法
- 主动事务处理器编写BFM
- 一些关于 CAD数据库 插入字段
- bootStrap 教程 文档
- python装饰器哪个好_[Python] 对 Python 装饰器的理解心得
- Mac系统下matplotlib中SimHei中文字体缺失报错的解决办法
- Ahmedabad公司的LiFi技术为Nadabet提供互联网接入能力
- 渣男手册,安卓恋爱话术库API
- 2013-2014春运12306抢票纪实---致360、搜狗、猎豹、遨游、chrome等浏览器