大學數據庫期末設計


目錄

1.概述    2

1.1 系統簡介    2

1.2組織機構及業務范圍    2

2.需求分析    3

2.1總體目標    3

2.2具體目標    3

管理員主要功能:    3

教師主要功能:    4

學生主要功能:    4

2.3系統功能建模    5

2.3.1系統數據流程圖    5

2.3.2數據字典    6

3.概念結構設計    8

4.邏輯結構設計    11

4.1關系模式    11

4.2數據模型的優化    12

5.物理設計    12

5.1創建數據庫:    12

5.2創建各表:    13

管理員信息表ADMIN    13

權限信息表LI    13

教師登錄信息表LT    14

學生登錄信息表LS    14

學生信息表S    15

教師信息表T    15

課程信息表C    16

作業信息表J    16

學生-作業信息表S-J    17

成績信息表G    18

5.3管理員模塊功能創建:    18

5.4教師模塊功能創建:    19

5.5學生模塊功能創建:    20

5.6數據完整性約束的設計:    21

主鍵的創建    21

外鍵約束的創建    22

DEFAULT約束的創建    22

索引的創建    23

視圖的創建    23

6.設計小結    24

參考文獻    25

 

1.概述

1.1 系統簡介

隨着計算機技術的發展和互聯網技術的廣泛應用,教育信息化成為21世紀教育改革和發展的主旋律之一。實踐教學環節中一個重要組成部分是實驗教學,實驗報告的有效管理是能夠順利開展實驗教學的保證。在信息化高速發展的今天,傳統的實驗報告管理形式已經跟不上新型教學模式的發展,在深入分析傳統紙質實驗報告諸多弊端的基礎上,提出並開發了基於高校現有的信息化條件開發實驗報告管理系統的解決方案,從而方便了管理,提高了工作效率。

1.2組織機構及業務范圍

本系統適用於學校,作業及實驗報告作為老師教學過程中的一個重要環節,作為學生學習情況的直接反饋,卻一直沒有得到相應的重視。為了加強對作業及實驗報告的管理,提高學生的學習效率,開發一套學生作業及實驗報告信息管理系統。本系統采用雲平台的技術手段,通過此系統,我們可以解決許多問題。

  1. 學生能直接提交電子版的作業及實驗報告,方便老師們查看學生作業及實驗報告,給出評語,查詢學生作業及實驗報告上交情況,也方便老師對作業及實驗報告信息進行管理,提高管理效率。
  2. 課程論壇為同學們提供了一個可以自由與其他同學或者老師進行學習交流的平台,大大地增加了師生之間的互動,拉近師生間的距離。學生可以在零散的課余時間里解決自己學習中存在的問題。這樣可以把學生的零散時間充分利用起來,既為學生帶來了方便又提高了學習效率。
  3. 網絡資源模塊為同學們提供了許多教學資源,及其他學習相關的學習資源。學生可以利用這些資源對自己的學習做補充,同時也可以學習一些上課時老師沒有講到的課外知識。
  4. 電子版作業及實驗報告能做到節能環保,符合現在社會的主流趨勢。
  5. 學生們能及時得到關於作業及實驗報告的反饋,了解到自己在相關課程上的不足。

2.需求分析

2.1總體目標

理解需求是在問題及其最終解決方案之間架設橋梁的第一步。開發者只有和客戶充分理解了需求之后才能開始設計系統,否則,對需求定義的任何改進,設計上都必須大量的返工。下面是雙方調研后得到的需求規格說明。

1)系統對用戶登錄進行管理。使用各功能模塊時,系統應驗證用戶身份的有效性,否則不容許用戶登錄。另外,容許用戶對自己的密碼進行修改。

2)在服務器、數據庫等多個層次上提供行之有效的安全防范措施,可以確保系統安全穩定的運行。

3)具有高度的靈活和良好的可擴充性,可隨着作業提交情況的變化在功能和規模兩方面隨時進行擴展和升級。

4)功能全面,覆蓋全校師生的有效信息,教師管理、學生管理、作業管理、實驗報告管理。

