您好,欢迎访问三七文档
1课程设计说明书设计题目:数据库课程设计专业:计算机科学与技术班级:2013级2班设计人:樊佳锦201301050205(封面要统一,全部要写全称)山东科技大学2015年07月24日2山东科技大学课程设计任务书计算机科学与技术专业2013级2班一、课程设计题目:数据库系统课程设计二、设计原始资料:(1)数据库系统概论(2)C程序设计基础设计应解决下列各主要问题:①CREATETABLE表名(列名数据类型[列完整性约束条件][列名数据类型[列完整性约束条件]…][,表完整性约束条件])②ALTERTABLE表名[ADD新列名数据类型[列完整性约束]][DROP列完整性约束名][MODIFY列名数据类型]三、设计说明书应有下列图纸:1.实现界面图2.流程图3.功能结构图五、命题发出日期:2015年05月26日设计应完成日期:2015年07月24日设计指导教师(签章):2015年月日3指导教师对课程的评语指导教师(签章):年月日山东科技大学学生课程设计-4-摘要本系统为c++编写的学生信息管理系统,主要功能是创建一个表保存学生各项信息(包括学生的学号,姓名,专业),允许用户创建新表,并对新表进行增、删、改等操作。程序创建了新的结构体以保存学生信息,并将学生信息作为结点存入链表,对于所有存入表中的学生数据均以学号作为主码,对元组进行修改和删除时,均以主码为依据。程序执行的各个操作均以命令方式出现,即用户输入固定指令,程序执行该项操作。系统中的候选码只有学号,对学生的操作均以学号为准。用户应严格按照程序提示的命令进行输入操作,若输入命令错误则程序无法正确执行。程序分为多个函数实现,每个函数均执行一个特定的功能,例如建表、添加、删除等操作都分别由独立的函数实现,在主函数中被调用。关键词:(3—5个,用分号分隔)数据库;C语言;C++;学生信息管理系统。山东科技大学学生课程设计-5-目录(自动生成)1设计题目…………………………………………………………………………61.1所选题目……………………………………………………………………61.2题目要求……………………………………………………………………61.3开发环境……………………………………………………………………62需求分析…………………………………………………………………………72.1题目分析………………………………………………………………72.2功能需求分析……………………………………………………………82.3数据流程分析……………………………………………………………83设计………………………………………………………………………………93.1设计思想…………………………………………………………………93.2整体设计(功能结构图)………………………………………………93.3详细设计(流程图、算法)…………………………………………114实现………………………………………………………………………………224.1以命令方式运行的实现过程………………………………………………224.2以程序方式运行的实现过程………………………………………………255总结…………………………………………………………………28参考文献………………………………………………………………30山东科技大学学生课程设计-6-1设计题目(中文用小四号宋体;英文、数字用小四号TimesNewRoman体;1.5倍行距)1.1所选题目课程设计题目要求脱离已有数据库环境,采用高级语言,根据所建立特定的数据库表文件,题目如下:选择一种高级语言实现下列语句的功能:①CREATETABLE表名(列名数据类型[列完整性约束条件][,列名数据类型[列完整性约束条件]…][,表完整性约束条件])②ALTERTABLE表名[ADD新列名数据类型[列完整性约束]][DROP列完整性约束名][MODIFY列名数据类型]要求:(1)能够以命令方式执行;(2)能够以程序方式执行;1.2设计要求(1)能够以命令方式执行;(2)能够以程序方式执行;(3)提供课程设计报告。1.3开发环境操作系统:Windows7.0;集成开发工具:codeblocks;开发语言:C/C++。山东科技大学学生课程设计-7-2需求分析(中文用小四号宋体;英文、数字用小四号TimesNewRoman体;1.5倍行距)2.1题目分析课程设计题目要求脱离已有数据库环境,采用高级语言,根据所建立特定的数据库表文件,题目如下:选择一种高级语言实现下列语句的功能:①CREATETABLE表名(列名数据类型[列完整性约束条件][,列名数据类型[列完整性约束条件]…][,表完整性约束条件])②ALTERTABLE表名[ADD新列名数据类型[列完整性约束]][DROP列完整性约束名][MODIFY列名数据类型]要求:(1)能够以命令方式执行;(2)能够以程序方式执行;以下是该题目的具体实例:①建立一个学生表:Sno表示学号,Sname表示姓名,Ssex表示性别,Sage表示年龄,Sdept表示专业。用户输入命令:CREATTABLEStudent(SnoCHAR(9)PRIMARYKEY,SnameCHAR(20)UNIQUE,SsexCHAR(2),系统执行上面的语句后,就在数据库中建立一个新的空的“学生”表Student,并将有关学生表的定义及有关约束条件存放在数据字典中。②修改基本表:向Student表增加“专业”列,,输入下列语句:ALTERTABLESdeptCHAR(20));山东科技大学学生课程设计-8-2.2功能需求分析该DBMS系统的功能有建表和更改表两项,允许用户根据自己的要求建立相关表,用户可建立一个学生管理数据库表,建表完成后将表的相关数据存入文件,并可以将表输出到屏幕。若表已经存在,用户可自由更改表中图书数据,可以对表中原有的属性进行增、删、改,以上功能的实现均通过SQL语句执行。数据库系统能够有效地组织和管理大量的数据。研究数据库管理系统的实现技术,对于掌握数据库系统的原理和技术,了解数据库系统的内部结构,开发高效的数据库应用系统,具有重要意义。在建立了数据库之后,首先需要建立表,之后才能进行记录的插入。这个程序的设计就是实现创建和修改表的定义。2.3数据流程分析程序数据由用户键盘输入,以SQL命令方式执行。用户根据自己的需求,定义自己的数据表名及各个属性组及其数据类型,程序将数据表信息存入文件。数据表创建完成后用户可通过数据表的修改功能对表进行增、删、改的操作,以添加或修改表的信息,并存入文件。2.3.1数据库系统总体流程图山东科技大学学生课程设计-9-数据库系统创建表修改表修改表的属性查找表添加表的属性删除表的属性山东科技大学学生课程设计-10-2.3.2创建表的流程图NOYES开始输入创建表执行语句判断语句是否正确执行创建新表的操作将表信息显示在屏幕上并存入文件夹结束山东科技大学学生课程设计-11-2.3.2修改表的流程图NOYES开始输入更新表的语句执行更新操作判断语句是否正确将表显示在屏幕上并存入文件结束山东科技大学学生课程设计-12-3设计3.1设计思想(1)数据库定义对数据库的结构进行描述,包括外模式、模式、内模式的定义;数据库完整性的定义;安全保密定义(如用户口令、级别、存取权限);存取路径(如索引)的定义。这些定义存储在数据字典(亦称为系统目录)中,是DBMS运行的基本依据。为此,提供数据定义语言DDL。(2)数据存取提供用户对数据的操纵功能,实现对数据库数据的检索、插入、修改和删除。一个好的DBMS应该提供功能强易学易用的数据操纵语言(DML)、方便的操作方式和较高的数据存取效率。DML有两类:一类是宿主型语言,一类是自含型语言。前者的语句不能独立使用而必须嵌入某种主语言,如C语言、COBOL语言中使用。而后者可以独立使用,通常以供终端用户交互使用和批处理方式两种形式使用。(3)数据库运行管理这是指DBMS运行控制、管理功能。包括多用户环境下的并发控制、安全性检查和存取权限控制、完整性检查和执行、数据加密、运行日志的组织管理、事务的管理和自动恢复(保证事务的正确性),这些功能保证了数据库系统的正常运行。(4)数据组织、存储和管理DBMS要分门别类地组织、存储各类数据,包括数据字典(亦称系统目录)、用户数据、存取路径等等。要确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率,选择合适的存取方法确保较高存取(如随机查找、顺序查找、增、删、改)效率。(5)数据库的建立和维护包括数据库的初始建立、数据的转换、数据库的转储和恢复、数据库的重组织和重构造以及有性能监测分析等功能。3.2整体设计本题将建立一个学生数据库,生成的数据表的形式如下所示:学号姓名专业Sno1山东科技大学学生课程设计-13-数据表记录的相关信息都是学生的个人信息,用户通过键盘以命令方式输入学生相关信息,系统根据用户输入的信息,在内存中建立相关表,并将表存入文件,以便下次读取或修改。以上数据关系的E-R图为:当用户需要对表中文件进行修改时,用户需要以命令方式输入修改内容,当系统识别命令正确后,会对表中相应的元组做出增删改等操作,修改完成后,对数据进行重排,并不改变数据表的存储方式及数据关系,最后将数据表重新存入文件,以完成用户的修改需求。Sno2Sno3Sno4山东科技大学学生课程设计-14-3.3详细设计(1)总体思路此课程设计主要要完成的任务是创建和修改表的定义,因此程序中共包含四个可选项:“新建表”、“修改表”、“显示表的信息”、“保存操作并退出”。另外,由于是数据库的操作,因此需要将建立的表的信息存储,在执行程序时应该调用已存储的表的信息,并且应该有日志文件以记录对表的操作。下面依次介绍主要结构、保存表信息、提取表信息、日志文件和主菜单中的四个选项;(2)主要结构1、每一个都有一个固定结构,因此我首先建立了一个表的结构体,具体形式如下:typedefstruct{chartable_name[10];//表名intproperty_num;//属性的个数charproperty_name[10000][10];//属性名intproperty_type[1000];//属性类型(1=int,2=char)intproperty_null[100];//属性是否为空(1=允许,2=不允许)intproperty_key[10];//是否主码(1=是主键,2=不是主键)}TABLE;2、我用一个TABLE型的数组将所有的表联系在一起,具体定义为TABLEtable[10000];3、定义一个int型变量记录表的个数,具体定义为inttable_num=0。(3)保存表信息首先打开或新建一个文本文档,取名为table.txt。由于执行此程序时可能对之前存在的表进行内容或结构的修改,如果对表进行修改之后直接在table.txt中存储此表的原位置进行比较麻烦,因此,在保存表信息的处理上,我采用了一种较为简单的办法,即在对表进行所有的操作之后,将表信息存储到table.txt中,覆盖掉原来已经存储的表的信息。这样则只需要一次存储就可以。山东科技大学学生课程设计-15-其次,储存表信息时,我采用的方法是首先存储表的个数,然后按照表的个数依次循环保存每一个表的信息。在保存每一个表的信息时,首先保存这个表的表名,然后存储这个表所拥有的属性个数,然后按照属性的个数依次循环保存每一个属性的性质。这样在提取的时候就比较简单。(4)提取表信息由于保存表信息时采用一定技巧,因此提取时只需要按照保存表信息的思路进行提取就可以了。首先第一个提取出来的是里面保存的表的个数。然后按照表的个数依次循环提取每一个表的信息。在提取每一个表的信息时,首先提取的是这个
本文标题:数据库系统课程设计
链接地址:https://www.777doc.com/doc-4399798 .html