跳轉到內容

計算機資訊系統/資料庫簡介

來自華夏公益教科書,自由的教科書,為自由的世界

資料庫定義及示例

[編輯 | 編輯原始碼]
電話簿

資料庫是儲存和組織的資料集合,以便在需要時輕鬆檢索。它是模式、表、查詢、報表、檢視和其他物件的集合。為了維護和訪問資料庫,您需要使用 DBMS(資料庫管理系統)。這種系統管理和保護資料,以確保資料庫安全可靠。資料庫並不侷限於計算機;事實上,電話簿就是一個數據庫的例子。[1] 所有姓名按字母順序排列,每列都有自己的類別。有一列是您的姓名、電話號碼,可能還有街道地址。使用關係資料庫,當您查詢特定屬性時,可以提取行中的所有資料。

所有這些資料都必須儲存在某個地方!

使用資料庫管理系統有幾個優勢。積極的一面是,它能夠控制冗餘,可以維護資訊儲存的完整性,可以限制訪問,可以共享資料,可以備份/恢復資訊。資料庫管理系統可以透過在一個地方編譯資訊來抵消冗餘。就像在一個資料夾中不能有兩個具有相同名稱和副檔名的音訊檔案一樣,在一個數據庫中也不能有相同的檔案。這可以控制並增加儲存空間。資訊儲存的完整性也可以根據資料庫開發人員的規範來提高。這意味著對資料庫中輸入的資訊(由開發人員確定)的約束將確保儲存資料的準確性。例如,如果資料庫只能儲存圖片,那麼音樂檔案將被拒絕,從而確保始終從資料庫中檢索圖片,準確率達到 100%。這是一個非常簡單的例子來傳達這個想法,因為開發人員施加的約束可以決定不同的內容。資料庫還可以共享資料,允許開發人員從一個資訊源構建多個應用程式,而無需建立新的儲存檔案。資料庫還可以備份和恢復資料。如果計算機系統在長時間的複雜更新過程中出現故障,資料庫可以將檔案恢復到更新時的位置,以便再次執行。[2]

Microsoft Access 365 logo

資料庫主要用於收集和組織資料,人們可能會想知道它在哪些情況下會用到。資料庫的一些例子包括 Microsoft Excel 或 Access。舉個例子,為了說明這些資料庫的用途,我們可以假設這樣一種情況:您要舉行婚禮,需要製作一份邀請名單。對於這樣的過程,使用者可以使用 Microsoft Excel,因為他們的資料庫不會有太多型別的交易,而且不會變得太難控制。但是,如果這種情況發生,Access 將更適合需要的材料。Access 本質上只是 Excel 的一個更高階版本,只有當資料庫不可控或需要直接連結到其他資料庫以系統化的方式訪問資訊時才會用到。這兩種資料庫都可以幫助您做出明智的決策,還可以幫助您以不同的方式理解資料。Access 中的儲存不是重複的,因此它可以節省空間並提高準確性。[3] Access 還提供不同的模板供您選擇,因此您不必從頭開始建立新的資料庫。您還可以建立表之間的關係,以便更輕鬆地導航。為了建立婚禮邀請名單:您可以決定邀請誰和不邀請誰參加招待會,並將這些人分別放在不同的表格中。[4]

這些物品需要以某種方式組織。

資料庫在企業中也很重要。特別是在庫存管理方面。資料庫可以用於控制庫存,以及減少庫存管理的時間、成本和工作量。控制您的庫存對於實現良好高效的業務至關重要。資料庫可以提供最新的庫存水平和產品資訊。它有助於確保庫存能夠滿足消費者的需求。它可以用來預測和分析需求趨勢,以便調整適應市場變化並最大化利潤。它還可以提供自動化功能,從而提高生產力。它可以自動更新庫存水平,以及控制庫存,確保產品始終可供消費者使用。這種自動化功能可以釋放員工的時間去做更多富有成效的事情,例如幫助客戶。說到客戶,他們總是訂購東西,並希望及時快速地收到貨物。資料庫可以幫助提高和維護訂單和交付的效率。它們使訂購和查詢產品變得更容易。雖然這些在企業中也很重要,但它們也可以應用於任何可能擁有庫存的組織。例如圖書館。對於一個可能擁有數百萬本書的圖書館來說,資料庫不僅重要,而且必要。[5]

誰使用資料庫?

[編輯 | 編輯原始碼]
一個建立和使用涉及許多人的資料庫。

