Oracle基礎教程第章數(shù)據(jù)庫模型_第1頁
Oracle基礎教程第章數(shù)據(jù)庫模型_第2頁
Oracle基礎教程第章數(shù)據(jù)庫模型_第3頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第 1章 數(shù)據(jù)庫模型學習目標了解數(shù)據(jù)庫相關概念,以及關系型數(shù)據(jù)庫概念理解數(shù)據(jù)庫的定義,關系型數(shù)據(jù)庫模型,ORACLE數(shù)據(jù)庫管理系統(tǒng)體系結構掌握關系型數(shù)據(jù)庫E-R建模,ORACLE數(shù)據(jù)庫體系結構的組成及相關概念課前準備數(shù)據(jù)庫基本理論 數(shù)據(jù)庫設計 E-R 模型 數(shù)據(jù)庫設計范化 Oracle 數(shù)據(jù)庫體系結構1.1 本章簡介本章主要介紹數(shù)據(jù)庫的基本知識, 主要包括如下內容: 與數(shù)據(jù)庫相關的定義; 關系型數(shù) 據(jù)庫 E-R 建模;同時著重介紹了 oracle 數(shù)據(jù)庫管理系統(tǒng)體系結構的主要方面:物理結構、 邏輯結構、 后臺進程及相關工作原理, 本章內容是本書的基本章節(jié), 深入理解本章內容有助 于以后章節(jié)的學

2、習與實踐。1.2 數(shù)據(jù)庫基本知識當今人類社會已經(jīng)進入了信息化時代, 信息資源已經(jīng)成為了人們生活中必不可少的重要 而寶貴的資源。 作為信息系統(tǒng)核心技術和重要基礎的數(shù)據(jù)庫技術有了飛速發(fā)展,并得到了廣泛的應用。由于大量的信息以數(shù)據(jù)的形式存于計算機系統(tǒng)中, 為了方便人們查詢、 檢索、處理加工, 傳播需要的信息,這就提出了需要對數(shù)據(jù)進行分類,組織、編碼、存儲檢索和維護的數(shù)據(jù)庫 管理工作。 而數(shù)據(jù)庫管理技術本身也經(jīng)歷了長足的發(fā)展, 先后經(jīng)歷了人工管理, 文件系統(tǒng)和 數(shù)據(jù)庫系統(tǒng)三個階段。在人工管理階段數(shù)據(jù)處理都是通過手工進行的,這種數(shù)據(jù)處理數(shù)據(jù)量少,數(shù)據(jù)不保存, 沒有軟件系統(tǒng)對數(shù)據(jù)進行管理, 這種管理方式對

3、程序的依賴性太強, 并且大量數(shù)據(jù)重復冗余。 為了解決手工進行數(shù)據(jù)管理的缺陷, 隨著技術發(fā)展提出了文件管理的方式, 解決了應用程序 對數(shù)據(jù)的強依賴性問題, 給程序和數(shù)據(jù)定義了數(shù)據(jù)存取公共接口, 數(shù)據(jù)可以長期保存, 數(shù)據(jù) 不屬于某個特定的程序,使數(shù)據(jù)組織多樣化了(如:索引、鏈接文件等技術),但仍然存在大量數(shù)據(jù)冗余, 數(shù)據(jù)不一致性, 數(shù)據(jù)聯(lián)系弱的特點 (文件之間是孤立的,整體上不能反映客 觀世界事物內在聯(lián)系) ,為了解決文件數(shù)據(jù)管理的缺點, 人們提出了全新的數(shù)據(jù)管理的方法: 數(shù)據(jù)庫系統(tǒng),該方法充分地使用數(shù)據(jù)共享,交叉訪問,與應用程序高度獨立,而數(shù)據(jù)庫系統(tǒng) 根據(jù)其建立的模型基礎的不同而不同, 其中最為

4、廣泛使用的是建立在關系模型基礎之上的關系型數(shù)據(jù)庫,如:Oracle數(shù)據(jù)庫系統(tǒng),SQL SERVER數(shù)據(jù)庫管理系統(tǒng)等。這類數(shù)據(jù)庫系統(tǒng) 滿足關系模型的三大要素:關系數(shù)據(jù)結構,關系操作集合,關系完整約束。以下我們將介紹這關系型數(shù)據(jù)庫的特點。數(shù)據(jù)庫的特點數(shù)據(jù)(DATA):數(shù)據(jù)是描述現(xiàn)實世界事物的符號標記,是指用物理符號記錄下來的可 以鑒別的信息。包括:數(shù)字、文字、圖形、聲音、及其他特殊的符號。數(shù)據(jù)庫(DATABASE):按照一定的數(shù)據(jù)模型組織存儲在一起的,能為多個應用程序共 享的,與應用程序相對獨立的相互關聯(lián)的數(shù)據(jù)集合。數(shù)據(jù)庫管理系統(tǒng)(DBMS-Database Management System):

