数据库设计---合适的就是最好的-阿里云开发者社区

开发者社区> 丁国华> 正文

数据库设计---合适的就是最好的

简介:         数据库设计是根据用户需求设计数据库结构的过程,具体来说,数据库设计是对于给定的应用环境,在厝数据库理论的指导下,构造最优的数据库模式,在数据库管理系统上建立数据库及其应用系统,使之能有效地存储数据,满足用户的各种需求的过程。
+关注继续查看

        数据库设计是根据用户需求设计数据库结构的过程,具体来说,数据库设计是对于给定的应用环境,在厝数据库理论的指导下,构造最优的数据库模式,在数据库管理系统上建立数据库及其应用系统,使之能有效地存储数据,满足用户的各种需求的过程。到底数据库该如何设计,古往今来,每个人都有每个人的想法,所以数据库设计并没有优劣之分,好坏之别,合适的数据库设计就是最好的。

        走过自考--《数据库系统原理》,看过耿建玲老师的视频,对数据库设计有了一点了解,VB版的机房收费系统,直接用原来的脚本生成的数据库,当时对数据库设计这部分的内容也没有特别深入的研究过,欠下的债,早晚要还,我想现在是时候了,这几天,VB.Net版的机房收费系统正式开工了,才发现数据库设计是一门学问,接下来,结合机房收费系统,总结一下数据库设计。

        首先,数据库设计主要包含以下六个步骤:

        1、需求分析:了解用户的数据需求、处理需求、安全性及完整性要求;
        2、概念设计:通过数据抽象,设计系统概念模型,一般为E-R模型;
        3、逻辑结构设计:设计系统的模式和外模式,对于关系模型主要是基本表和视图;
        4、物理结构设计:设计数据的存储结构和存取方法,如索引的设计;
        5、系统实施:组织数据入库、编制应用程序、试运行;
        6、运行维护:系统投入运行,长期的维护工作。

       本文就需求分析,概念设计和逻辑结构设计展开讨论,在这里简单的说一下机房收费系统的需求,使用该系统有三个角色用户:分别为一般用户,操作员,管理员。不同的权限有着不同的权限,具体如下:

         A、一般用户可以实现的功能是:
         a、查看学生卡内余额,通过卡号查询查看学生基本信息并显示余额。
         b、查看上机记录,通过卡号查询上机记录,姓名,上下机日期和时间,消费金额,导出Execl表格。
         c、查看充值记录,通过卡号查询充值金额,充值日期,充值时间,充值教师,导出Excel表格。
         d、查询学生上机状态,并可以强制管理学生进行下机操作。
         e、修改密码。
        

        B、操作员指办理一定业务的人员,级别高于一般用户,除了可以实现值班员的功能外,还可以执行额外功能:

        a、注册卡号,注册一张新卡。
        b、充值,通过卡号充值金额,显示充值卡号,上次卡内余额,现在卡内余额,充值日期时间以及老师。
        c、退卡,将卡注销,并退还学生卡内余额。
        d、收取(退还)金额查询,通过输入起始日期和终止日期,查询充值金额,充值日期时间,充值教师,导出Execl表格。
        e、学生基本信息维护和操作员工记录,采用组合查询。
         f、学生上机统计信息查询,采用组合查询,导出Execl表格。

       C、管理员可以管理系统所有信息,级别最高,除了可以处理值班员和操作员的功能外,还可以处理其他操作:
       a、结账。
       b、添加删除用户,添加或删除不同级别的账户。
       c、基本数据设定,包含上机费用等信息。
       d、查看正在值班的教师。
       e、日结和周结,涉及报表。

       根据上面的需求分析,设计ER模型(不是特别完整,有不同见解的小伙伴欢迎留言交流)如下图:

        

        接着创建数据库和表,若要创建数据库和表,需要去顶数据库的名称,所有者,大小,以及存储该数据库的文件和文件组。在SQL Server中创建数据库主要有两种方式,一是在SQL Server Management Studio中使用向导创建数据库,二是通过查询窗口执行T-SQL语句创建数据库。以T-SQL创建数据库和表为例,实现代码如下:

         

create database mycharge  --创建mycharge数据库
go
user mycharge --转到mycharge数据库
go
create table studen --在STUDENT数据库中创建表student
(
  Sno char(10) primary key,
  Sname char (10) ,
  Ssex ,
  Sage int,
  Sdept char(10)
)
        机房收费系统表如下:

        1、学生表:卡号、学号、姓名、类型、性别、系别、年级、班级、金额、状态、备注。
        2、上机表:卡号、类型、学号、姓名、系别、性别、上机日期、下机日期、上机时间、下机时间、消费时间、消费金额、余额。
       3、充值表:卡号、充值金额、充值时间、充值教师。
       4 、用户表:用户名、密码、身份、操作人。
       5、退卡表:卡号、退款金额、退卡时间、办理退卡教师、结账状态。
       6、操作员工工作记录表:序列号、教师、身份、注册日期、注册时间、注销日期、注销时间。
       7、结账信息表:售卡张数、总售卡张数、退卡张数、应收总金额、充值金额、临时收费金额。
       8、基本数据设定信息表:固定半个小时费用、临时半个小时费用、递增单位时间、至少上机时间、准备时间、最少金额。
       9、正在值班教师信息表:记录号、教师名、身份、登陆日期、登录时间。
     10、日结账信息表:上次充值卡余额、当日充值金额、当日消费金额、本次充值卡金额、日期。
     11、周结帐信息表:上次充值卡金额、本次充值金额、本次消费金额、本次充值卡余额、日期。

       初次设计数据库,存在很多缺陷,有不同意见的小伙伴欢迎留言交流,机房收费系统个人重构版,未完待续......

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
互联网公司数据库设计
互联网公司数据库设计
14 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9458 0
Oracle数据库设计要做到五戒
  众所周知,数据库设计的好坏直接关系到数据库运行的效率。根据笔者的经验,对于提升数据库性能来说,合理的数据库设计,比升级服务器的硬件配置,还要来的有效。但是,笔者无论是在跟同事合作,又或者是在论坛上跟相关同行交流的时候,总是会发现有些人有一些不好的数据库设计习惯,影响了数据库的性能,增加了数据库管理员的工作量。
870 0
云时代下的数据库存储——运筹帷幄的阿里云数据库MongoDB
2018年1月17-25日,NoSQL数据库直播大讲堂峰会顺利结束,阿里云数据库团队为大家带来了一场别开生面的知识盛会,给大家带来深度的数据库技术及产品分享。本文是《ApsaraDB for MongoDB》演讲整理,主要讲解了阿里云数据库MongoDB全面的产品体系介绍以及阿里云数据库MongoDB在备份、监控、安全等方面所做的一些优化细节的具体剖析。
6673 0
数据库设计流程
数据库设计流程,可以分为五步: 规划 需求分析 概念设计 逻辑设计 物理设计 规划 规划就是指考虑好建立数据库的必要性和可行性,明确数据库在整个项目中扮演的角色以及与其它干系角色之间的关系。
1337 0
数据库设计---合适的就是最好的
        数据库设计是根据用户需求设计数据库结构的过程,具体来说,数据库设计是对于给定的应用环境,在厝数据库理论的指导下,构造最优的数据库模式,在数据库管理系统上建立数据库及其应用系统,使之能有效地存储数据,满足用户的各种需求的过程。
1093 0
数据库设计漫谈
 引言   数据库设计规范,仁者见仁,但是有共同的目标都是想要更加简洁清新,可维护可扩展等等。有时候设计的时候没有想到,等到开发的时候,或者发布完了,客户帮我们发现BUG,那是很得不偿失的事,这些得不偿失的事,我都经历着或经历过,记得刚毕业出来工作,对命名没有什么概念,很随意,更别谈用心去设计了,后面带来的痛只有自己清楚。
904 0
数据库技术:关系型数据库设计总结
关系型数据库简介 关系数据库由由埃德加·科德(IBM)在1969年左右提出。自推出后就成为商业应用的主要数据库模型(与其他数据库模型,如分级、网络或对象模型相比)。
1073 0
+关注
丁国华
你只管努力,剩下的交给时光!
214
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载