有許多人建立、使用、管理和保護資料庫管理系統。資料庫設計師負責設計資料庫。他們與參與系統開發生命週期的其他人(例如系統分析師)合作,找出需要哪些型別的資料以及應研究哪些資料之間的關係,並根據這些關係設計資料庫。資料庫設計師也可能被稱為資料庫架構師、資料庫工程師或資料庫分析師。資料庫開發人員根據資料庫設計師的工作建立資料庫,設定其結構和使用者介面,通常使用資料庫管理系統。這可能與資料庫設計師相同,他們與資料庫程式設計師合作,資料庫程式設計師建立資料庫開發所需的程式。資料庫管理員或 DBA 管理組織中的資料庫,維護它們,監控使用者對它們的訪問,監控它們的效能並執行備份。使用者是實際“使用”資料庫的人:他們在資料庫中輸入資料,更新資料庫中的資料,並從資料庫中檢索資料。[6]

資料特徵

[編輯 | 編輯原始碼]
資料的 3 種狀態

資料是一組事實的集合。它可以是值、度量、數字、文字、測量結果和觀察結果。許多企業如果沒有資料將無法取得如此成功。[7] 資料具有層次結構;這種層次結構是資料的系統化組織。欄位、記錄和檔案是資料組織的一部分。產品名稱或數量是層次結構的最低級別,而資料庫是層次結構的最高級別。[8] 此外,資料定義包括以下內容:名稱、資料型別、描述和屬性。這描述了進入資料庫的屬性。如果計算機使用者想要查詢資料庫的所有資料定義,他或她將查詢資料字典。計算機使用者應該瞭解與資料特徵有關的一些關鍵詞,包括資料欄位、記錄、檔案和資料庫。資料欄位包含一個實體的單個事實。記錄是相關欄位的集合。檔案是相關業務記錄的組織。資料庫是檔案整合的地方。資料特徵關鍵詞對於使用資料庫的企業來說至關重要。

資料組織

[編輯 | 編輯原始碼]
伺服器-網路-資料庫

為了使資料庫高效,它的資料必須以一種易於快速訪問的方式組織。這稱為資料組織。資料組織通常使用主鍵來標識資料儲存的位置。這允許高效地定位特定記錄。資料庫使用幾種不同的方法來高效地儲存和檢索資料。最常見的兩種方法是索引方法和直接方法。索引方法是指資料庫使用索引來跟蹤資料在其中的儲存位置的方法。索引是一個表,它包含主鍵以及該主鍵的位置資訊。索引組織允許快速查詢記錄並從資料庫中檢索資訊。直接組織比索引組織更快。這是因為它使用鍵欄位和稱為雜湊演算法的數學公式來查詢特定記錄在資料庫中的物理儲存位置。這些系統更難開發。它們為名為衝突的事件鋪平了道路,當兩個或多個記錄被分配到同一個儲存地址時就會發生這種情況。一些系統同時使用這兩種方法。鍵欄位首先指示記錄在表中的位置,然後使用雜湊演算法來查詢資料在儲存介質上的物理儲存位置。[9]

資料字典

[編輯 | 編輯原始碼]

Example of Data Dictionary

資料字典是一組只讀表,包含資料庫中的所有資料定義。表結構在沒有密碼的情況下不可編輯。需要密碼才能檢視或編輯表。資料庫中包含的定義包括所有以下內容:表、檢視、索引、叢集、同義詞、序列、過程、函式、包、觸發器等。請記住;資料字典不包含資料表中的任何資訊,只包含有關表的資料。這些有關表的特定資料也被稱為元資料。資料庫字典包含有關架構物件佔用了多少空間以及剩餘空間的資訊。[10] 必須在將資訊放入資料字典之前將其組織起來。資料建模,或為每個資料物件賦予一個描述性名稱,必須針對每個獨立物件進行。完成此操作後,將描述資料的關聯關係以及資料型別的描述。資料型別可以包括將物件定義為文字或影像。完成此操作後,程式設計師必須包括一個關於資料的簡短文字描述。[11]

資料安全和隱私

[編輯 | 編輯原始碼]
公鑰加密是保護資料的一種方法。

資料安全是必不可少的,大多數行業、企業和法律法規都要求資料安全。資料安全保護資料免遭洩露(例如,被不應該看到它的人看到),這樣它包含的資訊就不會被洩露或洩露。資料安全還確保資料的完整性,這意味著不允許對資料、資料結構、配置檔案或日誌進行未經授權的更改。資料安全程式可以跟蹤檔案並監控資料的傳輸,以防止未經授權的訪問並阻止任何可能的入侵發生。[12]

由於技術多年來發展迅速,越來越多的活動透過網際網路、應用程式或其他網路線上進行。這引發了隱私問題,因為個人和敏感資訊通常儲存在許多組織(醫院、保險公司、工作、醫療保健公司等)的資料庫中。為了幫助解決這個問題,已經制定了隱私法,以確定公司和個人如何能夠選擇哪些資訊可以提供給第三方,哪些資訊不能提供。在美國,已經針對特定行業或情況頒佈了不同的隱私法。其中一些法律包括《兒童線上隱私保護法》(COPPA)、《健康保險流通與責任法案》(HIPPA)、《電子通訊隱私法案》(ECPA)和《影片隱私保護法案》。[13]