5、是指幫助用戶使用和管 理數(shù)據(jù)庫的軟件系統(tǒng)。數(shù)據(jù)庫管理系統(tǒng)通常由以下三個部分組成:用來描述數(shù)據(jù)庫的結構,用戶建立數(shù)據(jù)庫的數(shù)據(jù)描述語言DDL供用戶對數(shù)據(jù)庫進行數(shù)據(jù)的查詢和存儲等數(shù)據(jù)操作語言DML其它的管理與控制程序(例如:TCL事務控制語言,DCL數(shù)據(jù)控制語言等)數(shù)據(jù)庫具有以下特點:數(shù)據(jù)的結構化數(shù)據(jù)共享減少數(shù)據(jù)冗余優(yōu)良的永久存儲功能關系型數(shù)據(jù)庫關系型數(shù)庫:是以關系數(shù)學模型來表示的數(shù)據(jù)。關系數(shù)學模型以二維表的形式來描述數(shù)據(jù)。一個完整的關系型數(shù)據(jù)庫系統(tǒng)包含5層結構(由內往外)圖: 1-1關系數(shù)據(jù)庫系統(tǒng) 5 層結構硬件硬件是指安裝數(shù)據(jù)庫系統(tǒng)的計算機,包括兩種。服務器、客戶機操作系統(tǒng) 操作系統(tǒng)是指安裝數(shù)據(jù)

6、庫系統(tǒng)的計算機采用的操作系統(tǒng)。數(shù)據(jù)庫、關系型數(shù)據(jù)庫管理系統(tǒng)關系型數(shù)據(jù)庫是存儲在計算機上的,可共享的、有組織的關系型數(shù)據(jù)的集合。 關系型數(shù)據(jù)庫管理系統(tǒng)是位于操作系統(tǒng)和關系型數(shù)據(jù)庫應用系統(tǒng)之間的數(shù)據(jù)庫管理軟件,它通常由以下三個部分組成: 用來描述數(shù)據(jù)庫的結構, 用來建立用戶數(shù)據(jù)庫的數(shù)據(jù)描述 語言 DDL ;供用戶對數(shù)據(jù)庫進行數(shù)據(jù)的查詢和存儲等操作的數(shù)據(jù)庫操作語言 DML ;其它的 管理和控制程序。關系型數(shù)據(jù)庫應用系統(tǒng)關系型數(shù)據(jù)庫應用系統(tǒng)指為滿足用戶需求, 采用各種應用開發(fā)工具和開發(fā)技術開發(fā)的數(shù) 據(jù)庫應用軟件用戶用戶是指和數(shù)據(jù)庫打交道的人員,包括如下三類人員: 最終用戶:應用程序的使用者,通過應用程

7、序與數(shù)據(jù)庫進行交互; 數(shù)據(jù)庫應用系統(tǒng)開發(fā)人員: 是指在開發(fā)周期內, 完成數(shù)據(jù)庫結構的設計, 應用程序開發(fā) 等任務;數(shù)據(jù)庫管理員:就是我們通常所說的數(shù)據(jù)庫 DBA ,其職能就是對數(shù)據(jù)庫做日常管理, 如:數(shù)據(jù)備份,數(shù)據(jù)庫監(jiān)控,性能調整,安全監(jiān)控與調整等任務。1.3 數(shù)據(jù)庫設計 E-R 模型人們在現(xiàn)實生活中把需要實現(xiàn)的事物的數(shù)據(jù)特征按某種方式進行抽象,以便能夠準確的,方便的表示信息世界,這種“抽象方式”就是使用合適的模型來描述信息世界。其中最常用的就是E-R模型:即實體-聯(lián)系法。這種方法接近人的思維,與計算機無關、冗余被用 戶接受,所以人們在設計數(shù)據(jù)庫,把現(xiàn)實世界抽象為概念結構的時候總是常用E-R模

