20.Java与数据库(四)【Java学习笔记Hatter】Java开发工程师

/ 福州大学音乐学院Java开发工程师 / 2017-03-22

1.关系

将实体与实体的关系,反应到最终数据库表的设计上来:将关系分成三种:一对一,一对多(多对一)和多对多。所有的关系都是指表与表之间的关系


(1)一对一:一张表的一条记录一定只能与另外一张表的一条记录进行反应;反之亦然。



一个常用表中的一条记录:永远只能在一张不常用表中匹配一条记录;一个不常用表中的一条记录在常用表中也只能匹配一条记录:一对一的关系。


(2)一对多:一张表中有一条记录可以对应另外一张表中的多条记录;但是返回过,另外一张表的一条记录只能对应第一张表的一条记录。这种关系就是一对多或者多对一。

如何创立这种关系?

在某一张表中增加一个字段,能够找到另外一张表中的记录:应该在孩子表中增加一个字段指向妈妈表:因为孩子表的记录只能匹配到一条妈妈表的记录。


(3)多对多:一张表中(A)的一条记录能够对应另外一张表(B)中的多条记录;同时B表中的一条记录也能对应A表中的多条记录:多对多关系

如何创立这种关系?

增加一张新表,专门用来维护两张表之间的关系。而且中间表是多表,维护了能够唯一找到一表的关系;同样的学生表与中间表也是一个一对多的关系:一对多的关系可以匹配到关联表之间的数据


2.范式

(1)Normal Format,是一种离散数学中的知识,是为了解决一种数据的存储优化的问题:

保存数据的存储之后,凡是能通过关系寻找出来的数据,坚决不再重复存储:是为了减少数据的冗余。


(2)范式是一种分层结构的规范,分为6层:每一层都比上一层严格:若要满足下一层,前提是满足上一层范式。

6层范式:1NF,2NF,3NF,4NF,5NF,6NF;1NF是最底层,6NF是最高层,最严格。


在设计数据库的时候,因为范式致力于节省存储空间,所以会利用范式来指导设计。但数据库不仅仅解决空间问题,还要考虑效率问题:范式只为解决空间问题,所以数据库的设计不可能完全按照范式的要求实现:一般情况下,只需要满足前三种范式

范式不是强制规范。


(3)1NF

第一范式:在设计表存储数据的时候,若表中设计的字段存储的数据,在取出来之前还需要拆分,不满足第一范式:第一范式要求字段的数据不可再分。


(4)2NF

第二范式:在数据表设计的过程中,若有复合主键(多字段主键)。且表中有字段并不是由整个主键来确定,而是依赖主键中的某字段(主键的部分):存在依赖主键部分的问题,叫为部分依赖:第二范式就是不允许出现部分依赖。


例:

以上表中:因讲师无法作为独立主键,需要结合班级才能作为主键(复合主键):代课时间,开始和结束字段与当前的复合主键有关,但是性别并不依赖班级,教室也不依赖讲师:性别依赖讲师,教室依赖于班级,出现了性别与教室依赖于主键中的一部分。

解决方案1:可以将性别与讲师单独成表,班级与教室也单独成表


公众号,微信

汇鱼网海峡创乐汇
汇鱼网海峡创乐汇