实验四-数据库设计

时间:2024.4.20

实验四 数据库设计与实现

一、实验目的

综合运用各章的知识,完成小型数据库系统底层的全面设计,初步掌握数据库系统开发的基本方法。

以一个具体的应用为背景,完成数据库系统的设计,添加一定的数据到设计出的表中,使用添加、修改、删除和查询语句等,能将所学运用到设计中,并设计系统界面。

二、实验内容

1、需求分析,给出数据库应用系统的功能结构图、业务流程图、数据流程图、数据字典;

2、概念模型设计:画出E-R图

3、逻辑模型设计:将ER图转换为关系,建立数据库表,设置实体完整性、域完整性和参照完整性。

3、物理模型设计

4、数据库运行:功能模块开发,能够实现数据库连接、查询、增加、修改、删除等功能。

实验步骤(略)

设计题目推荐(不局限于此)

(1)       成绩查询系统

(2)       图书借阅系统

(3)       BBS系统

(4)       宿舍管理系统

(5)       电子商务系统

(6)       新生注册系统

(7)       学生管理系统

(8)       档案管理系统


通过ODBC访问数据库

实验步骤:

要通过ODBC访问数据库,前提是必须配置好DSN。在Windows NT/2000中,DSN允许用户以适当的权限通过网络连接制定的数据库。可以分为三种类型:

①用户DSN(User DSN):只能以指定的用户安全身份证明(用户名和密码)连接指定的数据库。

②系统DSN(System DSN):所有用户都能够连接指定的数据库。

③文件DSN(File DSN):将连接的情况存储在一个文件中,只有对该文件由访问权限的用户才能够连接指定的数据库。

用户DSN和系统DSN信息存放在Windows的注册表中。在网络上,若为了让所有用户通过ODBC访问数据库,则需要创建系统DSN。

下面以学生信息数据库Student为例,介绍建立ODBC数据源的步骤:

Step1:单击开始|设置|控制面板(或双击桌面上“我的电脑”图标,并双击随之出现的“控制面板”图标),出现“控制面板”对话框。

Step2:双击“管理工具”图标,出现“管理工具”对话框。

Step3:双击“数据源(ODBC)”图标,出现“ODBC数据源管理器”对话框。选择“系统DSN”选项卡,进入设置系统DSN的操作界面。在该窗口的“系统数据源”列表框中显示该系统中已安装的ODBC数据源的有关信息。当要建立的数据源不存在时,就可以单击“添加”按钮添加需要的数据源;也可以用鼠标选中一个数据源后按“配置”按钮,对已存在的数据源进行重新配置。

Step4: 单击“添加”按钮,将出现“创建新数据源”对话框。

Step5:选择列表框中的SQL Server项,然后单击完成按钮,出现 “建立新的数据源到SQL Server”对话框。在“名称”一栏中为数据源设置一个名称(DSN);“说明”一栏中可以对数据源进行说明,也可省略;在“服务器”下拉列表框中选择或者键入SQL Server数据库服务器的名称。注意:必须确保在本地或与之相连的网络中存在着可以连接的SQL Server服务器,才能建立SQL Server数据源,否则,在其后的连接中将出现错误。

Step6:单击“下一步”按钮,出现 “建立新的数据源到SQL Server”对话框。选择一种验证方式,输入相应的登录ID和密码完成认证。

Step7: 单击“下一步”按钮,如果SQL数据库连接失败,系统将给出相关出错信息,根据出错信息的内容,检查SQL服务器是否存在或相关参数是否设置正确。如果通过,系统将出现 “建立新的数据源到SQL Server”对话框,通过“改变默认的数据库为”下拉列表框,设置要连接的默认数据库,并选择适当的ANSI标识。

Step8: 单击“下一步”按钮,出现 “建立新的数据源到SQL Server”对话框,选择一种字符转换方式,设置好日志文件的存储文件。在该对话框中一般采用系统的默认设置即可。

 

Step9:单击完成按钮,出现 “ODBC Microsoft SQL Server安装”对话框,给出了配置该DSN所使用的参数。

Step10:单击“测试数据源”按钮,测试数据源连接是否正确。如果DSN创建正确,则得到图12所示的“SQL Server ODBC数据源测试”的测试成功对话框。

