购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 初识数据库

本节属于理论知识,介绍数据库的相关知识点,包括数据库的概念、SQL和NoSQL的不同之处。

3.1.1 数据库简介

数据库是以一定方式储存在一起,并能与多个用户共享,并具有尽可能小的冗余度,且与应用程序彼此独立的数据集合。可将其视为电子化的文件柜——存储电子文件的场所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。

数据库是存放数据的仓库,它的存储空间很大,可以存放百万条、千万条、上亿条数据。数据库中的数据并不是随意存放的,而具有一定规则,否则查询的效率会很低,这也是数据库“索引”这个概念的由来。

对于一般用户来说,微软的Excel就类似于数据库,用来存放数据。不过从专业角度来看,Excel只是用于处理一些表格,实际开发中更常使用的数据库是微软的SQL Server,如图3-1所示。这里对SQL Server不多做介绍。

图3-1 SQL Server页面

对于网页开发者来说,经常使用的是开源数据库,原因有两点:

·省去了商业使用方面的巨额费用;

·能够获取数据库本身的源码,方便业务的优化和更改。

常见的开源数据库有MySQL、MariaDB、PostgreSQL、SQLite、MongoDB和Redis等,不同的数据库有自身的优点和不足,也有产品本身适用和不适用的场景,所以按需选择合适的数据库也是项目能否成功的关键点。

3.1.2 SQL数据库和NoSQL数据库

一般而言,数据库分为两类:SQL数据库和NoSQL数据库。

1. SQL数据库

SQL(Structured Query Language,结构化查询语言)数据库称为关系型数据库,存储的格式可以直观地反映实体间的关系。关系型数据库和常见的表格比较相似,它的表与表之间有很多复杂的关联。常见的关系型数据库有MySQL、SQL Server和PostgreSQL等。

在轻量级或小型应用中,使用不同的关系型数据库对系统的性能影响不大,但是在构建大型应用时,则需要根据应用的业务需求和性能需求选择合适的数据库。

注意: 平常所说的SQL是关系型数据库的数据操作查询语言,不同的关系型数据库对SQL的支持程度不一样。

如图3-2所示为关系型数据库PostgreSQL。从图中可以看出,关系型数据库可以非常简单地反映出数据之间的关系、数据表之间的联系。这样的设计对结构化查询(如联合查询)来说,速度非常快。

图3-2 关系型数据库PostgreSQL

2. NoSQL数据库

NoSQL数据库(非关系型数据库)是出于简化数据库的结构、避免冗余、摒弃复杂的分布式目的而设计的。MongoDB、Redis和Memcache都是NoSQL类型的数据库。

NoSQL数据库本身并不一定遵循ACID原则,其通过对一些特性的协调,极大地提高了海量数据的读取和存储性能,非常适合大数据和可扩展性业务多变的应用场景。NoSQL数据库使用Key-Value形式操作非结构化数据的效率很高,但操作结构化数据的效率很低。

说明: ACID原则是数据库事务正常执行的4个要素,分别指原子性、一致性、独立性及持久性。 lYqBvuI6jkq1UbO2/kHLAK+8GyIaayOxhO6XVonQGlD+sQcC4FPnk4tIMNC+UOvu

点击中间区域
呼出菜单
上一章
目录
下一章
×