5)可提供與多種專用作業軟件的接口,能輕松地接入作業及實驗報告管理系統。

6)從用戶的角度出發,能高度智能。易用、簡單、快捷地操作。

2.2具體目標

分析需求是從客戶的需求中提取出軟件系統能夠幫助用戶解決的業務問題,通過對用戶業務問題的分析,規划出系統的功能模塊。這個步驟是對理解需求的升華,直接關系到該系統的質量。

學生作業管理系統主要提供網上的作業管理平台,主要分為管理員、教師、學生三個部分的功能

管理員主要功能:

  1. 管理員登錄功能,根據權限進入管理員相應的頁面的功能
  2. 管理員設置院系、班級、課程、任課教師,同樣具有查看、修改、刪除的功能
  3. 管理員修改個人資料功能
  4. 管理員中的教師管理,實現教師登陸信息的初始化功能

教師主要功能:

  1. 教師登錄功能,根據權限進入教師相應的頁面的功能
  2. 教師發布公告、管理公告(查看、修改、刪除)功能
  3. 教師修改個人資料功能
  4. 教師查看學生名單功能
  5. 教師在線布置、批改作業功能
  6. 教師網上答疑功能

學生主要功能:

  1. 學生查看、搜索公告的功能
  2. 學生登錄功能,根據權限進入學生相應的頁面的功能
  3. 學生修改個人資料的功能
  4. 學生查看、下載老師的作業題目,上傳作業(說明作業格式),查看老師對作業的批改情況功能
  5. 學生在網上對老師提出疑問並能查看以往對老師提出的疑問功能

通對上述的功能進行集中、分塊和分析,按照結構化程序設計的要求,得到如圖2-1所示的系統功能模塊圖。

2-1系統功能模塊圖

2.3系統功能建模

2.3.1系統數據流程圖

數據流圖符號說明:

 

 

 

 

 

 

 

 

 

 

2-1數據流圖符號

圖形符號

名稱

符號說明

 

外部實體

 

框內為實體名稱。

 

數據儲存

 

圈內為存儲數據的系統名。

 

數據流及操作

記述數據流的流動方向,FM記述數據流的名稱及操作。

 

數據流圖如下:

 

2-2數據流圖

2.3.2數據字典

數據字典是關於數據的信息的集合。數據流圖和數據字典共同構成系統的邏輯模型,沒有數據字典數據流圖就不嚴格,沒有數據流圖數據字典也難於發揮作用。只有數據流圖和對數據流圖中每個元素的精確定義放在一起,才能共同構成系統的規格說明。

為了把用戶的數據要求清楚、准確的描述出來,系統分析員通常建立一個概念性的數據模型(也稱為信息模型)。概念性數據模型是一種面向問題的數據模型,是按照用戶的觀點對數據建立的模型。它描述了從用戶角度看到的數據,它反映了用戶的現實環境,而且與在軟件系統中的實現方法無關。數據字典通常包括:數據項、數據類型、數據流、數據存儲和處理過程5個部分:

管理員信息數據字典如下表2-2所示:

2-2數據文件"管理員信息"的字典條目

文件名:管理員信息

編號:1

組成:賬號+密碼

備注:賬號是主鍵

 

學生信息數據字典如下表2-3所示。

 

2-3數據文件"學生信息"的字典條目

文件名:學生信息

編號:2

組成:學號+姓名+性別+學院+專業+年級+班級

備注:學號是主鍵

  • 教師信息數據字典如下表2-4所示。

2-4數據文件"教師信息"的字典條目

文件名:教師信息

編號:3

組成:教工號+ 姓名

備注:教工號是主鍵

 

  • 課程數據字典如下表2-5所示。

 

 

2-5數據文件"課程信息"的字典條目

文件名:課程信息

編號:4

組成:課程號+課程名

備注:課程號是主鍵

 

  • 作業數據字典如下表2-6所示。

 

 

 

2-6數據文件"作業信息"的字典條目

文件名:作業信息

編號:5

