1.02k likes | 1.33k Views
車載資料庫服務系統 Part 1. 國立東華大學. 大綱. Part1 資料庫簡介 資訊平台的過去與現在 服務導向架構 Part2 網路服務 網路服務安全 雲端運算服務 行動網路服務. 資料庫簡介. 資料庫系統是企業的核心價值. 某位企業界的經營者曾說:「未來網際網路界有幾種人可以賺到錢:擁有資料庫的人,整理資料庫的人,管理資料庫的人以及應用資料庫的人」. 資料庫管理系統. 資料庫. 資料庫管理系統. 資料庫分類. 以模型分類 階層式資料庫( Hierarchical Database ) 網狀式資料庫( Network Database )
E N D
車載資料庫服務系統Part 1 國立東華大學
大綱 • Part1 • 資料庫簡介 • 資訊平台的過去與現在 • 服務導向架構 • Part2 • 網路服務 • 網路服務安全 • 雲端運算服務 • 行動網路服務
資料庫系統是企業的核心價值 • 某位企業界的經營者曾說:「未來網際網路界有幾種人可以賺到錢:擁有資料庫的人,整理資料庫的人,管理資料庫的人以及應用資料庫的人」
資料庫管理系統 資料庫 資料庫管理系統
資料庫分類 • 以模型分類 • 階層式資料庫(Hierarchical Database) • 網狀式資料庫(Network Database) • 關聯式資料庫(Relational Database) • 物件導向式資料庫(Object-Oriented Database) • 資料倉儲(Data Warehouse) • NoSQL資料庫 • 以資料存取的架構分類 • 主機/終端機架構 • 主從式架構 • 分散式架構
以模型分類 • 階層式資料庫(Hierarchical Database) • 網狀式資料庫(Network Database) • 關聯式資料庫(Relational Database) • 物件導向式資料庫(Object-Oriented Database) • 資料倉儲(Data Warehouse) • NoSQL資料庫
階層式資料庫 • 採用樹狀結構,將資料分門別類儲存在不同的階層之下,而每一個資料樹又由許多資料元件組成,也就是一對一或一對多的資料關係。 • 優點 • 是資料結構類似金字塔,不同層次間的資料關聯性直接且簡單。 • 缺點 • 則因資料以縱向發展,橫向關聯難以建立,所以資料可能會重複出現造成管理維護上的不便。 • 尋找資料時,需從樹根(root)開始,一筆一筆沿連結找,不易使用,當需要應用在不同情況時,容易造成資料重覆,資料維護較為困難。 • IBM 的 IMS (Information Management System) 即是屬於此類的資料庫管理系統。
網狀式資料庫 • 將每筆記錄當成一個節點。節點與節點之間可以建立關聯,形成一個網狀架構。 • 優點 • 避免了資料的重複性。 • 缺點 • 關聯性比較複雜,尤其是當資料庫的內容愈來愈多的時候,關聯性的維護會變得非常麻煩。 • 不易取用、不易使用、存取路徑須事先設定,當需要重新建立關係或新連結時,非常麻煩。 • Computer Associates 公司曾經推出的IDMS (Integrated Database Management System)即是屬於此類的資料庫管理系統。
網狀式資料庫 C#程式設計 350 櫻桃出版社 花蓮縣 東華書局 花蓮縣 作業系統分析 400 墊腳石書局 台中縣 OS考題範本 300 博碩出版社 台中縣 資料結構分析 450 金石堂書局 台北市 山東出版社 台北市 書局資料 離散數學 350 出版商資料 線性代數 400 書籍資料 11
關聯式資料庫 • 關聯式資料模式是當今應用最普遍的資料模式。關聯式資料模式是採用二維陣列的資料表來建立資料的關係。 • 資料表由記錄中的資料列和資料欄所組成,兩個資料表間的關係使用一個相同的資料欄來建立關聯,主要的特色有易取用資料、易使用、有彈性、架構簡單。
關聯式資料庫 Database 資料表 資料表 資料表 資料表 資料表 資料表
物件導向式資料庫 • 物件導向式資料庫是以物件導向的方式來設計資料庫,其中包含了物件的屬性、方法、類別、繼承等特性。 • 若以關聯式資料庫和物件導向式資料庫來做比較,關聯式資料庫必須由資料庫設計者來設計、建立及管理關聯。 • 物件導向式資料庫中,物件和物件之間的連繫,是因其屬性而必然發生的。
物件導向式資料庫 • 底下是一個物件導向式資料庫的結構示意圖: 產品 訂單 課戶 作者
物件導向式資料庫 • 接著看下面的物件導向式資料庫: 訂單 客戶 • 上圖中,兩個物件是透過 OID 來連繫起來的。在關聯式資料庫中資料表間的關係必須靠設計者自行建立來產生關聯。物件導向式資料庫中,各物件之間的關係則是在物件建立之時,會自行建立連繫。
資料倉儲 • 是一種大型資料庫,其中儲存及管理用來分析歷史及目前交易所需的資料。 • 例如銀行利用資料倉儲來監控及管理顧客的信用卡交易與存放款狀況。
NoSQL資料庫 • 目前Cloud Computing在處理大量資料時,大多採用NoSQL的資料庫,這類資料庫的特點在於支援分散式平行處理。NoSQL資料庫是一個統稱的名詞,泛指非關聯式資料庫的資料庫技術,包括了數十種不同類型的資料庫系統,因為這些資料庫大多沒有支援標準的SQL,例如知名的Google BigTable、Amazon S3的Dynamo資料庫,或是微軟Azure平臺儲存資料的方式,都屬於NoSQL資料庫的其中一種。
NoSQL資料庫 • 常見的NoSQL資料庫有4類,分別是 • 圖學資料庫(Graph Database) • 文件導向的資料庫(Document-Oriented Database) • Key-Value Store分散式資料庫 • 記憶體快取為主的資料庫。
圖學資料庫 • 圖學資料庫是運用圖學架構來儲存節點間關係資料架構,例如用樹狀結構來組織從屬關係或網狀結構來儲存朋友關係,地理圖資系統通常也會用圖學資料庫來儲存地圖上每一點和鄰近點的關係,或用圖學資料庫來計算點與點之間最短的距離,也可以用同樣的概念來計算出人與人之間最短的交友距離。
圖學資料庫 • 以Facebook為例,用節點來記錄帳號、用關係來記錄朋友關係、用屬性來描述這個帳號的個人資料等。最後可以用網絡圖來呈現出Facebook用戶之間的交友狀況。 • 常見的圖學資料庫: • Neo4j • InfoGrid • AllegroGrph
文件導向資料庫 • 文件資料庫主要是用來儲存非結構性的文件,例如HTML網頁與XML文件。 • 常見的開源文件資料庫像是CouchDB、MongoDB以及Riak等。
Key-Value分散式資料庫 • Key-Value資料庫是NoSQL資料庫中數量最多的類型,最大的特色就是採用Key-Value資料架構,沒有原本關聯式資料庫中常用的欄位架構,每筆資料各自獨立,有分散式與高擴充能力的特性。 • Google的BigTable、Hadoop的HBase、Amazon的Dynamo、Cassandra、Hypertable等。
記憶體資料庫 • 記憶體資料庫(In-memory Database)就是將資料儲存在記憶體的NoSQL資料庫,包括了Memcached、Redis、Velocity、Tuple space等。Memcached、Redis都是一種Key-Value資料架構的資料庫,只是將資料儲存在記憶體中來提高讀取效率,大多用來快取常用網頁,加快傳遞網頁的速度,減少讀取硬碟的次數,不過系統關機後就無法保存。
以資料存取的架構分類 • 主機/終端機架構 • 主從式架構 • 分散式架構
主機/終端機架構 中央主機 終端機 終端機 終端機 終端機
主從式架構 資料庫Server Client Client Client Client
分散式架構 資料庫Server 資料庫Server Network Client Client Client
資訊平台的類型 • 大型主機(Mainframe)架構 • 檔案共享(File sharing)架構 • 主從式(Client/server)架構 • Web Services架構
大型主機(Mainframe)架構 • 大型主機的技術,五十年代起即主宰資訊平台, • 目前仍極具影響力,IBM、DEC 、HP 、WANG等為代表,以及UNIX作業系統text mode都是,傳統行業仍使用中 • 大型主機的軟體架構有一些限制: • 無法簡便的支援圖形化使用者介面 • 無法支援分散各地的資料庫
One-tier: Centralized Computing Main Frame Computer (Data, Application, Presentation) Terminal Terminal
大型主機架構的改良與提昇 • 新的改良模式在1994年被提出來,主要以關聯式資料庫替代傳統資料庫, • 並以改良的middleware諸如IBM的IMS 、CICS與Encina,BEA的TUXEDO 來提供分散式的服務。 • 新的大型主機伺服器軟體,不但提供了分散式主從架構,並且支援更大的儲存能力及改善其安全機制。
檔案共享(File sharing)架構PC LAN (local area network) computing • 從一個共享的伺服器,下載資料到桌上型電腦的工作環境。 • 使用者的工作(包括運算邏輯及資料),都在桌上型電腦的環境下執行。 • 在共享情形比較低、更新內容較少且資料的轉換量較低的情況下,檔案共享架構才能順利運作。
檔案共享(File sharing)架構的現狀 • 檔案共享的系統使用容量,會隨著上線人數的成長及圖形使用者介面(GUIs)的使用而吃緊,大約只能滿足同時12個人上線。 • 在1990年代,PC LAN (區域網路)運算架構變更後,以主從架構來取代。
主從式(Client/Server)架構 • 由於檔案共享架構上的限制,因此主從式(Client/Server)架構被提出來。 • 簡單說就是以資料庫伺服器(Database server)取代檔案伺服器(File Server)
主從式(Client/Server)架構的優點 • 主從式架構,是藉由利用要求(request)與回應(reply),而不是傳遞整個資料檔案來減少傳輸流量。 • 利用前端圖形化使用者介面,來改善多重使用者,同時使用一個共享的資料庫。
主從式架構的各種類型 • 兩層式(Two tier)主從架構 • 三層式(Three tier)主從架構 • 多層式(N-tier:Multi tier)主從架構 • 協同分散式的企業架構(Distributed/Collaborative Enterprise Architecture)
兩層式(Two tier)主從架構 • 執行程序被切割成使用者及資料庫兩個環境。 • 資料庫管理系統,提供預儲程序(store procedures)及觸發器(triggers)。
Two-tier: Client/Server Computing Internet Firewall Internet CORBA/ DCOM Client Server
Two-Tier Computing:Client/Server Computing Client Tier (Fat Client) (Application, Presentation GUI) Server Tier (Data)
兩層式主從架構的限制 • 同時上線的使用者約為100人。因為伺服器必須隨時,與每個使用者端傳遞尚在連線(keep-alive)的訊息,即使他們之間沒有任何的動作。 • 在執行序的管理與服務以及資料庫管理的應用上,受限於各廠商所提供的預存程序,而顯得較無彈性。 • 在程式功能性的移轉會有彈性上的限制(無法採自動方式從一伺服器轉至另一伺服器,即portable問題)
三層式(Three tier)主從架構 • 三層式架構(也被稱為多層次架構)被提出來克服兩層架構的限制 • 在三層式架構中,中間層(Middleware)被新增出來,介於使用者介面端及其他系統或資料庫端之間
Three-tier: Web Computing Client Web Service Extranet Internet Internet Firewall Web Service DB Server Client Web Server
Three-Tier ComputingWeb-enabled Computing Presentation Tier (Client Tier; Thin Client) (Presentation GUI) Application Application Tier (Agent Tier; Web Server) (Business Logic) Data Tier (Database Server) (DBMS+Database)
三層式主從架構的內容 • 中間層可以各種形式存在,例如: transaction processing monitors, message servers, ORBs or RPC等。 • 中間層可以進行使用者端優先順序的排程、應用程式執行的排程及資料庫的排程。
三層式主從架構優點 • 與兩層式架構的比較下,三層式的主從架構明顯的改善多人(數千人)線上使用的效能並且較具彈性
三層式主從架構的缺點 • 三層式架構有個限制,因開發的環境比使用視覺導向的兩層式開發環境複雜,系統開發比兩層次要來的困難得多。
大型主機架構改為三層式主從架構 • 1994年開始,大型主機架構開始被改良成分散式的架構。 • 大型主機的業者,現在提供標準的溝通及程式介面,使其容易整合成分散式的三層主從架構中的伺服器。