Oracle图书馆管理系统
时间:2025-07-11
时间:2025-07-11
Oracle图书馆管理系统
实 训 报 告
教 学 院 计算机学院 课程名称 Oracle数据库系统实训 题 目 高校图书馆管理信息系统的数据
设计与实现
专 业 网络工程
班 级 姓 名 同组人员 指导教师
2014年 6月 24月日 日
Oracle图书馆管理系统
一、 需求分析
1.背景
随着计算机科学日渐成熟,科学技术的不断提高,图书馆希望设计一个图书
管理系统,用于管理读者的登记,图书的购入、借出、归还以及注销等。并且方便管理人员还查阅某位读者、某本图书的借阅情况。并可加快对当前借阅情况统计的效率,以全面掌握图书的流通情况、提高工作效率、加快信息反馈,为读者提供满意的借阅环境,减轻图书信息管理人员的劳动强度,提高工作效率和质量,从而使图书和读者的管理更加合理化和科学化。
2.实体与属性
图书 : 每本图书的编号、价格、书名、作者、出版时间、采订时间。 图书分类: 类别编号、类别名称、该类总数。 书库:书库编号、书库名称、位置。 地址:地区编号、地区名称、父编号。 出版社:出版社编号、出版社名称 。
读者:读者号、姓名、民族、性别、籍贯、身份证号、注册时间、读书证过期时间、借书数目。
系别:系别名、系别编号。
专业:入学时间、专业代码、专业名称、学年制。 借阅记录:借出时间、归还时间、应还时间。
3.实体之间在联系
图书 n :1 出版社 图书 n :1 分类 图书 n :1 书库 图书 n : 1读者
图书 1 :n 借阅记录 借阅记录 n :1 读者 出版社 n :1 地址
读者(籍贯) n :1 地址 读者 n : 1 系别 读者 n : 1 学历 读者 n : 1 专业
Oracle图书馆管理系统
二、概念结构设计
1.E-R图
根据概念模型设计的E-R图,提供了实体型、属性和联系。
2.数据项清单
Oracle图书馆管理系统
3.相关表信息
Oracle图书馆管理系统
三、逻辑、物理结构设计
为减少数据冗余,避免更新异常、插入异常和删除异常,该系统的关系模式被规范到3NF。系统数据库设计如下图所示。
Oracle图书馆管理系统
四、数据库实施
1.创建表
create table "Books" (
"Bno" CHAR(10) not null, "Cno" CHAR(10), "Sno" CHAR(10), "Pnumber" CHAR(10), "Bprice" INTEGER, "Bname" CHAR(20), "Bauthor" CHAR(20), "Bptime" DATE, "Bctime" DATE,
constraint PK_BOOKS primary key ("Bno") )
create table "Borrowing" (
"Rnumber" CHAR(10) not null, "Bno" CHAR(10) not null, "BOtime" DATE, "BOretime" DATE, "BOshtime" DATE, "BOfine" CHAR(2), "BOyesorno" CHAR(2),
constraint PK_BORROWING primary key ("Rnumber", "Bno") )
create table "Major" (
"Mno" CHAR(10) not null, "Mname" CHAR(20), "Myears" CHAR(1),
constraint PK_MAJOR primary key ("Mno") )
create table "Publisher" (
"Pnumber" CHAR(10) not null, "Adminid" CHAR(10), "Pname" CHAR(20),
constraint PK_PUBLISHER primary key ("Pnumber") )
create table "Readers" (
Oracle图书馆管理系统
"Rnumber" CHAR(10) not null, "Dno" CHAR(5), "Adminid" CHAR(10), "DEno" CHAR(5), "Mno" CHAR(10), "Rname" CHAR(20), "Rnation" CHAR(20), "Rsex" CHAR(2), "Rprovence" CHAR(10), "RIDcard" CHAR(18), "Rretime" DATE, "Rcount" CHAR(2), "Rintime" DATE,
constraint PK_READERS primary key ("Rnumber") )
2.创建索引
create index "Relationship_1_FK" on "Books" ( "Pnumber" ASC )
create index "Relationship_2_FK" on "Books" ( "Cno" ASC )
create index "Index_readerno" on "Borrowing" ( "Rnumber" ASC )
create index "Index_majorno" on "Readers" ( "Mno" ASC )
create index "Index_readername" on "Readers" ( "Rname" ASC )
3.创建视图
create or replace view "Rnumber_Department" as
select Readers.Rnumber,Major.Mname,Department.Department from Readers,Major,Department
Oracle图书馆管理系统
where Readers.Mno=Major.Mno and Readers.DEno=Department.DEno; with read only
create or replace view unit_reader as select
readerInfo.readerName,
readerInfo.readerPoliticsStatus, readerInfo.officePoistion, unitInfo.uintName from
unitInfo, readerInfo where
readerInfo.readerId2 = unitInfo.readerId2 with read only