1.1 數(shù)據(jù)管理及數(shù)據(jù)庫技術(shù)的發(fā)展
1.1.1 “數(shù)據(jù)”概念及數(shù)據(jù)管理技術(shù)的發(fā)展
? ? ? ?當(dāng)前箕昭,互聯(lián)網(wǎng)的發(fā)展已經(jīng)歷了PC時代和移動互聯(lián)網(wǎng)時代滓侍,而且在很短的時間里跨越移動互聯(lián)網(wǎng)广鳍,向著物聯(lián)網(wǎng)、人工智能的方向進(jìn)發(fā)膝蜈,一個以“大數(shù)據(jù)鹅心、云計算”為支撐的物聯(lián)網(wǎng)吕粗、人工智能時代即將開啟。
? ? ? ?這里的“大數(shù)據(jù)”是相對傳統(tǒng)的“數(shù)據(jù)”來說規(guī)模很大(可以說是海量的數(shù)據(jù))旭愧,乃至在它的獲取颅筋、管理、分析等方面都遠(yuǎn)遠(yuǎn)超出傳統(tǒng)數(shù)據(jù)管理技術(shù)能力范圍的數(shù)據(jù)输枯,除了海量的數(shù)據(jù)規(guī)模外议泵、“大數(shù)據(jù)”還具有快速的數(shù)據(jù)流轉(zhuǎn)、多樣的數(shù)據(jù)類型和價值密度低等典型特征桃熄。
? ? ? 下面在介紹“數(shù)據(jù)”概念的基礎(chǔ)上先口,先來看一下數(shù)據(jù)管理技術(shù)的發(fā)展過程:
? ? ? ?所謂“數(shù)據(jù)”,是指描述客觀世界中實體對象的某個屬性蜻拨、狀態(tài)池充、特征或數(shù)量而使用的一串由數(shù)字、字符或符號組成的序列缎讼,需要時收夸,也可直接使用圖形、圖像或聲音來表示數(shù)據(jù)血崭。
? ? ? ?人們在利用計算機進(jìn)行數(shù)據(jù)管理的過程中先后經(jīng)歷了三個發(fā)展階段:
? ? ? ?一是人工管理階段卧惜,這一階段是在20世紀(jì)50年代中期以前,當(dāng)時計算機主要用于科學(xué)計算夹纫,這一階段的主要特征是:
? ? ? ?1)咽瓷、不能長期保存數(shù)據(jù)。在20世紀(jì)50年代中期之前舰讹,計算機一般在關(guān)于信息的研究機構(gòu)里才能擁有茅姜,當(dāng)時由于存儲設(shè)備(紙帶、磁帶)的容量空間有限月匣,都是在做實驗的時候暫存實驗數(shù)據(jù)钻洒,做完實驗就把數(shù)據(jù)結(jié)果打在紙帶上或者磁帶上帶走奋姿,所以一般不需要將數(shù)據(jù)長期保存。
? ? ? ?2)素标、數(shù)據(jù)并不是由專門的應(yīng)用軟件來管理称诗,而是由使用數(shù)據(jù)的應(yīng)用程序自己來管理。作為程序員头遭,在編寫軟件時既要設(shè)計程序邏輯結(jié)構(gòu)寓免,又要設(shè)計物理結(jié)構(gòu)以及數(shù)據(jù)的存取方式。
? ? ? ?3)计维、數(shù)據(jù)不能共享袜香。在人工管理階段,可以說數(shù)據(jù)是面向應(yīng)用程序的享潜,由于每一個應(yīng)用程序都是獨立的困鸥,一組數(shù)據(jù)只能對應(yīng)一個程序,即使要使用的數(shù)據(jù)已經(jīng)在其他程序中存在剑按,但是程序間的數(shù)據(jù)是不能共享的疾就,因此程序與程序之間有大量的數(shù)據(jù)冗余。
? ? ? ?4)艺蝴、數(shù)據(jù)不具有獨立性猬腰。應(yīng)用程序中只要發(fā)生改變,數(shù)據(jù)的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)就相應(yīng)的發(fā)生變化猜敢,因而程序員要修改程序就必須都要做出相應(yīng)的修改姑荷,給程序員的工作帶來了很多負(fù)擔(dān)。
? ? ? ??二是文件管理階段缩擂,這一階段是在20世紀(jì)50年代后期到60年代中期鼠冕,這時的計算機開始應(yīng)用于數(shù)據(jù)管理方面。文件管理階段數(shù)據(jù)就是以文件的形式來存儲胯盯,由操作系統(tǒng)統(tǒng)一管理懈费。文件管理階段也是數(shù)據(jù)庫發(fā)展的萌牙與初級階段,使用文件系統(tǒng)來存儲博脑、管理數(shù)據(jù)具有以下4個特點:
? ? ? 1)憎乙、數(shù)據(jù)可以長期保存。有了大容量的磁盤作為存儲設(shè)備叉趣,計算機開始被用來處理大量的數(shù)據(jù)并存儲數(shù)據(jù)泞边。
? ? ? ?2)、有簡單的數(shù)據(jù)管理功能疗杉。文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)脫鉤阵谚,程序和數(shù)據(jù)分離,是數(shù)據(jù)和程序有了一定的獨立性,減少了程序員的工作量梢什。
? ? ? ?3)闻牡、數(shù)據(jù)共享能力差。由于每一個文件都是獨立的绳矩,當(dāng)需要用到相同的數(shù)據(jù)時,必須建立各自的文件玖翅,數(shù)據(jù)還是無法共享翼馆,也會造成大量的數(shù)據(jù)冗余。
? ? ? ?4)金度、數(shù)據(jù)不具有獨立性应媚。在此階段數(shù)據(jù)仍然不具有獨立性,當(dāng)數(shù)據(jù)的結(jié)構(gòu)發(fā)生變化時猜极,也必須修改應(yīng)用程序中姜,修改文件的結(jié)構(gòu)定義;而應(yīng)用程序的改變也將改變數(shù)據(jù)的結(jié)構(gòu)。
? ? ? ??三是數(shù)據(jù)庫管理階段跟伏,這一階段是在20世紀(jì)60年代后期開始的丢胚,隨著計算機應(yīng)用范圍越來越廣,被管理的數(shù)據(jù)量急劇增長受扳,與此同時多種應(yīng)用携龟、多種語言共享數(shù)據(jù)的要求也越來越強烈,在此背景下數(shù)據(jù)庫技術(shù)便應(yīng)運而生勘高,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng)--數(shù)據(jù)庫管理系統(tǒng)峡蟋。
? ? ? ? 用數(shù)據(jù)庫管理系統(tǒng)來管理數(shù)據(jù)比文件系統(tǒng)具有更為明顯的優(yōu)點,從文件系統(tǒng)到數(shù)據(jù)庫管理系統(tǒng)的跨越华望,標(biāo)志著數(shù)據(jù)管理技術(shù)的一個飛躍蕊蝗。在接下來的1.1.2和1.1.3中將依次介紹數(shù)據(jù)庫的相關(guān)概念和數(shù)據(jù)庫技術(shù)的發(fā)展。
1.1.2 數(shù)據(jù)庫相關(guān)概念
? ? ? ?與數(shù)據(jù)庫相關(guān)的概念主要有以下幾個:
? ? ? ?數(shù)據(jù)庫(英文:Database,縮寫:DB):簡單地說赖舟,就是“數(shù)據(jù)”的倉庫蓬戚,但應(yīng)該注意的是,在數(shù)據(jù)庫中建蹄,“數(shù)據(jù)”的存放并不是隨意的碌更、雜亂無章的,而是按一定結(jié)構(gòu)組織起來的洞慎,以便于對它們的存取操作和其他的管理與應(yīng)用痛单。
? ? ? ?數(shù)據(jù)表(英文:Table):在數(shù)據(jù)庫中,按一定結(jié)構(gòu)組織起來的數(shù)據(jù)即是“數(shù)據(jù)表”劲腿。通常(即在一般的關(guān)系數(shù)據(jù)庫中,詳見1.1.3)旭绒,一個數(shù)據(jù)庫由若干個數(shù)據(jù)表構(gòu)成,而每一個數(shù)據(jù)表中保存的是同一類對象的多個不同的屬性數(shù)據(jù),其中每一個對象的全部屬性數(shù)據(jù)在表中的一行上挥吵,不同對象的屬性數(shù)據(jù)位于不同的表格行上重父,而不同的屬性則位于表中不同的列上,表中相同的列描述的是相同的屬性忽匈。
? ? ? ?記錄(英文:Record):數(shù)據(jù)表中的“行”稱之為記錄房午,每一行是一個記錄,描述了一個對象的多個不同屬性數(shù)據(jù)丹允。
? ? ? ?字段(英文:Field):數(shù)據(jù)表中的“列”稱之為字段郭厌,每一列是一個字段,具體描述對象的某一個屬性雕蔽。
? ? ? ? 下面表1-1是一個數(shù)據(jù)表的示例折柠,其中表頭的“姓名”、“學(xué)號”批狐、“入學(xué)年份”扇售、“入學(xué)成績”、“所在班級”為被描述的學(xué)生對象的各個字段的字段名嚣艇,字段名所在的一列為各個對象的該字段的字段值承冰,表頭下各行為被描述的學(xué)生對象的各個字段的字段值。
? ? ? ?數(shù)據(jù)庫管理系統(tǒng)(英文:Database Management System,縮寫:DBMS):是指用于管理數(shù)據(jù)庫髓废,以幫助用戶高效完成創(chuàng)建數(shù)據(jù)庫巷懈、訪問數(shù)據(jù)庫(對庫中表數(shù)據(jù)的存取、讀寫等)及維護數(shù)據(jù)庫等操作的軟件慌洪。
? ? ? ?數(shù)據(jù)庫應(yīng)用程序(英文:Database Application):是為了更好地創(chuàng)建或利用數(shù)據(jù)庫顶燕、實現(xiàn)一些專業(yè)的、特殊的或復(fù)雜的數(shù)據(jù)處理功能冈爹,采用各種數(shù)據(jù)庫編程語言編寫的一些應(yīng)用軟件涌攻。
? ? ? ?數(shù)據(jù)庫系統(tǒng)(英文:Database System,縮寫:DBS):是由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)频伤、數(shù)據(jù)庫應(yīng)用程序構(gòu)成的一個可供用戶有效地實現(xiàn)數(shù)據(jù)管理的一個系統(tǒng)恳谎。
? ? ? ?在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)庫是核心和基礎(chǔ)憋肖,用戶直接或通過數(shù)據(jù)庫應(yīng)用程序?qū)?shù)據(jù)庫的各種或簡單或復(fù)雜的操作都是在數(shù)據(jù)庫管理系統(tǒng)的管理之下進(jìn)行的因痛。它們之間的關(guān)系可用下圖來表示: