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

2024-05-11 01:32

本文主要是介绍重构机房收费系统——数据库设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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


            在数据库设计中,理清ER关系图是尤为重要的。但往往是,我们根本理不清,有一种剪不断,理还乱的感觉有木有……有木有。
先睹为快:      




1、第一范式1NF
定义:数据库表中的字段都是单一属性的,不可再分。
通俗简单的说每一个属性都是原子项,不可分割。

如:地址这个属性就必须拆分为 省、区、街、乡、道这几个单值属性。

2、第二范式2NF
定义:如果关系模式R是1NF,且每个非主属性完全函数依赖于候选键。

通俗简单的说,在满足第一范式的前提下,当某张表中的非主键信息不是由整个主键函数来决定时,即存在依赖于该表中不是主键的部分或者依赖于主键一部分的部分时,这就不满足2NF的关系模式

如:原版的机房收费系统学生表,可以拆成 学生信息表 和 卡表。这样就满足了第二范式。

3、第三范式3NF
定义:如果关系模式R是1NF,且每个非主属性都不传递依赖于R的候选键。

通俗简单的说,消除没有直接依赖于第一范式和第二范式形成的表的主键的属性,为没有与表的主键关联的所有信息建立了一张新表。每张新表保存了来自原表的信息和它们所依赖的主键。

如:管理员的级别【Level】由用户名称【UserID】决定,而【UserID 】由上网的学生的【StudentNo】和【CardNo】来判断,由此产生了传递依赖,第三范式往往就是消除传递的依赖的作用。


实践是检验真理的唯一标准。这话说的真没错,自己冥思苦想半天,不如动手一画来得快,画着着画着,之间的关系就越来越明确了。

再次看一下张机房收费系统——ER 图吧(申明:本人的图必有瑕疵……小的望大爷大神们多多海涵,小的真在努力学习ing)


从我的ER图中可以清晰的观察到各个实体间的关系和实体的属性,以及实体间的联系。从而可以转换成关系模型。如何转换自己百度一下吧。



个人机房重构才刚刚开始……这开头路似乎有点太是艰难了,归宗与自己造的孽,打碎牙也只能往肚子里咽,一步一步走下去,一定能行的。

这篇关于重构机房收费系统——数据库设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/978127

相关文章

在线装修管理系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,装修队管理,用户管理,装修管理,基础数据管理,论坛管理 前台账户功能包括:系统首页,个人中心,公告信息,论坛,装修,装修队 开发系统:Windows 架构模式:B/S JDK版本:Java JDK1.8 开发工具:IDEA(推荐) 数据库版本: mysql5.7 数据库可视化工具: navicat 服务器:SpringBoot自带 ap

通信系统网络架构_2.广域网网络架构

1.概述          通俗来讲,广域网是将分布于相比局域网络更广区域的计算机设备联接起来的网络。广域网由通信子网于资源子网组成。通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网构建,将分布在不同地区的局域网或计算机系统互连起来,实现资源子网的共享。 2.网络组成          广域网属于多级网络,通常由骨干网、分布网、接入网组成。在网络规模较小时,可仅由骨干网和接入网组成

关于如何更好管理好数据库的一点思考

本文尝试从数据库设计理论、ER图简介、性能优化、避免过度设计及权限管理方面进行思考阐述。 一、数据库范式 以下通过详细的示例说明数据库范式的概念,将逐步规范化一个例子,逐级说明每个范式的要求和变换过程。 示例:学生课程登记系统 初始表格如下: 学生ID学生姓名课程ID课程名称教师教师办公室1张三101数学王老师101室2李四102英语李老师102室3王五101数学王老师101室4赵六103物理陈

数据库期末复习知识点

A卷 1. 选择题(30') 2. 判断范式(10') 判断到第三范式 3. 程序填空(20') 4. 分析填空(15') 5. 写SQL(25') 5'一题 恶性 B卷 1. 单选(30') 2. 填空 (20') 3. 程序填空(20') 4. 写SQL(30') 知识点 第一章 数据库管理系统(DBMS)  主要功能 数据定义功能 (DDL, 数据定义语

给数据库的表添加字段

周五有一个需求是这样的: 原来数据库有一个表B,现在需要添加一个字段C,我把代码中增删改查部分进行了修改, 比如insert中也添入了字段C。 但没有考虑到一个问题,数据库的兼容性。因为之前的版本已经投入使用了,再升级的话,需要进行兼容处理,当时脑子都蒙了,转不过来,后来同事解决了这个问题。 现在想想,思路就是,把数据库的表结构存入文件中,如xxx.sql 实时更新该文件: CREAT

DDei在线设计器-API-DDeiSheet

DDeiSheet   DDeiSheet是代表一个页签,一个页签含有一个DDeiStage用于显示图形。   DDeiSheet实例包含了一个页签的所有数据,在获取后可以通过它访问其他内容。DDeiFile中的sheets属性记录了当前文件的页签列表。   一个DDeiFile实例至少包含一个DDeiSheet实例。   本篇最后提供的示例可以在DDei文档直接预览 属性 属性名说明数

基于Springboot + vue 的抗疫物质管理系统的设计与实现

目录 📚 前言 📑摘要 📑系统流程 📚 系统架构设计 📚 数据库设计 📚 系统功能的具体实现    💬 系统登录注册 系统登录 登录界面   用户添加  💬 抗疫列表展示模块     区域信息管理 添加物资详情 抗疫物资列表展示 抗疫物资申请 抗疫物资审核 ✒️ 源码实现 💖 源码获取 😁 联系方式 📚 前言 📑博客主页:

Linux系统稳定性的奥秘:探究其背后的机制与哲学

在计算机操作系统的世界里,Linux以其卓越的稳定性和可靠性著称,成为服务器、嵌入式系统乃至个人电脑用户的首选。那么,是什么造就了Linux如此之高的稳定性呢?本文将深入解析Linux系统稳定性的几个关键因素,揭示其背后的技术哲学与实践。 1. 开源协作的力量Linux是一个开源项目,意味着任何人都可以查看、修改和贡献其源代码。这种开放性吸引了全球成千上万的开发者参与到内核的维护与优化中,形成了

SQL Server中,查询数据库中有多少个表,以及数据库其余类型数据统计查询

sqlserver查询数据库中有多少个表 sql server 数表:select count(1) from sysobjects where xtype='U'数视图:select count(1) from sysobjects where xtype='V'数存储过程select count(1) from sysobjects where xtype='P' SE

SQL Server中,添加数据库到AlwaysOn高可用性组条件

1、将数据添加到AlwaysOn高可用性组,需要满足以下条件: 2、更多具体AlwaysOn设置,参考:https://msdn.microsoft.com/zh-cn/library/windows/apps/ff878487(v=sql.120).aspx 注:上述资源来自MSDN。