資料庫分類

[編輯 | 編輯原始碼]

單使用者與多使用者資料庫系統

[編輯 | 編輯原始碼]
資料庫伺服器

單使用者資料庫系統位於一臺計算機上,它們是為一個使用者設計的;通常,它們用於個人使用和小企業。一次只能一個人使用資料庫,因此,如果一個使用者正在使用資料庫,其他使用者必須等到該使用者完成。多使用者資料庫系統用於更大的企業,因為它是一個透過網路訪問的資料庫。這樣,不止一個人可以訪問和更改系統中的資料。大多數系統對資料庫使用某種鎖定機制,以避免人們進行更改時發生衝突。它們可以位於一臺計算機或多臺計算機上。[14]

客戶端-伺服器和 N 層資料庫系統

[編輯 | 編輯原始碼]
電子郵件

大多數多使用者資料庫系統是客戶端-伺服器資料庫系統。基本上,客戶端-伺服器資料庫系統是指包含其他計算機資源的伺服器。當客戶端部分向伺服器發出服務請求時,伺服器會完成該請求。例如,秘書使用她的 PC(客戶端部分)在他們的系統上查詢產品的成本(即在伺服器上,而不是儲存在她的 PC 上)。客戶端被稱為前端,資料庫伺服器被稱為後端。[15] 一些客戶端-伺服器資料庫系統不僅具有前端和後端,而且還具有稱為層的中間部分,這些部分被稱為 N 層資料庫系統。在 N 層資料庫中,客戶端和資料庫從不直接通訊,所有資料都透過中間層傳遞。這種資料庫系統的優點是中間層提供了一層抽象,這樣您就可以更改後端的部分,而無需修改前端的部分。這也是分離職責的好方法;它們還可以提高效率。[16]

客戶端-伺服器-網際網路的組合為其組織提供了另一個維度。它們當然首先充當客戶端和伺服器,並且它們還可以訪問網際網路以進入遠端位置的資料庫。最後階段是能夠建立、檢視、使用、修改和刪除應用程式以及資料。軟體模組和硬體元件用於實際執行功能。客戶端-伺服器連線能夠透過訊息進行通訊,無論伺服器線上還是離線,這些訊息都可以傳送。訊息透過可能包括內聯網和網際網路的網路傳送。網路是一組連線的物件或人;網路能夠將這些訊息相互傳遞。

客戶端-伺服器的主要用途是為企業的需求產生有用的應用程式。客戶端-伺服器使用中介軟體,它是允許客戶端端的應用程式能夠到達實際網路並與伺服器通訊的重要部分。它是網路和應用程式軟體之間的部分。電子郵件是一種中介軟體,因為它們位於網路和應用程式之間。[17]

集中式與分散式資料庫系統以及磁碟型與記憶體型資料庫系統

[編輯 | 編輯原始碼]
資料庫系統

集中式資料庫系統都位於一臺計算機上。這可以是伺服器或大型機。分散式資料庫系統共享一個網路,資料分佈在連線到該網路的幾臺計算機之間。

集中式資料庫系統的一個優點是所有資訊都在一個地方。缺點可能是會發生瓶頸。將所有資訊都儲存在一臺計算機上,可能會讓一些使用者更容易訪問,但對於想要訪問檔案的其他使用者來說則很困難。分散式資料庫系統的一個優點是,即使所有資訊都不在一臺計算機上,也可以使用網路上的任何計算機訪問資料庫。這是用於資料庫的首選系統型別,因為資訊可以很容易地找到。它還確保在使用分散式資料庫系統而不是集中式系統時,所有資料都不會丟失。由於最近技術的進步,使用“雲”是透過網際網路儲存資料庫資訊的另一種方法。這個概念與基於磁碟的和記憶體中的資料庫系統相輔相成。

如今,大多數資料庫都儲存在計算機的傳統硬碟驅動器上,但最近許多資料庫正在轉向記憶體資料庫。這可以將所有資料都儲存在計算機的主記憶體中。與使用基於磁碟的系統相比,這會產生更快的效能。

記憶體資料庫

[edit | edit source]
主要 Oracle 記憶體區域

記憶體資料庫 (IMDB) 是一種將資料儲存在主記憶體中的資料庫,以實現更快的響應時間。[18] 記憶體資料庫有時也稱為主記憶體資料庫系統或 MMDB,近年來在處理高效能計算 (HPC) 和大資料應用程式方面越來越受歡迎。諸如執行電信網路裝置和移動廣告網路的應用程式通常使用主記憶體資料庫。

