# 4.1 關系型數據庫
## 4.1 關系型數據庫
簡單地說,關系型數據庫即使用SQL進行操作的數據庫。
### SQL
SQL即**結構化查詢語言(Structured Query Language)**,是關系型數據庫用來操作數據的語言。雖然叫做“查詢”語言,但實際上從數據定義到數據插入、刪除、更新和查詢,它都能完成。另外,雖然SQL已經被標準化,但不同數據庫對標準的支持仍有差別;不少數據庫還對SQL做了自己的擴展以實現特有的功能。因此,為一種數據庫編寫的SQL代碼有時并不能在另一種數據庫上使用。要學習SQL,讀者最好參考某種具體的數據庫的手冊,或者為之編寫的讀物;或者從這本為初學者編寫的[《Getting Started with SQL》](http://shop.oreilly.com/product/0636920044994.do)開始。
更多關于SQL的介紹:<https://en.wikipedia.org/wiki/SQL>
### ORM
ORM即**對象-關系映射(Object-relational mapping)**,或稱O/RM。它一般指把關系型數據庫中存儲的一行記錄與編程語言中的一個對象對應起來的技術。通過這種技術,數據庫的紀錄可以通過相應的對象進行操作。這樣做使得對數據庫的編程更加“面向對象”了;另一方面,對象屬性的讀、寫代替了相應的SQL操作,使得數據庫編程更簡單、直觀了。不同的編程語言有不同的ORM實現,參考這里了解更多:
- [https://en.wikipedia.org/wiki/Object-relational\_mapping](https://en.wikipedia.org/wiki/Object-relational_mapping)
- [https://en.wikipedia.org/wiki/Active\_record\_pattern](https://en.wikipedia.org/wiki/Active_record_pattern)
### 流行的開源關系型數據庫
[MySQL](http://www.mysql.com/)和[PostgreSQL](http://postgresql.org/)是兩種比較流行的開源關系型數據庫,其中MySQL更流行一些,但PostgreSQL對SQL標準的支持更好。用Google搜索“mysql vs postgresql”你會得到更多有價值的信息。
[SQLite](https://www.sqlite.org/)也是一種比較流行的開源關系型數據庫,但它與前兩者的適用領域不同:它是一個迷你、嵌入式數據庫,典型的應用場景如Android設備,而非Web網站等。
- 前言
- 1 Web概述
- 1.1 什么是Web
- 1.2 超文本和超鏈接
- 1.3 URL
- 1.4 DNS
- 1.5 HTTP
- 1.5.1 客戶端請求
- 1.5.2 服務器應答
- 1.5.3 進一步了解HTTP
- 1.6 HTTPS
- 2 Web瀏覽器
- 2.1 HTML
- 2.1.1 文檔類型聲明
- 2.1.2 標簽和屬性
- 2.1.3 文檔結構
- 2.1.4 DOM
- 2.1.5 進一步了解HTML
- 2.2 CSS
- 2.2.1 樣式與樣式表
- 2.2.2 樣式表語法
- 2.2.3 級聯樣式表
- 2.2.4 進一步了解CSS
- 2.3 JavaScript
- 2.3.1 script標簽
- 2.3.2 操縱DOM
- 2.3.3 jQuery
- 2.3.4 進一步了解JavaScript
- 2.4 Ajax
- 2.5 移動設備與響應式Web設計
- 3 Web服務器
- 3.1 方法與資源
- 3.2 狀態代碼
- 3.3 靜態內容與動態內容
- 3.4 編程語言與技術
- 3.4.1 CGI
- 3.4.2 PHP
- 3.4.3 Java
- 3.4.4 Python
- 3.4.5 Ruby
- 3.4.6 Node.js
- 3.5 RESTful Web API
- 3.6 服務器架構
- 3.7 Web緩存
- 3.8 服務器推送
- 4 數據庫
- 4.1 關系型數據庫
- 4.2 NoSQL數據庫
- 5 Web服務器的其他組件
- 5.1 Cron
- 5.2 消息隊列
- 5.3 郵件服務器
- 6 開發工具與技術
- 6.1 Git
- 6.1.1 Git基礎操作
- 6.1.2 Git基本原理
- 6.1.3 進一步了解Git
- 6.2 敏捷開發