课题名称:图书管理系统系统
班 级: 学 号: 姓 名: 成 绩:
11软工java2班
1115115020 戴春奇 2014年5月
精选文档
1. 课题概述 1.1 课题简介
随着社会的发展,人们对知识的需求也不断的增长。在这种形式下,人们就要不断的学习,不断的给自己充电,而图书馆就自然而然地在人们的生活中占据了一定的位置,如何科学的管理图书馆不但关系到读者求知的方便程度,也关系到图书馆的发展。图书馆作为一种信息资源的集散地,用户借阅资料繁多,包含很多的信息数据的管理。现今,有很多的图书馆都是初步开始使用,有些甚至尚未使用计算机进行信息管理。数据信息处理工作量大,容易出错;用于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出。因此一个好的图书馆管理系统是非常重要的。
1.2 功能描述 1.登录模块
用户登录:用户在登陆页面登陆,登陆成功进入系统。
管理员登陆:用于管理员的登陆,在后台登陆页面登陆,登陆成功进入系统。 图书管理员与系统管理员后台功能不一样。查询用户表,对应用户名、密码正确则进入系统,对应用户名密码不正确则显示相应信息。 2.图书管理模块
对图书进行添加、查询、修改、删除、添加。
将输入的图书信息添加到数据库图书表中,以方便进行各种查询及更新操作,根据输入的图书名称或作者,查询数据库图书表中的相应记录并显示相应图书信息,更新数据库图书表中对应记录并显示更新后的图书信息,删除数据库图书表中对应记录。 3.副本信息模块
对图书的副本信息进行添加、修改、删除。 将输入的图书副本信息添加到副本表中,并分配一个独立的中南码根据输入的中南码或国际标准图书编码,查询图书副本表,显示副本信息更新副本表的数据库、删除副本表中所对应的图书信息、修改副本表中错误的信息并更新数据库。 4. 用户管理模块
对用户进行添加、删除、修改。 将输入的用户信息添加到用户表中,并分配一个独立的用户号根据输入的用户名的姓名或生日,查询用户表,显示用户信息更新用户表的数据库、删除用户表中所对应的、修改用户中错误的信息并更新数据库。 2、数据库设计及实现 2.1 数据库表清单
—
2
精选文档
1、图书信息-----Books表 编号 1 2 3 4 5 6 字段 ISBN Title Pubname Author Authorno ZNCode 数据类型 数据长度 能否为空 Char Char Char Char Number Number 20 30 30 30 30 30 否 是 是 是 是 是 中文名 备注 国际标准图书编码 主码 书名 出版者名 作者名 作者号 中南码 2、副本-----Copies表 编号 1 2 字段 CopyNo ISBN 数据类型 数据长度 能否为空 Number Char 10 20 否 是 中文名 副本编号 国际标准图书编码 备注 主码 3、作者信息-----Authors表 编号 1 2 字段 AuthorNo AuthorName 数据类型 数据长度 能否为空 Number Char 10 20 否 是 中文名 作者号 作者名 备注 主码
4、类别-----Categories表 编号 1 2 字段 ZNCode CateName 数据类型 数据长度 能否为空 Number Char 20 20 否 是 中文名 中南码 目录名 备注 主码 — 3
精选文档
5、作家-----Writers表 编号 1 2
6、出版社-----Publishers表 编号 1 2
7、用户-----Users表 编号 1 2 字段 UsersNo UserName UserPwd Quanxia Birthday Email Tel Address 数据类型 数据长度 能否为空 Number Char 12 20 否 否 中文名 用户编号 用户名 备注 主码 字段 Pubname Address 数据类型 数据长度 能否为空 Char Char 30 50 否 是 中文名 出版者名 地址 备注 主码 字段 ISBN AuthorNo 数据类型 数据长度 能否为空 Char Number 20 20 否 否 中文名 备注 国际标准图书编码 主码 作者号 主码 3 4 5 6 7 8
—
Char Number Date Char Char Char 20 20 30 20 20 否 否 否 是 是 是 用户密码 权限 用户生日 用户的邮箱 用户的联系电话 籍贯 4
精选文档
2.2 创建表空间
//创建数据表空间
SQL> create tablespace MYTBS
2 datafile 'e:\\oracle\\MYTBS\\MYTBS1.dbf' size 500m;
表空间已创建。
SQL> alter tablespace MYTBS add datafile 'f:\\oracle\\MYTBS\\MYTBS2.dbf' size 500m;
表空间已更改。
2.3 创建用户配置文件
SQL> Create profile lock_time limit 2 password_life_time 30 3 failed_login_attempts 5 4 password_lock_time 7;
配置文件已创建
2.4 创建用户及分配权限
SQL> create user DCQ identified by 1115115020 default tablespace MYTBS;
— 5
精选文档
用户已创建。
SQL> grant connect,resource,create view to DCQ; 授权成功。 SQL> commit; 提交完成。
SQL> connect DCQ/1115115020; 已连接。
2.5 基本表实现
2.5.1 图书管理系统表的实现
(1)表的功能概述。
表的存储空间的分配为books表和users表分配1M,其他的表都分配256k 具体表的数据列、数据类型、主键、外键、是否为空都在数据库表清单中详细描述.
(2)表的实现代码
1、图书信息-----Books表
SQL> run
1 create table Books
2 (isbn char(20) not null primary key,title char(30),pubname char(30), 3 author char(30),authorno number(30),zncode number(30)) 4 tablespace MYTBS 5* storage(initial 1M)
— 6
精选文档
表已创建。
2、副本-----Copies表 SQL> create table copies
2 (copyno number(10) not null primary key, 3 isbn char(20)) 4 tablespace MYTBS 5 storage(initial 256k);
表已创建。
3、作者信息-----Authors表 SQL> create table Authors
2 (zncode number(20)not null primary key,catename char(20)) 3 tablespace MYTBS 4 storage(initial 256k);
表已创建。
—
7
精选文档
4、类别-----Categories表 SQL> create table Categories
2 (zncode number(20)not null primary key, 3 catename char(20)) 4 tablespace MYTBS 5 storage(initial 256k);
表已创建。
5、作家-----Writers表 SQL> create table Writers 2 (isbn char(20)not null, 3 authorno number(20)not null,
4 constraint pk_writers primary key(isbn,authorno)) 5 tablespace MYTBS 6 storage(initial 256k);
表已创建。
—
8
精选文档
6、出版社-----Publishers表 SQL> create table Publishers
2 (pubname char(30)not null primary key,address char(50)) 3 tablespace MYTBS 4 storage(initial 256k);
表已创建。
7、用户-----Users表 SQL> create table Users
2 (UserName char(20) not null, 3 UserPwd char(20) not null, 4 UserNo number(12) primary key, 5 Birth date not null, 6 Quanxian number(20), 7 Email char(30), 8 TEL char(20), 9 Address char(20)) 10 tablespace MYTBS 11 storage(initial 1M);
—
9
表已创建。
分配权限:
grant select on books to reader; grant select on publishers to reader; grant select on authors to reader; grant select on copies to reader; grant select on writers to reader; grant select on categories to reader;
2.6 索引表的实现
2.6 图书管理系统表的实现 索引的创建代码
(1)在Books表中的书名创建索引
SQL> create index Books_title_idx on Books(title) 2 pctfree 20
3 tablespace MYTBS;
索引已创建。
— 精选文档
10
精选文档
(2)为Users表的姓名创建索引
SQL> create index Users_username_idx on Users(username) 2 pctfree 20
3 tablespace MYTBS;
索引已创建。
(3)为copies表copyNo列添加外键约束,一本书对应只能有一个人借出去, 不可能有同时有很多人借同一本书。 SQL> alter table copies add constraint fk_copy foreign key(copyno) references 2 Users(UserNo);
表已更改。 SQL> commit; 提交完成。
2.7 分区表的实现
—
11
精选文档
创建一个Books副本books2表,并为其创建分区,使用Hash列分区(分区列authorno),要求创建的两个分区由系统自动生成分区名,并放置在表空间MYTBS1和MyTBS2中实现代码:
SQL> create table books2 2 as select * from Books 3 Partition by hash(authorno) 4 Partitions 2
5 Store in (MYTBS1, MYTBS2);
3. 功能实现
3.1系统登录
(1)功能简介
用户登录验证,可以创建一个存储过程,输入参数是用户帐号、用户密码,输出参数是整型值。 -1表示登录失败,0表示没有此用户,1表示登录成功。 (2)实现代码 set serveroutput on;
create or replace procedure check_users( v_name in users. UserName%type, v_pwd users.UserPwd%type, flag out number) IS
counts number; pcounts number; BEGIN
select count(*) into counts from users where UserName=v_name; IF counts>0 THEN
select count(*) into pcounts from users where UserPwd=v_pwd; IF pcounts>0 THEN flag:=1;
dbms_output.put_line('登录成功!'); END IF;
—
12
精选文档
ELSE flag:=0;
dbms_output.put_line('没有此用户!'); END IF; exception
when no_data_found then flag:=-1;
dbms_output.put_line('登录失败!'); END CHECK_USERS; -----调用用户登录验证 SET serveroutput ON; DECLARE
V_NAME VARCHAR2(25); V_PASSWORD VARCHAR2(25); V_RETURN NUMBER(5); BEGIN
V_NAME := 'admin'; V_PASSWORD:= 'admin';
CHECK_USERS(v_name=>V_NAME,v_pwd=>V_PASSWORD,flag=>V_RETURN);
DBMS_OUTPUT.PUT_LINE('V_NAME = ' || V_NAME);
DBMS_OUTPUT.PUT_LINE('V_PASSWORD = ' || V_PASSWORD); END;
3.2用户注册
(1)功能简介
本功能为管理员注册,使用过程insert_ Users实现。 (2)代码实现
create or replace procedure insert_ Users ( v_Id in Users.UserNo%type, v_pwd in Users.userpwd%type,
—
13
精选文档
v_ name in Users.username %type v_ Address in Users.Address %type v_ TEL in Users.TEL %type ) is begin
insert into Users values(v_id, v_pwd, v_ name,v_ Address,v_ TEL); dbms_output.put_line('注册成功!'); end insert_Users; (3)运行结果 调用过程: set serveroutput on;
exec insert_Users ('01', 1115115020, 'daichunqi','云南',123456);
3.3用户修改信息
(1)功能简介
本功能为用户修改信息,使用过程update_ Users实现。 (2)代码实现
create or replace procedure update_ Users ( v_Id in Users.UserNo%type, v_pwd in Users.userpwd%type, v_ name in Users.username %type v_ Address in Users.Address %type v_ TEL in Users.TEL %type ) is begin
update Users set userpwd=v_pwd, username=v_name,Address=v_ Address,TEL=v_ TEL where UserNO= v_Id);
dbms_output.put_line('修改成功!'); end update_Users; (3)运行结果 调用过程:
—
14
set serveroutput on;
exec update_Users ('01', 1115115020, 'daichunqi','云南',123456);
— 精选文档
15
因篇幅问题不能全部显示,请点此查看更多更全内容