數(shù)據(jù)庫課程設(shè)計----工資管理系統(tǒng)_第1頁
已閱讀1頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計要求:</b></p><p>  1.對各個系統(tǒng)進行系統(tǒng)功能需求分析</p><p>  2. 數(shù)據(jù)庫設(shè)計分析階段,進行詳細的數(shù)據(jù)庫需求分析,進行概念數(shù)據(jù)庫的設(shè)計,畫出數(shù)據(jù)庫的E-R圖(局部和整體E-R圖)</p><p>  3. 設(shè)計出詳細的邏輯數(shù)據(jù)庫結(jié)構(gòu),將各個實體和聯(lián)系轉(zhuǎn)化為相應(yīng)的二維表即關(guān)系模式

2、,指定各個關(guān)系的主關(guān)鍵字和外部關(guān)鍵字,并對各個關(guān)系的約束加以限定</p><p>  4. 通過企業(yè)管理器或是查詢分析器實現(xiàn)各個二維關(guān)系(建議最好用SQL代碼實現(xiàn)),要求建立相關(guān)的索引</p><p>  5. 根據(jù)系統(tǒng)功能需求設(shè)計相應(yīng)的查詢視圖</p><p>  6. 要求根據(jù)系統(tǒng)功能需求建立存儲過程</p><p>  7. 根據(jù)功能需

3、求建立相應(yīng)的觸發(fā)器以保證數(shù)據(jù)的一致性</p><p>  8. 通過建立用戶和權(quán)限分配實現(xiàn)數(shù)據(jù)庫一定的安全性,考慮數(shù)據(jù)庫的備份與恢復(fù)(此內(nèi)容選作)</p><p><b>  需求分析</b></p><p>  企業(yè)的工資管理是公司管理的一個重要內(nèi)容。隨著科學(xué)技術(shù)的發(fā)展,一些公司的規(guī)模也越來越大,職工的數(shù)量也在不斷的增加,企業(yè)的管理工作也變得

4、越來越復(fù)雜。工資管理既涉及到企業(yè)勞動人事的管理,同時也是企業(yè)財務(wù)的重要組成部分。面對如此大的信息量,單憑傳統(tǒng)的表格、手工操作已不能滿足實際的需要。因此,我設(shè)計工資管理系統(tǒng)來提高財務(wù)管理方面的效率。通過這個系統(tǒng)可以使信息的管理更加規(guī)范,統(tǒng)計更科學(xué)。</p><p><b>  模塊功能分析:</b></p><p>  (1)部門模塊:用來管理部門;</p>

5、<p> ?。?)工資模塊:用來管理員工的工資;</p><p>  (3)職工模塊:用來管理工廠的職工信息;</p><p><b>  二、概念結(jié)構(gòu)設(shè)計</b></p><p>  經(jīng)分析,本系統(tǒng)的e-r圖如下:</p><p><b>  三、邏輯結(jié)構(gòu)設(shè)計</b></p&g

6、t;<p><b>  工資管理基本信息表</b></p><p> ?、賒epartment(部門)</p><p> ?、?staff(職工)</p><p> ?、踫alary(工資)</p><p><b>  ①建庫</b></p><p>  cre

