数据库设计论文.docx

上传人:b****5 文档编号:30141383 上传时间:2023-08-05 格式:DOCX 页数:25 大小:186.87KB
下载 相关 举报
数据库设计论文.docx_第1页
第1页 / 共25页
数据库设计论文.docx_第2页
第2页 / 共25页
数据库设计论文.docx_第3页
第3页 / 共25页
数据库设计论文.docx_第4页
第4页 / 共25页
数据库设计论文.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

数据库设计论文.docx

《数据库设计论文.docx》由会员分享,可在线阅读,更多相关《数据库设计论文.docx(25页珍藏版)》请在冰豆网上搜索。

数据库设计论文.docx

数据库设计论文

 

2013-2014学年第二学期考试《大型数据库技术》试卷

 

学号:

1215115032

姓名:

汪如胜

专业:

软件工程

班级:

移动一班

指导教师:

杨晶

 

目录:

一、课题概述………………………………………………………

二、课题分析…………………………………………………………………..

三、课题信息……………………………………………………………………

四、数据库设计及实现……………………………………………………..

1创建表空间……………………………………………………

2创建用户及分配权限…………………………………………………………

3创建用户配置文件…………………………………………………………………

4数据基本表实现……………………………………………………………

5索引表的实现……………………………………………………………

五、功能实现…………………………………………………………

1系统登录……………………………………………………

2信息表的插入…………………………………………………………

3学生表信息查询…………………………………………………………………

六、数据库系统总结…………………………………………………………

一、课题概述

本系统提供了学生信息管理中常见的基本功能,主要包括管理员和学生两大模块。

管理员的主要功能有对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作。

使用数据库管理系统实现学生的主要功能,对学生信息和成绩信息进行查看,对个人的密码信息进行修改等。

2、课题分析

   在现今信息时代,生活速度的加快,使得人们越来越向信息化、数字化发展,学生管理信息系统是一个由人、计算机等组成的能进行信息的收集、传递、储存、加工、维护和使用的系统,必然能代替过去大量、繁杂的手工操作,本系统主要完成对学生的管理,包括学生信息、系部信息、课程信息的添加、修改、删除,查询,学生成绩的输入、输出和求算平均成绩,奖学金的分配以用户管理等几个方面。

系统可以完成对各类信息的浏览、查询、添加、删除、修改等功能。

系统的核心是添加、修改和删除三者之间的联系,每一个表的修改都将联动的影响其它的表,当完成添加或删除操作时系统会自动地完成学生信息的修改。

查询功能也是系统的核心之一。

此外,系统有完整的用户添加、删除和密码修改功能。

3、课题信息

学生信息管理系统可以实现学生信息的高效查询,修改,删除等操作,使学生信息关系系统化,规范化和自动化。

随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。

为学校学生信息管理系统软件,是鉴于目前学校学生人数剧增,学生信息呈爆炸性增长的前提下,学校对学生信息管理的自动化与准确化的要求日益强烈的背景下构思出来的,该软件设计完成后可用于所有教育单位的学生信息的管理。

4、数据库设计及实现

1.创建表空间

创建一个用户表空间MYTBS的实现代码:

Createtablespacemytbs

Datafile‘E:

\mytbs1.dbf’size250m

’F:

\mytbs1.dbf’size250m

 

2.创建用户及分配权限

创建用户并为其指定表空间的代码:

Createusercxlindentifiedby1215115260

Defaulttablesspacemytbs

 

3.创建用户配置文件

创建用户配置文件的实现代码:

主要是对密码保护进行操作,包括输入错误锁定密码和密码使用期限。

Createusercxlidentifiedby1215115260

Defaulttablespacemytbs;

学生表的实现

本表主要综合学生信息,为了方便查询,统计与修改。

下面为表的详细列表。

表的实现代码:

字段

名称

数据类型

NOTNULL

约束

Sno

学生编号

NUMBER(10)

Y

PK

Sname

学生姓名

Char(15)

Y

Sex

学生性别

Char

(2)

N

Deptno

系别编号

NUMBER(10)

Y

FK

Stp

联系电话

NUMBER(10)

N

 

表的创建代码:

createtablestudent(

snonumber(10),

snamechar(15)notnull,

sexchar

(2),

deptnonumber(10),

stpnumber(15)

);

表的主键约束代码:

altertablestudent

addconstraintstudent_pkprimarykey(sno);

表的外键约束代码:

altertablestudent

addconstraintfk_stforeignkey(deptno)references

dept(deptno);

 

3.表的功能概述

本表主要综合系别信息,为了方便查询,统计与修改。

下面为表的详细列表

表的实现代码:

字段

名称

数据类型

NotNull

约束

Deptno

系别编号

Number(10)

Y

PK

Dname

系别名称

Char(15)

Y

Cno

课程编号

Number(10)

N

FK

 

表的创建代码:

createtabledept(

deptnonumber(10),

dnamechar(15)notnull,

cnonumber(10)

);

表的主键约束代码:

altertabledept

addprimarykey(deptno);

