2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  院(系): 電氣與信息工程學(xué)院_ 專業(yè)班級: </p><p>  學(xué)生姓名: 學(xué) 號: </p><p>  設(shè)計(jì)地點(diǎn)(單位)______第一實(shí)驗(yàn)樓__ _______ _ _ </p><

2、p>  設(shè)計(jì)題目:_____________人事管理系統(tǒng)________ ____ _ </p><p>  完成日期: 2013年 6月 28日</p><p><b>  指導(dǎo)教師評語:</b></p><p>  ____________________________________

3、 </p><p>  ______________________________________________________________________________________________________________________________________________________</p><p>  成績(五級記分制):______ ______

4、____ 指導(dǎo)教師(簽字):________ ________</p><p><b>  課程設(shè)計(jì)任務(wù)書</b></p><p>  設(shè)計(jì)題目:人事管理系統(tǒng)設(shè)計(jì)</p><p>  教研室主任: 指導(dǎo)教師:

5、 2013年 06 月 15 日</p><p><b>  摘要</b></p><p>  在現(xiàn)代化的社會中,無論是大型企業(yè)還是中小型企業(yè),都必不可少地會涉及到人事管理的問題。一個(gè)完善的人事管理系統(tǒng)對企業(yè)的發(fā)展有著至關(guān)重要的作用。</p><p>  人事管理系統(tǒng)分為6個(gè)模塊,基本信息管理模塊、退休員工信息管理模塊、部

6、門信息管理模塊、學(xué)歷信息管理模塊、家庭信息管理模塊和職稱信息管理模。本系統(tǒng)采用SQL Server 2008作為數(shù)據(jù)庫。在實(shí)現(xiàn)數(shù)據(jù)庫部分功能時(shí)要求寫出存儲過程、觸發(fā)器和視圖。</p><p>  關(guān)鍵詞:人事管理 SQL Server 2008 觸發(fā)器 存儲過程 視圖 事務(wù)處理 游標(biāo)</p><p><b>  目錄</b></p><p>&

7、lt;b>  摘要IV</b></p><p><b>  1 需求分析1</b></p><p>  1.1 系統(tǒng)目標(biāo)設(shè)計(jì)1</p><p>  1.2 系統(tǒng)功能分析1</p><p>  1.3 功能模塊分析2</p><p>  1.4 系統(tǒng)全局?jǐn)?shù)據(jù)流圖2&l

8、t;/p><p>  1.5 數(shù)據(jù)字典3</p><p>  2 概念結(jié)構(gòu)設(shè)計(jì)6</p><p>  2.1 構(gòu)成系統(tǒng)的實(shí)體型6</p><p>  2.2 人事管理系統(tǒng)E-R圖7</p><p>  3 邏輯結(jié)構(gòu)設(shè)計(jì)8</p><p>  3.1邏輯結(jié)構(gòu)簡介8</p>&

9、lt;p>  3.2 E-R圖向關(guān)系模型的轉(zhuǎn)換8</p><p><b>  4物理模型設(shè)計(jì)9</b></p><p>  4.1定義數(shù)據(jù)庫9</p><p>  4.2 創(chuàng)建存儲過程9</p><p>  4.3 創(chuàng)建觸發(fā)器14</p><p>  4.4 創(chuàng)建視圖17<

10、/p><p>  4.5 創(chuàng)建游標(biāo)19</p><p>  4.6 創(chuàng)建事物處理21</p><p><b>  總結(jié)22</b></p><p><b>  致謝23</b></p><p><b>  參考文獻(xiàn)24</b></p>

11、<p><b>  1 需求分析</b></p><p>  1.1 系統(tǒng)目標(biāo)設(shè)計(jì)</p><p>  使企業(yè)可以實(shí)現(xiàn)規(guī)范化的管理。</p><p>  推動企業(yè)勞動人事管理走向科學(xué)化、現(xiàn)代化,適應(yīng)現(xiàn)代企業(yè)制度的要求。</p><p>  使管理員可以很簡單地完成日常的管理工作,例如新員工的加入、老員工的退休

12、等。</p><p>  支持企業(yè)進(jìn)行勞動人事管理及其相關(guān)方面的科學(xué)決策,如企業(yè)領(lǐng)導(dǎo)根據(jù)現(xiàn)有職工的數(shù)目決定招聘的人數(shù)等。</p><p>  1.2 系統(tǒng)功能分析</p><p>  根據(jù)現(xiàn)代企業(yè)的情況,本系統(tǒng)要求應(yīng)能完成以下主要功能:</p><p>  設(shè)計(jì)友好的登錄界面,完成用戶身份檢驗(yàn)??梢蕴峁Ω鞣N窗口的外觀進(jìn)行設(shè)計(jì),可以提供用戶進(jìn)

13、行外觀選擇。</p><p>  企業(yè)新員工各種信息的輸入、修改、刪除等,包括員工基本信息、學(xué)歷信息、婚姻狀況、職稱等。</p><p>  數(shù)據(jù)庫信息維護(hù),即員工各種數(shù)據(jù)信息的備份。</p><p>  對于轉(zhuǎn)出、辭職、退休員工信息的刪除。</p><p>  按照一定的條件,查詢、統(tǒng)計(jì)符合條件的員工信息;至少應(yīng)該包括每個(gè)員工詳細(xì)信息的查詢

14、、按婚姻狀況查詢、按學(xué)歷查詢、按工作崗位查詢等,至少應(yīng)該包括按學(xué)歷、婚姻狀況、崗位、參加工作時(shí)間等統(tǒng)計(jì)各自的員工信息;</p><p>  對查詢、統(tǒng)計(jì)的結(jié)果打印輸出。</p><p>  按照部門將現(xiàn)有員工進(jìn)行分類,查看各個(gè)部門現(xiàn)有員工的平均年齡,根據(jù)各部門工作量的大小,較好地進(jìn)行人事調(diào)度。另外可以幫助領(lǐng)導(dǎo)作出招聘新員工人數(shù)的決定。</p><p>  可供其他人

15、使用幫助。</p><p>  1.3 功能模塊分析</p><p>  根據(jù)系統(tǒng)功能的基本要求,可對整個(gè)系統(tǒng)劃分為幾個(gè)模塊</p><p>  圖1.1 功能模塊分析</p><p>  1.4 系統(tǒng)全局?jǐn)?shù)據(jù)流圖</p><p>  系統(tǒng)的全局?jǐn)?shù)據(jù)流圖,也稱第一層數(shù)據(jù)流圖,是從整體上描述系統(tǒng)的數(shù)據(jù)流,反映系統(tǒng)數(shù)據(jù)的

16、整體流向,給設(shè)計(jì)者、開發(fā)者和用戶一個(gè)總體描述。</p><p><b>  圖1.2 數(shù)據(jù)流圖</b></p><p><b>  1.5 數(shù)據(jù)字典</b></p><p>  表1.1 員工基本信息表(worker_info)</p><p>  表1.2離退休員工(tui_info)</p

17、><p>  表1.3部門基本信息表(Department_info)</p><p>  表1.4 學(xué)歷信息(degree_info)</p><p>  表1.5 家庭信息(home_info)</p><p>  表1.6職稱信息(Pro_info)</p><p><b>  2 概念結(jié)構(gòu)設(shè)計(jì)</

18、b></p><p>  2.1 構(gòu)成系統(tǒng)的實(shí)體型</p><p>  由人事管理系統(tǒng)的數(shù)據(jù)流圖和數(shù)據(jù)字典,抽取出系統(tǒng)的6個(gè)主要實(shí)體,包括:員工、部門、學(xué)歷、家庭、職稱評定信息、賬號。</p><p>  員工實(shí)體型屬性:Worker_no, Worker_name, Sex, Birthday, Age, ID, Department_name, Post,

19、 Phone, Work_date, Worker_ type</p><p>  退休員工實(shí)體型屬性:Worker_no, Worker_name, Sex, Birthday, Age, ID, Department_name, Post, Phone, Work_date, Worker_ type,tui_date</p><p>  部門實(shí)體型屬性:Department_no,D

20、epartment_name,manager_no,Workeload,Real_number,Need_number</p><p>  學(xué)歷實(shí)體型屬性:Degree_no,Worker_no,Degree,Major,School,Graduate_date</p><p>  家庭實(shí)體型屬性:Home_no,Worker_no,Marriage_info,Home_number,Ho

