oracle三級項目_第1頁
oracle三級項目_第2頁
oracle三級項目_第3頁
oracle三級項目_第4頁
oracle三級項目_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、項目名稱:超市管理系統的設計與實現 1. 需求描述大型超市在正常運營中面對大量會員、員工信息商品信息及部門信息的復雜多樣性。現有的人工記錄方法既效率低又錯誤過多,大大影響了大型超市的正常管理工作。因此需要對商品資源、會員資源、員工信息、部門結構信息進行管理,及時了解各個環節中信息的變更,有利于管理效率的提高。2. 概念結構設計商品號商品名畫出系統E-R圖。出售時間BILL出售價格賬單號會員名性別出售時間年齡出售時間Us電話會員號會員等級地址類別重量出售時間產地GOODS商品名商品號地址性別年齡出售時間電話EMPLOYEES員工名工資員工號職位部門名部門號管理號Department3. 邏輯結構

2、設計(1)表的設計 根據E-R圖設計關系模式,設計表。商品出售表(BILL)的結構序號字段名稱字段說明類型位數屬性備注1BILLID賬單號數字6必須非空2GOODSNAME商品名文本20必須非空3GOODNUM商品號數字10必須非空4BILLTIME出售時間Date2可為空5ISPAY售出價格文本10可為空會員信息表(US)的結構序號字段名稱字段說明類型位數屬性備注1USERID用戶編號數字6必須非空2USERNAME 用戶姓名文本20可為空3SEX 性別數字10可為空4AGE 年齡數字2可為空5TELPHONE電話文本20可為空6ADDRESS 地址文本20可為空7Power會員等級文本20

3、可為空8PASSWORD密碼文本20可為空商品信息表(GOODS)的結構序號字段名稱類型位數屬性備注1GOODSID商品編號數字6必須非空2GOODSNAME商品名文本20可為空3FAMILY 類別文本200可為空4WEIGHT 重量數字2可為空5ADDRESS 出產地文本20可為空員工信息表(EMPLOYEES)的結構序號字段名稱類型位數屬性備注1EMPLOYEEID員工編號數字6必須非空2EMPLOYEENAME員工名文本20可為空3Sex 性別文本200可為空4Avg 年齡數字2可為空5TELPHONE電話數字15可為空6ADDRESS地址文本20可為空7SALARY工資數字10可為空8

4、JOB職位文本20可為空部門信息表(DEPARTMENTS)的結構序號字段名稱類型位數屬性備注1DEPARTMENTID部門號數字6必須非空2DEPARTMENTNAME部門名文本20可為空3MANAGER_ID 管理號文本200可為空(2) 序列的設計為了方便產生員工信息、部門信息創建兩個序列自動產生相應的編號創建一個名為employeesseq的序列,用于產生員工編號,起始值為100,步長為1,不緩存,不循環。 創建一個名為DEPARTMENTS_SEQ的序列,用于產生部門編號,起始值為5,步長為10,最大值為10000,不緩存,不循環。(3) 視圖的設計創建一個名為emp_detail_

5、view的視圖,用于員工信息綜合查詢,包括員工編號、員工名、職位名稱、地址等信息。(4) 索引的設計為了提高查詢效率創建索引。在EMPLOYEES表的JOB列上建名為EMP_JOB_INDX的平衡樹索引在employees表的employeename列上創建EMP_NAME_INDX的索引在employees表的ADDRESS列上創建EMP_ADD_INDX的索引GOODS 表的GOODSNAME列上創建GOOD_NAME_INDX的平衡樹索引;4. 數據庫實施(1)創建表create table BILL( BILLID NUMBER not null, GOODSNAME VARCHAR2

6、(20) not null, GOODSNUM NUMBER not null, ISPAY VARCHAR2(4) not null, BILLTIME DATE not null)tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited );alter table BILL add constraint BILLID primary key (BILLID) using index tablespace USERS pctfree 1

