好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

oracle订货系统综合知识概述.ppt

72页
  • 卖家[上传人]:F****n
  • 文档编号:96615355
  • 上传时间:2019-08-27
  • 文档格式:PPT
  • 文档大小:292.50KB
  • / 72 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 综合实例,定货系统,订货系统— 对象关系的设计与实现,一、系统简介 二、采用关系方法 三、采用对象表 四、采用对象视图,一、系统简介,系统涉及的实体和联系 顾客表,Customer_Info 货物表,Stock_Info 订货单,purchase_info 细目表 Items_info,Customer_Info,purchase_info,Stock_Info,items_info,,,,,m,n,1,m,m,n,1,1,顾客信息,顾客表,Customer_Info,货物信息,货物表,Stock_Info,定货信息,订货单,purchase_info 定货条目(细目表)items_info,二、采用关系方法,关系表的定义 对关系表的数据操纵 基于关系表的查询与统计,关系数据库的解决方案,采用关系方法将顾客信息,订货单,货物条目清单组织成表 将地址拆成为基本元素,如省、市、街道、邮编等 设置顾客的一个可能拥有的最大限度,每一个表示为表的一列 关系方法将订货条目从订货单中分离出来,单独存放在一张表中,该表中有指向订货单表和货物表的外键关系表的定义,采用关系模型实现对现实世界的抽象 将实体定义为关系(表)。

      实体间的联系通过外来码或关系表实现 表中的字段必须是不可分割的基本单位 不允许表中嵌表 通过表的连接实现多表查询CREATE TABLE customer_info ( custno NUMBER 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 ( stockno NUMBER PRIMARY KEY, cost NUMBER, tax_code NUMBER );,CREATE TABLE purchase_info ( pono NUMBER PRIMARY KEY, custno NUMBER REFERENCES customer_info(custno), orderdate DATE, shiptodate DATE, shiptostreet VARCHAR2(200), shiptocity VARCHAR2(200), shiptostate VARCHAR2(200), shiptozip VARCHAR2(20) );,建立定货表,建立细目表,CREATE TABLE items_info ( lineitemno NUMBER, pono NUMBER REFERENCES purchase_info(pono), stockno NUMBER REFERENCES stock_info(stockno), quantity NUMBER, discount NUMBER, PRIMARY KEY (pono, lineitemno) );,向关系表插入数据,向顾客表插入数据 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, 'John Nike', '323 College Drive', 'Edison', 'NJ', '08820', '609-555-1212', '201-555-1212', NULL) ; 向货物表插入数据 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) ;,向关系表插入数据,向定货单表插入数据 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') ; 向定货单条目插入数据 INSERT INTO items_info VALUES(01, 1001, 1534, 12, 0) ; INSERT INTO items_info VALUES(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.lineitemno, 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_info C, purchase_info P WHERE P.custno = C.custno AND P.pono = 2001,关系表的查询,PONO CUSTNAME ORDERDATE 细目表见下 --------- -------------------- ------------------ -------------------- 2001 John Nike 14-10月-00 CURSOR … :4 CURSOR STATEMENT :4 STOCKNO LINEITEMNO QUANTITY DISCOUNT ----------------- ------------------ --------------- ------- --------- 1004 10 1 0 1011 11 2 1,数据操纵--查询数据,统计每一个订货单的总价值 SELECT L.pono, SUM(S.cost * L.quantity) FROM items_info L, stock_info S WHERE L.stockno = S.stockno GROUP BY L.pono ; 查询涉及货物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;,数据操纵--维护数据,修改数据: 更改1001订货单中货物号为1535的订货量 UPDATE items_info SET quantity=20 WHERE pono=1001 AND stockno = 1535; 删除数据: 删除编号为1001的订货单 DELETE FROM items_info (先删细目表记录) WHERE pono = 1001; DELETE FROM purchase_info (再删主表记录) WHERE pono = 1001;,三、采用对象表,面向对象解决方案 定义类型及类型体 创建对象表 对象表的数据操作,实现对象关系的方法,O - R 对象关系方法 用户自定义数据类型使得复杂数据结构进入数据库模式中。

      不将address拆散,也不将联系存为不相关的多列,在O-R中可以定义特殊的类型表示 不将订货条目以单独表管理,O-R中将他们作为相应订货表的嵌套表 收集类型作为多值属性 在O-R方法中,主要实体 顾客,货物,订货单变为对象 对象引用表示他们之间n:1的关系,,定义类型,定货系统中的类型: 地址 address_t 对象类型 多个 phone_list_t 变长数组类型 顾客 customer_info_t 对象类型  货物 stock_info_t 对象类型  货物条目 line_item_t 对象类型 多个货物条目 line_item_list_t 嵌套表类型 定货单 purchase_info_t 对象类型 ,定义类型,定义一个对象类型表示地址信息 CREATE TYPE address_t AS OBJECT ( street VARCHAR2(200), city VARCHAR2(200), state CHAR(2), zip VARCHAR2(20) ) ; 定义一个数组类型,表示顾客的几部 CREATE TYPE phone_list_t AS VARRAY(10) OF VARCHAR2(20) ;,定义类型,定义一个对象类型表示定货条目信息 CREATE TYPE line_item_t AS OBJECT ( lineitemno NUMBER, STOCKREF REF stock_info_t, quantity NUMBER, discount NUMBER ) ; 定义一个嵌套表类型,表示定货单中的货物条目信息 CREATE TYPE line_item_list_t AS TABLE OF line_item_t ;,定义类型,定义一个对象类型表示顾客 CREATE TYPE customer_info_t AS OBJECT ( custno NUMBER, custname VARCHAR2(200), address address_t, phone_list phone_list_t, ORDER MEMBER FUNCTION cust_order(x IN customer_info_t) RETURN INTEGER, PRAGMA RESTRICT_REFERENCES ( cust_order, WNDS, WNPS, RNPS, RNDS) ) ;,定义。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.