SQL Server 2008 複習(一)
匯入 有關資料庫系統的基本概念
1.資訊與資料:
資料(Data)是描述事物的符號記錄,資料的表現形式,可以是文字、圖表、圖形、影象、聲音、語言、視訊等。
資訊(Information)是具有特定意義的資料。
2.“資料”與“資訊”、“知識”和“智慧”等概念之間存在一定的區別與聯絡。
3 .資料儲存容量單位
4.資料規模與利用率之間的矛盾日益凸顯。
- 一方面,資料規模的“存量”和“增量”在快速增長。
- 另一方面,缺乏對 “大資料”的開發利用能力。
5.資料模型, 資料的異構性問題
(1)專用格式
與特定應用程式 (及開發語言)相關
docx, pptx,class 等
(2)通用格式
與特定應用程式 (及開發語言)無關的
6.資料分類:結構化資料、非結構化資料與半結構化資料
(1)結構化資料:一般儲存在Oracle或SQL Server等關係型資料庫中
(2)非結構化資料
(3)半結構化資料:適合儲存這類資料的資料庫被稱作“NoSQL”資料庫
7.NoSQL資料庫
“NoSQL”資料庫被稱作下一代的資料庫,具有非關係型,分散式,輕量級,支援水平擴充套件且一般不保證遵循ACID原則的資料儲存系統。
8.資料加工程度
9.資訊科技
10.資訊系統
第1章 資料庫系統概論
1.資料庫系統的基本概念
1.1.資訊與資料庫
- **資料(**Data)是描述事物的符號記錄
- 資訊(Information)是具有特定意義的資料。
- 資料庫
資料庫(Database,DB)是長期儲存在計算機內、有組織、可共享的大量資料的集合。
資料庫中的資料需要建立資料模型來描述,如網路、層次、關係模型。在資料庫中的資料具有冗餘度小、獨立性高和易擴充套件性的特點。
1.2.資料庫管理系統
-
資料庫管理系統(Database Management System,DBMS)位於使用者和作業系統之間,是一種操縱和管理資料庫的大型軟體,用於建立、使用和維護資料庫。像Oracle、SQL Server 和DB2都是常用的資料庫管理系統軟體。
-
DBMS提供了資料定義語言(DDL)、資料操作語言(DML)和應用程式。資料庫管理系統是由多種不同的程式模組組成,基本資料庫管理系統的系統架構包括4部分。(DCL資料控制語言)
- 儲存管理(Storage Manager)。資料庫管理系統通常會自行配置磁碟空間,將資料存入儲存裝置的資料庫。
- 查詢處理(Query Processor)。負責處理使用者下達的查詢語言命令語句,可以再細分成多個模組負責檢查語法、優化查詢命令的處理程式。
- 事務管理(Transaction Manager)。負責處理資料庫的事務,保障資料庫商業事務的操作需要,及併發控制管理(Concurrency- Control Manager)資源鎖定等。
- 恢復管理(Recovery Manager)。恢復管理主要是日誌管理(Log Manager),負責記錄資料庫的所有操作,可以恢復資料庫系統儲存的資料到指定的時間點。
1.3.資料庫系統
使用者(Users)。使用者執行DDL語言定義資料庫架構,使用DML語言新增、刪除、更新和查詢資料庫的資料,通過作業系統訪問資料庫的資料。
資料(Data)。資料庫系統中的資料種類包括永久性資料、索引資料、資料字典和事務日誌等。
軟體(Software)。指在資料庫環境中使用的軟體,包括資料庫管理系統(DBMS)、應用程式和開發工具等。
硬體(Hardware)。安裝資料庫相關軟體的硬體裝置,包含主機(CPU、記憶體和網絡卡等)、磁碟陣列、光碟機和備份裝置等。
1.4資料庫系統的體系結構:
資料庫系統的體系結構主要包括如下幾種結構:集中式、客戶-伺服器式(Client/Server,C/S)、瀏覽器-伺服器式(Browser/Server,B/S)和分散式
2.關係型資料庫理論
2.1. 概念模型及其表示方法
(1)實體的概念
- 實體(Entity)。客觀存在並可以相互區分的事物叫實體。例如,在學校裡,一名學生、一名教師、一門課程等都稱為實體。
- 屬性(Attribute)。屬性是實體所具有的某些特性,通過屬性對實體進行描述。實體是由屬性組成的。
- 主鍵(Primary Key)。一個實體中有一個屬性或者多個屬性構成的子集能夠唯一標識整個屬性集合,則稱該屬性子集為屬性集合的主鍵。
- 實體型(Entity Type)。用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型。例如,學生(學號,姓名,性別,出生日期,班級,入學成績)就是一個實體型。
- 實體集(Entity Set)。同型實體的集合稱為實體集。例如,全體學生就是一個實體集。
- 聯絡(Relationship)。現實世界的事物之間是有聯絡的。這些聯絡必然要在資訊世界中加以反映。例如,教師實體與學生實體之間存在著教和學的聯絡。
(2)實體之間的聯絡
- 一對一的聯絡(1∶1)。對於實體集A中的每一個實體,實體集B中至多有一個實體與之聯絡。
- 一對多聯絡(1∶M)。對於實體集A中的每1個實體,實體集B中有M個實體(M≥2)與之聯絡。
- 多對多聯絡(M∶N)。對於實體集A中的每一個實體,實體集B中有N個實體(N≥0)與之聯絡
(3)概念模型的表示方法
- 實體型表示建立概念模型的物件,用長方框表示,在框內寫上實體名。
- 實體屬性是實體的說明。用橢圓框表示實體的屬性,並用無向邊把實體與其屬性連線起來。
- 實體間的聯絡是兩個或兩個以上實體型別之間的有名稱的關聯。實體間的聯絡用菱形框表示,菱形框內要有聯絡名,並用無向邊把菱形框分別與有關實體相連線,在無向邊的旁邊標上聯絡的型別
2.2.資料模型
(1)資料模型的三要素
- **資料結構。**資料結構用於描述資料庫系統的靜態特性。資料結構所研究是資料本身的型別、內容和性質,以及資料之間的關係。
- 資料操作。資料操作是對資料庫中物件例項允許執行的操作集合,主要指檢索和更新(插入、刪除、修改)兩類操作。
- 完整性約束條件。資料完整性約束是一組完整性規則的集合,它規定資料庫狀態及狀態變化所應滿足的條件,以保證資料的正確性、有效性和相容性。
(2)常用資料模型
-
層次模型。層次資料庫的資料結構類似一顆倒置的樹,每個節點表示一個記錄型別,記錄之間的聯絡是一對多的聯絡,現實世界中很多事物是按層次組織起來的。
-
網狀模型。網狀資料庫是用來處理以記錄型別為結點的網狀資料模型的資料庫。網狀模型採用網狀結構表示實體及其之間的聯絡。
-
關係模型。關係資料庫是目前流行的資料庫。
-
面向物件模型(Object Oriented Model)。面向物件模型採用面向物件的方法來設計資料庫。面向物件的資料庫儲存物件是以物件為單位,每個物件包含物件的屬性和方法,具有類和繼承等特點。Computer Associates的Jasmine就是面向物件模型的資料庫系統。
-
物件關係模型
2.33 .關係運算
(1)關係模型中的基本運算
選擇。從一個表中找出滿足指定條件的記錄行形成一個新表的操作稱為選擇。選擇關係運算如圖1-6所示。
例如,在student關係中查詢所有sex為“女”的學生。
投影。投影是從列的角度進行的運算,通過對錶中的欄位進行選擇或重組,得到新的表。投影關係運算如圖1-7所示。例如,在student關係中查詢所有學生的studentno和birthday。
**連線。**連線是將兩個表中的行按一定的條件橫向結合,形成一個新的表。連線關係運算如圖1-8所示。
例如,查詢學生的sname和final,2個數據項分來自student關係和score關係,需要在2個關係連線之後,再從中按照一定條件篩選出sname和final的資料。
(2)資料完整性
- 實體完整性。實體完整性是指關係的主關鍵字不能取“空值”。在關係模式中,以主關鍵字作為唯一性標識,如果主關鍵字是多個屬性的組合,那麼所有主屬性均不得取空值。
- 域完整性。確保屬性中只允許一個有效資料。在物理資料庫中,可以利用表中的資料型別和行可空性強制執行域完整性。
- 參照完整性。參照完整性是定義建立關係之間聯絡的主關鍵字與外部關鍵字引用的約束條件。關係資料庫中通常包含多個存在相互聯絡的關係,關係與關係之間的聯絡是通過公共屬性來實現的。
- 事務完整性。事務可以確保每個邏輯單元的工作作為單個事務執行。
- 使用者定義完整性。使用者定義完整性則是根據應用環境的要求和實際的需要,對某一具體應用所涉及的資料提出約束性條件
3.設計資料庫
3.1.資料庫設計的規範化
(1)資料庫設計的正規化
-
第一正規化(1NF)。如果一個關係模式,它的每一個數據項是不可分的,即其域為簡單域,則此關係模式為第一正規化。第一正規化易出現的問題是資料冗餘和更新資料的遺漏。第一正規化是最低的規範化要求包括:
① 資料表不能存在重複的記錄,即存在一個關鍵字。且主關鍵字應滿足唯一性、非空性等的條件。
② 每個欄位都不可再分,即已經分到最小。 -
第二正規化(2NF)。如果一個關係屬於1NF,且所有的非主關鍵欄位都完全地依賴於主關鍵字,則稱之為第二正規化。例如:零件關係中,倉庫地址和主鍵(零件號)不存在依賴關係。 零件(零件號,倉庫號,數量,倉庫地址)
那麼,該關係按照第二正規化的要求,就應該拆分為零件和倉庫兩個關係。
① 零件(零件號,倉庫號,數量)
② 倉庫(倉庫號,倉庫地址) -
第三正規化(3NF)。如果一個關係屬於2NF,且每個非關鍵字不傳遞依賴於主鍵,這種關係就是3NF。
例如:常見的關係中的資料項年齡和出生日期、期末成績和總評成績等就存在傳遞依賴,需要消除。
(2)資料庫設計的方法
- 實體關係(E-R)的 資料庫設計方法:基於實體關係的資料庫設計方法的基本思想是在需求分析的基礎上,用E-R圖構造一個純粹反映現實世界實體之間內在關係的企業模式,然後再將此企業模式轉換成選定的DBMS上的概念模式。每個實體或聯絡將來就對映為一個數據表。
- 檢視概念的資料庫設計方法:基於檢視概念的資料庫設計方法先從分析各個應用的資料著手,為每個應用建立各自的檢視,然後再把這些檢視彙總起來合併成整個資料庫的概念模式。
3.2.資料庫設計的主要內容
(1)靜態特性設計:根據給定的應用環境、使用者的資料需求,設計資料庫的資料模型,包括資料庫的概念結構設計和邏輯結構設計兩個方面。
(2)動態特性設計:根據應用處理要求,設計資料庫的查詢、事務處理和報表處理等應用程式,反映資料庫在處理上的要求,所以又稱為資料庫的行為特性設計
(3)物理設計:根據動態特性,即應用處理要求,在選定的DBMS環境下,把靜態特性設計中得到的資料庫模式加以物理實現,即設計資料庫的儲存模式和存取方法。
3.3.資料庫設計的過程
(1)資料庫設計的步驟
- 需求分析。需求分析的目標是通過調查研究,瞭解使用者的資料要求和處理要求,並按一定的格式整理形成需求說明書。需求說明書是需求分析階段的成果,也是以後設計的依據,它包括資料庫所涉及的資料、資料的特徵、資料量和使用頻率的估計等。
- **概念設計。**概念設計是資料庫設計的第2階段,其目標是對需求說明書提供的所有資料和處理要求進行抽象與綜合處理,按一定的方法構造反映使用者環境的資料及其相互聯絡的概念模型。
- 邏輯設計。把上一階段得到的與DBMS無關的概念資料模型轉換成等價的,併為某個特定的DBMS所接受的邏輯模型所表示的概念模式,同時將概念設計階段得到的應用檢視轉換成特定DBMS下的應用檢視。邏輯設計階段的結果是DBMS提供的資料定義語言(DDL)寫成的資料模式。
- **物理設計。**物理設計階段的任務是把邏輯設計階段得到的邏輯資料庫在物理上加以實現。
(2)資料庫表列的資訊型別
- 原始資料列:用於儲存有形資訊(例如名稱),由資料庫外部的源確定。
- 分類列。用於對資料進行分類或分組,並存儲限定選擇範圍的資料。
- 識別符號列:用於提供一種機制來標識儲存在表中的每個項
- 引用列:用於建立一個表中的資訊與另一個表中相關資訊之間的連結。