21、me_phone,Home_address</p><p>  職稱評定信息實(shí)體型屬性:Pro_no, Worker_no, Assess_date, Assess_unit, Assess_title, Remark</p><p>  2.2 人事管理系統(tǒng)E-R圖</p><p>  圖2.1人事管理系統(tǒng)E-R圖</p><p><

22、b>  3 邏輯結(jié)構(gòu)設(shè)計(jì)</b></p><p><b>  3.1邏輯結(jié)構(gòu)簡介</b></p><p>  邏輯結(jié)構(gòu)設(shè)計(jì)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R圖轉(zhuǎn)換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。</p><p>  設(shè)計(jì)邏輯結(jié)構(gòu)一般分為3步進(jìn)行:</p><p>  (1)

23、將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型;</p><p>  (2) 將轉(zhuǎn)換來的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換;</p><p>  (3) 對數(shù)據(jù)模型進(jìn)行優(yōu)化。</p><p>  3.2 E-R圖向關(guān)系模型的轉(zhuǎn)換</p><p>  將E-R圖轉(zhuǎn)換為關(guān)系模型實(shí)際上就是要將實(shí)體型、實(shí)體的屬性和實(shí)體型間的聯(lián)系轉(zhuǎn)換為

24、關(guān)系模式,這種轉(zhuǎn)換一般遵循如下原則:一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。</p><p>  對于實(shí)體間的聯(lián)系則有以下不同的情況:</p><p>  (1)一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一斷對應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的試題的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,每個(gè)實(shí)體的碼均為該關(guān)

25、系的候選碼。如果與某一端實(shí)體對應(yīng)的關(guān)系模式合并,則需要在該關(guān)系模式的屬性中加入另一個(gè)關(guān)系模式的碼和聯(lián)系本身的屬性。</p><p> ?。?)一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端對應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為n端實(shí)體的碼。</p><p> ?。?)一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)

26、系模式。與該聯(lián)系相連的餓個(gè)實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,個(gè)實(shí)體的碼組成關(guān)系的碼或關(guān)系碼的一部分。</p><p>  (4)3個(gè)或3個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系可以轉(zhuǎn)換為一個(gè)關(guān)系模式。與該多元聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,各實(shí)體的碼組成關(guān)系的碼或關(guān)系碼的一部分。</p><p> ?。?)具有相同碼的關(guān)系模式可合并。</p><

27、p><b>  4物理模型設(shè)計(jì)</b></p><p>  數(shù)據(jù)庫物理設(shè)計(jì)是將邏輯設(shè)計(jì)影射到存儲介質(zhì)上,利用可用的硬件和軟件功能盡可能快地對數(shù)據(jù)進(jìn)行物理訪問和維護(hù)。</p><p><b>  4.1定義數(shù)據(jù)庫</b></p><p>  SQL Server 2008數(shù)據(jù)庫文件分為3中類型:主數(shù)據(jù)文件、次數(shù)據(jù)文件和

28、日志文件。</p><p>  通過SQL語言進(jìn)行數(shù)據(jù)庫創(chuàng)建,創(chuàng)建數(shù)據(jù)庫的語句如下:</p><p>  Create database 人事管理系統(tǒng);</p><p>  4.2 創(chuàng)建存儲過程</p><p><b>  4.2.1</b></p><p>  在員工基本信息表,家庭信息表,學(xué)歷

29、信息表,職稱評定表,創(chuàng)建一個(gè)插入員工信息的存儲過程:</p><p>  create procedure insertworker</p><p>  @Worker_no varchar(15) ,--工號</p><p>  @Worker_name varchar(8) ,--姓名</p><p>  @Sex

30、 varchar(2) ,--性別</p><p>  @Birthday date ,--出生年月</p><p>  @ID varchar(18) ,--身份證號</p><p>  @Department_name varchar(15) ,--部門</p>

31、<p>  @post varchar(8) ,--職位</p><p>  @phone varchar(11) ,--電話</p><p>  @work_date date ,--工作時(shí)間</p><p>  @Worker_type varchar(8) ,

