数据库课程设计.docx
《数据库课程设计.docx》由会员分享,可在线阅读,更多相关《数据库课程设计.docx(15页珍藏版)》请在冰豆网上搜索。
数据库课程设计
课程设计说明书
设计题目:
数据库课程设计
专业:
计算机科学与技术班级:
设计人:
山东科技大学
2015年07月24日
山东科技大学
课程设计任务书
计算机科学与技术专业 2013级1班
一、课程设计题目:
数据库系统课程设计
二、设计原始资料:
数据库系统概论
三、设计应解决下列各主要问题:
1、选择一种高级语言实现下列语句的功能:
CREATETABLE<表名> (<列名><数据类型>[<列完整性约束条件>][,<列名><数据类型>[<列完整性约束条件>]…][,<表完整性约束条件>])
ALTERTABLE<表名>[ADD<新列名><数据类型>[<列完整性约束>]][DROP<列完整性约束名>][MODIFY<列名><数据类型>]
四、设计说明书应有下列图纸:
1.实现界面图
2.流程图
3.功能结构图
五、命题发出日期:
2015年05月26日 设计应完成日期:
2015年07月24日
设计指导教师(签章):
2015年月日
指导教师对课程的评语
指导教师(签章):
年 月 日
摘要
本次课程设计采用C++来实现各语句的功能,即实现表的创建,
关键词:
1设计题目……………………………………………………1
1.1所选题目……………………………………………1
1.2题目要求……………………………………………1
1.3开发环境……………………………………………1
2需求分析……………………………………………2
2.1题目分析……………………………………………2
2.2功能需求分析……………………………………………4
2.3数据流程分析……………………………………………6
3设计………………………………………………………………8
3.1设计思想……………………………………………………8
3.2整体设计…………………………………………………10
3.3详细设计…………………………………………………12
1设计题目
1.1所选题目
1、选择一种高级语言实现下列语句的功能:
CREATETABLE<表名> (<列名><数据类型>[<列完整性约束条件>][,<列名><数据类型>[<列完整性约束条件>]…][,<表完整性约束条件>])
ALTERTABLE<表名>[ADD<新列名><数据类型>[<列完整性约束>]][DROP<列完整性约束名>][MODIFY<列名><数据类型>]
要求:
(1)能够以命令方式执行;
(2)能够以程序方式执行;
(3)提供课程设计报告。
1.2设计要求
(1)能够以命令方式执行;
(2)能够以程序方式执行;
(3)提供课程设计报告。
1.3开发环境
操作系统:
Windows7.0;
集成开发工具:
Codeblocks;
编译环境:
Codeblocks;
开发语言:
C++。
2需求分析
2.1题目分析
课程设计题目要求采用高级语言实现创建表,添加,修改表,删除表等功能。
根据题目要求可采用C++编程来实现题目所要实现的功能。
SQL语言使用CREATETABLE语句定义基本表,其基本格式为CREATETABLE<表名> (<列名><数据类型>[<列完整性约束条件>][,<列名><数据类型>[<列完整性约束条件>]…][,<表完整性约束条件>])建表的同时通常还要定义与该表有关的完整性约束条件,这些完整性约束条件被存入系统的数据字典中,当用户操作表中数据时由关系数据库管理系统自动检查该操作是否违背这些完整性约束条件。
所以我们所建的表应包含表名,表中应包含列名即属性名,数据类型,列完整性约束条件等。
创建表完成后,题目要求严能对表进行修改,删除,添加等,SQL语言用ALTERTABLE语句修改基本表,其一般格式为ALTERTABLE<表名>[ADD<新列名><数据类型>[<列完整性约束>]][DROP<列完整性约束名>][MODIFY<列名><数据类型>],其中表名是要修改的基本表的名,ADD子句用于增加新列即新的属性列、新的列级完整性约束条件;DROP子句用于删除表中的列完整性约束名;而MODIFY子句则用于修改表中的数据类型。
题目要求要能够以命令方式执行,即用户输入一条SQL语言中的CREATETABLE语句或ALTERTABLE语句,程序系统能够自动识别该语句所应执行的功能。
以程序方式运行是将实现的程序源码做成可执行文件,脱离编程语言环境,自动运行。
用户可直接在可执行文件中输入SQL命令,系统自动识别该命令,完成各项操作。
2.2功能需求分析
题目要求创建一个表,并且实现在表中添加,删除,修改等功能。
2.2.1录入功能
(1)创建功能
根据题目要求创建一个表,则需创建的表包含表名,表的内容还有属性名,属性类型以及完整性约束条件等。
采用C++语言来完成对新表的创建。
(2)修改功能
根据题目要求在所创建的表中实现对表的添加,删除,修改等功能。
其中添加功能应包含对一个新表的添加,即创建一个新表以及在表中添加新的属性。
而删除功能则是用于删除完整约束性约束条件。
修改功能即应该做到能修改属性类型。
(3)保存功能
将所创建的表存到文件中方便用户查找过去所建的表。
(4)读取功能
打开程序,要求能做到读取文件,即读取一个表,然后可直接对表进行添加,删除,修改等功能。
2.2.2识别功能
程序自动识别输入命令是否匹配,以及获取匹配规则中定义的其他功能,该命令所要求执行哪个功能。
读取当前命令,命令结束后可继续输入下一个命令,循环执行以上步骤。
2.2.3显示功能
一个良好的程序需要有一个简介清晰的界面,打开可执行性文件首页应有一个整体的界面,引导用户进行一下步。
每输入一条命令,应能显示出其正确与否以及显示提示用户可使用的功能,输入的命令方式。
当用户输入命令错误时,可显示提醒用户该命令输入错误,要求其重新输入正确的命令。
2.3数据流程分析
图2.3数据流图
根据图2.3数据流图所示,当程序开始运行时,输入一条命令,输入后程序自动识别该命令格式是否正确,不正确则返回,重新输入一条命令,继续判断。
通过对语句进行语法解析,分离关键字,正确则判断该命令所要求的执行功能,这些功能包括创建表,修改表,读取文件等。
若判断该命令要求要创建一个表,根据程序所提醒的步骤依次输入表中所包含的内容,创建完毕后,该表自动存储到文件中;若该命令要求修改已存在的表,判断应具体做怎么样的修改操作,操作包括有:
ADD添加新属性列、DROP删除约束条件以及MODIFY修改数据类型等。
不同的操作所得到的结果是不同的,每进行一项操作完成后,依然自动将结果存储在文件;若命令要求读取已存在的表,根据所输入的命令判断所读取的是哪个表,将该表的全部信息显示出来。
操作全部完毕结束后,退出该程序。
3设计
3.1设计思想
该课程设计主要要完成的任务是创建表以及修改,添加,删除表中的内容,因此程序中包含五个可选项“创建新表”,“添加新属性”,“删除约束条件”,“修改属性类型”,以及“退出”来退出程序。
另外,还需要将建立好的表储存在文件中。
为了方便查看,当创建表完成或对表进行任何修改完成后,不需人工输入命令查看该表,而是自动将表的所有信息显示出来,方便用户查看表的信息。
(1)、创建表:
在创建一个新表时,若表名已经存在,则显示表已经存在,若表不存在则继续执行以下命令。
根据提示输入命令,输入列名即属性名,属性类型以及约束条件,根据所输入的命令判断,若创建表命令格式错误,即显示创建失败,并要求重新输入命令;再输入数据类型,输入完以上信息,则继续输入该属性的列完整性约束条件,根据表中属性要求判断选择该属性是否为primarykey,或者为unique,或者不为空以及其他约束条件,当列完整性约束条件输入完成后,程序可自动判断该命令是否正确,若该命令是正确的,则表明该属性添加成功。
如果还要继续输入添加新的属性,则用户可按照上述步骤继续再依次输入命令,完成属性的添加;如果没有新的属性要输入添加,则表明创建表已经完成,表的创建结束,将表的全部信息显示出来。
(2)、存储表:
在创建表完成后,将表存储在文件中,我采用的是将所有表的信息都存储在一个文件当中。
(3)、修改表:
读取一个表,根据要求对该表进行修改,可修改操作有:
添加新属性,删除完整性约束条件以及修改数据类型。
(3.1)添加新属性:
若输入的命令要求添加新的属性,则类似于上述创建表时添加属性的步骤,依次输入属性名,属性类型以及属性的完整性约束条件,输入后同样需要检查其正确性,检查过程也如建表时类似。
若输入的命令不正确,添加新属性失败;若正确,则成功。
(3.2)删除约束条件:
若输入命令要求要删除约束条件,则输入命令对约束条件进行删除,输入完成后检查其正确性,若命令正确,则删除成功,若命令不正确,删除失败。
(3.3)修改属性类型:
若输入命令要求的是修改属性类型,则判断需要选择修改哪个属性的类型,输入之后程序自动进行判断。
若输入不正确(可能是输入命令格式错误,也可能是无改属性等),则显示错误,重新输入其他命令;若输入的命令正确,则显示修改成功。
3.2整体设计
图3.2程序的功能结构图
如图3.2程序的功能结构图所示,以图框形式简单的表示出该系统的关键环节。
将程序系统功能就行分解,按功能从属关系表示,分解为多个功能较单一的模块:
该程序先分为四个模块,分别是“创建表”模块,“修改表”模块,“存储表到文件”模块以及“读取文件”模块。
再将“修改表”模块划分为3个小模块,分别为“添加新属性”、“删除约束条件”、“修改属性类型”这3个模块,清晰地表示出该程序应编写哪些部分。
各模块具有相对独立性,可以分别加以设计实现,另一方面,模块之间还具有相互关系(如信息交换、调用关系)。
各模块在这些关系的约束下共同构成统一的整体,完成系统的各项功能。
利用划分功能结构图,可以更加明确体现内部组织关系,更加清晰的理清内部逻辑关系,做到一目了然规范各自功能部分,使之条理化。
3.3详细设计
图3.3程序流程图
打开程序界面,界面显示如下:
图4.1、程序首页图
根据需要,如若需要查看实例输入a,输入结果如下图4.2所示:
图4.2、实例查看图
如果无需查看实例直接输入SQL语句,则输入b,结果如图4.3
图4.3
接下来正式开始输入SQL语句,完成各项功能,首先建立一个新的表。
例如:
createtablestudent
(snocharprimarykey,
snamecharunique,
ssexchar,
sdeptcharnotnull
);
改命令所得到的结果如下图4.4所示:
图4.4、创建表图
接下来对表进行修改,若要添加新的属性,例如输入:
altertabletudentadddatecharnotnull;结果如下图4.5所示:
图4.5、添加属性图
如果对表中的属性类型进行修改,例如修改输入为:
Altertablestudentmodifyssexint;结果如图4.6所示:
图4.6修改属性类型图
如果要删除表中的列完整性约束条件,例如输入命令为:
Altertablestudentdropunique;结果如图4.7所示:
图4.7删除约束条件图
如果已经没有需要执行的功能,则可输入:
exit退出程序:
如图4.8所示:
图4.8退出程序
程序执行完毕。