Java高级--数据库常识

1.软件开发流程
  1. 需求分析

    • 主要了解用户想要的是什么东西,做什么用

    • 即把软件的功能搞清楚

  2. 概要设计

    • 根据用户的负载要求,用户的软硬件环境,用户的网络环境来决定开发软件要使用的语言、数据库等

  3. 详细设计

    • 把软件的功能都分解开及数据库设计

  4. 编码实现

  5. 测试

    • 测试贯穿整个流程

  6. 安装维护

2.设计数据库的步骤
  • 属于概要设计和详细设计阶段的作业

    1. 收集系统信息,选择数据库以及明确用户需求涉及到哪些内容

    2. 根据需求找出实体类,比如学生、课程、老师、成绩等,实体类一般是实实在在存在的事物,都是名词

    3. 针对每一个实体,来了解用户关心的内容,确定实体的属性

    4. 标识实体之间的关系,主要是主从关系。

    5. 绘制E-R图(Entity-Relationship),即实体关系图

      • 实体:矩形,一般是名词

      • 属性:椭圆,一般是名词

      • 关系:菱形,一般是动词

    6. 将E-R图转换为数据库中的表

      • 实体对应表

      • 属性对应表的字段

    7. 关系一般是通过主外键来建立

3.数据库表的关系
  • 一对一、一对多、多对多

  • 例:

    • 员工-->部门 :一对一

    • 部门-->员工:一对多

      • 一对一、一对多一般通过主外键关联

    • 课程--->学生 :多对多(创建第三张表来关联这两张表)

    • 学生-->成绩:一对多

    • 课程-->成绩:一对多

    • 成绩-->学生:一对一

    • 成绩-->课程:一对一

4.主键
  • 可以唯一标识一条记录的一个或多个字段

    • 如果主键由多个字段构成,则称之为复合主键,例成绩表的主键是学号和课程编号

  • 作用:

    • 唯一标识一条记录,不能重复,不能为空,用来保证行完整性,做为一个可以被外键有效引用的对象,和其他表建立联系

5.外键
  • A表中的一个字段是B表的主键,那么它可以做A表的外键

  • emp表的deptno(部门编号)是dept表的主键,在emp表中deptno就可以做外键

  • 如果两张表(A、B)有主外键关系,表A的列被添加了外键约束,要删除2张表时,需要先删A,因为A中引用了B的数据,如果先删B,那么A中的数据都是错误数据了,违反了约束,所以不能先删B

  • 删除主键表的数据时也要注意,外键表是否有引用该条数据,如果有引用,也不能删,要先把外键表中引用到该条数据的记录删除,在去主键表里删

    • 主键表就是在连接时用到了其主键的表

    • 外键表就是在连接时用到了其外键的表

6.三大范式
  • 第一范式

    • 列不可再分,要保证列的原子性

  • 以下不满足第一范式,因为第三列可以再分

    • 姓名地址性别 年龄
  • 第二范式

    • 在第一范式的基础上,表的每一列都和主键相关(一张表只能说一件事)

  • 以下不满足第二范式,因为一张表中有2个实体(学生、成绩)

    • 学号姓名地址性别课程号课程名成绩
    • 此时课程名会出现大量冗余

    • 课程名只和课程号相关,与主键不相关

    • 应该将其拆分成2个表,使其满足第二范式

    • 学生表

    • 学号姓名地址性别
    • 成绩表

    • 学号课程号成绩
    • 课程表

    • 课程号课程名
    • 判断步骤:

      • 确定表的主键列(如果没有主键,不符合第二范式)

      • 如果主键只有一列,不用其他判断,就符合第二范式

      • 如果主键有多列(复合主键),先找出非主属性(除了主键列之外的其他属性),判断非主属性和逐渐直接的依赖时部分依赖还是完全依赖

  • 第三范式

    • 在第一范式和第二范式的基础上,确保表中的每列都和主键直接相关,而不是间接相关,要消除传递依赖

    • 什么是依赖:

      • 在一个表中,如果X确定了,那么Y的值就能确定,不存在某两行X的值相同,但Y的值不同

  • 以下不符合第三范式

    • 学号姓名年龄所在学院编号学院地址学院电话
    • 学院地址依赖于学院编号,学院编号依赖于学号,所以学院地址间接依赖于学号(主键)

    • 应该将其拆分成2个表,使其满足第三范式

    • 学生表

    • 学号姓名年龄所在学院编号
    • 学院表

    • 所在学院编号学院地址学院电话
  • 注意:

    • 允许必要的冗余

    • 如果拆分成很多表,可以减少冗余,但是会增加查询时间,所以为了减少查询所需时间,可以允许必要的数据冗余。

7.数据库的备份和还原
  • plsql导入导出

    • 导出:工具--->导出表-->插入sql-->选择要导出的表、导出路径--->导出

    • 导入:工具--->导入表-->插入sql--->选择sql文件--->导入

  • 20
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值