对象关系数据库综合实例

上传人:油条 文档编号:47582042 上传时间:2018-07-03 格式:PPT 页数:72 大小:213.50KB
返回 下载 相关 举报
对象关系数据库综合实例_第1页
第1页 / 共72页
对象关系数据库综合实例_第2页
第2页 / 共72页
对象关系数据库综合实例_第3页
第3页 / 共72页
对象关系数据库综合实例_第4页
第4页 / 共72页
对象关系数据库综合实例_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《对象关系数据库综合实例》由会员分享,可在线阅读,更多相关《对象关系数据库综合实例(72页珍藏版)》请在金锄头文库上搜索。

1、综合实例定货系统订货系统 对象关系的设计与实现n一、系统简介n二、采用关系方法n三、采用对象表n四、采用对象视图一、系统简介n系统涉及的实体和联系 =顾客表,Customer_Info =货物表,Stock_Info =订货单,purchase_info =细目表 Items_infoCustomer_Infopurchase_infoStock_Infoitems_infomn1mmn11顾客信息n顾客表,Customer_Info货物信息n货物表,Stock_Info定货信息n订货单,purchase_infon定货条目(细目表)items_info二、采用关系方法n关系表的定义n对关系表

2、的数据操纵n基于关系表的查询与统计关系数据库的解决方案n采用关系方法将顾客信息,订货单,货物条目清 单组织成表。n将地址拆成为基本元素,如省、市、街道、邮编 等。n设置顾客的一个可能拥有电话的最大限度,每一 个电话表示为表的一列。n关系方法将订货条目从订货单中分离出来,单独 存放在一张表中,该表中有指向订货单表和货物表 的外键。关系表的定义n采用关系模型实现对现实世界的抽象。n将实体定义为关系(表)。n实体间的联系通过外来码或关系表实现。n表中的字段必须是不可分割的基本单位。n不允许表中嵌表。n通过表的连接实现多表查询。CREATE TABLE customer_info ( custno N

3、UMBER PRIMARY KEY, custname VARCHAR2(200), street VARCHAR2(200), city VARCHAR2(200),state VARCHAR2(200), zip VARCHAR2(6), phone1 VARCHAR2(20), phone2 VARCHAR2(20), phone3 VARCHAR2(20) );建立顾客表建立货物表CREATE TABLE stock_info ( stocknoNUMBER PRIMARY KEY, cost NUMBER,tax_code NUMBER );CREATE TABLE purchase

4、_info ( pono NUMBER PRIMARY KEY, custnoNUMBER REFERENCES customer_info(custno), orderdateDATE, shiptodate DATE, shiptostreetVARCHAR2(200), shiptocityVARCHAR2(200),shiptostate VARCHAR2(200), shiptozipVARCHAR2(20) );建立定货表建立细目表CREATE TABLE items_info ( lineitemno NUMBER, pono NUMBER REFERENCES purchase

5、_info(pono), stockno NUMBER REFERENCES stock_info(stockno), quantity NUMBER, discount NUMBER, PRIMARY KEY (pono, lineitemno) );向关系表插入数据n向顾客表插入数据 INSERT INTO customer_info VALUES (1, Jean Nance, 2 Avocet Drive, Redwood Shores, CA, 95054, 415-555-1212, NULL, NULL) ; INSERT INTO customer_info VALUES (2

6、, John Nike, 323 College Drive, Edison, NJ, 08820, 609-555-1212, 201-555-1212, NULL) ;n向货物表插入数据 INSERT INTO stock_info VALUES(1004, 6750.00, 2) ; INSERT INTO stock_info VALUES(1011, 4500.23, 2) ; INSERT INTO stock_info VALUES(1534, 2234.00, 2) ; INSERT INTO stock_info VALUES(1535, 3456.23, 2) ;向关系表插

