某某数据库实验报告文档格式.docx
- 文档编号:18841090
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:17
- 大小:305.76KB
某某数据库实验报告文档格式.docx
《某某数据库实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《某某数据库实验报告文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
四、实验方法与步骤
五、实验结果与数据处理
六、讨论与结论(对实验现象、实验故障及处理方法、实验中存在的问题等进行分析和讨论,对实验的进一步想法或改进意见)
七、所附实验输出的结果或数据
设计性实验报告应含的主要内容:
一、设计要求
二、选择的方案
三、所用仪器、设备
六、结论(依据“设计要求”)
*封面左侧印痕处装订
一、实验题目:
学生成绩管理信息系统
二、实验目的与要求
1.培养更好的解决问题和实际动手能力。
通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。
为后继课程和毕业设计打下良好基础。
2.通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。
3.通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界面设计和软件调试等各方面的能力。
是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。
系统所使用的原理有概念模型、三层模式、关系表理论、范式理论等。
四、实验所需仪器、设备
计算机、MicrosoftSQLServer2008、MicrosoftVisualStudio2010。
五、实验内容
针对一个学生成绩管理信息系统进行数据库设计,分析系统涉及的实体、实体之间的联系,实现增加、删除、更新、查询数据记录等基本操作。
1.理解系统的数据库需求,分析实体及实体间联系,画出E-R图:
1)分析确定实体的属性和码,完成对该实体的实体完整性、用户自定义完整性的定义。
2)设计实体之间的联系,包括联系类型和联系的属性。
最后画出完整的E-R图。
图1.1学生成绩信息系统E-R图
2.根据设计好的E-R图及关系数据库理论知识设计数据库模式:
1)把E-R图转换为逻辑模式;
将上述E_R图转换成二维表(设计字段,确定字段的取值范围,字段名字,主键,字段的长度,确定自定义完整性,确定参照完整性)。
图2.2学生信息表的逻辑图
图2.1课程表的逻辑图
图2.3成绩信息表逻辑图
2)规范化设计。
学生基本信息表、课程信息表、成绩信息表中均不含部分函数依赖和传递函数依赖,故此关系为3NF。
3)用SQL语言完成数据库内模式的设计。
3.数据库权限的设计:
1)根据系统分析,完成授权操作;
2)了解学习收回权限的操作。
4.完成用户界面的设计,连接数据库,用宿主语言实现系统所需的各种操作:
实现数据记录的录入、删除、查询和修改;
以视图的形式完成复杂查询,比如多表、多条件等。
●使用MicrosoftVisual2010的窗体进行前台界面操作
1)登录界面
图3.1登录界面设计
说明:
输入正确的帐号和密码才能够跳转到主操作界面,此过程没有连接数据库。
2)主操作界面
图3.2主操作界面
点击按钮进入到对应的表的操作界面,此过程没有连接数据库。
3)学生表界面
图3.3学生信息表-修改数据
程序代码:
;
数据库连接
namespace学生系统
{
publicpartialclassForm2:
Form
{
SqlConnectionmyconn;
stringmystr;
publicForm2()
InitializeComponent();
}
privatevoidForm2_Load(objectsender,EventArgse)
mystr="
DataSource=XIAOCHOU-PC;
InitialCatalog=C:
\\USERS\\XIAOCHOU\\DESKTOP\\数据库\\student.mdf;
IntegratedSecurity=True"
;
myconn=newSqlConnection(mystr);
//myconn.Open();
string[]str={"
男"
"
女?
"
};
comboBox1.DataSource=str;
comboBox1.SelectedIndex=0;
privatevoidgroupBox1_Enter(objectsender,EventArgse)
学生信息修改
privatevoidbutton2_Click(objectsender,EventArgse)
stringmysql;
//myconn.ConnectionString=mystr;
if(textBox2.Text=="
MessageBox.Show("
主属性不能为空"
);
else
try
myconn.Open();
mysql="
updateStudentset姓名='
+textBox4.Text+"
'
地址='
+textBox7.Text+"
籍贯='
+textBox5.Text+"
生日='
+textBox3.Text+"
00:
00:
00"
+"
性别='
+comboBox1.Text
where学号='
+textBox2.Text+"
'
label9.Text="
数据修改成功|"
SqlCommandmycmd=newSqlCommand();
mycmd.CommandText=mysql;
mycmd.Connection=myconn;
mycmd.ExecuteNonQuery();
myconn.Close();
catch(ExceptionErr)
MessageBox.Show(Err.Message,"
信息提示"
MessageBoxButtons.OK,MessageBoxIcon.Error);
4)课程表界面
图3.4 课程表界面-实体完整性的实现
添加异常,关系完整性中的实体完整性的实现。
privatevoidbutton3_Click_1(objectsender,EventArgse)
INSERTINTOScore(学号,课程号,成绩)VALUES(@Num,@No,@Score)"
mycmd.Parameters.Add("
@Num"
SqlDbType.VarChar,50).Value=textBox2.Text;
@No"
SqlDbType.VarChar,50).Value=textBox3.Text;
@Score"
SqlDbType.VarChar,50).Value=textBox4.Text;
label7.Text="
数据添加成功"
{MessageBox.Show(Err.Message,"
}}
5)成绩表界面
图3.5.1成绩信息表-参照完整性的实现
图3.5.2成绩信息表-用户自定义完整性的实现
数据的删除操作
privatevoidbutton4_Click_1(objectsender,EventArgse)
DialogResultRe=MessageBox.Show("
删除不可复原,继续删除?
"
MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question);
if(Re==DialogResult.Yes)
DELETEFROMScoreWHERE课程号="
+textBox3.Text+"
and学号='
+textBox2.Text+"
label8.Text="
数据删除成功|"
}}}
●在MicrosoftSQLServer2008中完成复杂查询,比如多表、多条件等。
图4查询语句中的Distinct用法举例
六、思考题
1.如何从一个实际的题目中设计概念模型?
答:
通过对其中住处的分类、聚集和概括,建立抽象的概念数据模型。
这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。
所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。
以扩充的实体—(E-R模型)联系模型方法为例,第一步先明确现实世界各部门所含的各种实体及其属性、实体间的联系以及对信息的制约条件等,从而给出各部门内所用信息的局部描述(在数据库中称为用户的局部视图)。
第二步再将前面得到的多个用户的局部视图集成为一个全局视图,即用户要描述的现实世界的概念数据模型。
2.如何将一个概念模型转换成关系模型?
依照一下原则进行转换
1)一个实体转换为一个关系,实体的属性就是关系的属性,实体的吗就是关系的码
2)一个联系也转换为一个关系,联系的属性即联系所连接的实体的码都转换为关系属性,但是关系的码会根据联系的类型变化,如果是:
a)1:
1联系:
两端实体的码都成为关系的候选码,
b)1:
N联系:
端实体的码成为关系的码,
c)多对多联系:
两端实体码的组合成为关系的码。
3)具有相同码的关系可以合并。
3.对所设计的关系模型用范式理论进行分析,证明她属于何种范式,并把它改进到3NF,写出模式分解的过程。
答案详见实验内容
4.如何设计关系表的完整性?
SQL把各种完整性约束作为数据库模式定义的一部分,SQL对三种不同完整性约束的设置及检测,采取了不同的方式加以实现。
●实体完整性和主码
实体完整性规定,主码的任何属性都不能为空,因为,概念模型中实体和联系都是可区分的,而且它们以码为唯一性标识。
如果,主码的属性值可以为空,则意味着在概念模型中存在着不以码为唯一性标识的实体。
这显然是前后矛盾的。
SQL中实体完整性是通过主码来实现的。
一旦某个属性或属性组被定义为主码,该主码的每个属性就不能为空值,并且在关系中不能出现主码值完全相同的两个元组。
主码的定义是在CreateTable语句中使用PrimaryKey关键字来实现的。
方法有两种:
a)在属性定义后加上关键字PrimaryKey;
b)在属性表定义后加上额外的定义主码的子句:
PrimaryKey(<
主码属性名表>
)
●参照完整性约束与外部码
参照完整性是对关系间引用数据的一种限制。
即:
若属性组A是基本关系R1的外码,它与基本关系R2的主码K相对应,则R1中每个元组在A上的值必须:
要么取空值,要么等于R2中某元组的主码值。
SQL提供了三种可选方案:
1、RESTRICT(限制策略):
当用户对表进行违反了上述完整性约束、条件的插入、删除或修改操作时,将会被系统拒绝。
2、CASCADE(级联策略):
当对参照关系进行删除和修改时,SQL所提供的一种方案。
在这种策略下,当删除或修改参照关系中某元组的主码值时,被参照关系中,那些外部码具有该值的元组也将被删除或修改,以保证参照完整性。
3、SETNULL(置空策略):
置空策略也是针对参照关系的删除或修改操作的。
在这种策略下,当删除参照关系中的某一元组或修改某一元组的主码值时,被参照关系中外码值等于该主码值的元组在该外码上的值将被置空
●用户自定义完整性约束
对于用户自定义完整性约束,SQL提供了非空约束、对属性的CHECK约束、对元组的CHECK约束、触发器等来实现用户的各种完整性要求。
1、非空约束:
在CRETETABLE中的属性定义后面加上NOTNULL关键字即定义了该属性不能取空值。
2、基于属性的CHECK约束
3、基于元组的CHECK约束
七、实验总结
在本次数据库的课程设计中,我制作出了学生成绩管理系统。
我在学生成绩管理系统的制作过程中,学到了很多数据库和用VC实现窗体的知识,提高了动手编程的能力。
在此期间,我遇到了很多困难,但通过请教老师和同学把困难解决了。
我意识到自己在编程方面还有不少缺陷,因此,我要再接再厉,努力学习编程的相关知识,进一步提高自己的能力,非常感谢帮助我的同学。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 某某 数据库 实验 报告