1、基本需求
某學校設計學生教學管理系統。
學生實體包括學號、姓名、性別、生日、民族、籍貫、簡歷、登記照,每名學生選擇乙個主修專業,
專業包括專業編號和名稱,乙個專業可以屬於
乙個學院,乙個學院可以有若干個專業。
學院資訊要儲存學院號、學院名、院長。教學管理還要管理課程表和學生成績。
課程表包括課程號、課程名、學分,每門課程由乙個學院開設。學生選修的每門課程獲得乙個成績。
設計該教學管理的er模型,然後轉化為關係模型。
若上面的管理系統還要管理教師教學安排,教師包括編號、姓名、年齡、職稱,乙個教師只能屬於乙個學院,乙個教師可以上若干門課程,一門課程由多名老師來上,每個教師所上的每門課程都有乙個課堂號和課時數。
首先找出實體:1、學生2、專業3、課程4、學院
四個實體就是四張表。
每個實體下邊分別是不同的實體的屬性。如:專業的實體,屬性為專業號,專業,類別
專業實體
學院實體
課程實體
專業號專業
類別學員號
學院院長
課程號課程名
學分學生實體
學號姓名
性別生日
民族籍貫
簡歷登記時間n學生
n主修1專業
n成績選修設定n課程
n開設1學院
1 上圖就是教學管理er模型圖
er模型轉化的關係模型是:
學生(學號,姓名,性別,生日,民族,籍貫,專業號,簡歷)
專業(專業號,專業,專業類別,學員號)
學院(學員號,學院,院長)
課程(課程號,課程名,學分,學院號)
成績(學號,課程號,成績)
題目分析:本題中有學生,專業,學院,課程四個實體。乙個學生主修乙個專業,學生和專業是多對一的關係。乙個專業屬於乙個學院,乙個課程也屬於乙個學院,所以,專業和學院,課程和學院都是多對一的關係。課程和學生是多對多的關係
1對一,只需在其中一張表中新增另乙個表的字段
id即可
1對多的關係,只需要在多的那類新增乙個字段,表示它屬於哪乙個,如:
專業和學生的關係是
1對多,所以在學生表中新增乙個專業的專業號字段,表示所屬的專業
多對多的關係,如:學生和課程是多對多的關係,必須產生乙個新的表來記錄他們之間的關係。如成績表中就有學號和課程號
增加老師後的分析:教師和學院是一對多的關係,所以不需要新增新的表,只需要在教師表中新增乙個學院號的字段。教師和課程是多對多的關係,所以需要增加一張新錶
指定資料庫檔案的名稱,並為設計好的關係模型設計表結構
欄位名型別
寬度小數
主鍵/索引
參照表約束
null值
學院號學院名稱
院長 ii上圖為學院表的設計
1、確保每列的原子性(屬性不可分)
如果每列都是不可再分的最小單元則滿足該正規化
例如:
學號姓名
性別年齡
手機號11
1111
1112344
111111
手機號這列有兩個屬性就不符合規範,應該在建一張關於手機號的表
2、要求每張表只描述一件事情,每條記錄有唯一的標識列
例如:order表
字段例子
訂單標號
001產品編號
002訂購日期
** 可以分成兩張表:order表,和product表
字段例子
訂單編號
字段例子產品編號
3、資料庫表中不包含已在其他表中已包含的非主關鍵字資訊
資料庫設計規範
使用明確 統一的標明和列名,例如 school,schoolcourse,courceid。資料表名使用單數而不是複數,例如 studentcourse,而不是studentcourses。資料表名不要使用空格。資料表名不要使用不必要的字首或者字尾,例如使用school,而不是tblschool,或...
資料庫設計規範
csm簡寫會方便很多 就不要用member id,一致性方便大家理解 system.currenttimemillis 進行儲存text查詢是會產生臨時磁碟檔案,效能差進行擷取儲存型別 占用位元組 範圍tinyint 1 128 127 smallint 2 32768 32767 mediumin...
資料庫設計規範
1.小寫字母 下劃線 2.禁止使用保留關鍵字 3.見名識義 4.臨時表 tmp date 5.備份表 bak date 6.所有儲存相同資料的列名和列型別必須相同 一般這種列為關聯列,若型別不同在查詢時會隱式轉換,效率差 7.庫表字符集統一 8.所有表和字段都要注釋 在建表時用comment從句 9...