32、--員工類型</p><p>  @Degree_no varchar(15) , --學(xué)位號</p><p>  @Degree varchar(4) ,--學(xué)位</p><p>  @Major varchar(25) ,--專業(yè)</p><p>  @School v

33、archar(25) ,--畢業(yè)學(xué)校</p><p>  @Gradute_date date , --畢業(yè)時(shí)間</p><p>  @Home_no varchar(15) ,--家庭編號</p><p>  @Marriage_info varchar(4) ,--婚姻狀況</p><p>  @Home_nu

34、mber smallint ,--家庭人口</p><p>  @Home_phone varchar(11) ,--家庭電話</p><p>  @Home_address varchar(50) ,--家庭地址</p><p>  @Pro_no varchar(15) ,--職稱編號</p><p

35、>  @Assess_date date ,--評定日期</p><p>  @Assess_unit varchar(20) ,--評定單位</p><p>  @Assess_title varchar(8) ,--評定職稱</p><p>  @Remark varchar(200) --備注</p><p>

36、;<b>  as</b></p><p><b>  --插入員工信息</b></p><p>  insert into worker_info(Worker_no,Worker_name,Sex,Birthday,age,ID,Department_name,post,phone,work_date,Worker_type)</p&g

37、t;<p>  values (@Worker_no,@Worker_name,@Sex,@Birthday,FLOOR(datediff(DY,@Birthday,getdate())/365.25),@ID,@Department_name,@post,@phone,@work_date,@Worker_type)</p><p><b>  --插入職稱信息</b><

38、;/p><p>  insert into Pro_info(Pro_no,Worker_no,Assess_date,Assess_unit,Assess_title,Remark)</p><p>  values (@Pro_no,@Worker_no,@Assess_date,@Assess_unit,@Assess_title,@Remark)</p><p>

39、;<b>  --插入家庭信息</b></p><p>  insert into home_info(Home_no,worker_no,Marriage_info,Home_number,Home_phone,Home_address)</p><p>  values (@Home_no,@worker_no,@Marriage_info,@Home_numbe

40、r,@Home_phone,@Home_address)</p><p><b>  --插入學(xué)歷信息</b></p><p>  insert into degree_info(Degree_no,Worker_no,Degree,Major,School,Gradute_date)</p><p>  values (@Degree_no,

41、@Worker_no,@Degree,@Major,@School,@Gradute_date) </p><p><b>  4.2.2</b></p><p>  在部門基本信息表中創(chuàng)建插入部門信息的存儲過程:</p><p>  create procedure add_department</p><p>  @

42、Department_no varchar(15) ,</p><p>  @Department_name varchar(15) ,</p><p>  @Manager_no varchar(15) ,</p><p>  @Workeload float(2) ,</p><

43、p>  @Real_number smallint ,</p><p>  @Need_number smallint </p><p><b>  as</b></p><p>  insert into department_info(Department_no,Department_name,Ma

44、nager_no,Workeload,Real_number,Need_number)</p><p>  values (@Department_no,@Department_name,@Manager_no,@Workeload,@Real_number,@Need_number)</p><p><b>  4.2.3</b></p><p&

45、gt;  在部門基本信息表中創(chuàng)建更新部門信息的存儲過程:</p><p>  create procedure update_department</p><p>  @Department_name varchar(15) ,</p><p>  @Manager_no varchar(15) ,</p><p&g

46、t;  @Workeload float(2) ,</p><p>  @Need_number smallint </p><p><b>  as </b></p><p>  update department_info</p><p>  set Manager_no=@Man

47、ager_no,</p><p>  Workeload=@Workeload,</p><p>  Need_number=@Need_number</p><p>  where Department_name=@Department_name;</p><p><b>  4.2.4</b></p>

48、<p>  創(chuàng)建當(dāng)一個(gè)員工辭職時(shí)刪除該信息,當(dāng)一個(gè)員工退休時(shí),將基本信息復(fù)制到退休表中,其他信息刪除的存儲過程</p><p>  CREATE PROCEDURE worker_type</p><p>  @worker_no varchar(15),</p><p>  @worker_type varchar(4)</p><

49、p><b>  AS</b></p><p><b>  BEGIN</b></p><p>  SET NOCOUNT ON;</p><p>  IF @worker_type='辭職'</p><p><b>  BEGIN</b></p>

