数据库设计论文.docx
- 文档编号:30141383
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:25
- 大小:186.87KB
数据库设计论文.docx
《数据库设计论文.docx》由会员分享,可在线阅读,更多相关《数据库设计论文.docx(25页珍藏版)》请在冰豆网上搜索。
数据库设计论文
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;
六、数据库系统总结
学生信息管理系统,通过对学生管理系统的开发总结实践经验,本系统主要是完成学生档案的录入、查询、修改等的管理,通过进行需求分析,使用数据库技术完成系统要求的信息管理,进行数据库设计,创建数据表,包括每个表的主键、外键、自定义约束,采用分区存储的方式记录信息表格,确定适当的索引,建立系统功能模块,触发器和函数的使用,函数参数输出,实现系统要求。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 设计 论文