表的外键约束代码:

altertabledept

addconstraintfk_deforeignkey(cno)references

class(cno);

 

4.课程表的实现

表的功能概述

本表主要综合课程信息,为了方便查询,统计与修改。

下面为表的详细列表。

(2)表的实现代码:

字段

名称

数据类型

NOTNULL

约束

Cno

课程编号

NUMBER(10)

Y

PK

Dname

系别名称

Char(15)

N

Cname

课程名称

Char(15)

N

Chours

学时

NUMBER(20)

N

Credit

学分

NUMBER(20)

N

createtableclass(

cnonumber(10),

cnamechar(15),

chourschar(20),

creditchar(20)

);

 

表的主键约束代码:

altertableclass

addprimarykey(cno);

 

5.索引表的实现

(1)表的功能概述

本表主要综合学生的成绩信息,为了方便查询,统计与修改。

下面为表的详细列表。

(2)表的实现代码:

字段

名称

数据类型

NOTNULL

约束

Sno

学生编号

NUMBER(10)

Y

PK,FK

Sname

学生姓名

Char(15)

Y

Cno

课程编号

NUMBER(10)

N

PK,FK

Grade

成绩

Char(20)

Y

Sno

学生编号

NUMBER(10)

N

 

表的创建代码:

createtablegrade(

snonumber(10),

snamechar(15),

cnonumber(10),

gradechar(5)notnull

);

表的主键约束代码:

altertablegrade

addprimarykey(sno,cno);

表的外键约束代码:

altertablegrade

addconstraintfk_gforeignkey(cno)references

class(cno);

altertablegrade

addconstraintfk_grforeignkey(sno)references

student(sno);

(3)索引的创建代码

createindexindex_grongrade(grade)

globalpartitionbyrange(grade)

partitionpar_passvalueslessthan(80),

partitionpar_goodvalueslessthan(90),

partitionpar_wellvalueslessthan(maxvalue)

);

 

分区表的实现

(1)表的功能概述,奖学金表的实现

本表主要综合学生的奖学金信息,为了方便查询,统计与修改。

下面为表的详细列表。

(2)表的实现代码:

字段

名称

数据类型

NOTNULL

约束

Sname

学生编号

NUMBER(10)

Y

PK

Sno

学生姓名

Char(15)

Y

PK,FK

Scsh

奖学金

NUMBER(10)

Y

表的创建代码:

createtablescsh

 (

snonumber(10),

snamechar(15),

scshnumber(10)notnull

partitionbylist(scsh)

partitionsandengvalues(800),

partitionerdengvalues(1500),

partitionyidengvalues(3000)

);

 

5、功能实现

1.系统登录

系统中需要进行用户登录验证,该功能可用存储过程实现,输入参数是用户帐号、用户密码,输出参数是整型值。

-1表示登录失败,0表示没有此用户,1表示登录成功。

(2)利用存储过程实现:

创建存储过程:

createorreplaceprocedurelogin(v_usernameinCHAR,

v_userpasswordinchar,v_numoutnumber)

is

v_user_nameCHAR(20);

v_user_passwordchar(20);

begin

v_num:

=0;

selectuser_nameintov_user_namefromuser_login

whereuser_name=v_username;

ifv_user_nameisnotnullthen

v_num:

=-1;

selectuser_passwordintov_user_passwordfromuser_login

whereuser_password=v_userpassword;

ifv_user_passwordisnotnullthen

v_num:

=1;--登陆成功

else

v_num:

=-1;--用户名正确,密码不正确(登录失败)

endif;

else

v_num:

=0;--没有此用户

endif;

exception

whenno_data_foundthen