7、0 initrans 2 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited );commit;insert into BILL (BILLID, GOODSNAME, GOODSNUM, MONEY, ISPAY, SUPPLIERNAME, GOODSDESCRIBLE, BILLTIME)values (164, '名稱', 100, 1.2E+005, '是', '名稱', '描述', to_date('06-08-2015

8、9;, 'dd-mm-yyyy');commit;create table US( USERID NUMBER not null, USERNAME VARCHAR2(20), SEX VARCHAR2(10), AGE NUMBER, TELPHONE VARCHAR2(20), ADDRESS VARCHAR2(20), POWER VARCHAR2(20), PASSWORD VARCHAR2(20)tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K minextents 1

9、maxextents unlimited );alter table US add constraint USERID primary key (USERID) using index tablespace USERS pctfree 10 initrans 2 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited );commit;insert into US (USERID, USERNAME, SEX, AGE, TELPHONE, ADDRESS, POWER, PASSWORD)values (91,

10、 '清露', '男', 33, '#39;, '說的', '普通會員', '12345');insert into US (USERID, USERNAME, SEX, AGE, TELPHONE, ADDRESS, POWER, PASSWORD)values (85, 'zhshde', '男', 22, '#39;, 'xiam', '普通會員', '890628')

11、;insert into US (USERID, USERNAME, SEX, AGE, TELPHONE, ADDRESS, POWER, PASSWORD)values (87, 'zhsd', '男', 23, '#39;, 'sda', '普通會員', '890628');insert into US (USERID, USERNAME, SEX, AGE, TELPHONE, ADDRESS, POWER, PASSWORD)values (90, 'zhou

12、9;, '男', 45, '#39;, 'dv', '普通會員', '123456');insert into US (USERID, USERNAME, SEX, AGE, TELPHONE, ADDRESS, POWER, PASSWORD)values (1, 'admin', '男', 22, '#39;, '本地', '管理員', 'admin');insert into US

13、(USERID, USERNAME, SEX, AGE, TELPHONE, ADDRESS, POWER, PASSWORD)values (22, '王文宇', '男', 22, '#39;, '大連', '普通會員', '123456');commit;create table goods( GOODSID NUMBER not null, GOODSNAME VARCHAR2(20), FAMILY VARCHAR2(10), WEIGHT NUMBER, ADDRESS V

14、ARCHAR2(20) )tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited ); SELECT * FROM GOODS insert into GOODS (GOODSID, GOODSNAME, FAMILY, WEIGHT,ADDRESS)values (01, '百事可樂', '飲料', 0.5,'武漢');insert into GOODS (GOODSID, GOODSN

15、AME, FAMILY, WEIGHT,ADDRESS)values (02, '可比克', '膨化食品', 0.3,'浙江');create table employees( employeeID NUMBER not null, employeeNAME VARCHAR2(20), SEX VARCHAR2(10), AGE NUMBER, TELPHONE VARCHAR2(20), ADDRESS VARCHAR2(20), salary NUMBER(20), JOB VARCHAR2(20)tablespace USERS pctfr

16、ee 10 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited ); insert into employees (employeeID, employeeNAME, SEX, AGE, TELPHONE, ADDRESS, salary,job)values (01, '劉偉康', '男', 23, '#39;, '東軟', '1200', '銷售員');select *fr

17、om billcreate table departments( departmentID NUMBER not null, departmentNAME VARCHAR2(20), manager_id VARCHAR2(20)tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited ); insert into departments (departmentID, departmentNAME,manager_id)values (0

18、1, '銷售部',001);select * from departmentsselect * from us(2)創建序列創建一個名為employeesseq的序列,用于產生員工編號,起始值為100,步長為1,不緩存,不循環。 CREATE SEQUENCE EMPLOYEES_SEQSTART WITH 100 INCREMENT BY 1 NOCACHE NOCYCLE創建一個名為DEPARTMENTS_SEQ的序列,用于產生部門編號,起始值為5,步長為10,最大值為10000,不緩存,不循環。CREATE SEQUENCE DEPARTMENTS_SEQSTART WI

19、TH 5 INCREMENT BY 10 MAXVALUE 10000 NOCACHE NOCYCLE(3) 創建索引在EMPLOYEES表的JOB列上建名為EMP_JOB_INDX的平衡樹索引CREATE INDEX EMP_JOB_INDX ON EMPLOYEES(JOB) TABLESPACE INDX;在employees表的employeename列上創建EMP_NAME_INDX的索引CREATE INDEX EMP_NAME_INDX ON EMPLOYEES(EMPLOYEENAME) TABLESPACE INDX;在employees表的ADDRESS列上創建EMP_AD

20、D_INDX的索引CREATE INDEX EMP_ADD_INDX ON EMPLOYEES(ADDRESS) TABLESPACE INDX;GOODS 表的GOODSNAME列上創建GOOD_NAME_INDX的平衡樹索引;CREATE INDEX GOOD_NAME_INDX ON GOODS(GOODSNAME) TABLESPACE INDX;(4) 創建視圖創建一個名為emp_detail_view的視圖,用于員工信息綜合查詢,包括員工編號、員工名、職位名稱、地址等信息。CREATE OR REPLACE VIEW EMP_DETAIL_VIEW(EMPLOYEE_ID,JOB,

21、EMPLOYEENAME,ADDRESS)ASSELECT EMPLOYEE_ID,EMPLOYEE_NAME,JOB,ADDRESS FROM EMPLOYEESWITH READ ONLY;5PL/SQL程序設計開發(1)存儲過程的設計1.創建一個名為proc_show_emp的存儲過程,以員工編號為參數,查詢并返回該員工的工資。CREATE OR REPLACE PROCEDURE PROC_SHOW_EMP(P_EMPID EMPLOYEES.EMPLOYEEID%TYPE)ASV_SAL EMPLPYEES.SALARY%TYPE;BEGINSELECT SALARY INTO V_

22、SAL FROM EMPLOYEES WHERE EMPLOYEEID=P_EMPID;DBMS_OUT.PUT_LINE(P_EMPID|SALARY IS:|V_SAL);EXCEPTION WHEN NO_DATA_FOUND THENDBMS_OUT.PUT_LINE(THE EMPLOYEE DOESN”T EXTSTS!);END PROC_SHOW_EMP;2.創建一個名為proc_RETURN_DEPTINFO的存儲過程,以部門編號為參數,查詢并返回該部門的名字。CREATE OR REPLACE PROCEDURE proc_RETURN_DEPTINFO(P_DEPTID

23、DEPARTMENTS.DEPARTMENTID%TYPE,P_name DEPARTMENTS.DEPARTMENTNAME%TYPE)ASBEGINSELECT DEPARTMENTNAME INTO P_NAME FROM DEPARTMENTSWHERE DEPARTMENTID=P_DEPTNO;EXCEPTION WHEN NO_DATA_FOUND THENDBMS_OUT.PUT_LINE(THE DEPARTMENT DOESN”T EXTSTS!);END proc_RETURN_DEPTINFO;(2) 函數的設計1. 創建名為FUNC_DEPT_MAGID的函數,以部門號為參數,返回部門管理的ID。CREATE OR REPLACE FUNCTION FUNC_DEPT_MAGID(P_DEPTNO DEPARTMENTS.DEPARTMENTID%TYPE)ASV_MAGID DEPARTMENTS.MANAGER_ID%TYPEBEGINSELECT MANAGER_ID INTO V_MAGID FROM DEPARTMENTS WHERE DEPARTMENTID=P_DEPTNO;RETURN V_MAGID;EXCEPTION WHEN NO_DATA_FOUND T

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論