近年來,三個發展使得記憶體分析越來越可行:64 位計算、多核伺服器和更低的 RAM 價格。[19] 原始碼以壓縮的非關係格式載入到系統記憶體中。記憶體資料庫簡化了處理查詢所涉及的工作,從而提供比磁碟更快、更可預測的效能(因為當使用系統記憶體而不是磁碟儲存(尤其是硬碟驅動器儲存)時,訪問時間和資料庫請求通常要快得多)。主記憶體資料庫比磁碟最佳化資料庫更快,因為內部最佳化演算法更簡單,執行的 CPU 指令更少。記憶體資料庫的另一個優勢是在同一個資料庫中儲存事務資料和分析資料時發揮作用。由於用於分析業務案例的所有資料都寫入單個數據庫,因此更容易進行臨時分析。[20]

資料庫模型

[edit | edit source]

關係資料庫模型

[edit | edit source]

關係資料庫管理系統很重要,因為它們採用多個相關的表並將它們以最不復雜的方式組合在一起。本質上,RDBMS 採用這些較小、不太緊湊的表,並根據單個變數找到將它們彼此關聯的方法,以儘可能避免重複。在建立這樣的資料庫時,需要問四個主要問題:這個資料庫的目的是什麼?需要在這個資料庫中包含哪些資訊?應該將哪些變數放在哪個表中,以使最終結果儘可能地不糾纏/複雜?這個表應該如何格式化?完成所有這些工作後,可以使用 Microsoft Office 的 Access[21] 等程式,透過選擇特定的相關欄位來顯示和組織來建立一個查詢。在此之後,可以使用該查詢生成報告,該報告本質上用於將選定的資訊匯入到一個易於閱讀和查詢資訊的單個數據庫中。

一個數據庫表

當需要資產跟蹤資料庫並且電子表格太大而無法用於特定資料時,關係資料庫就會發揮作用。在完成新資料庫的設計(包括欄位、資料型別、主鍵和外部索引鍵)之後,下一步是實際開始建立資料庫的相應表。建立關係資料庫的第一步是建立並命名一個新的資料庫檔案,該檔案將包含資料庫中包含的所有表和物件。接下來,使用在過程的“設計”階段形成的表結構,建立資料庫中的每個表。最後,一旦表結構完成,最後一步是將資料輸入到表中,並將不同的表根據需要相互關聯。在 Microsoft Access 中,可以在設計檢視下建立表,方法是輸入每個欄位名稱並根據需要指定資料型別和其他屬性。但是,如果您希望在新的資料庫中使用舊的或現有的資料,則會透過將資料從舊檔案傳輸到新檔案來執行稱為資料遷移的過程。此外,設計檢視還允許您在表單中進行各種型別的編輯,如果您希望獲得特定的佈局或設計——例如更改表單顏色、字型大小、欄位的放置或新增標題等。 [22]

星型模式

[edit | edit source]
星型資料庫

星型模式是最簡單的資料庫模型之一,通常用作關係資料倉庫和多維資料庫的模型。它完全由事實表和維度表組成。事實表是一個事件或實體,例如銷售,而維度表包含有關該事件的詳細資訊,例如日期、地點、交付速度等。例如,可以使用地理維度表來描述位置資料,例如國家、州或城市。在星型模式中,事實表周圍環繞著許多維度,這些維度向外延伸,形成了類似於星星的影像。星型模式模型的優點之一是它與聯機分析處理 (OLAP) 相容,聯機分析處理允許從不同的角度對特定資訊進行資料探勘。例如,使用者可以檢視過去特定時間特定專案的銷售額。[23] 星型模式模型的缺點之一是它是一個簡單的模型,因此它不能建立複雜的關係分析。星型模式也是非規範化的,因此資料庫中可能存在冗餘。[24]

關係型別

[edit | edit source]
一對多關係(聯賽與聯賽中的球隊相關)

實體之間有三種基本型別的關係。這三種類型包括:一對一、一對多和多對多。在一對一關係中,一個表中的每一行都與另一個表中的一個特定行相關聯。這意味著第一個表中的行數必須與第二個表中的行數完全相同。這種關係並不常見,因為資料庫的設計並不總是帶來好處。設計沒有好處,因為如果資料直接相關,那麼將所有資料放在一個表中是有意義的。一對一關係有益的一種方法是,如果需要一些資料,但並不經常使用。不經常使用的資料可以單獨儲存,遠離更重要的資料。[25] 一對多關係允許一個表中的每一行與另一個表中的多行相關聯。這種關係對資料庫有利,因為您可以透過僅在一個主表中輸入資料來引用多個不同表中的常用資料。通常,第一個表中的行數將少於第二個、第三個、第四個等表的行數。一對多關係通常用於圖書館。例如,一個表中的作者姓名可能對應於每個作者在不同表中撰寫的書籍。[26]

層次結構和網路資料庫模型

[edit | edit source]
資料庫模型

