廣工數據庫課程設計_第1頁
廣工數據庫課程設計_第2頁
廣工數據庫課程設計_第3頁
廣工數據庫課程設計_第4頁
廣工數據庫課程設計_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、教師信息管理系統 題目名稱 專業班級 學 號 學生姓名 指導教師 2016 年 3 月 26 日一、實驗環境硬件環境:處理器: Intel(R) Core(TM) i5-3230M CPU 2.60FHz 2.60GHz已安裝的內存(RMA): 4.00GB軟件環境 操作系統: Windows 10數據庫管理系統: SQL Server 2008開發工具: Eclipse二、需求分析信息需求教師信息(職工號,教師姓名,年齡,性別)課程信息(課程號,課程名,學分)課程評價信息(職工號,課程號,等級)獎金信息(序號,等級,獎金)用戶信息(登錄名,密碼,用戶組)功能需求1. 教師用戶: (

2、1)對教師信息、課程信息、課程評價、獎金信息的查詢。2. 管理員 (1)對教師信息、課程信息、課程評價的查詢,修改,增加,刪除; (2)對教師的獎金等信息的查詢,修改。安全性與完整性需求1. 不同的身份有不同的功能權限。2.實體完整性:通過設置主鍵都已實現。數據字典該軟件的數據庫由下述信息組成:1. 教師信息字段字段名類型寬度說明1職工號 Int型2教師姓名 字符型103年齡 Int型大于等于18且小于等于654性別 字符型2男或女2.課程信息字段字段名類型寬度說明1課程號 Int型2課程名 字符型163學分 Int型3. 課程評價信息字段字段名類型寬度說明1職工號 Int型2課程號 Int型

3、3等級 字符型2優,良,中,差4. 獎金信息字段字段名類型寬度說明1序號 Int型2等級 字符型2優,良,中,差3獎金 Int型5. 用戶信息字段字段名類型寬度說明1登錄名 字符型82密碼 Int型3用戶組 字符型6三、概念結構設計1. 教師信息實體2. 課程實體3. 課程評價實體4. 獎金實體5. 用戶實體概念模型:E-R圖四、邏輯結構設計關系模型教師信息表(職工號,教師姓名,年齡,性別),其主碼為職工號。課程表(課程號,課程名,學分),其主碼為課程號。課程評價表(職工號,課程號,等級),其主碼為職工號與課程號。獎金表(序號,等級,獎金),其主碼為序號。用戶表(登錄名,密碼,用戶組),其主碼

4、為登錄名。用戶子模式應用程序功能模塊圖安全性該系統的用戶只有兩種,一種是管理員,另一種是教師,管理員具有對數據庫操作的所有權限,教師只有對教師的信息、課程信息、課程評價、獎金信息的查詢權限。完整性實體完整性:通過設置主鍵都已實現。參照完整性:課程評價表中的職工號和課程號分別參照教師信息表中的職工號和課程表中的課程號。用戶自定義完整性:教師信息表中的年齡必須在18到60之間,性別必須為男、女,課程評價表和獎金表中的等級必須為優、良、中、差。五、數據庫物理設計數據的存放位置說明D:Program Files Microsoft SQL Server MSSQL10_50.SQLEXPRESSMSS

