还剩13页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
大讲呼,大学实验报告学院(系)名称计算机科学与工程学院姓名学号专业计算机科学与技术实验项目班级实验二数据库设计与编程课程代课程名称数据库系统2267043码2021/06/07实验地实验时间7-2122021/06/09点实验总结分析与特色创成绩实验过程分设计和程序各分实验报告分考核标准202030新分10好(格式规范、好(实验总结和分析好(没有缺勤、纪好(图、数据表、语言通顺)细致合理,有新意)ER律好、学习主动性索引、程序等内容完强)善,)O较好(个格式较一般(有实验和总结,一般(出勤较好,规范、语言较为通内容一般)考核内容态度和遵守纪律情一般(内容基本完善)顺)况较好)差(有差(没有实验总结和无故缺勤、不守纪差(内容有大的缺失)O一般(格式和内分析或内容极少且不合律等情况等容问题多)理)教师签字实验目的以种特定的应用场景为例,使学生初步具备设计数据库并进行编程实现的能力实验工具;、具体的编程工具与语言由指导老师指定,学生Windows2000/Windows XPMS SQLserver/Kingbase ES,可以使用指导老师指定的编程工具,也可自己选择编程工具实验内容和要求■针对给定的应用场景(两个场景任选其)或自选应用场景设计数据库,给出概念模式(图)、逻辑E-R模式(基本表、主外键约束)、物理模式(索引);(场景仓库管理,每个仓库有若干保管员,1每个保管员可以管理多个仓库,每个仓库可以存放多种商品,每种商品只能放一个仓库;场景教2学管理,每个老帅可以教多个学生;每个学生可以跟多个老师学习,每个老帅可以教多门课,每门课可以多个老师教,每个学生可以选多门课,每门课可以多个学生选能够运用高级编程语言对数据库表进行查询和更新操作(增加、修改、删除、查询)即可以将语句SQL嵌入高级程序语言(、、、、或其它高级语言,数据库系统不限);C C++JAVA ASPJSPSQLFreeHandleSQL_HANDLE_ENV,henv;SQLFreeHandleSQL_HANDLE_ENV,hstmt;return0;截图Sno SName Ssex Sage Dept Sno SName Ssex Sage Dept20190120李国男20CS■刘星20190121女19CS20190121刘星女19CS20190131小智ea20CS20190131小智5520CS20190133小霞女20CS20190133小霞女20CS20191201王敏女18MA20191201王敏女18MA20191221〃例男22MA20191221胸!ga22MA20193012SB19IS20193012B319IS20193013女19IS20193013J也女19IS20193027小航更22IS20193027小航22IS修改将学号⑵的学生系别修改为20190MA#includestdio.h#includewindows.h#includesql.h#includesqlext.h#includesqltypes.hint mainSQLRETURNret;SQLHENV henv;SQLHDBC hdbc;SQLHSTMT hstmt;ret=SQLAllocHandleSQL_HANDLE_ENV,NULL,henv;」」ret=SQLSetEnvAttrhenv,SQL_ATTR_ODBC_VERSION,SQLPOINTERSQL_OV_ODBC3,SQL SNTEGER;ret=SQLAllocHandleSQL_HANDLE_DBC,henv,hdbc;ret=SQLConnecthdbc,SQLCHAR*nmytestn,SQL_NTS,SQLCHAR*nsan,SQL_NTS,SQLCHAR*usasasan,SQL_NTS;if Iret==SQL_SUCCESS||ret==SQL_SUCCESS_WITH_INFO连接数据库失败!printf\nreturn-1;ret=SQLAllocHandleSQL_HANDLE_STMT,hdbc,hstmt;SQLCHAR sqll[]=uuse Student”;SQLCHAR sql2[]=nUPDATE studentset Dqt=MA WHERESno=20190121”;ret=SQLExecDirecthstmt,sql1,SQL_NTS;ret=SQLExecDirecthstmt,sql2,SQL_NTS;SQLFreeHandleSQL_HANDLE_STMT,hstmt;SQLDisconnecthdbc;SQLFreeHandleSQL_HANDLE_DBC,hdbc;SQLFreeHandleSQL_HANDLE_ENV,henv;SQLFreeHandleSQL_HANDLE_ENV,hstmt;return0;}截图:Sno SNameSsex SageDept Sno SName SsoxSageDept20190121■刘晨女19CS.20190121■刘履攵19MA20190131,」他另20CS20190131〃徇男20CS20190133小霞女20CS2O1TO133小威父20CS20191201王敬女18MA20191201王敬攵18MA20191221,」的BH22MA20191221光22MA20193012BB19IS20193012男19IS20193013女19IS201930131女19IS也20193027小航男22IS2OT93027小航雪22IS心得体会在进行数据库的建立前,一定要先做好准备工作,图的构建,确定好逻辑模式及物理模式,然后在ER建立好数据库后一定要先对数据库进行测试,根据数据库的性能缺点及结构缺点及时进行改进,在彻底进行好调整后再进行使用,以免在使用工程中再进行调整要浪费大量的人力物力,甚至是造成巨大的损害在使用高级语言操作数据库时,一定要先配置好数据源,此实验中我选择的是系统配置好ODBC DSN,数据源后才能够通过使用高级程序语言操作数据库,在操作数据库时一定要注意各种语句的顺序,ODBC尤其是各种句柄的开关次序,以免造成使用结束后有部分连接未关闭的现象,造成数据库性能的下降,甚至是数据的损坏高级程序语言对数据库的操作的正确的可以先在数据库中确保语句正确,然后在放到高级程序语言中进行执行,以免语句错误发生,在高级程序语言的报错中难以解决在查询操作中,多数查询结果都是有多个元组构成,所以一定要建立游标,才能够取到所有想要的数据数据库的构建以及高级程序语言操作数据库都是一个重点与难点,要注重实践,见多识广、勤加使用,才能够很好的掌握数据库的构建以及高级程序语言对数据库的操作【实验过程记录(ER图、数据表、源程序、界面示例及心得体会等)】教学管理系统:每个学生可以选择多门课程,每门课程可以被多个学生选择,所以二者是多对多的关系图ERW£3S S学生课程逻辑模式教学管理系统包含下面三个表学生表燮号,姓名性别,年龄,院系1列名数据类型允许NULL否Sno CHAR8否SName VARCHAR20是Ssex CHAR2是Sage INT否Dept VARCHARIO主键为学号Sno()课程表(课程号,课程名)2列名数据类型允许NULLCno CHAR4否CName VARCHAR20是主键为课程号()Cno()成绩表(学号,课程号,成绩)3列名数据类型允许NULLSno CHAR8否Cno CHAR4否Grade INT是主键为(学号课程号)Sno,Gno外键为学号(参照学生表),课程号(参照课程表)Sno Cno物理模式学生表对学号进行索引,因为学生的人数是经常变化的,所以不适合索引方式,学生之间hash也不存在很强的分类,所以选择树的索引方式B+课程表对课程号进行索引,因为课程的数量是基本稳定的,因此可以采用的方式对课程号进行hash索引成绩表对学号与课程号形成的元组进行索引,因为学生选课不定,科目的数量也就不定,所以不适合的索引方式,如果采取聚簇索引,需要将一个学生看做一类,类别过多,所以也不适合聚簇索引,hash因此采用树的索引方式B+利用对数据库进行增删改查操作ODBC程序源代码及截图查询查询属于系的学生信息CS#includestdio.h#includewindows.h#includesql.h#includesqlext.h#includesqltypes.hint mainSQLRETURNret;SQLHENV henv;SQLHDBC hdbc;SQLHSTMT hstmt;ret=SQLAllocHandleSQL_HANDLE_ENV,NULL,henv;」ret=SQLSetEnvAttrhenv,SQL_ATTR_0DBC_VERSI0N,SQLP0INTERSQL_0V_0DBC3,SQLS.INTEGER;ret=SQLAllocHandleSQL_HANDLE_DBC,henv,hdbc;ret=SQLConnecthdbc,SQLCHAR*nmytestn,SQL_NTS,SQLCHAR*nsan,SQL_NTS,SQLCHAR*nsasasan,SQL_NTS;if!ret==SQL_SUCCESS||ret==SQL_SUCCESS_WITHJNFO{连接数据库失败!printf\n”;return-1;ret=SQLAllocHandleSQL_HANDLE_STMT,hdbc,hstmt;SQLCHAR sqll□二use Student*1;SQLCHAR sq12[]=nselect*from studentwhere D叩t=CS;ret=SQLExecDirecthstmt,sql1,SQL_NTS;ret=SQLExecDirecthstmt,sql2,SQL_NTS;ifret==SQL_SUCCESS||ret==SQL_SUCCESS_W!TH_INFOSQLCHAR strl
[50],str2
[50],str3
[50],str4
[50],str5
[50];SQLINTEGER len_strl,len_str2,len_str3,len_str4,len_str5;printf,Sno\tSName\tSsex\tSage\tDept\t\nn;whileSQLFetchhstmt!=SQL_NO_DATASQLGetDatahstmt,l,SQL_C_CHAR,strl,5O,len_strl;SQLGetDatahstmt,2,SQL_C_CHAR,str2,50,len_str2;SQLGetDatahstmt,3,SQL_C_CHAR,str3,5O,len_str3;SQLGetDatahstmt,4,SQL_C_CHAR,str4,50,len_str4;SQLGetDatahstmt,5,SQL_C_CHAR,str5,5O,len_str5;printfH%s\t%s\t%s\t%s\t%s\t\nM,strl,str2,str3,str4,str5;SQLFreeHandleSQL_HANDLE_STMT,hstmt;SQLDisconnecthdbc;SQLFreeHandleSQL_HANDLE_DBC,hdbc;SQLFreeHandleSQL_HANDLE_ENV,henv;SQLFreeHandleSQL_HANDLE_ENV,hstmt;return0;截图:Sno SNameSsex SageDept20190120李彦免20CS20190121刘履女19CS■小福20190131ea20CS20190133小霞女20CS20191201王较女18MA20191221〃幽B322MA20193012男19IS女2019301319IS■C:\Users\W10\Desktop\^^g
2.exe;noSName10190120李勇10190121刘晨0190131小智10190133小霞Process exitedafter
0.04336seconds withreturn value0请按任意键继续...■Xesao9oog e增加新增一个学生小航(小航,男,)20193027,22,IS#includestdio.h#includewindows.h#includesql.h#includesqlext.h#includesqltypes.hint mainSQLRETURNret;SQLHENV henv;SQLHDBC hdbc;SQLHSTMT hstmt;ret=SQLAllocHandleSQL_HANDLE_ENV,NULL,henv;」ret=SQLSetEnvAttrhenv,SQL_ATTR_ODBC_VERSION,SQLPOINTERSQL_CV_ODBC3,SQL_IS NTEGER;ret=SQLAllocHandleSQL_HANDLE_DBC,henv,hdbc;ret=SQLConnecthdbc,SQLCHAR*nmytest,,,SQL_NTS,SQLCHAR*nsan,SQL_NTS,SQLCHAR*,,sasasan,SQL_NTS;if!ret==SQL_SUCCESS||ret==SQL_SUCCESS_WITH_INFO连接数据库失败!;printf\n”return-1;ret=SQLAllocHandleSQL_HANDLE_STMT,hdbc,hstmt;SQLCHAR sqll[]=nuse Student11;小航,男,SQLCHARsql2[]=INSERT INStudent VALUES20193027,22,IS”;ret=SQLExecDirecthstmt,sql1,SQL_NTS;ret=SQLExecDirecthstmt,sql2,SQL_NTS;SQLFreeHandleSQL_HANDLE_STMT,hstmt;SQLDisconnecthdbc;SQLFreeHandleSQL_HANDLE_DBC,hdbc;SQLFreeHandleSQL_HANDLE_ENV,henv;SQLFreeHandleSQL_HANDLE_ENV,hstmt;return0;截图SnoSNameSsexSageDept SnoSNameSsexSage DeptSB20190120李雷20CS20190120李勇20CS20190121女三19CScs20190121刘晨女19LU2019013120190131■〃传身20CS」、音20C csS20190133小霞女2020190133小霞女20cs20191201王筮女18MA20191201王敏女18MA20191221更22MA20191221男22MA20193012更19IS20193012应5519IS20193013〃屈女19IS201930134殳女19IS20193027小航22ISSB删除删除学号为的学生信息20190120#includestdio.h#includewindows.h#includesql.h#includesqlext.h#includesqltypes.hint mainSQLRETURNret;SQLHENV henv;SQLHDBC hdbc;SQLHSTMT hstmt;ret=SQLAllocHandleSQL_HANDLE_ENV,NULL,henv;ret=SQLSetEnvAttrhenv,SQL_ATTR_0DBC_VERSI0N,SQLP0INTERSQL_0V_0DBC3,SQL_IS_INTEGER;ret=SQLAllocHandleSQL_HANDLE_DBC,henv,hdbc;ret=SQLConnecthdbc,SQLCHAR*,,mytest,,,SQL_NTS,SQLCHAR*nsa,,,SQL_NTS,SQLCHAR*,,sasasaM,SQL_NTS;if!ret=SQL_SUCCESS||ret==SQL_SUCCESS_WITH_INFO连接数据库失败!printf\nreturn-1;ret=SQLAllocHandleSQL_HANDLE_STMT,hdbc,hstmt;SQLCHAR sqll[]=nuse Student”;SQLCHAR sql2[]=nDELETE FROMstudent WHERESno=,20190120,n;ret=SQLExecDirecthstmt,sql1,SQL_NTS;ret=SQLExecDirecthstmt,sql2,SQL_NTS;SQLFreeHandleSQL_HANDLE_STMT,hstmt;SQLDisconnecthdbc;SQLFreeHandleSQL_HANDLE_DBC,hdbc;。
个人认证
优秀文档
获得点赞 0