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

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

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

回想

关系模式设计的好坏直接影响到数据冗余度和数据一致性等问题。

由此我们有了一个评价指标。即范式。

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

第二范式:关系模式R是1NF且每一个非主属性全然依赖于候选键

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

ER图

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

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

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

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

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

步骤2.1 二元联系类型的转换

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

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

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

即得

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

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

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

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

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

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

由此得到

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDE3NjAxNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">

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

时间: 2024-10-13 00:44:02

【机房收费系统】数据库设计的相关文章

机房收费系统——数据库设计说明书

GB8567--88 数据库设计说明书 1      引言 优质数据库在处理大数据的程序或系统中是有非常重要的作用的,所以对于数据库的设计有很多的要求和规定.首先数据库要有很好的可维护性.灵活性,并且数据库的算法逻辑性也要有一定的优化性,这样可以对资源进行有效利用,并且处理数据的时间也会缩短. 1.1   编写目的 由于上机的人越来越多,产生的上机数据越来越多,原始的保存方式已经不能满足数据存储的需要,所以使用数据库对各种记录进行存储.并且数据库可以节省很多的资源,如人力.时间.空间等. 数据库

机房收费系统数据库设计

之前,学习编写机房收费系统的文档时,曾写过 机房收费系统数据库概念设计模型--ER图 这篇文章,现在到了机房收费系统个人版重构阶段,需要再次进行数据库的设计.可以说,之前的数据库的概念设计给我现在的设计奠定了一定的基础,但是仍然发现自己的设计中有许多不合理并且需要改进的地方. 在这次的数据库设计当中,学习了一些数据库的命名规范,重温了经典的三范式(属性原子化,避免局部依赖,避免传递依赖).但是发现,在需求面前,一些分属两张表的字段,为了方便,还是得放到一张表中,不得不破坏三范式. 现在将自己设计

VB.NET版机房收费系统—数据库设计

之前第一遍机房收费的时候,用的数据库是别人的,认知也只能建立在别人的基础上,等自考中<数据库系统原理>这本书学完了之后,再去看以前的数据库,发现数据库真的还需要进一步的优化,下面是我设计数据库的一些见解,希望大家多提些意见. 数据库设计 E-R模型: 在观念模型设计阶段,一个系统都是建立在ER模型上的,设计好ER模型,很重要. 我设计的ER图: 系统中的实体:很简单,就是将系统中的名词都抽象出来,再具体了就是转换为数据库的逻辑设计时才要考虑的. 系统中的联系:在图中可以看得很清楚,这里我要重点

VB.Net版机房收费系统 ---数据库设计

数据库设计是根据用户需求设计数据库结构的过程,具体来说,数据库设计是对于给定的应用环境,在厝数据库理论的指导下,构造最优的数据库模式,在数据库管理系统上建立数据库及其应用系统,使之能有效地存储数据,满足用户的各种需求的过程.到底数据库该如何设计,古往今来,每个人都有每个人的想法,所以数据库设计并没有优劣之分,好坏之别,合适的数据库设计就是最好的. 走过自考--<数据库系统原理>,看过耿建玲老师的视频,对数据库设计有了一点了解,VB版的机房收费系统,直接用原来的脚本生成的数据库,当时对数据库设计

重构机房收费系统——数据库设计

曾记得,第一次编写机房收费系统的文档模板,整整有12个文档需要编写,仅仅花了两三天的时间就让师傅验收,完结项目,就这样囫囵吞枣的文档编写完成了. 要知道:欠下的账,终究是要还的.现在到了机房收费系统个人版重构阶段, (1)进行数据抽象,设计局部概念模型: (2)将局部概念模型综合成全局概念模型 (3)就可以按要求绘制机房收费系统数据库概念设计模型--ER关系图. 可以说,之前的数据库的概念设计给我奠定了一丢丢的设计基础,外加<数据库系统原理>中的三范式定理,本着求知好学.虚心请教的理念,于是乎

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

前言 前一段时间要参加自考,要考<数据库原理>,在其中也更加了解了好多数据库的问题.比如,如何创建一个好的数据库,怎么创建数据库. 图一 数据库创建框架 现在开始机房的重构,以前用的是师哥师姐设计的数据库,现在发现自己也可以设计出来了,所以,按这步骤来自己设计一个机房收费系统的数据库. 一.规划 由于机房收费系统是第二遍做的,所以在总体规划阶段很容易看出系统在技术.经济.效益.法律是可行的:目标就是要更好的搭配应用程序合理运行. 二.需求分析 这一阶段是计算机人员(系统分析员)和用户双方共同收

客房收费系统数据库设计

之前.当学习编写计算机房收费系统文件.我写 机房收费系统数据库概念设计模型--ER图 这篇文章,如今到了机房收费系统个人版重构阶段,须要再次进行数据库的设计. 能够说.之前的数据库的概念设计给我如今的设计奠定了一定的基础,可是仍然发现自己的设计中有很多不合理而且须要改进的地方. 在这次的数据库设计其中,学习了一些数据库的命名规范,重温了经典的三范式(属性原子化.避免局部依赖.避免传递依赖). 可是发现,在需求面前,一些分属两张表的字段.为了方便,还是得放到一张表中,不得不破坏三范式. 如今将自己

机房收费系统数据库概念结构设计

数据库的设计大致流程想必大家都知道,不知道的也能很容易的在网上找到相关的资料,通常,我们将数据库设计分为6个阶段,即需求分析阶段.概念结构设计阶段.逻辑结构设计阶段.物理结构设计阶段.实施阶段.运行和维护阶段. 本次我们不谈数据库设计的理论知识,主要是以机房收费系统的数据库设计为背景来说明数据库的概念结构设计是如何产生的,当然包括了数据库设计中最难的需求分析了,否则就谈不上什么数据库的概念结构设计了. 因为我们都已经做过一遍了,而且从一开始我们就是照着系统原型做的,没有从无到有的过程,所以无法体

vb.net机房收费系统报表设计

在vs2012中,基于vb.net环境开发了一个机房收费系统,在这个系统中用到了报表.什么是报表? 过去没有计算机的时候,我们算账,记录信息等都在纸上进行,就是列账单清单,通过账单,所需要的信息一目了 然. 在计算机的年代,取缔了手写+纸质账单,用软件来制作清单.这是我用Report.rdlc控件做的一个简单的报表. 设计 制作报表 (1)在UI层添加报表 (2)选择报表控件,并命名控件为weelyReport (3)右击,添加数据集 (4)新建数据源 (6)添加连接 (7)在经过几步操作就到了

机房收费系统合作——再看数据库设计

机房合作我负责了最简单的D层,接口层,工厂层.反正D层是我来写,于是数据库索性也就顺便设计了.已经是第三次敲机房收费系统了,每次都是相隔半年左右吧.需求搞得透透的了,数据库也就好设计了.基本跟第二次没什么大的区别,就是把Student表和Card表分开了. 重构的时候,我的数据库几乎什么都用到了:事务,存储过程,触发器,视图,联合查询等等.所以,这次设计数据库还是SO Easy的..并且,为了让婵婵和牛迁迁师哥写的方便,我把组合查询都写成了存储过程!!!!费了一番功夫,但是D层简单了不少.还记得