層次模型是最古老的資料庫模型。它以樹狀結構組織資料,使用父資料段和子資料段。例如,它從樹頂部的單個根節點開始。它延伸到下一級段,然後連線到其他下級段。這用於建模一對多關係。使用此模型的缺點是它需要在多個級別重複儲存資料。這會導致資料庫執行非常緩慢,因為它可能在較低級別搜尋資訊。網路模型使用集合結構。集合由所有者記錄型別、集合名稱和成員記錄型別組成。這種型別的模型顯示多對多關係。父母可以有多個孩子,孩子們也可以有多個父母。這兩種模型型別都已過時,不再用於構建新的資料庫應用程式。它們通常不如其他模型型別靈活。 [27]

此外,訪問資料的路徑必須提前規劃好,並且不能輕易更改。您可能仍然會在使用高容量交易處理的大型系統中看到層次模型,例如銀行或保險公司。

面向物件資料庫模型

[edit | edit source]
像這尊抽象雕塑一樣,OODBMS起初更難理解,但最終會帶來更大的回報。

與其他資料庫模型只能儲存傳統資料(例如日期、數字和文字)不同,面向物件資料庫管理系統(OODBMS)更加抽象。在 OODBMS 中,您可以儲存幾乎任何您想要的資料,以及要與該資料一起使用的方法。為了檢索這些更復雜和多樣化的資料,使用者會發送使用物件查詢語言(OQL)編寫的查詢,它是 SQL 的面向物件版本。由於當今計算機使用者的需求越來越高,OODBMS 越來越普遍。但是,與任何新技術一樣,由於 OODBMS 的缺點,也有一些阻力。

OOBDMS 的單元格圖表

一個缺點是,基於 OODBMS 的應用程式的編輯更加耗時,因為必須對與父類例項互動的應用程式中的其他類進行更改,而 RDBMS 系統中的編輯通常可以獨立於父應用程式。 [28] 這非常耗時,這意味著要花很多錢才能對面向物件資料庫管理系統進行更改。許多商業界的公司都為資訊部門預留了特定的預算,其中包括公司使用的資料庫系統,而 OODBMS 非常昂貴。OODBMS 的另一個缺點是缺乏對安全性和檢視的支援。OODBMS 的使用者無法授予個人對系統中某些物件或類的訪問許可權,這意味著個人要麼根本無法檢視系統,要麼可以訪問系統中的所有內容,這可能是企業不喜歡的。此外,OODBMS 不包含檢視機制,這對於希望檢視其工作並確保其輸入內容都正確的員工來說是一個缺點。OODBMS 的另外兩個缺點是缺乏系統標準以及沒有通用的資料模型。沒有系統標準,系統的整潔性可能會下降,使用起來可能很困難。許多人喜歡通用性,因為這樣他們就知道什麼是對錯,而 OODBMS 無法做到這一點。 [29] 儘管存在額外的困難,但許多重要的客戶仍然使用 OODBMS 進行操作,其中一個重要例子是芝加哥證券交易所,它使用該系統來管理股票交易。

關係資料庫術語

在查看了各種資料庫模型之後,設計關係資料庫涉及 4 個步驟。設計關係資料庫的第一步是確定資料庫的目的及其將用於的活動。這些活動可以包括跟蹤出租房產、學生成績、客戶訂單或庫存。資料庫的使用方式多種多樣,瞭解您將如何使用資料庫將有助於您建立資料庫並最佳化其使用。在瞭解資料庫將服務於什麼目的後,您將能夠確定需要包含在資料庫中的資料(欄位),然後將欄位組織成表格。將邏輯上屬於一起的欄位分組是一個好習慣。接下來查看錶結構,確保所有欄位都已表示且位於正確的表格中。檢視資料中是否存在任何冗餘,這樣您就可以重新構建欄位以最大程度地減少冗餘。最後,確定每個表的結構,列出每個欄位的名稱、型別、大小等,並選擇一個主鍵(資料定義)。此過程將幫助您建立一個滿足您需求並提供您請求資訊的資料庫。 [30]

網路資料庫

[edit | edit source]

網路資料庫的使用

[edit | edit source]
亞馬遜只是眾多利用網路資料庫滿足其業務需求的公司之一

網路資料庫的使用方式有很多。最明顯的方式是檢索資訊。網路資料庫為使用者提供了一種訪問網路提供的大量資訊的方式,而這在一定程度上得益於使用搜索網站,這些網站的資料庫為使用者提供連結。資料庫的其他個人用途包括儲存電子郵件地址、電話號碼和其他資訊,這些資訊可能用於建立朋友和家人的網站。 [31] 在商業方面,網路資料庫允許企業建立“網站調查、反饋表格和客戶/客戶庫存清單”。 [32] 這是一個至關重要的功能,大小企業都可以利用它來滿足自己的需求。一個與網路資料庫商業用途相關的具體例子是電子商務相關活動的管理。在這裡,資料庫用於提供產品圖片和定價等資訊,以及訂單資訊和其他必要的函式,以實現高效可靠的業務交易。網路資料庫的另一個功能是它們能夠顯示動態網頁。這些頁面顯示的資訊會根據使用者的輸入而改變,例如 B2C 網站會根據消費者的過去活動顯示與消費者興趣相關的頁面。從個人到商業應用,網路資料庫是解決與網路相關活動相關的任務的重要組成部分。

