數據庫設計
ER模型
Entity-Relationship,實體-關系模型。該模型的圖形表示ER畫畫。
1.表示實體矩形。
2.用橢圓表示實體屬性。
3.用零星表示是體檢關系。
例一:有一個簡單的數據庫系統。實體有班級、學生、課程。
一個班有若干個學生,一個學生僅僅能屬于一個班。
一個學生能夠選修多門課,一門課有若干學生選修。
將ER圖轉換為關系數據模型
1.實體的轉換
一個實體轉化為一個關系模式。實體的屬性就是關系模式的屬性,主鍵類同。
2.聯系的轉換
(1)兩實體間1:1的聯系能夠轉換為一個獨立的關系模式,也能夠與隨意一端的關系模式合并。
(2)兩實體間1:N的聯系能夠轉換為一個獨立的關系模式。也能夠與N端相應的關系模式合并。
(3)兩實體間M:N的聯系。必須為聯系產生一個新的關系模式。
該模式中至少包括兩實體的主鍵。
若聯系有屬性,也要增加該新的關系模式中。
關系代數
傳統的集合運算:并、交、補、差、笛卡爾積。
專門的關系運算:投影(垂直切割)、選擇(水平切割)、連接(關系的結合)、除法(笛卡爾積的逆運算)。
笛卡爾積:設元素R和S的屬性個數分別為r、s。則R*S={<A,B>|A屬于R,B屬于S}。
左右連接、內連接
左外連接是以左邊的表為基準。通俗的講。先將左邊的表所有顯示出來,然后把右邊表中符合條件的數據項拼接上去。
右外連接以右邊表為基準。
內連接就是僅僅顯示匹配得上的數據項。
演示樣例:
[TEST1@orcl#16-12月-11]?SQL>select?*?from?t1;
????????ID?NAME
----------?--------------------
?????????1?aaa
?????????2?bbb
[TEST1@orcl#16-12月-11]?SQL>select?*?from?t2;
????????ID????????AGE
----------?----------
?????????1?????????20
?????????3?????????30
左外連接:
[TEST1@orcl#16-12月-11]?SQL>select?*?from?t1?left?join?t2?on?t1.id=t2.id;
????????ID?NAME?????????????????????????ID????????AGE
----------?--------------------?----------?----------
?????????1?aaa???????????????????????????1?????????20
?????????2?bbb
右外連接:
[TEST1@orcl#16-12月-11]?SQL>select?*?from?t1?right?join?t2?on?t1.id=t2.id;
????????ID?NAME?????????????????????????ID????????AGE
----------?--------------------?----------?----------
?????????1?aaa???????????????????????????1?????????20
?????????????????????????????????????????3?????????30
內連接:
[TEST1@orcl#16-12月-11]?SQL>select?*?from?t1?inner?join?t2?on?t1.id=t2.id;
????????ID?NAME?????????????????????????ID????????AGE
----------?--------------------?----------?----------
?????????1?aaa???????????????????????????1?????????20
關系的規范化
函數依賴。X、Y為關系R中的兩個屬性。若Y可全然由X唯一確定。則稱Y依賴于X。記作X->Y.
索引類型
唯一索引:索引了不能有兩行記錄行同。
非唯一索引:與上述概念相對。
單列索引:創建基于一個單獨的索引。
綜合指數:創建基于多列索引。
聚集索引:索引表的物理順序。例如,中國的字典按字母順序排列的字母順序聚集索引。
非聚集索引:身體不正確排序表索引。中國自由基的字典。例如,該指數。數據庫可以有1聚集索引和多個聚集索引。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
