oracle图书管理系统数据库设计与实现.docx

上传人:b****7 文档编号:8891092 上传时间:2023-02-02 格式:DOCX 页数:15 大小:84.92KB
下载 相关 举报
oracle图书管理系统数据库设计与实现.docx_第1页
第1页 / 共15页
oracle图书管理系统数据库设计与实现.docx_第2页
第2页 / 共15页
oracle图书管理系统数据库设计与实现.docx_第3页
第3页 / 共15页
oracle图书管理系统数据库设计与实现.docx_第4页
第4页 / 共15页
oracle图书管理系统数据库设计与实现.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

oracle图书管理系统数据库设计与实现.docx

《oracle图书管理系统数据库设计与实现.docx》由会员分享,可在线阅读,更多相关《oracle图书管理系统数据库设计与实现.docx(15页珍藏版)》请在冰豆网上搜索。

oracle图书管理系统数据库设计与实现.docx

oracle图书管理系统数据库设计与实现

本页仅作为文档封面,使用时可以删除Thisdocumentisforreferenceonly-rar21year.March

 

oracle图书管理系统数据库设计与实现(总19页)

 

滨江学院

题目图书管理系统数据库设计与实现

院系

年级班级

学生姓名

学号

学期

任课教师

 

2014年12月5日

1系统分析

需求分析

随着互联网的爆炸性发展,人们越来越习惯于利用网络来实现所需的服务,网络已深深影响到人们生活的各个方面。

另外,传统的图书馆不能满足一部分现代人的需要,而电子阅览室,由于其不受时间与空间的限制同时又具有传统图书馆的大部分功能,能够满足各类用户的常规与特殊需求,而且其方便快捷,实现技术又比较成熟,因此受到当代人的喜爱。

图书馆在正常运营中面对大量书籍、读者信息以及两者间相互联系产生的借书信息、还书信息。

现有的人工记录方法既效率低又错误过多,大大影响了图书馆的正常管理工作。

因此需要对书籍资源、读者资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,有利于管理效率的提高

该系统主要分为两部分:

读者部分和管理员部分。

为了方便读者查找自己感兴趣的主题进行阅读,要将图书按照内容进行分类。

读者可以按照类别进行查找,逐级浏览、可以查看自己的信息。

本系统还可对用户的账号和书目的阅读权限进行管理。

管理员需要给用户分配用户名和密码,及设定用户的级别。

设计目标

图书管理系统的开发主要要实现的目标有以下几个方面:

(1)界面设计友好、美观。

(2)数据存储安全、可靠。

(3)信息分类清晰、准确。

(4)强大的查询功能,保证数据查询的灵活性。

(5)实现对图书借阅和归还过程的全程数据信息跟踪。

(6)提供图书借阅排行榜,为图书管理员提供了真实的数据信息。

(7)提供灵活、方便的权限设置功能,使整个系统的管理分工明确。

(8)具有易维护性和易操作性。

项目规划

(1)登录模块

用户登录:

用户在登陆页面登陆,登陆成功进入系统。

管理员登陆:

用于管理员的登陆,在后台登陆页面登陆,登陆成功进入系统。

图书管理员与系统管理员后台功能不一样。

查询用户表,对应用户名、密码正确则进入系统,对应用户名密码不正确则显示相应信息

(2)图书管理模块

对图书进行添加、查询、修改、删除、添加。

将输入的图书信息添加到数据库图书表中,以方便进行各种查询及更新操作,根据输入的图书名称或作者,查询数据库图书表中的相应记录并显示相应图书信息,更新数据库图书表中对应记录并显示更新后的图书信息,删除数据库图书表中对应记录。

(3)副本信息模块

对图书的副本信息进行添加、修改、删除。

将输入的图书副本信息添加到副本表中,并分配一个独立的中南码根据输入的中南码或国际标准图书编码,查询图书副本表,显示副本信息更新副本表的数据库、删除副本表中所对应的图书信息、修改副本表中错误的信息并更新数据库。

(4)用户管理模块

对用户进行添加、删除、修改。

