江西理工大学软件学院
《Oracle》课程设计报告
2013—2014 学年第一学期
课程名称
Oracle 数据库
设计题目 学籍管理系统数据库设计
专业班级
软件开发 111 班
姓
学
名
号
指导教师
欧阳能
11223128
余秋明
2013 年 12 月 23 日
目录
一、 问题描述………………………………………………………….1
二、 基本要求………………………………………………………….1
三、 数据库创建……………………………………………………….3
四、 数据库设计……………………………………………………….4
五、 执行数据库查询与相关维护管理……………………………….6
六、 总结与心得……………………………………………………….7
课程设计题目:学籍管理系统数据库设计
一、问题描述
实现学生基本信息管理和学生成绩管理,包括学生基本信息的添加、修改、删除及学
生信息的灵活查询;学生各门课程成绩的添加、修改、删除和查询、统计、排名等,
并对学生的留级、休学情况进行记录。
二、 基本要求
1、数据库设计
1) 概念结构设计:在需求分析和总体功能设计的基础上,设计 E-R 模型,详细
描述实体的属性和实体之间的联系。
E-R 图:
姓名
性别
出生年月
学号
专业名
学生
课程
选课
课程号
学分
学号
学分
课程名
学时
课程号
成绩
2) 逻辑结构设计:实现 E-R 图向关系模型的转换,详细列表显示完整的数据库
表结构。
学生
关系模型:
课程
1
对应
n
n
选择
n
选课
2、创建表空间
3、在表空间中创建表
在 SQL*PLUS 环境中输入 PL/SQL 代码,创建数据库中的各个表,至少包括
学生信息表、课程表、选课表等 5 张表(自行设计用到的表,注意表中字段的设
置及类型);
向表中插入数据,每张表至少插入 10 条数据,数据要合理。
4、索引和完整性
在表上建立相应索引。
实现列、行及参照完整性(必须建立主键、外键、检查约束等)。
5、数据查询和视图
使用 SELECT 语句实现学生信息和学生成绩的查询(要求查询要和系统的功能
联系起来,做单条件的查询、组合条件的查询、多表查询等,至少完成 10 个查
询)。
创建视图查询每名学生的选课门数。
6、存储过程的使用
创建存储过程实现表中数据的修改和删除。
创建函数统计留级学生的信息(每学期 4 门课程不及格则留级)。
7、用户、角色
创建用户并授权,将其赋予某个角色成为其成员。
不同的用户授予不同的权限,管理员的权限最高,可以对各种信息进行修改删除
等操作。普通学生用户只能进行查询操作。
8、系统数据维护
导出数据库数据
导入数据库数据
三、 数据库创建
1. 数据库创建
(1) 打开“开始”菜单,选择“Oracle - OraDb11g_home1”/“配置和移植工具”
/“Database Configuration Assistant”。
(2) 在打开 DBCA 后,单击“下一步”,选择“创建数据库”,单击“下一步”,选
择“一般用途或事物处理”,单击“下一步”。
(3) 输入“全局数据库名”为“XJGL”,单击“下一步”,选择“所有帐户使用统
一管理口令”,口令为:jxust,后面均为默认设置即可。
(4) 数据库创建完成,如图所示:
2. 表空间创建
建立表空间和用户的步骤:
(1)打开 Sqlplus,然后输入以下代码:
A.用户
建立:create user ouyang identified by jxust;
授权:grant create session to ouyang;
grant create table to ouyang;
grant create tablespace to ouyang;
grant create view to ouyang;
B.表空间
建立表空间(一般建 N 个存数据的表空间和一个索引空间):
create tablespace XJGL
datafile 'C:\OracleFiles\OracleData\datafile2.dbf '
size 10M
extent management local uniform size 256k;
C.用户权限
授予用户使用表空间的权限:
alter user ouyang quota unlimited on XJGL;
(2)表空间创建完成。
四、 数据库设计
(1) 表的创建:
选课表:
SQL> create table xk(
xh number(10),
kch number(10),
cj number(3),
xf number(4)
);
2
3
4
5
6
学生信息表:
SQL> create table student(
2
xh number(10) primary
key,
3
4
5
6
xm varchar2(20),
xb char(2),
csny date,
zym varchar(20));
课程表:
SQL> create table course(
2
kch number(10)
primary key,
3
4
5
6
kcm varchar2(20),
xs number(10),
xf number(4)
);
成绩表:
SQL> create table cj(
xh number(10)
2
primary key,
3
4
5
6
xm varchar2(20),
kcm varchar2(30),
cj number(4)
);
活动表:
SQL> create table hdb(
2
xh number(10)
primary key,
3
4
5
6
xm varchar2(20),
hdmc varchar2(50),
hdsj date
);
(2) 表的修改:
SQL> alter table xk add constraint fk_xk foreign key(xh) references student(xh);
SQL> alter table xk add constraint fk_xk2 foreign key(kch) references course(kch);
(3) 插入数据:
SQL> insert into student values(01,'张三','男','01-12 月-1993','软件开发');
(4) 试图的创建与查询
create view student_view as
select xh,xm,csny,zym
from student
where zym='软件开发';
SQL> select * from student_view;
(5) 数据的修改与删除
SQL> update student set zym='软件嵌入式' where xh=02;
SQL> delete from student where xh=10;
(6) 创建用户并授权
SQL> create user ouyang identified by jxust;
SQL> grant create table,create view,create session to ouyang with admin option;
SQL> grant select,update,delete on student to ouyang;
(7) 角色的创建与分配
SQL> create role walt identified by 12345;
角色已创建。
SQL> grant walt to ouyang;
授权成功。
五、 执行数据库查询与相关维护管理
(1) 查询
SQL> select table_name from user_tables;
SQL>select *
from student;
SQL> select * from course;
(2) 维护与管理
1.管理
SQL> create profile lock_account limit failed_login_attempts 5
password_lock_time 7;
SQL> alter user ouyang profile lock_account;
3. 维护
SQL> alter profile lock_account limit
cpu_per_session 20000
sessions_per_user 10
cpu_per_call 500
password_life_time 180
failed_login_attempts 10;
(1) 数据的导出
(2)数据的导入
六、 总结与心得
通过这次实训,让我更加深入了解到了 Oracle 数据库的应用,学会了更多 sqlplus 语句,
还让我理解了数据库的创建和资源的创建于维护技术。我知道数据库中分为小型、中型和大型数
据库,而 Oracle 数据库就是属于大型的数据库,而且在中国或者世界市场上应用最为广泛的数
据库,所以我这次实训认真的学习了这门技术,为了以后的发展奠定一定的基础。这次实训还让
我理解了最有哲理的一句话:只要有恒心,铁杵磨成针。