工人數據庫管理系統課程設計_第1頁
工人數據庫管理系統課程設計_第2頁
工人數據庫管理系統課程設計_第3頁
工人數據庫管理系統課程設計_第4頁
工人數據庫管理系統課程設計_第5頁
已閱讀5頁,還剩19頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、課程設計說明書題目 工人數據庫管理系統系(部) 計算機科學與技術系專業(班級) 姓名 學號 指導教師 起止日期 課程設計任務書課程名稱:數據庫系統課程設計設計題目:工廠數據庫管理系統已知技術參數和設計要求:l工廠數據庫管理系統1、某工廠需建立一個管理數據庫存儲以下信息:工廠包括廠名和廠長名。一個廠內有多個車間,每個車間有車間號、車間主任姓名、地址和電話。一個車間有多個工人,每個工人有職工號、姓名、年齡、性別和工種。一個車間生產多種產品,產品有產品號、產品名稱和價格。一個車間生產多種零件,一個零件也可能為多個車間制造。零件有零件號、重量和價格。一個產品由多種零件組成,一種零件也可裝配出多種產品。

2、產品與零件均存入倉庫中。廠內有多個倉庫,倉庫有倉庫號、倉庫主任姓名和電話。2、系統功能的基本要求:按照一定條件查詢、統計工人和產品等基本信息,能模擬工廠生產過程中對原材料(零件)、產品檢測、庫存環節的管理。各階段具體要求:1、需求分析階段l 定義數據項的含義和取值l 定義目標系統的數據流2、概念結構設計階段l 畫出實體模型E-R圖3、邏輯結構設計階段l 將實體模型轉化為關系模型l 給出每個關系的主關鍵字和函數依賴集l 分析你所設計的關系數據庫模式是否屬于3NF4、物理設計階段l 確定所有字段的名稱、類型、寬度、小數位數及完整性約束 l 確定數據庫及表的名稱及其組成 l 確定索引文件和索引關鍵字

3、5、數據庫安全及維護設計階段l 設計一個適合的數據庫安全策略(用戶身份認證、訪問權限、視圖)l 為了實現復雜的數據完整性約束,設計適當的觸發器l 設計一個適合的數據庫備份策略6、實施階段l 要求所有操作必須在查詢分析器中用SQL語句或系統存儲過程完成。設計工作量:(1)軟件設計:完成問題陳述中所提到的所有需求功能。(2)論文:要求撰寫不少于3000個文字的文檔,詳細說明各階段具體要求。工作計劃:安排兩周時間進行課程設計,軟件開發步驟如下,第一周完成14,第二周完成58,論文同步進行;1)選定題目2)需求分析3)概念結構設計4)邏輯結構設計5)物理設計6)數據庫安全及維護設計7)數據庫上機實現8

4、)答辯計劃時間指導老師學生1516周徐長梅 10軟件B班1516周張肖霞10軟件2班1516周潘怡10軟件9班1516周孟志剛10軟件E班1516周胡易波10軟件4班10軟件7班10軟件C班1516周曾尖10軟件1班10軟件3班1516周毛偉10軟件5班10軟件D班1516周汪祥10軟件8班10軟件A班1516周胡靈敏10軟件6班注意事項n 提交文檔 長沙學院課程設計任務書(每學生1份) 長沙學院課程設計論文(每學生1份) 長沙學院課程設計鑒定表(每學生1份)指導教師簽名: 日期: 教研室主任簽名: 日期:系主任簽名: 日期:長沙學院課程設計鑒定表姓名鄒胤屏學號2010022615專業軟件工程

5、班級06設計題目工廠數據庫管理系統指導教師胡靈敏指導教師意見:評定等級: 教師簽名: 日期: 答辯小組意見:評定等級:答辯小組長簽名:日期:教研室意見:教研室主任簽名: 日期: 系(部)意見:系主任簽名:日期:說明課程設計成績分“優秀”、“良好”、“及格”、“不及格”四類;目 錄課程設計任務書2課程名稱:2設計題目:2已知技術參數和設計要求:2各階段具體要求:21、需求分析階段22、概念結構設計階段23、邏輯結構設計階段24、物理設計階段25、數據庫安全及維護設計階段26、實施階段3設計工作量:3工作計劃:3注意事項4長沙學院課程設計鑒定表5一、引言71.1編寫目的71.2參考資料7二、需求規

