【机房收费系统】数据库设计

概述本文介绍基于机房收费系统  基本遵循三范式的数据库设计。

仅满足最基本功能需求,不包含额外的信息保存。

 

回顾

关系模式设计的好坏直接影响到数据冗余度和数据一致性等问题。由此我们有了一个评价指标。即范式。

第一范式:关系模式R的每个关系r的属性值都是不可分的原子值

第二范式:关系模式R1NF且每个非主属性完全依赖于候选键

第三范式:关系模式R1NF且每个非主属性都不传递依赖于R的候选键

 

ER

 

 

ER图转换成关系模式集的算法

 

步骤一(实体类型的转换)

将每个实体类型转换成一个关系模式,实体的属性即为关系模型的属性,实体标识符即为关系模式的键。

由此得到学生表卡表 工作人员表基本数据表和机器表。由于机器只有一个属性,可与其他合并。


步骤二(联系类型的转换)根据不同情况做不同的处理。

步骤2.1 元联系类型的转换

1)若实体间联系是11可在两个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键。

2)若实体联系是1N则在N端实体类型转换成关系模式中加入1端实体类型的键作为外键和联系类型的属性。

3)若实体间联系是M:N,则将联系类型也转换成关系模型。其属性为两端实体类型的键(作为外键)加上联系类型的属性,而键为两段实体间的组合

即得

 

步骤2.2一元联系类型的转换

和二元联系类型的转换类似。

 步骤2.3(三元联系类型的转换)

1)若实体间联系是1:1:1 可以再三个实体类型转换成三个关系模式中任意一二关系模式的属性中加入另两个关系模式的键(作为外键)和联系类型的属性。

2)若实体间联系是1:1:N 则在N端实体类型转换成关系模式中加入两个1端实体类型的键(作为外键)和联系类型的属性。

3)若实体间联系是M:N:P,则将联系类型也转换成关系模式,其属性为是那段实体类型的键(作为外键)加上联系类型的属性,二键为三端实体键的组合。

由此得到

 

 

以上为个人理解,在实际实现中还会有想的不到的地方稍有修改。有不妥之处欢迎指导。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 28
    评论
机房收费管理系统 问题描述 结合我校计算机机房的运作模式,设计一种适合的收费管理系统,能够实现相关的人员检索,计时收费,管理汇总等功能模块。 开发环境 采用C或C++实现,VC++6.0 基本要求 主要功能模块: (1) 登录模块 (2) 上机管理模块 说明:上机登记时,余额不足3元或卡处于挂失状态,则拒绝登记。 每位同学的一次上机形成一条记录,每30秒遍历一次上机记录表,对表中所有正上机字段为TRUE的记录的上机用时增加30秒,同时减少上机卡表中的余额。 (3) 上机卡管理模块 (4) 充值挂失模块 (5) 查找统计模块:统计某天上机的总时数、每次上机的平均时数和机房的收入;某学生上机的次数、上机总时数、每次上机平均时间;挂失和查询余额。 参考的数据结构: 上机卡(卡号,姓名,专业班级,余额,状态),状态有:正常和挂失。 上机记录(卡号,上机日期,开始时间,上机用时,正上机,管理号代码) 上机记录表永久保存,用于事后查询和统计。 设计要求 1) 界面友好,输入信息符合逻辑:如上机时间设定在合理的时间范围。 2) 能从实践生活出发,设计合理的功能模块 3) 各类信息的数据结构明晰 4) 可根据自身生活体验添加相关功能模块。 拓展功能要求 鼓励采用Turbo C/C++、MFC等开发工具,实现彩色或图形操作界面。鼓励引入小型数据作为处理数据的来源,拓展知识面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值