Step11:单击“确定”按钮关闭测试结果对话框。最后单击“确定”按钮,完成SQL Server数据源的建立工作,系统返回“ODBC数据源管理器”对话框,但“系统数据源”的列表框中以增加了一个名为“Student”的数据源。


第二篇:第四讲数据库应用程序实例设计(下)


第四讲数据库应用程序实例设计(下)

在上一讲中我们已经将程序方案设计出来,包括程序要具备的功能及数据库结构,本讲将进行其余的几步工作,让我们接着来吧。

一、编写初步程序流程

关于编写程序流程这个问题,可能对高手来说不屑一顾,直接上机写程序就行了,无需先写个什么程序流程之类的。不过心铃认为,对于功能比较简单的软件可以直接写程序,而对于复杂一些的软件,最好还是先写一个流程,写流程的目的主要是把要实现的功能细化一下,在写程序之前仔细考虑一个大纲,这样以后写起程序来会有系统、有条理。那么接下来我们根据本软件要实现的功能来写程序流程。由于篇幅所限,心铃不采用流程图的形式来写,也不能写的很详细。程序流程应该按功能单独写。

员工录入功能。采用DbEdit或Edit输入数据,心铃喜欢用EDIT及COMBOBOX组件。部门名称采用让用户选择的方式,自动显示部门编号。用户输入姓名后要自动显示姓名的拼音首字母,并允许用户修改,因为对多音字电脑无法知道在中该读哪个音。性别让用户选择,有规格的劳保用品让用户选择规格,考虑男式女式,在保存记录时检测用户是否将一些关键信息如部门、姓名、员工代码、工种等录入了,若为空则给出警告信息并拒绝保存等。保存后根据员工工种自动给出一个初始劳保用品发放记录,让用户根据实际情况进行适当修改等。

劳保发放。让用户选择部门,输入本次发放日期,然后在发放记录中逐个查找此部门的员工发放记录,根据上次发放日期和本次发放日期时间差和发放周期计算是否应该发及该发数量,对于有规格的劳保用品则到员工信息表中查询规格,并将这些信息保存了一个临时表中,然后汇总计算。从这里看出,我们还需要一个临时表。以后我们再讲这个临时表应该有什么的结构。计算所有单位劳保用品的一个总汇总数据;考虑是否会重复发放;发放记录输出到文件,打印等。

员工工种改变。让用户输入新、老工种的代码,先查询原工种的劳保用品发放情况,并让用户做必要记录,然后删除原工种发放记录,到工种劳保用品库中查询新工种对应的劳保用品及发放周期,生成一个新的初始发放记录并允许用户根据实际情况调整。

发放记录查询。让用户选择部门,从发放记录中查询到所有本部门员工的发放记录。对单个员工的发放记录查询,让用户输入姓名拼音,由于存在姓名重复问题,如果没有重复直接查询发放记录,如果有重复则列出所有相同名字的员工,用户可逐个查看,这里就需要同时显示员工基本信息和发放记录,通过单位、性别等其他信息判断重名的几名员工中哪个是所要查询的。

员工信息修改及删除。输入姓名或员工编号,如果有相同名字的员工要按上面的办法处理,查询出员工基本信息后供用户修改,同时考虑到一些特殊之处,提示用户工种不可在此修改,因为这些信息在发放记录中也存在,在上面的功能中实现。部门名称修改同时也要将发放记录中的部门编号进行修改。删除员工要把此员工的所有发放记录也全部删除,以防留

下垃圾数据。

劳保用品发放周期修改。让用户输入工种、劳保用品名称、新的发放周期,修改工种劳保用品库中的发放周期,同时将发放记录中所有属于此工种、此种劳保用品的员工的发放记录全部修改。

增加和删除劳保用品。增加:要先在工种劳保对应表中增加一条记录,让用户输入工种、新增劳保名称和发放初始时间,为所有此工种的员工的增加此劳保用品的发放记录,由于是新增劳保用品,故初始发放时间应该都是一样的。删除:和上面类似,删除工种劳保用品数据表中的对应记录和发放记录中所有符合条件的员工记录即可。

删除工种。要删除工种劳保用品对应数据表中所有此工种的对应记录,并删除发放记录中所有符合条件的记录。一般说来这种情况较少发生,原此工种的员工都转为别的工种。