8、型來描述之。接下來我們將介紹概念設計中的E-R模型表示法。概念結構(概念模型)概念結構是對現(xiàn)實世界中的一種抽象,即對實際的人、物、事和概念進行人為處理,抽取人們關心的共同特性,忽略非本質的細節(jié),并把這些特性用各種概念精確地加以描述。概念結構的要點和圖解如下:概念結構獨立于數(shù)據(jù)庫邏輯結構,也獨立于支持數(shù)據(jù)庫的DBMS,不受其約束。它是現(xiàn)實世界與機器世界的中介,它一方面能夠充分反映現(xiàn)實世界,包括實體和實體之間的聯(lián)系,同時又易于向關系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉換。它應是現(xiàn)實世界的一個真實模型,易于理解,便于和不熟悉計算機的用戶交換意見,使用戶易于參與。當現(xiàn)實世界需求改變時,概念結構又可以很容易地做

9、相應調整。因此概念結構設計是整個數(shù)據(jù)庫設計的關鍵所在?,F(xiàn)實世界信息世界圖1-2概念設計模型概念結構的設計方法設計概念結構通常有四類方法:自頂向下:即首先定義全局概念結構的框架,然后逐步細化。自底向上:即首先定義各局部應用的概念結構,然后將它們集成起來, 得到全局概念結構。逐步擴張:首先定義最重要的核心概念結構,然后向外擴充,以滾雪球的方式逐步生成其他概念結構,直至總體概念結構。混合策略:即將自頂向下和自底向上相結合,用自頂向下策略設計一個全局概念結構的框架,以它為骨架集成由自底向上策略中設計的各局部概念結構。其中最經(jīng)常采用的策略是自頂向下地進行需求分析,然后再自底向上地設計概念結構。 整個過程

10、是:數(shù)據(jù)抽象與局部視圖(E-R)設計t視圖的集成(全局 E-R )。但無論采用哪種設計方法,一般都以E-R模型為工具來描述現(xiàn)實世界的概念結構模型:E-R模型為實體-聯(lián)系圖,提供了表示實體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實世界 的概念模型。E-R模型容易理解,接近于人的思維方式,并且與計算機無關。E-R模型本身是一種語義的模型,模型力圖去表達數(shù)據(jù)的意義。E-R模型只能說明實體間的語義聯(lián)系,不能進一步說明數(shù)據(jù)結構。1.3.3 E-R模型的重要概念:實體:在E-R模型中,實體用矩形表示,矩形內寫明實體名,是實現(xiàn)世界中可以區(qū)別 于其他對象的“事件”或“事物”如威迅公司中每個人都是實體,每個實體都由一組

11、特性(屬性)來表示。其中某一部分屬性可以唯一標識實體,如員工編號。實體集是指具有屬性的實體集合。比如威迅培訓班中的老師和學生可以分別定義為兩個實體集。聯(lián)系:在E-R模型中,聯(lián)系用菱形表示,菱形內寫明實體聯(lián)系名,并用無向邊分別與 有關的實體聯(lián)系在一起,同時在無向邊旁標注聯(lián)系的類型:1 : 1或1 : N或M: N ;同時聯(lián)系分為:實體內部的聯(lián)系和實體之間的聯(lián)系。實體內部之間的聯(lián)系反映數(shù)據(jù)在同一記錄內部各字段間的聯(lián)系。我們當前主要討論實體集之間的聯(lián)系,在兩個實體集之間,兩個實體存在如下三種對應關系:1一對一:實體集中一個實體最多只與一個實體集中一個實體相聯(lián)系,記為1:1,就如電影院里一個座位只有能

12、坐一個觀眾。2一對多:實體集中一個實體與一個實體集中多個實體相聯(lián)系。記為:1: n,就如部門和員工(假如:一個員工只能屬于一個部門),一個部門對應多名員工。3多對多:實體集中多個實體與另一個實體集中的多個實體相聯(lián)系,記為:m: n,就如項目和職工,一個項目多名員工, 每個員工可以同時進行多個項目。老師與學生之間就是多對多的聯(lián)系。屬性:就是實體某方面的特性。如員工的姓名、年齡、工作年限、通訊地址等。抽象的幾種方法概念結構是對現(xiàn)實世界的一種抽象,一般有三種抽象:分類:(is member of) 聚集(is part of)分類(共同特征)圖1-5概括(包括)建立E-R圖時應避免沖突和冗余我們建立

13、E-R圖往往是一部分一部分的去完成,就好象做一個普通事情一樣,做事總有個先后,建立 E-R圖也不例外,往往先劃分 E-R圖,然后把畫好的各部分E-R圖合并起來,此時往往會產生沖突或冗余,各部分之間的沖突主要有三類:屬性沖突、命名沖突和結構沖突。屬性沖突:(1)屬性域沖突,即屬性值的類型、取值范圍或取值集合不同。例如:屬性“零件號”有的定義為字符型,有的為數(shù)值型。(2)屬性取值單位沖突。例如:屬性“重量”有的以克為單位,有的以公斤為單位。命名沖突:(1 )同名異義。不同意義對象相同名稱。(2)異名同義(一義多名)。同意義對象不同名稱:“項目”和“課題”。結構沖突:(1)同一對象在不同應用中具有不

