一张图彻底理解级联!!!!!

1 学生表中肯定包含多条记录
  每一条记录代表一名学生
  因为
  每一条记录保存了一名学生的核心信息: 该学生的姓名,性别,学生证号
  但是
  学生表中必须给每一条记录一个编号id
  为什么
  就是为了级联!!!
  事实上
  每个表我们都会倾向于给一个编号id
  为什么?
  为了级联!!!
  为什么级联?
  因为表信息的分散化存储
  为什么分散化?
  因为一张表记录所有信息弊端实在太多!!!

2 课程成绩表,学生证表,女性学生健康表,男性学生健康表都依赖于学生证表而存在

3 课程成绩表包含多条记录
  每条记录代表一位学生某一门课程的成绩
  因为
  每条记录除了包含一门课程的成绩外还包含与成绩相关的其他必须信息:哪个学生,哪门课
  但是
  这两个信息不能直接用人类语言直接表示
  因为
  这是一张成绩表,最主要的信息只能是成绩,其他信息只能用编号替代
  问题是什么?
  怎么知道用编号替代的信息是什么呢?
  答案是
  级联!!!!!
  那么
  学生编号,课程编号在哪里定义呢?
  显然
  在学生表和课程表中用id定义啊
  还有
  为什么课程成绩表中除了包含成绩外还要包含其他成绩呢?
  因为
  该条记录不能只包含成绩吧,如果只包含成绩,这张表就是没有意义的
  所以
  信息的分散简化存储决定了必须进行级联
  
4 学生证表包含多条记录
  每条记录代表一行学生证
  当然
  除了学生证的基本信息外如学生证编号,发证日期,结束日期
  还包括
  一些必须的信息如:哪个学生的?
  当然
  这个信息只能用编号表示
  问题是
  这个学生编号传递的信息太少了怎么办?
  级联!!
  级联之后
  就可以获得的信息就多了
  不仅有学生证编号,学生编号,还有学生姓名,性别等等
  换句话说
  级联之后
  信息更丰富了
  丰富到两张表的信息都知道了

5 课程表
  课程表由多条记录组成
  每条记录代表一门课程
  一条记录除了保存了一名课程最重要的信息:课程名称之外
  还要包含其他必要的信息:课程编号
  因为你课程信息还会在其他表中作为必要信息存在
  所以
  必须给出对课程的编号
  一个编号就代表了一条记录
  并包含了这条记录所代表的意义,以及所包含的核心信息和必要信息
  当然
  这个编号
  可能用不到
  因为它只是必要的
  好处不止一个
  

6 女性学生健康表
  包含多条记录
  每条记录代表一个女性的健康检查结果 
  所以
  核心信息必须要有:检查日期,检查项目如(心肝脾肺肾子宫)
  必要的信息:哪个女生的
  这个信息要用编号表示
  
  
7 男性健康表同上


8 现在重新清理下思路

  学生表包含的实义信息有:姓名,性别
  包含的编号信息: 学生编号,学生证编号

  现在想知道所有学生学习了哪些课程,分别都取得了多少分数
  怎么办?
  将学生表和课程成绩表级联
  可以得到
  一张虚拟表
  表中的每条记录
  包含了一名学生的这些信息
  姓名,性别,学生证号,学生编号,课程编号,课程分数
  课程编号的意义是要表示出来的
  因此还要与课程表级联
  级联后
  将获得每一课程编号对应的课程名称
  在虚拟表中将包含的信息有
  姓名,性别,学生证号,学生编号,课程编号,课程分数,课程名称
  发现编号一般就是用来级联的
  级联后,将获得在该表中的编号在另外一张表中同样编号对应的那条记录的所有信息
  然后我们
  可以筛选出我们想要的信息,比如课程编号就不要了,只要课程名称

  如果想要获得某个学生学习了哪些课程,分别都取得了多少分数
  怎么办?
  按id对以上记录进行筛选就行了啊


  先获得所有的那些,再筛选个别的那些
  
  
  级联是信息聚合的方式

  编号是级联的媒介

  

猜你喜欢

转载自blog.csdn.net/weixin_42204641/article/details/81282169