【Java工程師之路】[2-1.0]數據庫基礎

一、數據庫基本術語
從今天開始我們來一起學習ORACLE11G的相關內容:大家都知道ORACLE是數據庫相關的技術,那麼我們的學習就從數據庫相關的幾個術語開始,我們先來看兩個術語:
信息和數據,
信息:講到信息大家一定不會陌生,因爲我們生存的社會就是一個信息社會,但是如果我們想切確的給信息下一個定義,去顯示不是很那麼很容易,就信息科學認爲還是很複雜的,那麼我們在這裏就把複雜的東西簡單來講:信息就是一切“表述”(或反映)事物的內部或外部互動狀態或關係的這麼一個東西。自然界的颳風下雨、電閃雷鳴,生物界的揚花授粉、雞叫蛙鳴,人類社會的語言交流、書信往來,都屬於信息傳播的範疇。那麼我們現在周圍的信息越來越多,爲了更有效的管理和利用信息.我們就想到利用計算機來對信息進行管理那麼就出現了另一個術語:數據
那麼什麼又是數據呢?
數據是描述事物屬性的符號,可以是數字、文字、圖形、圖像、聲音、語言甚至影視、動畫等。這些數據的多種表現形式,都可以經過數字化後存入計算機。所以說數據是數據庫存儲的基本對象。也就是說在計算機中,爲了存儲和處理我們人類所使用的信息,就使用一些事物的特徵,然後組合成一條記錄來表示.即現實世界中的一切事物都可以用數據來表示和描述。例如我現在準備表示:“杜飛這個人的信息”:
杜飛 男 30 計算機系 教研室 1312043xxxx
所以我們可以看到信息和數據之間存在不同,但也有必然的聯繫。
早期的計算機主要用於科學計算,如早期就是用於計算彈道軌跡,但後來逐步用於數據處理,發展到現在經歷了三個階段:
一、人工管理階段
這個階段主要在20世紀50年代中期以前,因爲當時計算機硬件的發展還是成熟,只有紙帶和卡片等所謂的外部存儲器,沒有現在我們現在“高科技”的硬盤等,至於軟件也沒有現在的各種人性化的操作系統,沒有專門用於管理數據的軟件,那麼數據以符號的方式存放到紙帶或卡片上順序輸入到計算機中進行處理。這個階段的特點如下圖所示:
clip_image002
特點總結如下:
1 數據不保存:主要是因爲沒有相應的存儲設備
2 數據不能共享:每個數據面向某個應用程序,存在對應關係,不能共同使用,因此造成3 數據的冗餘。
4 數據不具有獨立性 數據和程序緊密結合,當數據的結構發生變化,則應用程序必須隨之修改。
二、文件管理階段
這個階段主要是50年代到60年代中期。這個時候計算機的發展又上了一個臺階,硬件方面出了磁盤,磁鼓等存儲設備,這就意味着數據可以保存下來。軟件方面主要是出現了OS,我們都知道OS有五大基本功能:處理器管理,存儲器管理,文件管理,設備管理,作業管理,而這裏就利用了其中的文件管理來對數據進行管理。那麼這個階段有如下特點:
clip_image004
總結如下:
1 數據可以保存
2 由文件系統管理數據:文件系統是通過中間的一個接口來進行管理,使得應用程序採用統一的存取方式來操作數據。
3 數據共享性差: 文件系統只負責存放數據,而各個文件之間沒有聯繫在一起。即文件文件的冗餘性較大。
4 數據不具有獨立性。
三、數據庫管理階段
主要是60年代後期至今,數據庫管理階段實現了數據與數據之間的聯繫,可以實現對數據進行統一集中的管理。使得數據的存取獨立於應用程序,實現數據的共享。數據庫系統也是以文件的形式管理和存儲數據的,但它是數據的一種高級組織方式,它使用DBMS技術來實現對數據的統一管理,把應用程序所需要的所有數據都按照一個統一的格式以記錄爲單位進行存儲。如圖所示:
clip_image006
特點如下:
1 數據共享
2 數據結構化(關係結構)
3 數據獨立性
4 可控數據冗餘度
5 統一數據控制控能(安全性、併發性)
那麼我們哆哩哆嗦講了這麼多,主要就是爲了表述數據庫管理階段相對於人工管理階段和文件管理階段有很大的優越性。那麼有朋友可能就要問了,那麼到底什麼是數據庫呀,給數據庫下一下定義:簡單來說,就是爲了滿足用戶的需要,按照一定的數據結構對數據進行組織,存儲和使用的數據集合。所以從這個定義中我們可以看到數據庫中存儲的是數據的集合,那麼我們用戶如何實現對這麼數據進行管理和使用。那麼又要引入另一個術語:數據庫管理系統
DBMS(數據庫管理系統):對數據庫進行維護和管理的軟件。用於建立、使用和維護數據庫,簡稱dbms。它對數據庫進行統一的管理和控制,以保證數據庫的安全性和完整性。用戶通過dbms訪問數據庫中的數據,數據庫管理員也通過dbms進行數據庫的維護工作
所以我們主要學習的就是如何利用DBMS來實現對數據庫的操作,管理和維護,DBMS有很多如; Oracle SQL Server MySQL……
那麼概念到此還沒有介紹完,還有一個概念我們需要知道:
DBS:數據庫系統:
含義是指研究、開發、建立、維護和應用數據庫系統所涉及的理論、方法、技術所構成的學科。在這一含義下,數據庫系統是軟件研究領域的一個重要分支,常稱爲數據庫領域。
一個數據庫系統要包括四個主要部分:
– 數據庫
– 用戶(分爲最終用戶、程序員、DBA)administrator
– 軟件(數據庫管理軟件、應用軟件)
– 硬件設備
二、概念模型
概念模型是指在信息世界中爲研究“對象和過程”所建立的較爲抽象的模型,它是一種不依賴於計算機軟件和硬件的具體實現的一種模型。它是從用戶的想法和觀點出發,結合商業規則和設計人員的經驗,將現實世界的需求用更直觀的方法表達出來。
在信息世界中,常使用實體-關係(Entity-Relationship Approach)簡稱爲ER方法來分析邏輯模型。
其中涉及到的基本概念有如下幾個:
實體(Entity):客觀存在並可以相互區分的人、事、物,例如人、物、實際的對象、某些概念或事物之間的聯繫。
屬性(Attribute):實體所具有的某一特徵,一個實體可以由若干個屬性來刻畫。
關係(Relationship):實體之間的聯繫。如員工和部門之間,學生與專業之間,員工和企業之間等等都有一定的關係。而這個關係一般有3種類型:
1:1類型: 即一對一的關係。如一個廠長只能負責一個工廠,返之一個工廠只有一個廠長。
1:m類型:即一對多的關係。一個工廠可以有多個員工,但一個員工只能屬於一個工廠。
m:n類型:即多對多的關係。一個學生可以學習多門課程,一門課程有多個學生選修。
三種關係的圖形表示方法如下圖:
clip_image008
概念模型的表示方法最常用的是實體-聯繫方法(Entity-Relationship Approach),是程品山先生於1976年提出的,該方法是用E-R圖來描述某一組織的概念模型。
E-R方法是抽象和描述現實世界的有力工具。也是目前數據庫設計人員最常用的方法。
下面通過舉例給出E-R圖的具體畫法:
用矩形表示實體, 用橢圓表示屬性,用菱形表示關係。
clip_image010
剛纔我們介紹的是概念模型,概念數據模型是按用戶的觀點對數據和信息建模,是現實世界到信息世界的第一層抽象。 那麼下面咱們來看一下數據模型
三、數據模型
如果想搞清楚數據模型到底是什麼小東東?就必須從數據存儲的過程看起:
數據存儲的過程就是:對現實生活中事物特性的認識、概念化到計算機數據庫裏的具體表示的逐級抽象的過程。即涉及現實世界—概念世界—機器世界 三個領域。
1、現實世界:事物本身的性質決定。
2、概念世界:現實世界在人們頭腦中的反映,是對客觀事物及其聯繫的一種抽象描述。只考慮數據本身的結構與相互間的自然聯繫。與計算機的具體實現無關。
3、機器世界(數據世界|存儲世界)
那麼我們要講到的數據模型就是將概念世界中的事物數據化的結果。
數據模型:爲準確地反映事物本身及事物之間的各種聯繫,數據庫中的數據必須有一定的結構,這種結構就稱爲數據模型。任何一種數據庫系統都是基於某種數據模型的。
按照數據庫管理系統所支持的數據模型劃分爲層次數據庫、網狀數據庫、關係數據庫三種類型。可以說關係數據庫是在層次數據庫和網關數據庫之後發展起來的一種數據庫。1970年IBM公司的一個博士寫Codd寫了一篇論文《大型共享數據庫的關係模型》提出了關係模型的概念。一語驚醒夢中人,大家在茫茫大海中找到了方向, 關係型佔到其中的90%,如Oracle,SQL Server,MySQL等等就屬於關係型數據庫。.IBM對數據庫的發展功不可沒,
層次型數據庫(又稱樹型):
特徵:有且僅有一個結點無雙親,這個結點稱爲根結點。其他結點有且僅有一個雙親結點。
image
 
