資料庫 DataBase
概念Concept
檔案:未使用資料庫前資料的存取方式
各應用程式有各自建立的資料項以及資料檔。檔案內的資料內容會與其他應用程式的資料檔相互重複 ,且無法流通
缺點:
- 資料重複儲存:Data redundancy資料重複性
- 資料不一致
- 資料存取不方便
- 資料與應用程式相關:資料相關性(Data Dependence )
檔案資料存取方式
- 循序檔:紀錄依序儲存,存取速度慢,佔用記憶體空間少
- 隨機檔:依記錄編號決定檔案中的相對位置,存取速度快,佔用記憶體空間多
- 索引循序檔:透過索引表存取資料
資料庫
- 一群相關檔案的集合體,若要對其存取資料則必須遵守一定的規則與方法,達到最少重複、最佳利用,以供多人共同使用為目的
- 以一貫作業方式,將一群相關資料集(Data Set)所組成的集合體,在資料庫管理系統(DBMS DataBase Management System)的控制下,以最佳型態共多數人使用,而使用者以一定的格式與方法來存取資料庫內的資料
優點
- 簡潔、迅速、即時、準確
- 獨立性:資料獨立性(Data Independence)。資料與應用程式無關
- 完整性與一致性:資料完整性(Data Integrity)
- 保密性與安全性
- 資料共享與資料標準化
- 減少應用程式的撰寫困難度
資料結構 位元bit,位元組byte,字元character/word,項目item,資料欄位field,記錄record,檔案file/table,資料庫database
組成元素(涵括對象)
資料庫架構、結構
- 層級式資料庫:Hierarchical Database 亦稱樹狀式資料庫 Tree (以IBM DL/I為範例) 。以樹狀方式儲存資料,資料元素間乃是一對多的關係,故又謂樹狀結構。結構圖形。
- 網狀式資料庫:Network Database (以CINCOM TOTAL為例)。在資料關係中,若一個節點具有一個以上的親代,即為網狀結構。資料元素間為多對一的關係,也可以是多對多的關係。結構圖形。
- 關連式資料庫:RNDB Rrelational Database 。此種組織結構的特色,乃是以表格表示資料。每個表格包含欄column與列row(或稱為行)。每一列資料稱為記錄,而其中最具該紀錄代表性的欄位,稱為主鍵值欄。
- 物件導向資料庫:OODB Object-Oriented Database。傳統資料庫系統分析著重在問題的解決;物件導向系統以實體分類解決。用電腦中的抽象物件模擬真實世界的物件。優點在於:1.降低軟體維護成本,2.增加軟體再利用性(軟體IC)及擴充性
- 分散式資料庫:Distributed Database。因資源共享觀念與資訊網路科技發展達一定程度,讓分散各地的資料庫藉由通訊網路科技的支援,使資料庫彼此連結在一起
資料庫正規化 將資料集(Data Set)中記錄的屬性組合成具有良好結構關係的過程。將資料庫中資料重複性降到最低的過程。主要目的在減少資料的重複性。
- 第一正規化 First Normal Form 1st NF:一筆記錄中不包含重複資料值的欄位(刪除所有重複項)
- 第二正規化 Second Normal Form 2nd NF: 一筆記錄中欄位間個別獨立,去除欄位間的相依性(刪除所有的部分功能依賴性)
- 第三正規化 Third Normal Form 3rd NF:除主鍵外其他個欄位間不具相依性(刪除所有的遞移依賴性)
資料庫管理系統DBMS
定義
- 一組可以讓使用者建立與維護資料庫的程式
- 一套用以管理一個或多個資料庫資料庫,所必須的各種程式。
架構三大層次
依據ANSI的SPARC Standards Planning and Requirements
Committee所訂定的架構與介面標準。
- 內部層次Internal Level(Shema):描述資料如何實際儲存在資料庫中,後端實體儲存
- 觀念層次Conceptual Level(Shema):描述資料庫中包含哪些資料,以及描述資料彼此間的關係,關聯性
- 外部層次External level(Shema):定義使用者所能見到資料庫中的部分資料,前端檢視主要定義使用者與實體資料間的關係,並且能防止未經授權者使用資料庫
兩兩層次間均具有相互關係,內部層次與觀念層次建立實體資料的獨立性physical data
independence,而外部層次與觀念層次則是建立邏輯資料的獨立性longical data independence
資料庫語言
查詢語言Query Language乃是終端機使用者,用以查詢資料庫資料的一種非程序語言
- 資料定義語言DDL Data Definition
Language用以描述和定義資料庫的結構和內容
- 資料操作語言DML Data Manipulation
Language 是用來說明資料處理方式
- 資料控制語言DCL Data Control Language控制使用者權力以及控制資料的異動等
- 目前使用的結構化查詢語言SQLStructured
Query language,乃是由IBM所研發,後來為ANSI所認可為關連式資料庫語言標準。
- 資料字典:儲存資料庫內資料的定義
在電腦中管理資料庫的是資料庫管理系統,而對資料庫加以管理與控制的是工作的是資料庫管理師DBA
特性
- 共享性:資料庫中的個別資料,可由多人共同使用。甚至允許不同使用者同時使用相同的資料項
- 完整性與保全性:資料庫管理師DBA可事先設定各種資料完整性的檢查程序
- 安全性
- 獨立性
- 減少重複性
- 效率性
- 一致性
- 關連性
- 管理與控制
關聯式資料庫RDBS
定義
- 所見資料均以表格Table顯示
- 使用者所使用的運算,均是由就舊的表格所產生,這些運算包括:選擇Select、投影Project、合併Jion等
基本名詞
- 關聯式Relation/Table:關聯式資料庫中的表格便是一個關聯式
- 值組Tuples:表格中的一條橫列,記錄
- 基數Cardinality:值組的數目,記錄的集合
- 屬性Attribute:表格中的一條直欄,欄位
- 維度Degree:屬性的集合
- 超級鍵SuperKey:屬性中具有唯一性的欄位
- 候選鍵Candidate Key:超級鍵又具有不可分離性質的欄位,符合最小性
- 主鍵Primary Key:由候選鍵中任選其一,任意規則
- 備選鍵Alternate Key:除主鍵外,其餘的候選鍵
- 基本表格Base Table與景觀View
基本表
原始表格
衍生表
由基本表透過關聯表示式而成立的表格
景觀View:虛擬表格Virtual Table,具有以下特性:
- 由實際表格中的資料所組成,但不實際存在
- 不實際儲存
- 定義儲存在系統目錄中
- 可以由其他景觀產生
- 景觀可以被剔除Drop
其優點在於:
- 提供邏輯資料獨立性
- 允許資料在同時間內由不同使用者以不同的方式呈現
- 使用者的觀察會被簡化,有效簡化資料處理的動作
- 對於需要隱藏的資料自動提供安全性
資料模式
資料結構唯一的資料結構就是關聯式
- 關聯式Relatiion,其下各定義域Domain叉積Cross Product的子集合。定義域可以包括整數、字串等形式
- Domain範圍/名稱:一群單元值Atomic Value所組成的集合,具有名稱與相同資料型態Data
type或是資料格式Data Format
- Atomic Value單元值:或稱基元值,意指這些資料值具有不可分割性質,或是如再行分割,則該資料不具任何意義
資料操作包含有:
- 關聯式代數(包括選擇,投影,卡氏積,連集,交集,差集,合併,除法)
- 關聯式計算式(以描述的方式陳述操作)
- 關連式代數的運算符號
- 聯集(Union),交集(Intersection),差集(Difference),卡氏基(Cartesian Product)
- 限制(Restrict),投影(Project),合併(Join),除法(Divide)
運算 |
解釋 |
Select選擇 |
由表格中找出特定的橫列(記錄) |
Project投影 |
由表格中找出特定的直行(欄位) |
Join合併 |
以同行(欄位)的共同值為基礎,合併兩個表格 |
要求基本關聯式的主鍵成分不可為空值
定義域Domain
定義
一個由基元值Atomic value所組成的一個帶有名字的集合,同時具有相同的資料型態
基元值
意指這些值是不可分解的,或稱數量Scalars
關聯式Relation
定義
關聯式是定義在一些定義域上,由Heading(或稱關聯式綱要relation schema,固定數目的屬性集合)與Body(值組tuples,由<屬性,值>配對組成的集合)組成
基元值
意指這些值是不可分解的,或稱數量Scalars
性質
- 不能有重複的值組
- 值組間沒有次序性
- 屬性間沒有次序性
- 所有屬性的值是基元的
關聯式種類
- 有命名的關聯式Named
- 基本關聯式Base Relation
- 衍生關聯式Derived relation
- 可表示的關聯式Expressible relation
- 景觀view
- 快照Snapshot
- 查詢結果Query result
- 中間結果Intermediate result
- 儲存的關聯式Stored relation
關聯式整合規則Relational integrity rules
- 候選鍵:關聯式中某屬性集合若符合唯一性與不可分解性即可稱為候選鍵
- 主鍵:由候選件中任選其一,便是主鍵
- 備選鍵:候選鍵中除主鍵外的其他鍵
- 外鍵:
- 參照圖:用以表示資料庫中的參照限制
- 參照路徑:由Rn到R1即存在參照路徑
- 參照循環:由Rn到R1再到Rn存在參照路徑
- 自我參照
鍵值限制規則
實體整合規則Entity integrity rule
參照整合規則Referential integrity rule
外鍵規則
分散式資料庫
目標
- 位置透通性Location Transparency :使用者不需知道資料庫的實際位置
- 分解透通性Fragmentation Transparancy :資料庫的資料都透過完整的關連性連結在一起,使用者感覺不到資料的分散性
- 複製透通性Replication Transparency :資料副本存在於好幾個資料庫內,可以減少資料傳輸的時間,而且也沒有資料重複的問題
優點
- 區域自主
- 可靠性較高
- 擴充性與容量較高
- 提高效能
- 降低通訊成本
架構
- 層級式處理機架構Hierarchy of Processor
- 區域網路合作式架構Local Area network for cooperation
- 非集中式個別系統架構Decentralized standalone systems :以上兩種架構的綜合體
主要問題點 在於網路的傳輸速度,對於查詢、更新、並行、目錄管理等問題是否可以提供較佳的解決方案
相關資料庫管理與應用程式
資料庫管理師DBA
前端應用程式:Access,Foxpro,Base(Open Office), dBASE IV,
後端資料庫系統:SQL Server,mySQL,Oracle,Sybase,Informix,DB2
遠端管理程式:PHPmyadmin
資料庫應用技術:資料倉儲Data warehouse,資料採礦Data Mining