14、同的抽象。例如“課程”在某一局部應用中被當作實體,而在另一局部應用中則被當作屬性。 (2)同一實體在不同局部視圖中所 包含的屬性不完全相同,或者屬性的排列次序不完全相同。 (3)實體之間的聯(lián)系在不同 局部視圖中呈現(xiàn)不同的類型。例如實體 E1與E2在局部應用A中是多對多聯(lián)系,而在 局部應用B中是一對多聯(lián)系;又如在局部應用 X中E1與E2發(fā)生聯(lián)系,而在局部應用 Y中E1、E2、E3三者之間有聯(lián)系。解決方法是根據(jù)應用的語義對實體聯(lián)系的類型進行綜合或調整。除沖突之外,合并 E-R圖需要注意的冗余問題:冗余屬性的消除:一般在各 E-R圖中屬性是不存在冗余的,但合并后容易出現(xiàn)冗余屬 性。因為合并后的 E-

15、R繼承了合并前各 E-R圖的全部屬性,屬性就存在冗余的可能,比如: 某一屬性可以由其它屬性確定。冗余聯(lián)系的消除:在 E-R圖合并過程中,可能出現(xiàn)實體聯(lián)系的環(huán)狀結構,即某實體A和某實體B有直接聯(lián)系。同時它們之間有通過別的實體發(fā)生間接聯(lián)系,此時可以刪除直接 聯(lián)系;實體類型的合并:兩個具有1: 1聯(lián)系或1 : n聯(lián)系的實體可以予以合并。1.3.6 一個E-R模型實力為了能夠把客觀事物 (用戶要求)進行概念設計,轉換成概念結構,以便下一步進行邏 輯設計,我們選擇 E-R模型來表示概念結構,這里舉一個我們熟悉的學生選修課程的例子, 讓我們能很好的理解 E-R模型概念表示法:示例:假設某學校某班的學生需要

16、選修課程,同時學生想知道他們的班主任任課情況。我們作如下分析:首先我們可以從示例描述中得出如下客觀事物:因為示例提出的是某一個班主任,那么必然有一個班主任, 而且是一個班主任老師, 非多個,這符合實現(xiàn)客觀情況。班主任表:王老師示例中是學生選修課程,那么肯定有學生列表,一般情況下,一個班級有多個學生,非一個學生。那么我們得出有學生對象表。學生表:明王小趙華利斯在示例中顯然還有課程對象以供學生選課及班主任任課。課程表:自然歷史C語言Java語言根據(jù)以上分析,以及使用數(shù)據(jù)抽象方法我們得出示例中有三個實體: 這三個實體分別是:學生、班主任、課程;1實體屬性如下:學生(學號、姓名、年齡、性別) 班主任(

17、教師號、教師姓名) 課程(課程號、課程名、學分)1: n “任課”聯(lián)系;學生選修課程的n: m1: n。E-R模型如下圖:2各實體之間的聯(lián)系有:班主任擔任課程的“選修”聯(lián)系;班主任和學生的“所屬”聯(lián)系至此我們得出學生選課,和班主任任課情況圖:1-6 一個基本的完整 E-R圖1.3.7 E-R 模型向關系模型的轉換從 E-R 模型向關系模型轉換時,所有實體和聯(lián)系都要轉換成相應的關系模式,轉換規(guī) 則如下:每個實體類型轉換成一個關系模式。一個 1:1 的聯(lián)系可以轉換為一個關系模式,或與任意一端的關系模式合并,若獨立轉 換為一個關系模式, 兩端的關系碼及聯(lián)系的屬性為該關系的屬性; 若與一端合并, 那么

18、將另 一端的關系碼及聯(lián)系的屬性合并到該端。一個 1:n 的聯(lián)系可以轉換成一個關系模式,或與n 端的關系模式合并。若獨立轉換為一個關系模式,兩端的關系碼及聯(lián)系的屬性為該關系的屬性。 N 端的關系碼為該關系的碼。一個 m:n 的聯(lián)系可以轉換成一個關系模式,那么兩端的關系碼及聯(lián)系的屬性為該關系 的屬性,關系的碼為兩端實體碼的組合。3 個或 3 個以上的多對多的聯(lián)系可以轉換為一個關系模式,那么這些關系的碼及聯(lián)系的屬性為關系的屬性,而關系的碼為各個實體碼的組合。具有相同碼的關系可以合并。根據(jù)上述原則:將圖: 1-6 轉換為關系模式如下: 學生(學號、姓名、年齡、性別、老師編號) :這符合轉換規(guī)則中 1:

