Flask Web开发入门、进阶与实战
上QQ阅读APP看书,第一时间看更新

4.1 关系型数据库和非关系型数据库

常用的数据库可以分为关系型数据库(SQL数据库)和非关系型数据库(NoSQL数据库)。在本节的内容中,将简要介绍SQL数据库和NoSQL数据库的知识。

4.1.1 关系型数据库

关系型数据库是指采用了关系模型来组织数据的数据库。简单来说,在关系型数据库中使用一个二维表格模型来存储各种类型的数据。关系型数据库的优点如下所示。

• 容易理解:通过二维表格结构表示数据,更加适合人们的学习和理解。

• 使用方便:可以使用SQL语言管理数据库中的数据。

• 易于维护:市面中关系型数据库产品大多数是可视化的,提供了完整的可视化管理方案。

在使用关系型数据库时,需要将数据保存在表中,通过表模拟程序中不同的实体。例如,在订单管理程序的数据库中可能有表customers、products和orders。表的列数是固定的,行数是可变的。通过列定义表所表示的实体的数据属性。例如,有一个名为customers的表用于表示客户信息,在表中可能有name、address、phone等列,表中的行定义各列对应的真实数据。在表中有个特殊的列,称为主键,主键的值表示表中各行的唯一标识符。在表中还存在被称为外键的列,用于引用同一个表或不同表中某行的主键。行之间的这种联系称为关系,这是关系型数据库模型的根本。

市面中主要的关系型数据库产品有:Oracle、DB2、SQL Server、Access和MySQL等。

4.1.2 非关系型数据库

非关系型数据库被简称为NoSQL,最早在1998年由Carlo Strozzi提出这一说法,NoSQL名字的含义是没有SQL功能。市面中的非关系型数据库产品有:redis、MongoDB和Neo4j等。

(1)高性能并发读写

NoSQL数据库使用key-value格式存储数据,这类数据库的特点是具有极高的并发读写性能。

(2)快速访问

NoSQL数据库的最大特点是可以在海量的数据中快速查询数据,访问速度也比关系型数据库快。

(3)面向可扩展性的分布式数据库

NoSQL数据库具有较强的可扩展性,可以适当地增加新结构和更新数据结构。

注意:在开发中小型Web程序时,关系型数据库和非关系型数据库的性能相当。但是在开发大型Web程序时,非关系型数据库的性能要优于关系型数据库,特别是大数据相关项目的数据存储。