1. 程式人生 > >《資料密集型應用系統設計》第二章 資料模型與查詢語言

《資料密集型應用系統設計》第二章 資料模型與查詢語言

  • 概述

本章從資料庫之初的資料模型開始介紹(20世紀60年代),從使用者使用的角度分析了每種資料模型的優缺點。就目前國內網際網路儲存來看實際用處並不大,對於網際網路分散式儲存開發工程師更多的意義是提供了一個全面(發展歷程)、籠統的瞭解資料庫的發展。

在資料模型部分介紹了,關係資料模型、文件資料模型並結合一對多、多對多等使用者使用方式上進行了比較,原文在本章並沒有介紹網際網路更看重的效能、擴充套件性等因素。

在查詢語言部分將查詢語言分為命令式、宣告式,為了介紹更全面的查詢語言還介紹了圖資料模型(並沒有詳細介紹實現)。原文認為宣告式(SQL)查詢語言隱藏了優化細節,同樣優化器也是有效能開銷,在網際網路應用的很多場景效能要求尤為突出時,一些頻寬、即少量應用程式的計算負擔(命令式缺點)是可以接收的。

  • 資料模型

關係型資料模型:一對多關係相比文件資料模型優勢不大,多對多比文件資料模型有優勢(因為需要應用程式去做級聯會影響程式效能)。

文件資料模型:適合一對多關係(區域性性很多,得益於資料模型類似json)。

層次資料模型:樹狀結構每個節點有唯一的父節點(文件模型屬於這種)。

  • 查詢語言

圖狀資料模型:適合多對多關係,原文引用facebook例子,定點和邊分別儲存在兩個表中。

包括屬性圖、三元儲存兩種儲存模型。

查詢語言:圖資料的查詢語言包括,Cypher、SQL、SPARQL。其他的查詢語言還介紹了MapRedce等。