數據庫系統與數據挖掘

數據庫系統

第一章 緒論

本章屬於基礎知識,主要是對一些概念的理解和記憶。沒有難點,相對的重點在於ER模型的設計和關係模型的掌握。程序員

 1、數據管理技術的發展階段(識記)數據庫

數據管理技術共經歷了三個階段:人工管理階段、文件系統階段、數據庫階段:安全

一、人工管理階段的特色:數據結構

(1)數據不保存在機器中併發

(2)沒有專用軟件對數據進行管理運維

(3)只有程序的概念,沒有文件的概念。數據庫設計

二、文件系統階段的特色與缺陷:函數

(1)數據可長期保存在磁盤上。學習

(2)數據的邏輯結構與物理結構有了區別測試

(3)文件組織呈現多樣化

(4)數據再也不屬於某個特定程序,能夠重複使用。

其缺陷是:

數據冗餘性

數據不一致性

數據聯繫弱

三、數據庫階段的特色

採用複雜的數據模型表示數據結構

有較高的數據獨立性(數據結構分紅用戶的邏輯結構、總體邏輯結構和物理結構三級)

數據庫系統爲用戶提供方便的用戶接口,可使用查詢語言、終端命令或程序方式操做數據庫。

系統提供了四個方面的數據控制功能:數據庫的恢復、併發控制、數據完整性和數據安全性。

對數據的操做不必定以記錄爲單位,還能夠數據項爲單位。

數據庫技術中的四個名詞:DB、DBMS、DBS、數據庫技術。其概念是不一樣的,要分清。

DB:數據庫(Database),DB是統一管理的相關數據的集合。

DBMS:數據庫管理系統(Database Management

System),DBMS是位於用戶與操做系統之間的一層數據管理軟件,爲用戶或應用程序提供訪問DB的方法,包括DB的創建、查詢、更新及各類數據控制。DBMS老是基於某種數據模型,能夠分爲層次型、網狀型、關係型、面向對象型DBMS。

DBS:數據庫系統(Database System),DBS是實現有組織地、動態地存儲大量關聯數據,方便多用戶訪問的計算機軟件、硬件和數據資源組成的系統,即採用了數據庫技術的計算機系統。

數據庫技術:是一門研究數據庫結構、存儲、管理和使用的軟件學科。

 

2、數據描述的術語(領會)

一、數據描述的三個領域:現實世界、信息世界和機器世界。

信息世界中的幾個概念:實體(即客觀存在能夠相互區別的事物)、實體集(同類實體的集合)、屬性(實體的特性)、實體標識符(惟一標識實體的屬性(集))。

機器世界中的四個概念:字段、記錄、文件、鍵(關鍵碼)。

二、數據描述的兩種形式:物理描述和邏輯描述。前者是指數據在存儲設備上的存取方式,後者是指程序員或用戶以用以操做的數據形式。

三、數據聯繫的描述:

1:1聯繫:若是實體集E1中的每一個實體最多隻能和實體集E2中的一個實體有聯繫,反之亦然,好麼實體集E1對E2的聯繫稱爲"一對一聯繫",記爲"1:1"。

1:N聯繫:若是實體集E1中每一個實體與實體集E2中任意個(零個或多個)實體有聯繫,而E2中每一個實體至多和E1中的一個實體有聯繫,那麼E1對E2的聯繫是"一對多聯繫",記爲"1:N"。

M:N聯繫:若是實體集E1中每一個實體與實體集E2中任意個(零個或多個)實體有聯繫,反之亦然,那麼E1對E2的聯繫是"多對多聯繫",記爲"M:N"。

 

3、數據模型

一、數據模型的概念(領會):

表示實體類型及實體類型間聯繫的模型稱爲"數據模型"。它可分爲兩種類型:概念數據模型和結構數據模型。

二、 概念數據模型(領會):

它是獨立於計算機系統的模型,徹底不涉及信息在系統中的表示,只是用來描述某個特定組織所關心的信息結構。(掌握ER模型)

三、 結構數據模型:它是直接面向數據庫的邏輯結構,是現實世界的第二層抽象。這類模型涉及到計算機系統和數據庫管理系統,因此稱爲"結構數據模型"。結構數據模型應包含:數據結構、數據操做、數據完整性約束三部分

層次模型(識記):用樹型結構表示實體間聯繫的數據模型

關係模型(領會):是由若干個關係模式組成的集合,其主要特徵是用二維表格結構表達實體集,用外鍵表示實體間聯繫。

 

4、數據庫的體系結構(領會)

一、三級結構模式:數據庫的體系結構分爲三級:內部級、概念級和外部級:

外部級:單個用戶所能看到的數據特性,稱外模式

概念級:涉及到全部用戶的數據定義,是全局的數據視圖,稱"概念模式"。

內部級:最接近於物理存儲,涉及到實際數據存儲的結構,稱"內模式"。

二、兩級映象:

模式/內模式映象:用於定義概念模式和內模式之間的對應性。通常在內模式中描述。

外模式/模式映象:用於定義外模式和概念模式間的對應性。通常在外模式中描述。

3.兩級數據獨立性:

物理數據獨立性:修改內模式時儘可能不影響概念模式及外模式,則達到物理數據獨立性。

邏輯數據獨立性:修改概念模式時儘可能不影響外模式和應用程序。

 

 

5、數據庫管理系統(DBMS 領會)

一、DBMS的主要功能:

    (1)數據庫的定義功能

    (2)數據庫的操縱功能

    (3)數據庫的保護功能

    (4)數據庫的存儲管理

    (5)數據庫的維護功能

    (6)數據字典

二、DBMS的組成:

由兩大部分組成:查詢處理器和存儲管理器,前者包括DDL編譯器、DML編譯器、嵌入型DML預編譯器、查詢運行核心程序。後者包括受權和完整性管理器,事務管理器、文件管理器,緩衝區管理器。

 

6、數據庫系統(DBS 領會)

DBS由四部分組成:數據庫、硬件、軟件、數據庫管理員。

DBS的全局結構及DBS的效益,瞭解一下。

 

 

 

 

第二章 關係數據庫

本章爲次重點章,咱們常用的數據庫均採用關係模型,本章主要介紹了關係模型的關係運算理論,主要在於對關係演算運算的理解,爲後面章節的SQL做準備。

 

1、關係模型的基本概念(識記)

一、關係模型的基本術語:

用二維表格結構表示實體集、外鍵表示實體間聯繫的數據模型稱爲關係模型。

基本術語有:字段(屬性)、字段值(屬性值)、記錄(元組)、二維表格(元組集合、關係或實例)。在這裏,括號中的表述爲關係模型中的術語。它與表格中術語能夠一一對應。還有,關係中屬性個數稱爲元數,元組個數爲基數。

鍵:由一個或幾個屬性組成。(注意鍵不必定是惟一的一個屬性)。

鍵:在關係中能惟一標識元組的屬性集稱爲關係模式的超鍵。(注意,超鍵也是一個屬性集,不必定只是一個屬性)

候選鍵:不含有多餘屬性的超鍵稱爲候選鍵。

主鍵:用戶選做元組標識的一個候選鍵爲主鍵。

外鍵:某個關係的主鍵相應的屬性在另外一關係中出現,此時該主鍵在就是另外一關係的外鍵,若有兩個關係S和SC,其中S#是關係S的主鍵,相應的屬性S#在關係SC中也出現,此時S#就是關係SC的外鍵。

二、關係模式、關係子模式

關係模式:關係模式實際上就是記錄類型。它包括:模式名,屬性名,值域名以及模式的主鍵。關係模式僅是對數據特性的描述。 (這一般在數據庫中表現爲一個數據表的結構)

關係子模式:就是用戶所用到那部分數據的描述。

 

三、關係模型的三類完整性規則

實體完整性規則:要求關係中組成主鍵的屬性上不能有空值。

參照完整性規則:要求不引用不存在的實體。

用戶定義完整性規則:由具體應用環境決定,系統提供定義和檢驗這類完整性的機制。

四、關係模型的形式定義:數據結構、數據操做和完整性規則。 

 

2、關係代數運算(簡單應用)

一、關係代數的五個基本操做:並、差、笛卡爾積、投影和選擇。

(∪):兩個關係需有相同的關係模式,並的對象是元組,由兩個關係全部元組構成。

(-):一樣,兩個關係有相同的模式,R和S的差是由屬於R但不屬於S的元組構成的集合。

投影(σ):對關係進行垂直分割,消去某些列,並從新安排列的順序。

