導航:首頁 > 數據處理 > 如何設計數據關系

如何設計數據關系

發布時間:2023-01-31 04:14:33

資料庫關系怎麼畫出來

方法如下:

1、打開Microsoft Office Visio 2007,左側的模板類別中選擇「軟體和資料庫」,雙擊右側的「資料庫模型圖」;

⑵ 關系資料庫設計理論

數據依賴是關系內部屬性之間相關聯系的表達,是語義的體現,是構成數據的約束,大多數數據依賴是函數依賴,它是關系中「鍵」概念的范化。
使用數據依賴這一概念來定義關系模式的規范形式,即規范化理論。

函數依賴FD
A1,A2,……,An——>B1,B2,……,Bm
(若兩個元組A1到An上相同則B1到Bm也相同,A1到An函數決定B1到Bm)

從已知FD推斷其它FD
FD的集合T,S
T與S等價:關系實例集合滿足S與其滿足T的情況完全一樣
(S是從T中推斷而來,T也是從S中推斷而來)
S從T中推斷而來:滿足T的關系實例也滿足S(S蘊涵於T)

分解/結合規則:

平凡函數依賴
一個約束對所有關系實例都成立,且與其它約束無關
平凡FD的右邊是左邊的子集
平凡依賴規則:

(註:
非平凡函數依賴:僅當其右邊屬性集中至少有一個屬性不屬於左邊的集合。例如: title year →year length
完全非平凡函數依賴:僅當其右邊集合中的屬性均不在左邊集合中。例如: title year →length)

屬性的閉包
S下{A1,A2,……An}的閉包{A1,……An}上標+
就是A中可以從S推斷出來的右邊變成一個集合
從一個給定集合A出發,不斷擴展這個集合,對於S中的FD分解使右邊只有一個屬性,然後對於FD,只要左邊都在集合中就把右邊也加到集合中。p42

傳遞規則

函數依賴的閉包集合
求函數依賴集F的閉包F+:求所有屬性子集的閉包(不考慮空集),然後利用每個閉包來寫FD(A->空集也要寫)

S的基本集:任何和S等價的FD集合

最小化基本集:右邊均是單一屬性;刪除任何一個FD後不再是基本集;
對於任何一個FD,若刪除其左邊一個或多個屬性,不再是基本集

投影函數依賴
R投影到R1
函數依賴集S的投影為滿足以下條件的FD的集合:1.從S推斷而來2.只包含R1中的屬性
對R1的所有子集求閉包,得到FD的基本集,簡化為最小基本集

「求屬性子集閉包」的幾個主要應用
1.求所有候選鍵
2.求所有非平凡FD
3.求所有違反BCNF的非平凡FD(投影函數依賴應用1)
4.求非平凡FD的最小基本集(投影函數依賴應用2)

簡化規則:
1.不必考慮空集(適用於1-4)
2.不必考慮不能推出非平凡函數依賴的屬性子集X(適用於1-4)
2.1屬性子集X的任何一個子集都不是FD的左部,無法推出非平凡FD,無需求該屬性子集X的閉包。如例1.
2.2不必考慮屬性全集U的閉包。
2.3 屬性子集X+的閉包依然是X+本身,無法推出非平凡FD,不需要再求X+的閉包
3.如果已知屬性子集X, X+是屬性全集,那麼就無需考慮任何X超集的閉包。(注意:!!!!!!不適用於2!!!!!!)

異常:冗餘;更新異常;刪除異常

分解關系
將一個關系用多個不存在異常的關系替換

Boyce-Codd範式BCNF
每個非平凡FD的左邊都必須是超鍵
任何一個二元關系屬於BCNF
(BCNF範式在3NF的基礎上,消除主屬性對鍵的部分函數依賴與傳遞函數依賴)

分解為BCNF
輸入:關系R0其上的函數依賴集S0
輸出:由R0分解出的關系集合,每個關系都屬於BCNF
方法:R=R0 S=S0
1.檢驗R是否屬於BCNF若是則返回{R}
2.有BCNF違例X->Y,計算X的閉包,令R1為X的閉包,R2為X與不在X的閉包中的屬性
3.計算R1,R2的投影函數依賴S1,S2
4.遞歸檢驗R1,R2

分解的優勢
1.消除異常
2.信息的可恢復
3.依賴的保持
BCNF可保持1,2
3NF可保持2,3

無損連接的分解
子關系經連接(這里指自然連接)運算可恢復原關系
保持依賴的分解
子關系的函數依賴集可蘊涵原函數依賴集

從分解中恢復信息
無損連接:可通過連接分解的各個關系重構原關系
若Y->Z在關系R上成立,且R的屬性集為X∪Y∪Z,則R=π{下標X∪Y}(R)⋈π{下標Y∪Z}(R)
chase演算法:檢驗一個分解是否含有無損連接,即判斷是否可以根據F中的FD來證明所有屬於π{下標s1}(R)⋈π{下標s2}(R)⋈……⋈π{下標sk}(R)的元組t也屬於R

依賴的保持
BCNF無法保持 p57例3.25

第三範式3NF
擁有無損連接和依賴保持性質
條件:對於每個非平凡FD,或者其左邊是超鍵,或者其右邊僅由主屬性構成

⑶ 請問資料庫在創建表的時候如何設計表關系,一對一,一對多,多對多 請高手舉例說明。謝謝!!!