7、入数据n向定货单表插入数据INSERT INTO purchase_info VALUES (1001, 1, SYSDATE, 10-5月-1997, NULL, NULL, NULL, NULL) ;INSERT INTO purchase_info VALUES (2001, 2, SYSDATE, 20-5月-1997, 55 Madison Ave, Madison, WI, 53715) ;n向定货单条目插入数据 INSERT INTO items_info VALUES(01, 1001, 1534, 12, 0) ; INSERT INTO items_info VALUES(

8、02, 1001, 1535, 10, 10) ; INSERT INTO items_info VALUES(10, 2001, 1004, 1, 0) ; INSERT INTO items_info VALUES(11, 2001, 1011, 2, 1) ;关系表的查询查询订货单1001的顾客信息和订货详细信息 (多表连接) SELECT C.custno, C.custname, C.street, C.city, C.state, C.zip, C.phone1, C.phone2, C.phone3, P.pono, P.orderdate, L.stockno, L.linei

9、temno, L.quantity, L.discount FROM customer_info C, purchase_info P, items_info L WHERE C.custno = P.custno AND P.pono = L.pono AND P.pono = 1001;关系表的查询SELECT P.pono,C.custname, P.orderdate, cursor(select stockno,lineitemno,quantity,discount from items_info where pono=p.pono) 细目表见下 FROM customer_inf

10、o C, purchase_info P WHERE P.custno = C.custno AND P.pono = 2001关系表的查询PONO CUSTNAME ORDERDATE 细目表见下 - - - -2001 John Nike 14-10月-00 CURSOR :4CURSOR STATEMENT :4STOCKNO LINEITEMNO QUANTITY DISCOUNT - - - - -1004 10 1 01011 11 2 1数据操纵-查询数据n统计每一个订货单的总价值 SELECT L.pono, SUM(S.cost * L.quantity) FROM item

11、s_info L, stock_info S WHERE L.stockno = S.stockno GROUP BY L.pono ;n查询涉及货物1004 的订货单及订货条目信息 SELECT P.pono, P.custno, L.stockno, L.lineitemno,L.quantity, L.discount FROM purchase_info P, items_info L WHERE P.pono = L.pono AND L.stockno = 1004;数据操纵-维护数据n修改数据: = 更改1001订货单中货物号为1535的订货量 UPDATE items_info

12、 SET quantity=20 WHERE pono=1001 AND stockno = 1535;n删除数据: = 删除编号为1001的订货单 DELETE FROM items_info (先删细目表记录) WHERE pono = 1001; DELETE FROM purchase_info (再删主表记录) WHERE pono = 1001;三、采用对象表q 面向对象解决方案 q 定义类型及类型体 q 创建对象表 q 对象表的数据操作实现对象关系的方法nO R 对象关系方法n用户自定义数据类型使得复杂数据结构进入数据 库模式中。n不将address拆散,也不将联系电话存为不相关

13、 的多列,在OR中可以定义特殊的类型表示。n不将订货条目以单独表管理,OR中将他们作 为相应订货表的嵌套表。n收集类型作为多值属性n在OR方法中,主要实体 顾客,货物,订货单 变为对象。n对象引用表示他们之间n:1的关系,定义类型n定货系统中的类型: =地址 address_t 对象类型 =多个电话 phone_list_t 变长数组类 型 =顾客 customer_info_t 对象类型 =货物 stock_info_t 对象类型 =货物条目 line_item_t 对象类型 =多个货物条目 line_item_list_t 嵌套 表类型 =定货单 purchase_info_t 对象类型

14、定义类型n定义一个对象类型表示地址信息 CREATE TYPE address_t AS OBJECT (street VARCHAR2(200),city VARCHAR2(200),state CHAR(2),zip VARCHAR2(20) ) ;n定义一个数组类型,表示顾客的几部电话 CREATE TYPE phone_list_t AS VARRAY(10) OF VARCHAR2(20) ;定义类型n定义一个对象类型表示定货条目信息 CREATE TYPE line_item_t AS OBJECT (lineitemno NUMBER,STOCKREF REF stock_info_t, quantity NUMBER, discount NUMBER ) ;n定义一个嵌套表类型,表示定货单中的货物条目 信息 CREATE TYPE line_item_list_t AS TABLE OF line_item_t ;定义类型n定义一个对象类型表示顾客 CREATE TYPE customer_info_t AS OBJECT (custno NUMBER,custname VARCHAR2(20

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号