zoukankan      html  css  js  c++  java
  • Oracle_高级功能(1) 数据库设计

    1、三范式
    规范化关系模式称为范式。
    第一范式:在一个关系模型R中,如果R的每一个属性的值域中的值都是不可再分的最小数据单位,
    则称R为第一范式(1NF)。
    第二范式:如果一个关系模型R属于1NF,并且R的每一个非主属性都完全依赖于它的每一个候选键,
    则称R为第二范式(2NF)。
    第三范式:如果一个关系模型R属于2NF,并且R的任何一个非主属性都不传递依赖于
    它的任何一个候选键,则称R为第三范式(3NF)。

    举例:
    关系模型:{职员、部门}
    1NF:{职员编号、职员名、职位、工资、入职日期、部门名、办公地点}
    2NF:{职员编号、职员名、职位、工资、入职日期、部门名}、{部门编号、部门名、部门办公地点}
    3NF:{职员编号、职员名、职位、工资、入职日期、部门编号}、{部门编号、部门名、部门办公地点}
    关系模型:学生、课程、成绩
    1NF:{学号、学生名、课程号、课程名、成绩}
    2NF:{学号、学生名}、{课程号、课程名}、{学生名、课程名、成绩}
    3NF:{学号、学生名}、{课程号、课程名}、{学号、课程号、成绩}

    白话3NF:
    1NF:每个列要分到不能再分(最细一层)。
    2NF:非主键列必须完全依赖于主键列(把不能完全依赖的列剔除,组成新的表)。
    3NF:每个表除外键列以外,不能再有其它表的任何列。

    2.实体关系模型
    实体(Entity):现实中存在的抽象的事物。
    属性(Attribute):实体的特征。
    关系(Relationship):实体间(包括:实体和属性间)的相互作用,
    分为:1对1,1对多,多对多三种。

    举例:
    1对1:一个职员/学生只能有一个名字。
    1对多:一个职员只能属于一个部门,一个部门可以有多个职员。
    多对多:一个学生可以学多门课程,一门课程可以有多个学员来学;
    可以将一个多对多转化成2个1对多。

    对应到数据库:
    实体--》表
    属性--》列
    1对1关系--》主键
    1对多关系--》外键
    多对多关系--》关系表+2外键

    3.Powerdesigner实操

    4.练习
    关系模型:{专业、班级、学生、课程、教师}
    专业(专业代码、专业名)
    班级(专业代码、班级号、班级)
    学生(学号、姓名、性别、出生日期)
    成绩(学号、课程号、成绩)
    课程(课程号、课程名、学时)
    讲授(课程号、教师编号)
    教师(教师编号、姓名、职称、电话)
    设置(专业代码、课程号)
    MAJOR

    5.作业
    浦发银行数据库需求分析

  • 相关阅读:
    ansible register 之用法
    vim 多行注释和取消注释
    开启 ssh 的 root 登录
    HAproxy 添加多个配置文件
    1002. A+B for Polynomials (25)
    Java中浮点数能连续精确表示整数的范围
    1001. A+B Format (20)
    1003. 我要通过!(20)
    1009. 说反话 (20)
    1006. 换个格式输出整数 (15)
  • 原文地址:https://www.cnblogs.com/BradMiller/p/9279747.html
Copyright © 2011-2022 走看看