多對多關系至少需要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.您需要什麼樣的數據
設計應用程序時,關鍵要了解設計的最終結果,以便確保您准備好所有必需的數據並知道其來源。例如,報表的外觀、每個數據的來源以及所需的所有數據是否都存在。對項目損失最大的莫過於在項目後期發現重要報表缺少數據。
3.明確所需數據的類型和來源
知道需要什麼樣的數據後,就必須確定數據的來源。數據是否從其他數據源中導入?數據是否需要清理或驗證?用戶是否需要輸入數據?明確所需數據的類型和來源是資料庫設計的第一步。
4.您打算如何處理這些數據?
用戶是否需要編輯這些數據?如果需要,應如何顯示數據以便於用戶理解和編輯?有沒有驗證規則和相關的查找表?要求對編輯和刪除保留備份的數據輸入有沒有相關聯的審核問題?需要為用戶顯示哪些摘要信息?是否需要生成導出文件?了解這些信息後,就可以想像欄位之間是如何相互關聯的了。
5數據之間如何相互關聯?
將數據分組放入相關欄位(例如與客戶相關的信息、與發票相關的信息等),每個欄位組都代表要建立的表。然後考慮如何將這些表相互關聯。例如,哪些表具有一對多關系(例如,一個客戶可能持有多張發票)?哪些表具有一對一關系(這種情況下,通常會考慮將其組合到一個表中)?
6.隨著時間的推移數據會發生什麼樣的變化?
設計表之後,常常會由於沒有考慮時間的影響而導致以後出現嚴重問題。許多表設計在當時使用時效果非常好,但是,常常會因為用戶修改數據、添加數據以及隨時間的推移而崩潰。開發人員經常會發現需要重新設計表的結構來適應這些變化。表的結構發生變化時,所有相關的內容(查詢、窗體、報表、代碼等)也必須隨之更新。理解並預測數據會隨時間推移發生哪些變化,可以實現更好的設計,減少問題的發生。
7.學習如何使用查詢
了解如何分析和管理數據同樣很重要。您應該深刻理解查詢的工作原理,理解如何使用查詢在多個表之間鏈接數據,如何使用查詢對數據進行分組和匯總,以及如何在不需要以規范化格式顯示數據時使用交叉表查詢。
好的數據設計的最終目標就是要平衡兩個需要:既要隨著時間的推移有效地存儲數據,又要輕松地檢索和分析數據。理解查詢的功能對正確設計表很有幫助。

⑸ 怎麼建立這個資料庫關系

1.選擇表--->某一列--->修改2.右鍵單擊--- >關系

3.添加--->表和列規范-->選擇表和列

4.新建資料庫關系圖

5.只需要按住主鍵 並拖動 到它外鍵上,就會看到一個指定關系的對話框

⑹ 資料庫關系模型設計在哪找

資料庫關系模型設計在資料庫模型裡面找。資料庫模型描述了在資料庫中結構化和操縱數據的方法,模型的結構部分規定了數據如何被描述(例如樹、表等)。模型的操縱部分規定了數據的添加、刪除、顯示、維護、列印、查找、選擇、排序和更新等操作。

⑺ 用PD設計資料庫的時候,怎麼畫多對多關系

1.在access所有對象中,選中一個想要建立關系的數據表,右鍵單擊,在右鍵菜單中,選擇設計視圖。 2.接著在菜單欄點擊 資料庫工具。 3.在資料庫工具中,點擊關系。 4.在關系面板中,在空白的位置,右鍵單擊,選擇顯示表。 5.在現實表的對話框中,。

⑻ 根據這樣的數據關系如何設計數據表

1、一對一可以兩個實體設計在一個資料庫中l例如設計一個夫妻表,裡面放丈夫和妻子
2、一對多可以建兩張表,將一這一方的主鍵作為多那一方的外鍵,例如一個學生表可以加一個欄位指向班級(班級與學生一對多的關系)
3、多對多可以多加一張中間表,將另外兩個表的主鍵放到這個表中(如教師和學生就是多對多的關系)

⑼ sql server 2000數據關系圖如何設計

1.在伺服器資源管理器中右擊「資料庫關系圖」文件夾或該文件夾中的任何關系圖。

2.在快捷菜單上選擇「添加新關系圖」。

即會出現「添加表」對話框。

3.在「表」列表中選擇所需的表,再單擊「添加」。

這些表以圖形方式顯示在新的資料庫關系圖中。

可以繼續添加或刪除表、修改現有表或更改表關系,直到新的資料庫關系圖完成為止。

閱讀全文

與如何設計數據關系相關的資料

熱點內容
如何代理小黃車 瀏覽:127
冷門產品視頻怎麼拍攝 瀏覽:117
技術學院軟體哪個好 瀏覽:246
離婚調解包括什麼程序 瀏覽:344
目標點是輸哪個數據 瀏覽:747
小程序訪問許可權在哪裡 瀏覽:823
如何微信小游戲遷移到微信小程序 瀏覽:648
消毒隔離技術包括哪些 瀏覽:931
交易貓未發貨怎麼收貨 瀏覽:115
恆昌惠誠信息咨詢怎麼樣 瀏覽:435
期權交易中如何修煉心性 瀏覽:554
信管家是哪個交易所 瀏覽:925
電腦如何看內存條信息 瀏覽:259
如何刪去手機中的系統數據 瀏覽:753
程序編碼憑證怎麼做 瀏覽:483
宋朝怎麼對外交易 瀏覽:499
項目代理合同是什麼 瀏覽:834
東莞貸款代理公司怎麼這么多 瀏覽:353
硅烷產品的主要優點都有哪些 瀏覽:336
紐威機床如何調程序 瀏覽:173