将输入的用户信息添加到用户表中,并分配一个独立的用户号根据输入的用户名的姓名或生日,查询用户表,显示用户信息更新用户表的数据库、删除用户表中所对应的、修改用户中错误的信息并更新数据库。

2数据库设计

系统功能模块设计

根据图书管理系统的实际需求,可以将图书管理系统划分为管理员页面和读者页面,2个主页面,每个主页面又分为若干个的具体功能的分页面,功能结构图如图所示。

 

图书管理系统

管理员主页面

读者主页面

用户信息管理界面

添加图书

修改出版信息

修改副本信息

修改人代码

图书信息查询

图书副本信息查询

图图书管理系统功能图

数据库概念结构设计

管理员E-R图如下图所示:

 

管理员

姓名

密码

加入时间

用户名

图管理员E-R图

学生E-R图如下图所示:

 

读者

学号

密码

姓名

用户名

电话

班级

院系

性别

图学生E-R图

图书E-R图如下图所示:

 

读者

图书姓名

库存

作者

价格

图书编号

图示类别

出版社

图图书E-R图

系统总E-R图,如图所示

图图书管理系统数据库E-R图

数据库逻辑结构设计

数据库设计有8张表,分别是:

Users表(用户表)Books表(书籍表)Copies表(副本表)、Authors表(作者表)、Categories表(分类目录表)、Writers表(写书表)、Publishers表(出版社表)、Borrow表(借阅表)

表Books表

字段

数据类型

数据长度

能否为空

中文名

备注

ISBN

Char

20

国际标准图书编码

主键

Title

Char

30

书名

Pubname

Char

30

出版者名

Author

Char

30

作者名

Authorno

Number

30

作者号

ZNCode

Number

30

中南分校码

表Copies表

字段

数据类型

数据长度

能否为空

中文名

备注

CopyNo

Number

10

副本编号

主键

ISBN

Char

20

国际标准图书编码

表Authors表

字段

数据类型

数据长度

能否为空

中文名

备注

AuthorNo

Number

10

作者号

主键

AuthorName

Char

20

作者名

表Categories表

字段

数据类型

数据长度

能否为空

中文名

备注

ZNCode

Number

20

中南分校码

主键

CateName

Char

20

目录名

表Writers表

字段

数据类型

数据长度

能否为空

中文名

备注

ISBN

Char

20

国际标准图书编码

主键

AuthorNo

Number

20

作者号

主键

 

表Publishers表

字段

数据类型

数据长度

能否为空

中文名

备注

PubName

Char

30

出版者名

主键

Address

Char

50

地址

表Users表

字段

数据类型

数据长度

能否为空

中文名

备注

UsersNo

Number

12

用户编号

主键

UserName

Char

20

用户名

UserPwd

Char

20

用户密码

Quanxian

Number

20

权限

Birthday

Date

用户生日

Email

Char

30

用户的邮箱

Tel

Char

20

用户的联系电话

Address

Char

20

籍贯

3数据库系统设计与实现

创建和管理表

创建表空间

创建数据专属表空间,

SQL>createtablespacedata

2logging

3datafile'D:

\oracle\product\'

4size50m

5reuseautoextendoff;

创建数据表

根据数据逻辑结构表创建数据表,注意要有表中的约束的定义,以及表间的约束的定义。

(1)创建Books表

SQL>createtableBooks

2(isbnchar(20)notnullprimarykey,

3titlechar(30),

4pubnamechar(30),

5authorchar(30),

6authornonumber(30),

7zncodenumber(30));

(2)创建Copies表

SQL>createtablecopies

2(copynonumber(10)notnullprimarykey,

3isbnchar(20));

(3)创建Authors表

SQL>createtableAuthors

2(authornonumber(10)notnullprimarykey,

3authornamechar(20));

(4)创建Categories表

SQL>createtableCategories

2(zncodenumber(20)notnullprimarykey,

3catenamechar(20));

(5)创建Writers表

SQL>createtableWriters

2(isbnchar(20)notnull,

3authornonumber(20)notnull);

(6)创建Publishers表

SQL>createtablePublishers

2(pubnamechar(30)notnullprimarykey,

3addresschar(50));

(7)创建Users表

SQL>createtableUsers