此廣告將針對與大學有關的人員。

網站不僅越來越個性化,網頁上的廣告也越來越個性化。包括主要搜尋引擎 Google 在內的公司都向某些內容和受眾提供定向廣告。一種方法是上下文定向,它分析關鍵字、詞頻和連結結構,以確定哪些廣告與頁面的內容相匹配。位置定向使用廣告客戶在特定網頁上選擇的特定廣告,這些網頁應該與觀看者的其他興趣以及他們要提供的其他產品型別相匹配。與之類似的是基於興趣的廣告,它在通常由具有類似興趣的人觀看的網頁上投放與特定興趣相關的廣告。Google 提供了一個程式,人們可以使用它來設定自己的興趣,以便廣告根據他們的選擇進行定製。最後,語言定向會確定頁面的主要語言,並確保顯示的廣告使用相同的語言。如果觀看者甚至無法閱讀所宣傳產品的名稱,那麼廣告就無法發揮作用!所有這些資訊都會被放置到 Google 的廣告搜尋資料庫中,該資料庫會處理這些資訊,並確保您螢幕上的廣告與您相關。 [33]

中介軟體

[edit | edit source]
資料庫佈局

這是一種計算機軟體,它為軟體應用程式提供超出作業系統提供的服務。它是一種連線兩個原本獨立的應用程式的軟體,可以看作是“軟體膠水”。例如,有許多中介軟體產品將資料庫系統連結到 Web 伺服器。這使使用者能夠透過 Web 瀏覽器上顯示的表單從資料庫接收資料,並使 Web 伺服器能夠根據使用者的請求和配置檔案返回動態 Web 頁面。如前所述,中介軟體一詞用於描述充當兩個應用程式之間粘合劑的獨立產品。因此,它不同於可能內置於其中一個應用程式的匯入和匯出功能。它有時被稱為管道,因為它連線了應用程式的兩個方面並在它們之間傳遞資料。分散式計算系統中介軟體可以大致分為兩類。這兩類是提供人工時間服務的和在機器時間內執行的。這種後一種中介軟體透過服務可用性論壇在一定程度上實現了標準化,並且通常用於電信、國防和航空航天行業中複雜的嵌入式系統中。[34]

Web 資料庫的工作原理

[edit | edit source]
PHP 指令碼示例

在我們的科技世界中,我們每天都在使用基於 Web 的資料庫請求。我們不斷訪問網頁,點選連結並使用選單來導航我們對該頁面的活動。使用中介軟體,Web 伺服器將請求傳遞到資料庫查詢,並將資訊儲存並傳遞到資料庫伺服器。然後,資料庫伺服器使用此資訊將頁面定向到其預期去的地方。CGI 指令碼是傳遞資訊的一種另一種方式。它們使用程式語言中的指令,並接受和返回網站資料給使用者。Active Server Pages 是網站上常用的指令碼的另一個示例。它們非常類似於 CGI 指令碼,但它們是獨佔的,因為它們幾乎總是使用 VBS 指令碼或 Java 指令碼。PHP 超文字處理器是一種語言,它每天都變得越來越流行。此指令碼與 CGI 指令碼和 Active Server Pages 極其相似,但與其他程式具有更高的相容性。該指令碼使用 PHP 標記和 html 程式碼來完成其工作。這些指令碼只是今天使用的一些示例以及如何在 Web 伺服器上傳輸資訊。[35]

CGI 指令碼

[edit | edit source]

CGI(通用閘道器介面)指令碼是一組用程式語言(例如 C、Perl、Java 或 Visual Basic)編寫的指令,旨在接受來自 Web 頁面訪問者的資料並向其返回資料。在非常繁忙的站點上,CGI 會顯著減慢伺服器響應時間,因為它會單獨處理每個請求。CGI 指令碼的通常位置是在遠端 Web 伺服器的 cgi-bin 目錄中,但此目錄的確切位置由該機器的 Web 管理員確定。[36]

Active Server Pages

[edit | edit source]

