學生信息管理數據庫分析
時間:2022-05-04 09:36:31
導語:學生信息管理數據庫分析一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
1需求分析
概念模型,也稱為信息模型,是從用戶的角度出發來對信息建摸;它是設計人員和用戶之間進行交流的一個強有力的工具。由于概念模型是對信息世界建摸,所以概念模型應該能夠方便、準確地表達出信息世界中的事物及其聯系。常用E-R圖來描述現實世界的概念模型。現實世界中的各種事物都不是孤立的,它們相互間存在著千絲萬縷的聯系著,信息管理系統中必須要真實地反映出現實世界中和個實體之間的這些聯系?,F實世界中實體之間的聯系共有三大種類即:一對一、一對多和多對多,在學生信息管理系統中存在的就是這三種基本的聯系:一個系擁有若干名學生,但是一個學生只能屬于一個系,因此系與學生之間的聯系屬于一對多聯系,其中系是一方,而學生是多方。一個系擁有多名教師,但是一個教師只能在一個系里工作,因此系與教師之間的聯系屬于一對多聯系,其中系是一方,而教師則是多方。同時由于不管是學生還是教師都是與系有聯系的,所以系是學生實體和教師實體之間的橋梁。另外學生在學校期間必須要學習課程,且每學習完一門課程之后學生都要參加考試,從而產生成績,因此學生和課程之間也有聯系。由于一個學生可以學習多門課程,另一方面一門課程可以被多個學生所學習,因此學生和課程之間的聯系的類型是多對多聯系。通過對各種學生信息管理系統中涉及到的實體及其聯系的分析,得出如圖1所示的系統整體E-R圖。
2數據庫設計
2.1關系設計
按照需求分析得出的學生信息管理系統的整體E-R模型,現在設計數據庫:數據庫名是studentdb;數據庫服務器是SQLServer2005。由于本系統將采用SQLServer2005這種關系數據庫管理系統來存儲和管理數據的,但是關系數據管理系統,對于這種多對多聯系卻不能直接處理。所以要用一種方法來變換這種多對多聯系,從而使得關系數據庫管理系統能夠間接地處理,達到解決問題的目的。根據多對多分解的原則必須保證分解出來的結果既具有無損性的特點,而且還必須使得分解保持住原來的函數依賴。在本系統中通過引入一個中間關系即成績關系來把學生和課程這兩個實體之間的多對多聯系,轉換為兩個一對多聯系??梢赃@樣理解一個學生學習完多門課程參加考試之后會產生多條成績信息,但是一條成績信息只能對應著一個學生;同理一門課程在給多個學生講授完之后要進行考試也會產生多條成績信息,但是一條成績信息只能對應著一門課程。這樣便通過成績這個關系把學生實體和課程實體之間的多對多聯系分解為兩個一對多,并由成績這個關系把學生和課程這兩個關系聯系在一起且這種分解完全符合關系模式的分解上述兩個分解原則。這樣對應到數據庫中,本系統的主要就主要由學生、系、教師、課程和成績關系組成,但是為了用戶管理的需要還要多增加一個登錄關系,當然登錄關系里的用戶只有兩種類型,不是學生便是教師。所以登錄關系與學生和教師這兩個關系是一一對應的聯系,即一對一聯系。綜上所述本系統里共有6個關系,現僅列出score表的結構,如表1所示。
2.2完整性設計
在分析了以上實體之間聯系的種類之后,還要分析各實體及實體之間的完整性約束。表的完整性約束共分為三種,第一種是實體完整性規則,第二種是參照完整性規則,第三種是用戶定義的完整性規則。在本系統中存在實體之間的這三種完整性,從而保證各個表的完整性。登錄表中可以在用戶名上建立主鍵,保證了該表中沒有重復的元組出現,這樣就可實現實體完整性。學生表中在學號上建立主鍵,保證了該表中沒有重復的元組出現,這樣就可以實現實體完整性。其次,學生表中的系號雖然不是本表的主鍵,但它是系表的主鍵,所以系號可以作為學生表的外鍵,因此學生表中的系號不能隨便取值,只能參照系表中系號的取值,這樣通過系號這個外鍵實現了參照完整性。還有,學生表中的性別字段取值只能是“男”或“女”,這種類型的約束就是所謂的域完整性規則,域完整性約束屬于用戶定義的完整性的一種。教師表中在工號上建立主鍵,保證了該表中沒有重復的元組出現,這樣可以通過工號來實現實體完整性。其次,教師表中的系號雖然不是本表的主鍵,但它卻是系表中主鍵所以系號可以作為教師表的外鍵,因此教師表中的系號不能隨便取值,只能參照系表中系號的取值,這樣通過系號這個外鍵即可實現參照完整性。還有,教師表中的性別字段取值只能是“男”或“女”,這樣可以和學生表類似在性別字段上建立域完整性規則,從而實現用戶定義的完整性。課程表中可以在課程號字段上建立主鍵,保證了該表中沒有重復的元組出現,從而就可通過課程號來實現實體完整性。然而成績表中的學號字段對應著多條元組,因此學號單獨無法作為主鍵;同樣課程號也對應著多條元組,因此當單獨的某個字段已經無保證該表中沒有重復的元組,在這種情況下,必須復合字段作為主鍵,因此可以選擇使用學號和課程號的組合作為主鍵,這樣就可以保證成績表中不會出現重復的元組,從而通過復合主鍵來實現實體完整性。其次,成績表中的學號雖然不能單獨作為本表的主鍵,但它卻是學生表中的主鍵,因此學號可以作為成績表的外鍵,同時成績表中的學號不能隨便取值,只能參照學生表中學號的取值范圍,這樣通過學號這個外鍵可以實現了參照完整性;同理,成績表中的課程號也不能單獨作為本表的主鍵,但它卻是課程表中的主鍵,因此課程號可以作為成績表的外鍵,同時成績表中的課程號不能隨便取值,只能參照課程表中課程號的取值范圍,這樣就可以通過課程號這個外鍵實現參照完整性。系表中可以選擇使用系號作為主鍵,這樣可以保證本表中無重復的元組出現,從而實現了實體完整性。
2.3特殊業務規則設計
當一個學生畢業時系統應能夠刪除這個學生的基本信息及相應的成績信息,這也是所謂的級聯刪除,在SQLServer2005中可以用觸發器來實現這一特殊的業務規則。觸發器顧名思義,當觸發動作成功發生時自動執行。打個比方,觸發動作相當于導火索,只有成功點燃導火索才能使炸藥包爆炸。使用觸發器必須分清楚哪些操作是觸發事件,而哪些操作是觸發器內部自動執行的動作。在學生信息管理數據庫中,如果當刪除學生的基本信息時,要自動刪除其相應的成績信息,那么首先刪除該學生基本信息是一個觸發動作且作用在stu表上;只有當成功刪除該學生的基本信息后即導火索成功點燃之后,才能使觸發器啟動并自動執行其內部動作即刪除其成績信息,觸發器應建立在stu表上,而觸發器內部自動執行的動作應作用在score表??梢钥闯鲇|發器在應用中,一般都會用到兩個特殊的邏輯表即inserted表和deleted表。這兩個表都是只讀的邏輯表,它們動態駐留在內存中,在執行DML操作時這兩個表才存在,且對它們的引用只能在觸發器中實現,而當觸發器工作完成后,這兩個表也隨之被刪除,這兩個表主要保存因用戶操作而被影響到的原數據值或新數據值,在inserted表中存儲新值,而在deleted表中存儲舊值。對于insert操作來說只影響到inserted表;對于delete操作只影響deltede表;而對于update操作來說既影響inserted表也會影響到deleted表,它把新修改的值存入inserted表,而舊值存入deleted表。只有在觸發器中才能捕獲到這兩個邏輯表,在觸發器中通過引用表中的數據,能夠實現級聯刪除;同理,也可以仿照上面所舉的例子來實現級聯修改。
3結語
總之,隨著在校學生人數的增長,學生信息管理系統所處理的數據越來越大,如何有效地管理學生的各種信息,有效提高工作效率,是開發學生信息管理系統中首要考慮的問題。因此應根據實際情況,利用關系理論,設計出合理高效的學生信息管理系統中的數據庫是開發學生信息管理系統的關鍵因素。
作者:楊軍莉工作單位:陜西財經職業技術學院
- 上一篇:青少年防近健康信息管理
- 下一篇:物流配送信息管理模型設計研究