50、;<p>  delete from worker_info where worker_no=@worker_no</p><p><b>  END</b></p><p>  IF @worker_type='退休'</p><p><b>  BEGIN</b></p>&

51、lt;p>  INSERT INTO tui_info(Worker_no,Worker_name,Sex,Birthday,Age,ID,Department_name,Post,Phone,Work_date,Tui_date)</p><p>  SELECT Worker_no,Worker_name,Sex,Birthday,FLOOR(datediff(DY,Birthday,getdate()

52、)/365.25),ID,Department_name,Post,Phone,Work_date,GETDATE() </p><p>  FROM worker_info WHERE Worker_no=@Worker_no;</p><p>  DELETE FROM worker_info WHERE Worker_no=@Worker_no;</p><p&g

53、t;<b>  END</b></p><p><b>  END</b></p><p><b>  4.2.5</b></p><p>  創(chuàng)建更新家庭信息表、學(xué)歷信息、職稱信息的存儲過程</p><p>  create procedure update_home<

54、/p><p>  @Worker_no varchar(15) ,--工號</p><p>  @Marriage_info varchar(4) ,--婚姻狀況</p><p>  @Home_number smallint ,--家庭人口</p><p>  @Home_phone varchar(11) ,--家

55、庭電話</p><p>  @Home_address varchar(50) --家庭地址</p><p><b>  as</b></p><p>  update home_info</p><p>  set Marriage_info=@Marriage_info,</p><p> 

56、 Home_number=@Home_number,</p><p>  Home_phone=@Home_phone,</p><p>  Home_address=@Home_address</p><p>  where Worker_no=@Worker_no;</p><p><b>  --更新學(xué)歷信息</b>

57、;</p><p>  create procedure update_degree</p><p>  @Worker_no varchar(15) ,--工號</p><p>  @Degree varchar(4) ,--學(xué)位</p><p>  @Major varchar(25) ,--專業(yè)&

58、lt;/p><p>  @School varchar(25) ,--畢業(yè)學(xué)校</p><p>  @Gradute_date date --畢業(yè)時(shí)間</p><p><b>  as</b></p><p>  update degree_info</p><p>  set Deg

59、ree=@Degree,</p><p>  Major=@Major,</p><p>  School=@School,</p><p>  Gradute_date=@Gradute_date</p><p>  where Worker_no=@Worker_no;</p><p><b>  --更

60、新職稱信息</b></p><p>  create procedure update_pro</p><p>  @Worker_no varchar(15) ,--工號</p><p>  @Assess_date date ,--評定日期</p><p>  @Assess_unit varchar(2

61、0) ,--評定單位</p><p>  @Assess_title varchar(8) --評定職稱</p><p><b>  as</b></p><p>  update pro_info</p><p>  set Assess_date=@Assess_date,</p><p> 

62、 Assess_unit=@Assess_unit,</p><p>  Assess_title=@Assess_title</p><p>  where Worker_no=@Worker_no;</p><p><b>  4.2.6</b></p><p>  創(chuàng)建某部門平均年齡的存儲過程</p>

63、<p>  create procedure avg_age</p><p>  @Department_name varchar(15)</p><p><b>  as</b></p><p>  select AVG(Age)</p><p>  from worker_info where Depa

64、rtment_name=@Department_name</p><p><b>  4.2.7</b></p><p><b>  按學(xué)歷查詢</b></p><p><b>  --學(xué)歷查詢</b></p><p>  create procedure search_deg

65、ree</p><p>  @name varchar(4)</p><p><b>  as</b></p><p><b>  begin</b></p><p>  declare search_degree cursor for select worker_no from degree_in

66、fo </p><p>  where worker_no in(select Worker_no from degree_info where Degree=@name)</p><p>  open search_degree</p><p>  declare @no1 varchar(15) </p><p>  fetch next

67、 from search_degree into @no1</p><p>  while @@FETCH_STATUS = 0</p><p><b>  begin </b></p><p>  select worker_info.Worker_name,worker_info.Department_name,home_info.Marr

