(整理)關係型資料庫基本知識點
關係型資料庫基本概念
1.
關係型資料庫簡單的可以理解為二維資料庫,表的格式就如Excel,有行有列。常用的關係資料庫有Oracle,SqlServer,Informix,MySql,SyBase等。(也即是我們平時看到的資料庫,都是關係型資料庫)
2.
所謂關係型資料庫,是指採用了關係模型來組織資料的資料庫。關係模型是在1970年由IBM的研究員E.F.Codd博士首先提出,在之後的幾十年中,關係模型的概念得到了充分的發展並逐漸成為資料庫架構的主流模型。簡單來說,關係模型指的就是二維表格模型,而一個關係型資料庫就是由二維表及其之間的聯絡組成的一個數據組織。
3.
關係型資料庫並不是唯一的高階資料庫模型,也完全不是效能最優的模型,但是關係型資料庫確實是現今使用最廣泛、最容易理解和使用的資料庫模型。大多數的企業級系統資料庫都採用關係型資料庫,關係型資料庫的概念是掌握資料庫開發的基礎,所以本節的問題也成為.NET
4.
關係:可以理解為一張二維表,每個關係都具有一個關係名,就是通常說的表名。
元組:可以理解為二維表中的一行,在資料庫中經常被稱為記錄。
屬性:可以理解為二維表中的一列,在資料庫中經常被稱為欄位。
域:屬性的取值範圍,也就是資料庫中某一列的取值限制。
關鍵字:一組可以唯一標識元組的屬性。資料庫中常稱為主鍵,由一個或多個列組成。
關係模式:指對關係的描述,其格式為:關係名(屬性1,屬性2,…,屬性N)。在資料庫中通常稱為表結構。
5.
關係型資料庫的優點
關係型資料庫相比其他模型的資料庫而言,有著以下優點:
容易理解:二維表結構是非常貼近邏輯世界的一個概念,關係模型相對網狀、層次等其他模型來說更容易理解。
使用方便:通用的SQL語言使得操作關係型資料庫非常方便,程式設計師甚至於資料管理員可以方便地在邏輯層面操作資料庫,而完全不必理解其底層實現。
易於維護:豐富的完整性(實體完整性、參照完整性和使用者定義的完整性)大大降低了資料冗餘和資料不一致的概率。
6.
標準資料查詢語言SQL就是一種基於關係資料庫的語言,
這種語言執行對關係資料庫中資料的檢索和操作。
7.
關係模組中常用的操作包括:
資料查詢
選擇 投影 連線 並 交 差 除 資料操作 增加 刪除 修改 查詢
什麼是主鍵、外來鍵
關係型資料庫中的一條記錄中有若干個屬性若其中某一個屬性組(注意是組)能唯一標識一條記錄
比如
學生表(學號姓名性別班級) 其中每個學生的學號是唯一的學號就是一個主鍵
課程表(課程編號,課程名,學分) 其中課程編號是唯一的,課程編號就是一個主鍵
成績表(學號,課程號,成績) 成績表中單一一個屬性無法唯一標識一條記錄學號和課程號的組合才可以唯一標識一條記錄所以學號和課程號的屬性組是一個主鍵成績表中的學號不是成績表的主鍵但它和學生表中的學號相對應並且學生表中的學號是學生表的主鍵則稱成績表中的學號是學生表的外來鍵同理成績表中的課程號是課程表的外來鍵定義
主鍵和外來鍵主要是為了維護關係資料庫的完整性總結一下
1.主鍵是能確定一條記錄的唯一標識
比如一條記錄包括身份正號姓名年齡。身份證號是唯一能確定你這個人的其他都可能有重複所以身份證號是主鍵。
2.外來鍵用於與另一張表的關聯。是能確定另一張表記錄的欄位用於保持資料的一致性。
比如A表中的一個欄位是B表的主鍵那他就可以是A表的外來鍵。
E-R模型
一、那麼什麼是E-R模型?
E-R模型即實體-聯絡模型,E-R模型的提出基於這樣一種認識,資料庫總是儲存現實世界中有意義的資料,而現實世界是由一組實體和實體的聯絡組,E-R模型可以成功描述資料庫所儲存的資料。
二、為什麼要設計E-R模型?
設計E-R模型能夠更有效和更好的模擬現實世界。
三、E-R模型的基本要素
1) 實體 :實體是E-R模型的基本物件,是現實世界中各種事物的抽象,凡是可以相互區別,並可以被識別的事、物概念等均可認為是實體。在一個單位中,具有共性的一類實體可以劃分為一個實體集,例如,學生李明,黃穎等都是實體,為了便於描述,可以定義學生這樣的一個實體集,所有學生都是這個集合的成員。
2)屬性:每個實體都具有各種特徵,稱其為實體的屬性,如學生有學號,姓名,年齡等屬性。實體的屬性值是資料庫儲存的主要資料。能唯一標識實體的屬性或屬性組稱為實體鍵,如一個實體有多個鍵存在。則可從中選取一個作為主鍵。
3)聯絡:實體間會存在各種關係,如人與人之間可能存在領導與僱員關係等,實體間的關係被抽象為聯絡。
以下例子解釋的很好 :引自《Oracle 11g基礎教程與實驗指導》
聯絡可分為以下 3 種類型:
(1) 一對一聯絡(1 ∶1)
對於實體集A和實體集B來說,如果對於A中的每一個實體a,B中至多有一個實體b與之有聯絡,而反過來也是如此,則稱實體集A與實體集B存在一對一聯絡。
例如,一個部門有一個經理,而每個經理只在一個部門任職,則部門與經理的聯絡是一對一的。
(2) 一對多聯絡(1 ∶N)
對於實體集A和實體集B來說,如果對於A中的每一個實體a,B中有N個實體b與之有聯絡,而實體B中每一個實體b,A中至多有一個與之有聯絡,則稱體集A與實體集B存在一對多聯絡。
例如,某校一個班級可以有多個學生,但一個學生只能有一個班級
(3) 多對多聯絡(M ∶N)
對於實體集A和實體集B來說,如果對於A中的每一個實體a,B中有N個實體b與之有聯絡,而實體B中每一個實體b,A中有M個與之有聯絡,則稱實體集A與實體集B存在多對多聯絡。
實體符號用矩形表示,並標以實體名稱,屬性用橢圓表示,並標以屬性名稱,聯絡用菱形表示,並標以聯絡名稱
(1) 一對一聯絡(1 ∶1)E-R圖(畫圖畫的請見諒、)
在關係模型中一張二維表格(行,列)對應一個表格,二維表中的每行代表一個實體,每個實體的列代表該實體屬性。E-R圖最終需要轉換為關係模型才有意義。
四、將E-R模型轉化為關係模型
1、實體轉化為關係
實體集轉化為關係非常簡單,只需將實體的屬性作為關係的列即可(實體的所有屬性);
2、聯絡轉化為關係
1)一對一聯絡需要將其中一個實體的主鍵作為另一個實體的屬性。反映到對映中,將一個關係的主鍵作為另一個關係的普通列聯絡本身的屬性也應當以列的形式植入。對於一對一關係可將主從關係顛倒,也不會導致資訊丟失
可將角色編號作為使用者關係中的一個普通列,反過來也可以!
2)一對多聯絡,需要將一的一方作為主表,多的一方作為從表。聯絡的所有屬性為從表的列,這樣才不會導致資訊丟失。
如學生與班級:學生資訊為從表,班級資訊為主表
3)一對多。無論聯絡加入到哪一方都將造成資訊丟失。
如學生與選課。可以將學號,課程Id,以及關係的屬性---學分作為新關係的列
《參考文獻》:郝安林,康會光,《Oracle 11g基礎教程與實驗指導》