網狀型數據庫:
特徵:可以有一個以上的結點無雙親. 至少有一個結點有多於一個的雙親.
層次模型與網關模型不同之處主要有三點:
(1) 層次模型中子女到雙親的聯繫是唯一的,而網狀模型則可以不唯一.因此在網狀模型中就不能只用雙親是什麼記錄來描述記錄之間的聯繫,而必須同時指出雙親記錄和子女記錄,並給每一種聯繫命名,即用不同的聯繫名來區分。
(2) 網狀模型中允許使用複合鏈。層次型則不可以。即兩個記錄之間可以有兩種以上的聯繫。如圖(3)
image
 
當然我們的重點還是要放在關係型數據庫上:
關係模型:關係數據庫是以二維表格的形式存儲各種類型的數據,它是二維表的集合。而我們上小學的時候就已經學習了二維表格有行和列組成,那麼在我們的數據庫中一行表示該實體的一個實例,一列表示該實體的一個屬性。如圖所示:
學員表:
clip_image016
下面列出了關係模型中的常用概念。
關係:可以理解爲一張二維表,每個關係都具有一個關係名,就是通常說的表名。
元組:可以理解爲二維表中的一行,在數據庫中經常被稱爲記錄。
屬性:可以理解爲二維表中的一列,在數據庫中經常被稱爲字段。
域:屬性的取值範圍,也就是數據庫中某一列的取值限制。
關鍵字:一組可以唯一標識元組的屬性。數據庫中常稱爲主鍵,由一個或多個列組成。
關係模式:指對關係的描述,其格式爲:關係名(屬性1,屬性2,…,屬性N)。在數據庫中通常稱爲表結構。
SQL 標準:
SQL全稱是“結構化查詢語言(Structured Query Language)” 是一種數據庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關係數據庫系統。SQL語言結構簡潔,功能強大,簡單易學,所以自從IBM公司70年代推出以來,SQL語言,得到了廣泛的應用。1979年ORACLE公司首先提供商用的SQL。如今無論是像Oracle ,Sybase,Informix,SQL server這些大型的數據庫管理系統,還是像Visual Foxporo,PowerBuilder這些早期的數據庫開發系統,都支持SQL語言作爲查詢語言。也就是說SQL已成爲關係型數據庫管理系統的一個公共語言。SQL 語言又分爲四大部分:
數據操縱語言DML(INSERT, UPDATE, DELETE語句)
數據定義語言DDL(如CREATE, DROP等語句)
數據控制語言DCL(如COMMIT, ROLLBACK等語句)
數據查詢語句,也就是博大精深的Select 語言。
這些都是我們後期要學習的內容。
四、 網絡數據庫
如果從發展的角度來講數據庫應該分爲單機版和網絡版,但現在如果還在此和大家討論單版就顯得沒有實際意義了,現在所使用的全部都是網絡版數據庫。那麼這個體系中就存在兩個角色;
數據庫服務器和客戶機
服務器端:把數據庫管理系統安裝在某個機器上,如ORACLE,SQL Server,MySQL等等。那麼這個機器就是一個數據庫服務器。
客戶端:這類機器上一般不需要安裝DBMS的核心組件,只需要安裝客戶端工具即可,通過此工具即可連接到服務器端進行相應的工具。當然在此必須知道對方所使用的端口號,ORACLE所使用的默認端口號爲:1521。

發佈了65 篇原創文章 · 獲贊 2 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章