7、ate database salary_manage</p><p><b>  on</b></p><p>  (name=salary_manage_data,</p><p>  filename='d:\salary_manage_data.mdf',</p><p><b>  si

8、ze=25,</b></p><p>  maxsize=35,</p><p>  filegrowth=5)</p><p><b>  log on</b></p><p>  (name=manage_log,</p><p>  filename='d:\salary

9、_manage_data.ldf',</p><p><b>  size=25,</b></p><p>  maxsize=35,</p><p>  filegrowth=5)</p><p><b> ?、诮ū?lt;/b></p><p><b>  /

10、建立職工表/</b></p><p>  create table staff</p><p>  (staff_no char(10) primary key,/*職工工號*/</p><p>  staff_name char(20) not null,/*職工姓名*/</p><p>  staff_sex char(25)

11、 not null default '男'check( staff_sex in('男','女')),/*性別*/</p><p>  enducational char(10) default '本科',/*學(xué)歷*/</p><p>  dapartment_no char(8) not null,/*部門編號*/</

12、p><p>  department_name char(15))/*部門名稱*/</p><p><b>  /*建立工資表*/</b></p><p>  create table salary</p><p>  (staff_no char(10) not null foreign key references st

13、aff(staff_no),/*職工工號*/</p><p>  m_salary int default 3000,/*月薪*/</p><p>  allowance int default 0,/*津貼*/</p><p>  out_days int not null check(out_days<=31 and out_days>=0),/*出

14、勤天數(shù)*/</p><p>  work_overtime datetime(10),/*加班時間*/</p><p>  w_overtime_days int default 0 check(w_overtime_days>=0 and w_overtime_days<=31),/*加班天數(shù)*/</p><p>  deduct int defaul

15、t 0,/*事故扣薪*/</p><p>  add_money int default 0,/*加班費*/</p><p>  issue_salary int(4) not null,/*應(yīng)發(fā)薪水*/</p><p>  iss_salary int(4) not null)/*實發(fā)薪水*/</p><p><b>  /*建立

16、部門表*/</b></p><p>  create table department </p><p>  (department_no char(8) primary key,/*部門編號*/</p><p>  department

17、_name char(15) not null,/*部門名稱*/</p><p>  depart_manage char(6) not null,/*部門經(jīng)理*/</p><p>  depart_people int(6)/*部門人數(shù)*/</p><p> ?、厶砑佑涗?</p><p>  insert into depa

18、rtment</p><p>  values('071011','A部門','王經(jīng)理',100);</p><p>  insert into department</p><p>  values('071012','B部門','李經(jīng)理',200);</p>

19、;<p>  insert into department</p><p>  values('071013','C部門','張經(jīng)理',100);</p><p>  insert into staff</p><p>  values('0610','李明','男

20、','本科','071011','A部門');</p><p>  insert into staff</p><p>  values('0613','張三','男','???#39;,'071011','A部門');</p>&l

21、t;p>  insert into staff</p><p>  values('0611','劉麗','女','本科','071012','B部門');</p><p>  insert into staff</p><p>  values('0612

22、','張新','男','本科','071013','C部門');</p><p>  insert into salary</p><p>  values('0610',3000,100,30,'2011-10-8',2,50,0,3000,3200);</p&g

23、t;<p>  insert into salary</p><p>  values('0611',3000,0,20,'',0,0,500,3000,2500);</p><p>  insert into salary</p><p>  values('0612',3000,100,31,'

24、;2011-10-10',1,50,0,3000,3150);</p><p><b>  四、功能處理</b></p><p><b>  查詢</b></p><p><b>  ① 表查詢</b></p><p>  select * from departme

25、nt /*查詢部門表*/</p><p>  select * from staff /*查詢職工表*/</p><p>  select * from salary /*查詢工資表*/</p><p><b> ?、?數(shù)據(jù)查詢</b></p><p>  select salary.staff_no,staff_nam

26、e,issue_salary,iss_salary</p><p>  from salary,staff</p><p>  where iss_salary>3000 and salary.staff_no=staff.staff_no</p><p>  order by salary.staff_no</p><p>  sel

27、ect staff_no,staff_name from staff</p><p>  where staff_name like '劉%';</p><p><b>  2、數(shù)據(jù)更新</b></p><p> ?、?插入(前面已插入)</p><p><b> ?、?修改</b>

28、</p><p>  update salary</p><p>  set iss_salary =1.2*iss_salary </p><p>  where iss_salary<2600;</p><p><b> ?、?刪除</b></p><p>  delete from s

29、taff</p><p>  where enducational='???#39;;</p><p><b>  3.索引</b></p><p><b> ?、?建立索引</b></p><p>  create index j</p><p>  on sala

30、ry(staff_no,issue_salary,iss_salary)</p><p>  create unique index index_staff</p><p>  on staff(staff_name)</p><p>  create unique index index_depart</p><p>  on depart

31、ment(depart_people)</p><p><b>  ② 查詢索引</b></p><p>  exec sp_helpindex salary</p><p>  exec sp_helpindex staff</p><p>  exec sp_helpindex department</p>

32、;<p><b>  ③ 修改索引</b></p><p>  exec sp_rename 'salary.j','salary_index'</p><p><b> ?、?刪除索引</b></p><p>  drop index index</p><

33、;p><b>  4.視圖</b></p><p><b> ?、?創(chuàng)建視圖</b></p><p>  create view table_salary(staff_no ,staff_name,issue_salary,iss_salary)</p><p>  as select salary.staff_no

34、,staff_name,issue_salary,iss_salary</p><p>  from salary,staff</p><p>  where salary.staff_no=staff.staff_no</p><p><b> ?、?查找視圖</b></p><p>  select * from t

35、able_salary</p><p><b>  ③/*修改視圖*/</b></p><p>  Alter view table_salary</p><p>  (staff_no ,staff_name ,department_name,issue_salary,iss_salary)</p><p>  as

36、select salary.staff_no,staff_name,department_name,issue_salary,iss_salary</p><p>  from salary,staff</p><p>  where salary.staff_no=staff.staff_no;</p><p><b> ?、?刪除視圖</b>

37、;</p><p>  drop view table_salary</p><p><b>  5.存儲過程</b></p><p><b>  ① 創(chuàng)建存儲過程。</b></p><p>  create procedure pro_staff</p><p>  (@s

38、taff_no char(10),</p><p>  @staff_name char(25),</p><p>  @staff_sex char(25),</p><p>  @enducational char(10),</p><p>  @department_no char(8),</p><p>  @

39、department_name char(15))</p><p><b>  as </b></p><p>  insert into staff values</p><p>  (@staff_no,@staff_name,@staff_sex,@enducational,@department_no,@department_name)

40、</p><p>  update department</p><p>  set depart_people=depart_people+1</p><p>  where department_no=@department_no</p><p>  create procedure pro_salary</p><

41、p><b>  as</b></p><p>  (@m_salary int,</p><p>  @allowance int,</p><p>  @add_money int,</p><p>  @deduct int</p><p><b>  )</b>&

42、lt;/p><p><b>  as</b></p><p>  update salary </p><p>  set iss_salary = (@m_salary + @allowance+@add_money- @deduct )</p><p>  where m_salary=@m_salary and all

43、owance=@allowance and add_money=@add_money and deduct=@deduct</p><p><b> ?、?查看存儲過程</b></p><p>  exec sp_helptext pro_staff</p><p>  exec sp_helptext pro_salary</p>

44、<p><b>  ③ 執(zhí)行存儲過程</b></p><p>  exec pro_staff @staff_no='0614',@staff_name='王敏',@staff_sex='女', @enducational='本</p><p>  科',@department_no=&#

45、39;071011', @department_name='A部門';</p><p><b>  ④刪除存儲過程</b></p><p>  drop procedure pro_staff</p><p><b>  6.觸發(fā)器</b></p><p><b>

46、 ?、?創(chuàng)建觸發(fā)器</b></p><p>  create trigger m </p><p><b>  on salary</b></p><p>  for update </p><p><b>  as </b></p><p>  if updat

47、e(m_salary)</p><p><b>  begin </b></p><p>  rollback transaction </p><p>  print'月薪不能修改,請聯(lián)系財務(wù)科'</p><p><b>  end</b></p><p>

48、  CREATE TRIGGER TRI_salary</p><p><b>  ON salary</b></p><p>  FOR update,insert</p><p><b>  AS</b></p><p><b>  BEGIN </b></p>

49、;<p>  update salary set add_money=(w_overtime_days*50)</p><p>  update salary set issue_salary = m_salary </p><p>  update salary set iss_salary = (m_salary+allowance+add_money - deduct

50、)</p><p><b>  END </b></p><p>  create trigger tri_department</p><p>  on department </p><p>  for insert</p><p><b>  as</b></

51、p><p>  declare @staff_no char(8)</p><p>  declare @department_no char(15)</p><p>  update department</p><p>  set depart_people=depart_people+1</p><p>  wher

52、e department_no=@department_no</p><p>  create trigger tri_change</p><p><b>  on staff</b></p><p>  for delete</p><p><b>  as</b></p>&l

53、t;p><b>  begin </b></p><p><b>  delete</b></p><p>  from salary</p><p>  where salary.staff_no=any(select staff_no from deleted)</p><p>  upd

54、ate department</p><p>  set depart_people=depart_people-1</p><p>  where department_no=any(select department_no from deleted)</p><p><b>  end</b></p><p><

55、;b> ?、?觸發(fā)器的刪除</b></p><p>  drop trigger tri_department;</p><p><b>  7.用戶與權(quán)限</b></p><p>  /*創(chuàng)建登陸賬號*/</p><p>  exec sp_addlogin 'zhangsan',&#

56、39;1234','salary_manage',null</p><p>  /*把用戶加入到數(shù)據(jù)庫中*/</p><p>  exec sp_adduser 'zhangsan'</p><p>  /*刪除登陸賬號*/</p><p>  exec sp_droplogin 'zhangs

57、an'</p><p><b>  /*系統(tǒng)權(quán)限*/</b></p><p>  grant create table</p><p>  to zhangsan</p><p>  /*收回系統(tǒng)權(quán)限*/</p><p>  revoke create table</p>&

58、lt;p>  from zhangsan</p><p><b>  /*對象權(quán)限*/</b></p><p><b>  grant all</b></p><p><b>  on staff</b></p><p>  to zhangsan</p>

59、<p>  with grant option</p><p>  grant select</p><p><b>  on salary</b></p><p><b>  to public</b></p><p>  /*收回系對象權(quán)限*/</p><p>

60、  revoke select on salary</p><p>  from zhangsan</p><p><b>  五.實驗總結(jié)</b></p><p>  本報告主要介紹的是對自建的一個工資管理系統(tǒng)數(shù)據(jù)庫,利用在數(shù)據(jù)庫中的表、存儲過程、視圖、約束等組合,設(shè)計出比較實用的應(yīng)用軟件代碼;對表中的信息能夠進行簡單的查詢,子查詢,視圖的創(chuàng)

61、建、修改與刪除,與約束的創(chuàng)建,存儲過程與觸發(fā)器的創(chuàng)建與刪除等基本操作,加深對SQL Server數(shù)據(jù)庫的進一步研究。</p><p>  通過這次實訓(xùn),是我對SQL 有了進一步了解,雖然在此期間遇到過麻煩,但通過查閱資料與嘗試解決問題,使我更加了解SQL的基礎(chǔ)知識,從中學(xué)到了新知識。</p><p><b>  六.心得體會</b></p><p&

62、gt;  通過這次的課程設(shè)計實驗,我發(fā)現(xiàn)自己對數(shù)據(jù)庫課程的興趣有了很大提高,而且對課本的知識更加的了解并有了一定的掌握,通過實驗我懂得了如何創(chuàng)建索引、視圖、存儲過程以及觸發(fā)器。以前不懂為何要創(chuàng)建觸發(fā)器、視圖等,現(xiàn)在終于知道它們的優(yōu)點了。</p><p>  在自己沒做數(shù)據(jù)庫課程設(shè)計以前,總是覺得自己什么都不懂什么都不會,但是現(xiàn)在做出來了,所以我覺得自己還是有能力做一些實際操作方面的東西。我相信以后通過自己自學(xué)其它

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論