5、QLDATA系統配置說明使用登錄名:sa 登陸密碼:123 登陸SQL Server 2008模塊設計(模塊IPO圖)六、數據庫實施1.創建教師信息表CREATE TABLE 教師信息表 (職工號 INT NOT NULL PRIMARY KEY, 教師姓名 CHAR(10), 年齡 INT CHECK(年齡>=18 AND 年齡<=60), 性別 CHAR(2) CHECK(性別 IN('男','女') )2. 創建課程表CREATE TABLE 課程表 (課程號 INT NOT NULL PRIMARY KEY, 課程名 CHAR(16), 學分

6、 INT )3. 創建課程評價表CREATE TABLE 課程評價表 (職工號 INT, 課程號 INT, 等級 CHAR(2) CHECK(等級 IN('優','良','中','差'), PRIMARY KEY(職工號,課程號), FOREIGN KEY (職工號) REFERENCES 教師信息表(職工號), FOREIGN KEY (課程號) REFERENCES 課程表(課程號) )4. 創建獎金表CREATE TABLE 獎金表 (等級 CHAR(2) CHECK(等級 IN('優','良'

7、;,'中','差') PRIMARY KEY, 獎金 INT )5. 創建用戶表CREATE TABLE 用戶表 (登錄名 CHAR(8) NOT NULL PRIMARY KEY, 密碼 INT, 用戶組 CHAR(6) )6. 各表元組INSERT INTO 教師信息表 VALUES(201501,'翁嘉民',20,'男')INSERT INTO 教師信息表 VALUES(201502,'陳天翔',19,'男')INSERT INTO 教師信息表 VALUES(201503,'周詩妍&#

8、39;,21,'女')INSERT INTO 教師信息表 VALUES(201504,'宋嘉瑩',20,'女')INSERT INTO 課程表 VALUES(100,'語文',5)INSERT INTO 課程表 VALUES(101,'數學',5)INSERT INTO 課程表 VALUES(102,'英語',4)INSERT INTO 課程表 VALUES(103,'物理',3)INSERT INTO 課程表 VALUES(104,'化學',3)INSERT INT

9、O 課程表 VALUES(105,'生物',3)INSERT INTO 課程表 VALUES(106,'地理',3)INSERT INTO 課程表 VALUES(107,'歷史',3)INSERT INTO 課程表 VALUES(108,'政治',3)INSERT INTO 課程評價表 VALUES(201501,100,'優')INSERT INTO 課程評價表 VALUES(201501,107,'良')INSERT INTO 課程評價表 VALUES(201501,108,'優'

10、;)INSERT INTO 課程評價表 VALUES(201502,101,'良')INSERT INTO 課程評價表 VALUES(201502,103,'良')INSERT INTO 課程評價表 VALUES(201502,106,'優')INSERT INTO 課程評價表 VALUES(201503,102,'中')INSERT INTO 課程評價表 VALUES(201503,105,'良')INSERT INTO 課程評價表 VALUES(201503,107,'優')INSERT INT

11、O 課程評價表 VALUES(201504,104,'良')INSERT INTO 課程評價表 VALUES(201504,105,'優')INSERT INTO 課程評價表 VALUES(201504,106,'良')INSERT INTO 獎金表 VALUES('1','優',8000)INSERT INTO 獎金表 VALUES('2','良',4000)INSERT INTO 獎金表 VALUES('3','中',2000)INSERT INT

12、O 獎金表 VALUES('4','差',0)INSERT INTO 用戶表 VALUES('admin',123,'管理員')INSERT INTO 用戶表 VALUES('admin2',456,'管理員')7、 數據庫運行和維護主要窗口截圖主要代碼1. 數據庫的連接Connection con=null;StringJ Driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"/SQL數據庫引擎String connectDB

13、="jdbc:sqlserver:/127.0.0.1:1433;DatabaseName=Teacher"/數據源注意IP地址和端口號,數據庫名字 Teacher為數據庫名try Class.forName(JDriver);/加載數據庫引擎,返回給定字符串名的類catch(ClassNotFoundException e)/e.printStackTrace();System.out.println("加載數據庫引擎失敗");System.exit(0);tryString user="sa"/你自己創建的用戶名字和密碼Strin

14、g password="fuxiao456" con=DriverManager.getConnection(connectDB,user,password);/連接數據庫對象Statement stmt=con.createStatement();/創建SQL命令對象/關閉連接stmt.close();/關閉命令對象連接con.close();/關閉數據庫連接catch(SQLException e)e.printStackTrace();/System.out.println("數據庫連接錯誤");System.exit(0);2. 更新函數publ

15、ic static void function10(String id17,String id18,String id19,Connection con) int a = 0;try String sql = "update 課程評價表 set 等級=? where 職工號=? and 課程號=?"PreparedStatement stmta = con.prepareStatement(sql); /執行SQL語句stmta.setString(1, id19); /用id27的字符串代替SQL語句中的第一個?stmta.setString(2, id17); /用id

16、27的字符串代替SQL語句中的第二個?stmta.setString(3, id18); /用id27的字符串代替SQL語句中的第三個?a=stmta.executeUpdate(); /將受影響的行數賦值給acatch (Exception e) if(a=1) System.out.println("修改成功"); /通過受影響的行數來判斷SQL語句是否執行成功if(a=0) System.out.println("修改失敗");3. 增加函數public static void function11(String id20,String id21,

17、String id22,Connection con) int a = 0;try String sql = "insert into 課程評價表 values(?,?,?)"PreparedStatement stmta = con.prepareStatement(sql); /執行SQL語句 stmta.setString(1, id20); /用id20的字符串代替SQL語句中的第一個?stmta.setString(2, id21); /用id21的字符串代替SQL語句中的第一個?stmta.setString(3, id22); /用id22的字符串代替SQL語

18、句中的第一個? a=stmta.executeUpdate(); /將受影響的行數賦值給acatch (Exception e) if(a=1) System.out.println("插入成功"); /通過受影響的行數來判斷SQL語句是否執行成功if(a=0) System.out.println("插入失敗");4. 連接查詢public static void function15(String id27,Connection con) try String sql = "select 教師信息表.職工號,教師信息表.教師姓名,課程名,學

19、分,獎金表.等級,獎金 from 教師信息表,課程表,課程評價表,獎金表 where 教師信息表.職工號=課程評價表.職工號 and 課程表.課程號=課程評價表.課程號 and 課程評價表.等級=獎金表.等級 and 教師信息表.職工號=?"PreparedStatement stmta = con.prepareStatement(sql); /執行SQL語句stmta.setString(1, id27); /用id27的字符串代替SQL語句中的第一個?ResultSet rs = stmta.executeQuery(); System.out.println("職工

20、號"+"t"+"教師姓名"+"t"+"課程名"+"t"+"學分"+"t"+"等級"+"t"+"獎金");while (rs.next() /輸出選擇結果System.out.println(rs.getString("職工號")+"t"+rs.getString("教師姓名")+"t"+rs.getStrin

21、g("課程名")+rs.getString("學分")+"t"+rs.getString("等級")+"t"+rs.getString("獎金");catch (Exception e) 5. 分組求和public static void function19(Connection con) try String sql = "select 教師信息表.職工號,教師信息表.教師姓名,sum(獎金) as 總獎金 from 教師信息表,課程評價表,獎金表 where 教師信息表.職工號=課程評價表.職工號 and 課程評價表.等級=獎金表.等級 group by 教師信息表.教師姓名,教師信息表.職工號"PreparedStatement stmta = con.pre

溫馨提示

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

評論

0/150

提交評論