增加工种。根据公司规定,在工种劳保用品对应数据表中添加新工种及对应的劳保名称及发放周期,应该在录入员工或有员工工种更换为此工种前进行。

工种改名。这里的工种改名并不改变工种编号,让用户输入原工种名和新工种名,修改工种数据表。

劳保用品改名。让用户输入原劳保名称和新劳保名称,修改工种劳保用品对应数据表中的记录,同时将所有发放记录中的原劳保名称改为新劳保名称。

部门名称修改。这里不改变部门编号,所以无需修改发放记录。让用户输入原部门名称和新部门名称,修改部门名称数据表。

部门合并。将被合并部门的所有员工基本信息中的部门名称和代码修改为要合并到的部门名称和代码,同时修改所有发放记录中的部门代码,这里没有名称。

数据库管理。对ACCESS库利用DAO引擎提供修复、压缩功能,让用户输入备份路径进行数据库备份;让用户输入备份路径后还原数据库;考虑缺省备份路径。

帮助信息。写成CHM文件最好,现在比较流行,在软件完成后编写。

二、准备资料

首先我们要准备的是用户提供的资料,就本程序而言,大家应该知道用户必须提供的就是不同工种对应的劳保用品名称和发放周期的资料,拿到此资料后如果已经建立了数据库可以将此资料直接录入。

其次,准备编程资料,下面从程序流程来分析一下吧。在录入功能中,要实现汉字拼音首字母的提取,需要一个模块,心铃在原来编程时已写了一个单元文件专门处理此事,现在把它找出来。数据库管理中的修复、压缩功能,自己写起来麻烦一些,心铃找到一个有源码的组件单元来实现。关于打印,心铃不喜欢用QuickReport,于是到网上找了一圈,找到了一个免费组件,用于打印DBGrid等内容,可满足需要。数据库备份中会用到文件拷贝功能,心铃找到了一个组件用来完成此功能,虽然自己写也可以,但要处理各种异常比较麻烦,还

是重分利用现有资源效率高。充分使用现有组件可以提高程序编写效率,但也有一定缺点,那就是人可能变懒惰了,所以适可而止吧。使用别人的组件可能会有一定风险,如存在的BUG等,为了便于调试和发现问题,心铃写程序用组件的原则是只用有源码的组件,这样即使出现问题也可跟踪找原因。

另外,准备一些收集的数据库编程方面的电子版资料和手头能找到的、估计程序中能用到的报刊杂志等资料,备在案头,方便及时查阅、参考。

三、设计初步界面。

在上面的工作做完之后,可以在纸上勾画一下大致程序界面了。心铃不太喜欢MDI介面,又不想每个功能都打开一个窗口,所以采用的是PageControl组件,在每个页面上实现一组功能,用户使用中切换很方便。在每个页面上,根据所要实现的功能、空间和要显示的数据,将大概用到的标签、文本框、按钮、数据表格等组件排列一下,尽量做到整齐、使用方便等,这类应用程序界面最好不要象一些小工具软件那样使用奇形怪状的界面。

界面在实际的编写过程还会有许多变动,所以这里只能勾画一个大致轮廓,高手可以直接在编写程序时设计界面。由于界面的设计也是一个比较化时间的工作,所以事先有个轮廓应该能为以后的设计节约一些时间。

四、分析难点和解决方案。

分析难点和解决方案是为了能提高程序的编写效率,高手也许不需要了。就本程序而言,虽然从前面功能及流程来看,比较复杂,但难度不是太大。事实上,一般来说,除了功能很复杂的程序外,难点不会很多,之所以有时侯写的很费劲,只能说明自己的编程水平还需提高。就本程序,心铃分析了难点和解决方案,下面简单说明一下。

