羅全珍 李彩霞
(甘肅交通職業技術學院 甘肅省蘭州市 730070)
高職擴招是國家一項重大的教育改革工程,擴招生源在社會背景、年齡結構、實踐閱歷等方面具有多元化,文化基礎和學習能力水平參差不齊,求學動機和接受教育教學方式差異比較明顯。由于高職院校的擴招學生在日常管理和教育教學過程中,與普通在校生存在一定差距,所以這為職業院校帶來了一定的挑戰。高職院校在調整人才培養方案、實施線上線下混合教學、加強過程管控的同時,利用計算機應用技術和網絡技術搭建了符合自己管理風格的擴招教學管理系統,服務于廣大擴招師生,從而提高了學院的管理水平和效率,有效做到擴招人才培養要求的“標準不降、模式多元、學制靈活”。
高職擴招教學管理系統以擴招學生和教師為主要服務對象,以教育教學為主要內容。在實施系統開發之前,設計一個全面、準確、嚴謹、高效的數據庫系統,可以極大地提高應用系統的有效性和健壯性。目前常見的數據庫系統有Oracle、Microsoft SQL Server、MySQL、access 等。由于本項目開發的高職擴招教學管理系統采用PHP 語言,與MySQL 數據庫銜接完美,且MySQL 具有體積小、速度快、成本低、代碼開源等優點,因此本系統采用MySQL 數據庫。
數據庫的設計既要滿足用戶的需求,又要與給定的應用環境密切相關,因此需要通過系統化、規劃化的方法進行設計。同時數據庫的設計還具有反復性、試探性和分步進行的特點。通過用戶需求分析,得到本系統,主要完成擴招學生的教學管理,包括學生的基本信息管理,每學期的教學計劃管理、教師授課安排、課表生成、考試安排、成績管理等內容。
E-R 模型,全稱為實體關系模型, 是數據庫概念模型設計中最常見的描述工具,它提供了表示實體類型、屬性和聯系的方法。根據用戶需求和系統功能,我們將本系統大致劃分成以下幾個模塊,主要包括專業管理、班級管理、學生管理、教師管理、專業計劃管理、教學任務管理、課表管理、考試管理、評價管理等,每個模塊包含一個實體和若干屬性。根據實體之間的聯系得到本系統總的E-R 模型(如圖1 所示)。
圖1 中的矩形框表示實體,菱形框表示實體之間的聯系。一般來說,兩個實體之間的聯系可以分為三種:對于一對一聯系,要在兩個實體連線方向各寫1,比如教學任務和專業計劃、教材之間就屬于一對一的關系,一門課程只能被講授學習一次,一門課程只對應一本教材;對于一對多聯系,要在一的一方寫1,多的一方寫n,比如一個學院開設了多個專業,一個專業下面有多個班級,一個班級里有多名同學;對于多對多關系,則要在兩個實體連線方向各寫m 和n,比如一名學生可以選修了多門課程,一門課程可以被多名學生選修。

圖1:本系統E-R 模型圖

圖2:數據表
根據以上分析,將E-R 模型圖轉換為關系模型。在關系模型中,標有下劃線“_”的屬性為主鍵,斜體字的屬性為外鍵。以班級表為例,其關系模型如下:
班級(編號、班級代碼、班級名稱、所在系部、所屬專業、招生年份、班級人數、班主任編號)。
基于以上數據庫的設計,我們在MySQL 中進行數據庫的實施,包括基本數據表的創建、索引表的建立、添加外鍵約束等。

圖3:創建專業計劃表

圖4:擴招學生表的基本結構

圖5:添加外鍵約束
我們在MySQL 數據庫中首先創建數據庫,然后創建了12 個數據表。這些數據表按照字母順序排序后,分別是:教材表、學院表、班級表、教學評價表、考試安排表、成績表、學生表、教學任務表、課表、專業表、專業計劃表、教師表(如圖2 所示)。
以專業計劃表為例,利用“create table”語句完成該表的創建,具體如圖3 所示。語句中對每一個字段的字段名、數據類型、默認值、字段描述等都進行了明確的定義。
數據庫的約束條件就是指限制表中的數據,保證添加到數據表中的數據準確和可靠性,凡是不符合約束的數據,插入時就會失敗。約束條件在創建表時可以使用,也可以修改表的時候添加約束條件。約束條件可分為:主鍵約束、外鍵約束、非空約束、默認約束、唯一約束等。下面以圖4 所示的擴招學生表為例進行討論:
主鍵約束(primary key)通常是一個表必須指定一個主鍵,這個主鍵也是唯一的、非空的,一般也是自動增加的。如本表中的id字段,其key 屬性為“PRI”,Extra 屬性為“auto_increment”。
外鍵約束(foreign key)用于限制兩個表的關系,保證從表該字段的值來自于主表相關聯的字段的值。如本表的id_grade(班級編號)字段來自于班級表,可以通過以下語句添加外鍵約束,如圖5 所示。
非空約束(not null)是保證字段的值不能為空,如圖4 中的id(序號)、stu_no(學號)、stu_name(姓名)、stu_IDnumber(身份證號)等字段都是非空約束。
默認約束(default)是保證字段總會有值,當沒有插入值時自動為默認值,如圖4 中的year_enroll(入學年份)字段默認為“2021”。
唯一約束(unique)是保證每一行數據的唯一性,防止用戶輸入重復數據。如圖4 中的stu_no(學號)、stu_IDnumber(身份證號)兩個字段不允許數據重復。
為了提高數據表的訪問速度,我們在數據表中添加了索引,索引是對數據表中一個或多個列的值進行排序的結構。索引又分為普通索引、唯一性索引、全文索引、單列索引、多列索引和空間索引等。
我們在每張表中都添加了自動增加的id 字段,作為該表的主鍵索引,當在查詢中使用主鍵索引時,它可以實現對數據的快速訪問。另外,在Web 應用系統對數據進行操作時,需要將學院表、專業表、教師表等按照日常工作約定的方式進行排序,因此這幾個表中都增加了“排列序號”字段,并對將該字段設置為普通索引。
在數據庫的設計中,根據第三范式規定,數據庫表中不包含已在其它表中已包含的非主關鍵字信息。因此當嚴格按照第三范式設計時,教學任務(課程)表中只需包含課程編號、教師編號即可。但在Web 應用系統對數據處理時,經常需要在多個數據庫之間共享或共同處理數據,比如在教學任務的處理中,每次都需要顯示教師姓名和工號、課程名稱和課程代碼,偶爾也會要求查詢該課程的學分、學時、教材等信息。因此,在實際的數據庫實現過程中,也允許一些冗余數據的存在,從而在犧牲存儲空間的情況下,提高了程序運行的時間和數據處理的效率。當需要同時調用其他數據表中的數據時,可以采用聯合查詢技術實現。
本文實現了高職擴招教學管理系統中數據庫的設計,通過需求分析、概念結構設計、邏輯結構設計明確了系統需求,運用mysql實現了數據庫的創建與優化。數據庫設計是Web 應用系統開發的基礎和骨架,良好的數據庫結構為Web 應用系統的開發奠定堅實的基礎。下一步將利用PHP 語言實現系統的功能實現和數據交互處理,比如通過用戶交互和算法實現課表、考試安排、教學評價信息等。最后利用HTML+CSS+javascript 實現網頁的顯示和瀏覽,完成本系統的開發,并投入實用。高職擴招是順應社會發展的教育策略,是國家的教育大計,此系統將根據高職擴招靈活學制的特點定制開發,并克服了學院現有教學管理系統使用上的不便,服務于學院擴招專業教學管理,使信息化建設和運用水平得到提高。