版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計報告</b></p><p> 院(系):_電氣與信息工程學(xué)院 專業(yè)班級: </p><p> 學(xué)生姓名: 學(xué) 號: </p><p> 設(shè)計地點(單位)_____ _
2、______ _ _ </p><p> 設(shè)計題目:__ _工資管理系統(tǒng)設(shè)計 </p><p> 完成日期: 2016年 1月 7日</p><p><b> 指導(dǎo)教師評語:</b></p><p> ______________________
3、______________ </p><p> ______________________________________________________________________________________________________________________________________________________</p>&
4、lt;p> 成績(五級記分制):______ __________ 指導(dǎo)教師(簽字): ________ ________</p><p><b> 摘要</b></p><p> 本次數(shù)據(jù)庫課程設(shè)計不要求界面和外部應(yīng)用程序的設(shè)計,只設(shè)計數(shù)據(jù)庫部分。工資管理系統(tǒng)采用mysql作為數(shù)據(jù)庫后臺。工資管理系統(tǒng)的主要任務(wù)是用計算機對各種工資
5、信息進行日常的管理,如查詢、修改、增加、刪除等,設(shè)計觸發(fā)器、存儲過程使管理更方便,迅速準(zhǔn)確地完成各種工資信息的統(tǒng)計計算和匯總工作,快速打印出工資報表,針對系統(tǒng)服務(wù)對象的具體要求,設(shè)計了企業(yè)工資管理系統(tǒng)。</p><p> 關(guān)鍵詞: 工資管理系統(tǒng) msyql 觸發(fā)器 存儲過程</p><p><b> 課程設(shè)計任務(wù)書3</b></p><p>
6、; 設(shè)計題目:工資管理系統(tǒng)設(shè)計</p><p> 教研室主任:王雙明 指導(dǎo)教師:游明英/王雙明 2015年 12 月25 日</p><p><b> 目錄</b></p><p><b> 摘要II</b>&l
7、t;/p><p><b> 1 需求分析1</b></p><p> 1.1 系統(tǒng)目標(biāo)設(shè)計1</p><p> 1.2 系統(tǒng)功能分析1</p><p> 1.3 數(shù)據(jù)流程分析1</p><p> 1.4 數(shù)據(jù)字典2</p><p> 2 概念結(jié)構(gòu)設(shè)計4&
8、lt;/p><p> 2.1 構(gòu)成系統(tǒng)的實體型4</p><p> 2.2 E-R圖4</p><p> 3 邏輯結(jié)構(gòu)設(shè)計5</p><p> 3.1邏輯結(jié)構(gòu)簡介5</p><p> 3.2 關(guān)系模型5</p><p><b> 4物理模型設(shè)計6</b>
9、</p><p> 4.1定義數(shù)據(jù)庫6</p><p><b> 4.2 創(chuàng)建表6</b></p><p> 4.3 創(chuàng)建存儲過程8</p><p> 4.4 創(chuàng)建視圖9</p><p> 4.5 創(chuàng)建觸發(fā)器10</p><p><b> 總
10、結(jié)12</b></p><p><b> 參考文獻13</b></p><p><b> 1 需求分析</b></p><p> 1.1 系統(tǒng)目標(biāo)設(shè)計</p><p> 信息時代不斷發(fā)展,工資管理系統(tǒng)也需要不斷更新,現(xiàn)代化,才能更加方便!</p><p&g
11、t; 1.2 系統(tǒng)功能分析</p><p> 根據(jù)不同的用戶角色,進行授權(quán),使不同用戶具有相應(yīng)的權(quán)限,比如管理員可以管理該數(shù)據(jù)庫的全部數(shù)據(jù)更新;員工可以修改自己的基本信息等等。</p><p> 基本工種,基本工資的管理;</p><p> 公司部門、部門福利、員工的管理;</p><p> 加班類型,加班工資的管理;</p&
12、gt;<p> 公司員工的考勤信息管理;</p><p> 員工月工資管理,月工資=基本工資+部門福利-缺勤扣掉的工資;</p><p> 查詢統(tǒng)計上述信息,生成企業(yè)工資報表</p><p> 1.3 數(shù)據(jù)流程分析</p><p><b> 圖1.3數(shù)據(jù)流程圖</b></p><
13、;p><b> 1.4 數(shù)據(jù)字典</b></p><p> 表1.1 員工信息表</p><p> 表1.2 部門信息表</p><p><b> 表1.3 工種表</b></p><p><b> 表1.4 工資表</b></p><p&
14、gt;<b> 表1.5 考勤表</b></p><p> 表1.6 離職員工表</p><p><b> 2 概念結(jié)構(gòu)設(shè)計</b></p><p> 2.1 構(gòu)成系統(tǒng)的實體型</p><p> 由工資管理系統(tǒng)的數(shù)據(jù)流圖和數(shù)據(jù)字典,抽取出系統(tǒng)的幾個個主要實體,包括:員工實體,工種實體,部門
15、實體,工資實體。</p><p> 員工實體型屬性:StaffId, staffName, staffAge, staffSex, staffPhone</p><p> 工種實體型屬性:professionId, professionName</p><p> 部門實體型屬性:departmentId, departmentName,departmentPh
16、one</p><p> 工資實體型屬性:basicSalary departmentAllowance</p><p><b> 2.2 E-R圖</b></p><p><b> 圖2.2E-R圖</b></p><p><b> 3 邏輯結(jié)構(gòu)設(shè)計</b></
17、p><p><b> 3.1邏輯結(jié)構(gòu)簡介</b></p><p> 邏輯結(jié)構(gòu)設(shè)計就是把概念結(jié)構(gòu)設(shè)計階段設(shè)計好的基本E-R圖轉(zhuǎn)換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。</p><p> 設(shè)計邏輯結(jié)構(gòu)一般分為3步進行:</p><p> (1) 將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型;</p&g
18、t;<p> (2) 將轉(zhuǎn)換來的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換;</p><p> (3) 對數(shù)據(jù)模型進行優(yōu)化。</p><p><b> 3.2 關(guān)系模型</b></p><p> 將E-R圖轉(zhuǎn)換為關(guān)系模型實際上就是要獎實體型、實體的屬性和實體型之間的聯(lián)系轉(zhuǎn)換為關(guān)系模式,這種轉(zhuǎn)換一般遵循如下原則:
19、一個實體型轉(zhuǎn)換為一個關(guān)系模式,一個多對多的關(guān)系可以轉(zhuǎn)化為一個關(guān)系模式,而一對多的關(guān)系可以融合在其他的相關(guān)的關(guān)系模式中。例如:</p><p> (1) 員工與部門是多對一的關(guān)系,所以將員工與部門設(shè)計成以下關(guān)系模式:</p><p> 員工(StaffId, staffName, staffAge, staffSex, staffPhone )</p><p>
20、 部門(departmentId, departmentName,departmentPhone )</p><p> 屬于(StaffId, staffName, staffAge, staffSex, staffPhone departmentId, departmentName,departmentPhone )</p><p> (2)員工和工種是多對一的關(guān)系,所以將員工與工種
21、設(shè)計成以下關(guān)系模式:</p><p> 員工(StaffId, staffName, staffAge, staffSex, staffPhone ) </p><p> 工種 (professionId, professionName)</p><p> 屬于(StaffId, staffName, staffAge, staffSex, staffP
22、hone professionId, professionName) </p><p> (3)員工與工資是一對一的關(guān)系,所以將員工與工資設(shè)計以下關(guān)系模式:</p><p> 工資(basicSalary departmentAllowance)</p><p> 員工 (StaffId, staffName, staffAge, staffSex, sta
23、ffPhone)</p><p> 屬于(basicSalary departmentAllowance StaffId, staffName, staffAge, staffSex, staffPhone)</p><p><b> 4物理模型設(shè)計</b></p><p> 數(shù)據(jù)庫物理設(shè)計是將邏輯設(shè)計影射到存儲介質(zhì)上,利用可用的硬件和軟
24、件功能盡可能快地對數(shù)據(jù)進行物理訪問和維護。</p><p><b> 4.1定義數(shù)據(jù)庫</b></p><p> 通過SQL語言進行數(shù)據(jù)庫創(chuàng)建,創(chuàng)建數(shù)據(jù)庫的語句如下:</p><p> Create database sms;</p><p><b> 4.2 創(chuàng)建表</b></p&g
25、t;<p><b> 創(chuàng)建部門信息表</b></p><p> DROP TABLE IF EXISTS `department`;</p><p> CREATE TABLE `department` (</p><p> `departmentId` int(11) NOT NULL AUTO_INCREMENT,//
26、部門編號,主鍵自增</p><p> `departmentName` varchar(255) NOT NULL,//部門名字</p><p> `departmentAllowance` int(11) NOT NULL,//部門補貼</p><p> `departmentPhhone` int(11) NOT NULL,//部門電話</p>
27、<p> PRIMARY KEY (`departmentId`),</p><p><b> ) </b></p><p><b> 創(chuàng)建離職員工表</b></p><p> DROP TABLE IF EXISTS `dimissionstaff`;</p><p> C
28、REATE TABLE `dimissionstaff` (</p><p> `staffId` int(11) NOT NULL,//員工編號,主鍵,唯一</p><p> `staffName` varchar(255) NOT NULL,//員工名字</p><p> `staffSex` varchar(255) DEFAULT NULL,//員工性
29、別</p><p> `staffAge` int(11) DEFAULT NULL,//員工年齡</p><p> `staffPhone` varchar(255) DEFAULT NULL,//員工電話</p><p> `departmentId` int(11) DEFAULT NULL,//員工所在部門編號,外鍵</p><p&
30、gt; `professionId` int(11) DEFAULT NULL,//員工所屬工種,外鍵</p><p> PRIMARY KEY (`staffId`)</p><p><b> ) </b></p><p><b> 創(chuàng)建工種表 </b></p><p> CREATE
31、TABLE `profession` (</p><p> `professionId` int(11) NOT NULL AUTO_INCREMENT,//工種號,主鍵自增</p><p> `professionName` varchar(255) NOT NULL,//工種名字</p><p> `departmentId` int(11) NOT NU
32、LL,//工種所屬部門,外鍵</p><p> `basicSalary` int(11) NOT NULL,//工種的基本工資</p><p> PRIMARY KEY (`professionId`),</p><p><b> )</b></p><p><b> 創(chuàng)建工資表</b>&
33、lt;/p><p> CREATE TABLE `salary` (</p><p> `staffId` int(11) NOT NULL,//員工號,外鍵</p><p> `departmentId` int(11) NOT NULL,//員工所屬部門號,外鍵</p><p> `basicSalary` int(11) NOT N
34、ULL,//員工的基本工資,外鍵</p><p> `departmentAllowance` int(11) NOT NULL,//員工所在部門的補貼,外鍵</p><p> `isGet` int(11) NOT NULL,//員工是否領(lǐng)取工資</p><p> PRIMARY KEY (`staffId`),</p><p>&l
35、t;b> ) </b></p><p><b> 創(chuàng)建員工表</b></p><p> CREATE TABLE `staff` (</p><p> `staffId` int(11) NOT NULL AUTO_INCREMENT,//員工編號,主鍵自增</p><p> `staffNa
36、me` varchar(255) NOT NULL,//員工姓名</p><p> `staffAge` int(11) DEFAULT NULL,//員工年齡</p><p> `staffSex` varchar(255) DEFAULT NULL,//員工性別</p><p> `staffPhone` varchar(255) DEFAULT NULL
37、,//員工電話</p><p> `departmentId` int(11) DEFAULT NULL,//員工所在部門,外鍵</p><p> `professionId` int(11) DEFAULT NULL,//員工所屬工種,外鍵</p><p> PRIMARY KEY (`staffId`),</p><p><b
38、> ) </b></p><p><b> 創(chuàng)建考勤表</b></p><p> CREATE TABLE `works` (</p><p> `staffId` int(11) NOT NULL,//員工編號,外鍵</p><p> `workDate` date NOT NULL,//工
39、作日</p><p> `isWork` int(11) NOT NULL,//是否打卡</p><p><b> ) </b></p><p> 4.3 創(chuàng)建存儲過程</p><p> /*創(chuàng)建查詢部門全部員工的存儲過程,只有一個輸入?yún)?shù):部門編號*/</p><p> DROP PR
40、OCEDURE IF EXISTS `dpt_staff`;</p><p> DELIMITER ;;</p><p> CREATE DEFINER=`root`@`localhost` PROCEDURE `dpt_staff`(`id` int)</p><p><b> BEGIN</b></p><p>
41、; SELECT * FROM staff where departmentId=id;</p><p><b> END</b></p><p><b> ;;</b></p><p> DELIMITER ;</p><p> /*調(diào)用該存儲過程*/</p><p&
42、gt; Call dpt_staff(部門編號(1或2));</p><p> /*創(chuàng)建查詢單人月工資的存儲過程,一個輸入?yún)?shù):員工編號;一個輸出參數(shù):月總工資;*/</p><p> DROP PROCEDURE IF EXISTS `monthSalary`;</p><p> DELIMITER ;;</p><p> CRE
43、ATE DEFINER=`root`@`localhost` PROCEDURE `monthSalary`(IN `id` int,OUT `c` int)</p><p><b> BEGIN</b></p><p> DECLARE a INT;</p><p> DECLARE b INT;</p><p>
44、; /*把查詢到的結(jié)果賦值給變量*/</p><p> SELECT basicSalary into a FROM salary WHERE staffId=id;</p><p> SELECT departmentAllowance into b FROM salary WHERE staffId=id;</p><p> set c = a+b;&l
45、t;/p><p> select c as monthSalary;</p><p><b> END</b></p><p><b> ;; </b></p><p> DELIMITER ;</p><p> /*創(chuàng)建生成年終獎的存儲過程,一個輸入?yún)?shù):員工編號*
46、/</p><p> DROP PROCEDURE IF EXISTS `yearBonus`;</p><p> DELIMITER ;;</p><p> CREATE DEFINER=`root`@`localhost` PROCEDURE `yearBonus`(`id` int)</p><p><b> BEGI
47、N</b></p><p> DECLARE a INT DEFAULT 1000;</p><p> DECLARE b DOUBLE;</p><p> DECLARE c INT DEFAULT 12;</p><p> DECLARE month_Salary INT;</p><p>
48、/*調(diào)用存儲過程monthSalary(),得到其輸出參數(shù)*/</p><p> call monthSalary(id,month_Salary);</p><p> SET b=(month_Salary*c+a)/c;</p><p><b> SELECT b;</b></p><p><b>
49、 END</b></p><p><b> ;;</b></p><p> DELIMITER ;</p><p> /*調(diào)用存儲過程*/</p><p> Call yearBonus(員工編號)</p><p><b> 4.4 創(chuàng)建視圖</b>&l
50、t;/p><p> /*創(chuàng)建部門員工考勤情況的試圖*/</p><p> DROP VIEW IF EXISTS `dpt_stf_workinfo`;</p><p> CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL </p><p> SECURITY DEFINER
51、 VIEW `dpt_stf_workinfo` AS SELECT</p><p> department.departmentId,</p><p> staff.staffId,</p><p> staff.professionId,</p><p> works.isWork,</p><p>
52、works.workDate</p><p><b> FROM</b></p><p> department</p><p> INNER JOIN profession ON profession.departmentId = </p><p> department.departmentId</p&
53、gt;<p> INNER JOIN staff ON staff.professionId = profession.professionId </p><p> AND staff.departmentId = department.departmentId</p><p> INNER JOIN works ON works.staffId = staff.sta
54、ffId ;</p><p> /*創(chuàng)建員工是否領(lǐng)取工資的試圖*/</p><p> DROP VIEW IF EXISTS `isgetsalary`;</p><p> CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` VIEW `isgetsalary` AS SELECT</p>
55、<p> staff.staffId,</p><p> staff.staffName,</p><p> salary.isGet</p><p><b> FROM</b></p><p><b> staff</b></p><p> INNE
56、R JOIN salary ON salary.staffId = staff.staffId ;</p><p> /*創(chuàng)建各個員工工資情況的試圖*/</p><p> DROP VIEW IF EXISTS `salaryinfo`;</p><p> CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost
57、` SQL </p><p> SECURITY DEFINER VIEW `salaryinfo` AS SELECT</p><p> department.departmentId,</p><p> staff.staffId,</p><p> staff.staffName,</p><p>
58、staff.professionId,</p><p> department.departmentAllowance,</p><p> profession.basicSalary</p><p><b> FROM</b></p><p> department</p><p>
59、INNER JOIN profession ON profession.departmentId = </p><p> department.departmentId</p><p> INNER JOIN staff ON staff.professionId = profession.professionId </p><p> AND staff.de
60、partmentId = department.departmentId ;</p><p><b> 4.5 創(chuàng)建觸發(fā)器</b></p><p> /*創(chuàng)建一個有員工離職的時候,離職員工表添加一條記錄,員工表刪除對應(yīng)員工信息的觸發(fā)器*/</p><p> DROP TRIGGER IF EXISTS `update_allowance`
61、;</p><p> DELIMITER ;;</p><p> CREATE TRIGGER `update_allowance` AFTER UPDATE ON `department` </p><p> FOR EACH ROW begin</p><p> update salary set departmentAllowa
62、nce=new.departmentAllowance </p><p> where departmentId=departmentId;</p><p><b> end</b></p><p> /*創(chuàng)建一個一個員工離職,對應(yīng)工資表的數(shù)據(jù)全部清除*/</p><p> DROP TRIGGER IF EX
63、ISTS `delete_salary`;</p><p> DELIMITER ;;</p><p> CREATE TRIGGER `delete_salary` AFTER DELETE ON `staff` FOR EACH </p><p><b> ROW begin</b></p><p> del
64、ete from salary where staffId=old.staffId;</p><p><b> end</b></p><p><b> 總結(jié)</b></p><p> 在這一周的課程設(shè)計中我學(xué)到了許多書本之外的東西,動手能力得到了提高,對數(shù)據(jù)庫系統(tǒng)的設(shè)計流程有了進一步的了解。雖然本周時間比較緊,五天
65、其中有三天考試,但是我還是下來了。當(dāng)然在本次課程設(shè)計中我也學(xué)到了很多應(yīng)用軟件的知識,比如navicate for mysql和PowerDesigner之間的聯(lián)合運用,數(shù)據(jù)流圖的繪制還有就是對工資管理的需求分析更加熟悉等。在這里感謝*老師,*老師的幫助,其次感謝**的指導(dǎo)。</p><p><b> 參考文獻</b></p><p> [1] 孫建伶,林懷忠. 數(shù)
66、據(jù)庫原理與應(yīng)用. 北京:高等教育出版社 2006.5</p><p> [2] 梁方明. SQL Server 2000. 北京:希望電子出版社 2002.7</p><p> [3] 王珊,薩師煊. 數(shù)據(jù)庫系統(tǒng)概論(第四版). 北京:高等教育出版社 2006.5</p><p> [4] 李樹有. 數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)與實例. 北京:人民郵電出版社 2005.
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫原理課程設(shè)計報告---工資管理系統(tǒng)設(shè)計
- 工資管理系統(tǒng)數(shù)據(jù)庫設(shè)計報告(數(shù)據(jù)庫課程設(shè)計)
- 工資管理系統(tǒng)數(shù)據(jù)庫設(shè)計報告數(shù)據(jù)庫課程設(shè)計
- 工資管理系統(tǒng)_數(shù)據(jù)庫課程設(shè)計報告
- 數(shù)據(jù)庫工資管理系統(tǒng)課程設(shè)計報告
- 數(shù)據(jù)庫課程設(shè)計報告--工資管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計報告--工資管理系統(tǒng)設(shè)計
- sqlserver數(shù)據(jù)庫原理課程設(shè)計_工資管理系統(tǒng)設(shè)計
- 工資管理系統(tǒng)數(shù)據(jù)庫設(shè)計報告(數(shù)據(jù)庫課程設(shè)計)模板
- 數(shù)據(jù)庫課程設(shè)計--工資管理系統(tǒng)數(shù)據(jù)庫設(shè)計
- 數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計---工資管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--工資管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--工資管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--工資管理系統(tǒng)
- 數(shù)據(jù)庫工資管理系統(tǒng)課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計----工資管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計——工資管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--工資管理系統(tǒng)
- 數(shù)據(jù)庫工資管理系統(tǒng)課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計報告---企業(yè)工資管理系統(tǒng)
評論
0/150
提交評論