dbms_output.put_line('找不到数据!

');

endlogin;

 

先创建一个用户登录表:

createtableuser_login(

user_namechar(20),

user_passwordchar(20))

调用存储过程:

setserveroutputon;

Declare

v_numnumber;

begin

  login('cxl','1215115260',v_num);

  dbms_output.put_line(v_num);

end;

调用存储过程:

setserveroutputon;

declare

v_numnumber;

begin

 login('cx','121511260,v_num);

 dbms_output.put_line(v_num);

end;

   

2.学生表信息插入

(1)编写一个存储过程,定义五个IN模式变量,然后将这5个变量的值插入student表中,完善学生信息。

输入参数分别为:

num_snoinnumber,

var_snameinchar,

var_sexinchar,

num_deptnoinnumber,

num_stpinnumber

st(1,'changyi','女',10,12341);

st(2,'changer','女',10,12342);

st(3,'changsan','男',20,12343);

st(4,'changsi','男',20,12344);

st(5,'chang五','女',30,12345);

 

输出结果为;

(2)利用存储过程实现:

createorreplaceprocedurest(

num_snoinnumber,

var_snameinchar,

var_sexinchar,

num_deptnoinnumber,

num_stpinnumber)is

begin

 insertintostudent

 values(num_sno,var_sname,var_sex,num_deptno,num_stp);

 commit;

end;

begin

 st(2,'changer','女',10,12342);

 st(3,'changsan','男',20,12343);

 st(4,'changsi','男',20,12344);

 st(5,'chang五','女',30,12345);

end;

系别表信息插入

(1)编写一个存储过程,定义3个IN模式变量,然后将这3个变量的值插入deptno表中,完善系别信息。

输入参数分别为:

num_deptnoinnumber,

var_dnameinchar,

num_cnoinnumber

de(10,ruanjian,01);

de(20,yishu,02);

de(30,jinggaun,03)

 

输出参数为:

(2)利用存储过程实现:

createorreplaceprocedurede(

num_deptnoinnumber,

var_dnameinchar,

num_cnoinnumber)is

begin

insertintodept

values(num_deptno,var_dname,num_cno);

commit;

end;

 

/

begin

de(10,'ruanjian',01);

de(20,'yishu',02);

de(30,'jinggaun',03);

end;

/

课程表信息插入

(1)编写一个存储过程,定义4个IN模式变量,然后将这4个变量的值插入class表中,完善课程信息。

输入参数为:

num_cnoinnumber,

var_cnameinchar,

num_choursinnumber,

num_creditinnumber

de(01,'shujuku',16,5);

de(02,,'sheji'12,4);

de(03,guanlixue,15,5);

  

输出参数为:

 

(2)利用存储过程实现:

createorreplaceprocedurecl(

num_cnoinnumber,

var_cnameinchar,

num_choursinnumber,

num_creditinnumber)is

begin

 insertintoclass

 values(num_cno,var_cname,num_chours,num_credit);

commit;

end;

/

begin

cl(01,'shujuku',16,5);

 cl(02,'sheji',12,4);

 cl(03,'guanlixue',15,5);

end;

/

 

成绩表信息插入

(1)编写一个存储过程,定义4个IN模式变量,然后将这4个变量的值插入grade表中,完善课程信息。

输入参数为:

  

num_snoinnumber,

var_snameinchar,

num_gradeinnumber,

num_cnoinnumber

  

gr(1,'changyi',96,01)

gr(2,'changer',92,01);

gr(3,'changsan',77,02);

gr(4,'changsi',84,02);

gr(5,'chang五',87,03);

(2)利用存储过程实现:

createorreplaceproceduregr(

num_snoinnumber,

var_snameinchar,

num_gradeinnumber,

num_cnoinnumber

begin

 insertintograde

 values(num_sno,var_sname,num_grade,num_cno);

commit;

  end

/

begin

gr(1,'changyi',96,01);

gr(2,'changer',92,01);

gr(3,'changsan',77,02);

gr(4,'changsi',84,02);

gr(5,'chang五',87,03);

end;

/ 

 

学生表信息查询

编写一个存储过程,定义1个INOUT变量,4个OUT模式变量,然后将这5个变量的值插入student表中,便于查询学生的基本信息。

输入参数为:

s_snoinoutnumber,

s_snameoutchar,

s_sexoutchar,

s_deptnooutnumber,

s_stpoutnumber

sno,

sname,

sex,

deptno,

stp

(2)利用存储过程实现:

createorreplaceprocedureselect_student(

s_snoinoutnumber,

s_snameoutchar,

s_sexoutchar,

s_deptnooutnumber,

s_stpoutnumber)is

begin

selectsname,sex,deptno,stpintos_sname,s_sex,s_deptno,s_stpfromstudent

wheresno=s_sno;

endselect_student;

 

计算学生的平均成绩

(1)编写一个函数,定义一个平均成绩变量,构造函数,计算出学生的平均成绩。

函数的主要实现代码:

createorreplacefunctionget_avgreturnnumberis

num_avgnumber;

begin

selectavg(grade)intonum_avgfromgrade;

return(round(num_avg,2));

end;

/

setserveroutputon

declare

avg_grnumber;

begin

avg_gr:

=get_avg;

dbms_output.put_line('平均成绩是:

'||avg_gr);

end;

/

 

 

实现同时插入操作

(1)编写一个触发器,当系部表新添加一个系部时,课程表里同时添加一门对应的课程。

创建触发器的主要代码:

createorreplacetriggerinsert_dept

beforeinsertorupdate

ondept

foreachrow

declare

num_detnonumber(10);

begin

ifinsertingthen

insertintoclass(cno)

values(:

o);

elsifupdatingthen

updateclasssetcno=:

o;

endif;

endinsert_dept;

/

 

通过程序包调用函数:

setserveroutputon

declare

avg_grnumber;

begin

avg_gr:

=get_avg;

dbms_output.put_line('平均成绩是:

'||avg_gr);

end;

 

六、数据库系统总结

学生信息管理系统,通过对学生管理系统的开发总结实践经验,本系统主要是完成学生档案的录入、查询、修改等的管理,通过进行需求分析,使用数据库技术完成系统要求的信息管理,进行数据库设计,创建数据表,包括每个表的主键、外键、自定义约束,采用分区存储的方式记录信息表格,确定适当的索引,建立系统功能模块,触发器和函数的使用,函数参数输出,实现系统要求。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 实习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1