68、iage_info,degree_info.Major,degree_info.degree,</p><p>  worker_info.Work_date </p><p>  from worker_info,degree_info,pro_info,home_info where worker_info.Worker_no=@no1 and home_info.Worker_no=

69、@no1</p><p>  and pro_info.Worker_no=@no1 and degree_info.Worker_no=@no1</p><p>  fetch next from search_degree into @no1</p><p><b>  end</b></p><p>  close

70、 search_degree</p><p>  deallocate search_degree</p><p><b>  end</b></p><p><b>  4.2.7</b></p><p><b>  按部門查詢</b></p><p>

71、;  create procedure search_department</p><p>  @name varchar(15)</p><p><b>  as</b></p><p><b>  begin</b></p><p>  declare search_department cur

72、sor for select worker_no from worker_info </p><p>  where Department_name=@name</p><p>  open search_department</p><p>  declare @no1 varchar(15) </p><p>  fetch next

73、from search_department into @no1</p><p>  while @@FETCH_STATUS = 0</p><p><b>  begin </b></p><p>  select worker_info.Worker_name,worker_info.Department_name,home_info.M

74、arriage_info,degree_info.Major,worker_info.Work_date </p><p>  from worker_info,degree_info,pro_info,home_info where worker_info.Worker_no=@no1 and home_info.Worker_no=@no1</p><p>  and pro_info

75、.Worker_no=@no1 and degree_info.Worker_no=@no1</p><p>  fetch next from search_department into @no1</p><p><b>  end</b></p><p>  close search_department</p><p

76、>  deallocate search_department</p><p><b>  end</b></p><p><b>  4.2.9</b></p><p><b>  按婚姻狀況查詢</b></p><p>  create procedure searc

77、h_marriage</p><p>  @name varchar(15)</p><p><b>  as</b></p><p><b>  begin</b></p><p>  declare search_marriage cursor for select worker_no from

78、 home_info </p><p>  where worker_no in(select Worker_no from home_info where marriage_info=@name)</p><p>  open search_marriage</p><p>  declare @no varchar(15) </p><p&g

79、t;  fetch next from search_marriage into @no</p><p>  while @@FETCH_STATUS = 0</p><p><b>  begin </b></p><p>  select * from worker_info,degree_info,pro_info,home_info w

80、here worker_info.Worker_no=@no and home_info.Worker_no=@no</p><p>  and pro_info.Worker_no=@no and degree_info.Worker_no=@no</p><p>  fetch next from search_marriage into @no</p><p>

81、;<b>  end</b></p><p>  close search_marriage</p><p>  deallocate search_marriage</p><p><b>  end</b></p><p><b>  4.3 創(chuàng)建觸發(fā)器</b></p

82、><p><b>  4.3.1</b></p><p>  定義一個(gè)觸發(fā)器,當(dāng)在數(shù)據(jù)庫中插入一條員工信息后,觸發(fā)相應(yīng)的部門人數(shù)加1</p><p>  create trigger insert_worker</p><p>  on worker_info</p><p>  after inse

83、rt</p><p>  as begin</p><p>  update department_info</p><p><b>  set </b></p><p>  department_info.Real_number = department_info.Real_number + 1</p>

84、<p><b>  from</b></p><p>  department_info as department_info,inserted as worker_info</p><p>  where department_info.Department_name=worker_info.Department_name</p><

85、;p><b>  end;</b></p><p><b>  4.3.2</b></p><p>  定義一個(gè)觸發(fā)器,當(dāng)在數(shù)據(jù)庫中刪除一條員工信息后,觸發(fā)相應(yīng)的部門人數(shù)減1 create trigger delete_worker</p><p>  on worker_info</p><

86、p>  after delete</p><p>  as begin</p><p>  update department_info</p><p><b>  set </b></p><p>  department_info.Real_number = department_info.Real_nu

87、mber - 1</p><p><b>  from</b></p><p>  department_info as department_info,deleted as worker_info</p><p>  where department_info.Department_name=worker_info.Department_na

88、me</p><p><b>  end;</b></p><p>  delete from worker_info where worker_no='j1';</p><p><b>  4.3.3</b></p><p>  定義一個(gè)觸發(fā)器,當(dāng)在數(shù)據(jù)庫中員工所屬的部門更改后,觸