由于员工编号和部门编号心铃采用的是由数字组成的字符串,所以需要对此给予检测,虽然不是很困难,但心铃并不能马上写出代码,所以还是找点资料,在空白窗体上放置一个EDIT组件写代码验证,在OnChange事件中对输入的字符过滤,通过后,将代码保存备用。对用户在文本框中输入的发放日期,由于在EDIT组件中是当做字符串来处理的,所以要考虑如何检测输入的字符串是合法的日期。为了避免千年虫问题,应该要求输入的日期中年份为四位,也就存在对输入的即使合法的日期也要如何检测年份是否是4位的问题;还有将两个日期的差值换算为多少个月的问题,这些有关日期方面问题的心铃都认为是难点,化了些时间都解决了,当然有些问题读者可能有更高明的解决办法如用MASKEDIT组件解决输入格式问题等,心铃在这里没有使用,却可以多学一点东西。另外,从流程分析,对数据库操作了解的悉读者可能都会感到SQL语句一定会用到许多,其中有查询、删除、更新等操作,心铃便将有关SQL语法找来熟悉一下并找个数据库验证,做到心中有数。对于在上面提到的第三方组件,由于以前没用过,所以也视为难点,要研究怎么安装,安装后要进行使用验证,看看有没有什么问题等等。总之,找出难点并都找到了解决方案。

到此为止,心铃用了接近两讲的篇幅,为大家讲解如何来进行程序编写前的工作,有的读者可能感到有点烦琐了吧。不过心铃认为,对于初学数据库编程者来说应该是很有益处的,心铃喜欢讲思路,告诉大家怎么去考虑问题,比单单给大家写出结果或代码要好吧。心铃在后续的讲座中也将本着这个思想,希望大家能喜欢这种风格。接下来我们就开始进入关键的

一步,写程序!不过大家可要耐着性子呀,心铃在第一讲中已经说了,由于在程序中要穿插讲解数据库组件及其他有关内容,所以写程序的战线要拉得比较长。

要写程序了,先应该做点什么呢?当然应该先设计界面了。心铃对设计界面不内行,设计的界面有点土,还好本讲座不是讲界面设计的,对界面有研究的读者可自己精心设计,心铃建议大家多看看流行软件的界面风格,多学习,取长补短,吸取别人精华,设计出自己的风格。心铃首先设计了三个窗体,一个为主窗体,其中有一个菜单栏,只有三个菜单项,但菜单项并没有子菜单,其实就相当于两个按钮,一个是“进入系统”,第二个是“数据维护”,第三个是“关于”。从流行的方式来看,“帮助”应该做到菜单中,但心铃为本程序只写了简单的帮助,没有写成单独的文件,就用了一个PageCtrol的页面,直接写在上面了,优点是查看帮助非常方便。第二个窗体是用来完成各种功能的,从功能上来说应该是主窗体,但在delphi中主窗体不是这个意思哟。另外两个分别是“数据维护”和“关于”窗体,以后再详细介绍。

既然作为主窗体,除了三个菜单项外,总得还有点什么吧。心铃在上放置了两个图片组件,制做了一幅软件名称图片,下面还有那么多空间呢,另一副图片就大一点充满剩余空间,选择了一幅蓝天、白云、雪山、绿草的风景画放上,给我的同事领领略一下大自然风光!下面是主界面图,见图4-1,不满意也别说呀,给留个面子!心铃将主窗体设计成了不可改变大小,右上角只有一个关闭按钮的窗体,你应该会做吧。

我们来简单研究一下主窗体。除了两个图片组件外,重要的就是菜单组件了。在窗体中放置一个MainMenu,双击后就可以设计菜单项和子菜单了,这个就不用详细说了吧。在设计菜单时,可能有的初学者读者会碰到一点小问题,就是在设计后发现Delphi自动为菜单项和子菜单增加快捷键,带下划线的X、Y、Z之类。心铃告诉大家这个小技巧:在设计菜单界面中,有AutoHotKeys属性,将其设定为maManual会不管用,因为这里操作的对象是Menuitem,只在这里设定了AutoHotKeys属性还不行,退出菜单设计界面,会发现MainMenu1自身还有一个AutoHotKeys属性,将此属性也设定为maManual就可以了。

设计好我们的菜单后,双击菜单项“关于”,写本程序的第一行代码:form2.showModal; 此行代码用于打开“关于”窗体。心铃解释一下“showModal”这个窗体的方法,此方法一般用在显示一些系统信息和关于软件的信息等窗口中,用此方法打开的窗口不允许用户转移焦点,即不允许激活本系统的其他窗体,直到本窗口关闭为止!双击菜单项“进入系统”,写本程序的第二行代码:form3.show;就是打开我们最重要的窗口了,以后再讲此最重要的窗口。双击菜单项“数据维护”,写代码如下:form4.show,这里打开的是用户数据库整理、备份等的窗口。

