zoukankan      html  css  js  c++  java
  • 数据库的设计

    一、任务描述

       现在要为某建筑公司实现业务数据管理系统,表1是该公司员工的工资表。现在根据公司提供的业务数据,设计该软件系统的数据库结构。

    表1:某公司员工工资表

    二、实现思路

        数据库表结构的设计下面我们按照第一范式、第二范式、第三范式定义的要求,对表1中业务数据进行逐层分析,最终获得符合第三范式的关系数据路结构

    1、获得第一范式的定义:如果一个表中没有重复组(即行与列的交叉点上只有一个值,而不是一组值),且定义了关键字、所有非关键属性都依赖余关键字,则这个表属于第一范式(常记为1NF)。

       按照第一范式的定义,消除表1中数据的重复项,形成符合1NF要求的表结构,他的关键字是“工程号”、“职工号”,如表2所示。

    表2:符合1NF的表结构

    2、获得符合第二范式的表结构

    第二范式的定义:如果一个表属于1NF,且不包含部分依赖性,即没有任何属性只依赖于关键字中的一部分,则这个表属于第二范式(常记为2NF)

       将1NF转化为2NF的方法是分解。在符合第一范式定义的表2基础上,找出其中有依赖关系的数据。使用函数依赖土表示所有属性之间存在的函数依赖关系(图上方的箭头表示属性依赖于关键属性,下方的表示属性之间的依赖性。)

    3、获得符合第三范式的表结构

       第三范式的定义:如果一个表属于2NF,且不包含传递依赖性,则这个表是第三范式(常记为3NF)

       满足第三范式的表中不包含传递依赖,即没有一个非关键属性依赖于另一个非关键属性,或者说没有一个非关键属性决定另一个非关键属性。

       从图2可以看出第2个表中包含有职工号、姓名、职务、和小时工资的4个字段。根据业务逻辑进行分析,发现在这个表中,职工号与职务有依赖关系,而小时工资效率余职务也有依赖关系。由此,职工号与小时工资率存在着传递依赖关系。为了消除这种传递关系,需要对图2中的第2个表结构进行再次拆分,拆分后的表结构如图3

  • 相关阅读:
    计算与软件工程 作业三
    计算与软件工程 作业二
    计算与软件工程 作业一
    计算与软件工程 作业六
    计算与软件工程 作业五
    计算与软件工程 作业四
    计算与软件工程 作业三
    计算与软件工程 作业二
    计算与软件工程 作业一
    第六次作业
  • 原文地址:https://www.cnblogs.com/BestFeng/p/Date_Base.html
Copyright © 2011-2022 走看看