19、n 的關系。 課程(課程號、課程名、學分、老師編號) :老師和課程實體之間,這符合轉換規(guī)則中 1: n 的關系。班主任(教師號,教師姓名)將實體學生和課程 m:n 的關系轉化成關系模式(學生號、課程號、成績)。1.4 范式上面我們通過舉例說明了 E-R 模型向關系模式轉換的方法與原則,但是這樣轉換得來 的初始關系模式并不能完全符合要求, 還會有數(shù)據(jù)冗余, 更新異常等問題的存在, 那么使得 我們在構造數(shù)據(jù)庫時還必須遵循一定的規(guī)則 (如: 依賴)進行規(guī)范化設計。 在關系數(shù)據(jù)庫中, 這種規(guī)范化設計規(guī)則就是范式, 范式是符合某一種級別的關系模式的集合。 關系數(shù)據(jù)庫中的 關系必須滿足一定的要求,即滿足不

20、同的范式,目前關系數(shù)據(jù)庫有六種范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六 范式(6NF )。滿足最低要求的范式是第一范式( 1NF)。在第一范式的基礎上進一步滿足更 多要求的稱為第二范式(2NF),其余范式依此類推。一般說來,數(shù)據(jù)庫只需滿足第三范式(3NF )就行了。二范式(2NF ),其余范式依此類推。一般說來,數(shù)據(jù)庫只需滿足第三范 式(3NF)就行了。下面我們舉例介紹第一范式(1NF)、第二范式(2NF)和第三范式(3NF)第一范式( 1NF)在任何一個關系數(shù)據(jù)庫中,第一范式(1NF、是對關系模式的基本要求,不滿足第一范式

21、(1NF、的數(shù)據(jù)庫就不是關系數(shù)據(jù)庫。所謂第一范式(1NF、是指數(shù)據(jù)庫表的每一列都是不可分割的基本數(shù)據(jù)項。同一列中不能有多個值, 即實體中某個屬性不能有多個值或者不能有重復的屬性。 如果出現(xiàn)重復的屬性,就可能需要定義一個新的實體,新的實體由重復的屬性構成,新實體與原實體之間為一對多 關系,在第一范式(1NF )中表的每一行只包含一個實例的信息。如果關系模式的每一個屬 性都不可分解(即:就是數(shù)據(jù)表的每一列不可再分,無重復的列),則稱該關系模式為第一范式:實例如:1:不滿足第一范式的實例:員工表員工的名稱員工職務員工薪水和住址黎明程序員2000.00,蘇州市梟雄軟件工程師1500.00,上海市王麗項

22、目經(jīng)理8000.00,蘇州市里程總經(jīng)理10000.00,北京市很明顯上例中第三列“員工薪水和住址”屬性可以再分拆,不符合第一范式的定義;2滿足第一范式的例子: 員工表員工的名稱員工職務員工薪水住址黎明程序員2000.00蘇州市梟雄軟件工程師1500.00上海市王麗項目經(jīng)理8000.00蘇州市里程總經(jīng)理10000.00北京市很明顯上例滿足第一范式,因為每列都不能分拆,無重復的列,屬性單一。1.4.2 第二范式(2NF)第二范式(2NF)是在第一范式(1NF)的基礎上建立起來的,即滿足第二范式( 2FN) 必須先滿足第一范式(1NF)。第二范式(2NF)要求數(shù)據(jù)庫表中的每個實例或行必須可以 被惟一

23、的區(qū)分。為實現(xiàn)區(qū)分通常需要為表加上一個列,以存儲各個實例的惟一標識,這個惟一屬性列被稱為關鍵字或主鍵、主碼。第二范式(2NF )要求實體的屬性完全依賴于主關鍵字。所謂完全依賴是指不能存在僅 依賴主關鍵字的一部分的屬性,如果存在,那么這個屬性和主關鍵字的這一部分應該分離出 來,形式一個新的實體, 新實體與原實體之間是一對多的關系,為實現(xiàn)區(qū)分通常需要為表加上一個列,以存儲各個實例的唯一表示。簡而言之,第二范式就是非主鍵屬性非部分依賴于關鍵字。以下是滿足第二范式的例子:員工表員工號員工的名稱員工職務員工薪水住址0001黎明程序員2000.00蘇州市0002梟雄軟件工程師1500.00上海市0003王

24、麗項目經(jīng)理8000.00蘇州市0004里程總經(jīng)理10000.00北京市在這個例子中除了滿足第一范式的同時增加了主鍵,是唯一標識一個員工, 符合第二范式的要求。1.4.3 第三范式(3NF)滿足第三范式(3NF)必須先滿足第二范式(2NF )。簡而言之,第三范式(3NF)要求 一個數(shù)據(jù)庫表中不包含已在其他表中已包含的非主關鍵字信息。以下是滿足第三范式的簡單例子:部門表部門號部門名稱部門主管1001開發(fā)部王維1002人事部李白1003總辦杜甫1004行政部羅斯福員工表員工號員工的名稱員工所在部門編號員工職務員工薪水住址0001黎明1001程序員2000.00蘇州市0002梟雄1002軟件工程師15

25、00.00上海市0003王麗1003項目經(jīng)理8000.00蘇州市0004里程1004總經(jīng)理10000.00北京市員工信息表中列出部門編號后就不能再將部門名稱等與部門有關的信息再加入員工信 息表中。如果不存在部門信息表,則根據(jù)第三范式(3NF)也應該構建它,否則就會有大量的數(shù)據(jù)冗余。簡而言之,第三范式是屬性不依賴于其它非主鍵屬性。范式小結目的:數(shù)據(jù)庫設計規(guī)范化的目的是使結構更合理,消除存儲異常,使數(shù)據(jù)冗余盡量小, 便于插入、刪除和更新數(shù)據(jù)。原則:遵從概念單一化“一事一地”原則,即一個關系模式描述一個實體或實體間的一種聯(lián)系。規(guī)范的實質就是概念單一化。方法:將關系模式投影分解成兩個或兩個以上的關系模

26、式。要求:分解后的關系模式集合應當與原關系模式“等價”,即經(jīng)過自然連接可以恢復原關系而不丟失信息,并保持屬性間合理的聯(lián)系。一個關系模式接著分解可以得到不同關系模式集合,也就是說分解方法不是唯一 的。最小冗余的要求必須以分解后的數(shù)據(jù)庫能夠表達原來數(shù)據(jù)庫所有信息為前提來實 現(xiàn)。其根本目標是節(jié)省存儲空間,避免數(shù)據(jù)不一致性,提高對關系的操作效率,同時滿 足應用需求。實際上,并不一定要求全部模式都達到3NF不可。有時故意保留部分冗余可能更方便數(shù)據(jù)查詢。 尤其對于那些更新頻度不高,查詢頻度極高的數(shù)據(jù)庫系統(tǒng)更是如此。在關系數(shù)據(jù)庫中,除了函數(shù)依賴之外還有多值依賴,連接依賴的問題,從而提出 了第四范式,第五范式

27、等更高一級的規(guī)范化要求。1.5 Oracle體系結構Oracle是全球最大的關系型數(shù)據(jù)庫和信息管理軟件供應商, Oracle公司一直在數(shù)據(jù)庫領 域扮演著領頭羊的角色。其數(shù)據(jù)庫產品以運行穩(wěn)定、性能卓越而著稱于世,贏得了眾多廠商 和企業(yè)的青睞。1.5.1 Oracle產品的突出特點支持大數(shù)據(jù)庫、多用戶的高性能的事務處理遵守數(shù)據(jù)庫存取語言、操作系統(tǒng)、用戶接口和網(wǎng)絡通訊協(xié)議的工業(yè)標準 優(yōu)秀的安全控制和完整性控制支持分布式數(shù)據(jù)庫和分布式處理具有可移植性、可兼容性和可延續(xù)性 對象關系型數(shù)據(jù)庫系統(tǒng)等1.5.2 Oracle serverOracle server發(fā)展經(jīng)歷了主機系統(tǒng)-C/S體系結構-N-層體系

28、結構。Oracle server是第 一個面向對象的關系型數(shù)據(jù)庫管理系統(tǒng),從Oracle8i開始通過引入對象類型, 實現(xiàn)了面向對象的支持。在討論 Oracleserver 之前我們需要區(qū)分 Oracle server 和 Oracle databaseOracle server 由實例(INSTANCE )和數(shù)據(jù)庫(DATABASE )組成:Oracle 實例是一組 內存結構和一組后臺進程的集合。Oracle 實例:1內存結構總稱SGA (系統(tǒng)全局區(qū))并且主要包括:數(shù)據(jù)高速緩存重做日志緩沖區(qū)共享池2后臺進程主要有: SMON、PMON、DBWR、CKPT、LGWR 等。圖解如下:ORACLE

29、SERVER實例0001000200030004黎明梟雄王麗里程程序員SGA (內存結2構組)00軟件工程師 項目經(jīng)理 總經(jīng)理158000.00后臺進程組蘇州市 上海市 蘇州市 北京市/海市戶二_ T控制文件重做日志文件圖 1-7: ORACLE SERVER 概圖數(shù)據(jù)庫:數(shù)據(jù)庫用于存放數(shù)據(jù),以供用戶訪問,由一組操作系統(tǒng)文件組成(數(shù)據(jù)文件、 控制文件、重做日志等)。1.5.3 Oracle數(shù)據(jù)庫物理結構大家都知道數(shù)據(jù)庫數(shù)據(jù)的變化(如:INSERT增加數(shù)據(jù),UPDATE修改數(shù)據(jù))即:數(shù)據(jù)變化和事務變化,需要永久或暫時的存儲到OS文件中,供以后查詢分析,這就要求數(shù)據(jù)庫有相應的物理文件來存儲數(shù)據(jù),就

30、好像工廠生產出的產品,無論以后怎么銷售貨物, 都需要用倉庫來存放。那么 Oracle數(shù)據(jù)庫中有哪些物理文件來保存數(shù)據(jù)和事務的變化呢?這里我 們主要講解如下用來存儲的物理文件。數(shù)據(jù)文件(DATABASEFILE ):顧名思義,數(shù)據(jù)文件就是用于存儲數(shù)據(jù)庫數(shù)據(jù)的文件,在數(shù)據(jù)文件中存儲著用戶數(shù)據(jù)(表、索引等)、數(shù)據(jù)字典以及回滾段數(shù)據(jù)等。Oracle數(shù)據(jù)庫至少包含一個數(shù)據(jù)文件,并且數(shù)據(jù)文件是表空間的物理組成元素,一個表空間可以包含多個數(shù)據(jù)文件,表空間我們在以后的章節(jié)會講到;Oracle為數(shù)據(jù)文件以.dbf結尾。數(shù)據(jù)文件有兩個文件號:絕對文件號和相對文件號,絕對文件號是數(shù)據(jù)文件在數(shù)據(jù)庫中的唯一標識;相對文

31、件號是數(shù)據(jù)文件在表空間的唯一標識。數(shù)據(jù)文件由后臺進程DBWR進程寫入。圖解如下:數(shù)據(jù)庫重做日志文件(REDO LOG):重做日志文件是用于記錄數(shù)據(jù)庫變化的物理文件,其 目的是為了在出現(xiàn)意外時恢復 Oracle數(shù)據(jù)庫,數(shù)據(jù)庫至少要包含兩個重做日志文件組,并 且這些日志文件組需要循環(huán)使用:重做日志由LGWR寫入。重做日志文件組使用規(guī)則如下:如果兩個日志文件組,當?shù)谝粋€日志文件組寫滿后, Oracle自動進行日志切換, 并且把日志寫入第二個日志組;當?shù)诙€日志組寫滿以后會再次切換到第一個 Oracle日至文件組,并且把日志寫入第一個日志組,依此類推。下圖為三個日志文件組。圖1-9重做日志組工作原理圖

32、控制文件(CONTROL FILE):控制文件是記錄和維護數(shù)據(jù)庫結構的重要文件。Oracle數(shù)據(jù)庫至少包含一個控制文件, 一般情況下,實例和數(shù)據(jù)庫是一一對應關系, Oracle數(shù)據(jù)庫 正是通過控制文件在實例和數(shù)據(jù)庫之間建立關聯(lián)關系的,當啟動Oracle Server時,系統(tǒng)會根據(jù)初始化參數(shù)定位控制文件,然后根據(jù)控制文件打開所有的數(shù)據(jù)文件和重做日文件??刂莆募涗浫缦滦畔ⅲ簲?shù)據(jù)文件的位置和大小;重做日志文件的位置和大??;數(shù)據(jù)庫的創(chuàng)建時間;日志序列號參數(shù)文件:Oracle數(shù)據(jù)庫實例是由一組內存結構和后臺進程組成,而內存結構究竟有多大,后臺進程數(shù)等都是通過參數(shù)進行定義的,安裝好的數(shù)據(jù)庫由一組默認的參