对于主窗体,我们还有什么工作要做吗?可以不做了,但有些影响程序以后操作的一些全局代码还是写在这里比较好,我们先写两句。前面我们提到,为防止千年虫问题,应该使用四位年份,这里我们用代码来实现,将下面的两行代码写在窗体的ONSHOW事件中或ONCREATE事件中都可以:

DateSeparator := '-';

ShortDateFormat:='yyyy-mm-dd';

第一句强制使用“—“作为分隔符,第二行强制使用四位年份并且采用年—月—日这种符合国人习惯的日期显示格式。

下一讲再讲主窗体中放置的另一个组件。

图4-1 本程序主界面

更多相关推荐:
数据库设计实验报告

HEFEIUNIVERSITY数据库设计报告题目产品销售系统系别电子信息与电气工程系班级09级电气信息类5班学号0905075034姓名黄张祥指导老师方小红完成时间20xx510目录1问题描述311背景312数...

数据库设计 实验报告

武夷学院实验报告课程名称管理信息系统项目名称数据库设计姓名苏松仑专业12级物流管理班级2班学号20xx42120xx同组成员20xx42120xx20xx42120xx1注1实验准备部分包括实验环境准备和实验所...

数据库实验报告

西安科技大学数据库原理及应用课程设计报告题目寄宿学校管理信息系统的设计与实现学院计算机科学与技术学院专业及班级软件工程1202及1203班学号120xx10206120xx10207120xx10303姓名李倩...

数据库应用系统设计实验报告

计算机与信息工程系数据库应用系统设计实验报告专业计算机科学与技术班级计科072班学号姓名指导老师实验一数据库应用系统设计入门一实验目的与要求通过一个简单程序示例熟悉ADONET编程入门二实验环境1Windows...

数据库项目设计实验报告

数据库项目设计实验报告项目名称人力资源管理系统项目需求为了处理公司人事资料可以完成对人事资料进行查询修改增加删除及存储并能快速准确的完成档案资料的统计和汇总工作并可输出报表人力资源管理系统主要用于员工个人资料的...

数据库课程设计实验报告1

数据库课程设计学生成绩管理系统一系统定义二需求分析一系统综合需求二功能需求三数据需求1数据流图2数据字典三系统设计一逻辑结构设计二概念结构设计ER图四详细设计一开发平台及工具二数据库分析五源程序清单六设计心得一...

数据库系统设计实验报告

数据库系统设计实验报告课程数据库系统原理与应用姓名沈凯丽专业测绘工程121班学号20xx18080109指导老师张茂震实验一数据库系统设计一实验目的掌握数据库设计的基本技术熟悉数据库设计的每个步骤中的任务和实施...

数据库系统设计上机实验报告

数据库系统设计上机实验报告院系人文经管学院专业信息管理和信息系统上机实习报告目录一上机实验报告简介21上机实验时间安排22上机实验地点23上机实验情况介绍2二上机实验操作内容21操作对象22学生数据库的创建33...

数据库实验报告

实验报告课程名称设计题目专业学生姓名房庆辉学号指导教师一引言目前随着科技的发展媒体教学和网络的应用越来越广泛针对于此红河学院配置了计算机教室但是还缺少一种机房管理系统所以对此我设计了此机房管理系统二可行性分析1...

数据库实验报告

数据库原理课程设计课程设计任务书一目的与要求1本实验是为网络工程信息安全等专业的学生在学习数据库原理后为培养更好的解决问题和实际动手能力而设置的实践环节通过这个环节使学生具备应用数据库原理对数据库系统进行设计的...

数据库课程设计实验报告3

数据库课程设计报告课程设计题目:学分管理系统专业:网络工程班级:**学号:***20**年12月1日学分管理系统数据库课程设计实验时间:20**.11.28-20**.12.01实验地点:软件楼501室实验目的…

学生成绩管理系统数据库设计实验报告

学生成绩管理系统数据库课题雇员信息管理系统姓名学号同组姓名专业班级指导教师设计时间20xx年6月4号20xx年6月10日一需求分析阶段1信息需求对学校而言学生成绩管理系统是所有工作的首要之选但是高校学生的成绩管...

数据库设计实验报告(25篇)