數(shù)據(jù)庫(kù)課程設(shè)計(jì)之某單位考勤管理系統(tǒng)_第1頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)之某單位考勤管理系統(tǒng)_第2頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)之某單位考勤管理系統(tǒng)_第3頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)之某單位考勤管理系統(tǒng)_第4頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)之某單位考勤管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告第1頁(yè)共=NUMPAGES35-134頁(yè)數(shù)據(jù)庫(kù)程設(shè)計(jì)報(bào)告第3頁(yè)共=NUMPAGES35-134頁(yè)

1.課程設(shè)計(jì)目的(1)培養(yǎng)員工運(yùn)用所學(xué)課程《數(shù)據(jù)庫(kù)系統(tǒng)原理》的理論知識(shí)和技能,深入理解《數(shù)據(jù)庫(kù)系統(tǒng)原理》課程相關(guān)的理論知識(shí),學(xué)會(huì)分析實(shí)際問(wèn)題的能力。(2)培養(yǎng)員工掌握用《數(shù)據(jù)庫(kù)系統(tǒng)原理》的知識(shí)設(shè)計(jì)計(jì)算機(jī)應(yīng)用課題的思想和方法。(3)培養(yǎng)員工調(diào)查研究、查閱技術(shù)文獻(xiàn)、資料、手冊(cè)以及編寫(xiě)技術(shù)文獻(xiàn)的能力。(4)通過(guò)課程設(shè)計(jì)的訓(xùn)練,要求員工在教師的指導(dǎo)下,獨(dú)立完成大作業(yè)。2.課程設(shè)計(jì)任務(wù)與要求:任務(wù):通過(guò)調(diào)查研究和運(yùn)用Internet,收集和調(diào)查有關(guān)資料、最新技術(shù)信息?;菊莆兆珜?xiě)小論文的基本步驟和寫(xiě)作方法。根據(jù)課題的要求基本理解和掌握數(shù)據(jù)流圖(DFD)和數(shù)據(jù)字典(DD)的設(shè)計(jì)方法。根據(jù)課題的要求基本理解和掌握E-R圖的設(shè)計(jì)方法和關(guān)系模式的轉(zhuǎn)換。根據(jù)ER圖生成數(shù)據(jù)庫(kù)表。數(shù)據(jù)庫(kù)完整性、安全性保證措施數(shù)據(jù)庫(kù)實(shí)施維護(hù)計(jì)劃基本要求:每個(gè)員工從給定題目中任選一個(gè)作為課程設(shè)計(jì)題目,調(diào)查分析一個(gè)具體的或模擬的實(shí)例。同一個(gè)班中的同學(xué)不允許選擇相同的題目。選好題目后發(fā)給班長(zhǎng)或?qū)W習(xí)匯總,產(chǎn)生選題沖突時(shí),由班長(zhǎng)/委員協(xié)調(diào)解決;描述該實(shí)例的業(yè)務(wù)信息和管理工作的要求;建立數(shù)據(jù)字典;列出實(shí)體、聯(lián)系;指出實(shí)體和聯(lián)系的屬性;畫(huà)出E-R圖;將E-R圖轉(zhuǎn)換成關(guān)系模式,并注明主碼和外碼;創(chuàng)建數(shù)據(jù)庫(kù);根據(jù)題目的要求寫(xiě)查詢、存儲(chǔ)過(guò)程、觸發(fā)器等。問(wèn)題描述:實(shí)現(xiàn)部門(mén)、員工信息管理;實(shí)現(xiàn)系統(tǒng)信息管理,用于設(shè)置上午、下午的上下班時(shí)間;實(shí)現(xiàn)考勤登記;創(chuàng)建觸發(fā)器,如果打卡時(shí)間超出上班時(shí)間,并且小于5分鐘,登記為遲到,否則登記為曠工;創(chuàng)建存儲(chǔ)過(guò)程統(tǒng)計(jì)各員工指定月份的缺席、曠工次數(shù);創(chuàng)建視圖分組查詢各部門(mén)的職工信息及職工人數(shù),使用Compute子句;創(chuàng)建check約束,限制員工的性別必須為‘男’或‘女’;表間關(guān)系