33、數(shù)組成數(shù)據(jù)庫參數(shù)文件,數(shù)據(jù)庫的使用者可以對其進行調整,這些參數(shù)總共有200多個,Oracle9i參數(shù)文本文件以.ora結尾,Oracle9i以后由文本參數(shù)文件創(chuàng)建生成二進制SPFILE參數(shù)文件,同時支持動態(tài)修改Oracle數(shù)據(jù)庫參數(shù),無須重啟系統(tǒng)。常用基本的參數(shù)有:db_n ame 數(shù)據(jù)庫名Instance_name 數(shù)據(jù)庫實例名con trol_files 控制文件列表db_block_size 數(shù)據(jù)庫塊大小db_cache_size數(shù)據(jù)庫數(shù)據(jù)緩沖區(qū)大小shared_pool_size 共享池大小log_buffer 日志緩沖區(qū)大小等1.5.4 Oracle數(shù)據(jù)庫邏輯結構Oracle數(shù)據(jù)庫的

34、數(shù)據(jù)在物理上是存放在數(shù)據(jù)文件中的,而在邏輯上是存放在表空間中 的,當在數(shù)據(jù)庫中建立數(shù)據(jù)庫對象時(表、索引、簇等),。Oracle是使用邏輯結構來組織數(shù)據(jù)的,這些邏輯結構包括表空間、段、區(qū)、數(shù)據(jù)塊等。就好像一個工廠的倉庫能夠人為的邏 輯分成不同的區(qū)間存放不同產品,比如一個倉庫分為四個區(qū),第一個區(qū)存放冰箱,第二個區(qū)存放彩電,第三個區(qū)存放空調器, 第四個區(qū)作為倉庫管理員臨時住所,這完全是一種邏輯劃分,同時這種邏輯劃分還可以細分其功能;下圖為Oracle數(shù)據(jù)庫邏輯結構和物理結構關系圖:數(shù)據(jù)庫表空間段圖1-10: ORACLE 數(shù)據(jù)庫邏輯結構與物理結構關系圖表空間(TABLESPACE):表空間用于組織