89、發(fā)轉(zhuǎn)出的部門人數(shù)減1,轉(zhuǎn)入的部門人數(shù)加1</p><p>  create trigger update_worker</p><p>  on worker_info</p><p>  after update</p><p>  as IF(UPDATE(Department_name)) </p><p>&l

90、t;b>  begin</b></p><p>  --轉(zhuǎn)出的部門人數(shù)減</p><p>  update department_info</p><p><b>  set </b></p><p>  department_info.Real_number = department_info.Rea

91、l_number - 1</p><p><b>  from</b></p><p>  department_info as department_info,deleted as worker_info</p><p>  where department_info.Department_name=worker_info.Departmen

92、t_name</p><p>  --轉(zhuǎn)入的部門人數(shù)加</p><p>  update department_info</p><p><b>  set </b></p><p>  department_info.Real_number = department_info.Real_number + 1</p

93、><p><b>  from</b></p><p>  department_info as department_info,inserted as worker_info</p><p>  where department_info.Department_name=worker_info.Department_name</p>

94、<p><b>  end;</b></p><p><b>  4.3.4</b></p><p>  定義一個(gè)觸發(fā)器,當(dāng)在數(shù)據(jù)庫中刪除一個(gè)員工的基本信息時(shí)連帶刪除該員工的職稱,學(xué)歷,家庭信息</p><p>  create TRIGGER del_worker</p><p>  

95、ON worker_info </p><p>  for DELETE</p><p><b>  AS </b></p><p><b>  BEGIN</b></p><p>  delete home_info</p><p><b>  From <

96、;/b></p><p>  home_info as home_info , deleted as worker_info</p><p>  Where home_info.worker_no= worker_info.worker_no</p><p><b>  END</b></p><p><b&

97、gt;  BEGIN</b></p><p>  delete degree_info</p><p>  From degree_info as degree_info , deleted as worker_info </p><p>  Where degree_info.worker_no=worker_info.worker_no</p&

98、gt;<p><b>  END</b></p><p><b>  BEGIN</b></p><p>  delete pro_info</p><p>  From pro_info as pro_info , deleted as worker_info </p><p>  

99、Where pro_info.worker_no=worker_info.worker_no</p><p><b>  END</b></p><p><b>  4.3.5</b></p><p>  創(chuàng)建一個(gè)觸發(fā)器,檢查部門員工是否已滿,滿人則不進(jìn)行操作</p><p>  create Tr

100、igger check_department</p><p>  on department_info</p><p>  for update</p><p><b>  as</b></p><p>  IF(UPDATE(Real_number))</p><p><b>  be

101、gin</b></p><p><b>  declare </b></p><p>  @size smallint, </p><p>  @MaxSize smallint,</p><p>  @Department_name varchar(15) </p><p>  s

102、elect @department_name =department_name from inserted</p><p>  select @MaxSize =Need_number ,@size = Real_number from department_info where department_name = @department_name </p><p><b>

103、  begin</b></p><p>  if( @size > @MaxSize )</p><p><b>  begin</b></p><p>  print '該部門員工已滿'</p><p>  rollback Transaction</p><p&g

104、t;<b>  return ;</b></p><p><b>  end</b></p><p><b>  end</b></p><p><b>  end</b></p><p><b>  4.3.6</b></p&

105、gt;<p>  創(chuàng)建一個(gè)觸發(fā)器,插入或更新時(shí)檢查部門是否存在,不存在則不進(jìn)行操作</p><p>  create trigger check_dapartment_name</p><p>  on worker_info </p><p>  for update,insert</p><p><b>  as&

106、lt;/b></p><p><b>  begin</b></p><p><b>  declare </b></p><p>  @department_name varchar(15) </p><p>  select @department_name = department_n

107、ame from inserted</p><p>  if( not exists(select * from department_info where department_name = @department_name ) )</p><p><b>  begin</b></p><p>  print '該部門不存在

108、9;</p><p>  rollback Transaction</p><p><b>  return;</b></p><p><b>  end</b></p><p><b>  end</b></p><p><b>  4.4

