




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库系统概论课程设计实验报告书姓名:学号:专业:软件工程班级:软093班学院:计算机一 概述1。1。1 问题的提出随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量.系统概述:通过对学校日常教学管理中的课程、选课、学生、教师、成绩等相关内容进行分析,完成具有学生管理、成绩管理、课程管理等相关功能的小型数据库管理应用系统。基本要求:完成学生、班级、课程表的维护. 完成成绩表的维护、浏览查找 。 按班级、按课程计算平均成绩、最高成绩、最低成绩、及格率。统计某学生、某学期的所有课程的平
2、均成绩.完成用户管理功能。 完成数据备份与恢复功能,1.1。2 本课题的意义通过该课程设计,可以达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。1。2设计环境 Oracle 11G C 。net平台二 需求分析2。1 系统功能要求设计此系统实现如下系统功能:(1)使得学生的成绩管理工作更加清晰、条理化、自动化.(2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能. 容易地完成学生信息的查询操作。(3) 设计人机友好界面,功能安排合理,操作
3、使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求.登陆失败学生管理课程管理退出系统用户验证成绩查询登陆成功教师管理2。2 系统模块设计成绩管理系统大体可以分成二大模块如, 一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是课程管理模块, 在该模块中应该包含有对学生成绩信息的查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还有教师、课程等相关信息的模块;2。3 数据字典 数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空.利用SQL Server 2000建立“学生选
4、课”数据库,其基本表清单及表结构描述如下:数据库中用到的表:数据库表名关系模式名称备注Student学生表学生学籍信息表Course课程表课程基本信息表Teach教师表教师基本信息Stu_Cour选课表学生选课信息Score成绩选课成绩信息表Student基本情况数据表,结构如下:字段名字段类型Not Null说明SnoCharPrimary key学号SnamecharNot Null学生姓名Sdeptchar学院Sclasschar班级Sageintr年龄Ssexchar性别Teach基本情况数据表,结构如下字段名字段类型Not Null说明TnoCharPrimary key教师号Tna
5、mecharNot Null教师姓名Tsexchar性别Cnochar外部码所授课程Tageint年龄Tdeptchar学院Course数据表,结构如下:字段名字段类型约束控制说明Cnochar主键(primary key)课程号Cnamecharnot null课程名称Ctimeintnot null课时Stu_cour情况数据表,结构如下:字段名字段类型约束控制说明Cnochar外部键课程号Snochar外部键学号Score情况数据表,结构如下:字段名字段类型约束控制说明Cnochar外部键课程号Snochar外部键学号scoreint成绩三 概念模型设计由需求分析的结果可知,本系统设计的
6、实体包括:(1)学生基本信息:学号,姓名,学院,班级,年龄,性别。(2)课程基本信息: 课程名,课程号,学时。(3)教师基本信息:教师号,教师姓名,职称,年龄,性别,学院(4)学院基本信息:学院名、学院号、院长姓名这些实体间的联系包括:(1) 每位学生可以学习多门课程,每门课程可供多位学生学习.(2) 每门课可以由多个老师教,每个老师可以教多门课程(3) 学生每选一门课就可以得到一个成绩,不选此课就不能取得该课程成绩由上述分析可得到系统的ER图:选修课程成绩学生课程号课程名学时学分分数学号姓名性别系别 地址年龄教授拥有学院代码拥有学院职称教师教师号学院名学院性别教师名院长名四 逻辑和物理结构设
7、计4。1由系统ER图转化而得到的关系模式如下:(1)学生(学号,姓名,性别,年龄,学院,班级),其主关键字为学号;(2)课程(课程名,课程号,学时),其中主关键字为课程号;(3)教师(教师号,教师姓名,职称,年龄,性别,学院,所授课程号)(4)选课(课程号,学号)其中主关键字为学号和课程号(4)成绩(课程号,学号,分数)其中主关键字为学号和课程号。4。2 确定关系模型的存取方法在将概念模型转换成物理模型之后,我们可以对物理模型进行设计,双击物理模型的关系,可以对该关系的名称、注释等信息进行查询.可对该关系的属性列进行设计,可分别设置其名称、码、数据类型以及主码、是否为空等。在实际设计中最常用的
8、存取方法是索引发,使用索引可以大大减少数据的查询时间,在建立索引时应遵循:在经常需要搜索的列上建立索引; 在主关键字上建立索引;在经常用于连接的列上建立索引,即在外键上建立索引;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的等规则。才能充分利用索引的作用避免因索引引起的负面作用。4.3 确定数据库的存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。因为该成绩管理系统的数据量小,所以我们只用把数据存储在使用的电脑硬盘上,不用作更多的安排。(1)创建学生基本
9、信息表:CREATE TABLE Student ( SNO CHAR(5) , SNAME CHAR(10) NOT NULL, SDEPT CHAR(2) NOT NULL, SCLASS CHAR(2) NOT NULL, SAGE NUMBER(2), SSEX CHAR(2),CONSTRAINT SNO_PK PRIMARY KEY(SNO);2,创建表CourseCREATE TABLE Course(CNO CHAR(3),CNAME VARCHAR2(16) ,CTIME NUMBER(3),CONSTRAINT CNO_PK PRIMARY KEY(CNO)3,创建表Tea
10、chCREATE TABLE Teach( TNO VARCHAR(6), TNAME VARCHAR(8), TSEX CHAR(2), CNO CHAR(3), TAGE NUMBER(2), TDEPT CHAR(2), CONSTRAINT TT_PK PRIMARY KEY(TNO), CONSTRAINT CNO_FK FOREIGN KEY(CNO) REFERENCES Course(CNO))4,创建表Stu_cnoCREATE TABLE Score(SNO CHAR(5),CNO CHAR(3),CONSTRAINT SC_PK PRIMARY KEY(SNO,CNO),
11、CONSTRAINT SNO_FK FOREIGN KEY(SNO) REFERENCES Student(SNO),CONSTRAINT CNOM_FK FOREIGN KEY(CNO) REFERENCES Course(CNO))5.创建成绩表CREATE TABLE Score(SNO CHAR(5),CNO CHAR(3),SCORE NUMBER(5,2),CONSTRAINT SC_PK PRIMARY KEY(SNO,CNO),CONSTRAINT SNO_FK FOREIGN KEY(SNO) REFERENCES Student(SNO),CONSTRAINT CNOM_F
12、K FOREIGN KEY(CNO) REFERENCES Course(CNO)CONSTRAINT Score_FK FOREIGN KEY(SNO,CNO) REFERENCES Stu_cno(SNO,CNO)二、插入数据1,StudentINSERT INTO Student VALUES('96001,马小燕','CS',01,21,女);INSERT INTO Student VALUES('96002,黎明,CS',01',18,男);INSERT INTO Student VALUES(96003,刘东明',
13、39;MA','01,18,男);INSERT INTO Student VALUES(96004',赵志勇',IS,'02',20,'男');INSERT INTO Student VALUES(97001,'马蓉,MA',02',19,女');INSERT INTO Student VALUES('97002,李成功,CS',01,20,男');INSERT INTO Student VALUES(97003,黎明,'IS','03,19,'
14、;女);INSERT INTO Student VALUES(97004,李丽,CS,'02,19,'女);INSERT INTO Student VALUES(96005,司马志明','CS',02,18,'男);2,CourseINSERT INTO Course VALUES(001,数学分析',144);INSERT INTO Course VALUES(002,普通物理,144);INSERT INTO Course VALUES('003,微机原理,72);INSERT INTO Course VALUES(004,数
15、据结构,72);INSERT INTO Course VALUES('005,'操作系统',64);INSERT INTO Course VALUES(006,数据库原理,64);INSERT INTO Course VALUES('007,DB_Design,48);INSERT INTO Course VALUES(008,程序设计,56);3,TeachINSERT INTO Teach VALUES(9401',王成钢,'男','004,35,CS);INSERT INTO Teach VALUES(9402',李
16、正科,男','003,40,'CS);INSERT INTO Teach VALUES('9403,'严敏,女,'001',33,MA);INSERT INTO Teach VALUES('9404,'赵高,男','004',28,'IS);INSERT INTO Teach VALUES(9405,李正科',男','003,32,'MA);INSERT INTO Teach VALUES('9406,李玉兰,女',006,43,'CS
17、');INSERT INTO Teach VALUES('9407,王成钢,男,004,49,'IS);INSERT INTO Teach VALUES('9408,马悦,女','008,35,CS');INSERT INTO Teach VALUES(9409,'王成钢,'男',007',48,CS');4,ScoreINSERT INTO Score VALUES(96001,'001,77。5);INSERT INTO Score VALUES(96001,'003',
18、89);INSERT INTO Score VALUES(96001',004,86);INSERT INTO Score VALUES('96001',005,82);INSERT INTO Score VALUES(96002,'001,88);INSERT INTO Score VALUES('96002,003,92。5);INSERT INTO Score VALUES('96002,006',90);INSERT INTO Score VALUES(96005',004',92);INSERT INTO Sco
19、re VALUES(96005,'005,90);INSERT INTO Score VALUES('96005,006,89);INSERT INTO Score VALUES(96005,007,76);INSERT INTO Score VALUES('96003,001,69);INSERT INTO Score VALUES(97001','001,96);INSERT INTO Score VALUES('97001,008',95);INSERT INTO Score VALUES(96004,001,87);INSERT
20、INTO Score VALUES(96003,'003',91);INSERT INTO Score VALUES('97002,'003,91);INSERT INTO Score VALUES(97002,004,'');INSERT INTO Score VALUES(97002,006',92);INSERT INTO Score VALUES('97004,005,90);INSERT INTO Score VALUES(97004',006',85);INSERT INTO Score VALUES(
21、97004,008',75);INSERT INTO Score VALUES(97003,001',59);INSERT INTO Score VALUES('97003,003',58)五 数据库的实施与维护5。1 数据库的实施:此阶段主要任务包括创建数据库,加载初始数据,数据库试运行,数据库的安全性和完整性控制数据库的备份与恢复,数据库性能的监督分析和改仅,数据库的重组和重构等.首先在数据库中建立一个学生成绩管理系统数据库,然后新建一个数据源。部分截图和代码如下:学生表的增删改查:增加学生信息更新学生信息删除学生信息学生表增加、删除、修改代码(部分)usi
22、ng System;using System。Collections.Generic;using System。ComponentModel;using System。Data;using System。Data.OracleClient;using System。Drawing;using System。Linq;using System。Text;using System.Windows。Forms;namespace MyProgram public partial class Form3 : Form private string ConnectionString = ”Data So
23、urce=ahut;" + ”User ID=Scott;Password=123456”; private OracleConnection conn = null; private OracleDataAdapter DataAdapter = null; private DataSet dataset = null; / private OracleCommand command= null; public Form3() InitializeComponent(); private void Form3_Load(object sender, EventArgs e) con
24、n = new OracleConnection(ConnectionString); showData(); private void showData() string tname = ”"; try if (conn = null) conn.Open(); DataAdapter = new OracleDataAdapter(”select * from student”, conn); dataset = new DataSet(); DataAdapter。Fill(dataset); dataGridView1。DataSource = dataset; dataGr
25、idView1。DataMember = dataset.Tables0。ToString(); tname = dataset。Tables0.ToString(); /先清除所有绑定,然后再重新绑定 textBox1.DataBindings。Clear(); textBox2。DataBindings。Clear(); textBox3。DataBindings.Clear(); textBox4。DataBindings。Clear(); textBox5.DataBindings.Clear(); textBox6。DataBindings。Clear(); textBox1.Dat
26、aBindings。Add("Text”, dataset, "table。sno”); textBox2.DataBindings.Add(”Text”, dataset, ”table。sname”); textBox3。DataBindings。Add("Text”, dataset, "table。sdept”); textBox4。DataBindings。Add("Text”, dataset, ”table.sclass”); textBox5。DataBindings。Add(”Text", dataset, ”tab
27、le。sage”); textBox6。DataBindings。Add("Text", dataset, ”table。ssex”); catch (Exception ex) MessageBox。Show(ex。ToString(); private void button1_Click(object sender, EventArgs e) string strOracle = ”insert into student values(" strOracle += "” + textBox1.Text;/学号 strOracle += "
28、,” + textBox2。Text;/姓名 strOracle += ",” + textBox3。Text;/学院 strOracle += ”,” + textBox4。Text;/班级 strOracle += "," + textBox5.Text;/年龄 strOracle += "," + textBox6。Text + ”)”;/性别 OracleCommand command = null; try command = new OracleCommand(); command。Connection = conn; comman
29、d.CommandText = strOracle; conn。Open(); int n = command。ExecuteNonQuery();/执行Insert语句 if (n 0) MessageBox.Show(”成功插入数据!”); catch (Exception ex) MessageBox。Show(ex.Message); finally if (conn != null) conn。Close(); command。Dispose(); showData(); private void button2_Click(object sender, EventArgs e) F
30、orm7 f7 = new Form7(); f7。Show(); private void button3_Click(object sender, EventArgs e) try OracleCommandBuilder builder = new OracleCommandBuilder(DataAdapter); int n = DataAdapter。Update(dataset, "Table"); MessageBox。Show(”成功更新数据,有” + n.ToString() + ”行受到更新!”); catch MessageBox。Show(”更新不
31、成功!”); private void button4_Click(object sender, EventArgs e) string curNo = ""; if (dataGridView1.Rows。Count <= 1) return; int index = dataGridView1.CurrentRow。Index; dataGridView1。Rowsindex。Selected = true; curNo = this。dataGridView1.Rowsindex.Cells0.Value。ToString(); OracleCommand co
32、mmand = null; string strOracle = ”delete from student where sno='" + curNo + "”; try command = new OracleCommand(); command。Connection = conn; command.CommandText = strOracle; conn。Open(); int n = command。ExecuteNonQuery(); catch (Exception ex) MessageBox。Show(ex.Message); finally if (
33、conn != null) conn.Close(); command。Dispose(); showData(); MessageBox。Show(”成功删除一行!”); 选择检索条件(学生表查询)学生表查询代码using System;using System.Collections.Generic;using System。ComponentModel;using System.Data;using System。Data.OracleClient;using System.Drawing;using System。Linq;using System.Text;using System。
34、Windows.Forms;namespace MyProgram public partial class Form7 : Form private string ConnectionString = "Data Source=ahut;” + ”User ID=Scott;Password=123456”; private OracleConnection conn = null; private OracleDataAdapter DataAdapter = null; private DataSet dataset = null; private OracleCommand
35、cmd = null; public Form7() InitializeComponent(); private void Form7_Load(object sender, EventArgs e) try conn = new OracleConnection(ConnectionString); conn。Open(); DataAdapter = new OracleDataAdapter(); dataset = new DataSet(); cmd = new OracleCommand(); cmd。Connection = conn; cmd。CommandText = ”S
36、ELECT from student”; DataAdapter。SelectCommand = cmd; DataAdapter。Fill(dataset, ”t1"); comboBox1。Items。Clear(); for (int i = 0; i dataset。Tables”t1”。Columns。Count; i+) comboBox1.Items.Add(dataset。Tables"t1”。Columnsi.ToString()); dataset。Clear(); comboBox2。Items.Add(”=”); comboBox2.Items。Ad
37、d("<"); comboBox2。Items.Add(”>”); comboBox2。Items。Add(”like”); catch (Exception ex) MessageBox。Show(ex。Message); private void button1_Click(object sender, EventArgs e) string tb1 = textBox1。Text; if (comboBox2.Text = ”like”) tb1 = ”" + textBox1.Text + "%”; string strOracle
38、= "select * from student where”; strOracle += " ” + comboBox1.Text + ” ” + comboBox2。Text + ” ” + ” + tb1 + ”" try cmd。CommandText = strOracle; DataAdapter。SelectCommand = cmd; dataset.Clear(); DataAdapter。Fill(dataset, ”t1”); dataGridView1.DataSource = dataset; dataGridView1.DataMemb
39、er = "t1" catch MessageBox。Show(”请正确设置检索条件!”); finally if (conn != null) conn。Close(); 教师表信息成绩表信息学生成绩检索(单表操作)按照课程检索最高分、最低分和平均分按照课程检索选课总数按照个人检索最高分、最低分和平均分按照班级检索最高分、最低分和平均分按照班级检索选课总数成绩表查询代码include ”stdafx.h”using System;using System。Collections。Generic;using System.ComponentModel;using Syste
40、m。Data;using System.Data。OracleClient;using System。Drawing;using System。Linq;using System。Text;using System.Windows。Forms;namespace MyProgram public partial class Form9 : Form private string ConnectionString = ”Data Source=ahut;” + ”User ID=Scott;Password=123456”; private OracleConnection conn = nul
41、l; private OracleDataAdapter DataAdapter = null; private DataSet dataset = null; private OracleCommand cmd = null; public Form9() InitializeComponent(); private void button1_Click(object sender, EventArgs e) string tb1 = textBox1。Text; if (comboBox2。Text = ”like") tb1 = ” + textBox1.Text + ”; s
42、tring strOracle = "select from score where”; strOracle += " " + comboBox1.Text + ” ” + comboBox2。Text + ” " + ” + tb1 + ”; try cmd。CommandText = strOracle; DataAdapter。SelectCommand = cmd; dataset。Clear(); DataAdapter。Fill(dataset, ”t1”); dataGridView1。DataSource = dataset; dataG
43、ridView1.DataMember = ”t1”; catch MessageBox。Show(”请正确设置检索条件!"); finally if (conn != null) conn.Close(); private void Form9_Load(object sender, EventArgs e) try conn = new OracleConnection(ConnectionString); conn.Open(); DataAdapter = new OracleDataAdapter(); dataset = new DataSet(); cmd = new
44、OracleCommand(); cmd.Connection = conn; cmd。CommandText = ”SELECT * from score”; DataAdapter.SelectCommand = cmd; DataAdapter.Fill(dataset, "t1"); comboBox1.Items.Clear(); for (int i = 0; i dataset。Tables”t1"。Columns。Count; i+) comboBox1.Items。Add(dataset。Tables"t1”。Columnsi。ToString()); dataset。Clear(); comboBox2.Items。Add("="); comboBox2。Items。Add("”); comboBox2。Items。Add(">"); comboBox2。Items.Add("like”); comboBox3.Items。Add(”Max(score)"); comboBox3。Items。Add("Min(score)&q
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省泰州市2025届高三第一次调研测试数学试题(解析版)
- 美国税人心得体会
- 室内设计的发展方向
- 招标代理委托居间合同
- 办公区域大型活动策划方案与指南
- 工业污水处理可行性报告
- 中医护理学(第5版)课件 望诊1
- 食品行业质量安全追溯与智能仓储管理方案
- 二零二五年度办公室新风系统智能化升级改造合同
- 工作效率提升策略实施计划
- 江苏红豆实业股份有限公司偿债能力分析
- 四川省2023年普通高等学校高职教育单独招生文化考试(中职类)数学试题(原卷版)
- 水力机械原理与设计课件
- 江苏电子信息职业学院单招职业技能测试参考试题库(含答案)
- 充电桩采购安装投标方案(技术方案)
- 7.1开放是当代中国的鲜明标识课件-高中政治选择性必修一当代国际政治与经济(1)2
- 2024年浙江首考英语听力原文解惑课件
- 民族团结教材
- 煤矿顶板管理技术培训课件
- 纪念中国人民抗日战争暨世界反法西斯战争胜利周年大合唱比赛
- 生化检验质控及失控分析
评论
0/150
提交评论