35、數(shù)據(jù)庫數(shù)據(jù),數(shù)據(jù)庫邏輯上由一個或多個表 空間組成,而表空間物理上是由一個或多個物理文件組成。Oracle建議把不同類型的數(shù)據(jù)存放到不同表空間,通過使用不同表空間,可以控制使用磁盤空間量,通過使用不同的表空間可以提高系統(tǒng)的性能。就如從倉庫里找相應的產品,找不同產品到不同的區(qū)域里去找,這樣總比從一堆無序的產品里找需要的產品快得多。段(SEGMENT )用于存儲特定邏輯結構的數(shù)據(jù),段由一個或多個區(qū)組成,表空間可以 包括一個或多個段,但是,一個段只能屬于一個表空間,在Oracle中可以包含許多類型的段。主要的段有:1數(shù)據(jù)段:數(shù)據(jù)段用于存放表數(shù)據(jù);2索引段:索引段用于存放索引數(shù)據(jù);3臨時段:臨時段用于存

36、放排序時的臨時數(shù)據(jù);4回滾段:回滾段則用于存放事務修改數(shù)據(jù)的舊值,支持事務回滾,事務恢復,讀一致性。區(qū)(EXTENT ):區(qū)由連續(xù)的數(shù)據(jù)塊組成,它是Oracle空間分配的邏輯單元。Oracle給塊分配空間時是以塊為單位進行分配的。塊(DATABASE BLOCK):數(shù)據(jù)塊也被稱為 Oracle塊,它是數(shù)文件上執(zhí)行I/O操作的 最小單位,并且尺寸應該是O/S塊的整數(shù)倍。塊就像是倉庫存放產品占用地最小的塊大小,而這個大小由多個瓷磚單位面積組成。后臺進程數(shù)據(jù)的寫入更新等操作并不是直接由用戶寫入數(shù)據(jù)文件,而是用戶把數(shù)據(jù)寫入到緩沖區(qū)中然后由Oracle后臺進程對寫入的數(shù)據(jù)進行寫入數(shù)據(jù)文件,同時,有后臺進程進行協(xié)調把 控制信息、事務信息寫入到其他相應的文件;這就好比是進入一個餐館吃飯,客人只需要提出需求申請(點什么菜,點什么飯),然后由餐館的服務員進行協(xié)調工作,最后餐館服務員 把做好的飯菜提供給客人,其中餐館的服務人員所做的工作就如Oracle后臺數(shù)據(jù)庫進程所做的工作。主要的后臺進程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論