關係型資料庫基本概念
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
,以及關係的屬性
---學分作為新關係的列
基礎教程與實驗指導》
關係型資料庫基本知識點整理
1.碼 能夠唯一標識一組元組的屬性集 2.主鍵 能夠唯一標識一組元組的屬性集 主鍵是從候選鍵中選擇乙個作為主鍵。3.候選碼,能夠唯一標識一組元組的屬性集 候選碼的任一真子集都不能唯一標識一組元組。主屬性 候選碼裡的屬性的並集 非主屬性 除了主屬性的屬性。這一幅圖來自 關係型資料庫的正規化 第一正規化...
關係型資料庫面試知識點彙總
本文目錄結構 資料庫基礎知識 什麼是sql?什麼是資料庫?什麼是dbms?為什麼要使用資料庫?資料庫的分類 主流關係型資料庫簡介 什麼是資料庫的三大正規化?什麼是資料庫的五大約束?主鍵 預設 唯 一 檢查 外來鍵 mysql與許可權相關的表有哪些?user,db,host,表,列 mysql的bin...
基本知識點
1 程序和執行緒的關係 1 在有執行緒的作業系統裡面,程序是分配資源的基本單位,執行緒是排程的基本單位。2 1個程序可以擁有多個執行緒 3 執行緒同時也有一些自己的資源,包括 程式計數器,堆疊等 4 因為執行緒所擁有的資源比較少,因此進行排程的時候所消耗的資源就少。5 執行緒共享程序的 段,程序的一...