6、約72.1 業務描述72.2 需求分析7三、數據庫環境說明8四、數據庫的命名規則94.1 數據庫對象命名規則94.2 數據項編碼規則9五、邏輯設計9六、物理設計116.1表匯總116.2表X:XXX表126.3視圖的設計166.4存儲過程、函數及觸發器的設16七、安全性設計17源程代碼:17一、引言1.1 編寫目的本次做的題目是工廠管理系統,通過這次設計編寫數據庫設計文檔明白數據庫的表名、字段名等數據信息,同時明白在數據庫中是如何對表、視圖進行建立、修改、更新。通過這次簡單的設計為后來的數據庫腳本的開發做基礎。本文檔的讀者對象是需求人員、系統設計人員、開發人員、測試人員。1.2 參考資料 資料

7、名稱作者文件編號、版本數據庫系統概論王珊、薩師煊2006年5月第4版二、 需求規約2.1 業務描述(1)數據庫系統創建的背景 工廠數據庫管理系統(2)數據庫系統要完成的業務流程及工作內容1對工廠里的職工人的信息進行修改2對職工、產品、零件、倉庫、車間的信息查詢3在表中建立視圖4在職工表中建立索引(職工號,姓名)5 在表中建立存儲過程,觸發等(3)揭示該數據庫的資源需求和約束設計 每一個屬性都是所需求的,在每個表中都有主鍵約束,同時對某些屬性的設計是不能為空值,再某些表與表之間通過一個或多個外鍵來進行聯系,像職工表中的性別就只能是男或女這個利用了列級check來進行檢測。2.2 需求分析將業務流

8、程節點抽象成數據庫對象,并描述各個節點的依賴關系在數據上的反映。三、 數據庫環境說明數據庫實例數據庫系統數據庫部署環境數據庫設計工具數據庫存放位置說明實例名,文件名名稱:如MySql,版本:4.0軟硬件、網絡環境例如:pb,visio,rose存放位置,絕對路徑/相對路徑實例用途說明工人管理系統sql server2008軟硬件、網絡環境microsoft word2003、microsoft visio 2003桌面如:對職工表進行查詢、修改、更新建立視圖、索引等四、 數據庫的命名規則4.1 數據庫對象命名規則數據庫對象命名規則備注表關系名對應的英文例如:factory工廠表視圖view_表

9、名例如:view_shop車間視圖索引index_表名例如:index_worker職工索引存儲過程prco_表名例如:prco_part 零件信息等存儲觸發器tig_表名例如:tig_worker 職工觸發4.2 數據項編碼規則數據項命名規則數據類型長度范圍備注職工號(wno)車間號+工種號+序列號(兩位整數00-99)varchar10位是職工表(worker)中的主碼車間號(sno)兩位整數00-99五、 邏輯設計(1) 創建與數據庫相關的那部分實體關系圖(ERD)。(2) 創建數據庫系統的關系模型。 工廠信息表:factory字段名字段中文名字段類型是否允許NULL備注fname工廠名

10、CHAR40NOT NULL主鍵fcname廠長名VACHAR20NOT NULL 車間信息表:shop字段名字段中文名字段類型是否允許NULL備注sno車間號CHAR10NOT NULL主鍵sname車間主任名VACHAR40NOT NULLsadd車間地址char(40)sphone車間電話char(12)fname工廠名varchar(40)外鍵(factory) 工人信息表:worker字段名字段中文名字段類型是否允許NULL備注wno職工號CHAR15NOT NULL主鍵wname職工姓名VACHAR20NOT NULLwage職工年齡char(4)wsex職工性別char(2)wt