選擇(π):根據某些條件關係做水平分割,即選擇符合條件的元組。

二、關係代數的四個組合操做:交、聯接、天然聯接和除法

(∩):R和S的交是由既屬於R又屬於S的元組構成的集合。

聯接包括θ聯接和F聯接,是選擇R×S中知足iθ(r+j)或F條件的元組構成的集合,特別注意等值聯接(θ爲等號"=")。

天然聯接(R|X|S):在R×S中,選擇R和S公共屬性值均相等的元組,並去掉R×S中重複的公共屬性列。若是兩個關係沒有公共屬性,則天然聯接就轉化爲笛卡爾積。

除法(÷):首先除法的結果中元數爲兩個元數的差,以例2.6爲例,咱們能夠直接用觀察法來獲得結果,把S看做一個塊,拿到R中去和相同屬性集中的元組做比較,若是有相同的塊,且除去此塊後留下的相應元組均相同,那麼能夠獲得一條元組,全部這些元組的集合就是除法的結果。

對於上述的五個基本操做和組合操做,應當從實際運算方面進行理解和運用,對其形式定義可沒必要深究。注意課本上的例子和給的練習題。

三、關係代數表達式及應用

在關係代數表達式中,複合了上述五個基本操做,在給出相應的表格(關係)中,應該可以根據給出的關係代數表達式計算關係值,也要能根據相應查詢要求列出關係表達式。

在列關係表達式時,一般有如下形式:

π...(σ...(R×S))或者π...(σ...(R|X|S))

首先把查詢涉及到的關係取來,執行笛卡爾積或天然聯接操做獲得一張大的表格,而後對大表格執行水平分割(選擇)和垂直分割(投影)操做。可是注意當查詢涉及到否認或所有值時,就不能用上述形式,而要用到差或除法操做。

 

 

第三章關係數據庫SQL語言

 

本章爲重點章,應熟悉和掌握SQL的數據定義、數據查詢、數據更新的句法及其應用,特別是數據查詢的應用。結合上機操做進行理解和掌握。

 

1、SQL概述。

一、SQL發展歷程(識記)

SQL從1970年美國IBM研究中心的E.F.Codd發表論文到1974年Boyce和Chamberlin把SQUARE語言改成SEQUEL語言,到如今還在不斷完善和發展之中,SQL(結構式查詢語言)雖然名爲查詢,但實際上具備定義、查詢、更新和控制等多種功能。

二、SQL數據庫的體系結構(領會)

SQL數據庫的體系結構也是三級結構,但術語與傳統關係模型術語不一樣,在SQL中,關係模式稱爲"基本表",存儲模式稱爲"存儲文件",子模式稱爲"視圖",元組稱"行",屬性稱"列"。

SQL數據庫體系的結構要點以下:

(1)一個SQL數據庫是表的聚集。

(2)一個SQL表由行集構成,行是列的序列,每列對應一個數據項。

(3)表或者是基本表,或者是視圖。基本表是實際存儲在數據庫中的表,視圖由是由若干基本表或其餘視圖構成的表的定義。

(4)一個基本表能夠跨一個或多個存儲文件,一個存儲文件也可存放一個或多個基本表。存儲文件與物理文件對應。

(5)用戶能夠用SQL語句對錶進行操做,包括視圖和基本表。

(6)SQL的用戶能夠是應用程序,也能夠是終端用戶。

三、SQL的組成(識記)

SQL由三部分組成:

(1)數據定義SQL DDL。定義SQL模式,基本表、視圖和索引。

(2)數據操縱SQL DML。包括數據查詢和數據更新(增、刪、改)。

(3)數據控制:包括對基本表和視圖的受權、完整性規則的描述,事務控制等。

 

2、SQL的數據定義(簡單應用)

一、SQL模式的建立和撤消:

SQL模式的建立可簡單理解爲創建一個數據庫,定義一個存儲空間,其句法是:

CREAT SCHEMA

<模式名> AUTHORIZATION <用戶名>

撤消SQL模式的句法爲:

DROP SCHEMA <模式名>

[CASCADE|RESTRICT]

方括號中的選項參數CASCADE表示連鎖方式,執行時將模式下全部基本表、視圖、索引等元素所有撤消。RESTRICT表示約束式,執行時必須在SQL模式中沒有任何下屬元素時方可撤消模式。

二、SQL提供的基本數據類型

數值型:包括 integer、smallint、real、double precision 、float(n),numeric(p,d)

字符串型:char(n)、varchar(n),前者是定長,後者爲變長串

位串型:bit(n),bit varying(n),同上。

時間型:date、time。

三、基本表的建立、修改和撤消

基本表的建立:(可理解爲創建表結構)

CREAT TABLE SQL 模式名.基本表名

(列名,類型,

……

完整性約束...)

完整性約束包括主鍵子句(PRIMARY KEY)、檢查子句(CHECK)和外鍵子句(Foreign KEY).

基本表結構的修改

ALTER TABLE 基本表名 ADD/DROP(增長/刪除) 列名 類型名(增長時寫出)

刪除時有子句 [CASCADE|RESTRICT],前者爲連鎖刪除,後者爲約束刪除,即沒有對本列的任何引用時才能刪除。

基本表的撤消

DROP TABLE 基本表名 [CASCADE|RESTRICT]

四、視圖的建立和撤消

建立:CREAT VIEW 視圖名(列名錶) AS SELECT 查詢語句

撤消:DROP VIEW 視圖名

五、索引的建立和撤消

建立:CREAT [UNIQUE] INDEX 索引名 ON 基本表名(列名錶 [ASC|DESC])

撤消:DROP INDEX 索引名

總結:凡建立都用CREAT ,刪除都用DROP,改變用alter,再跟類型和名字,附加子句很容易了。

 

3、SQL的數據查詢(綜合應用)

這一段是本章的重點內容,應該熟練掌握。首先了解基本句法:

一、SELECT-FROM-WHERE句型

SELECT 列名錶(逗號隔開) FROM 基本表或視圖序列 WHERE 條件表達式

在這裏,重點要掌握條件表達式中各類運算符的應用,如=,>,<,<>等算術比較運算符、邏輯運算符AND、OR、NOT、集合成員資格運算符:IN,NOT

IN,以及嵌套的SELECT語句的用法要特別注意理解。針對課本的例題和課後習題進行掌握。

在查詢時,SELECT語句能夠有多種寫法,如聯接查詢、嵌套查詢和使用存在量詞的嵌套查詢等。最好都掌握,可是起碼應能寫出一種正確的查詢語句。

2.SELECT 語句完整的句法:

SELECT 列名錶(逗號隔開)

FROM 基本表或視圖序列

[WHERE 條件表達式] (此爲和條件子句)

[GROUP BY 列名序列] (分組子句)

[HAVING 組條件表達式] (組條件子句)

[ORDER BY列名[ASC|DESC]..] (排序子句)

這段關於完整句法的內容可以理解也就問題不大了。

三、SELECT語句中的限定

這一段內容主要是對SELECT語句進一步使用進行的深刻學習,領會下列各類限定的使用目的和方法。

要求輸出表格中不出現重複元組,則在SELECT後加一DISTINCT

SELECT 子句中容許出現加減乘除及列名,常數的算術表達式

WHERE 子句中能夠用BETWEEN...AND...來限定一個值的範圍

同一個基本表在 SELECT語句中屢次引用時可用AS來增長別名

WHERE子句中字符串匹配用LIKE和兩個通配符,%和下劃線_.

查詢結果的結構徹底一致時可將兩個查詢進行並(UNION)交(INTERSECT)差(EXCPT)操做

查詢空值操做不是用='null',而是用 IS NULL來測試。

集合成員資格比較用 IN/NOT IN ,集合成員算術比較用元組θSOME/ALL

能夠用子查詢結果取名(表名(列名序列))來做爲導出表使用

基本表的天然聯接操做是用 NATURAL INNER JOIN來實現的。

 

4、SQL的數據更新(簡單應用)

簡單應用就是掌握基本的句型並能套用在一些簡單的查詢要求上。

一、數據插入:

INSERT INTO 基本表名(列名錶)

VALUES (元組值)

INSERT INTO 基本表名(列名錶)

SELECT 查詢語句

其中元組值能夠連續插入。用查詢語句能夠按要求插入所需數據。

二、數據刪除:

DELETE FROM 基本表名 [WHERE條件表達式]

三、數據修改:

UPDATE 基本表名

SET 列名=值表達式,[列名=值表達式...]

[WHERE 條件表達式]

