Oracle第16章基于Oracle数据库的应用开发8173
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据类型 NUMBER VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 NUMBER NUMBER VARCHAR2
长度 11 10 15 30 20 1 11
1000
约束 主码 NOT NULL
取值为0或1 外码
说明 读者编号 读者姓名 联系电话 邮箱地址 所在院系 借阅权限 读者类型
预约日期
Oracle10g 数据库基础教程
序列设计
SEQ_READERS:产生读者编号,起始值为10 000。
SEQ_BOOKS:产生图书编号,起始值为100。
Oracle10g 数据库基础教程
视图设计
创建名为“READER_BOOK_VIEW”的视图, 包括读者信息、所借图书信息及借阅信息。
16.1图书管理系统数据库设计与开发
图书管理系统需求分析 图书管理系统数据库对象设计 图书管理系统数据库对象创建 图书管理系统应用开发
Oracle10g 数据库基础教程
16.1.1 图书管理系统需求分析
Oracle10g 数据库基础教程
16.1.2 图书管理系统数据库对象设计
表设计 序列设计 视图设计 PL/SQL功能模块设计
创建book_class表
CREATE TABLE book_class( clASsid NUMBER(11) PRIMARY KEY, clASsname VARCHAR2(20) NOT NULL, demo VARCHAR2(100));
Oracle10g 数据库基础教程
创建book表
book_clASs(clASsid), booktype NUMBER(11) REFERENCES
book_type(typeid));
Oracle10g 数据库基础教程
创建borrow表
CREATE TABLE borrow( readerid NUMBER(11) REFERENCES
作时间借阅图书操作。
Oracle10g 数据库基础教程
16.1.3 图书管理系统数据库对象创建
创建admin表
CREATE TABLE admin( id NUMBER(11) PRIMARY KEY, username VARCHAR2(10) NOT NULL, pASsword VARCHAR2(11) NOT NULL);
约束 主码 NOT NULL NOT NULL
NOT NULL NOT NULL
外码 外码
说明 书籍编号
书籍名称 书籍作者 书籍作者 书籍作者 出版日期 出版社 图片地址 内容简介
价格 书籍ISBN码
学科类型 藏书类型
Oracle10g 数据库基础教程
READER_TYPE表结构及其约束
字段名
数据类型 长度
Oracle10g 数据库基础教程
表设计
BOOK_CLASS表结构及其约束
字段名 classid classname demo
数据类型 长度
约束
NUMBER 11
主码
VARCHAR2 20 NOT NULL
VARCHAR2 100
说明 学科类型编号 学科类型名称
说明
Oracle10g 数据库基础教程
Oracle10g 数据库基础教程
创建rule表
CREATE TABLE rule( booktype NUMBER(11) REFERENCES
book_type(typeid), readertype NUMBER(11) REFERENCES
reader_type(typeid), days NUMBER(5) NOT NULL, num NUMBER(5) NOT NULL, renew NUMBER(5) NOT NULL, overtime NUMBER(5,2) NOT NULL, PRIMARY KEY(booktype,readertype));
renew
NUMBER
5
NOT NULL 续借次数(次)
overtime NUMBER 5,2 NOT NULL
逾期处罚 (元/册/天)
Oracle10g 数据库基础教程
ADMIN表结构及其约束
字段名 Id
数据类型 长度
NUMBER11来自约束 主码说明 管理员编号
username VARCHAR2 10 password VARCHAR2 11
创建reader_type表
CREATE TABLE reader_type( typeid NUMBER(11) PRIMARY KEY, typename VARCHAR2(20) NOT NULL, demo VARCHAR2(100));
Oracle10g 数据库基础教程
创建reader表
borrow.bookid=book.bookid;
Oracle10g 数据库基础教程
创建视图book_type_stat_view
CREATE OR REPLACE VIEW book_type_stat_view AS SELECT booktype,COUNT(booktype) FROM (SELECT readerid,borrow.booktype, Booktype,borrowdate,due,last_due FROM borrow,book WHERE book.bookid=borrow.bookid)
创建名为“BOOK_TYPE_STAT_VIEW”的视图, 包括各类图书的借阅统计信息。
Oracle10g 数据库基础教程
PL/SQL功能模块设计
创建一个计算借阅超期天数的存储过程。 创建一个计算图书应归还日期的函数。 创建一个计算超期罚款的存储过程。 创建一个触发器,禁止星期六、星期日以及非工
Oracle10g 数据库基础教程
RULE表结构及其约束
字段名 数据类型 长度
约束
booktype NUMBER readertype NUMBER
11 外码 联合 主码
11 外码
说明 藏书类型编号
读者类型编号
days
NUMBER
5
NOT NULL
期限(天)
num
NUMBER
5
NOT NULL
册数(本)
CREATE TABLE reader( readerid NUMBER(11) PRIMARY KEY, name VARCHAR2(10) NOT NULL, telephone VARCHAR2(15), email VARCHAR2(30),dept VARCHAR2(20), right NUMBER(1) CHECK(right=0 or right=1), readertype NUMBER(11) REFERENCES
Oracle10g 数据库基础教程
本章内容
图书管理系统数据库设计与开发 基于Oracle数据库的人事管理系统开发
Oracle10g 数据库基础教程
本章要求
了解基于数据库的应用系统开发过程 了解图书管理系统开发的过程与实现 了解人事管理系统部分核心代码的实现
Oracle10g 数据库基础教程
BOOK_TYPE表结构及其约束
字段名 数据类型
typeid
NUMBER
typename VARCHAR2 demo VARCHAR2
长度 11 20 100
约束 主码
说明 图书类型编号
NOT NULL
图书类型名称 说明
BOOK表结构及其约束
字段名 bookid bookname author1 author2 author3 pubdate publish photo abstract price ISBN bookclass booktype
数据类型 NUMBER VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2
DATE VARCHAR2 VARCHAR2 VARCHAR2 NUMBER VARCHAR2 NUMBER NUMBER
长度 11 20 20 20 20
30 100 4000 7,2 17 11 11
Oracle10g 数据库基础教程
说明
Oracle10g 数据库基础教程
BORROW表结构及其约束
字段名 readerid
bookid
数据类型 NUMBER
NUMBER
长度 11
11
约束
外码 外码
联合 主码
说明 读者编号
图书编号
borrowdate due
last_due
DATE DATE DATE
出借日期 应还日期 实际归还日期
NOT NULL NOT NULL
管理员账号 账号密码
Oracle10g 数据库基础教程
PRECONCERT(预约表)表结构及其约束
字段名 数据类型 长度 约束
说明
readerid NUMBER 11 码主 联合 主码
bookid NUMBER 11 码主
读者编号 图书编号
predate DATE
创建视图reader_book_view
CREATE OR REPLACE VIEW reader_book_view AS SELECT name,bookname,borrowdate,due,last_due FROM reader,book,borrow WHWER reader.readid=borrow.readid AND
Oracle10g 数据库基础教程
计算借阅超期天数的存储过程
CREATE OR REPLACE PROCEDURE p_days_FROM_due(
v_readerid NUMBER,v_bookid NUMBER,v_days out NUMBER)
reader_type(typeid), demo VARCHAR2(1000));
Oracle10g 数据库基础教程
创建book_type表
CREATE TABLE book_type( typeid NUMBER(11) PRIMARY KEY, typename VARCHAR2(20) NOT NULL, demo VARCHAR2(100));
创建preconcert表
CREATE TABLE preconcert( readerid NUMBER(11) REFERENCES
reader(readerid), bookid NUMBER(11) REFERENCES
book(bookid), predate DATE, PRIMARY KEY(readerid,bookid));
reader(readerid), bookid NUMBER(11) REFERENCES
book(bookid),borrowdate DATE, due DATE,last_due DATE, PRIMARY KEY(readerid,bookid));
Oracle10g 数据库基础教程
CREATE TABLE book( bookid NUMBER(11) PRIMARY KEY, bookname VARCHAR2(20) NOT NULL, author1 VARCHAR2(20) NOT NULL, author2 VARCHAR2(20), author3 VARCHAR2(20), pubDATE DATE,publish VARCHAR2(30), photo VARCHAR2(100), abstract VARCHAR2(4000), price NUMBER(7,2) NOT NULL, isbn VARCHAR2(17) NOT NULL, bookclASs NUMBER(11) REFERENCES
Oracle10g 数据库基础教程
序列的创建
CREATE SEQUENCE seq_reader START WITH 1 INCREMENT BY 10000;
CREATE SEQUENCE seq_book START WITH 1 INCREMENT BY 100;
Oracle10g 数据库基础教程
约束
说明
typeid
NUMBER
11
主码
图书类型编号
typename VARCHAR2 20 NOT NULL 图书类型名称
demo VARCHAR2 100
说明
Oracle10g 数据库基础教程
READER表结构及其约束
字段名 readerid
name telephone
email dept right readertype demo