11、ype職工工種char(10)sno車間號char(10)外鍵(shop) 產品信息表:products字段名字段中文名字段類型是否允許NULL備注prno產品號CHAR10NOT NULL主鍵prname產品名稱VACHAR30NOT NULLpride產品價格smallintsno車間號char10外鍵(shop) 零件信息表:part字段名字段中文名字段類型是否允許NULL備注pano零件號CHAR10NOT NULL主鍵weight零件重量smallintNOT NULLppride零件價格smallintdno倉庫號CHAR10NOT NULL外鍵(depot) 產品_零件信息表:(

12、pr_pa)字段名字段中文名字段類型是否允許NULL備注prno產品號CHAR10NOT NULL主鍵pano零件號CHAR10NOT NULL主鍵 倉庫信息表:depot字段名字段中文名字段類型是否允許NULL備注dno倉庫號CHAR10NOT NULL主鍵dname倉庫主任姓名VACHAR40NOT NULLdphone倉庫電話char10fname工廠名varchar(40)外鍵(factory) 零件_倉庫信息表:part_depot字段名字段中文名字段類型是否允許NULL備注pano零件號CHAR10NOT NULL主鍵sno車間號CHAR10NOT NULL主鍵 產品_倉庫信息表:

13、products_depot字段名字段中文名字段類型是否允許NULL備注prno產品號CHAR10NOT NULL主鍵dno倉庫號CHAR10NOT NULL主鍵六、 物理設計6.1表匯總表名功能說明工廠(factory)存儲職工(worker)查詢,存儲,索引車間(shop)數據更新,存儲倉庫(depot)查詢,存儲,視圖零件(part)查詢,存儲,觸發,視圖,索引產品(products)查詢,存儲,視圖,索引產品_零件(products_ part)存儲產品_倉庫(products_depot)查詢,存儲,觸發零件_倉庫(part_ depot)存儲,觸發6.2 表X:XXX表表名fact

14、ory數據庫用戶factory主鍵fname varchar(40)其他排序字段索引字段序號字段名稱數據類型(精度范圍)允許為空Y/N唯一Y/N區別度默認值約束條件/說明1工廠名varchar(40)N主鍵2廠長名varchar(20)Nsql腳本create table factory( fname varchar(40) primary key, fcname varchar(20) not null ) 備注備注信息表名shop數據庫用戶factory主鍵sno char(10) 其他排序字段索引字段序號字段名稱數據類型(精度范圍)允許為空Y/N唯一Y/N區別度默認值約束條件/說明1車間

15、號varchar(40)N主鍵2車間主任名varchar(20)N3車間地址char(40)4車間電話char(12)5工廠名varchar(40)N外鍵sql腳本create table shop( sno char(10) primary key, sname varchar(20) not null, sadd char(40) , sphone char(12), fname varchar(40) ) foreign key(fname) references factory(fname) 備注備注信息表名worker數據庫用戶factory主鍵wno char(15)其他排序字段索

16、引字段wno,wname序號字段名稱數據類型(精度范圍)允許為空Y/N唯一Y/N區別度默認值約束條件/說明1職工號char(15)N主鍵2職工姓名char(20)N3職工年齡char(4)4職工性別char(2)check(wsex in(男,女)5工種wtype6車間號sno外鍵sql腳本create table worker (wno char(15) primary key, wname char(20) not null, wage char(4), wsex char(2) check(wsex in(男,女), wtype char(10), sno char(10) )creat

17、e index index_worker on worker(wno,wname)備注備注信息表名products數據庫用戶factory主鍵wno char(15) 其他排序字段index_productsprno,prname序號字段名稱數據類型(精度范圍)允許為空Y/N唯一Y/N區別度默認值約束條件/說明1產品號char(10)N主鍵2產品名稱varchar(30)N3產品價格smallint4車間號char(10)N外鍵sql腳本create table products (prno char(10) primary key, prname varchar(30) not null,

18、pride smallint, sno char(10) ) foreign key(sno) references shop(sno)create index index_products on products(prno,prname)表名part數據庫用戶factory主鍵pano char(10) 其他排序字段索引字段pano序號字段名稱數據類型(精度范圍)允許為空Y/N唯一Y/N區別度默認值約束條件/說明1零件號char(10)N主鍵2零件重量smallintN3零件價格smallint4工廠名varchar(40)N外鍵sql腳本create table part (pano ch

19、ar(10) primary key, weight smallint not null, ppride smallint, sno char(10) )foreign key(sno) references shop(sno) create index index_part on part(pano)備注備注信息表名products_part數據庫用戶factory主鍵sno char(10) prno char(10)其他排序字段索引字段序號字段名稱數據類型(精度范圍)允許為空Y/N唯一Y/N區別度默認值約束條件/說明1產品號char(10)N主鍵2零件號char(10)N主鍵sql腳本c

20、reate table products_part (pano char(10), prno char(10), primary key(pano,prno), )foreign key(prno) references products(prno),foreign key(pano) references part(pano)備注備注信息表名depot數據庫用戶factory主鍵dno char(10)其他排序字段索引字段序號字段名稱數據類型(精度范圍)允許為空Y/N唯一Y/N區別度默認值約束條件/說明1倉庫號varchar(40)N主鍵2倉庫名char(40)N3倉庫電話char(12)4

21、工廠名varchar(40)N外鍵sql腳本create table depot (dno char(10) primary key, dname char(40), dphone char(10), fname varchar(40) ) foreign key(fname) references factory(fname) 備注備注信息表名products_depot數據庫用戶factory主鍵prno char(10) dno char(10)其他排序字段索引字段序號字段名稱數據類型(精度范圍)允許為空Y/N唯一Y/N區別度默認值約束條件/說明1產品號char(10)N主鍵、外鍵2倉庫

22、號char(10)N主鍵、外鍵3產品名稱varchar(30)Nsql腳本create table products_depot (prno char(10), dno char(10), prname varchar(30) not null, primary key(prno,dno), )foreign key(dno) references depot(dno),foreign key(prno) references products(prno)備注備注信息表名part_depot數據庫用戶factory主鍵dno char(10) pano char(10)其他排序字段索引字段序號

23、字段名稱數據類型(精度范圍)允許為空Y/N唯一Y/N區別度默認值約束條件/說明1倉庫號char(10)N主鍵、外鍵2零件號char(10)N主鍵、外鍵sql腳本create table part_depot (dno char(10), pano char(10), primary key(dno,pano), foreign key(pano) references part(pano), foreign key(dno) references depot(dno) )備注備注信息6.3視圖的設計對于工人管理數據系統,如果想要知道零件或者產品在工廠的哪個車間倉庫,而這兩個信息又不是在同一個表

24、中,因此為了減少語句的使用,去掉些不必要查詢的屬性就在這兩個上建立了視圖,通過查詢視圖可以就快的能顯示。對于倉庫我也產品名稱及其對應的儲存數量創建了一個倉庫視圖。6.4存儲過程、函數及觸發器的設存儲過程:我每一個表中信息的插入都是通過存儲過程實現的觸發器 :觸發器我一共做了兩個,一個是產品觸發,別一個是零件觸發,當你在倉庫中放入或者拿出產品時就會觸發,若倉庫中無產品你無法拿出產品并輸出一條提示信息;若倉庫到達一定的數量那就 不能放入產品存儲并輸出提示信息。相應的零件觸發也是一樣的觸發功能。七、 安全性設計(1)創建了一個factory登錄名,密碼是123456exec sp_addlogin

25、factory,123456(2)創建一個數據完全備份把factory數據庫備份backup database factory to factory_full with init源程代碼:use factory -工廠信息表create table factory( fname varchar(40) primary key, fcname varchar(20) not null ) -車間信息表create table shop( sno char(10) primary key, sname varchar(20) not null, sadd char(40) , sphone cha

26、r(12), fname varchar(40) foreign key(fname) references factory(fname) ) -工人信息表 create table worker (wno char(15) primary key, wname char(20) not null, wage char(4), wsex char(2) check(wsex in(男,女), wtype char(10), sno char(10) foreign key(sno) references shop(sno) ) -建立職工索引 create index index_worker

27、 on worker(wno,wname) -產品信息表 create table products (prno char(10) primary key, prname varchar(30) not null, pride smallint, sno char(10) foreign key(sno) references shop(sno) ) -建立產品索引 create index index_products on products(prno,prname) -零件信息表 create table part (pano char(10) primary key, weight sm

28、allint not null, ppride smallint, sno char(10) foreign key(sno) references shop(sno) ) -建立零件索引 create index index_part on part(pano) -產品_零件信息表 create table products_part (pano char(10), prno char(10), primary key(pano,prno), foreign key(prno) references products(prno), foreign key(pano) references p

29、art(pano) ) -倉庫信息表 create table depot (dno char(10) primary key, dname char(40), dphone char(10), fname varchar(40), foreign key(fname) references factory(fname) ) -產品_倉庫信息表 create table products_depot (prno char(10), dno char(10), prname varchar(30) not null, primary key(prno,dno), foreign key(dno)

30、 references depot(dno), foreign key(prno) references products(prno) ) -零件_倉庫信息表 create table part_depot (dno char(10), pano char(10), primary key(dno,pano), foreign key(pano) references part(pano), foreign key(dno) references depot(dno) ) -建立視圖- -產品視圖 create view view_products(產品號,產品名稱,產品價格,產品車間,產品倉

31、庫) as select products.prno,products.prname,pride,sno,dno from products,products_depot where products.prno=products_depot.prno -零件視圖 create view view_part(零件號,零件重量,零件價格,零件車間,零件倉庫) as select part.pano,weight,ppride,sno,dno from part,part_depot where part .pano=part_depot.pano -產品倉庫視圖 create view view_

32、products_depot (產品名稱,產品數量) as select prname 產品名稱,COUNT (prname)產品數量 from products_depot group by prname -插入信息存儲過程- -插入工廠信息 create proc proc_factory_add fname varchar(40), fcname varchar(20) as begin insert into dbo.factory values(fname,fcname) print 插入成功 end - 插入車間信息 create proc proc_shop_add sno ch

33、ar(10), sname varchar(20), sadd char(40) , sphone char(12), fname varchar(40) as begin insert into dbo.shop values(sno,sname,sadd,sphone,fname) print 插入成功 end -插入職工信息 create proc proc_worker_add wno char(15), wname char(20), Wwage char(4), wsex char(2), wtype char(10), sno char(10) as begin insert i

34、nto dbo.worker values(wno,wname,Wwage,wsex,wtype, sno) print 插入成功 end - 插入產品信息 create proc proc_products prno char(10), prname varchar(30), pride smallint, sno char(10)asbegin insert into ducts values(prno, prname,pride, sno) print 插入成功end -插入零件信息 create proc proc_part pano char(10), weight s

35、mallint, ppride smallint, sno char(10) as begin insert into dbo.part values (pano, weight, ppride, sno) print 插入成功 end - 插入倉庫信息 create proc proc_depot_add dno char(10), prno char(40), prname char(10) as begin insert into dbo.depot values(dno,prno ,dphone) print 插入成功 end -插入產品倉庫信息 create proc proc_pr

36、oducts_depot prno char(10), dno char(10), prname varchar(30) as begin insert into ducts_depot values(prno,dno,prname) print 插入成功 end -插入零件倉庫信息 create proc proc_part_depot dno char(10), pano char(10) as begin insert into dbo.part_depot values(dno,pano) print 插入成功 end -插入產品零件信息 create proc proc

37、_products_part pano char(10), prno char(10) as begin insert into ducts_part values(pano,prno ) print 插入成功 end -刪除職工信息存儲 create procedure proc_worker_delet wno char(15) output as begin delete from worker where wno=wno end -刪除產品倉庫信息存儲 create procedure proc_products_depot_delet prno char(10) out

38、put, dno char(10)output as begin delete from products_depot where products_depot.prno=prno and products_depot.dno=dno end -刪除零件倉庫信息存儲 create proc proc_part_depot_delet pano char(10) output, dno char(10)output as begin delete from part_depot where part_depot.dno=dno and part_depot.pano=pano end -查詢存儲

39、過程- -產品信息查詢 create proc proc_view_products prno char(10) as begin select * from view_products where 產品號=prno end -零件信息查詢 create proc proc_view_part pano char(10) as begin select * from view_part where 零件號=pano end -職工信息查詢 create proc proc_worker wno char(15) as begin select * from worker where wno=w

40、no end-倉庫信息查詢 create proc proc_depot prno char(10), dno char(10), prname char(20) as begin select prname 產品名稱,COUNT (prname)產品數量 from products_depot group by prname having prname=prname or prname in (select prname from products_depot where prno=prno) end-觸發器- - 倉庫產品出品觸發 drop trigger tri_products_depot create trigger tri_products_depot on products_depot for delete as if not exists(select count(prname) from products_depot) begin print 倉庫中沒有這種產品 end else begin delete from products_depot where prno in (select prno from deleted) s

溫馨提示

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

評論

0/150

提交評論