這一節的關於增刪改的操做要和前面關於數據庫模式、表的增刪改操做進行對比學習,以加深理解。不要忘記上機實踐。

 

 

 

 

 關係數據理論

本章的理論性較強,學習時有無從下手的感受,在學習時應多加思考,從概念出發去理解理論,先後的理論有較強的聯繫,所以要逐個理解,但對於理論的證實等內容則沒必要深究,本章重點是函數依賴和範式的概念。

 

1、關係模式的設計問題(識記)

關係數據庫是以關係模型爲基礎的數據庫,它利用關係來描述現實世界。一個關係既能夠用來描述一個實體及其屬性,也能夠用來描述實體間的聯繫。關係實質上就是一張二維表,表的行稱爲元組,列稱爲屬性。

關係模式是用來定義關係的,這裏的關係模式咱們能夠簡單地理解爲一個表的結構,一個關係數據庫包含一組關係,也就是包含一組二維表,這些二維表結構體的集合就構成數據庫的模式(也能夠理解爲數據庫的結構)。

關係數據庫設計理論包括三個方面內容:數據依賴、範式、模式設計方法。核心內容是數據依賴。

 

關係模式的存儲異常:數據冗餘、更新異常、插入異常和刪除異常

 

2、函數依賴(FD)

一、函數依賴的定義(領會):設有關係模式R(A1,A2,...An)或簡記爲R(U),X,Y是U的子集,r是R的任一具體關係,若是對r的任意兩個元組t1,t2,由t1[X]=t2[X]致使t1[Y]=t2[Y],則稱X函數決定Y,或Y函數依賴於X,記爲X→Y。X→Y爲模式R的一個函數依賴。

這個定義能夠這樣理解:有一張設計好的二維表,X,Y是表的某些列(能夠是一列,也能夠是多列),若在表中的第t1行,和第t2行上的X值相等,那麼必有t1行和t2行上的Y值也相等,這就是說Y函數依賴於X。以下圖所示:

教師

課程

張老師

物理

楊老師

化學

李老師

物理

 

在表中,凡教師名相同的,對應的課程名也必是相同的,則此時說

教師名函數決定課程名,或"課程"函數依賴於"教師"。可是反過來不必定,課程名相同時並不必定教師名相同,因此這裏的Y→X是不成立的。

要特別注意的是,在這張表中,任何一行的關係均應符合上述條件,若是有一行不符合函數依賴的條件,則函數依賴對於這個關係就不成立。

還有應該瞭解的是,函數依賴是否成立是不可證實的,只能經過屬性的含義來判斷,上述表是一個關係實例,能夠一條條進行驗證,可是對於模式設計來講,開始時並無數據插入,咱們只能從屬性的含義出發,如這個關係模式保存了全校全部教師和課程對應關係,則有可能出現相同的教師名而課程名不是同樣的狀況(有同名教師),那麼"課程→教師"這個函數依賴就不成立了。

上述例子可對照課本理論進行領會。

2、鍵和FD的關係(領會)

鍵是惟一標識實體的屬性集。對於鍵和函數依賴的關係:有兩個條件:設關係模式R(A1,A2...An),F是R上的函數依賴集,X是R的一個子集,

(1)X→A1A2...An∈F+ (它的意思是X可以決定惟一的一個元組)

(2)不存在X的真子集Y,使得Y也能決定惟一的一個元組,則X就是R的一個候選鍵。(它的意思是X能決定惟一的一個元組但又沒有多餘的屬性集)

包含在任何一個候選鍵中的屬性稱爲主屬性,不包含在任何鍵中的屬性爲非主屬性(非鍵屬性),注意主屬性應當包含在候選鍵中。

3、函數依賴(FD)的推理規則(瞭解)

前面咱們舉的例子中是以實際經驗來肯定一個函數依賴的邏輯蘊涵,可是咱們須要一個推理規則才能徹底肯定F或F+的全部函數依賴。

設有關係模式R(U),X,Y,Z,W均是U的子集,F是R上只涉及到U中屬性的函數依賴集,推理規則以下:

自反律:若是Y X U,則X→Y在R上成立。

增廣律:若是X→Y爲F所蘊涵,Z U,則XZ→YZ在R上成立。(XZ表示X∪Z,下同)

傳遞律:若是X→Y和Y→Z在R上成立,則X→Z在R上成立。

合併律:若是X→Y和X→Z成立,那麼X→YZ成立。

僞傳遞律:若是X→Y和WY→Z成立,那麼WX→Z成立。

分解律:若是X→Y和Z Y成立,那麼X→Z成立。

 

 

、關係模式的範式(領會)

一、1NF、2NF、3NF、BCNF的定義:

1NF:第一範式。

即關係模式中的屬性的值域中每個值都是不可再分解的值。若是某個數據庫模式都是第一範式的,則稱該數據庫模式是屬於第一範式的數據庫模式。

好比有一個關係 顧客={顧客,送貨地址},如有這樣幾行記錄:

顧客 送貨地址

張三   北京、上海

李四 北京

 

這時的第一條記錄就表示本關係模式不是1NF的,由於課程中的值域仍是能夠分解的,它包括了兩個地址,如分爲:

顧客 送貨地址

張三   北京

張三 上海

李四 北京

就成爲第一範式的關係模式。

 

2NF:第二範式。

若是關係模式R爲第一範式,而且R中每個非主屬性徹底函數依賴於R的某個候選鍵,則稱爲第二範式模式。

 

在這裏要先了解"非主屬性"、"徹底函數依賴"、"候選鍵"這三個名詞的含義。

候選鍵就是指能夠惟一決定關係模式R中某元組值且不含有多餘屬性的屬性集。

非主屬性也就是非鍵屬性,指關係模式R中不包含在任何建中的屬性。

設有函數依賴W→A,若存在X W,有X→A成立,那麼稱W→A是局部依賴,不然就稱W→A是徹底函數依賴。

 

在分析是否爲第2範式時,應首先肯定候選鍵,而後把關係模式中的非主屬性與鍵的依賴關係進行考察,是否都爲徹底函數依賴,如是,則此關係模式爲2NF。若是數據庫模式中每一個關係模式都是2NF的,則此數據庫模式屬於2NF的數據庫模式。

3NF:第三範式。

若是關係模式R是第二範式,且每一個非主屬性都不傳遞依賴於R的候選鍵,則稱R爲第三範式的模式。

 

這裏首先要了解傳遞依賴的含義: 在關係模式中,若是Y→X,X→A,且X不決定Y和A不屬於X,那麼Y→A是傳遞依賴。

 

注意的是,這裏要求非主屬性都不傳遞依賴於候選鍵。

BCNF:這個範式和第三範式有聯繫,它是3NF的改進形式。若關係模式R是第一範式,且每一個屬性都不傳遞依賴於R的候選鍵。這種關係模式就是BCNF模式。

縱觀四種範式,能夠發現它們之間存在以下關係:

BCNF 3NF 2NF 1NF

1NF

↓ 消去非主屬性對鍵的部分函數依賴

2NF

↓ 消去非主屬性對鍵的傳遞函數依賴

3NF

↓ 消去主屬性對鍵的傳遞函數依賴

BCNF

 

二、多值依賴。簡單瞭解一下。

 

 

 

 數據庫設計

與上一章不一樣,本章的實用性較強,詳細講述了數據庫應用系統設計的全過程。重點是概念設計中ER模型的設計方法,邏輯設計中ER模型向關係模型的轉換方法。

 

1、數據庫設計概述(識記)

一、軟件生存期:是指從軟件的規劃、研製、實現、投入運行後的維護、直到它被新的軟件所取代而中止使用的整個期間。它包括六個階段:(規需設編試運維)

(1)規劃階段

(2)需求分析階段

(3)設計階段

(4)程序編制階段

(5)調試階段

(6)運行維護階段

二、數據庫系統生存期

數據庫應用系統的開發也是一項軟件工程,稱爲數據庫工程,數據庫應用系統也有生存期的概念,一般包括七個階段:

(1)規劃階段

(2)需求分析階段

(3)概念設計階段

(4)邏輯設計階段

(5)物理設計階段

(6)實現階段

(7)運行維護階段

三、數據庫設計方法學

一個好的數據庫設計方法應該能在合理的期限內,以合理的工做量產生一個有實用價值的數據庫結構。

數據庫及其應用系統的設計分爲如下幾個階段:規劃、需求分析、概念設計、邏輯設計、物理設計。

 

、需求分析(識記)

