Oracle数据库系统-课程设计文档.doc_第1页
Oracle数据库系统-课程设计文档.doc_第2页
Oracle数据库系统-课程设计文档.doc_第3页
Oracle数据库系统-课程设计文档.doc_第4页
Oracle数据库系统-课程设计文档.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Oracle数据库系统(2009年秋季学期第17周) 课程设计课程设计名称:Oracle数据库系统课程设计课程名称:Oracle数据库系统课程编号:COM课程学时:40课程学分:2课程设计教学目的及基本要求1掌握Oracle关系数据库管理系统的结构与组成;2熟悉数据库应用系统的设计方法和开发过程;3培养使用数据库技术和方法解决实际应用课题的能力;4了解数据库管理员(即DBA)的基本工作:建立和维护大型数据库等;5掌握Oracle数据库系统下的S Q L语言运用及PL/SQL程序设计,了解应用程序开发中哪些用户逻辑适宜在客户端解决,哪些适宜在数据库服务端解决。课程设计内容及安排1阅读项目需求分析。按软件工程要求,进行需求分析。根据设计题目的要求,充分地分析和理解项目的需求,明确项目需要解决的主要问题。 2系统设计。设计出系统的概念模型,用E-R图表示。随后进行模块设计和数据库设计。将需求分析的内容归纳整理,以模块结构表示。在概念模型和模块结构图的基础上设计合理的数据库结构,主要考虑规范化和实际应用需要,一般要求达到三范式(3NF)。系统的安全性是至关重要的,建议为系统设置用户管理功能,系统的用户至少分为两级:系统管理员和一般用户。不同级别的用户可操作的功能是不同的。3系统实现。该系统运行在Windows 2000/XP/2003操作系统上,采用C/S模式。系统前台可以采用VB6.0,Java,要求前台界面友好,结构简明、合理。商务规则尽量放到后台数据库处理。4程序调试与测试。5编写课程设计报告。完成规定实验内容,打印提交课程设计报告,包括: 功能需求 系统设计:E-R图 源代码(关键部分增加注释) 系统运行效果(截图并加以说明) 一个说明文件(readme.txt),说明安装/运行/配置系统或数据库的注意事项。必须包括如下内容:1. 要部署数据库的文件(.dmp文件)应存放的位置,文件名称等。2. 可执行程序的文件名称和路径。3. 运行软件的方法。(Like username and password)1. 需求分析1.1 市场需求分析近些年随着学校的规模不断扩大,学生数量急剧增长,加之各种考试的日益繁多。需要管理学生成绩信息也成倍增加,传统的信息管理方式无论在效率,还是在可操作性方面都日渐不能满足学生管理的需求,与此同时,计算机与网络技术的日益成熟和广泛普及使得信息管理的自动化、批处理化成为可能。在建立一个学生成绩信息管理系统后,可以使学生成绩信息管理工作系统化、规范化、自动化,必将大大提高学校管理的效率。1.2 数据需求分析1.2.1数据流程图 课程基本信息课程信息管理课程设置成绩信息输入基本信息管理成绩信息管理学生注册基本信息输 入1.2.2数据项和数据结构通过对学生学习过程和数据流程的分析,设计如下数据项和数据结构 (1)学生基本信息组成:学号、姓名、班级、性别、出生日期、所在年级、所在班级、联系电话(2)课程基本信息 组成:课程编号、课程名称、授课教师、学分、学时、课程简介(3)学生成绩信息 组成:考试编号、所在班级、学生学号、课程名称、考试分数(4)课程设置信息 组成:年级、课程名称1.3系统功能分析系统功能分析是在系统开发的总体任务的基础上完成的,本系统需要完成的功能主要有:(1)课程管理功能:完成课程信息的录入、修改、删除、查询等功能,基本信息包括:课程编号,课程名称,任课教师、学分、学时和课程内容简介等。(2)成绩录入功能:主要功能用来对学生的成绩进行收集和修改。具体包括学生成绩录入、修改、删除、查询、打印等功能,由于一些资料可以Word文档或Excel表格输入,故需要增加导入、导出数据功能。成绩录入需要分班级、分年级以及考试时间。修改要与成绩录入相对应。查询条件设置应该齐全,可以班级查询,年级查询,也可以姓名查询,学号查询等等。要实现打印功能。(3)班级统计功能:主要用于对学生的成绩以班级为单位进行处理。具体包括各班学生总成绩、平均成绩、统计班级某分数段内的学生人数及班级内排名。各项统计仅对于某学期某次考试而言。(4)用户信息管理功能:本系统包括三类使用用户:系统管理员,学生和教师。管理员具有最高权限,但不能修改成绩。教师只能录入和修改自己所教课程的成绩。成绩一旦录入完成,教师也不可轻易修改,除非向管理员申请。学生只有查询自己成绩的权限。所有用户必须注册登录后方可使用本管理系统。所有用户都可以修改自己登录的密码。学生的信息包括:学号、姓名、性别、出生日期、班级、年级等。教师的信息包括:编号、姓名、性别、职称等。(5)系统维护功能:数据备份、数据恢复,帮助信息,用户注册、登陆及退出。1.4系统功能模块设计对上述功能进行集中、分块、按照结构化程序设计的要求,得到如下所示的系统功能模块图学生成绩信息管理系统成绩查询成绩添加成绩修改成绩统计成绩信息管理课程信息管理用户信息管理学生信息管理 密码管理用户管理课程修改课程查询课程添加学生删除学生添加学生修改2. 概念结构设计2.1实体及属性图学生实体学生成绩信息学生基本信息学生课程信息 学生实体E-R图课程简介课程 编号课程实体学 时课程名称学 分授课教师课程实体E-R图年级实体年级名称设置课程年级实体E-R图2.2间关系E-R图学 生课 程考核过程课程设置年级设置年 级 实体之间关系E-R图3. 逻辑结构设计3.1 关系模式设计学生信息(学号、姓名、性别、出生日期、所在班级、所在年级、联系电话、家庭住址)课程信息(课程编号、课程名称、学时、学分、授课教师、课程简介)学生成绩(考试编号、学生学号、课程名称、考试得分、所在班级)年级课程设置(年级名称、课程名称)用户信息(用户名称、用户密码、用户身份)注:带有绿色下划线的为对应关系模式的主键3.2 表结构设计学生基本信息表(Student_info)列 名 数据类型 可否为空 说 明Student_ID Varchar2(15) Not null学号(主关键字) Student_Name Varchar2(30) Not null姓名 Student_Sex Char(4) Not null 性别 Student_Birthday Date Not null出生日期 Class_No Varchar2(20) null 所在班级 Grade_No Varchar2(20) Null 所在年级 Student_Tele Varchar2(15)Null 联系电话 Student_Address Varchar2(50)null 家庭住址课程信息表(Course_info)列 名 数据类型 可否为空 说 明Course_ID Varchar2(10) Not null课程编号(主键) Course_Name Varchar2(32) Not null课程名称 Course_Hour Number(2) Not null 学时 Course_Credit Number(2) Not null学分 Teacher_Name Varchar2(30) null 授课教师 Course_Intro Varchar2(200) Null 课程简介 年级课程设置表(GCourse_Setting)列 名 数据类型 可否为空 说 明Grade_No Varchar2(20) Not null课程编号 Course_Name Varchar2(32) Not null课程名称 学生成绩信息表(Student_Mark)列 名 数据类型 可否为空 说 明Exam_No Varchar2(10) Not null考试编号 Student_ID Varchar2(15) Not null学号 Course_Name Number(32) Not null 课程名称 Course_Mark Number(15,2) Not null得分 Class_No Varchar2(20) Null 所在班级 系统用户信息表(User_info)列 名 数据类型 可否为空 说 明User_Name Varchar2(10) Not null用户名称 Passward Varchar2(8) Null密码 User_Type Varchar2(10)Not null用户类型4. 数据库结构的实现4.1创建学生基本信息表create table Student_info( Student_ID Varchar2(15) primary key, Student_Name Varchar2(30) not null, Student_Sex char(4) check(Student_Sex in(男,女), student_Birthday date not null, Class_No varchar2(20), Grade_No varchar2(20), Student_Tele Varchar2(15), Student_Address Varchar2(50) );4.2创建课程信息表create table Course_info( Course_ID varchar2(10) primary key, Course_Name varchar2(32) not null, Course_Hour number(2) not null, Course_Credit number(2) not null, Teacher_Name Varchar2(30), Course_Intro Varchar2(200), );4.3 创建年级课程设置表create table GCourse_Setting( Grade_No varchar2(20), Course_Name varchar2(32), Constraint PRI_GCourse primary key (Grade_No,Course_Name) constraint PR_Mark primary key (Exam_No,Student_ID,Course_Name,Class_No) );4.4创建学生成绩信息表 create table Student_Mark( Exam_No varchar2(10) not null, Student_ID Varchar2(15) not null, Course_Name varchar2(32) not null, Course_Mark number(15,2) check(Course_Mark between 0 and 100), Class_No varchar2(20), constraint FK_StuID foreign key (Student_ID) references Student_info(Student_ID) ); 4.5 常见用户信息表Create table User_info( User_Name varchar2(10) primary key, User_Type varchar2(10) not null, Passward varchar2(8) );4.6 插入测试数据insert into Student_info values(s0001,王一,男,to_date(1988-02-09,yyyy-mm-dd),0101,0001,123456,长春);insert into Student_info values(s0002,张金,男,to_date(1987-07-05,yyyy-mm-dd),0101,0001,145997,西安);insert into Student_info values(s0003,李四,女,to_date(1988-02-04,yyyy-mm-dd),0102,0001,123446,武汉);insert into Student_info values(s0004,王建,男,to_date(1987-05-08,yyyy-mm-dd),0102,0001,145977,西宁);insert into Student_info values(s0005,胡说,女,to_date(1987-08-09,yyyy-mm-dd),0201,0002,123456,杭州);insert into Student_info values(s0006,刘力,男,to_date(1986-05-15,yyyy-mm-dd),0201,0002,145997,咸阳);insert into Student_info values(s0007,田键,女,to_date(1986-02-23,yyyy-mm-dd),0202,0002,123456,长春);insert into Student_info values(s0008,白春,男,to_date(1987-07-12,yyyy-mm-dd),0202,0002,145997,西安); insert into Course_info values(0001,计算机导论,40,4,朱铁英,计算机专业入门课程);insert into Course_info values(0002,c程序设计,40,4,刘淑华,计算机专业第一门语言课);insert into Course_info values(0003,数据结构,40,4,周严竣,介绍算法和数据结构);insert into Course_info values(0004,Java程序设计,30,3,周志国,介绍当前最流行的计算机语言);insert into GCourse_Setting values(0001,计算机导论);insert into GCourse_Setting values(0001,c程序设计);insert into GCourse_Setting values(0002,数据结构);insert into GCourse_Setting values(0002,Java程序设计);insert into Student_Mark values(200901,s0001,计算机导论,78,0101);insert into Student_Mark values(200901,s0001,c程序设计,89,0101);insert into Student_Mark values(200901,s0002,计算机导论,96,0101);insert into Student_Mark values(200901,s0002,c程序设计,85,0101);insert into Student_Mark values(200901,s0003,计算机导论,75,0102);insert into Student_Mark values(200901,s0003,c程序设计,72,0102);insert into Student_Mark values(200901,s0004,计算机导论,46,0102);insert into Student_Mark values(200901,s0004,c程序设计,79,0102);insert into Student_Mark values(200901,s0005,数据结构,78,0201);insert into Student_Mark values(200901,s0005,Java程序设计,65,0201);insert into Student_Mark values(200901,s0006,数据结构,85,0201);insert into Student_Mark values(200901,s0006,Java程序设计,49,0201); insert into Student_Mark values(200901,s0007,数据结构,98,0202);insert into Student_Mark values(200901,s0007,Java程序设计,75,0202);insert into Student_Mark values(200901,s0008,数据结构,67,0202);insert into Student_Mark values(200901,s0008,Java程序设计,71,0202);insert into user_info values(admin,管理员,admin);insert into user_info values(t0001,教师,1111);insert into user_info values(s0001,学生,1111); insert into user_info values(s0002,学生,1111); insert into user_info values(s0003,学生,1111); insert into user_info values(s0004,学生,1111);insert into user_info values(s0005,学生,1111); insert into user_info values(s0006,学生,1111); insert into user_info values(s0007,学生,1111); insert into user_info values(s0008,学生,1111);5. 常用数据库对象的创建5.1创建视图Static(用于统计各班成绩)create view Static as select Exam_no,Class_No,Student_ID,sum(Course_Mark) as SumMark,avg(Course_Mark) as AvgMark from Student_Mark group by Student_ID,Class_No,Exam_No;5.2为表Course_info建立触发器(当删除一项或几项课程信息的时候,GCourse_Setting中相应的课程设置将被删除)create or replace trigger trg_Course_info before delete or update of Course_Name on Course_info for each row begin if deleting then delete from Gcourse_Setting where Course_Name = :old.Course_Name; elsif updating then update GCourse_Setting set Course_Name=:new.Course_Name where Course_Name =:old.Course_Name; end if; end trg_Course_info;5.3为表GCourse_Setting建立触发器(当删除某年级的一项或几项课程信息的时候,成绩表中对应的学生成绩将被删除)create or replace trigger trg_GCourse_Settingbeforedelete or update of Course _Nameon GCourse_Settingfor each rowbegin if deleting then delete from Student_Mark where Course_Name = :old.Course_Name; elsif updating then update Student_Mark set Course_Name=:new.Course_Name where Course_Name=:old.Course_Name; end if;end trg_GCourse_Setting;5.4为学生表创建触发器trg_Student_Studentcreate or replace trigger trg_Student_Userbeforedelete or inserton Student_infofor each rowbegin if deleting then delete from Student_Mark where Student_ID=:old.Student_ID; delete from User_info where User_Name=:old.Student_ID; elsif in

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论