数据库课程设计-柳汝滕

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1山东科技大学课程设计任务书软件工程专业2011级2班一、课程设计题目:数据库系统课程设计二、设计原始资料:数据库系统概论三、设计应解决下列各主要问题:1.选择一种高级语言实现下列语句的功能:CREATETABLE表名(列名数据类型[列完整性约束条件][,列名数据类型[列完整性约束条件]…][,表完整性约束条件])ALTERTABLE表名[ADD新列名数据类型[列完整性约束]][DROP列完整性约束名][MODIFY列名数据类型]四、设计说明书应有下列图纸:1.实现界面图2.流程图3.功能结构图五、命题发出日期:2013年03月27日设计应完成日期:2013年06月21日设计指导教师(签章):系主任(签章):2指导教师对课程的评语指导教师(签章):年月日1摘要本课程设计实现的是用C++实现SQL语句中的CREATETABLE以及ALTERTABLE的命令的部分功能。实现过程通过编写若干个函数一次实现了命令识别、命令格式化、命令分解、命令判断对错等功能。对于表的结构,定义了相应的Table类,以及Column类,分别表示表的内容以及表中每列的结构。由于水平有限,本次设计没有定义表级完整性约束,仅仅定义了列的完整性约束条件PRIMARYKEY以及UNIQUE代表部分列完整性约束,其他约束条件基本类似,没有做过多定义。对于每个元组中的各数据类型定义了四类INT、DOUBLE、CHAR、CHAR(n)。由于表的元组个数是不固定的,使用了vector来定义一个Column向量,实现了可以无限添加表的长度。同时由于vector的使用增加了存储文件的难度,重写了写入文件的操作,实现了文件的任意存储。对于命令的识别过程,使用string的相关操作,避免了使用char*会产生的指针操作的复杂性。通过适当的替换将命令分解为由若干空格分隔的词组。每次识别一个词组,可以方便的识别与存储相关操作。借鉴了Java的编程规范,使得整体的设计显得简洁,避免了指针操作容易产生的错误,同时更容易理解设计的具体操作。关键字:vector;类;命令识别;C++;数据字典2目录1.设计题目...........................................................................................................................11.1所选题目.......................................................................................................................11.2设计要求......................................................................................................................11.3开发环境......................................................................................................................12.需求分析...........................................................................................................................22.1题目分析.......................................................................................................................22.2功能需求分析...............................................................................................................22.3数据流程分析...............................................................................................................33.设计......................................................................................................................................43.1设计思想......................................................................................................................43.2整体设计......................................................................................................................43.3详细设计......................................................................................................................54.实现......................................................................................................................................64.1基本界面......................................................................................................................64.2输入建表命令..............................................................................................................64.3修改语句......................................................................................................................75.总结......................................................................................................................................86.参考文献..............................................................................................................................9附录.......................................................................................................................................1011.设计题目1.1所选题目1.选择一种高级语言实现下列语句的功能:CREATETABLE表名(列名数据类型[列完整性约束条件][,列名数据类型[列完整性约束条件]…][,表完整性约束条件])ALTERTABLE表名[ADD新列名数据类型[列完整性约束]][DROP列完整性约束名][MODIFY列名数据类型]1.2设计要求(1)能够以命令方式执行;(2)能够以程序方式执行;(3)提供课程设计报告。1.3开发环境操作系统:Windows7;集成开发工具:Code::Blocks10.05;开发语言:C/C++。22.需求分析2.1题目分析脱离已有数据库环境,采用C++实现SQL语言中的CREATETABLE以及ALTERTABLE中的如下功能。CREATETABLE表名(列名数据类型[列完整性约束条件][,列名数据类型[列完整性约束条件]…][,表完整性约束条件])ALTERTABLE表名[ADD新列名数据类型[列完整性约束]][DROP列完整性约束名][MODIFY列名数据类型]例:(1)建立一个课程表Cno:课程编号;Cname:课程名;Ccredit:学分。CREATETABLECourse(CnoDOUBLEPRIMARYKEY,CnameCHAR(40),CcreditINT);系统执行上面的CREATETABLE语句后,就在数据库中建立一个新的空“课程”表“Course”,并将有关“课程”表的定义及有关约束条件存放在数据字典中。(2)修改基本表修改“Course”表,增加“学时”列,其数据类型为整型。ALTERTABLECourseADDCtimeINT;2.2功能需求分析用CREATETABLE语句创建基本表:建表的同时定义与该表有关的完整性约束条件,并将这些完整性约束条件存入到系统的数据字典里。3用ALTERTABLE语句修改基本表:ADD子句用于增加新列和新的完整性约束条件,DROP子句用于删除指定的完整性约束条件,MODIFY子句用于修改原有的列定义,包括修改列名和数据类型。2.3数据流程分析用户根据自己的需求,定义自己的数据表名及各个属性组及其数据类型,程序将数据表信息存入文件。数据表创建完成后用户可通过数据表的修改功能对表进行增、删、改的操作,以添加或修改表的信息,并存入文件。开始输入SQL命令SQL命令是否匹配YN依据命令建立基本表或者修改基本表结束Y图143.设计3.1设计思想(介绍DBMS原型系统具有的功能以及性能要求)将DBMS的CREATE语句和ALTER语句的命令分别用C++中的函数实现,建立几个头文件,实现如下功能:main.h//程序入口并定义对输入字符串的处理myTable.h//包含实现建立表以及修改表的函数myFunc.h//定义一些关键字以及相应操作关键字的函数myFile.h//实现向文件中写入数据以及读取文件数据myClass.h//定义表的结构以及表中列的结构catchType.h//定义了一个判断表中数据类型的函数3.2整体设计开始输入命令并对命令的进行格式化处理CREATE?YALTER?N执行CreatProc建表在读取命令过程中出现错误就结束程序,并返回相应错误,最终无错误就建立表,并存储在D:\\TAB.xdb中读取D:\\TAB.xdb文件,在读取命令过程中出现错误就结束程序,并返回相应错误,最终无错误就建立表,进行修改表并重新存储Y输出命令错误,并要求重新输入结束图253.3详细设计数据存储结构(介绍关系表的物理存储结构、数据编码方法)classColumn{//表中每一列的结构public:Column(){//构造函数进行初始化strLength=0;priKey=0;uniKey=0;}stringcname;//该列的字段名str

1 / 29
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功