2(UserNamechar(20)notnull,

3UserPwdchar(20)notnull,

4UserNonumber(12)primarykey,

5Birthdatenotnull,

6Quanxiannumber(20),

7Emailchar(30),

8TELchar(20),

9Addresschar(20));

创建和管理视图

(1)创建视图“cx_books”,要求查看图书的国际标准图书编码,书名,出版社名,中南分校编码,作者名,作者号。

SQL>createorreplaceviewcx_books

2as

3selectISBN,Title,PubName,ZNCode,author,authorno

4fromBooks;

(2)创建视图“cx_zj”,要求各用户只能查找作家出版社的图书名称,作者,副本编号。

SQL>createorreplaceviewcx_zj

2as

3selecttitle,author,copyno

4fromBooks,Copies

5where=andPubName='作家出版社';

(3)创建视图“cx_anni”,要求查看作者为安妮宝贝所有的图书信息的视图。

SQL>createorreplaceviewcx_anni

2as

3select*

4fromBooks

5whereauthor='安妮宝贝';

创建和管理序列

创建序列“cx_un”,要求序列值从1开始,增长步长为1,无最大值限制,不循环,默认高速缓存20列值,不保证有序

SQL>createsequencecx_un

2increment

3by1startwith1

4nomaxvaluenocycle;

创建和管理索引

(1)在Books表中的书名创建索引。

SQL>createindexBooks_title_idx

2onBooks(title);

(2)为Users表的姓名创建索引。

SQL>createindexUsers_username_idx

2onUsers(username);

(3)为副本表中的副本编号创建索引

SQL>createindexCopies_copyno_idx

2onCopies(copyno);

3.5创建和管理存储过程

添加书籍信息的存储过程BooksAdd,当管理员进行信息添加时,可以快速调用。

SQL>createorreplaceprocedureBooksAdd

2(isbninchar,titleinchar,pubnameinchar,

3authorinchar,authornoinchar,zncodeinchar)

4as

5begin

6insertintoBooks

7values(isbn,title,pubname,author,authorno,zncode);

8endBooksAdd;

9/

创建和管理触发器

删除Books书籍信息表中的一条记录,删除记录isbn的字段值在Copies副本信息表中对应的记录

SQL>createorreplacetriggerBooksDelete

2afterdeleteonBooksforeachrow

3begin

4deletefromCopies

5whereisbn=:

;

6endBooksDelete;

7/

4数据库访问

数据查询

(1)查询图书表中作者号为2的作者所有作品的书名和出版社。

(2)查找所有姓王的用户的编号,姓名,联系电话,地址。

(3)查找由作家出版社出版的所有图书的副本编号。

数据更新

表中数据的插入

(1)Books表

insertintoBooks(ISBN,Title,PubName,ZNCode,author,authorno)

values('A0001','草样年华','长江文艺出版社',1,'孙睿',1);

InsertintoBooks(ISBN,Title,PubName,ZNCode,author,authorno)

values('A0002','莲花','武汉大学出版社',2,'安妮宝贝',2);

InsertintoBooks(ISBN,Title,PubName,ZNCode,author,authorno)

values('A0003','小王子','作家出版社',3,'黄葒',3);

InsertintoBooks(ISBN,Title,PubName,ZNCode,author,authorno)

values('A0004','彼岸花','北京大学出版社',4,'安妮宝贝',2);

InsertintoBooks(ISBN,Title,PubName,ZNCode,author,authorno)

values('A0005','二三事','武汉大学出版社',5,'安妮宝贝',2);

InsertintoBooks(ISBN,Title,PubName,ZNCode,author,authorno)

values('A0006','霜冷长河','作家出版社',6,'余秋雨',4);

InsertintoBooks(ISBN,Title,PubName,ZNCode,author,authorno)

values('A0007','笛声何处','作家出版社',7,'余秋雨',4);

insertintoBooks(ISBN,Title,PubName,ZNCode,author,authorno)

values('A0008','梦里花落知多少','长江文艺出版社',8,'郭敬明',5);

insertintoBooks(ISBN,Title,PubName,ZNCode,author,authorno)

