欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据库课程设计报告.docx

    • 资源ID:16555718       资源大小:186.72KB        全文页数:56页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据库课程设计报告.docx

    1、数据库课程设计报告课程设计说明书课程名称: 数据库系统课程设计 专 业: 班级: 设 计 人: 学 号: 课 程 设 计 任 务 书一、 课程设计题目:数据库系统课程设计二、 设计原始资料:C+面向对象程序设计、数据库系统概论(第四版)、数据结构三、 设计应解决下列各主要问题:1、设计特定的数据结构,用于存储数据表、视图、索引三种数据库对象的元数据信息,建立数据库系统的数据字典; 2、设计特定的数据结构,用于存储数据表中的数据; 3、设计特定的数据结构,分别用于存储用户和访问权限的信息; 4、 输入“help database”命令,输出所有数据表、视图的信息,同时显示其对象类型;输入“hel

    2、p table 表名”命令,输出数据表中所有属性的详细信息;输入“help view视图名”命令,输出视图的定义语句; 5、解析 CREATE、SELECT、INSERT、DELETE、UPDATE 等 SQL 语句的内容;检查SQL语句中的语法错误和语义错误; 6、执行 CREATE 语句,创建数据表、视图、索引等数据库对象;创建数据表时需要包含主码、外码、唯一性约束、非空约束等完整性约束的定义; 7、执行 SELECT 语句,从自主设计的数据表中查询数据,并输出结果;在 SELECT 语句中需要支持 GROUP BY、HAVING 和 ORDER BY 子句,需要支持 5 种聚集函数; 8

    3、、执行 INSERT、DELETE 和 UPDATE 语句,更新数据表的内容;更新过程中需要检查更新后的数据表是否会违反参照完整性约束。如果是,则提示违反哪一条完整性约束,并拒绝执行更新操作;如果否,提示数据表更新成功,并说明插入、删除或修改了几个元组; 9、执行 GRANT 语句,为用户授予 SELECT、INSERT、DELETE、UPDATE 权限;执行 REVOKE语句,收回上述权限; 10、用户登录时,需要输入用户名;如果用户没有被授权,则拒绝执行用户查询或更新操作,并给出提示信息; 四、 设计说明书应附有下列图纸:五、 小组分工说明: 六、命题发出日期:2017-11-24设计完成

    4、日期:2017-12-29 指导教师评语成绩: 指导教师(签章):年月日1需求分析说明1.1系统需求分析该数据库系统设计是数据库系统概论的实践科目,要求利用所学的编程语言、数据库系统概论和数据结构等的相关知识,开发一个具有较完善、人机交互性较好的数据库管理系统。1.2系统设计分析基本功能如下:1、设计特定的数据结构,用于存储数据表、视图、索引三种数据库对象的元数据信 息,建立数据库系统的数据字典; 2、设计特定的数据结构,用于存储数据表中的数据; 3、设计特定的数据结构,分别用于存储用户和访问权限的信息; 4、 输入“help database”命令,输出所有数据表、视图的信息,同时显示其对象

    5、类型;输入“help table 表名”命令,输出数据表中所有属性的详细信息;输入“help view视图名”命令,输出视图的定义语句; 5、解析 CREATE、SELECT、INSERT、DELETE、UPDATE 等 SQL 语句的内容;检查SQL语句中的语法错误和语义错误; 6、执行 CREATE 语句,创建数据表、视图、索引等数据库对象;创建数据表时需要包含主码、外码、唯一性约束、非空约束等完整性约束的定义; 7、执行 SELECT 语句,从自主设计的数据表中查询数据,并输出结果;在 SELECT 语句中需要支持 GROUP BY、HAVING 和 ORDER BY 子句,需要支持 5

    6、 种聚集函数; 8、执行 INSERT、DELETE 和 UPDATE 语句,更新数据表的内容;更新过程中需要检查更新后的数据表是否会违反参照完整性约束。如果是,则提示违反哪一条完整性约束,并拒绝执行更新操作;如果否,提示数据表更新成功,并说明插入、删除或修改了几个元组; 9、执行 GRANT 语句,为用户授予 SELECT、INSERT、DELETE、UPDATE 权限;执行 REVOKE语句,收回上述权限; 10、用户登录时,需要输入用户名;如果用户没有被授权,则拒绝执行用户查询或更新操作,并给出提示信息;1.3功能模块分析1.3.1主函数模块本模块的主要功能是初始化用户列表、表、索引和视

    7、图等,调用各模块,实现数据库管理的功能。1.3.2用户登录模块本模块的主要功能是提供用户登录和注册的功能。用户注册时会有管理员和普通用户的权限划分;在用户登录时实现对用户名、密码的匹配,对用户权限的检查和验证。1.3.3数据字典设计模块本模块的主要功能是对数据库里的用户、表、视图、索引等的结构进行定义,实现对数据库的信息的存储。1.3.4帮助模块本模块的主要功能是根据用户输入的SQL帮助语言,显示数据库中已存在的所有的表、视图、索引等信息。1.3.5新建对象模块本模块的主要功能是:根据用户输入的SQL创建语言,创建相应的表、视图和索引等对象,并实现对创建语句的检查和以及错误信息的提示。1.3.

    8、6查询模块本模块的主要功能是:根据用户输入的SQL查询语言,完成对表和数据的检查,在指定的表中查找出符合条件的信息,并把查询过程中出现的语义、语法错误和最终的查询结果输出到操作界面上。 1.3.7插入模块 本模块的主要功能是:根据用户输入的SQL插入语言,对数据库中已经存在的表进行记录的插入,并完成对插入操作的检查,包括主键的唯一性检查、外键约束的检查和check检查等。1.3.8更新模块本模块的主要功能是:根据用户输入的SQL更新语言,对数据库中已经存在的表等进行更新,并完成对更新操作的检查,并在更新表的数据的时候对索引和视图的内容进行更新, 以及检查完整性约束和更新过程中出现的错误。1.3

    9、.9删除模块本模块的主要功能是:根据用户输入的SQL删除语言,对数据库中已经存在的表、视图和索引等进行删除,并完成对删除操作的检查。1.3.10授权模块本模块的主要功能是:对用户进行授权和解除权限,使用户拥有不同的访问权限。在进行模块的操作时会首先验证其是否有该操作的权限。1.4开发环境操作系统:win7、XP、win8或win10开发语言:C+ 开发工具:Codeblocks 16.012概要设计说明2.1设计思路 该数据库管理系统的功能主要有用户注册和登录、用户授权、创建、查询、帮助、插入、删除和更新等数据库管理的功能。根据系统的需求分析可得知该系统主要分为十大模块,分别是主函数模块、用户

    10、登录模块、数据字典设计模块、帮助模块、新建数据库对象模块、查询模块、删除模块、插入模块、更新模块和授权模块等。根据对该系统功能的模块划分,用所学的数据库系统概论、c+和数据结构相关的知识,实现该数据库管理系统。2.2程序设计流程图2.3数据字典设计1. 用户的结构typedef structpublic: char unameN; char upswdN; int uype;/用户类型 int user_p5;/用户具有selectinsertupdatedeletereference user;2. 表的结构typedef struct string tname; string pt_nam

    11、eN;/属性名字 string pt_typeN;/属性类型 string pt_condN;/属性的约束条件:非空约束等 int pt_num; /属性的个数 int recordt_num;/记录的个数 table;3. 视图的结构typedef structpublic: string vname; vector viewsql;/as语句 view;3. 索引的结构typedef structpublic: string indname; string indtype;/视图类型 vector indexsql;/as语句 index;3详细设计说明3.1主函数模块首先定义一个uesr

    12、对象,然后将该系统的操作等信息输入到界面,提示用户输入相关登录或注册信息,包括用户名和密码等信息。若用户选择的是登录操作 ,则调用登录函数 login();若用户选择的是注册操作,则调用注册函数 flogin()。用户登录成功后记录当前用户的权限。然后读入 SQL 语句,判断语句的语义和语法错误,当语句输入正确后,调用子模块对应的函数完成操作。int main() int status; user u; / initatetable(); cout endl; cout | | endl; cout | *数据库管理系统* | endl; cout | | endl; cout endl; c

    13、out Welcome to the database management system! endlendl; cout 1.登录 2.注册 (请选择操作)status; cout endl 用户名:u.uname; cout 密码:u.upswd; if(status=1) if(login(u.uname,u.upswd)=0) cout 1.登录 2.注册 (请选择操作)status; cout endl 用户名:u.uname; cout 密码:u.upswd; login(u.uname,u.upswd); else if(status=2) flogin(u.uname,u.up

    14、swd); /登录成功后对数据库的操作阶段 if(logstatus=1) cout endl 本数据库管理系统的功能有: endlendl; cout 1.创建表 2.创建视图endl; cout 3.创建索引 4.插入endl; cout 5.更新 6.删除数据endl; cout 7.查询 8.帮助endl; cout 9.授予权限 10.收回权限endl; cout endl 请输入正确的SQL语言:endlendl; string op; int fl = 0; while(true) getline(cin, op); if(op.length()=0) continue; if(

    15、usertype=1)/管理员 getUserOp(op,fl); createtable(op, fl); createview(op, fl); createindex(op, fl); insertdata(op, fl); updatedata(op, fl); deletedata(op, fl); selectdata(op, fl); grantusers(op,fl); revokeusers(op,fl); else if(usertype=2)/普通用户 getUserOp(op,fl); selectdata(op, fl); if(checkuser(op,fl)=0)

    16、 cout 您没有该权限 endl; if(fl = 0) cout 输入有误,请输入正确的SQL语言 endl; return 0;3.2用户登录模块该子模块实现用户注册、检查和登录。在登录函数里对用户密码和权限的检查,主要是打开ueses.txt文件,把当前用户名和密码和文件中已存在的用户记录进行对比,若出现用户名或密码出入错误达到两次,则系统退出;对比成功后输出登录成功的信息。在注册函数里,实现用户的注册,包括用户名、密码和用户权限的注册,判断用户输入的信息都正确后,将用户信息输入到ueses.txt文件中。/登录、检查int login(char *uname,char *upswd)

    17、 int n=0; FILE *fiu; char tname25; char tpswd25; int ttype; fiu = fopen(users.txt, r); while (!feof(fiu) fscanf(fiu,%s%s%d,&tname,&tpswd,&ttype); if (strcmp(tname, uname)=0 &strcmp(tpswd, upswd)=0) /clrscr();/清屏 system(cls); logstatus=1; cout-登陆成功!欢迎 uname 来到数据库管理系统-endlendl; n=1; if(ttype=1) userty

    18、pe=1; cout 您的身份是管理员,您有读、写的权限! endl; else usertype=2; cout 您的身份是普通用户,您有写的权限! endl; return 1; fclose(fiu); fclose(fiu); if(n=0) cout登录失败!请输入正确的用户名和密码! endlendl; return 0; /注册新用户void flogin(char *uname,char *upswd) int temp; cout选择用户的身份: 1.管理员 2.普通用户temp; /把注册的新用户信息放入users文件中。 ofstream fout; fout.open(

    19、users.txt, ios:app); fout uname upswd temp endl; fout.close(); system(cls);/清屏 coutendl-注册成功!- endl; cout-请登录- endl; char uname125; char upswd125; cout endl 用户名:uname1; cout 密码:upswd1; login(uname1,upswd1);3.3帮助模块在本模块中主要是对用户输入的SQL语句进行解析,解析出“helpdatabase”、“helpview”、“helpindex”等语句,并将显示出数据库中所对应的表、视图和索

    20、引等的信息。/帮助函数void getUserOp(string op, int& flag)/输出数据库中所有的对象 if(op = help database) int have = 0; flag = 1; for(int i = 0; i ttable.size(); +i) have = 1; cout - table: ttablei.tname - endl; for(int j = 0; j ttablei.pt_num; +j) cout ttablei.pt_namej ; cout endl; cout endl; for(int i = 0; i vview.size(

    21、); +i) have = 1; cout - view: vviewi.vname - endl; for(int j = 0; j vviewi.viewsql.size(); +j) cout vviewi.viewsqlj endl; cout endl; if(have = 0) cout 无数据 endl; return; /输出数据库中制定的表 string s = help table ; int f = 1; for(int i = 0; i s.length(); +i) if(opi != si) f = 0; break; if(f = 1) flag = 1; str

    22、ing name; for(int j = s.length(); j op.length(); +j) name += opj; int ff = 0; for(int k = 0; k ttable.size(); +k) if(ttablek.tname = name) cout - table: ttablek.tname - endl; ifstream fin; string tt = ttablek.tname + .txt; char file30; for(int i = 0; i tt.length(); +i) filei = tti; filett.length() =

    23、 0; fin.open(file); string t; while(getline(fin, t) cout t endl; cout endl; ff = 1; return; if(!ff) cout 没有该数据表 endl; return; /输出数据库中指定的视图 s = help view ; f = 1; for(int i = 0; i s.length(); +i) if(opi != si) f = 0; break; if(f = 1) flag = 1; string name; for(int j = s.length(); j op.length(); +j) n

    24、ame += opj; int ff = 0; for(int k = 0; k vview.size(); +k) if(vviewk.vname = name) cout - view: vviewk.vname - endl; for(int j = 0; j vviewk.viewsql.size() ; +j) cout vviewk.viewsqlj endl; cout endl; ff = 1; return; if(!ff) cout 没有该视图 endl; return; /输出数据库中指定的索引 s = help index ; f = 1; for(int i = 0; i s.length(); +i) if(opi != si) f = 0; break; if(f = 1) flag = 1; string name; for(int j = s.length(); j op.length(); +j) name += opj; int ff = 0; for(int k = 0; k iindex.size(); +k) if(iindexk.indname = name)


    注意事项

    本文(数据库课程设计报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开