版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 數(shù)據(jù)庫原理及應(yīng)用</b></p><p><b> 課程課程設(shè)計報告</b></p><p> 項目題目: 工資管理系統(tǒng)</p><p> 專 業(yè): 網(wǎng)絡(luò)工程</p><p><b> 學(xué) 號: </b></p>
2、<p><b> 2014年6月</b></p><p><b> 需求分析</b></p><p><b> 1.1功能的分析</b></p><p> 工資管理系統(tǒng)主要完成的功能有:</p><p> (1) 人員信息管理:企業(yè)員工信息(包括員工基本信
3、息、教育經(jīng)歷、個人簡歷、崗位變更、離職登記、離退休信息等)的維護(hù)和查詢。</p><p> (2) 考勤管理:管理員工的出勤情況(包括加班、請假、休假等),并提供查詢和分類統(tǒng)計功能。</p><p> (3) 薪資福利管理:管理員工的薪資和福利(包括當(dāng)月工資、個人所得稅、發(fā)放工資歷史、員工獎勵、員工懲罰等)。</p><p> (4) 社會保障管理:管理員工的
4、社保信息(包括單位參保信息、養(yǎng)老保險、醫(yī)療保險、住房公積金等),生成社會保險臺帳。</p><p> (5) 系統(tǒng)管理:包括代碼管理、參數(shù)設(shè)置、權(quán)限設(shè)置、更改密碼等。</p><p><b> 1.2頂層圖</b></p><p><b> 1.3數(shù)據(jù)流程圖</b></p><p><b
5、> 1.4數(shù)據(jù)字典分析</b></p><p> 數(shù)據(jù)字典是系統(tǒng)中各類數(shù)據(jù)描述的集合,是進(jìn)行詳細(xì)的數(shù)據(jù)收集和數(shù)數(shù)據(jù)分析所獲得的主要成果。</p><p><b> 概念結(jié)構(gòu)設(shè)計</b></p><p> 分析前面的系統(tǒng)功能要求,需要一個表來存儲和管理員工信息,使系統(tǒng)能夠接受員工原始的各項數(shù)據(jù),以實現(xiàn)數(shù)據(jù)錄入、查詢或統(tǒng)計
6、員工信息等功能。員工是本系統(tǒng)的一個實體。</p><p> 為了能實現(xiàn)查詢和統(tǒng)計部門內(nèi)員工情況等功能,必須有一個表來存儲和管理所有部門的信息。部門也是一個實體。</p><p> 工資是以員工工作情況來制定的。需要建立一個表來記錄各種工資、津貼、扣款的信息。它主要為各種查詢和統(tǒng)計功能提供工資數(shù)據(jù)。工資也是一個實體。</p><p> 考勤管理是為了實現(xiàn)對員工考
7、勤的管理,并實現(xiàn)對員工的進(jìn)行查詢和分類匯總的功能,因此,考勤也是一個實體。</p><p> 獎懲是以員工受到的獎勵和懲罰所決定的,需建立一個表來記錄各種獎勵和懲罰。它主要是為各種查詢提供數(shù)據(jù)。</p><p> 社保信息是為提供基本的查詢功能而設(shè)定的一個實體,崗位變更是為記錄員工在本部門或不同部門的職位變化,并提供查詢的功能。</p><p> 員工簡歷是為
8、了提供員工在過去的情況而設(shè)定的一個實體。</p><p><b> 邏輯結(jié)構(gòu)設(shè)計</b></p><p><b> 物理結(jié)構(gòu)設(shè)計</b></p><p> 4.1實體轉(zhuǎn)變?yōu)殛P(guān)系模式的有:</p><p> 因為部門和員工1:N的關(guān)系,且員工和其他的實體也是1:N的關(guān)系,所以個關(guān)系模式為:&l
9、t;/p><p> 部門(部門名稱,部門人數(shù),部門負(fù)責(zé)人)</p><p> 員工(員工編號,姓名,性別,年齡,學(xué)歷,政治面貌,畢業(yè)學(xué)校,所學(xué)專業(yè),出生日期,部門名稱,退休信息,)</p><p> 工資(工資ID,員工編號,基本工資,崗位工資,工齡工資,加班工資,個人所得稅,缺勤扣款,其他應(yīng)扣款,其他應(yīng)加款,應(yīng)發(fā)工資,實發(fā)工資,工資年月)</p>
10、<p> 考勤(考勤ID,員工編號,加班,請假,休假,日期,出勤天數(shù))</p><p> 崗位變更(ID,員工編號,初始崗位,現(xiàn)在崗位,變更日期)</p><p> 離職信息(ID,員工編號,離職時間,離職原因,批準(zhǔn)人)</p><p> 簡歷(ID,員工編號,,獲獎情況,社會實踐)</p><p> 獎懲(獎懲ID,員工
11、編號,獎罰日期,獎罰原因,解除日期) </p><p> 工資歷史(ID,員工編號,發(fā)放金額,發(fā)放日期)</p><p> 社保信息(ID,員工編號,養(yǎng)老保險,醫(yī)療保險,住房公積金,參保信息)</p><p> 用戶信息(員工編號,密碼,權(quán)限)</p><p> 帶下劃線的屬性為個關(guān)系模式的外碼,字體為粗體的屬性為各關(guān)系模式的主碼。&
12、lt;/p><p> 4.2數(shù)據(jù)庫與數(shù)據(jù)表的設(shè)計</p><p> 員工信息數(shù)據(jù)表的定義</p><p> 其中“員工編號”是表的主鍵,唯一標(biāo)識。</p><p> “部門名稱”是外鍵?!皢T工編號”將記錄員工的編號,在員工信息表中增加這一列時,雖然增加了數(shù)據(jù)冗余,但可以再查詢每個員工信息是,提高系統(tǒng)的性能。因為員工信息表的記錄數(shù)相對固定,
13、相比之下,增加這個冗余的列對于整個系統(tǒng)來說是有利的。通過它,系統(tǒng)將引用到工資信息。</p><p> 此表取名為“員工”。</p><p> 崗位變更數(shù)據(jù)表的定義:</p><p> 其中“員工編號”是主鍵,此表取名為崗位變更。</p><p><b> 簡歷表:</b></p><p>
14、<b> 此表取名為簡歷。</b></p><p><b> 離職信息:</b></p><p> 此表取名為離職信息。</p><p><b> 獎懲表:</b></p><p><b> 員工工資基本表</b></p><
15、p><b> 發(fā)放工資歷史</b></p><p><b> 考勤表</b></p><p><b> 社保信息</b></p><p><b> 用戶信息表</b></p><p><b> 部門</b></p
16、><p> 4.3數(shù)據(jù)的完整性設(shè)計</p><p> 給每個表實施主鍵約束。</p><p><b> 主鍵約束、非空約束</b></p><p> 員工:員工編號為主鍵,所以此項非空</p><p> 部門:部門編號為主鍵,所以此項非空</p><p> 其余的正
17、如上面的設(shè)計</p><p><b> 實施CHECK約束</b></p><p> 員工表中建立一個檢查約束,即員工性別不是男的就是女的</p><p> CHECK(性別IN(‘男’,‘女’))</p><p> 考勤表中建立一個對于出勤天數(shù)天數(shù)的檢查約束,即出勤天數(shù)在0-20之間</p>&l
18、t;p> CHECK(出勤天數(shù)>=0 and 出勤天數(shù)<=20)</p><p> (3) 外鍵約束</p><p> FK_員工_部門 FOREIGN KEY (部門名稱) REFERENCES 部門(部門名稱)</p><p> FK_工資_員工 FOREIGN KEY(員工編號)REFERENCES 員工(員工編號)<
19、/p><p> FK_崗位變更_員工 FOREIGN KEY(員工編號)REFERENCES 員工(員工編號)</p><p> FK_簡歷_員工 FOREIGN KEY(員工編號)REFERENCES 員工(員工編號)</p><p> FK_離職_員工 FOREIGN KEY(員工編號)REFERENCES 員工(員工編號)</p><
20、;p> FK_獎懲_員工 FOREIGN KEY(員工編號)REFERENCES 員工(員工編號)</p><p> FK_工資歷史_員工 FOREIGN KEY(員工編號)REFERENCES 員工(員工編號)</p><p> FK_考勤_員工 FOREIGN KEY(員工編號)REFERENCES 員工(員工編號)</p><p> FK_
21、社保_員工 FOREIGN KEY(員工編號)REFERENCES 員工(員工編號)</p><p> ?。?) 惟一約束</p><p> 每一個表的主鍵都需要定義為惟一性:</p><p> 對于工資歷史表員工編號也要惟一約束。</p><p><b> ?。?)強(qiáng)制約束</b></p>&l
22、t;p> 對INSERT和UPDATE操作強(qiáng)制約束,表明以后對員工表中的部門名稱的添加和更新操作都會檢查部門表中是否存在與此相應(yīng)的內(nèi)容。</p><p><b> 數(shù)據(jù)實施和維護(hù)</b></p><p><b> 5.1建表</b></p><p> Create table 員工</p>&l
23、t;p> (員工編號 varchar(10) not null primary key,</p><p> 姓名 char(8)not null,</p><p> 性別 char(2) not null check(性別 in (‘男’,’女’)), </p><p> 年齡 int not null,</p><p>
24、 學(xué)歷 varchar(10) not null,</p><p> 部門名稱 varchar(15) not null,</p><p> 畢業(yè)院校 varchar(30) not null,</p><p> 政治面貌 varchar(8) not null,</p><p> 所學(xué)專業(yè) varchar(40) not n
25、ull,</p><p> 出生日期 varchar(15) not null,</p><p> 退休信息 varchar(4) not null,</p><p> FOREIGN KEY (部門名稱) REFERENCES 部門(部門名稱)</p><p><b> );</b></p>&l
26、t;p> Create table 簡歷</p><p> (ID int primary key identity,</p><p> 員工編號 varchar(10)not null,</p><p> 獲獎情況 varchar(50),</p><p> 社會實踐情況 varchar(100),</p>
27、;<p> FOREIGN KEY(員工編號)REFERENCES 員工(員工編號)</p><p><b> ); </b></p><p> Create table 離職</p><p> (ID int primary key identity,</p><p> 員工編號 varch
28、ar(10)not null ,</p><p> 離職原因 varchar(40),</p><p> 離職時間 varchar(20),</p><p> 批準(zhǔn)人 varchar(8),</p><p> FOREIGN KEY(員工編號)REFERENCES 員工(員工編號)</p><p><b&
29、gt; );</b></p><p> Create table 崗位變更</p><p> ( ID int primary key identity,</p><p> 員工編號 varchar(10) not null ,</p><p> 初始崗位 varchar(20),</p><p
30、> 變更日期 varchar(20),</p><p> 現(xiàn)在崗位 varchar(20),</p><p> FOREIGN KEY(員工編號)REFERENCES 員工(員工編號)</p><p><b> );</b></p><p> CREATE TABLE 工資</p><
31、;p> (工資ID int primary key identity,</p><p> 員工編號 varchar(10)not null,</p><p> 基本工資 decimal not null,</p><p> 個人所得稅 decimal not null,</p><p> 缺勤扣款 decimal,<
32、;/p><p> 加班工資 decimal ,</p><p> 工齡工資 decimal not null,</p><p> 其他應(yīng)減款 decimal,</p><p> 其他應(yīng)增款 decimal,</p><p> 崗位工資 decimal not null,</p><p>
33、 應(yīng)發(fā)工資 decimal,</p><p> 實發(fā)工資 decimal,</p><p> 工資年月 varchar (15),</p><p> FOREIGN KEY(員工編號)REFERENCES 員工(員工編號)</p><p><b> );</b></p><p> CR
34、EATE TABLE 獎懲</p><p> (獎懲ID int primary key identity,</p><p> 員工編號 varchar (10)not null,</p><p> 獎懲日期 varchar(15),</p><p> 獎懲原因 varchar (15),</p><p>
35、; 解除日期 varchar(15)</p><p> FOREIGN KEY(員工編號)REFERENCES 員工(員工編號)</p><p><b> );</b></p><p> CREATE TABLE 工資歷史</p><p> ( ID int primary key identity ,
36、</p><p> 員工編號 varchar(10),</p><p> 發(fā)放金額 decimal,</p><p> 發(fā)放日期 varchar(20),</p><p> FOREIGN KEY(員工編號)REFERENCES 員工(員工編號)</p><p><b> );</b>&
37、lt;/p><p> Create table 考勤</p><p><b> (</b></p><p> 考勤ID int primary key identity ,</p><p> 員工編號 varchar(10) not null ,</p><p><b> 加
38、班 int,</b></p><p><b> 休假 int,</b></p><p><b> 請假 int,</b></p><p> 日期 varchar(15),</p><p> 出勤天數(shù) 20-請假-休假 int CHECK(出勤天數(shù)>=0 and 出勤天數(shù)&
39、lt;=20),</p><p> FOREIGN KEY(員工編號)REFERENCES 員工(員工編號)</p><p><b> );</b></p><p> Create table 社保</p><p> (ID int primary key identity,</p><
40、p> 員工編號 varchar(10)not null,</p><p> 參保信息 varchar(20) ,</p><p> 醫(yī)療保險 decimal, </p><p> 住房公積金 decimal,</p><p> 養(yǎng)老保險 decimal,</p><p> FOREIGN KEY(員工
41、編號)REFERENCES 員工(員工編號)</p><p><b> );</b></p><p> Create table 部門</p><p> (部門名稱 varchar(15) primary key,</p><p><b> 部門人數(shù) int,</b></p>
42、<p> 部門負(fù)責(zé)人 varchar(15)</p><p><b> );</b></p><p> Create table 用戶信息</p><p> (員工編號 varchar(10) primary key,</p><p> 密碼 varchar(9) not null,</p>
43、;<p> 權(quán)限 int notnull</p><p><b> );</b></p><p><b> 5.2觸發(fā)器</b></p><p> (1)當(dāng)考勤表添加一條記錄,工資表中的“加班工資”“考勤扣款”自動更新</p><p> create trigger ins
44、ert_考勤</p><p><b> on 考勤</b></p><p> after insert </p><p><b> as begin </b></p><p> declare @new_num int</p><p> declare @new_
45、num1 int</p><p> declare @new_date varchar</p><p> select @new_num=(select 加班 from inserted)</p><p> select @new_num1=(select 請假 from inserted)</p><p> select @new_
46、date=(select 日期 from inserted)</p><p> update 工資 set 加班工資=@new_num*100,</p><p> 缺勤扣款=@new_num1*100 where 員工編號 in (select 員工編號 from inserted) </p><p><b> End;</b></
47、p><p> (2) 當(dāng)考勤表添加一條記錄,考勤表中的出勤天數(shù)自動添加</p><p> Create trigger insert_考勤2</p><p><b> On 考勤 </b></p><p> For insert</p><p><b> As begin <
48、/b></p><p> update 考勤 set 出勤天數(shù)=20-休假-請假 where 員工編號 in (select 員工編號 from inserted) </p><p><b> end;</b></p><p> (3)當(dāng)工資表中添加一條新的記錄,“應(yīng)發(fā)工資”和“實發(fā)工資”自動填充</p><p
49、> create trigger insert_1</p><p> on 工資 for insert,update</p><p><b> as begin</b></p><p> update 工資 set 應(yīng)發(fā)工資=基本工資+崗位工資+工齡工資+加班工資+其他應(yīng)增款-缺勤扣款-其他應(yīng)減款,</p>&l
50、t;p> 實發(fā)工資=基本工資+崗位工資+工齡工資+加班工資+其他應(yīng)增款-缺勤扣款-其他應(yīng)減款-個人所得稅 where 員工編號 in (select 員工編號 from inserted)</p><p><b> End;</b></p><p> (4) 當(dāng)工資表中添加一條新的記錄,表“工資歷史”的內(nèi)容自動填充</p><p>
51、 create trigger insert_2</p><p> on 工資 after insert</p><p> as begin </p><p> declare @bb varchar(10)</p><p> declare @cc decimal(12,4)</p><p> d
52、eclare @dd varchar(15)</p><p> select @bb=員工編號 from inserted</p><p> select @cc=實發(fā)工資 from 工資 </p><p> select @dd=工資年月 from inserted</p><p> Insert into 工資歷史 val
53、ues( @bb, @cc, @dd)</p><p><b> End;</b></p><p> (5)當(dāng)考勤表的觸發(fā)器觸發(fā)工資表進(jìn)行update時,工資表中的實發(fā)工資改變,使“工資歷史” 表的發(fā)放金額自動改變</p><p> create trigger insert_3</p><p> on 工資
54、after update </p><p> as begin </p><p> declare @new_aa decimal</p><p> declare @date varchar(15)</p><p> set @new_aa=(select 實發(fā)工資 from inserted)</p>&l
55、t;p> set @date=(select 工資年月 from inserted)</p><p> update 工資歷史 set 發(fā)放金額= @new_aa where 員工編號 in (select 員工編號 from inserted) </p><p><b> end;</b></p><p> (6)當(dāng)員工表刪
56、除或增加一個員工時,對應(yīng)的部門人數(shù)相應(yīng)變化</p><p> Create trigger delete_員工</p><p> on 員工 after delete</p><p><b> as begin</b></p><p> update 部門 set 部門人數(shù)=部門人數(shù)-1 where 部門名稱
57、 in (select 部門名稱 from deleted)</p><p><b> end;</b></p><p> create trigger insert_員工</p><p> on 員工 after insert</p><p><b> as begin</b>
58、</p><p> update 部門 set 部門人數(shù)=部門人數(shù)+1 where 部門名稱 in (select 部門名稱 from inserted)</p><p><b> end;</b></p><p> 用VB、VC++、C#、.NET等設(shè)計數(shù)據(jù)庫的操作界面</p><p><b>
59、; 登錄界面</b></p><p><b> 主界面</b></p><p><b> 職工信息頁面</b></p><p><b> 工資頁面</b></p><p><b> 職稱工資頁面</b></p><
60、p> 設(shè)計小結(jié):總結(jié)課程設(shè)計的過程,體會及建議</p><p> 經(jīng)過這段時間的努力,我們組在老師的幫助下,基本完成本次的課程設(shè)計,基本達(dá)到了工資管理系統(tǒng)的要求。</p><p> 經(jīng)過這次數(shù)據(jù)庫課程設(shè)計給我們留下了很大的印象,明白了流程是一切的根本,架構(gòu)是骨骼。實踐比一切的空談和理論更能學(xué)到東西。在做這個數(shù)據(jù)庫開始無論遇到什么困難,我們都沒有一絲的放棄念頭。也體會到,在設(shè)計過
61、程中一定要慎重,仔細(xì),來不得半點馬虎。需求分析是整個課程設(shè)計的中心,考慮全面,分析徹底。才會為后來的設(shè)計打下良好的基礎(chǔ)。否則,前功盡棄,甚至不能完成任務(wù)。做實例過程中要注意一說明書中數(shù)據(jù)項類型,數(shù)據(jù)長度等一致,不能像平時在紙上作業(yè)。</p><p> 最后,通過這次課程設(shè)計讓我們學(xué)到了很多,強(qiáng)化了動手能力,加強(qiáng)了合作意識,為以后找工作奠定了一定的基礎(chǔ)。</p><p><b>
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工資管理系統(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è)計
- 工資管理系統(tǒng)數(shù)據(jù)庫設(shè)計報告(數(shù)據(jù)庫課程設(shè)計)模板
- 數(shù)據(jù)庫課程設(shè)計--工資管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--工資管理系統(tǒng)數(shù)據(jù)庫設(shè)計
- 數(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ù)庫課程設(shè)計報告---企業(yè)工資管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--工資管理系統(tǒng)
- 數(shù)據(jù)庫工資管理系統(tǒng)課程設(shè)計
- 數(shù)據(jù)庫原理課程設(shè)計報告---工資管理系統(tǒng)設(shè)計
- 數(shù)據(jù)庫課程設(shè)計工資管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計工資管理系統(tǒng)
評論
0/150
提交評論