資料庫設計課程表
⑴ 請問資料庫在創建表的時候如何設計表關系,一對一,一對多,多對多 請高手舉例說明。謝謝!!!
多對多關系至少需要3個表,我們把一個表叫做主表,一個叫做關系表,另外一個叫做字典表或者副表(字典表是紀錄比較少,而且基本穩定的,例如:版塊名稱;副表是內容比較多,內容變化的,例如)。
按照資料庫的增刪查改操作,多對多關系的查找都可以用inner join或者
select * from 主表 where id in (select 主表id from 關系表)
1,角色任命型
特點:關系表兩外鍵組合無重復紀錄,關系表一般不需要時間欄位和主鍵,有一個表是字典類型的表。
界面特點:顯示主表,用checkbox或多選select設置多選關系。
例如:任命版主(用戶表-關系表-版塊名稱表),角色許可權控制等,用戶是5個版塊版主,只要關系表5行紀錄就可以確立,關系表的兩個外鍵具有聯合主鍵性質。
增加關系:如果沒有組合紀錄,insert之。
刪除關系:如果有組合紀錄,刪除之。
2,集合分組型
特點:同角色任命型類似,關系表兩外鍵組合無重復紀錄,關系表一般不需要時間欄位和主鍵。區別是主副表都不是字典表,可能都很大不固定。
界面特點:顯示主表,用搜索代替簡單的checkbox或多選select,或者一條一條的添加。
例如:歌曲專集(專集表-關系表-歌曲表)。手機分組(分組表-關系表-手機表)。用戶圈子(圈子表-關系表-用戶表)。文章標簽(文章表-關系表-標簽表)
增加關系:同版主任命型。
刪除關系:同版主任命型。
3,明細帳型
特點:關系表可以有重復紀錄,關系表一般有時間欄位,有主鍵,可能還有文字型的欄位用來說明每次發生關系的原因(消費)。
界面特點:顯示關系表,用radio或下拉設置單選關系。
例如:現金消費明細帳或訂單(用戶表-訂單表-消費原因表),用戶可能多次在同一事情上重復消費。積分變化紀錄也屬於這類。
增加關系:不管有沒有組合紀錄,insert之,紀錄時間。
刪除關系:根據關系表PK刪除。
4,評論回復型
特點:同明細帳型關系表一般有時間欄位,有主鍵,區別是重點在文字型的欄位用來說明每次發生關系的內容(評論回復)。
界面特點:回復文本框。
例如:論壇回復(用戶表-回復表-帖子表),用戶可能多次在不同帖子上評論回復費。
增加關系:不管有沒有組合紀錄,insert之,紀錄時間和文字。
刪除關系:根據關系表(回復表)PK刪除。
5,站內簡訊型
特點:主副表是同一個,關系表一般有時間欄位,有主鍵,重點在關系表文字型的欄位用來說明每次發生關系的內容(消息)或者其他標記位來表示文字已讀狀態時間等。
界面特點:回復文本框。
例如:站內簡訊(用戶表-簡訊表-用戶表),用戶可能給用戶群發或者單發,有標記位來表示文字已讀狀態時間等。
增加關系:不管有沒有組合紀錄,insert之,紀錄時間和文字。
刪除關系:根據關系表(回復表)PK刪除。
6,用戶好友型
特點:主副表是同一個,同集合分組型,關系表兩外鍵組合無重復紀錄,關系表一般不需要時間欄位和主鍵。
界面特點:同集合分組型,顯示主表,用搜索代替簡單的checkbox或多選select,或者一條一條的添加。
例如:下載站點的文件,(文件表-關系表-文件表)可以被軟體工具打開,軟體工具本身也是一種文件,可以被下載。用戶的好友,也是用戶(用戶表-好友關系表-用戶表)
增加關系:同版主任命型。
刪除關系:同版主任命型
⑵ 在資料庫中存儲學生一周的課程表,資料庫如何設計
將表設計成(班級,日期,課程1,課程2,...課程8)比較好點.
⑶ 急求一份資料庫課程設計
合肥經濟技術職業學院
電子信息系
課程設計報告
課程:資料庫課程設計
題目:學生管理系統
班級:09計 用
成員:
指導老師:
日期:
目錄
第一章 前言 3
1.1 課題簡介 3
1.2 設計目的 3
1.3 需求分析 4
第二章 資料庫實例的分析及應用 4
2.1 題目和E-R圖 4
2.2 資料庫的實現 5
2.3 資料庫結構屬性 8
2.3.1主鍵(主鍵約束PRIMARYKEY;索引設置) 8
2.3.2資料庫的默認值和規則 13
2.3.3 視圖和存儲過程 15
2.3.4 觸發器 17
第三章 總結報告 19
參考文獻 19
第一章 前言
1.1 課題簡介
資料庫技術是計算機科學技術發展最快,應用最為廣泛的技術之一。其在計算機設計,人工智慧,電子商務,企業管理,科學計算等諸多領域均得到了廣泛的應用,已經成為計算機信息系統和應用的核心技術和重要基礎。
本文主要介紹學生成績管理系統的資料庫設計,從需求分析到資料庫的運行與維護都進行詳細的敘述。本系統是利用SQL開發出來的。通過SQL建立學生成績管理系統,大大方便和簡化了數據的查詢和處理,管理員可以通過SQL語言對表內數據進行添加,刪除,修改,查詢等操作,還可以建立多用戶,對其使用許可權進行分配和回收。隨著數據處理的不斷進步和計算機網路的迅速發展,使資料庫應用系統不僅在功能而且在結構上都有了深刻的變化,而且運用在生活的每一個方面。通過學習關系代數,關系演算,函數依賴,關系模式分解,關系模式的規范化讓我們建立了扎實的關系資料庫理論基礎。而在掌握基本理論的基礎上掌握關系資料庫的設計方法,掌握現代信息系統的開發方法也顯得尤為必要。目前在關系資料庫中用得最多的SQL資料庫,開發資料庫的語言工具多數用C++.。所以對於計算機專業的學生來說掌握資料庫應用的基本技術,熟悉編程語言與SQL資料庫的結合運用是我們計算機專業學生之必備本領。本次課程設計是以學生信息管理系統為模擬模型,運用C++編程語言結合SQL資料庫所開發系統。
1.2 設計目的
隨著學生數量的日益增多,學校對學生的管理要求也越來越高,為了使信息技術與學生信息更好的結合在一起以及使學生成績的管理更加系統化,數字化,因此我們設計了該學生信息管理系統。運用基於E-R模型的資料庫設計方法和關系規范化理論做指導完成從系統的分析到設計直至系統的最終實現,開發學生成績管理系統,完成學生成績管理系統的全部功能。首先做好需求分析,並完成數據流圖,其次做概念分析,利用實體聯系的方法將需求分析的用戶需求抽象為信息結構,得到E-R圖,然後就是邏輯結構設計,將E-R圖轉換為計算機系統所支持的邏輯模型。最後利用SQL完成具體的實例。
1.3 需求分析
1、問題的提出:為了高效率的完成學生的管理,決定開發學生管理系統。
2、需完成的功能:
(1)能錄入、修改、查詢、輸出學生的檔案信息,這些信息包括學生的成績、課程、個人信息等。
(2)觸發器,索引,約束,規則,默認值,,視圖,存儲過程的建立及使用。
第二章 資料庫實例的分析及應用
2.1 題目和E-R圖
隨著學生數量的日益增多,學校對學生的管理要求也越來越高,為了使信息技術與學生信息更好的結合在一起以及使學生成績的管理更加系統化,數字化,因此我們設計了該學生信息管理系統。以下是次學生信息管理系統的E-R圖,進一步詳細的說明資料庫的結構以及用途。實體和屬性的定義:
學生表(學生學號,姓名,班級編號)
班級表(班級編號,班級名稱,系部編號)
系部表(系部編號,系部名)
教師表(教師名,課程編號,系部編號)
課程表(課程編號,課程名,學分,教師,系部號)
下面是E-R圖,用來進一步說明資料庫的作用和用途:
2.2 資料庫的實現
運用SQL Server 2000數據設計表格的物理結構如下:
班級表:
學生表:
系部表:
課程表:
教師表:
各表關系圖:
設計表格的具體填入數據是:
班級表:
學生表:
教師表:
系部表:
課程表:
2.3 資料庫結構屬性
2.3.1主鍵(主鍵約束PRIMARYKEY;索引設置)
1.索引與書目錄相似,可以快速找到指定內容。索引通過記錄表中的關鍵值來指向表中的記錄,這樣資料庫就不用掃描而能定位到相關的記錄。以下是對各表進行索引的實現。
學生表的設置如圖:
班級表的設計如下:
教師表的設計如下:
課程表的設計如下:
系部表的設置如下:
2.約束定義了關於允許什麼數據進入資料庫的規則,是分配給表或表中某列的一個屬性。使用約束的目的在於防止列中出現非法的數據,可以自動維護資料庫的數據完整性。下面是用企業管理器對class表實現的主鍵約束:
2.3.2資料庫的默認值和規則
1.使用默認可以實現當用戶在向數據表中插入新紀錄時,如果沒有給出某列的輸入值,則由SQL Server自動為該列輸入默認值。下面是對class表進行實現默認的功能:
實現默認值:
2.規則也是實現數據完整性的方法之一,作用與CHECK約束類似,在向表的某列插入或更新數據時,用它來限制輸入值的取值范圍。下面我們運用對Course表進行規則的實現:
2.3.3 視圖和存儲過程
1.視圖的作用相當於一個虛擬表,是用戶查看資料庫表中數據的一種方式使用戶通過他能夠以需要的方式瀏覽表中的部分或全部數據,而數據的物理存放位置仍然在資料庫的表中。我們通過在企業管理器中創建視圖管理視圖應用視圖,更加形象具體的說明了視圖的作用。
添加表格到視圖:
添加數據並運行:
運行結果,具體視圖呈現:
2.存儲過程是一組編譯在單個執行計劃中的Transact-SQL語句,它將一些固定的操作集中起來交給SQL-Server資料庫伺服器完成,以實現某個任務。首先我們在查詢管理器中創建存儲過程:
並且執行存儲過程:
在企業管理器中也可以體現出存儲過程:
2.3.4 觸發器
觸發器的作用是強制執行業務規則。SQL Server主要提供了兩種機制來強制業務規則和數據完整性:約束和觸發器。觸發器在指定的表中數據發生變化時被調用以響應INSERT、UPDATE或DELETE事件。觸發器可以查詢其他表,並可以包含復雜的語句。SQL Server將觸發器和觸發它的語句作為可在觸發器內回滾的單個事物對待,如果檢測到嚴重錯誤,則整個事物即自動回滾。首先我們在查詢管理器中新建觸發器:
新建觸發器:
管理觸發器:
第三章 總結報告
這次的課程設計真的做起來困難重重,深刻體會到做一個軟體,裡面需要的很多知識我們沒有接觸過,去圖書館找書的時候發現,我們學的僅僅是皮毛,還有很多東西需要我們去發掘,就算是借一本書看完它,我們還是會發現還有很多知識沒有吃透,這需要我們不斷的實踐,不斷地自學習,不斷地發現問題去思考問題。
經過不斷地測試,不斷地改進,其中還是發現了不少問題,第一次做這些工作,沒有任何經驗,甚至無從下手,還是很謝謝老師和同學的幫忙,從中也學到了一些代碼的寫法,為什麼要這樣寫,通過和同學的討論,找到一些書本上沒有的方法,如何數據綁定等等,怎樣從資料庫中將數據提取出來放到一個文本框或者標簽內,這些東西是組成界面的東西,雖然小,但是可以體現整個軟體的水平,其實並不需要建多少資料庫的表,寫多少復雜的存儲過程,是不是用了資料庫函數,觸發器等等,但是至少要弄明白這些東西如果操作,清晰思路才能將功能分清晰。
經過一段時間的學習與實踐,學生信息管理系統基本上開發好了。該系統具備了:添加、修改、刪除、瀏覽、查詢、輸出日程信息,實現了根據用戶需求查看日程等功能。作為一個個人日程管理系統,本系統所提供的功能的確太少了一些,僅僅只實現了一些基本的功能,有很多地方還有待擴展和改良。
人如果沒有自信,沒有目標,沒有信心就不可能把事情做好,當其他人都在迷茫的時候,自己一定要堅信目標,大學畢業出去即是面臨找工作,從學習這個專業,到以後做這方面的工作都需要不斷地去學習去實踐,這次實踐可以給我們敲一個警鍾,我們面臨畢業,面臨擇業,需要這些實踐經驗,在困難面前要勇於嘗試,這是這次課程設計給我的最大感想。在此特別感謝老師的辛苦指導和教育!
參考文獻
黃維通編《SQL Server2000 簡明教程》
徐人鳳 曾建華編《SQL Server2000資料庫及應用》