需求分析階段應對系統的整個應用狀況做全面的、詳細的調查、肯定用戶的目標,收集支持系統總的設計目標的基礎數據和對這些數據的要求,肯定用戶需求,並把這些要求寫成用戶和數據庫設計者都可以接受的文檔。

肯定用戶需求能夠經過對不一樣層次的企業管理人員進行我的訪問獲得。還應瞭解系統未來要發生的變化,充分考慮系統的可能的擴充和變更,使系統設計更符合將來發展方向。

需求分析的步驟大體分爲三步:即需求信息的收集、分析整理和評審。

數據字典:是對系統中數據的詳盡描述,它提供對數據庫數據描述的集中管理。它包含如下幾個部分:數據項、數據結構、數據流、數據存儲和加工過程。

 

、概念設計(識記)

一、概念模型:能夠當作是現實世界到機器世界的一個過渡的中間層次。在設計數據庫系統時,要把現實世界的事物經過認識和抽象轉換爲信息世界的概念模型,再把概念模型轉換爲機器世界的數據模型。

二、概念設計的主要步驟:分三步完成:(1)進行數據抽象,設計局部概念模式;(2)將局部概念模式綜合成全局概念模式;(3)評審。

三、數據抽象:數據抽象的兩種形式:彙集和歸納:

彙集:其數學意義就是笛卡爾積的概念,經過彙集,造成對象之間的一個聯繫對象。若有一些對象:"老師,課程,班級,上課時間",經過彙集能夠獲得一個聯繫對象"課程表"。彙集表示的是"is_part_of"的關係。

歸納:是從一類其餘對象造成一個對象。若有桃樹、李樹、杏樹等對象,咱們經過歸納或以獲得一個對象"樹"。歸納表示的是"is_a"的關係,如"李樹"是一種"樹"。

四、基本ER模型的擴展(領會)

ER(實體聯繫)模型是對現實世界的一種抽象,它的主要成份是實體、聯繫和屬性。可是在現實世界中還有一些特殊的語義。須要擴展ER模型的概念才能更好地模擬現實世界。

依賴聯繫:在現實世界中,有些實體對一另外一些實體有很強的依賴關係,即一個實體的存在必須以另外一實體的存在爲前提。前者就稱爲"弱實體",如在人事管理系統中,職工子女的信息就是以職工的存在爲前提的,子女實體是弱實體,子女與職工的聯繫是一種依賴聯繫。在ER圖中用雙線框表示弱實體。用箭頭表示依賴聯繫。

子類:在現實中,存在某個實體類型中全部實體同時也是另外一實體類型中的實體,此時,咱們稱前一實體類型爲者的子類,後一實體類型稱爲超類。子類有一個很重要的性質繼承性。在ER圖中,超類用兩端雙線框表示,並用加圈的線與子類相連。

5、採用ER方法的數據庫概念設計(領會)

採用ER方法進行數據庫概念設計分紅三步進行:

首先設計局部ER模式

而後把各局部ER模式綜合成全局ER模式

最後對全局ER模式進行優化

 

4、邏輯設計

一、 概念設計的結果是獲得一個與DBMS無關的概念模式。而邏輯設計的目的是把概念設計階段設計好的基本ER圖轉換爲與選用的具體機器上的DBMS所支持的數據模式相符合的邏輯結構(包括數據庫模式和外模式)。

二、 轉換的規則

 

 

 

 

其它內容 數據庫保護

 

主要內容包括數據庫保護的四種措施:數據庫事務管理與備份恢復、併發控制、完整性和安全性。瞭解這些內容及其在SQL語言中的實現方式。

 

1、數據庫的事務與備份(領會)

一、事務的概念:事務是一個操做序列。這些操做要麼什麼都作,要麼都不作,是一個不可分割的工做單位。事務以BEGIN

TRANSACTION語句開始,以COMMIT(提交)語句或ROLLBACK(回退或撤消)語句結束。

一個程序的執行可經過若干事務的執行序列來完成。

二、事務的性質:原子性(atomicity)、一致性(consistency)、隔離性(isolation)和持久性(durability)。稱爲事務的ACID性質。

經過教材的例子來理解事務的性質。

 

三、數據備份與恢復

瞭解SQLServer的備份與恢復機制

 

2、數據庫的併發控制(領會)

一、併發控制帶來的三類問題:

(1)丟失更新的問題

(2)不一致分析問題

(3)"髒數據"的讀出。(在數據庫技術中,未提交的隨後又被撤消的數據爲"髒數據"。)

二、爲解決併發控制帶來的問題,一般要採用封鎖(locking)技術,經常使用的封鎖有:排它型封鎖(X封鎖)和共享型封鎖(S封鎖)兩種。

3. 死鎖:有兩個或以上的事務處於等待狀態,每一個事務都在等待另外一個事務解除封鎖,它才能繼續執行下去,結果任何一個事務都沒法執行,這種現象就是死鎖。

 

解除死鎖的方法是由DBMS中的"死鎖測試程序"來檢查,如發現死鎖則犧牲一個事務,並作回退操做,解除它的全部封鎖。

 

3、數據庫的完整性(領會)

一、數據庫的完整性是指數據的正確性和相容性。數據庫中數據發生錯誤,每每是由非法更新引發的。

數據庫完整性是經過DBMS的完整性子系統實現的,它有兩個功能:

(1)監督事務的執行,並測試是否違反完整性規則。

(2)若有違反,則採起恰當的操做,如拒絕、報告違反狀況,改正錯誤等方法進行處理。

 

2. 完整性分類

兩種分類方法:1。域完整性、實體完整性、參照完整性和用戶自定義完整性

2.六種完整性約束

3. 六種完整性約束的實現方法(領會)

例如:可在SQL中實現的完整性約束

SQL中,表達完整性約束的規則有主鍵約束、外鍵約束、屬性值約束和全局約束等多種形式。

主鍵約束:可用主鍵子句或主鍵短語 PRIMARY KEY 來定義。

外鍵約束:可用外鍵子句來定義如 FOREIGN KEY (S#) REFERNCE S(S#)

屬性值約束:包括非空值約束(NOT NULL)和基於屬性的檢查子句(CHECK) 及域約束子句 如CREAT DOMAIN AGE SMALLINT CHECK (VALUE>10)

全局約束:包括基於元組的檢查子句(CHECK)和觸發器

注意:事務機制也是一種完整性約束實現手段,它能夠實現動態關係約束。

 

 

 

4、數據庫的安全性(識記)

數據庫的安全性是指保護數據庫防止不合法的使用,以避免數據的泄漏、非法更改和破壞。

一、用戶或應用程序使用數據庫的方式稱爲權限,權限的種類:

訪問數據權限:讀、插入、修改、刪除四種

修改數據庫模式權限:索引(建立或刪除索引)、資源(建立新關係)、修改(增刪關係結構屬性)和撤消權限(撤消關係)

二、權限的轉授與回收:畫一個權限圖,只要根結點到用戶結點之間存在一條路徑,那麼它就有權限,回收時就是刪去某些路徑。

3. SQL中的安全性控制

SQL中有兩個安全機制:一是視圖機制、二是受權子系統。

視圖是從一個或幾個基本表導出的表,是虛表,視圖定義後能夠像基本表同樣用於查詢和刪除,但其更新操做(增、刪、改)會受到限制。

視圖機制把用戶可使用的數據定義在視圖中,這樣用戶就不能使用視圖定義外的其餘數據,從而保證了數據庫的安全性。視圖機制使系統具備三個優勢:數據安全性、數據獨立性和操做簡便性。

受權機制grant/revoke/deny等語句)能夠保證用戶只能進行其權限範圍內的操做。

 

                                          數據挖掘

 

第一章 緒論

 

本章屬於基礎知識,主要是對一些概念的理解和記憶。沒有難點,相對的重點在於ER模型的設計和關係模型的掌握。

 

 1、數據管理技術的發展階段(識記)

 

數據管理技術共經歷了三個階段:人工管理階段、文件系統階段、數據庫階段:

 

一、人工管理階段的特色:

 

(1)數據不保存在機器中

 

(2)沒有專用軟件對數據進行管理

 

(3)只有程序的概念,沒有文件的概念。

 

二、文件系統階段的特色與缺陷:

 

(1)數據可長期保存在磁盤上。

 

(2)數據的邏輯結構與物理結構有了區別

 

(3)文件組織呈現多樣化

 

(4)數據再也不屬於某個特定程序,能夠重複使用。

 

其缺陷是:

 

數據冗餘性

 

數據不一致性

 

數據聯繫弱

 

三、數據庫階段的特色

 

採用複雜的數據模型表示數據結構

 

