大型数据库技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《大型数据库技术》课程设计报告
(2010— 2011学年第 2 学期)
题目:数据导出系统
专业:信息与计算科学
班级:08级(1)班
姓名学号:林伟平 0810012117
张发双 0810012112
林麟祥 0810012128
指导教师:王琰
成绩:
数理系
年月日
数据库导出系统设计
一、设计目的
大型数据库课程设计是信计专业所开设的一门重要实践课程,主要要求学生掌握数据库技术原理和技术在实践中的应用。本课程设计的目的是:
(1)在理论学习的基础上,动手编写程序,通过应用所学习的知识,来解决一些实际数据存储和数据处理问题。
(2)真正理解和掌握数据库存储的相关理论,具备程序设计的能力。
(3)培养学生正确的设计思想,理论联系实际的工作作风,严肃认真,实事求是的科学态度和勇于探索的创新精神,充分发挥学生的主观能动性和老师的因材施
教、严格要求相结合。培养学生综合运用所学知识与生产实践经验、分析和解
决工程技术问题的能力。
(4)分组的形式,培养同学们的团队合作意识,分工合作意识。
二、设计内容
1 基本内容
设计一个数据导出系统,将数据库中的数据导出到文本文件(txt)中,以便在不同的数据库管理系统之间传递。
2 基本要求
(1)界面可以是B/S模式,也可以是C/S模式,编码语言任选,可以是C,也可以是Java,或ASP、JSP等;
(2)允许多个用户同时使用数据导出系统
(3)允许用户配置数据库所在机器信息(例如JDBC需要配置机器名,数据库管理系统品牌(Oracle或MS SQLServer等),数据库用户名和密码)
(4)允许用户配置需导出表的名称,导出的列名和导出的行(例如被导出的行需要满足哪些过滤条件);
(5)允许用户配置导出的文件名和导出文件所在位置;
(6)允许用户查看已有的导出文件,以及该文件的信息(例如对应表名、对应列名、过滤条件和导出时间)
(7)允许用户户用表格的方式查看文件中的内容
(8)系统必须能应对下列情况:导出列中有一列的类型是字符串类型,且某个导出
行在该列上值包含半角单引号、双引号、反斜杠、斜杠等符号。
(9)果导出的时间过久,允许用户取消本次命令,且不影响正确性。
(10)用户将已导出文件导入到另一个MS SQLServer数据库
三、总体设计
1、界面运用java语言进行编码,JDBC实现数据库的链接。
2、数据先存入数据库,再导出到txt,经txt保存,可进行查看
3、系统运行时,首先显示主界面,在主界面上可以实现以下功能:
(1)允许用户配置数据库所在机器信息(例如JDBC需要配置机器名,数据库管理系统品牌(Oracle或MS SQLServer等),数据库用户名和密码)(2)允许用户配置需导出表的名称,导出的列名和导出的行(例如被导出的行需要满足哪些过滤条件)
(3 ) 允许用户配置导出的文件名和导出文件所在位置
(4)允许用户查看已有的导出文件,以及该文件的信息(例如对应表名、对应列名、过滤条件和导出时间)
(5)允许用户户用表格的方式查看文件中的内容
四、软件设计
本设计通过软件编程使8253输出定时信号申请中断,CPU发出命令由8255的下C口输出脉宽信号来控制步进电机的走步。电机的转动和停止则是通过8255的A0端子输出高低电平来继续或暂停8253的计数从而控制中断申请来实现的。8253的定时时间决定了电机转动的快慢。相对简单的硬件电路,使软件设计成为本设计课题的中心内容。
1、设计思路
控制系统分五个功能模块,分别是转速设置、转向设置、固定步数转动、连续转动、退出系统,在前四个功能块中都设置了ESC键来取消或暂停执行当前操作。程序中同时提供五个操作界面,一个主菜单和四个子菜单界面,进行可视控制。
(1)转速设置
根据赋给计数器的计数初值,我们可以计算出步进电机各相脉宽信号的频率和电机转速,也可以反过来根据对电机转速要求,计算并调整计算初值。
这里采用的是8253的0号计数器和方波产生方式,输入时钟为f=46875hz,设计数初值为n,要求转速为0.25转/秒,对四相步进电机而言即为5步/秒,则有:
f / n = 5
n=f/5=46875/5=9375
反过来,当计数器初值确定时,决定了电机的转速,如计数初值为0时,有电机转速为1步每秒(本设计中最慢速度);当计数初值为125时,电机转速为375步每秒(本设计中最快速度)。具体设置初值及转速见表2。
表2
步速转速按键计数初值
1 0.05 F1 46875
3 0.15 F2 15625
5 0.25 F3 9375
15 0.75 F4 3125
25 1.25 F5 1875
75 3.75 F6 625
125 6.25 F7 375
375 18.75 F8 125
(2)转向设置
在内存单元中设置一方向标志FLAG1,假设FLAG1为0时为顺时针转向,则当设置FLAG1不为0时即可使电机转逆时针转动。判断操作在中断子程序中进行。
(3)连续转动设置
在此功能模块中,通过让8255的A0口输出高电平到8253的GATE0使其0号计数器继续工作(平常时A0口为低电平使8253的0号计数器暂停计数),并开放中断进入循环等待中断状态,在等待状态中若有键盘的‘ESC’键按下,则认为暂停要求而关闭中断和暂停8253计数回到主菜单。需要继续原转向原速度运行,再选择此功能模块即可。
(4)固定步数转动设置
通过键盘输入0到999的十进制值来设定转动步数。判断已转步数即中断次数是这样实现的,设置一内存单元FLAG0,中断时在中断子程序中求反,而在循环等待中断的程序中判断其有无变化,无变化继续循环,有变化则使计数寄存器CX减1后继续循环,当CX=0时退出等待中断状态,并关中断和暂停8253计数。在这个等待程序中也判断键盘有无ESC 键按下,若有则认为暂停要求而退出。
(6)中断子程序
在中断子程序中,将值为11001100B的内存单元循环左移或右移一位,通过8255的下C口输出低四位,控制步进电机的相序变化,从而使电机连续转动。左移或右移将使电机顺时针或逆时针转动,它由标志FLAG1来决定。
(7)菜单界面设置
利用DOS下的BIOS功能调用,设计出简单而易于操作的界面,详细设计特点请参考程序清单。
2、程序流程图
(1)主程序框图如图2
图3 中断服务子程序框图图2 主程序框图