數(shù)據(jù)庫課程設計大作業(yè)
《數(shù)據(jù)庫課程設計大作業(yè)》由會員分享,可在線閱讀,更多相關《數(shù)據(jù)庫課程設計大作業(yè)(16頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 《數(shù)據(jù)庫原理》課程設計報告 學 號: 200810401143 姓 名: 羅宏波 班 級: 自動化 081 昆明理工大學信息工程與自動化學院 2010年12月 <一>前言 一、課程設計目的: 1. 加深對講授內(nèi)容的理解 《數(shù)據(jù)庫原理及應用》中有關數(shù)據(jù)庫技術的基本理論、基本概念、設計與實現(xiàn)的方法和階段性知識,光靠課堂講授既枯燥無味又難以記住,但它們都很重要,要想熟練掌握,必須經(jīng)過大量實踐環(huán)節(jié)加深對它們的理解。 2. 通過課程設計,掌握數(shù)據(jù)庫系統(tǒng)設計與開發(fā)的方法及步
2、驟 數(shù)據(jù)庫是一門應用性很強的學科,開發(fā)一個數(shù)據(jù)庫系統(tǒng)需要集理論、系統(tǒng)和應用三方面為一體,以理論為基礎,以系統(tǒng)(DBMS)作支柱,以應用為目的,將三者緊密結(jié)合起來。同時結(jié)合實際需要開發(fā)一個真實的數(shù)據(jù)庫系統(tǒng),對于較大型的系統(tǒng)可多人一起完成,但無論如何都應完成數(shù)據(jù)庫的需求分析、數(shù)據(jù)的分析與建模、數(shù)據(jù)庫的建立、數(shù)據(jù)庫的開發(fā)與運行等全部過程。在此過程中將所學的知識貫穿起來,達到能夠縱觀全局,分析、設計具有一定規(guī)模的題目要求,基本掌握數(shù)據(jù)庫系統(tǒng)設計與開發(fā)的基本思路和方法并且做到對知識的全面掌握和運用。 3. 培養(yǎng)學生自學以及主動解決問題的能力 通過本次設計,使同學能夠主動查閱與數(shù)據(jù)庫相關資料,掌握一
3、些課堂上老師未曾教授的知識,從而達到培養(yǎng)學生自學以及主動解決問題的能力的目的。 二、課程設計基本要求: 1. 課程設計應由學生本人獨立完成,嚴禁抄襲,如果發(fā)現(xiàn)最后的設計基本相同者(系統(tǒng)需求分析與功能設計、數(shù)據(jù)庫的概念設計、邏輯設計,數(shù)據(jù)庫的實現(xiàn)與運行等內(nèi)容基本相同),一經(jīng)驗收教師認定其抄襲行為,則成績均為不及格。 2. 掌握所學的基礎理論知識,數(shù)據(jù)庫的基本概念、基本原理、關系數(shù)據(jù)庫的設計理論、設計方法等。熟悉數(shù)據(jù)建模工具與數(shù)據(jù)庫管理系統(tǒng)SQLServer軟件的使用。 3. 按時上機調(diào)試,認真完成課程設計。 4. 認真編寫課程設計報告。 三、意義: 數(shù)據(jù)庫技術是近年來計算機科學技術
4、中發(fā)展最快的領域之一,它已成為計算機信息系統(tǒng)與應用系統(tǒng)的核心技術和重要基礎?!稊?shù)據(jù)庫原理及應用》課程設計重視實踐環(huán)節(jié),對于鞏固數(shù)據(jù)庫知識,加強學生的實際動手能力和提高學生綜合素質(zhì)十分必要。 <二>需求分析 工資管理系統(tǒng)包括如下功能:(結(jié)構(gòu)圖如下) 工資 管理系統(tǒng) 經(jīng)理室 財務科 技術科 銷售科 經(jīng)理 會計師 工程師 銷售員 副經(jīng)理 工資管理系統(tǒng)功能結(jié)構(gòu)圖 (1) 經(jīng)理室:管理人員; (2) 財務科:財務人員; (3) 技術科:技術人員; (4) 銷售科:銷售人員。 <三>數(shù)據(jù)庫概念結(jié)構(gòu)設計 工資管理系統(tǒng): (1) 在工資管理
5、局部應用中主要涉及的實體的屬性: 科室(科室號,科室名) 員工(員工號,員工名,性別,年齡,職稱,科室代碼) 工資(員工號,基本工資,獎金,福利,住房公積金,失業(yè)保險,實發(fā)工資,月份) (2) 實體間的聯(lián)系: 公司與科室之間是1:m(m≥0)的聯(lián)系; 科與員工之間是m:n的聯(lián)系; 管理部門與員工之間是1:n的關系; 員工與工資之間是1:1的聯(lián)系。 (3) 工資管理系統(tǒng)的E-R圖: 科室 擁有 科 工作 員工 分為 員工職稱 管理部門 <四>數(shù)據(jù)庫邏輯結(jié)構(gòu)設計 (1) 邏輯結(jié)構(gòu)設計圖型描述: 表1 KESHI表
6、結(jié)構(gòu) 字段名 數(shù)據(jù)類型 字段長度 允許空否 字段說明 Kno Char 2 Not Null 科室代碼,主鍵, Kname Varchar 10 Not Null 科室名稱 表1 WORKER表結(jié)構(gòu) 字段名 數(shù)據(jù)類型 字段長度 允許空否 字段說明 Wno Char 6 Not Null 工號,主鍵 Wname Varchar 10 Not Null 姓名 Sex Char 2 Not Null 性別 Age INT 2 Not Null 年齡 Prof Varchar 10 Not Null 職稱
7、 Kno Char 4 Not Null (單位)科室代碼,外鍵(參照KESHI表) 表3 SALARY表結(jié)構(gòu) 字段名 數(shù)據(jù)類型 字段長度 允許空否 字段說明 Wno Char 6 Not Null 工號,主鍵, 外鍵(參照WORKER表) Wbase Dec 6 Null 基本工資 Wbonus Dec 6 Not Null 獎金 Wwelfare Dec 6 Not Null 福利 WG Dec 6 Not Null 住房公積金 WL DEC 6 NOT NULL 失業(yè)保險 Wfact Dec 6
8、 Null 實發(fā)工資=基本工資+獎金+福利 —失業(yè)保險—住房公積金 Month Int 2 Not Null 月份 表4 表KESHI中的數(shù)據(jù) Kno Kname 01 經(jīng)理室 02 財務科 03 技術科 04 銷售科 表5 表WORKER中的數(shù)據(jù) Wno Wname Sex Age Prof Kno 000001 羅宏波一 男 21 經(jīng)理 01 000002 羅宏波二 女 22 副經(jīng)理 01 000003 羅宏波三 男 23 工程師 03 000004 羅宏波四 女 24 銷售員 0
9、4 000005 羅宏波五 男 25 工程師 03 000006 羅宏波六 女 26 會計師 02 000007 羅宏波七 男 27 工程師 03 000008 羅宏波八 女 28 銷售員 04 000009 羅宏波九 男 29 工程師 03 000010 羅宏波十 女 29 工程師 03 表6 表SALARY中的數(shù)據(jù) Wno Wbase Wbonus Wwelfare WG WL Wfact month 000001 3000 300 100 50 50 3300 1 00000
10、2 3000 300 100 50 50 3300 1 000003 2500 200 100 50 50 2700 1 000004 2500 200 100 50 50 2700 1 000005 2500 200 100 50 50 2700 1 000006 2500 200 100 50 50 2700 1 000007 2500 200 100 50 50 2700 1 000008 2500 200 100 50 50 2700 1 000009 2500 200
11、 100 50 50 2700 1 000010 2500 200 100 50 50 2700 1 邏輯結(jié)構(gòu)設計圖 (2) 邏輯結(jié)構(gòu)設計列表描述: 序號 表名 中文名 作用 1 KESHI 科室名稱表 存儲科室信息 2 WORKER 員工基本信息表 存儲員工基本信息 3 SALARY 工資表 存儲員工工資信息 數(shù)據(jù)庫中各表的作用 <五>數(shù)據(jù)庫實現(xiàn) /*create database GONGZIGUANLI*/ /*create table KESHI ( Kno char(2) not null, Kna
12、me varchar(10) not null, primary key (Kno) );*/ /*create table WORKER ( Wno char(6) not null, Wname varchar(10) not null, Sex char(2) not null, Age int not null, Prof varchar(10) NOT null, Kno char(2) not null, primary key (Wno), foreign key (Kno) references KESHI(Kno) );*/ /*cre
13、ate table SALARY ( Wno char(6) not null, Wbase dec(6) not null, Wbonus dec(6) NOT NULL , Wwelfare dec(6) NOT NULL , WG dec(6) NOT NULL , WL dec(6) NOT NULL , Wfact as (Wbase +Wbonus + Wwelfare - WG - WL) , month int not null, primary key (Wno), foreign key (Wno) references WORKER(Wno) );
14、*/ /*insert into KESHI(Kno,Kname) values(01,經(jīng)理室); insert into KESHI (Kno,Kname) values(02,財務科); insert into KESHI (Kno,Kname) values(03,技術科); insert into KESHI (Kno,Kname) values(04,銷售科);*/ /*insert into WORKER(Wno,Wname,Sex,Age,Prof,Kno) values(000001,羅宏波一,男,21,經(jīng)理,01); insert into WORKER(
15、Wno,Wname,Sex,Age,Prof,Kno) values(000002,羅宏波二,女,22,副經(jīng)理,01); insert into WORKER(Wno,Wname,Sex,Age,Prof,Kno) values(000003,羅宏波三,男,23,工程師,03); insert into WORKER(Wno,Wname,Sex,Age,Prof,Kno) values(000004,羅宏波四,女,24,銷售員,04); insert into WORKER(Wno,Wname,Sex,Age,Prof,Kno) values(000005,羅宏波五,男,25,工程師,0
16、3); insert into WORKER(Wno,Wname,Sex,Age,Prof,Kno) values(000006,羅宏波六,女,26,會計師,02); insert into WORKER(Wno,Wname,Sex,Age,Prof,Kno) values(000007,羅宏波七,男,27,工程師,03); insert into WORKER(Wno,Wname,Sex,Age,Prof,Kno) values(000008,羅宏波八,女,28,銷售員,04); insert into WORKER(Wno,Wname,Sex,Age,Prof,Kno) value
17、s(000009,羅宏波九,男,29,工程師,03); insert into WORKER(Wno,Wname,Sex,Age,Prof,Kno) values(000010,羅宏波十,女,29,工程師,03);*/ /* insert into SALARY(Wno,Wbase,Wbonus,Wwelfare,WG,WL,month) values(000001,3000,300,100,50,50,1); insert into SALARY(Wno,Wbase,Wbonus,Wwelfare,WG,WL,month) values(000002,3000,300,1
18、00,50,50,1); insert into SALARY(Wno,Wbase,Wbonus,Wwelfare,WG,WL,month) values(000003,2500,200,100,50,50,1); insert into SALARY(Wno,Wbase,Wbonus,Wwelfare,WG,WL,month) values(000004,2500,200,100,50,50,1); insert into SALARY(Wno,Wbase,Wbonus,Wwelfare,WG,WL,month) values(000005,2500,200,100,50,
19、50,1); insert into SALARY(Wno,Wbase,Wbonus,Wwelfare,WG,WL,month) values(000006,2500,200,100,50,50,1); insert into SALARY(Wno,Wbase,Wbonus,Wwelfare,WG,WL,month) values(000007,2500,200,100,50,50,1); insert into SALARY(Wno,Wbase,Wbonus,Wwelfare,WG,WL,month) values(000008,2500,200,100,50,50,1);
20、 insert into SALARY(Wno,Wbase,Wbonus,Wwelfare,WG,WL,month) values(000009,2500,200,100,50,50,1); insert into SALARY(Wno,Wbase,Wbonus,Wwelfare,WG,WL,month) values(000010,2500,200,100,50,50,1);*/ /*select Kno,count(Wno) FROM WORKER Group by Kno;*/ /*select KESHI.Kno,Kname,sum(Wfact) FRO
21、M SALARY,KESHI,WORKER WHERE KESHI.Kno=WORKER.Kno AND WORKER.Wno=SALARY.Wno Group by KESHI.Kno,Kname;*/ /*select Prof,count(Wno) FROM WORKER Group by Prof;*/ /*select WORKER.Prof,sum(Wfact) FROM KESHI,WORKER,SALARY WHERE WORKER.Wno=SALARY.Wno Group by WORKER.Prof;*/ /*delete from SA
22、LARY where Wno =000008; delete from WORKER where Wno =000008;*/ /*select Wno,Wname,Sex,Age,Prof,Kno from WORKER;*/ /*select distinct prof from WORKER*/ /*select Wno,Wbase,Wbonus,Wfact,month from SALARY where Wno between 000003and 000009 order by Wfact asc;*/ /*SELECT * from WORKER,SALARY W
23、HERE WORKER.Wno = SALARY.Wno and month=1;*/ <六>運行結(jié)果 設計題目:工資管理系統(tǒng) 1) 某單位現(xiàn)有1000名員工,其中有管理人員、財務人員、技術人員和銷售人員。 2) 該單位下設4個科室,即經(jīng)理室、財務科、技術科和銷售科。 3) 工資由基本工資、福利補貼和獎勵工資構(gòu)成,失業(yè)保險和住房公積金在工資中扣除。 4) 工的基本資料有姓名、性別、年齡、單位和職業(yè)(如經(jīng)理、工程師、銷售員等)。 5) 每月個人的最高工資不超過3000元。工資按月發(fā)放,實際發(fā)放的工資金額為工資減去扣除。 6) 實現(xiàn)按照科室錄入個人的基本資料
24、、工資和扣除金額的數(shù)據(jù)。 7) 計算個人的實際發(fā)放工資。 8) 按科室、職業(yè)分類統(tǒng)計人數(shù)和工資金額。 9) 能夠刪除辭職人員的數(shù)據(jù)。 10) 其它 <七>數(shù)據(jù)庫設計經(jīng)驗教訓總結(jié) “數(shù)據(jù)庫技術是近年來計算機科學技術中發(fā)展最快的領域之一,它已成為計算機信息系統(tǒng)與應用系統(tǒng)的核心技術和重要基礎?!稊?shù)據(jù)庫原理及應用》課程設計重視實踐環(huán)節(jié),對于鞏固數(shù)據(jù)庫知識,加強學生的實際動手能力和提高學生綜合素質(zhì)十分必要?!? “數(shù)據(jù)庫是數(shù)據(jù)管理的最新技術,是計算機科學的重要分支。今天,信息資源已成為各個部門的重要財富和資源。建立一個滿足各個部門信
25、息處理要求的行之有效的信息系統(tǒng)也成為一個企業(yè)或組織的生存和發(fā)展的重要條件。因此,作為信息系統(tǒng)的核心和基礎的數(shù)據(jù)庫技術得到越來越廣泛的應用,從小型單項事務處理系統(tǒng)到大型信息系統(tǒng),從聯(lián)機事務處理到聯(lián)機分析處理,從一般企業(yè)管理到計算機輔助設計與制造,計算機集成制造系統(tǒng)、電子政務、電子商務、地理信息系統(tǒng)等等,越來越多新的應用領域采用數(shù)據(jù)庫技術來存儲和處理信息資源。 對于一個國家來說,數(shù)據(jù)庫的建設規(guī)模、數(shù)據(jù)庫信息量的大小和使用頻度已成為衡量這個國家信息化程度的重要標志。因此,數(shù)據(jù)庫課程不僅是計算機科學與技術專業(yè)、信息管理專業(yè)的重要課程,也是許多非計算機專業(yè)的選修課程。” 選定題目:工資管理系統(tǒng)。根據(jù)
26、數(shù)據(jù)庫實驗,完成此次數(shù)據(jù)庫的設計。首先,在實驗室里熟悉SQL2000軟件的操作環(huán)境,并完成數(shù)據(jù)庫上機實驗內(nèi)容,在此基礎上,設計“工資管理系統(tǒng)”就更容易啦,創(chuàng)建表,插入員工數(shù)據(jù),更新數(shù)據(jù),刪除數(shù)據(jù),只要熟悉操作環(huán)境,認真完成實驗內(nèi)容,設計的時候便得心應手;掌握基本理論知識,搞清楚每一個操作的來龍去脈,原因及其結(jié)果,出現(xiàn)錯誤,學會用理論知識分析其原因,并加以改正,了解原因之后,有利于加深對數(shù)據(jù)庫的理解,對設計步驟更加熟悉。 進行需求分析,概念設計,邏輯設計,物理設計,最終實現(xiàn)數(shù)據(jù)庫的設計。工資管理系統(tǒng):一個公司或企業(yè)需要進行員工的工作管理,工資管理系統(tǒng)能夠有效地完成管理任務,大大提高了企業(yè)或公司
27、的辦公效率。一個公司里必定有幾個科室,我設計的工資管理系統(tǒng),此公司下屬四個科室,包括經(jīng)理室、財務科、技術科、銷售科,經(jīng)理室有經(jīng)理和副經(jīng)理,財務科有財務人員,技術科有技術人員,銷售科有銷售人員,不同的科室,不同的人員有不同的職稱,包括經(jīng)理、副經(jīng)理、工程師、會計師、銷售員;員工的資料包括工號、姓名、性別、年齡、職稱、科室代碼,科室包括科室代碼、科室名,員工的工資包括基本工資、獎金、福利、住房公積金、失業(yè)保險、實發(fā)工資、月份。在設計數(shù)據(jù)庫的時候,先在SQL環(huán)境下輸入源代碼,創(chuàng)建“GONGZIGUANLI”數(shù)據(jù)庫,插入表KEHSI、WORKER、SALARY,打開企業(yè)管理器,確認是否已插入三個表,下一
28、步是插入科室的數(shù)據(jù),員工的基本信息,員工的工資信息,執(zhí)行完插入語句之后,打開企業(yè)管理器,確認是否完成插入,確認信息之后,繼續(xù)操作下一步;初步建好數(shù)據(jù)庫之后,開始測試數(shù)據(jù)庫的功能,按科室、職業(yè)分類統(tǒng)計人數(shù)和工資金額,能夠刪除辭職人員的數(shù)據(jù),查詢員工的信息,查詢工資的發(fā)放情況。完成這些基本操作之后,一個“工資管理系統(tǒng)”基本成型,就能完成一個公司或企業(yè)的工資管理。 再設計數(shù)據(jù)庫的時候,難免會遇到一些問題,例如,插入員工的數(shù)據(jù)時候,數(shù)據(jù)插不進去;刪除員工的數(shù)據(jù)的時候,刪除錯誤等等。經(jīng)過分析,出現(xiàn)這些錯誤的原因大多數(shù)是編寫代碼出錯,插入語句或刪除語句的編寫錯誤。解決這些出現(xiàn)的問題,必須充分理解數(shù)據(jù)庫的設計理論知識,知道出錯的原因,才能有效地解決問題,就像老師講的“皮與毛”的關系,對加深對數(shù)據(jù)庫的理解很有幫助,對解決刪除時候出現(xiàn)的問題也很有幫助。 完成數(shù)據(jù)庫的設計,總結(jié)經(jīng)驗教訓,無論設計數(shù)據(jù)庫還是設計其他東西,首先,必須充分理解設計內(nèi)容理論知識,理論知識是基礎;其次,多進行實際操作,比如認真完成上機實驗,只有多操作,才能發(fā)現(xiàn)問題,解決問題;最后,多問問題,多思考,出現(xiàn)問題,多向老師請教,自己多思考,認真解決。在老師和同學的幫助下,我最終完成了“工資管理系統(tǒng)”數(shù)據(jù)庫的設計,在此,衷心感謝給予我?guī)椭耐瑢W和老師!
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。