版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計(jì)說明書</b></p><p> 課程設(shè)計(jì)名稱 數(shù)據(jù)庫原理課程設(shè)計(jì) </p><p> 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) </p><p> 2017 年 1 月 9 日</p><p> 課 程 設(shè) 計(jì) 任 務(wù) 書</p>
2、<p> 注:此任務(wù)書由指導(dǎo)教師在課程設(shè)計(jì)前填寫,發(fā)給學(xué)生作為本課程設(shè)計(jì)的依據(jù)。</p><p><b> 課程設(shè)計(jì)成績考核表</b></p><p> 2017 年 1 月 13 日</p><p> 題目:中小型企業(yè)工資管理的設(shè)計(jì)與實(shí)現(xiàn)</p><p><b> 一、問題
3、描述:</b></p><p> 設(shè)計(jì)一套中小型企業(yè)工資管理方案,其中應(yīng)具有一定的人事檔案管理功能。</p><p> 在考慮具體中小型企業(yè)工資管理的業(yè)務(wù)處理過程中,還需要重點(diǎn)考慮如下業(yè)務(wù)處理過程:</p><p> (1)工資管理系統(tǒng)是建立在人事檔案系統(tǒng)之上的,職能部門是財(cái)務(wù)處和會(huì)計(jì)室。</p><p> ?。?)通過對職
4、工建立人事檔案,根據(jù)其考勤情況以及相應(yīng)的工資級別,算出其相應(yīng)的工資??梢愿鶕?jù)職工的考勤、職務(wù)、部門和各種稅費(fèi)自動(dòng)求出工資</p><p> ?。?)為了便于企業(yè)領(lǐng)導(dǎo)掌握本企業(yè)的工資信息,在系統(tǒng)中應(yīng)加入各種查詢功能,包括個(gè)人信息、職工工資、本企業(yè)內(nèi)某一個(gè)月或某一部門的工資情況查詢,系統(tǒng)應(yīng)能輸出各類統(tǒng)計(jì)報(bào)表。</p><p><b> 二、需求分析:</b></p
5、><p><b> 數(shù)據(jù)流圖:</b></p><p><b> 數(shù)據(jù)字典:</b></p><p><b> 三、概念結(jié)構(gòu)設(shè)計(jì):</b></p><p><b> 局部E-R圖:</b></p><p><b>
6、職工屬性:</b></p><p><b> 部門屬性:</b></p><p><b> 考勤屬性:</b></p><p><b> 工資屬性:</b></p><p><b> 每日情況屬性:</b></p><
7、;p><b> 全局E-R圖:</b></p><p> 用到的工具:E-R圖</p><p><b> 四、邏輯結(jié)構(gòu)設(shè)計(jì):</b></p><p><b> 初始的關(guān)系模式:</b></p><p> 職工:E(Eid, Ename, age, sex, jo
8、b, manage_id, department_id)</p><p> 工資:S(Sid, Sshould, Sreally, give_month, bonus_pct, Eid)</p><p> 部門:D(Did, Dname, manage_id)</p><p> 考勤:C(Cid, late_times, leave_times, vacate
9、_times, Eid, checking_date)</p><p> 每日情況:Daily(daily_id, daily_date, should_time, really_time, Cid)</p><p> 關(guān)系模式的規(guī)范化處理:</p><p> 因?yàn)闆]有傳遞函數(shù)依賴和完全函數(shù)依賴,所以是第三范式</p><p><
10、b> 邏輯結(jié)構(gòu):</b></p><p><b> 職工表:</b></p><p><b> 工資表:</b></p><p><b> 部門表:</b></p><p><b> 考勤表:</b></p>&l
11、t;p><b> 每日情況表:</b></p><p><b> 物理結(jié)構(gòu)設(shè)計(jì):</b></p><p> Employees表:</p><p> CREATE TABLE `employees` (</p><p> `employee_id` VARCHAR(10) NOT N
12、ULL COMMENT 'primary key',</p><p> `manage_id` VARCHAR(10) NOT NULL COMMENT 'foreign key',</p><p> `department_id` VARCHAR(10) NULL DEFAULT NULL COMMENT 'foreign key',&
13、lt;/p><p> `employee_name` VARCHAR(10) NOT NULL COMMENT 'NOT NULL',</p><p> `sex` TINYINT(2) NOT NULL DEFAULT '1' COMMENT '1表示男,2表示女',</p><p> `age` INT(10)
14、NULL DEFAULT NULL COMMENT '大于0',</p><p> `job` VARCHAR(10) NOT NULL COMMENT '職務(wù)',</p><p> PRIMARY KEY (`employee_id`),</p><p> INDEX `FK_employees_departments` (`
15、department_id`),</p><p> INDEX `FK_employees_employees` (`manage_id`),</p><p> CONSTRAINT `FK_employees_departments` FOREIGN KEY (`department_id`) REFERENCES `departments` (`department_id`),&l
16、t;/p><p> CONSTRAINT `FK_employees_employees` FOREIGN KEY (`manage_id`) REFERENCES `employees` (`employee_id`)</p><p><b> )</b></p><p> COMMENT='職工表'</p>
17、<p> COLLATE='utf8_general_ci'</p><p> ENGINE=InnoDB</p><p><b> ;</b></p><p> Departments表:</p><p> CREATE TABLE `departments` (</p>
18、<p> `department_id` VARCHAR(10) NOT NULL COMMENT 'primary key',</p><p> `manage_id` VARCHAR(10) NULL DEFAULT NULL COMMENT 'foreign key',</p><p> `department_name` VARC
19、HAR(10) NULL DEFAULT NULL,</p><p> PRIMARY KEY (`department_id`),</p><p> INDEX `FK_departments_employees` (`manage_id`),</p><p> CONSTRAINT `FK_departments_employees` FOREIGN KE
20、Y (`manage_id`) REFERENCES `employees` (`employee_id`)</p><p><b> )</b></p><p> COMMENT='部門'</p><p> COLLATE='utf8_general_ci'</p><p> E
21、NGINE=InnoDB</p><p><b> ;</b></p><p> Checking表:</p><p> CREATE TABLE `checking` (</p><p> `checking_id` VARCHAR(10) NOT NULL COMMENT 'primary key
22、39;,</p><p> `employee_id` VARCHAR(10) NOT NULL COMMENT 'foreign key',</p><p> `vacate_times` INT(2) NULL DEFAULT NULL,</p><p> `late_times` INT(2) NULL DEFAULT NULL,<
23、/p><p> `leave_times` INT(2) NULL DEFAULT NULL,</p><p> `checking_date` DATE NULL DEFAULT NULL,</p><p> PRIMARY KEY (`checking_id`),</p><p> INDEX `FK_checking_employe
24、es` (`employee_id`),</p><p> CONSTRAINT `FK_checking_employees` FOREIGN KEY (`employee_id`) REFERENCES `employees` (`employee_id`)</p><p><b> )</b></p><p> COMMENT=
25、39;考勤'</p><p> COLLATE='utf8_general_ci'</p><p> ENGINE=InnoDB</p><p><b> ;</b></p><p> Daily_satiation表:</p><p> CREATE TABLE
26、 `daily_situation` (</p><p> `daily_id` VARCHAR(10) NOT NULL COMMENT 'primary key',</p><p> `checking_id` VARCHAR(10) NULL DEFAULT NULL COMMENT 'foreign key',</p><p&
27、gt; `daily_date` DATE NULL DEFAULT NULL,</p><p> `should_time` DATETIME NULL DEFAULT NULL,</p><p> `really_time` DATETIME NULL DEFAULT NULL,</p><p> PRIMARY KEY (`daily_id`),<
28、;/p><p> INDEX `FK_daily_situation_checking` (`checking_id`),</p><p> CONSTRAINT `FK_daily_situation_checking` FOREIGN KEY (`checking_id`) REFERENCES `checking` (`checking_id`)</p><p&g
29、t;<b> )</b></p><p> COMMENT='每日情況'</p><p> COLLATE='utf8_general_ci'</p><p> ENGINE=InnoDB</p><p><b> ;</b></p><
30、p><b> Salary表:</b></p><p> CREATE TABLE `salary` (</p><p> `salary_id` VARCHAR(10) NOT NULL COMMENT 'primary key',</p><p> `employee_id` VARCHAR(10) NOT N
31、ULL COMMENT 'foreign key',</p><p> `bonus_pct` DOUBLE NOT NULL DEFAULT '0.1' COMMENT '獎(jiǎng)金率',</p><p> `give_date` DATE NULL DEFAULT NULL,</p><p> `should_sa
32、lary` INT(11) NULL DEFAULT NULL COMMENT '大于0',</p><p> `really_salary` INT(11) NULL DEFAULT NULL COMMENT '大于0',</p><p> PRIMARY KEY (`salary_id`),</p><p> INDEX `
33、FK_salary_employees` (`employee_id`),</p><p> CONSTRAINT `FK_salary_employees` FOREIGN KEY (`employee_id`) REFERENCES `employees` (`employee_id`)</p><p><b> )</b></p><p&
34、gt; COMMENT='工資'</p><p> COLLATE='utf8_general_ci'</p><p> ENGINE=InnoDB</p><p><b> ;</b></p><p><b> 觸發(fā)器設(shè)計(jì):</b></p>
35、<p> ?。?)每日情況觸發(fā)器:</p><p> 當(dāng)應(yīng)到時(shí)間<實(shí)到時(shí)間時(shí),遲到次數(shù)自動(dòng)加1</p><p> CREATE DEFINER=`root`@`localhost` TRIGGER `daily_situation_after_update` AFTER UPDATE ON `daily_situation` FOR EACH ROW BEGIN<
36、/p><p> UPDATE checking c,daily_situation d</p><p> SET c.late_times = c.late_times + 1</p><p> WHERE d.should_time < d.really_time and d.checking_id = c.checking_id and date_for
37、mat(d.should_time,'%Y-%m-%d')=date_format(d.really_time,'%Y-%m-%d');</p><p><b> END</b></p><p><b> 功能演示:</b></p><p> 第一個(gè)人1101的11月份考勤情況中,起初
38、沒有遲到</p><p> 現(xiàn)把他的第一天情況改成遲到</p><p> 觸發(fā)器響應(yīng),自動(dòng)修改checking表,使得第一個(gè)人的遲到次數(shù)加1</p><p> ?。?) 考勤_工資觸發(fā)器:</p><p> 實(shí)發(fā)工資=應(yīng)發(fā)工資+應(yīng)發(fā)工資*獎(jiǎng)金率-遲到次數(shù)*50-早退次數(shù)*20-請假次數(shù)*10</p><p>
39、CREATE DEFINER=`root`@`localhost` TRIGGER `checking_salary` AFTER UPDATE ON `checking` FOR EACH ROW BEGIN</p><p> update salary s,checking c</p><p> set really_salary = 0.9*(should_salary+shou
40、ld_salary*bonus_pct-(select late_times from checking c where s.employee_id = c.employee_id)*50- (select leave_times from checking c where s.employee_id = c.employee_id)*20 - (select vacate_times from checking c where s.
41、employee_id = c.employee_id)*10)</p><p> where s.give_date = c.checking_date;</p><p><b> END</b></p><p><b> 功能演示:</b></p><p> 第一個(gè)人在11月份的考核中,
42、遲到了一次</p><p> 工資=0.9*(10000+10000*0.11-50)=9945</p><p> 現(xiàn)更改20141101李四的考勤表,遲到改為5次,早退改為3次</p><p> 李四的工資變?yōu)椋汗べY=(10000+10000*0.11-50*5-20*3)=9711</p><p><b> 六、程序:&
43、lt;/b></p><p><b> 個(gè)人信息查詢:</b></p><p> 在職工表中右鍵簡歷視圖:SELECT e1.employee_id "員工編號",e1.employee_name "姓名",e1.sex "性別",e1.age "年齡",e1.job &quo
44、t;工作",department_name "部門",e2.employee_name "經(jīng)理"</p><p> FROM employees e1,employees e2,departments d</p><p> WHERE e1.manage_id = e2.employee_id and e1.department_id
45、= d.department_id </p><p><b> 職工工資查詢:</b></p><p> 在工資表中右鍵新建視圖,輸入查詢語句</p><p> ?。?)查詢11月份的工資</p><p> SELECT e.employee_id "員工編號",employee_name &q
46、uot;姓名",job,department_name "部門",should_salary "應(yīng)發(fā)工資",really_salary "實(shí)發(fā)工資",give_date "發(fā)放時(shí)間"</p><p> FROM employees e,departments d,salary s</p><p>
47、 WHERE e.department_id = d.department_id and e.employee_id = s.employee_id and date_format(s.give_date,'%Y-%m-%d') = '2016-11-30' </p><p><b> 查詢行政部的工資</b></p><p> 在
48、我錄入數(shù)據(jù)的時(shí)候,設(shè)定了以下規(guī)則:</p><p> 部門ID 部門編號 部門經(jīng)理 獎(jiǎng)金率 應(yīng)發(fā)工資</p><p> 101 行政部 行政經(jīng)理 11% 10000</p><p> 102 財(cái)務(wù)部 財(cái)務(wù)總監(jiān) 14% 25000</p><p> 103 策劃
49、部 策劃總監(jiān) 12% 18000</p><p> 104 研發(fā)部 研發(fā)總監(jiān) 15% 30000</p><p> 105 公關(guān)部 公關(guān)經(jīng)理 11% 15000</p><p> 106 市場部 產(chǎn)品經(jīng)理 13% 20000</p><p
50、> SELECT e.employee_id "員工編號",employee_name "姓名",job,department_name "部門",should_salary "應(yīng)發(fā)工資",really_salary "實(shí)發(fā)工資",give_date "發(fā)放時(shí)間"</p><p> F
51、ROM employees e,departments d,salary s</p><p> WHERE e.department_id = d.department_id and e.employee_id = s.employee_id and date_format(s.give_date,'%Y-%m-%d') = '2016-11-15' and d.departme
52、nt_id = '101' </p><p><b> 考勤表</b></p><p> 考勤表右鍵新建視圖,輸入查詢信息</p><p> SELECT e.employee_id "員工編號",employee_name "姓名",department_name "部門
53、",late_times "遲到次數(shù)",leave_times "早退次數(shù)",vacate_times "請假次數(shù)",checking_date "日期"</p><p> FROM employees e,departments d,checking c</p><p> WHERE e.dep
54、artment_id = d.department_id and e.employee_id = c.employee_id </p><p><b> 七、設(shè)計(jì)小結(jié):</b></p><p> (1)課程設(shè)計(jì)的總過程:</p><p> 1看懂問題描述,分析要實(shí)現(xiàn)哪些功能</p><p> 2根據(jù)問題描述,畫出
55、數(shù)據(jù)流圖,寫出詳細(xì)的數(shù)據(jù)字典</p><p> 找出每個(gè)實(shí)體,分析每個(gè)實(shí)體的屬性,以及實(shí)體之間的聯(lián)系并畫出E-R圖</p><p> 3從E-R圖中找到實(shí)體屬性之后,建立最初的關(guān)系模式,并將其進(jìn)行規(guī)范化處理,處理成3NF的形式</p><p><b> 4創(chuàng)建各表</b></p><p> 根據(jù)E-R圖,創(chuàng)建各表
56、(包括職工表,部門表,工資表,考勤表,每日情況表),在每個(gè)表里添加它們的屬性</p><p> 再將表和表之間的聯(lián)系添加到表中</p><p> 例如:(1)部門和職工是一對多的關(guān)系,所以將部門的ID加到職工表中</p><p> ?。?)職工和考勤表是一對一的關(guān)系,所以把職工的ID加到考勤表中,或者將考勤表的ID加到職工表中。</p><p
57、> ?。榱梭w現(xiàn)規(guī)范化,將這個(gè)聯(lián)系的ID放在原表中的ID之后)</p><p> 為每一個(gè)表中的屬性設(shè)置主碼(一般為其各自的ID號)以及外碼</p><p> 5在編寫SQL語句的時(shí)候,注意完整性約束</p><p> Ex:姓名不能為空。用NOT NULL來約束</p><p> 職工的性別只能取’男’和’女’這兩個(gè)屬性che
58、ck(sex IN(’男’,’女’));</p><p> 6 為每一個(gè)表填寫數(shù)據(jù)</p><p> 7 建立一個(gè)觸發(fā)器,來計(jì)算員工工資</p><p> 員工工資=應(yīng)發(fā)工資(底薪)+應(yīng)發(fā)工資*獎(jiǎng)金率-遲到次數(shù)*50-早退次數(shù)*20-請假次數(shù)*10</p><p> 8設(shè)計(jì)并撰寫實(shí)驗(yàn)報(bào)告</p><p><
59、;b> ?。?)心得</b></p><p> 每一次的課程設(shè)計(jì),都能學(xué)到很多知識,首先是要詳讀課程設(shè)計(jì)指導(dǎo)書和要求,按照整個(gè)步驟下去,真的能起到事半功倍的效果。</p><p> 只有把問題分析透徹了,才能找出有哪些實(shí)體和以及這些實(shí)體所對應(yīng)的屬性,再結(jié)合實(shí)際生活中的情況,分析出實(shí)體和實(shí)體之間有什么聯(lián)系。實(shí)體其實(shí)就是我們要?jiǎng)?chuàng)建的表,屬性是表內(nèi)部的屬性,填數(shù)據(jù)的環(huán)節(jié)是比
60、較耗時(shí)的(一個(gè)人的每日情況有一條數(shù)據(jù),每人每月的考勤就是30條數(shù)據(jù),23個(gè)員工,就是23*30=690條數(shù)據(jù)),然后才是實(shí)現(xiàn)功能的環(huán)節(jié),創(chuàng)建觸發(fā)器,通過嵌套寫查詢工資的語句,遇到困難的時(shí)候,研讀教科書,上網(wǎng)找資料,課下和在實(shí)驗(yàn)室的同學(xué)一起交流,努力找到解決問題的辦法,受益良多 </p><p> 遇到的問題以及我的思考 </p><p> 如果表中的主碼的數(shù)據(jù)不唯一,
61、就設(shè)置不了主鍵;就拿每日情況表來說</p><p> 每日編號不唯一,所以設(shè)置不了主碼。原因:一天中對23個(gè)員工進(jìn)行考勤,所以每日編號相同,考勤號不同
62、
63、 </p><p> 工資算法設(shè)定的原因:考慮到遲到和早退的性質(zhì)不同,所以懲罰制度也不同。早退可能是提前完成了工作,也可能是把工作帶回家里來做,有很多的因素,所以懲罰程度較輕。另外,每日情況表的遲到時(shí)間僅供參考,可以作為一個(gè)遲到的依據(jù)來考勤一個(gè)員工的工作,如果遲到時(shí)間過長,次數(shù)過多,可考慮扣除當(dāng)月獎(jiǎng)金</p><p> 關(guān)于稅率,原本我想根據(jù)工資的多少來設(shè)定不統(tǒng)一的稅率,但是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫課程設(shè)計(jì)--工資管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
- 數(shù)據(jù)庫課程設(shè)計(jì)--工資管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)----工資管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)——工資管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--工資管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--工資管理系統(tǒng)
- 數(shù)據(jù)庫工資管理系統(tǒng)課程設(shè)計(jì)
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告---企業(yè)工資管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)---中小型超市銷售管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
- 工資管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)報(bào)告(數(shù)據(jù)庫課程設(shè)計(jì))
- 工資管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)報(bào)告數(shù)據(jù)庫課程設(shè)計(jì)
- 數(shù)據(jù)庫課程設(shè)計(jì)--中小型工廠管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--工資管理系統(tǒng)
- 數(shù)據(jù)庫工資管理系統(tǒng)課程設(shè)計(jì)
- 工資管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)報(bào)告(數(shù)據(jù)庫課程設(shè)計(jì))模板
- 中小型超市銷售管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫課程設(shè)計(jì)
- 工資管理系統(tǒng)_數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)庫工資管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)庫課程設(shè)計(jì)工資管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告--工資管理系統(tǒng)設(shè)計(jì)
評論
0/150
提交評論