《数据库系统原理》实验报告(12)
根据实际语义,分析实体之间的联系,确定实体之间一对一,一对多和多对多联系。
实体-联系图(E-R图)如下:
OrderPartmPurchase1Customer11mBelong to1NationmBelong tompPartSuppn1IncludeLineitem1mBelong to1RegionSupplierm
(2)数据库逻辑结构设计
按照数据库设计原理中概念结构转化成逻辑结构的规则,每个实体转换成一个关系,多
对多的联系也转换成一个关系。因此,根据上述E-R图设计数据库逻辑结构(参见实
验1.1数据库定义中的图2TPC-H数据库模式图)。 (3)数据库物理结构设计
数据库物理结构首先根据逻辑结构自动转换生成,然后根据应用需求设计数据库的索引
结构、存储结构。
(4)数据库模式SQL语句参见实验1.1数据库定义。
四、实验总结
通过本次实验我基本掌握了数据库设计的基本步骤,包括数据库概念结构设计、逻辑结构设计、物理结构设计和数据库模式sql语句生成。并且学会了使用数据库设计的工具。
实验项目名称:数据库设计实验 实验学时: 4 同组学生姓名: 孟陈、陈晓雪、季佰军 实验地点: 1318 实验日期: 6.23 实验成绩: 批改教师: 批改时间:
一、实验目的和要求
1.掌握数据库PL/SQL编程语言,以及数据库存储过程的设计和使用方法; 2.掌握数据库PL/SQL编程语言以及数据库自定义函数的设计和使用方法; 3.掌握PL/SQL游标的设计、定义和使用方法,理解PL/SQL游标按行操作和SQL按结
果集操作的区别和联系。
二、实验内容及过程
1.存储过程定义,存储过程运行,存储过程更名,存储过程删除,存储过程的参数
传递。掌握数据库PL/SQL编程语言和编程规范,规范设计存储过程; 2.自定义函数定义,自定义函数运行,自定义函数更名,自定义函数删除,自定义函
数的参数传递。掌握PL/SQL和编程规范,规范设计自定义函数; 3.游标定义、游标使用。掌握各种类型游标的特点、区别和联系。
三、实验结果与分析
6.1 存储过程实验
(1)无参数的存储过程
① 定义一个存储过程,更新所有订单的(含税折扣价)总价 CREATE OR REPLACE PROCEDURE Proc_CalTotalPrice() AS BEGIN
UPDATE Orders SET totalprice =
(SELECT SUM(extendedprice * (1-discount)*(1+tax)) FROM Lineitem
WHERE Orders.orderkey=Lineitem.orderkey);
END;
② 执行存储过程Proc_CalTotalPrice()
CALL Proc_CalTotalPrice();
(2) 有参数的存储过程
① 定义一个存储过程,更新给定订单的(含税折扣价)总价。
CREATE OR REPLACE PROCEDURE Proc_CalTotalPrice4Order(okey INTEGER)
AS BEGIN
UPDATE Orders SET totalprice =
(SELECT SUM(extendedprice * (1-discount)*(1+tax)) FROM Lineitem
WHERE Orders.orderkey=Lineitem.orderkey AND
Lineitem.orderkey=okey);
END;
② 执行存储过程。
CALL Proc_CalTotalPrice4Order(5365);
(3)有局部变量的存储过程
① 定义一个存储过程,更新某个顾客的所有订单的(含税折扣价)总价。 CREATE OR REPLACE PROCEDURE Proc_CalTotalPrice4Customer(p_custname
CHAR(25)) AS
DECLARE
L_custkey INTEGER;
BEGIN
SELECT custkey INTO L_custkey FROM Customer
WHERE name=TRIM(p_custname); UPDATE Orders SET totalprice=
(SELECT SUM(extendedprice * (1-discount)*(1+tax)) FROM Lineitem
WHERE Orders.orderkey=Lineitem.orderkey AND
Orders.custkey=L_custkey);
END;
② 执行存储过程Proc_CalTotalPrice4 Customer()。 CALL Proc_CalTotalPrice4Customer(‘陆皆宇’); ③ 查看存储过程执行结果 SELECT*FROM Orders
WHERE custkey=(SELECT custkey FROM Customer WHERE name=’陈凯峰‘);
(4)有输出参数的存储过程
① 定义一个存储过程,更新某个顾客的所有订单的(含税折扣价)总价。 CREATE OR REPLACE PROCEDURE Proc_CalTotalPrice4Customer2(p_custname
CHAR(25),OUT p_totalprice REAL) AS DECLARE
L_custkey INTEGER; BEGIN
SELECT custkey INTO L_custkey FROM Customer
WHERE name=TRIM(p_custname);
RAISE NOTICE’custkey is %’,L_custkey; UPDATE Orders SET totalprice =
(SELECT SUM(extendedprice * (1-discount)*(1+tax)) FROM Lineitem
WHERE Orders.orderkey=
Lineitem.orderkey AND
Orders.custkey=L_custkey);
SELECT SUM(totalprice)INTO p_totalprice FROM Orders WHERE custkey =L_custkey; END;
② 执行存储过程Proc_CalTotalPrice4 Customer2() CALL Proc_CalTotalPrice4Customer2(‘陈凯峰’,null); ③ 查看存储过程执行结果 SELECT SUM(totalprice) FROM Orders
WHERE custkey=(SELECT custkey
FROM Customer
WHERE name=’陆皆宇‘);
(5)修改存储过程
① 修改存储过程名Proc_CalTotalPrice4Order为CalTotalPrice4Order ALTER PROCEDURE Proc_CalTotalPrice4Order RENAME TO CalTotalPrice4Order;
② 编译存储过程CalTotalPrice4Order
ALTER PROCEDURE CalTotalPrice4Order (okey INTEGER)COMPILE;
(6)删除存储过程
删除存储过程CalTotalPrice4Order。 DROP PROCEDURE CalTotalPrice4Order; 6.2 自定义函数实验
(1) 无参数的自定义函数
① 定义一个自定义函数,更新所有订单的(含税折扣价)总价,并返回所有订单的总
价之和。
CREATE OR REPLACE FUNCTION FUN_CalTotalPrice() RETURN REAL AS
DECLARE
res REAL; BEGIN
UPDATE Orders SET totalprice =
(SELECT SUM(extendedprice * (1-discount)*(1+tax)) FROM Lineitem
WHERE Orders.orderkey=Lineitem.orderkey);
SELECT SUM(toyalprice) INTO res FROM Orders; RETURN res; END;
② 执行自定义函数FUN_CalTotalPrice()。
SELECT TotalPrice();
(2)有参数的自定义函数
…… 此处隐藏:1627字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音




