# 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 敏捷开发