有較高的數據獨立性(數據結構分紅用戶的邏輯結構、總體邏輯結構和物理結構三級)

 

數據庫系統爲用戶提供方便的用戶接口,可使用查詢語言、終端命令或程序方式操做數據庫。

 

系統提供了四個方面的數據控制功能:數據庫的恢復、併發控制、數據完整性和數據安全性。

 

對數據的操做不必定以記錄爲單位,還能夠數據項爲單位。

 

數據庫技術中的四個名詞:DB、DBMS、DBS、數據庫技術。其概念是不一樣的,要分清。

 

DB:數據庫(Database),DB是統一管理的相關數據的集合。

 

DBMS:數據庫管理系統(Database Management

 

System),DBMS是位於用戶與操做系統之間的一層數據管理軟件,爲用戶或應用程序提供訪問DB的方法,包括DB的創建、查詢、更新及各類數據控制。DBMS老是基於某種數據模型,能夠分爲層次型、網狀型、關係型、面向對象型DBMS。

 

DBS:數據庫系統(Database System),DBS是實現有組織地、動態地存儲大量關聯數據,方便多用戶訪問的計算機軟件、硬件和數據資源組成的系統,即採用了數據庫技術的計算機系統。

 

數據庫技術:是一門研究數據庫結構、存儲、管理和使用的軟件學科。

 

 

 

2、數據描述的術語(領會)

 

一、數據描述的三個領域:現實世界、信息世界和機器世界。

 

信息世界中的幾個概念:實體(即客觀存在能夠相互區別的事物)、實體集(同類實體的集合)、屬性(實體的特性)、實體標識符(惟一標識實體的屬性(集))。

 

機器世界中的四個概念:字段、記錄、文件、鍵(關鍵碼)。

 

二、數據描述的兩種形式:物理描述和邏輯描述。前者是指數據在存儲設備上的存取方式,後者是指程序員或用戶以用以操做的數據形式。

 

三、數據聯繫的描述:

 

1:1聯繫:若是實體集E1中的每一個實體最多隻能和實體集E2中的一個實體有聯繫,反之亦然,好麼實體集E1對E2的聯繫稱爲"一對一聯繫",記爲"1:1"。

 

1:N聯繫:若是實體集E1中每一個實體與實體集E2中任意個(零個或多個)實體有聯繫,而E2中每一個實體至多和E1中的一個實體有聯繫,那麼E1對E2的聯繫是"一對多聯繫",記爲"1:N"。

 

M:N聯繫:若是實體集E1中每一個實體與實體集E2中任意個(零個或多個)實體有聯繫,反之亦然,那麼E1對E2的聯繫是"多對多聯繫",記爲"M:N"。

 

 

 

3、數據模型

 

一、數據模型的概念(領會):

 

表示實體類型及實體類型間聯繫的模型稱爲"數據模型"。它可分爲兩種類型:概念數據模型和結構數據模型。

 

二、 概念數據模型(領會):

 

它是獨立於計算機系統的模型,徹底不涉及信息在系統中的表示,只是用來描述某個特定組織所關心的信息結構。(掌握ER模型)

 

三、 結構數據模型:它是直接面向數據庫的邏輯結構,是現實世界的第二層抽象。這類模型涉及到計算機系統和數據庫管理系統,因此稱爲"結構數據模型"。結構數據模型應包含:數據結構、數據操做、數據完整性約束三部分

 

層次模型(識記):用樹型結構表示實體間聯繫的數據模型

 

關係模型(領會):是由若干個關係模式組成的集合,其主要特徵是用二維表格結構表達實體集,用外鍵表示實體間聯繫。

 

 

 

4、數據庫的體系結構(領會)

 

一、三級結構模式:數據庫的體系結構分爲三級:內部級、概念級和外部級:

 

外部級:單個用戶所能看到的數據特性,稱外模式

 

概念級:涉及到全部用戶的數據定義,是全局的數據視圖,稱"概念模式"。

 

內部級:最接近於物理存儲,涉及到實際數據存儲的結構,稱"內模式"。

 

二、兩級映象:

 

模式/內模式映象:用於定義概念模式和內模式之間的對應性。通常在內模式中描述。

 

外模式/模式映象:用於定義外模式和概念模式間的對應性。通常在外模式中描述。

 

3.兩級數據獨立性:

 

物理數據獨立性:修改內模式時儘可能不影響概念模式及外模式,則達到物理數據獨立性。

 

邏輯數據獨立性:修改概念模式時儘可能不影響外模式和應用程序。

 

 

 

 

 

5、數據庫管理系統(DBMS 領會)

 

一、DBMS的主要功能:

 

    (1)數據庫的定義功能

 

    (2)數據庫的操縱功能

 

    (3)數據庫的保護功能

 

    (4)數據庫的存儲管理

 

    (5)數據庫的維護功能

 

    (6)數據字典

 

二、DBMS的組成:

 

由兩大部分組成:查詢處理器和存儲管理器,前者包括DDL編譯器、DML編譯器、嵌入型DML預編譯器、查詢運行核心程序。後者包括受權和完整性管理器,事務管理器、文件管理器,緩衝區管理器。

 

 

 

6、數據庫系統(DBS 領會)

 

DBS由四部分組成:數據庫、硬件、軟件、數據庫管理員。

 

DBS的全局結構及DBS的效益,瞭解一下。

 

 

 

 

 

 

 

 

 

第二章 關係數據庫

 

本章爲次重點章,咱們常用的數據庫均採用關係模型,本章主要介紹了關係模型的關係運算理論,主要在於對關係演算運算的理解,爲後面章節的SQL做準備。

 

 

 

1、關係模型的基本概念(識記)

 

一、關係模型的基本術語:

 

用二維表格結構表示實體集、外鍵表示實體間聯繫的數據模型稱爲關係模型。

 

基本術語有:字段(屬性)、字段值(屬性值)、記錄(元組)、二維表格(元組集合、關係或實例)。在這裏,括號中的表述爲關係模型中的術語。它與表格中術語能夠一一對應。還有,關係中屬性個數稱爲元數,元組個數爲基數。

 

鍵:由一個或幾個屬性組成。(注意鍵不必定是惟一的一個屬性)。

 

鍵:在關係中能惟一標識元組的屬性集稱爲關係模式的超鍵。(注意,超鍵也是一個屬性集,不必定只是一個屬性)

 

候選鍵:不含有多餘屬性的超鍵稱爲候選鍵。

 

主鍵:用戶選做元組標識的一個候選鍵爲主鍵。

 

外鍵:某個關係的主鍵相應的屬性在另外一關係中出現,此時該主鍵在就是另外一關係的外鍵,若有兩個關係S和SC,其中S#是關係S的主鍵,相應的屬性S#在關係SC中也出現,此時S#就是關係SC的外鍵。

 

二、關係模式、關係子模式

 

關係模式:關係模式實際上就是記錄類型。它包括:模式名,屬性名,值域名以及模式的主鍵。關係模式僅是對數據特性的描述。 (這一般在數據庫中表現爲一個數據表的結構)

 

關係子模式:就是用戶所用到那部分數據的描述。

 

 

 

三、關係模型的三類完整性規則

 

實體完整性規則:要求關係中組成主鍵的屬性上不能有空值。

 

參照完整性規則:要求不引用不存在的實體。

 

用戶定義完整性規則:由具體應用環境決定,系統提供定義和檢驗這類完整性的機制。

 

四、關係模型的形式定義:數據結構、數據操做和完整性規則。 

 

 

 

2、關係代數運算(簡單應用)

 

一、關係代數的五個基本操做:並、差、笛卡爾積、投影和選擇。

 

(∪):兩個關係需有相同的關係模式,並的對象是元組,由兩個關係全部元組構成。

 

(-):一樣,兩個關係有相同的模式,R和S的差是由屬於R但不屬於S的元組構成的集合。

 

投影(σ):對關係進行垂直分割,消去某些列,並從新安排列的順序。

 

選擇(π):根據某些條件關係做水平分割,即選擇符合條件的元組。

 

二、關係代數的四個組合操做:交、聯接、天然聯接和除法

 

(∩):R和S的交是由既屬於R又屬於S的元組構成的集合。

 

聯接包括θ聯接和F聯接,是選擇R×S中知足iθ(r+j)或F條件的元組構成的集合,特別注意等值聯接(θ爲等號"=")。

 

天然聯接(R|X|S):在R×S中,選擇R和S公共屬性值均相等的元組,並去掉R×S中重複的公共屬性列。若是兩個關係沒有公共屬性,則天然聯接就轉化爲笛卡爾積。

 