組成:教工號+課程號+作業編號+作業名+實驗報告名+實驗性質

備注:教工號+課程號+作業編號是主鍵

 

3.概念結構設計

一個實體型轉換為一個關系模式,實體的屬性就是關系的屬性,實體的關鍵字就是關系的關鍵字,其中關鍵字用下划線標識:

管理員(賬號,密碼)

    教師登錄信息表(教工號,密碼,權限)

學生登錄信息表(學號,密碼,權限)

學生(學號,姓名,院系,專業,班級)

教師(教工號,姓名)

課程(課程號,課程名)

作業(教工號課程號作業編號,作業題目,作業提交數量,實驗題目,實驗類型,實驗提交數量)

學生-作業(學號教工號課程編號作業編號,作業成績,作業是否提交,實驗成績,實驗是否提交)

學生成績(學號課程號,課程成績)

 

有了上面的數據結構、數據項和數據流程,就能進行下面的數據庫設計。

本數據庫根據上面的設計規划出的實體有:學生、教師、課程、作業、實驗報告。各個實體具有的描述E-R圖及其之間的關系描述如下。

管理員實體圖:

學生實體圖:

3-1學生實體圖

教師實體圖:

3-2教師實體圖

 

課程實體圖:

3-3課程實體圖

 

作業實體圖:

3-4作業實體圖

 

教師-作業關系圖:

3-6教師-作業關系圖

 

學生-作業關系圖:

3-7學生-作業關系圖

 

實體之間E-R圖:

3-10實體之間E-R

4.邏輯結構設計

4.1關系模式

針對本實例,通過對作業平台管理內容的分析,設計的數據項和數據結構如下。

  1. 管理員信息:包括的數據項有(賬號,密碼)
  2. 權限信息:包括的數據項有(用戶類型,允許增加與否,允許刪除與否,允許修改與否,允許查找與否)
  3. 登錄信息:包括的數據項有(學號或教工號,登錄密碼,權限)
  4. 學生信息:包括的數據項有(學號,姓名,院系,專業,班級)
  5. 教師信息:包括的數據項有(教工號,姓名)
  6. 課程信息:包括的數據項有(課程號,課程名)
  7. 作業信息:包括的數據項有(教工號,課程編號,作業編號,作業題目,實驗題目,實驗類型)
  8. 學生-作業信息:包括的數據項有(學號,教工號,課程編號,作業編號,作業成績,實驗成績)
  9. 學生課程成績信息:包括的數據項有(學號,課程號,課程總成績)

4.2數據模型的優化

通過前面的分析,我們最終得到的關系模式有:

    管理員(賬號,密碼)

    教師登錄信息表(教工號,密碼,權限)

學生登錄信息表(學號,密碼,權限)

學生(學號,姓名,院系,專業,班級)

教師(教工號,姓名)

課程(課程號,課程名)

作業(教工號課程號作業編號,作業題目,作業提交數量,實驗題目,實驗類型,實驗提交數量)

學生-作業(學號教工號課程編號作業編號,作業成績,作業是否提交,實驗成績,實驗是否提交)

學生成績(學號課程號,課程成績)

由於關系模式都是不可再分的數據項,很顯然為第一范式;由於各表中每一個非主屬性完全函數依賴於表中的某個候選鍵,所以滿足第二范式。通過學生-作業表和學生-實驗報告表中的成績可以推出學生成績表中的課程總成績,也可以通過學生表中的專業推出院系,所以不滿足第三范式,但是這些信息需要多次查詢,所以需要建立此數據項,提高查詢效率。

5.物理設計

5.1創建數據庫:

CREATE DATABASE JESYSTEM;

5.2創建各表:

管理員信息表ADMIN

管理員信息表(ADMIN)用來保存管理員的賬號和密碼,如表5-1所示。

5-1管理員登錄信息表(ADMIAN)

編號

字段名稱

數據類型

約束條件

說明

1

ID

VARCHAR(12)

 

賬號(主鍵)

2

PSWD

VARCHAR(20)

NOT NULL

密碼