3.課程設(shè)計(jì)說(shuō)明書(shū)需求分析3.1.1功能需求(1)管理層管理功能包括:新員工基本信息錄入工作在線查詢公司各部門(mén)員工的考勤信息修改員工基本信息(2)員工功能包括簽到、簽出上班打卡查詢個(gè)人賬號(hào)信息在線修改個(gè)人信息3.1.2數(shù)據(jù)需求關(guān)于考勤系統(tǒng),以下是設(shè)計(jì)數(shù)據(jù)信息表:部門(mén)信息表:部門(mén)名稱nchar(10)、部門(mén)編號(hào)int;級(jí)別信息表:級(jí)別int、級(jí)別名稱nchar(10);技能信息表:技能編號(hào)nchar(10)、技能名稱nchar(10);員工信息表:級(jí)別int、員工編號(hào)int、密碼int、部門(mén)編號(hào)int、姓名nchar(10)、性別nchar(10)、年齡int、郵箱nchar(10)、住址nchar(10)、電話nchar(10)、進(jìn)入公司日期nchar(10)、學(xué)歷nchar(10)、政治面貌nchar(10);員工技能表:?jiǎn)T工編號(hào)int、技能編號(hào)int;考勤記錄表:?jiǎn)T工編號(hào)int、狀態(tài)編號(hào)int、上班時(shí)間nchar(20)、下班時(shí)間nchar(20)、日期nchar(20);狀態(tài)信息表:狀態(tài)編號(hào)int、狀態(tài)名稱nchar(10);圖4系統(tǒng)功能結(jié)構(gòu)圖3.1.3安全性完整性需求安全性需求分析需要輸入用戶名與密碼才能登陸本系統(tǒng);輸入的登陸密碼需要以“*”顯示;禁止非法數(shù)據(jù)寫(xiě)入;對(duì)于各種錯(cuò)誤可以做到提醒或糾正;完整性需求數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)要使關(guān)系的屬性不可再分,滿足原子性;約束表格中部分屬性的內(nèi)容;為數(shù)據(jù)的新增、修改或刪除設(shè)定對(duì)應(yīng)的觸發(fā)器;給表格外鍵設(shè)置級(jí)聯(lián)刪除,當(dāng)對(duì)應(yīng)外鍵被刪除時(shí),將其關(guān)聯(lián)信息全部刪除;防止數(shù)據(jù)庫(kù)查詢發(fā)生SQL注入的攻擊;3.1.4數(shù)據(jù)流圖(1)頂層數(shù)據(jù)流圖,如圖1示:圖1頂層數(shù)據(jù)流圖(2)零層數(shù)據(jù)流圖,如圖2示:圖2零層數(shù)據(jù)流圖(3)一層數(shù)據(jù)流圖,如圖3示:圖3一層流圖3.1.5E-R圖(1)局部E-R圖(以考勤表、員工信息表為例)如圖5、圖6示:圖5考勤信息表E-R圖圖6員工信息表E-R圖(2)全局ER圖,如圖7示:圖7全局E-R圖3.1.6數(shù)據(jù)字典數(shù)據(jù)結(jié)構(gòu)部門(mén)信息表(表一)列名說(shuō)明字段類型約束控制部門(mén)名稱不同員工有不同部門(mén)nchar(10)非空部門(mén)編號(hào)所屬部門(mén)編號(hào)1~6級(jí)int可以為空級(jí)別信息表(表二)列名說(shuō)明字段類型約束控制級(jí)別對(duì)應(yīng)的級(jí)別為1~5級(jí)int非空級(jí)別名稱員工的具體職位nchar(10)可以為空技能信息表(表三)列名說(shuō)明字段類型約束控制技能編號(hào)對(duì)應(yīng)的技能為1~5種nchar(10)非空技能名稱不同職位負(fù)責(zé)不同工作nchar(10)可以為空考勤信息表(表四)列名說(shuō)明字段類型約束控制員工編號(hào)對(duì)應(yīng)的級(jí)別為1~5int非空狀態(tài)編號(hào)員工工作的三種狀態(tài)1~3(上班、缺勤、早退)int可以為空上班時(shí)間8:00-11:00nchar(20)可以為空下班時(shí)間13:00-18:00nchar(20)可以為空日期匹配具體時(shí)間Date可以為空員工技能表(表五)列名說(shuō)明字段類型約束控制員工編號(hào)對(duì)應(yīng)的級(jí)別為1~5int可以為空技能編號(hào)對(duì)應(yīng)的技能為1~5種int可以為空員工信息表(表六)列名說(shuō)明字段類型約束控制級(jí)別對(duì)應(yīng)的級(jí)別為1~5級(jí)int非空員工編號(hào)不同職位的員工編號(hào)int非空密碼獨(dú)立存在用于登陸int非空部門(mén)編號(hào)部門(mén)編號(hào)1~5int可以為空姓名員工的姓名nchar(10)可以為空性別性別(男,女)nchar(10)可以為空年齡員工的年齡int可以為空郵箱聯(lián)系方式nchar(10)可以為空住址員工的家庭住址nchar(10)可以為空電話聯(lián)系方式nchar(10)可以為空進(jìn)入公司日期入職時(shí)間nchar(10)可以為空學(xué)歷員工的學(xué)歷(...)nchar(10)可以為空政治面貌團(tuán)員、黨員、群眾nchar(10)可以為空狀態(tài)信息表(表七)列名說(shuō)明字段類型約束控制狀態(tài)編號(hào)對(duì)應(yīng)的上班狀態(tài)int非空狀態(tài)名稱上班、礦工、早退nchar(10)可以為空數(shù)據(jù)流數(shù)據(jù)流簡(jiǎn)述:查詢員工基礎(chǔ)信息數(shù)據(jù)流來(lái)源:?jiǎn)T工信息存儲(chǔ)數(shù)據(jù)流去向:?jiǎn)T工信息模塊數(shù)據(jù)流組成:級(jí)別+員工編號(hào)+密碼+部門(mén)編號(hào)+姓名+性別+年齡+郵箱+住址+電話+進(jìn)入公司時(shí)間+學(xué)歷+政治面貌數(shù)據(jù)流簡(jiǎn)述:添加/刪除/修改員工基礎(chǔ)信息數(shù)據(jù)流來(lái)源:登錄用戶請(qǐng)求處理數(shù)據(jù)流去向:?jiǎn)T工信息模塊數(shù)據(jù)流組成:級(jí)別+員工編號(hào)+密碼+部門(mén)編號(hào)+姓名+性別+年齡+郵箱+住址+電話+進(jìn)入公司時(shí)間+學(xué)歷+政治面貌數(shù)據(jù)流簡(jiǎn)述:查詢/搜索部門(mén)信息數(shù)據(jù)流來(lái)源:?jiǎn)T工信息存儲(chǔ)數(shù)據(jù)流去向:?jiǎn)T工信息管理模塊數(shù)據(jù)流組成:部門(mén)信息+級(jí)別+技能+考勤+狀態(tài)數(shù)據(jù)流簡(jiǎn)述:添加/刪除/修改部門(mén)信息數(shù)據(jù)流來(lái)源:登錄用戶請(qǐng)求處理數(shù)據(jù)流去向:?jiǎn)T工信息管理模塊數(shù)據(jù)流組成:部門(mén)信息+級(jí)別+技能+考勤+狀態(tài)數(shù)據(jù)流簡(jiǎn)述:查詢考勤信息數(shù)據(jù)流來(lái)源:考勤信息存儲(chǔ)數(shù)據(jù)流去向:?jiǎn)T工信息管理模塊數(shù)據(jù)流組成:部門(mén)編號(hào)+級(jí)別+狀態(tài)數(shù)據(jù)流簡(jiǎn)述:添加/刪除考勤信息數(shù)據(jù)流來(lái)源:登錄用戶請(qǐng)求處理數(shù)據(jù)流去向:?jiǎn)T工信息管理模塊數(shù)據(jù)流組成:部門(mén)編號(hào)+級(jí)別+狀態(tài)數(shù)據(jù)流簡(jiǎn)述:登錄信息數(shù)據(jù)流來(lái)源:用戶登錄請(qǐng)求處理數(shù)據(jù)流去向:登錄模塊數(shù)據(jù)流組成:用戶名+密碼數(shù)據(jù)流簡(jiǎn)述:查詢員工考勤人數(shù)信息數(shù)據(jù)流來(lái)源:登錄用戶請(qǐng)求處理數(shù)據(jù)流去向:?jiǎn)T工信息管理模塊數(shù)據(jù)流組成:男生人數(shù)+女生人數(shù)數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)名:用戶信息簡(jiǎn)述:存放登錄系統(tǒng)時(shí)需要的用戶的信息數(shù)據(jù)存儲(chǔ)組成:用戶名+密碼關(guān)鍵字:用戶名數(shù)據(jù)存儲(chǔ)名:部門(mén)信息簡(jiǎn)述:存放公司所有部門(mén)的信息數(shù)據(jù)存儲(chǔ)組成:部門(mén)編號(hào)+級(jí)別號(hào)+級(jí)別技能+員工編號(hào)關(guān)鍵字:?jiǎn)T工編號(hào)數(shù)據(jù)存儲(chǔ)名:考勤信息簡(jiǎn)述:存放公司考勤的信息數(shù)據(jù)存儲(chǔ)組成:部門(mén)編號(hào)+級(jí)別編號(hào)+員工編號(hào)+狀態(tài)編號(hào)關(guān)鍵字:?jiǎn)T工編號(hào)+狀態(tài)編號(hào)數(shù)據(jù)存儲(chǔ)名:?jiǎn)T工信息簡(jiǎn)述:存放公司員工的信息數(shù)據(jù)存儲(chǔ)組成:級(jí)別+員工編號(hào)+密碼+部門(mén)編號(hào)+姓名+性別+年齡+郵箱+住址+電話+進(jìn)入公司時(shí)間+學(xué)歷+政治面貌關(guān)鍵字:?jiǎn)T工編號(hào)處理過(guò)程處理過(guò)程名:搜索員工輸入數(shù)據(jù):?jiǎn)T工編號(hào)輸出數(shù)據(jù):級(jí)別+員工編號(hào)+密碼+部門(mén)編號(hào)+姓名+性別+年齡+郵箱+住址+電話+進(jìn)入公司時(shí)間+學(xué)歷+政治面貌處理邏輯:按照員工編號(hào)查找員工信息和與其對(duì)應(yīng)的部門(mén)信息,之后輸出數(shù)據(jù)處理過(guò)程名:添加/修改員工輸入數(shù)據(jù):添加/修改員工信息輸出數(shù)據(jù):添加/修改是否成功的信息處理邏輯:用戶輸入要添加/修改的員工信息,數(shù)據(jù)庫(kù)在確認(rèn)員工信息是否合法之后給出添加/修改成功或失敗的提示處理過(guò)程名:查詢員工輸入數(shù)據(jù):申請(qǐng)查詢信息輸出數(shù)據(jù):查詢員工信息處理邏輯:按照員工編號(hào)的遞增順序輸出存儲(chǔ)的員工信息處理過(guò)程名:查詢部門(mén)輸入數(shù)據(jù):申請(qǐng)查詢信息輸出數(shù)據(jù):查詢部門(mén)信息處理邏輯:按照部門(mén)編號(hào)的遞增順序輸出存儲(chǔ)的部門(mén)信息處理過(guò)程名:用戶登錄輸入數(shù)據(jù):用戶名+密碼輸出數(shù)據(jù):登錄是否成功的信息處理邏輯:先檢測(cè)用戶名是否存在,若不存在則提示“用戶名不存在”,若用戶名存在則核對(duì)其對(duì)應(yīng)密碼是否正確,正確則顯示登錄成功,跳轉(zhuǎn)系統(tǒng)主頁(yè),否則提示登錄失敗處理過(guò)程名:查詢部門(mén)考勤人數(shù)輸入數(shù)據(jù):部門(mén)編號(hào)輸出數(shù)據(jù):打卡人數(shù)處理邏輯:用戶輸入要查詢員工打卡人數(shù)的部門(mén)編號(hào),若輸入的部門(mén)編號(hào)存在則調(diào)用存儲(chǔ)過(guò)程,返回打卡的人數(shù),之后以提示方式給出,否則提示輸入有誤并需要重新輸入概要設(shè)計(jì)3.2.1關(guān)系模式以下為本系統(tǒng)數(shù)據(jù)庫(kù)的數(shù)據(jù)關(guān)系模型,下劃直線標(biāo)明的是關(guān)系模式的主碼。部門(mén)信息表(部門(mén)編號(hào),部門(mén)信息)級(jí)別信息表(級(jí)別編號(hào),級(jí)別名稱)技能信息表(技能編號(hào),技能名稱)考勤記錄表(員工編號(hào),狀態(tài)編號(hào),上班時(shí)間,下班時(shí)間,日期)員工技能表(員工編號(hào),技能編號(hào))狀態(tài)信息表(狀態(tài)編號(hào),狀態(tài)名稱)員工信息表(級(jí)別編號(hào),員工編號(hào),部門(mén)編號(hào),密碼,性別,姓名,年齡,電話,郵箱,住址,進(jìn)入公司時(shí)間,學(xué)歷,政治面貌)其中部門(mén)信息表對(duì)應(yīng)部門(mén)基本關(guān)系,員工信息表對(duì)應(yīng)員工基本關(guān)系,級(jí)別信息表對(duì)應(yīng)級(jí)別基本關(guān)系,狀態(tài)信息表對(duì)應(yīng)員工考勤基本情況,技能信息表對(duì)應(yīng)員工基本技能,員工技能信息表對(duì)應(yīng)技能與員工之間的關(guān)系,考勤信息表對(duì)應(yīng)員工與員工打卡狀態(tài)之間的關(guān)系。3.2.2功能圖系統(tǒng)功能結(jié)構(gòu)圖,如圖8示:圖8系統(tǒng)功能結(jié)構(gòu)圖詳細(xì)設(shè)計(jì)3.3.1數(shù)據(jù)庫(kù)SQLServer2014數(shù)據(jù)庫(kù)文件分為3種類型:主數(shù)據(jù)文件、次數(shù)據(jù)文件和日志文件。數(shù)據(jù)庫(kù)名(DBO):timebookDB文件位置(File):D:\ProgramFiles\MicrosoftSQLServer\MSSQL12.MSSQLSERVER\MSSQL\DATA連接數(shù)據(jù)庫(kù):StringconStr="jdbc:sqlserver://127.0.0.1:1433;databaseName=timebookDB";CREATEDATABASE[timebookDB]CONTAINNMNT=NONEONPRIMARY(NAME='timebookDB',FILENAME='D:\ProgramFiles\MicrosoftSQLServer\MSSQL12.MSSQLSERVER\MSSQL\DATA\timebookDB.mdf'SIZE=5120KB,MAXSIZE=UNLIMITED,FILEGROWTH=1024KB)LOGON(NAME='timebookDB_log',FILENAME='D:\ProgramFiles\MicrosoftSQLServer\MSSQL12.MSSQLSERVER\MSSQL\DATA\timebookDB_log.ldf'SIZE=2560KB,MAXSIZE=UNLIMITED,FILEGROWTH=2048KB,FILEGROWTH=10%)GO3.3.2表用sql語(yǔ)句創(chuàng)建部門(mén)信息表:USE[timebookDB]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[部門(mén)信息表]( [部門(mén)名稱][nchar](10)NOTNULL, [部門(mén)編號(hào)][int]NOTNULL,CONSTRAINT[PK_Table_1]PRIMARYKEYCLUSTERED( [部門(mén)編號(hào)]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GO部門(mén)信息表(表一)列名字段類型是否可為空部門(mén)名稱nchar(10)非空部門(mén)編號(hào)int非空用sql語(yǔ)句創(chuàng)建級(jí)別信息表:USE[timebookDB]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[級(jí)別信息表]( [級(jí)別][int]NOTNULL, [級(jí)別名稱][nchar](10)NULL,CONSTRAINT[PK_級(jí)別信息表]PRIMARYKEYCLUSTERED( [級(jí)別]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GO級(jí)別信息表(表二)列名約束字段類型是否可為空級(jí)別編號(hào)主鍵int非空級(jí)別名稱nchar(10)可以為空用sql語(yǔ)句創(chuàng)建技能信息表:USE[timebookDB]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[技能信息表]( [技能編號(hào)][nchar](10)NOTNULL, [技能名稱][nchar](10)NULL,CONSTRAINT[PK_技能信息表]PRIMARYKEYCLUSTERED( [技能編號(hào)]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GO技能信息表(表三)列名約束字段類型是否可為空技能編號(hào)主鍵nchar(10)非空技能名稱nchar(10)可以為空用sql語(yǔ)句創(chuàng)建考勤信息表:USE[timebookDB]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[考勤記錄表]( [員工編號(hào)][int]NOTNULL, [狀態(tài)編號(hào)][int]NOTNULL, [上班時(shí)間][nchar](20)NULL, [下班時(shí)間][nchar](20)NULL, [日期][nchar](20)NULL,CONSTRAINT[PK_Table_1_1]PRIMARYKEYCLUSTERED( [員工編號(hào)]ASC, [狀態(tài)編號(hào)]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GOALTERTABLE[dbo].[考勤記錄表]WITHCHECKADDCONSTRAINT[FK_考勤記錄表_狀態(tài)信息表]FOREIGNKEY([狀態(tài)編號(hào)])REFERENCES[dbo].[狀態(tài)信息表]([狀態(tài)編號(hào)])GOALTERTABLE[dbo].[考勤記錄表]CHECKCONSTRAINT[FK_考勤記錄表_狀態(tài)信息表]GO考勤信息表(表四)列名約束字段類型是否可為空員工編號(hào)主鍵int非空狀態(tài)編號(hào)主鍵int非空上班時(shí)間nchar(20)可以為空下班時(shí)間nchar(20)可以為空日期Date可以為空用sql語(yǔ)句創(chuàng)員工技能信息表:USE[timebookDB]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[員工技能表]( [員工編號(hào)][int]NOTNULL, [技能編號(hào)][int]NOTNULL,CONSTRAINT[PK_Table_1_2]PRIMARYKEYCLUSTERED( [員工編號(hào)]ASC, [技能編號(hào)]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GO員工技能表(表五)列名約束字段類型是否可為空員工編號(hào)主鍵int非空技能編號(hào)主鍵int非空用sql語(yǔ)句創(chuàng)建員工信息表:USE[timebookDB]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[員工信息表]( [級(jí)別][int]NOTNULL, [員工編號(hào)][int]NOTNULL, [密碼][int]NULL, [部門(mén)編號(hào)][int]NOTNULL, [姓名][nchar](10)NULL, [性別][nchar](10)NULLCONSTRAINT[df_性別]DEFAULT('男'), [年齡][int]NULL, [郵箱][nchar](10)NULL, [住址][nchar](10)NULL, [電話][nchar](10)NULL, [進(jìn)入公司日期][nchar](10)NULL, [學(xué)歷][nchar](10)NULL, [政治面貌][nchar](10)NULL,CONSTRAINT[PK_Table_1_3]PRIMARYKEYCLUSTERED( [級(jí)別]ASC, [員工編號(hào)]ASC, [部門(mén)編號(hào)]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GOALTERTABLE[dbo].[員工信息表]WITHCHECKADDCONSTRAINT[FK_員工信息表_部門(mén)信息表]FOREIGNKEY([部門(mén)編號(hào)])REFERENCES[dbo].[部門(mén)信息表]([部門(mén)編號(hào)])GOALTERTABLE[dbo].[員工信息表]CHECKCONSTRAINT[FK_員工信息表_部門(mén)信息表]GOALTERTABLE[dbo].[員工信息表]WITHCHECKADDCONSTRAINT[FK_員工信息表_級(jí)別信息表]FOREIGNKEY([級(jí)別])REFERENCES[dbo].[級(jí)別信息表]([級(jí)別])GOALTERTABLE[dbo].[員工信息表]CHECKCONSTRAINT[FK_員工信息表_級(jí)別信息表]GO員工信息表(表六)列名約束字段類型是否可為空級(jí)別主鍵int非空員工編號(hào)主鍵int非空密碼int非空部門(mén)編號(hào)主鍵int非空姓名nchar(10)可以為空性別nchar(10)可以為空年齡int可以為空郵箱nchar(10)可以為空住址nchar(10)可以為空電話nchar(10)可以為空進(jìn)入公司日期nchar(10)可以為空學(xué)歷nchar(10)可以為空政治面貌nchar(10)可以為空用sql語(yǔ)句創(chuàng)建員工狀態(tài)信息表:USE[timebookDB]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[狀態(tài)信息表]( [狀態(tài)編號(hào)][int]NOTNULL, [狀態(tài)名稱][nchar](10)NULL,CONSTRAINT[PK_狀態(tài)信息表]PRIMARYKEYCLUSTERED( [狀態(tài)編號(hào)]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GO狀態(tài)信息表(表七)列名約束字段類型是否可為空狀態(tài)編號(hào)主鍵int非空狀態(tài)名稱nchar(10)可以為空視圖、觸發(fā)器、存儲(chǔ)過(guò)程、約束創(chuàng)建視圖分組查詢各部門(mén)的職工信息及職工人數(shù),使用Compute子句;usetimebookDBgocreateviewwfmasselectdistinct部門(mén)信息表.部門(mén)名稱,部門(mén)信息表.部門(mén)編號(hào),姓名,年齡,性別,學(xué)歷from部門(mén)信息表,員工信息表where部門(mén)信息表.部門(mén)編號(hào)=員工信息表.部門(mén)編號(hào)selectdistinct部門(mén)信息表.部門(mén)名稱,部門(mén)信息表.部門(mén)編號(hào),姓名,年齡,性別,學(xué)歷from部門(mén)信息表,員工信息表where部門(mén)信息表.部門(mén)編號(hào)=員工信息表.部門(mén)編號(hào)orderby部門(mén)信息表.部門(mén)名稱computecount(部門(mén)信息表.部門(mén)編號(hào))by部門(mén)信息表.部門(mén)名稱go創(chuàng)建觸發(fā)器,如果打卡時(shí)間超出上班時(shí)間,并且小于5分鐘,登記為遲到,否則登記為曠工;createTriggertrion考勤記錄表AFTERinsertASdeclare@beginint,@timeint,@cqchar(10)select@cq=員工編號(hào)frominsertedselect@begin=上班時(shí)間frominsertedselect@time=下班時(shí)間from考勤記錄表if(@begin-@time)<5and(@begin-@time)>0update考勤記錄表set狀態(tài)編號(hào)='3'where員工編號(hào)=@cqand上班時(shí)間=@beginif(@begin-@time)<0update考勤記錄表set狀態(tài)編號(hào)='1'where員工編號(hào)=@cqand上班時(shí)間=@beginif(@begin-@time)>5update考勤記錄表set狀態(tài)編號(hào)='2'where員工編號(hào)=@cqand上班時(shí)間=@begin創(chuàng)建存儲(chǔ)過(guò)程統(tǒng)計(jì)各員工指定月份的缺席、曠工次數(shù);usetimebookDBgocreateprocedurepro_10(@日期date)asbeginselect員工信息表.員工編號(hào),員工信息表.姓名,count(員工信息表.員工編號(hào))-count(考勤記錄表.員工編號(hào))缺席from員工信息表,考勤記錄表where員工信息表.員工編號(hào)=考勤記錄表.員工編號(hào)groupby員工信息表.員工編號(hào),員工信息表.姓名endgo創(chuàng)建check約束,限制員工的性別必須為‘男’或‘女’;altertable員工信息表withcheckaddconstraintdf_性別default'男'for性別執(zhí)行完上述操作,得到如下界面,如圖12示:圖12數(shù)據(jù)庫(kù)詳情表與表之間關(guān)系模式圖,如圖13示:圖13關(guān)系模式圖3.3.3主流程圖(1)主系統(tǒng)流程圖,如圖9示:圖9主系統(tǒng)流程圖主界面:圖10主界面員工信息管理界面功能,員工查詢功能如圖11示:圖11員工查詢功能流程圖界面如圖12示:圖12查詢員工信息員工信息管理界面功能,修改員工信息功能如圖13示:圖13修改員工信息界面如圖14所示:圖14修改員工信息員工信息管理界面功能,員工考勤功能如圖15示:圖15員工考勤功能界面如圖16所示:圖16員工考勤界面管理員界面管理功能,查詢員工考勤流程圖如圖17示:圖17管理員查詢流程圖界面如圖18所示:圖18管理員查詢界面管理員界面管理功能,錄入員工流程圖如圖19示:圖19管理員錄入員工信息流程圖界面如圖20所示:圖20員工錄入界面管理員界面管理功能,修改員工考勤流程圖如圖21示:圖21修改員工信息流程圖界面如圖22所示:圖22修改員工信息界面

4.系統(tǒng)實(shí)現(xiàn)4.1編碼4.1.1系統(tǒng)環(huán)境操作系統(tǒng):Windows10選用模式:C/S客戶端DBMS:sqlserver2014開(kāi)發(fā)語(yǔ)言:Java開(kāi)發(fā)平臺(tái):Myeclipse10數(shù)據(jù)庫(kù)管理工具:sqlserver20144.1.2客戶端界面關(guān)鍵代碼:連接數(shù)據(jù)庫(kù)publicDbConnect(){ try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch(ClassNotFoundExceptionex){ ex.printStackTrace(); } } publicConnectiongetConn(){ Connectionconn=null; StringconStr="jdbc:sqlserver://127.0.0.1:1433;databaseName=timebookDB"; try{ conn=DriverManager.getConnection(conStr,"sa","sa"); } catch(SQLExceptionex){ ex.printStackTrace(); }修改密碼privatevoidinitialize() { this.setSize(401,350); this.setContentPane(getJContentPane()); this.setTitle("更改密碼"); }publicvoidchStuPass() { if((ID.getText().length()+oldPassword.getText().length()+newPassword.getText().length()+newAgain.getText().length())==0) { JOptionPane.showMessageDialog(this,"輸入信息不完整。");return;} if(!newPassword.getText().equals(newAgain.getText())) { JOptionPane.showMessageDialog(null,"新密碼不一致。");return;} try { /*Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connectionconnection=DriverManager.getConnection("jdbc:odbc:stu","sa","123456");*/ DbConnectdb=newDbConnect(); Connectionconnection=db.getConn(); Statementstatement=connection.createStatement(); ResultSetrs=statement.executeQuery("select*from員工信息表where員工編號(hào)=\'"+ID.getText()+"\'and密碼=\'"+oldPassword.getText()+"\'"); if(!rs.next()) {JOptionPane.showMessageDialog(this,"ID或密碼錯(cuò)誤!");return;} rs.close(); statement.executeUpdate("update員工信息表set密碼=\'"+newPassword.getText()+"\'where員工編號(hào)=\'"+ID.getText()+"\'"); statement.close(); connection.close(); JOptionPane.showMessageDialog(null,"修改密碼成功!"); } catch(Exceptionee) { JOptionPane.showMessageDialog(null,ee.getMessage()+"與數(shù)據(jù)庫(kù)連接失敗");return;} }4.2測(cè)試及調(diào)試4.2.1select查詢?cè)跀?shù)據(jù)庫(kù)中查詢正常上班(狀態(tài)編號(hào)為1)的員工名單,運(yùn)行結(jié)果如圖23示:select*from考勤記錄表where狀態(tài)編號(hào)='1'圖23查詢考勤記錄調(diào)用前端程序,查詢正常上班的員工名單,看員工名單是否一致,運(yùn)行結(jié)果如圖24示:圖24客戶端查詢4.2.2insert語(yǔ)句(1)在sql中用insert語(yǔ)句在員工信息表中插入一組新的數(shù)據(jù),運(yùn)行結(jié)果如圖25示:insertinto員工信息表values(6,1024,111,29,'wfm','女',23,1,2,3,20140101,'本科','群眾')圖25插入記錄(2)在客戶端進(jìn)行查詢,驗(yàn)證數(shù)據(jù)庫(kù)數(shù)據(jù)功能是否完整,運(yùn)行結(jié)果如圖26示:圖26客戶端插入記錄4.2.3delete語(yǔ)句(1)在sql中用刪除語(yǔ)句刪除一組數(shù)據(jù),代碼如下,運(yùn)行截圖如圖27示:DELETEFROM員工信息表WHERE員工編號(hào)=1024;圖27刪除記錄(2)在客戶端對(duì)員工編號(hào)為1024的員工進(jìn)行查找,找不到該員工信息,刪除成功,運(yùn)行結(jié)果如圖28示:圖19客戶端刪除查詢4.2.4update語(yǔ)句(1)在sql中用update更新一組員工技能信息在員工技能表中,運(yùn)行結(jié)果如圖29示:update員工技能表set技能編號(hào)=2where員工編號(hào)=202圖20更新數(shù)據(jù)(2)在客戶端對(duì)員工編號(hào)為202的員工進(jìn)行查詢,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論