除法(÷):首先除法的結果中元數爲兩個元數的差,以例2.6爲例,咱們能夠直接用觀察法來獲得結果,把S看做一個塊,拿到R中去和相同屬性集中的元組做比較,若是有相同的塊,且除去此塊後留下的相應元組均相同,那麼能夠獲得一條元組,全部這些元組的集合就是除法的結果。

 

對於上述的五個基本操做和組合操做,應當從實際運算方面進行理解和運用,對其形式定義可沒必要深究。注意課本上的例子和給的練習題。

 

三、關係代數表達式及應用

 

在關係代數表達式中,複合了上述五個基本操做,在給出相應的表格(關係)中,應該可以根據給出的關係代數表達式計算關係值,也要能根據相應查詢要求列出關係表達式。

 

在列關係表達式時,一般有如下形式:

 

π...(σ...(R×S))或者π...(σ...(R|X|S))

 

首先把查詢涉及到的關係取來,執行笛卡爾積或天然聯接操做獲得一張大的表格,而後對大表格執行水平分割(選擇)和垂直分割(投影)操做。可是注意當查詢涉及到否認或所有值時,就不能用上述形式,而要用到差或除法操做。

 

 

 

 

 

第三章關係數據庫SQL語言

 

 

 

本章爲重點章,應熟悉和掌握SQL的數據定義、數據查詢、數據更新的句法及其應用,特別是數據查詢的應用。結合上機操做進行理解和掌握。

 

 

 

1、SQL概述。

 

一、SQL發展歷程(識記)

 

SQL從1970年美國IBM研究中心的E.F.Codd發表論文到1974年Boyce和Chamberlin把SQUARE語言改成SEQUEL語言,到如今還在不斷完善和發展之中,SQL(結構式查詢語言)雖然名爲查詢,但實際上具備定義、查詢、更新和控制等多種功能。

 

二、SQL數據庫的體系結構(領會)

 

SQL數據庫的體系結構也是三級結構,但術語與傳統關係模型術語不一樣,在SQL中,關係模式稱爲"基本表",存儲模式稱爲"存儲文件",子模式稱爲"視圖",元組稱"行",屬性稱"列"。

 

SQL數據庫體系的結構要點以下:

 

(1)一個SQL數據庫是表的聚集。

 

(2)一個SQL表由行集構成,行是列的序列,每列對應一個數據項。

 

(3)表或者是基本表,或者是視圖。基本表是實際存儲在數據庫中的表,視圖由是由若干基本表或其餘視圖構成的表的定義。

 

(4)一個基本表能夠跨一個或多個存儲文件,一個存儲文件也可存放一個或多個基本表。存儲文件與物理文件對應。

 

(5)用戶能夠用SQL語句對錶進行操做,包括視圖和基本表。

 

(6)SQL的用戶能夠是應用程序,也能夠是終端用戶。

 

三、SQL的組成(識記)

 

SQL由三部分組成:

 

(1)數據定義SQL DDL。定義SQL模式,基本表、視圖和索引。

 

(2)數據操縱SQL DML。包括數據查詢和數據更新(增、刪、改)。

 

(3)數據控制:包括對基本表和視圖的受權、完整性規則的描述,事務控制等。

 

 

 

2、SQL的數據定義(簡單應用)

 

一、SQL模式的建立和撤消:

 

SQL模式的建立可簡單理解爲創建一個數據庫,定義一個存儲空間,其句法是:

 

CREAT SCHEMA

 

<模式名> AUTHORIZATION <用戶名>

 

撤消SQL模式的句法爲:

 

DROP SCHEMA <模式名>

 

[CASCADE|RESTRICT]

 

方括號中的選項參數CASCADE表示連鎖方式,執行時將模式下全部基本表、視圖、索引等元素所有撤消。RESTRICT表示約束式,執行時必須在SQL模式中沒有任何下屬元素時方可撤消模式。

 

二、SQL提供的基本數據類型

 

數值型:包括 integer、smallint、real、double precision 、float(n),numeric(p,d)

 

字符串型:char(n)、varchar(n),前者是定長,後者爲變長串

 

位串型:bit(n),bit varying(n),同上。

 

時間型:date、time。

 

三、基本表的建立、修改和撤消

 

基本表的建立:(可理解爲創建表結構)

 

CREAT TABLE SQL 模式名.基本表名

 

(列名,類型,

 

……

 

完整性約束...)

 

完整性約束包括主鍵子句(PRIMARY KEY)、檢查子句(CHECK)和外鍵子句(Foreign KEY).

 

基本表結構的修改

 

ALTER TABLE 基本表名 ADD/DROP(增長/刪除) 列名 類型名(增長時寫出)

 

刪除時有子句 [CASCADE|RESTRICT],前者爲連鎖刪除,後者爲約束刪除,即沒有對本列的任何引用時才能刪除。

 

基本表的撤消

 

DROP TABLE 基本表名 [CASCADE|RESTRICT]

 

四、視圖的建立和撤消

 

建立:CREAT VIEW 視圖名(列名錶) AS SELECT 查詢語句

 

撤消:DROP VIEW 視圖名

 

五、索引的建立和撤消

 

建立:CREAT [UNIQUE] INDEX 索引名 ON 基本表名(列名錶 [ASC|DESC])

 

撤消:DROP INDEX 索引名

 

總結:凡建立都用CREAT ,刪除都用DROP,改變用alter,再跟類型和名字,附加子句很容易了。

 

 

 

3、SQL的數據查詢(綜合應用)

 

這一段是本章的重點內容,應該熟練掌握。首先了解基本句法:

 

一、SELECT-FROM-WHERE句型

 

SELECT 列名錶(逗號隔開) FROM 基本表或視圖序列 WHERE 條件表達式

 

在這裏,重點要掌握條件表達式中各類運算符的應用,如=,>,<,<>等算術比較運算符、邏輯運算符AND、OR、NOT、集合成員資格運算符:IN,NOT

 

IN,以及嵌套的SELECT語句的用法要特別注意理解。針對課本的例題和課後習題進行掌握。

 

在查詢時,SELECT語句能夠有多種寫法,如聯接查詢、嵌套查詢和使用存在量詞的嵌套查詢等。最好都掌握,可是起碼應能寫出一種正確的查詢語句。

 

2.SELECT 語句完整的句法:

 

SELECT 列名錶(逗號隔開)

 

FROM 基本表或視圖序列

 

[WHERE 條件表達式] (此爲和條件子句)

 

[GROUP BY 列名序列] (分組子句)

 

[HAVING 組條件表達式] (組條件子句)

 

[ORDER BY列名[ASC|DESC]..] (排序子句)

 

這段關於完整句法的內容可以理解也就問題不大了。

 

三、SELECT語句中的限定

 

這一段內容主要是對SELECT語句進一步使用進行的深刻學習,領會下列各類限定的使用目的和方法。

 

要求輸出表格中不出現重複元組,則在SELECT後加一DISTINCT

 

SELECT 子句中容許出現加減乘除及列名,常數的算術表達式

 

WHERE 子句中能夠用BETWEEN...AND...來限定一個值的範圍

 

同一個基本表在 SELECT語句中屢次引用時可用AS來增長別名

 

WHERE子句中字符串匹配用LIKE和兩個通配符,%和下劃線_.

 

查詢結果的結構徹底一致時可將兩個查詢進行並(UNION)交(INTERSECT)差(EXCPT)操做

 

查詢空值操做不是用='null',而是用 IS NULL來測試。

 

集合成員資格比較用 IN/NOT IN ,集合成員算術比較用元組θSOME/ALL

 

能夠用子查詢結果取名(表名(列名序列))來做爲導出表使用

 

基本表的天然聯接操做是用 NATURAL INNER JOIN來實現的。

 

 

 

4、SQL的數據更新(簡單應用)

 

簡單應用就是掌握基本的句型並能套用在一些簡單的查詢要求上。

 

一、數據插入:

 

INSERT INTO 基本表名(列名錶)

 

VALUES (元組值)

 

 

INSERT INTO 基本表名(列名錶)

 

SELECT 查詢語句

 

其中元組值能夠連續插入。用查詢語句能夠按要求插入所需數據。

 

二、數據刪除:

 

DELETE FROM 基本表名 [WHERE條件表達式]

 

三、數據修改:

 

UPDATE 基本表名

 

SET 列名=值表達式,[列名=值表達式...]

 

[WHERE 條件表達式]

 