Active Server Pages(ASP)是微軟第一個用於動態生成的 Web 頁面的伺服器端指令碼引擎,其副檔名為 .asp。ASP 的工作原理類似於使用 CGI 指令碼的 Web 頁面,但將資料庫繫結到網站的程式碼通常是用 JavaScript 或 VBScript 編寫的。使用簡單的 HTML 頁面,客戶端會從伺服器請求一個網頁。伺服器只是將檔案傳送給客戶端,頁面就會顯示在客戶端的瀏覽器中。使用 Active Server Pages,伺服器有機會在將檔案傳送給使用者之前對其進行修改。要使用 Active Server Pages,您必須執行 Microsoft Web 伺服器。如果您執行的是 Microsoft Web 伺服器,要執行 ASP 檔案,您只需要在 Web 伺服器上建立一個副檔名為 .ASP 的檔案即可。當瀏覽器請求該檔案時,Web 伺服器足夠智慧,可以在將檔案傳送給客戶端之前預處理該檔案。

PHP 指令碼

[edit | edit source]
PHP 大象吉祥物

PHP(PHP 超文字預處理器)是一種指令碼語言,它越來越多地用於建立動態 Web 頁面。免費下載和使用,[37] 它使用類似於 Perl 或 C++ 的程式碼,這些程式碼使用特殊的 PHP 標記插入到 Web 頁面的 HTML 程式碼中。儘管 PHP 指令碼執行與 CGI 和 ASP 類似的任務,但它們具有與許多型別資料庫高度相容的優勢。

回顧

[edit | edit source]

術語和定義 [38]

屬性 實體的特徵。

集中式資料庫系統 所有系統使用的資料都位於一臺計算機上的資料庫系統。

客戶機-伺服器資料庫系統 資料庫位於伺服器上,並由客戶端裝置訪問的資料庫系統。

衝突 當兩個或多個記錄被分配到同一個儲存地址時發生的事件。

在資料庫中,一個欄位。

資料定義 描述要包含在資料庫表中的資料的屬性的過程。

資料字典 資料庫中所有資料定義的儲存庫。

資料完整性 資料的準確性。

資料隱私 保護資料庫中資料的隱私。

資料安全 保護資料庫中的資料免遭破壞和濫用。

資料驗證 確保輸入資料庫的資料有效(符合資料定義)的過程。

資料庫 一組相關資料,以能夠按需檢索資訊的方式儲存;在關係資料庫中,一組相關表。

資料庫管理系統 (DBMS) 一種用於建立、維護和訪問資料庫的軟體程式。

直接組織 在儲存介質上排列資料的一種方法,它使用雜湊來指定確切的儲存位置。

分散式資料庫系統 系統使用的資料位於透過網路連線的多臺計算機上的資料庫系統。

最終使用者資料庫 由終端使用者開發的資料組成。這些示例包括文件、電子表格、簡報、多媒體和其他檔案的集合。

實體 對企業或組織而言重要的東西(例如人、物件或事件);通常在該企業或組織的資料庫系統中成為資料庫表。

欄位 在資料庫中要儲存的單個數據類別,例如客戶姓名或員工電話號碼。也稱為列。

表單 以格式化的方式檢視和編輯資料庫中的表。雜湊演算法 一種數學公式,用於查詢資料庫中特定記錄的儲存位置。

混合 XML/關係資料庫 一種可以儲存和檢索 XML 資料和關係資料的資料庫系統。

記憶體資料庫 (IMDB) 將所有資料儲存在記憶體中而不是硬碟上的資料庫。

索引 包含主鍵和屬於該主鍵的記錄位置的小表;用於在資料庫中定位記錄。

索引組織 在儲存介質或資料庫上組織資料的一種方法,它使用索引來指定確切的儲存位置。

元資料 關於資料的 data,例如資料字典中包含的資料。

中介軟體 用於連線兩個原本獨立的應用程式的軟體,例如 Web 伺服器和資料庫管理系統。

多維資料庫 (MDDB) 一種專門用於資料倉庫的資料庫型別。

多使用者資料庫系統 一種專為多個使用者訪問而設計的資料庫。

規範化 評估和校正資料庫表結構以最小化資料冗餘的過程。

面向物件的資料庫管理系統 (OODBMS) 一種資料庫系統,其中多種型別的資料與相關程式碼一起儲存為物件。

主鍵 資料庫表中特定欄位,用於唯一標識該表中的記錄。

查詢 檢視資料庫中符合特定條件的資訊的請求。

記錄 資料庫中一組相關欄位。也稱為行。

關係資料庫管理系統 (RDBMS) 一種資料庫系統,其中資料儲存在透過公共欄位相關的表中;今天使用最廣泛的資料庫模型。

報表 以格式化的方式檢視從資料庫表或查詢結果中檢索的資訊。

在資料庫中,一個記錄。

單使用者資料庫系統 位於一臺計算機上,專為單個使用者訪問而設計的資料庫。

結構化查詢語言 (SQL) 關係資料庫中資訊檢索的流行查詢語言標準。

在關係資料庫中,一組相關記錄或行。

問題


將每個術語與其示例匹配 1.
A. 當資料庫不允許使用者在電話號碼欄位中輸入字母時。

