Java学习二十五(1)--数据库设计和内链接

一、数据库设计

  1、多表之间的关系

    分类及实现关系:

      (1)一对一:人和其身份证。 在任意一方添加唯一外键直向另一方外键

      (2)一对多(多对一):部门和员工。 “多”的一方外键指向“一”的一方的外键

      (3)多对多:学生和课程。 借助第三方中间表,中间表至少包含两个字段,字段作为外键分别指向两张表的主键

  2、数据库设计范式:不同规范要求  

    设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。
    关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。主要学习前三种范式。
    (1)1NF:每一列都是不可分裂的原子数据项;
    (2)2NF:在1NF的基础上,非码属性必须完全依赖于候选码(消除非主属性对主码部分函数依赖)
      函数依赖:A-->B,A属性(属性组)的值,可确定唯一B属性的值,B依赖A。
      完全函数依赖:A-->B,如果A是一个属性组,B属性值确定需要依赖于A中的所有属性值。
      部分函数依赖:A-->B,B属性的确定只需要A的部分属性值便可以确定。
      传递函数依赖:A-->B,B-->C,B通过A确定属性值,C通过B确定属性值。
    (3)3NF:在2NF的基础上,任何非主属性不依赖其他属性值,消除传递依赖。
      主属性:码属性组中所有属性
      非主属性:码属性组之外的属性。
二、数据库的备份与还原
  1、命令行:在cmd中进行备份:mysqldump -uroot -p密码  数据库名称 > 路径;
    还原:(1)登录数据库;(2)创建数据库(名称最好相同);(3)使用数据库;(4)执行文件 soure 文件路径;
  2、图形化工具(SQLYog)。
三、多表查询--内连接
  普通语法:select * from 表1,表2;  笛卡尔积:集合A、B取这两个集合的所有组成情况。
  内连接查询:
    (1)隐式内连接:使用where条件消除无用数据,以例子来演示
select
    t1.name,
    t1.gendary,
    t2.name
from
    emp t1,
    demp t2
where
    t1.'demp_id'=t2.'id';
-- t1,t2为emp,demp的别名,emp和demp是表名

    (2)显式内连接:select 字段列表 from 表1 (inner) join 表2 on 条件;

    注:必须确定表、条件和字段。

posted on 2021-10-19 22:27  跨越&尘世  阅读(88)  评论(0编辑  收藏  举报