數據庫設計
數據庫設計
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個聚集索引和多個聚集索引。
最後更新:2017-04-03 05:39:19