109、創(chuàng)建視圖</b></p><p><b>  4.4.1</b></p><p>  建立一個(gè)查看所有員工的所有信息的視圖</p><p>  create view all_worker(員工編號,姓名,性別,出生日期,年齡,身份證號,部門編號,部門,經(jīng)理編號,職位,電話,工作時(shí)間,員工類型,學(xué)歷號,學(xué)位,</p>

110、<p>  專業(yè),畢業(yè)學(xué)校,畢業(yè)時(shí)間,職稱號,評定時(shí)間,評定單位,評定職稱,備注,家庭編號,婚姻狀況,家庭人口,家庭電話,家庭地址)</p><p><b>  as</b></p><p>  select worker_info.Worker_no,worker_info.Worker_name,worker_info.Sex,worker_info.

111、Birthday,worker_info.Age,worker_info.ID,</p><p>  department_info.Department_no,worker_info.Department_name,department_info.Manager_no,worker_info.Post,worker_info.Phone,worker_info.Work_date,worker_info.Wor

112、ker_type,degree_info.Degree_no,</p><p>  degree_info.Degree,degree_info.Major,degree_info.School,degree_info.Gradute_date,pro_info.Pro_no,pro_info.Assess_date,pro_info.Assess_unit,</p><p>  pro_

113、info.Assess_title,pro_info.Remark,home_info.Home_no,home_info.Marriage_info,home_info.Home_number,home_info.Home_phone,home_info.Home_address</p><p>  from worker_info,degree_info,pro_info,home_info,departme

114、nt_info where worker_info.Worker_no=degree_info.Worker_no and worker_info.Worker_no=pro_info.Worker_no</p><p>  and worker_info.Worker_no=home_info.Worker_no and department_info.Department_name=worker_info.D

115、epartment_name</p><p>  with check option</p><p><b>  4.4.2</b></p><p>  建立一個(gè)用于查看員工常用信息的視圖</p><p>  create view search</p><p><b>  as<

116、/b></p><p>  select worker_info.Worker_no '員工編號',worker_info.Worker_name '員工姓名',worker_info.Sex '性別',worker_info.Age '年齡',worker_info.Department_name '部門',</p&g

117、t;<p>  worker_info.Post '職位',degree_info.Degree'學(xué)位',home_info.Marriage_info '婚姻狀況',worker_info.Work_date '工作時(shí)間' </p><p>  from worker_info,degree_info,home_info,depart

118、ment_info where worker_info.Worker_no=degree_info.Worker_no </p><p>  and worker_info.Worker_no=home_info.Worker_no </p><p>  with check option</p><p><b>  4.4.3</b><

119、/p><p><b>  查詢員工學(xué)歷視圖</b></p><p>  create view show_degree(員工編號,姓名,性別,學(xué)歷號,學(xué)位,專業(yè),畢業(yè)學(xué)校,畢業(yè)時(shí)間)</p><p><b>  as</b></p><p>  select worker_info.Worker_no,

120、worker_info.Worker_name,worker_info.Sex,</p><p>  degree_info.Degree_no,degree_info.Degree,</p><p>  degree_info.Major,degree_info.School,degree_info.Gradute_date from worker_info,dergee_info &l

121、t;/p><p>  where worker_info.Worker_no=degree_info.Worker_no</p><p>  with check option</p><p><b>  4.4.4</b></p><p><b>  查詢部門工作量</b></p>&l

122、t;p>  create view show_load(員工編號,員工姓名,部門,工作量 )</p><p><b>  as</b></p><p>  select worker_info.worker_no,worker_info.worker_name,worker_info.Department_name,department_info.Workelo

123、ad </p><p>  from department_info,worker_info where department_info.department_name=worker_info.department_name</p><p>  select * from show_load</p><p>  with check option</p>

124、<p><b>  4.4.5</b></p><p><b>  查詢員工職稱</b></p><p>  create view show_degree(員工編號,姓名,性別,職稱號,評定時(shí)間,評定單位,評定職稱,備注)</p><p><b>  as</b></p>

125、<p>  select worker_info.Worker_no,worker_info.Worker_name,worker_info.Sex,pro_info.Pro_no,pro_info.Assess_date,pro_info.Assess_unit,</p><p>  pro_info.Assess_title,pro_info.Remark from worker_info,pro

溫馨提示

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

評論

0/150

提交評論