实现DBMS的创建表和修改表数据库课程设计说明书.docx
- 文档编号:9829300
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:14
- 大小:254.35KB
实现DBMS的创建表和修改表数据库课程设计说明书.docx
《实现DBMS的创建表和修改表数据库课程设计说明书.docx》由会员分享,可在线阅读,更多相关《实现DBMS的创建表和修改表数据库课程设计说明书.docx(14页珍藏版)》请在冰点文库上搜索。
实现DBMS的创建表和修改表数据库课程设计说明书
课程设计说明书
设计题目:
实现DBMS的创建表和修改表_
专业:
信息管理与信息系统班级:
_
设计人:
_
山东科技大学
2011年7月1日
课程设计任务书
学院专业信息管理与信息系统班级姓名
一、课程设计题目:
(1)运用C#语言实现DBMS中创建表的功能
(2)运用C#语言实现DBMS中修改表结构的功能
(3)运用C#语言实现DBMS中删除表的功能
二、课程设计主要参考资料:
(1)MicrosoftSQLServer2008
(2)MicrosoftVisualStudio2008文档
(3)数据库系统概论(第四版),王珊、萨师煊等编著,高等教育出版社
三、课程设计应解决的主要问题:
(1)可以重复新建表结构
(2)可以对已经创建好的表结构进行修改
(3)可以删除已创建的表
四、课程设计相关附件(如:
图纸、软件等):
(1)数据库课程设计.exe
(2)
(3)
五、任务发出日期:
2011-4-29课程设计完成日期:
2011-7-1
指导教师签字:
系主任签字:
指导教师对课程设计的评语
指导教师签字:
年月日
一、设计要求:
实现DBMS的创建表和修改表这个模块的功能要求就是实现创建表结构及插入、删除、修改表结构。
要求:
(1)设计实现表的物理存储结构;
(2)语句以命令行或图形界面实现。
二、需求分析:
在以前的学习过程中已经学习了数据库的应用方面的知识,那时所学到的只是如何应用别人开发的软件,而对其入后台如何运行没有深刻的认识。
通过这学期数据库系统概论的学习,我明白了数据库软件的后台运行情况,为了加深对数据库DBMS后台运行的理解,因此老师要求实现DBMS的某个模块的功能。
而DBMS的创建表和修改表就是其中的一个模块。
三、设计思想:
本课程设计中包括三个模块:
1)新建表:
新建一个表的表结构,其中包括表的实体完整性、参照完整性和部分自定义完整性(唯一性)的约束的框架的实现,每一个新建的表都以单独的XML文档来存储,并且新建的每个表都只能存储到指定的文件夹下。
2)修改表:
这个模块包含新增字段、删除字段和修改已有字段。
新增字段只需要在DataGridView中添加新的字段,然后保存就可以了;删除字段是要选中所要修改的字段所在的行,然后右击鼠标,选择快捷菜单中的“删除列”即可;修改字段的属性时不可以改变属性是否为主键和是否为空的属性。
3)删除表:
选中表单中已存在的表,然后单击“删除表”,即可实现删除本地文件夹下的表文件和TreeView中的该表的相应的节点。
编写程序的环境是MicrosoftVisualStudio2008。
程序的主界面如下:
其中,右侧的DataGridView在程序开始运行时是隐藏的,当选择“创建表”或对已有表进行“设计表”操作时才会显示。
其中添加行的功能是DataGridView自带的功能。
表中某一字段的各个属性的限制如下:
(1)一个表中的同一个字段不能同时设置成主键并要求唯一。
(2)列名可以是任意字符串,但不能为空。
(3)数据类型包括char、float和int类型,必须选其中的一种类型。
(4)数据长度要求必须是整型,且不能为空。
(5)主键不允许为空。
(6)外键参照要求当前字段所参照的属性是被参照表的主键,且当前字段的数据类型和数据长度要与被参照属性一致。
若在程序运行过程中违反了上述限制的任一条,程序都会弹窗向用户提示,错误所在。
程序的另一个界面就是选择表名的名称,界面如下图所示:
在上图所示的文本框中输入表名,点击“确定”即可保存,点击“取消”回到主程序页面。
不保存新建的表。
四、程序流程图:
由于本课程设计所实现的是新建表和修改表,因此执行的先后顺序没有严格的区别,下图的程序流程图只是其中的一种执行次序,实际运行过程完全可以根据个人喜好自由选择。
图1程序流程图
五、主要源程序:
1.新建表
privatevoid创建表ToolStripMenuItem_Click(objectsender,EventArgse)
{
//清空gvTable
gvTable.Rows.Clear();
//将gvTable设置为可见
gvTable.Visible=true;
//表示目前所做的操作是创建表
flag=0;
}
2.保存新建表或对表结构的修改
privatevoid保存新建表ToolStripMenuItem_Click(objectsender,EventArgse)
{
intk=SaveXML();
//如果是新建表并且生成xml文档成功,则保存新的xml文档
if(flag==0&&k==1)
{
//创建一个窗体SaveAsXML类的实体,将创建好的XML文档传过去
SaveAsXMLtable=newSaveAsXML(doc);
//弹出保存窗口
table.ShowDialog();
//将新建的表添加到左侧的Treeview表单中
AppendToTreeV();
}
//若是修改表并且生成xml文档成功,则修改已有的xml文档并保存
elseif(flag==1&&k==1)
{
//用修改后的xml文档替换已有的
doc.Save(@"..\..\..\table\"+tvMenu.SelectedNode.Text+".xml");
MessageBox.Show("修改表结构成功!
");
}
}
3.删除选中的字段
privatevoid删除列ToolStripMenuItem_Click_1(objectsender,EventArgse)
{
for(inti=0;i { //每删除一行DataGridView都会改变,因此需要重新遍历 if(gvTable.Rows[i].Selected) { gvTable.Rows.Remove(gvTable.Rows[i]); i=0; } //若DataGridView中只剩一行,即表中字段为空时 if(gvTable.Rows.Count==1) { //删除选中的表 删除表ToolStripMenuItem1_Click(sender,e); //同时删除这个表的树节点 DeleTreeNode(); } } } 4.删除选中的表 privatevoid删除表ToolStripMenuItem1_Click(objectsender,EventArgse) { //删除选中的节点的表的xml文件 System.IO.File.Delete(@"..\..\..\table\"+tvMenu.SelectedNode.Text+".xml"); DeleTreeNode(); gvTable.Visible=false; } 六、运行结果: 1、按照程序要求正常输入的运行结果: (1)初始界面图1.1所示: 图1.1初始界面 (2)新建表sc,其中sno为外键,参照表student中的sno字段,要求sno必须是student表中的主键,并且sc表中sno的数据类型和数据长度都要与student表中的要一致,若不一致则报错。 如果输入都正确则会弹出输入表名的对话框,输入表明后即提示保存成功。 运行结果如图1.2所示。 图1.2新建表 (3)选中表sc,然后点击“设计表”,即在DataGridView中显示出当前表的结构,如图1.3.1所示。 a.在表sc中添加一个字段: 列名为score,数据类型为float,数据长度为8,允许为空,执行结果如图1.3.2。 b.将sno字段名改为stuno,执行结果如图1.3.3所示。 c.删除选中字段score,执行结果如图1.3.4所示。 图1.3.1设计表初始界面 图1.3.2插入字段 图1.3.3修改字段 图1.3.4删除字段 (4)删除选中的表,执行结果是删除本地存储文件,同时删除选中的表的树节点。 图1.4是删除表r的执行结果。 图1.4删除选中的表 2、部分输入与程序要求不符的处理结果: (1)在新建表或为一个表添加字段时,同时选中“设置主键”和“是否唯一”两个属性,运行结果如图2.1所示。 图2.1异常处理一 (2)在新建表或为一个表添加字段时,同时选中“设置主键”和“允许null值”两个属性,运行结果如图2.2所示。 图2.2异常处理二 (3)在新建表或添加一个新字段时,若某个字段有外键约束,则这个字段的参照字段必须是被参照表中的主键,且数据类型和数据长度必须相同,若不同,则会报错。 运行结果如图2.3所示。 图2.3异常处理三 七、参考资料: 1.MicrosoftSQLServer2008中的SQLServerManagementStudio; 2.MicrosoftVisualStudio2008文档; 3.数据库系统概论(第四版),王珊、萨师煊等编著,高等教育出版社 4.c#操作XML(读XML,写XML,更新,删除节点,与dataset结合等)_.NET教程_编程技术: 八、总结: 通过这次课程设计的实践,我有以下几点收获: 1.更加明确了数据库管理系统与数据库应用系统的区别,之前在上课的过程中听到这两个概念的时候感觉很困惑,虽然老师也讲解了多次,但始终分不清两者的区别,而做这个课程设计之前首先就是明确了DBMS的功能是什么。 2.对数据库的三种完整性约束(即实体完整性约束、参照完整性约束、自定义完整性约束)有了更加全面深入的认识。 其中的实体完整性要求表中的主码值必须唯一,且主码的各个属性不能为空,这个比较容易理解;而参照完整性约束中要求必须参照的是其他表的主码,这是在以前的学习中我没有注意到的;自定义完整性中的CHECK短语在图形界面中实现起来比较复杂,因此我没有实现,也没有很深刻的了解,而非空和唯一性约束都是很容易实现的。 3.对XML文档的操作更加熟练。 在以前的学习过程中很少会接触到XML文档,因此对其使用也不是很了解,在这次实践中通过课本上的介绍以及在网上查找的资料,使我对XML文档的特性及优点更加了解,我发现在高级编程语言中对XML文档的操作要比TXT文档的操作要简单的多,且更加直观。 4.对C#语言了解的更深入一些。 我没有系统的学习过C#,只是在实训的过程中才开始学习了一点,现在再次使用这个语言,感觉更加熟练了。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实现 DBMS 创建 修改 数据库 课程设计 说明书