B. 要求使用者透過指紋識別器登入資料庫系統。

C. 將欄位分配為“必需”屬性。


i. 資料定義

ii. 資料完整性

iii. 資料安全

填空

2. 在學生資訊資料庫中,姓名被認為是 _______________,而 Jennifer Mitchell 的所有資訊都是___________。

3. 資料 _______ 指的是資料的準確性。

4. 當使用 _____ 組織時,雜湊過程確定資料的儲存位置。

5. 術語前端和後端指的是 ______ 資料庫系統。

判斷正誤

6. 規範化用於最小化資料冗餘。

7. 在關係型資料庫中,可以包含多個表。

8. 使用使用者名稱和密碼是一種資料驗證技術。

9. 網路資料庫模型是當今最廣泛使用的模型。

10. 動態網頁通常使用資料庫。

答案 [39]

1. A. ii, B. iii., C. i.

2. 欄位或列;行或記錄

3. 完整性

4. 直接

5. 客戶端-伺服器

6. 真的

7. 真的

8. 錯誤

9. 錯誤

10. 真的

參考資料

[編輯 | 編輯原始碼]
  1. http://www.usg.edu/galileo/skills/unit04/primer04_01.phtml
  2. http://ecomputernotes.com/fundamental/what-is-a-database/advantages-and-disadvantages-of-dbms
  3. http://products.office.com/en-us/excel
  4. https://support.office.com/en-us/article/Training-courses-for-Access-2013-a4bd10ea-d5f4-40c5-8b37-d254561f8bce?ui=en-US&rs=en-US&ad=US
  5. http://smallbusiness.chron.com/importance-inventory-databases-retail-40269.html
  6. Understanding Computers: Today and Tomorrow - 14th Edition Comprehensive
  7. http://www.mathsisfun.com/data/data.html
  8. https://docs.microsoft.com/en-us/sql/master-data-services/hierarchies-master-data-services
  9. http://ng.cengage.com/static/nb/ui/index.html?nbId=7345&nbNodeId=1013914#!&parentId=1013946
  10. https://docs.oracle.com/html/A96524_01/c05dicti.htm
  11. http://searchsoa.techtarget.com/definition/data-dictionary
  12. http://www-01.ibm.com/software/data/security-privacy/
  13. http://searchcio.techtarget.com/definition/data-privacy-information-privacy
  14. https://www.slideshare.net/raminder90/single-user-vs-multi-user-databases
  15. http://searchnetworking.techtarget.com/definition/client-server
  16. http://databases.about.com/od/specificproducts/a/architectures.htm
  17. http://www.networkcomputing.com/netdesign/1005part1a.html
  18. http://whatis.techtarget.com/definition/in-memory-database
  19. http://whatis.techtarget.com/definition/in-memory-database
  20. http://www.gft.com/etc/medialib/2009/downloads/techreports/2012.Par.0003.File.tmp/gft_techreport_inmemorydatabases.pdf
  21. http://office.microsoft.com/en-us/access-help/create-a-query-based-on-multiple-tables-HA010096275.aspx
  22. http://office.microsoft.com/en-us/access-help/create-tables-RZ101772997.aspx?section=2
  23. http://searchdatamanagement.techtarget.com/definition/OLAP
  24. http://searchdatamanagement.techtarget.com/definition/star-schema
  25. http://www.databaseprimer.com/pages/relationship_1to1/
  26. http://www.databaseprimer.com/pages/relationship_1tox/
  27. http://wps.prenhall.com/wps/media/objects/14071/14409392/Learning_Tracks/Ess10_CH05_LT3_Hierarchical_and_Network_Data_Models.pdf
  28. http://slashdot.org/story/01/05/03/1434242/why-arent-you-using-an-oodms
  29. http://www.scribd.com/doc/6142698/oodbms
  30. http://code.tutsplus.com/tutorials/relational-databases-for-dummies--net-30244
  31. http://www.htmlgoodies.com/primers/database/article.php/3478121/To-Use-or-Not-to-Use-a-Database-That-is-the-Question.htm
  32. http://www.ehow.com/info_8219542_database.html
  33. https://support.google.com/adsense/answer/9713?hl=en
  34. https://docs.djangoproject.com/en/1.3/topics/http/middleware/
  35. http://guide.netfronts.com/Database-PHP-ASP/adding_dynamic_web_content.html
  36. http://snowwhite.it.brighton.ac.uk/staff/mas/mas/courses/html/html3.html
  37. https://w3schools.tw/php/php_intro.asp
  38. http://coursemate.cengage.com/CPReader/View/9781133114598/default.aspx?eISBN=9781133114598#66897dee-5c5a-4b7d-8a74-0eac7f4de56c
  39. http://ng.cengage.com/static/nb/ui/index.html?nbId=7345&nbNodeId=1013914#!&parentId=1013946
華夏公益教科書