這一節的關於增刪改的操做要和前面關於數據庫模式、表的增刪改操做進行對比學習,以加深理解。不要忘記上機實踐。

 

 

 

 

 

 

 

 

 

 關係數據理論

 

本章的理論性較強,學習時有無從下手的感受,在學習時應多加思考,從概念出發去理解理論,先後的理論有較強的聯繫,所以要逐個理解,但對於理論的證實等內容則沒必要深究,本章重點是函數依賴和範式的概念。

 

 

 

1、關係模式的設計問題(識記)

 

關係數據庫是以關係模型爲基礎的數據庫,它利用關係來描述現實世界。一個關係既能夠用來描述一個實體及其屬性,也能夠用來描述實體間的聯繫。關係實質上就是一張二維表,表的行稱爲元組,列稱爲屬性。

 

關係模式是用來定義關係的,這裏的關係模式咱們能夠簡單地理解爲一個表的結構,一個關係數據庫包含一組關係,也就是包含一組二維表,這些二維表結構體的集合就構成數據庫的模式(也能夠理解爲數據庫的結構)。

 

關係數據庫設計理論包括三個方面內容:數據依賴、範式、模式設計方法。核心內容是數據依賴。

 

 

 

關係模式的存儲異常:數據冗餘、更新異常、插入異常和刪除異常

 

 

 

2、函數依賴(FD)

 

一、函數依賴的定義(領會):設有關係模式R(A1,A2,...An)或簡記爲R(U),X,Y是U的子集,r是R的任一具體關係,若是對r的任意兩個元組t1,t2,由t1[X]=t2[X]致使t1[Y]=t2[Y],則稱X函數決定Y,或Y函數依賴於X,記爲X→Y。X→Y爲模式R的一個函數依賴。

 

這個定義能夠這樣理解:有一張設計好的二維表,X,Y是表的某些列(能夠是一列,也能夠是多列),若在表中的第t1行,和第t2行上的X值相等,那麼必有t1行和t2行上的Y值也相等,這就是說Y函數依賴於X。以下圖所示:

 

教師

課程

張老師

物理

楊老師

化學

李老師

物理

 

 

 

在表中,凡教師名相同的,對應的課程名也必是相同的,則此時說

 

教師名函數決定課程名,或"課程"函數依賴於"教師"。可是反過來不必定,課程名相同時並不必定教師名相同,因此這裏的Y→X是不成立的。

 

要特別注意的是,在這張表中,任何一行的關係均應符合上述條件,若是有一行不符合函數依賴的條件,則函數依賴對於這個關係就不成立。

 

還有應該瞭解的是,函數依賴是否成立是不可證實的,只能經過屬性的含義來判斷,上述表是一個關係實例,能夠一條條進行驗證,可是對於模式設計來講,開始時並無數據插入,咱們只能從屬性的含義出發,如這個關係模式保存了全校全部教師和課程對應關係,則有可能出現相同的教師名而課程名不是同樣的狀況(有同名教師),那麼"課程→教師"這個函數依賴就不成立了。

 

上述例子可對照課本理論進行領會。

 

2、鍵和FD的關係(領會)

 

鍵是惟一標識實體的屬性集。對於鍵和函數依賴的關係:有兩個條件:設關係模式R(A1,A2...An),F是R上的函數依賴集,X是R的一個子集,

 

(1)X→A1A2...An∈F+ (它的意思是X可以決定惟一的一個元組)

 

(2)不存在X的真子集Y,使得Y也能決定惟一的一個元組,則X就是R的一個候選鍵。(它的意思是X能決定惟一的一個元組但又沒有多餘的屬性集)

 

包含在任何一個候選鍵中的屬性稱爲主屬性,不包含在任何鍵中的屬性爲非主屬性(非鍵屬性),注意主屬性應當包含在候選鍵中。

 

3、函數依賴(FD)的推理規則(瞭解)

 

前面咱們舉的例子中是以實際經驗來肯定一個函數依賴的邏輯蘊涵,可是咱們須要一個推理規則才能徹底肯定F或F+的全部函數依賴。

 

設有關係模式R(U),X,Y,Z,W均是U的子集,F是R上只涉及到U中屬性的函數依賴集,推理規則以下:

 

自反律:若是Y X U,則X→Y在R上成立。

 

增廣律:若是X→Y爲F所蘊涵,Z U,則XZ→YZ在R上成立。(XZ表示X∪Z,下同)

 

傳遞律:若是X→Y和Y→Z在R上成立,則X→Z在R上成立。

 

合併律:若是X→Y和X→Z成立,那麼X→YZ成立。

 

僞傳遞律:若是X→Y和WY→Z成立,那麼WX→Z成立。

 

分解律:若是X→Y和Z Y成立,那麼X→Z成立。

 

 

 

 

 

、關係模式的範式(領會)

 

一、1NF、2NF、3NF、BCNF的定義:

 

1NF:第一範式。

 

即關係模式中的屬性的值域中每個值都是不可再分解的值。若是某個數據庫模式都是第一範式的,則稱該數據庫模式是屬於第一範式的數據庫模式。

 

好比有一個關係 顧客={顧客,送貨地址},如有這樣幾行記錄:

 

顧客 送貨地址

 

張三   北京、上海

 

李四 北京

 

 

 

這時的第一條記錄就表示本關係模式不是1NF的,由於課程中的值域仍是能夠分解的,它包括了兩個地址,如分爲:

 

顧客 送貨地址

 

張三   北京

 

張三 上海

 

李四 北京

 

就成爲第一範式的關係模式。

 

 

 

2NF:第二範式。

 

若是關係模式R爲第一範式,而且R中每個非主屬性徹底函數依賴於R的某個候選鍵,則稱爲第二範式模式。

 

 

 

在這裏要先了解"非主屬性"、"徹底函數依賴"、"候選鍵"這三個名詞的含義。

 

候選鍵就是指能夠惟一決定關係模式R中某元組值且不含有多餘屬性的屬性集。

 

非主屬性也就是非鍵屬性,指關係模式R中不包含在任何建中的屬性。

 

設有函數依賴W→A,若存在X W,有X→A成立,那麼稱W→A是局部依賴,不然就稱W→A是徹底函數依賴。

 

 

 

在分析是否爲第2範式時,應首先肯定候選鍵,而後把關係模式中的非主屬性與鍵的依賴關係進行考察,是否都爲徹底函數依賴,如是,則此關係模式爲2NF。若是數據庫模式中每一個關係模式都是2NF的,則此數據庫模式屬於2NF的數據庫模式。

 

3NF:第三範式。

 

若是關係模式R是第二範式,且每一個非主屬性都不傳遞依賴於R的候選鍵,則稱R爲第三範式的模式。

 

 

 

這裏首先要了解傳遞依賴的含義: 在關係模式中,若是Y→X,X→A,且X不決定Y和A不屬於X,那麼Y→A是傳遞依賴。

 

 

 

注意的是,這裏要求非主屬性都不傳遞依賴於候選鍵。

 

BCNF:這個範式和第三範式有聯繫,它是3NF的改進形式。若關係模式R是第一範式,且每一個屬性都不傳遞依賴於R的候選鍵。這種關係模式就是BCNF模式。

 

縱觀四種範式,能夠發現它們之間存在以下關係:

 

BCNF 3NF 2NF 1NF

 

1NF

 

↓ 消去非主屬性對鍵的部分函數依賴

 

2NF

 

↓ 消去非主屬性對鍵的傳遞函數依賴

 

3NF

 

↓ 消去主屬性對鍵的傳遞函數依賴

 

BCNF

 

 

 

二、多值依賴。簡單瞭解一下。

 

 

 

 

 

 

 

 數據庫設計

 

與上一章不一樣,本章的實用性較強,詳細講述了數據庫應用系統設計的全過程。重點是概念設計中ER模型的設計方法,邏輯設計中ER模型向關係模型的轉換方法。

 

 

 

1、數據庫設計概述(識記)

 

一、軟件生存期:是指從軟件的規劃、研製、實現、投入運行後的維護、直到它被新的軟件所取代而中止使用的整個期間。它包括六個階段:(規需設編試運維)

 

(1)規劃階段

 

(2)需求分析階段

 

(3)設計階段

 

(4)程序編制階段

 

(5)調試階段

 

(6)運行維護階段

 

二、數據庫系統生存期

 

數據庫應用系統的開發也是一項軟件工程,稱爲數據庫工程,數據庫應用系統也有生存期的概念,一般包括七個階段:

 

(1)規劃階段

 

(2)需求分析階段

 

(3)概念設計階段

 

(4)邏輯設計階段

 

(5)物理設計階段

 

(6)實現階段

 

(7)運行維護階段

 

三、數據庫設計方法學

 

一個好的數據庫設計方法應該能在合理的期限內,以合理的工做量產生一個有實用價值的數據庫結構。

 

數據庫及其應用系統的設計分爲如下幾個階段:規劃、需求分析、概念設計、邏輯設計、物理設計。

 

 

 

、需求分析(識記)

 

需求分析階段應對系統的整個應用狀況做全面的、詳細的調查、肯定用戶的目標,收集支持系統總的設計目標的基礎數據和對這些數據的要求,肯定用戶需求,並把這些要求寫成用戶和數據庫設計者都可以接受的文檔。

 

肯定用戶需求能夠經過對不一樣層次的企業管理人員進行我的訪問獲得。還應瞭解系統未來要發生的變化,充分考慮系統的可能的擴充和變更,使系統設計更符合將來發展方向。

 

需求分析的步驟大體分爲三步:即需求信息的收集、分析整理和評審。

 

數據字典:是對系統中數據的詳盡描述,它提供對數據庫數據描述的集中管理。它包含如下幾個部分:數據項、數據結構、數據流、數據存儲和加工過程。

 

 

 

、概念設計(識記)

 

一、概念模型:能夠當作是現實世界到機器世界的一個過渡的中間層次。在設計數據庫系統時,要把現實世界的事物經過認識和抽象轉換爲信息世界的概念模型,再把概念模型轉換爲機器世界的數據模型。

 

二、概念設計的主要步驟:分三步完成:(1)進行數據抽象,設計局部概念模式;(2)將局部概念模式綜合成全局概念模式;(3)評審。

 

三、數據抽象:數據抽象的兩種形式:彙集和歸納:

 

彙集:其數學意義就是笛卡爾積的概念,經過彙集,造成對象之間的一個聯繫對象。若有一些對象:"老師,課程,班級,上課時間",經過彙集能夠獲得一個聯繫對象"課程表"。彙集表示的是"is_part_of"的關係。

 

歸納:是從一類其餘對象造成一個對象。若有桃樹、李樹、杏樹等對象,咱們經過歸納或以獲得一個對象"樹"。歸納表示的是"is_a"的關係,如"李樹"是一種"樹"。

 

四、基本ER模型的擴展(領會)

 

ER(實體聯繫)模型是對現實世界的一種抽象,它的主要成份是實體、聯繫和屬性。可是在現實世界中還有一些特殊的語義。須要擴展ER模型的概念才能更好地模擬現實世界。

 

依賴聯繫:在現實世界中,有些實體對一另外一些實體有很強的依賴關係,即一個實體的存在必須以另外一實體的存在爲前提。前者就稱爲"弱實體",如在人事管理系統中,職工子女的信息就是以職工的存在爲前提的,子女實體是弱實體,子女與職工的聯繫是一種依賴聯繫。在ER圖中用雙線框表示弱實體。用箭頭表示依賴聯繫。

 

子類:在現實中,存在某個實體類型中全部實體同時也是另外一實體類型中的實體,此時,咱們稱前一實體類型爲者的子類,後一實體類型稱爲超類。子類有一個很重要的性質繼承性。在ER圖中,超類用兩端雙線框表示,並用加圈的線與子類相連。

 

5、採用ER方法的數據庫概念設計(領會)

 

採用ER方法進行數據庫概念設計分紅三步進行:

 

首先設計局部ER模式

 

而後把各局部ER模式綜合成全局ER模式

 

最後對全局ER模式進行優化

 

 

 

4、邏輯設計

 

一、 概念設計的結果是獲得一個與DBMS無關的概念模式。而邏輯設計的目的是把概念設計階段設計好的基本ER圖轉換爲與選用的具體機器上的DBMS所支持的數據模式相符合的邏輯結構(包括數據庫模式和外模式)。

 

二、 轉換的規則

 

 

 

 

 

 

 

 

 

其它內容 數據庫保護

 

 

 

主要內容包括數據庫保護的四種措施:數據庫事務管理與備份恢復、併發控制、完整性和安全性。瞭解這些內容及其在SQL語言中的實現方式。

 

 

 

1、數據庫的事務與備份(領會)

 

一、事務的概念:事務是一個操做序列。這些操做要麼什麼都作,要麼都不作,是一個不可分割的工做單位。事務以BEGIN

 

TRANSACTION語句開始,以COMMIT(提交)語句或ROLLBACK(回退或撤消)語句結束。

 

一個程序的執行可經過若干事務的執行序列來完成。

 

二、事務的性質:原子性(atomicity)、一致性(consistency)、隔離性(isolation)和持久性(durability)。稱爲事務的ACID性質。

 

經過教材的例子來理解事務的性質。

 

 

 

三、數據備份與恢復

 

瞭解SQLServer的備份與恢復機制

 

 

 

2、數據庫的併發控制(領會)

 

一、併發控制帶來的三類問題:

 

(1)丟失更新的問題

 

(2)不一致分析問題

 

(3)"髒數據"的讀出。(在數據庫技術中,未提交的隨後又被撤消的數據爲"髒數據"。)

 

二、爲解決併發控制帶來的問題,一般要採用封鎖(locking)技術,經常使用的封鎖有:排它型封鎖(X封鎖)和共享型封鎖(S封鎖)兩種。

 

3. 死鎖:有兩個或以上的事務處於等待狀態,每一個事務都在等待另外一個事務解除封鎖,它才能繼續執行下去,結果任何一個事務都沒法執行,這種現象就是死鎖。

 

 

 

解除死鎖的方法是由DBMS中的"死鎖測試程序"來檢查,如發現死鎖則犧牲一個事務,並作回退操做,解除它的全部封鎖。

 

 

 

3、數據庫的完整性(領會)

 

一、數據庫的完整性是指數據的正確性和相容性。數據庫中數據發生錯誤,每每是由非法更新引發的。

 

數據庫完整性是經過DBMS的完整性子系統實現的,它有兩個功能:

 

(1)監督事務的執行,並測試是否違反完整性規則。

 

(2)若有違反,則採起恰當的操做,如拒絕、報告違反狀況,改正錯誤等方法進行處理。

 

 

 

2. 完整性分類

 

兩種分類方法:1。域完整性、實體完整性、參照完整性和用戶自定義完整性

 

2.六種完整性約束

 

3. 六種完整性約束的實現方法(領會)

 

例如:可在SQL中實現的完整性約束

 

SQL中,表達完整性約束的規則有主鍵約束、外鍵約束、屬性值約束和全局約束等多種形式。

 

主鍵約束:可用主鍵子句或主鍵短語 PRIMARY KEY 來定義。

 

外鍵約束:可用外鍵子句來定義如 FOREIGN KEY (S#) REFERNCE S(S#)

 

屬性值約束:包括非空值約束(NOT NULL)和基於屬性的檢查子句(CHECK) 及域約束子句 如CREAT DOMAIN AGE SMALLINT CHECK (VALUE>10)

 

全局約束:包括基於元組的檢查子句(CHECK)和觸發器

 

注意:事務機制也是一種完整性約束實現手段,它能夠實現動態關係約束。

 

 

 

 

 

 

 

4、數據庫的安全性(識記)

 

數據庫的安全性是指保護數據庫防止不合法的使用,以避免數據的泄漏、非法更改和破壞。

 

一、用戶或應用程序使用數據庫的方式稱爲權限,權限的種類:

 

訪問數據權限:讀、插入、修改、刪除四種

 

修改數據庫模式權限:索引(建立或刪除索引)、資源(建立新關係)、修改(增刪關係結構屬性)和撤消權限(撤消關係)

 

二、權限的轉授與回收:畫一個權限圖,只要根結點到用戶結點之間存在一條路徑,那麼它就有權限,回收時就是刪去某些路徑。

 

3. SQL中的安全性控制

 

SQL中有兩個安全機制:一是視圖機制、二是受權子系統。

 

視圖是從一個或幾個基本表導出的表,是虛表,視圖定義後能夠像基本表同樣用於查詢和刪除,但其更新操做(增、刪、改)會受到限制。

 

視圖機制把用戶可使用的數據定義在視圖中,這樣用戶就不能使用視圖定義外的其餘數據,從而保證了數據庫的安全性。視圖機制使系統具備三個優勢:數據安全性、數據獨立性和操做簡便性。

 

受權機制grant/revoke/deny等語句)能夠保證用戶只能進行其權限範圍內的操做。

相關文章
相關標籤/搜索