CREATE TABLE ADMIN(

ID VARCHAR(12) PRIMARY KEY,

PSWD VARCHAR(20) NOT NULL);

 

權限信息表LI

權限信息表(LI)用來保存學生和教師的權限信息,如表5-2所示。

5-2權限信息表(LI)

編號

字段名稱

數據類型

約束條件

說明

1

USERTYPE

VARCHAR(10)

NOT NULL

用戶類型

2

ISADD

ENUM('PER','REF')

NOT NULL

增加

3

ISDEL

ENUM('PER','REF')

NOT NULL

刪除

4

ISALT

ENUM('PER','REF')

NOT NULL

修改

5

ISSEL

ENUM('PER','REF')

NOT NULL

查找

CREATE TABLE LI(

USERTYPE VARCHAR(10) NOT NULL,

ISADD ENUM('PER','REF') NOT NULL DEFAULT 'REF',

ISDEL ENUM('PER','REF') NOT NULL DEFAULT 'REF',

ISALT ENUM('PER','REF') NOT NULL DEFAULT 'REF',

ISSEL ENUM('PER','REF') NOT NULL DEFAULT 'REF');

 

教師登錄信息表LT

登錄信息表(L)用來保存教師的登錄信息,表LT如表5-3所示。

 

 

 

 

5-3登錄信息表(LT)

編號

字段名稱

數據類型

約束條件

說明

1

TID

VARCHAR (12)

PRIMARY KEY

教工號(主鍵)

2

PSWD

VARCHAR (20)

NOT NULL

密碼

3

LIMIT

VARCHAR (10)

NOT NULL

權限(外鍵)

SQL語句:

 

CREATE TABLE LT(

TID VARCHAR(12) PRIMARY KEY,

PSWD VARCHAR(20) NOT NULL,

LIMIT VARCHAR(10) NOT NULL,

FOREIGN KEY(LIMIT) REFERENCES LI(USERTYPE));

 

學生登錄信息表LS

登錄信息表(LS)用來保存學生的登錄信息,表LS如表5-4所示。

 

5-4登錄信息表(LS)

編號

字段名稱

數據類型

約束條件

說明

1

SID

VARCHAR (12)

PRIMARY KEY

學號(主鍵)

2

PSWD

VARCHAR (20)

NOT NULL

密碼

3

LIMIT

VARCHAR (10)

NOT NULL

權限(外鍵)

SQL語句:

 

CREATE TABLE LS(

SID VARCHAR(12) PRIMARY KEY,

PSWD VARCHAR(20) NOT NULL,

LIMIT VARCHAR(10) NOT NULL,

FOREIGN KEY(LIMIT) REFERENCES LI(USERTYPE));

 

學生信息表S

學生信息表(S)用來保存學生的基本信息,表S如表5-5所示。

 

 

 

5-5學生信息表(S)

編號

字段名稱

數據類型

約束條件

說明

1

SID

VARCHAR(12)

PRIMARY KEY

用戶姓名(主鍵)

2

SNAME

VARCHAR(255)

NOT NULL

姓名

3

SMAJOR

VARCHAR(20)

NOT NULL

專業

3

SDEPA

VARCHAR(20)

NOT NULL

院系

4

CLASS

BIGINT(50)

NOT NULL

班級

SQL語句:

CREATE TABLE S (

SID VARCHAR(12) NOT NULL PRIMARY KEY,

SNAME VARCHAR(255) NOT NULL ,

SMAJOR VARCHAR(255) NOT NULL ,

SDEPA VARCHAR(255) NOT NULL ,

CLASS BIGINT(50) NOT NULL );

 

教師信息表T

教師信息表(T)用來保存教師的基本信息,表T如表5-6所示。

 

 

5-6教師信息表(T)

編號

字段名稱

數據類型

約束條件

說明

1

TID

VARCHAR(12)

PRIMARY KEY

教工號

2

TNAME

VARCHAR(20)

NOT NULL

教師名

SQL語句:

CREATE TABLE T (

TID VARCHAR(12) NOT NULL PRIMARY KEY,

TNAME VARCHAR(255) NOT NULL );

 

課程信息表C

課程信息表(C)是用來保存課程的基本信息。表C如表5-7所示。

 

 

 

5-7課程信息表(C)

編號

字段名稱

數據類型

約束條件

說明

1

CID

VARCHAR(6)

PRIMARY KEY

課程編號(主鍵)

2

CNAME

VARCHAR(255)

NOT NULL

課程名

SQL語句:

CREATE TABLE C (

CID VARCHAR(6) PRIMARY KEY,

CNAME VARCHAR(255) NOT NULL );

 

 

作業信息表J

結算信息表(J)是用來保存作業的基本信息。表J如表5-8所識示。

5-8作業信息表(J)

編號

字段名稱

數據類型

約束條件

說明

1

TID

VARCHAR(12)

PRIMARY KEY

教工號(主鍵)(外鍵)

2

CID

VARCHAR(6)

PRIMARY KEY

課程編號(主鍵)(外鍵)

3

JID

VARCHAR(6)

PRIMARY KEY

作業編號(主鍵)

4

JTI

VARCHAR(255)

 

作業題目

5

JCOUNT

BIGINT

 

作業提交數量

6

EXTI

VARCHAR(255)

 

實驗題目

7

EXNATURE

VARCHAR(255)

 

實驗類型

8

EXCOUNT

BIGINT

 

實驗報告提交數量

SQL語句:

CREATE TABLE J (

TID VARCHAR(12) PRIMARY KEY,

CID VARCHAR(6) PRIMARY KEY,

JID VARCHAR(6) PRIMARY KEY,

JTI VARCHAR(255) ,

JCOUNT BIGINT

PRIMARY KEY(TID,CID,JID)

FOREIGN KEY(TID) REFERENCES T(TID),

FOREIGN KEY(CID) REFERENCES C(CID));

 

學生-作業信息表S-J

學生-作業信息表(S-J)用於存儲學生與作業之間關系的信息,如表5-9所示:

5-9學生-作業信息表(S-J)

編號

字段名稱

數據類型

約束條件

說明

1

TID

VARCHAR(12)

PRIMARY KEY

學號(主鍵)(外鍵)

2

SID

VARCHAR(12)

PRIMARY KEY

學號(主鍵)(外鍵)

3

CID

VARCHAR(6)

PRIMARY KEY

課程號(主鍵)(外鍵)

4

JID

VARCHAR(6)

PRIMARY KEY

作業編碼(主鍵)(外鍵)

5

JGRADE

BIGINT(3)

NOT NULL

作業分數

6

JISSUBMIT

ENUM('Y','N')

NIOT NULL

作業提交與否

7

EXGRADE

BIGINT(3)

NOT NULL

實驗分數

8

EXISSUBMIT

ENUM('Y','N')

NIOT NULL

實驗提交與否

SQL語句:

CREATE TABLE S-J (

TID VARCHAR(12) PRIMARY KEY

SID VARCHAR(12) PRIMARY KEY,

CID VARCHAR(6) PRIMARY KEY ,

JID VARCHAR(6) PRIMARY KEY,

JGRADE BIGINT(3) NOT NULL,

JISSUBMIT ENUM('Y','N') NIOT NULL DEFAULT 'N',

EXGRADE BIGINT(3) NOT NULL,

EXISSUBMIT ENUM('Y','N') NIOT NULL DEFAULT 'N';

PRIMARY KEY(TID, SID,CID,JID),

FOREIGN KEY(TID) REFERENCES (TID),

FOREIGN KEY(SID) REFERENCES S(SID),

FOREIGN KEY(CID) REFERENCES C(CID),

FOREIGN KEY(JID) REFERENCESJ(JID));

成績信息表G

成績信息表(G)用來保存學生每門課程的總成績,如表5-10所示。

 

5-10成績信息表(G)

編號

字段名稱

數據類型

約束條件

說明

1

SID

VARCHAR(12)

PRIMARY KEY

學號(主鍵)(外鍵)

