第一,小公司一般都不会接受大的项目的,很多小项目的数据表结构很简单,设计也很直来直去,有些即使设计的不合理,受限于小项目的原因,缺陷也不会被放大很多。就算出了问题,重头来过可能都不是太困难的事情。
第二,能开公司的一般都会有一定项目经验的老人带着,甚至说一个强人就够了。
第三种可能,小公司的工作是从大公司口中拿的吃剩下的,不好吃的项目,项目都有比较好的可参考的数据库表结构模式参考。
还有一点,小公司一般没有程序员的感念啦,基本是从调研、设计、开发、测试、上线、维护,所有的工作都一起协作完成,甚至连市场合同都要自己搞定,
听说国家对于软件开发的数据库设计有一套标准
(转载自国家计算机标准和文件模板)
1 引言
1.1编写目的
说明编写这份数据库设计说明书的目的,指出预期的读者。
1.2背景
说明:
a.说明待开发的数据库的名称和使用此数据库的软件系统的名称;
b.列出该软件系统开发项目的任务提出者、用户以及将安装该软件和这个数据库的计算站(中心)。
1.3定义
列出本文件中用到的专门术语的定义、外文首字母组词的原词组。
1.4参考资料
列出有关的参考资料:
a.本项目的经核准的计划任务书或合同、上级机关批文;
b.属于本项目的其他已发表的文件;
c.本文件中各处引用到的文件资料,包括所要用到的软件开发标准。
列出这些文件的标题、文件编号、发表日期和出版单位,说明能够取得这些文件的来源。
2 外部设计
2.1标识符和状态
联系用途,详细说明用于唯一地标识该数据库的代码、名称或标识符,附加的描述性信息亦要给出。如果该数据库属于尚在实验中、尚在测试中或是暂时使用的,则要说明这一特点及其有效时间范围。
2.2使用它的程序
列出将要使用或访问此数据库的所有应用程序,对于这些应用程序的每一个,给出它的名称和版本号。
2.3约定
陈述一个程序员或一个系统分析员为了能使用此数据库而需要了解的建立标号、标识的约定,例如 用于标识数据库的不同版本的约定和用于标识库内各个文卷、、记录、数据项的命名约定等。
2.4专门指导
向准备从事此数据库的生成、从事此数据库的测试、维护人员提供专门的指导,例如将被送入数据 库的数据的格式和标准、送入数据库的操作规程和步骤,用于产生、修改、更新或使用这些数据文卷的操 作指导。 如果这些指导的内容篇幅很长,列出可参阅的文件资料的名称和章条。
2.5支持软件
简单介绍同此数据库直接有关的支持软件,如数据库管理系统、存储定位程序和用于装入、生成、修 改、更新数据库的程序等。说明这些软件的名称、版本号和主要功能特性,如所用数据模型的类型、允许 的数据容量等。列出这些支持软件的技术文件的标题、编号及来源。
3 结构设计
3.1概念结构设计
说明本数据库将反映的现实世界中的实体、属性和它们之间的关系等的原始数据形式,包括各数据项、记录、系、文卷的标识符、定义、类型、度量单位和值域,建立本数据库的每一幅用户视图。
3.2逻辑结构设计
说明把上述原始数据进行分解、合并后重新组织起来的数据库全局逻辑结构,包括所确定的关键字和属性、重新确定的记录结构和文卷结构、所建立的各个文卷之间的相互关系,形成本数据库的数据库管理员视图。
3.3物理结构设计
建立系统程序员视图,包括:
a.数据在内存中的安排,包括对索引区、缓冲区的设计;
b.所使用的外存设备及外存空间的组织,包括索引区、数据块的组织与划分;
c.访问数据的方式方法。
4 运用设计
4.1数据字典设计
对数据库设计中涉及到的各种项目,如数据项、记录、系、文卷、模式、子模式等一般要建立起数据字典,以说明它们的标识符、同义名及有关信息。在本节中要说明对此数据字典设计的基本考虑。
4.2安全保密设计
说明在数据库的设计中,将如何通过区分不同的访问者、不同的访问类型和不同的数据对象,进行分别对待而获得的数据库安全保密的设计考虑。
数据库设计在软件开发中的地位
1.软件设计阶段
2.指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。
3.数据库的开发与设计是软件的重要组成部分,数据库设计的好坏直接影响到系统的开发进度和功能的实现。
软件开发中有很多数据库,如何自己设计一个数据库,不是创建数据库,而是用开发语言编写一个数据库。
建议你先看些开源的数据库,简单的推荐sqlite,复杂一些的推荐postgresql,berkeley DB,理论方面建议你看看《数据库系统实现》这本书,斯坦福写的,北大翻译的。
我是看的postgresql源码,然后在里面增加一些功能,因为完整的数据库系统是很复杂的。但是写个简单的数据库系统,只包括数据的页面管理,不支持并发访问的话应该还是能够实现的,查询语言可以用lex yacc解析,执行计划定义得简单一些。
软件开发数据库的设计
你这个项目里面有几个控制点
每节课每台计算机只允许一人登录
学号登录,考勤
单学号文件上传,同名覆盖
这样,我觉得围绕这几个控制点首先要处理登录,建立学生表,要有学号和密码(密码不要也可以)
其次是开课的问题,需要教师做一个操作,某节课开始登录,并比对什么是迟到
要有一个课时表,记录是否开课,上下课时间和课程编号,这个编号很重要,后面很多地方都用。而是否开课整个表里只有当前这堂课是开的状态,别的都是关闭状态,方便程序查找。下课后教师负责关闭
有这个编号就能记录考勤
考勤表有学生学号、课程编号、计算机号和登录时间,同时可以设置辅助字段如是否缺勤、是否迟到
通过登录时间和开课时间比对,就能知道是否缺勤。而计算机号可以在登录时手工输入,也可以读取计算机的硬件信息生成
在后面是报告,因为登录时已确定学号、计算机号和课程号,这样就能进行唯一性判断,是否这台计算机上传的,是否重复登录等等都能进行控制
文件上传这个引文有了前面几个控制条件,所以很好设计了
学号、计算机号和课程号作为主键
再加上文件名和路径什么的就够了
一次实验,一个学生可能生成几条文件信息,条数就是文件数,而同名覆盖就顺理成章实现了
别的就不多说了
有没有更好的办法,考勤管理的时候不采用课程表的,这样把问题搞的复杂啦
不需要排课程,只是教师录入某一天几点开始上课,下课就关闭
如果没有这个信息,你说每堂实验课的记录就没办法采集,只能记录一节课,后面就需要清空数据才能开始下一次使用
我也觉得你们搞个实验非要这么多限制,弄得和商业软件都差不多了,有点复杂
不过想简单确实简单不了
你认为考勤只需要学号,可是没有上课时间,怎么能确定是否迟到呢?旷课倒是简单,两个表一对照就行,关键是迟到需要对比才能确认
我再给你描述一下,前面有点乱。
不需要排课程表,只需要这么一个数据表,教师后台登录时选择上课,输入上课时间,课程信息可以自动生成一个。
后面就是用这个数据,进行唯一性处理,下课时,教师选择下课,这条记录设置为关闭。不需要调用任何课程安排之类的,我觉得还不算复杂。
软件开发专业考哪些像“数据库系统工程师”,“软件设计师”在以后找工作中有用没?
这个~不好说。现在软件主要分为C系列和java系列。不过数据结构、操作系统、网络基础都是必须学的。
软件工程师就业很容易,工资也比一般专业高得多,得看你自己做的怎么样了
打算从事软件开发和数据库设计方面的工作,请问要考哪些证件比较好
什么证都不要,关键是自己能解决企业中的系统问题!有证有学历的人,很多,但能就业的就不一多了;
数据库在软件开发中的作用是什么?
(1)数据以“文件”形式可长期保存在外部存储器的磁盘上。由于计算机的应用转向信息管理,因此对文件要进行大量的查询、修改和插入等操作。
(2)数据的逻辑结构与物理结构有了区别,程序和数据分离,使数据与程序有了一定的独立性,但比较简单。数据的逻辑结构是指呈现在用户面前的数据结构形式。数据的物理结构是指数据在计算机存储设备上的实际存储结构。程度与数据之间具有“设备独立性”,即程序只需用文件名就可与数据打交道,不必关心数据的物理位置。由操作系统的文件系统提供存取方法(读/写)。
(3)文件组织已多样化。有索引文件、链接文件和直接存取文件等。但文件之间相互独立、缺乏联系。数据之间的联系需要通过程序去构造。
(4)数据不再属于某个特定的程序,可以重复使用,即数据面向应用。但是文件结构的设计仍是基于特定的用途,程序基于特定的物理结构和存取方法,因此程度与数据结构之间的依赖关系并未根本改变。
(5)用户的程序与数据可分别存放在外存储器上,各个应用程序可以共享一组数据,实现了以文件为单位的数据共享文件系统。
(6)对数据的操作以记录为单位。这是由于文件中只存储数据,不存储文件记录的结构描述信息。文件的建立、存取、查询、插入、删除、修改等操作,都要用程序来实现。
(7)数据处理方式有批处理,也有联机实时处理。
转载请注明出处51数据库 » 软件开发中的数据库设计 软件开发过程中数据库怎么设计
黑桃王