values('A0009','小时代','长江文艺出版社',9,'郭敬明',5);

insertintoBooks(ISBN,Title,PubName,ZNCode,author,authorno)

values('A00010','三重门','作家出版社',10,'韩寒',6);

(1)Copies表

insertintocopies(copyno,isbn)values(1001,'A0001');

insertintocopies(copyno,isbn)values(1002,'A0002');

insertintocopies(copyno,isbn)values(1003,'A0003');

insertintocopies(copyno,isbn)values(1004,'A0004');

insertintocopies(copyno,isbn)values(1005,'A0005');

insertintocopies(copyno,isbn)values(1006,'A0006');

insertintocopies(copyno,isbn)values(1007,'A0007');

insertintocopies(copyno,isbn)values(1008,'A0008');

insertintocopies(copyno,isbn)values(1009,'A0009');

insertintocopies(copyno,isbn)values(10010,'A00010');

(2)Users表

insertintoUsers(UserName,UserPwd,UserNo,Birth,QuanXian,Email,TEL,Address)

Values('冯美','123',1,1,TO_DATE('1986-09-01','YYYY-MM-DD'),'','','hubei');

InsertintoUsers(UserName,UserPwd,UserNo,Birth,QuanXian,Email,TEL,Address)

values('王灿','456',2,2,TO_DATE('1998-10-09','YYYY-MM-DD'),'','30','hubei');

InsertintoUsers(UserName,UserPwd,UserNo,Birth,QuanXian,Email,TEL,Address)

values('杨攀','789',3,2,TO_DATE('1984-10-01','YYYY-MM-DD'),'','16','hubei');

InsertintoUsers(UserName,UserPwd,UserNo,Birth,QuanXian,Email,TEL,Address)

values('张楠楠','111',4,2,TO_DATE('1978-02-09','YYYY-MM-DD'),'2@','20','hubei');

InsertintoUsers(UserName,UserPwd,UserNo,Birth,QuanXian,Email,TEL,Address)

values('王子莫','222',5,2,TO_DATE('1989-01-09','YYYY-MM-DD'),'','36','hubei');

InsertintoUsers(UserName,UserPwd,UserNo,Birth,QuanXian,Email,TEL,Address)

values('李丽','333',6,2,TO_DATE('1989-01-09','YYYY-MM-DD'),'','10','hubei');

InsertintoUsers(UserName,UserPwd,UserNo,Birth,QuanXian,Email,TEL,Address)

values('张婷','444',7,2,TO_DATE('1988-05-09','YYYY-MM-DD'),'','32','hubei');

InsertintoUsers(UserName,UserPwd,UserNo,Birth,QuanXian,Email,TEL,Address)

values('王维','555',8,2,TO_DATE('1986-07-19','YYYY-MM-DD'),'7@','10','hubei');

InsertintoUsers(UserName,UserPwd,UserNo,Birth,QuanXian,Email,TEL,Address)

values('刘晓林','666',9,2,TO_DATE('1989-11-16','YYYY-MM-DD'),'','03','hubei');

InsertintoUsers(UserName,UserPwd,UserNo,Birth,QuanXian,Email,TEL,Address)

values('罗莎','777',10,2,TO_DATE('1989-12-12','YYYY-MM-DD'),'','68','hubei');

数据的修改和删除

(1)数据的修改

将用户为9的用户的联系电话修改为06

updateUserssetTEL='06’whereuserno=9;

(2)数据的删除

将用户罗莎删除

deletefromUserswhereusername='罗莎';

数据合并

总计对图书馆里所有作者的数量进行统计。

SQL>createorreplacefunctioncount

2(cnuminchar)

3returnnumber

4as

5cntnumber;

6begin

7selectcount(author)intocnt

8fromBooks;

9return(cnt);

10endcount;/

结果集合操作

根据系统功能及数据分析,给出结果集集合的描述,并写出结果集集合的语句。

SQL>selectauthorno,isbnfromBookswhereauthorno=2

2intersect

3selectauthorno,isbnfromWriterswhereisbn=’A0006’

4orderbyauthornodesc;

 

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

当前位置:首页 > 高等教育 > 工学

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

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