2

CID

VARCHAR(6)

PRIMARY KEY

課程號(主鍵)(外鍵)

3

GRADE

BIGINT(3)

NOT NULL

課程成績((J_GRADE+EX_GRADE*50%

SQL語句:

CREATE TABLE G (

SID VARCHAR(12) NOT NULL,

CID VARCHAR(6) NOT NULL,

GRADE BIGINT(3) NOT NULL,

PRIMARY KEY(SID,CID),

FOREIGN KEY(SID) REFERENCES S(SID),

FOREIGN KEY(CID) REFERENCES C(CID));

5.3管理員模塊功能創建:

  1. 添加課程信息:

    INSERT INTO C

    VALUES

    ('C00001','web')

  2. 刪除課程信息:

    Delete from C

    Where CID='C00001';

    1. 添加教師信息:

      INSERT INTO T

      VALUES

      ('201209010001','張三')

    2. 刪除教師信息:

      Delete from T

      Where TID='201209010002';

    3. 添加學生信息:

INSERT INTO S

VALUES

('201510910101','張三','計算機科學與技術''信息工程學院'1)

  1. 刪除學生信息:

    Delete from S

    Where SID='201510910102'

  2. 修改管理員密碼:

UPDATE ADMIN

SET PSWD='KJSDHHDJ'

WHERE ID='201209010001';

5.4教師模塊功能創建:

  1. 修改密碼:

        UPDATE LT

SET PSWD='KJSDHHDJ'

WHERE TID='201209010001';

  1. 布置作業:

    INSERT INTO J(TID,CID,JID,JTI)

    VALUES

    ('201209010001','C00001','J00001','web測試一')

  2. 查看作業:

    SELECT JID,JTI

    FROM J

    WHERE TID='201209010001' AND CID='C00001' AND JID='J00001';

  3. 為學生打分:

    UPDATE S-J

    SET JGRADE='86'

    WHERE SID='201510910101' AND CID='C00001' AND JID='J00001';

  4. 修改作業:

    UPDATE J

    SET JTI='Web測試二'

    WHERE TID='201209010001' AND CID='C00001' AND JID='J00001';

  5. 刪除作業:

    DELETE from J

    Where TID='201209010001' AND CID='C00001' AND JID='J00001';

5.5學生模塊功能創建:

  1. 查看作業:

    SELECT JID,JTI,

    FROM J

    WHERE TID='201209010001' AND CID='C00001' AND JID='J00001';

  2. 提交作業:

    UPDATE S-J

    SET ISSUBMIT='Y'

    WHERE TID='201209010001' AND SID='20151091103' AND CID='C00001' AND JID='J00001';

  3. 查看作業分數:

    SELECT JGRADE

    FROM S-J

    WHERE TID='201209010001'AND SID='201510910101' AND CID='C00001' AND JID='J00001';

  4. 查看課程分數:

                SELECT GRADE

FROM G

WHERE SID='201510910101' AND CID='C00001';

5.6數據完整性約束的設計:

主鍵的創建

  1. 管理員信息表(ADMIN)中主鍵是賬號;
  2. 教師登錄信息表(LT)中主鍵是教工號;
  3. 學生登錄信息表(LS)中主鍵是學號
  4. 學生信息表(S)中主鍵是賬號;
  5. 教師信息表(T)中主鍵是學號;
  6. 課程信息表(C)中主鍵是課程號;
  7. 作業信息表(J)中主鍵是教工號、課程號、作業編號的組合;
  8. 學生-作業信息表(S-J)中主鍵是學號、教工號、課程號、作業編號的組合;
  9. 學生課程成績信息表(G)中主鍵是學號、課程號的組合;

外鍵約束的創建

  1. 教師登錄信息表(LT)中的"LIMIT"列參照權限信息表的"USERTYPE"列;
  2. 學生登錄信息表(LS)中的"LIMIT"列參照權限信息表的"USERTYPE"列;
  3. 作業信息表中的"教工號(TID)"列參照教師信息表的"教工號(TID)"列,"課程號(CID)"列參照課程信息表的"課程號"列。
  4. 學生-作業信息表中的"教工號(TID)"列參照教師表的"教工號(TID)"列,"學號(SID)"列參照學生信息表的"學號(SID)"列,"課程號(CID)"列參照課程信息表的"課程號(CID)"列,"作業編號(JID)"列參照作業信息表的"作業編號(JID)"列。
  5. 學生成績表(G)中的"學號"列參照學生信息表的"學號"列,"課程號"列參照課程信息表的"課程號"列。

DEFAULT約束的創建

  1. 權限信息表中的"允許增加與否"默認為"否","允許刪除與否"默認為"否","允許修改與否"默認為"否","允許查找與否"默認為"否"。
  2. 學生-作業信息表中的"作業是否提交"默認為"否"。"實驗是否提交"默認為"否"。

索引的創建

創建UNIQUE索引,一共創建了兩個unique索引和兩個復合索引。

  1. 教師表的教工號列:

    CREATE UNIQUE INDEX TNO

    ON T (TID ASC)

  2. 學生信息表的學號列:

    CREATE UNIQUE INDEX SNO

    ON S (SID ASC)

  3. 在作業信息表中創建復合索引:

CREATE INDEX JNO

ON J (TID ASC, CID, JID);

  1. 在學生-作業信息表中創建復合索引:

CREATE INDEX SJNO

ON J (SID ASC, TID, CID, JID);

視圖的創建

  1. 創建一個管理員用來查看教師信息的視圖:

    CREATE VIEW TEACHER

    AS

    SELECT *

    FROM T;

  2. 創建一個管理員用來查看學生信息的視圖:

    CREATE VIEW STUDENT

    AS

    SELECT *

    FROM S;

  3. 創建一個教師用來查看作業總體提交情況的視圖:

    CREATE VIEW JOB

    AS

    SELECT JTI, JCOUNTEXTI, EXCOUNT

    FROM J;

  4. 創建一個教師用來查看學生提交情況與成績的視圖:

    CREATE VIEW SUBTJOB

    AS

    SELECT JTI, JISSUBMIT, JGRADE, EXTI, EXISSUBMIT, EXGRADE

    FROM J.JID=S-J.JID;

  5. 創建一個學生用來查看作業任務視圖:

    CREATE VIEW SUBTJOB

    AS

    SELECT JTI, JISSUBMIT, JGRADE, JGRADE, EXTI, EXISSUBMIT, EXGRADE

    FROM J.JID=S-J.JID;

6.設計小結

在本次課程設計中,真實地接觸了數據庫系統的設計與實現。經過數據庫系統分析、概念結構設計、邏輯結構設計、物理結構設計,逐步地將實驗報告管理系統的數據庫建立了起來。

特別是在建表的時候,可能是因為需求分析不完善的問題,需要反復的進行創建和刪除。做的越多,就感覺應該做但還沒做的越多。比如作業和實驗報告,起初分為兩個表,等做完后,發現這樣會使得效率降低,所以合為一個表,共用一個編碼。

通過一學期的數據庫課程的學習,只是掌握了數據庫的理論知識,但是從理論到實踐又是一個很大的挑戰,在這幾天的課程設計中,親身的感受了一下設計一個完整的數據庫系統的全過程。在完成作業與實驗報告管理系統的數據庫設計之后,感覺自己對數據庫設計不再是局限於數據庫的創建和表的創建,而是要從實際出發,結合用戶的需求來設計數據庫,並且對約束的選擇,主鍵、外鍵的選擇也是一個繁瑣的過程。總之,通過此次課程設計,我感到獲益匪淺,但是唯一的不足之處就是不能將該系統實現出來,希望下次能夠做的更加完美。

參考文獻

[1]王珊,薩師煊.數據庫系統概論(第五版),2014,9.

[2]崔洋,賀亞茹.MySQL數據庫應用從入門到精通,2013,1.

[3] http://blog.csdn.net/linminqin/article/details/44342205.

[4] https://www.csdn.net/.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM