oracle数据库大作业Word文件下载.docx
《oracle数据库大作业Word文件下载.docx》由会员分享,可在线阅读,更多相关《oracle数据库大作业Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
用于管理员的登陆,在后台登陆页面登陆,登陆成功进入系统。
图书管理员与系统管理员后台功能不一样。
查询用户表,对应用户名、密码正确则进入系统,对应用户名密码不正确则显示相应信息。
2.图书管理模块
对图书进行添加、查询、修改、删除、添加。
将输入的图书信息添加到数据库图书表中,以方便进行各种查询及更新操作,根据输入的图书名称或作者,查询数据库图书表中的相应记录并显示相应图书信息,更新数据库图书表中对应记录并显示更新后的图书信息,删除数据库图书表中对应记录。
3.副本信息模块
对图书的副本信息进行添加、修改、删除。
将输入的图书副本信息添加到副本表中,并分配一个独立的中南码根据输入的中南码或国际标准图书编码,查询图书副本表,显示副本信息更新副本表的数据库、删除副本表中所对应的图书信息、修改副本表中错误的信息并更新数据库。
4.
用户管理模块
对用户进行添加、删除、修改。
将输入的用户信息添加到用户表中,并分配一个独立的用户号根据输入的用户名的姓名或生日,查询用户表,显示用户信息更新用户表的数据库、删除用户表中所对应的、修改用户中错误的信息并更新数据库。
2、数据库设计及实现
2.1数据库表清单
1、图书信息-----Books表
编号
字段
数据类型
数据长度
能否为空
中文名
备注
1
ISBN
Char
20
否
国际标准图书编码
主码
2
Title
30
是
书名
3
Pubname
出版者名
4
Author
作者名
5
Authorno
Number
作者号
6
ZNCode
中南码
2、副本-----Copies表
CopyNo
10
副本编号
3、作者信息-----Authors表
AuthorNo
AuthorName
4、类别-----Categories表
CateName
目录名
5、作家-----Writers表
否
6、出版社-----Publishers表
Address
50
地址
7、用户-----Users表
UsersNo
12
用户编号
UserName
用户名
UserPwd
用户密码
Quanxia
权限
Birthday
Date
用户生日
Email
用户的邮箱
7
Tel
用户的联系电话
8
籍贯
2.2创建表空间
//创建数据表空间
SQL>
createtablespaceMYTBS
2datafile'
e:
\oracle\MYTBS\MYTBS1.dbf'
size500m;
表空间已创建。
altertablespaceMYTBSadddatafile'
f:
\oracle\MYTBS\MYTBS2.dbf'
表空间已更改。
2.3创建用户配置文件
Createprofilelock_timelimit
2password_life_time30
3failed_login_attempts5
4password_lock_time7;
配置文件已创建
2.4创建用户及分配权限
createuserDCQidentifiedby1115115020defaulttablespaceMYTBS;
用户已创建。
grantconnect,resource,createviewtoDCQ;
授权成功。
commit;
提交完成。
connectDCQ/1115115020;
已连接。
2.5基本表实现
2.5.1图书管理系统表的实现
(1)表的功能概述。
表的存储空间的分配为books表和users表分配1M,其他的表都分配256k
具体表的数据列、数据类型、主键、外键、是否为空都在数据库表清单中详细描述.
(2)表的实现代码
run
1createtableBooks
2(isbnchar(20)notnullprimarykey,titlechar(30),pubnamechar(30),
3authorchar(30),authornonumber(30),zncodenumber(30))
4tablespaceMYTBS
5*storage(initial1M)
表已创建。
createtablecopies
2(copynonumber(10)notnullprimarykey,
3isbnchar(20))
5storage(initial256k);
createtableAuthors
2(zncodenumber(20)notnullprimarykey,catenamechar(20))
3tablespaceMYTBS
4storage(initial256k);
createtableCategories
2(zncodenumber(20)notnullprimarykey,
3catenamechar(20))
createtableWriters
2(isbnchar(20)notnull,
3authornonumber(20)notnull,
4constraintpk_writersprimarykey(isbn,authorno))
5tablespaceMYTBS
6storage(initial256k);
createtablePublishers
2(pubnamechar(30)notnullprimarykey,addresschar(50))
createtableUsers
2(UserNamechar(20)notnull,
3UserPwdchar(20)notnull,
4UserNonumber(12)primarykey,
5Birthdatenotnull,
6Quanxiannumber(20),
7Emailchar(30),
8TELchar(20),
9Addresschar(20))
10tablespaceMYTBS
11storage(initial1M);
分配权限:
grant
select
on
books
to
reader;
publishers
authors
copies
writers
categories
2.6索引表的实现
2.6图书管理系统表的实现
索引的创建代码
(1)在Books表中的书名创建索引
createindexBooks_title_idxonBooks(title)
2pctfree20
3tablespaceMYTBS;
索引已创建。
(2)为Users表的姓名创建索引
createindexUsers_username_idxonUsers(username)
(3)为copies表copyNo列添加外键约束,一本书对应只能有一个人借出去,不可能有同时有很多人借同一本书。
altertablecopiesaddconstraintfk_copyforeignkey(copyno)references
2Users(UserNo);
表已更改。
2.7分区表的实现
创建一个Books副本books2表,并为其创建分区,使用Hash列分区(分区列authorno),要求创建的两个分区由系统自动生成分区名,并放置在表空间MYTBS1和MyTBS2中实现代码:
createtablebooks2
2asselect*fromBooks
3Partitionbyhash(authorno)
4Partitions2
5Storein(MYTBS1,MYTBS2);
3.功能实现
3.1系统登录
(1)功能简介
用户登录验证,可以创建一个存储过程,输入参数是用户帐号、用户密码,输出参数是整型值。
-1表示登录失败,0表示没有此用户,1表示登录成功。
(2)实现代码
setserveroutputon;
createorreplaceprocedurecheck_users(
v_nameinusers.UserName%type,
v_pwdusers.UserPwd%type,
flagoutnumber)
IS
countsnumber;
pcountsnumber;
BEGIN
selectcount(*)intocountsfromuserswhereUserName=v_name;
IFcounts>
0THEN
selectcount(*)intopcountsfromuserswhereUserPwd=v_pwd;
IFpcounts>
flag:
=1;
dbms_output.put_line('
登录成功!
'
);
ENDIF;
ELSE
=0;
没有此用户!
exception
whenno_data_foundthen
=-1;
登录失败!
ENDCHECK_USERS;
-----调用用户登录验证
SETserveroutputON;
DECLARE
V_NAMEVARCHAR2(25);
V_PASSWORDVARCHAR2(25);
V_RETURNNUMBER(5);
BEGIN
V_NAME:
='
admin'
;
V_PASSWORD:
CHECK_USERS(v_name=>
V_NAME,v_pwd=>
V_PASSWORD,flag=>
V_RETURN);
DBMS_OUTPUT.PUT_LINE('
V_NAME='
||V_NAME);
V_PASSWORD='
||V_PASSWORD);
END;
3.2用户注册
本功能为管理员注册,使用过程insert_Users实现。
(2)代码实现
createorreplaceprocedureinsert_Users(
v_IdinUsers.UserNo%type,
v_pwdinUsers.userpwd%type,
v_nameinUsers.username%type
v_AddressinUsers.Address%type
v_TELinUsers.TEL%type
)
isbegin
insertintoUsersvalues(v_id,v_pwd,v_name,v_Address,v_TEL);
dbms_output.put_line('
注册成功!
endinsert_Users;
(3)运行结果
调用过程:
execinsert_Users('
01'
1115115020,'
daichunqi'
'
云南'
,123456);
3.3用户修改信息
本功能为用户修改信息,使用过程update_Users实现。
createorreplaceprocedureupdate_Users(
updateUserssetuserpwd=v_pwd,username=v_name,Address=v_Address,TEL=v_TELwhereUserNO=v_Id);
修改成功!
endupdate_Users;
execupdate_Users('
-----精心整理,希望对您有所帮助!