第8章 应用数据库

在本章中,我们将为读者介绍各种数据库及其应用编程接口。这里所说的数据库包括关系型数据库以及非关系型(NoSQL)数据库。关系型数据库是由数据表汇集而成的,更重要的是,这些数据表中的数据是按照数据项之间的关系进行组织的。当然,这里所说的关系,也可以是某个数据表中的行数据与其他数据表中的行数据之间的关系。关系型数据库不仅涉及数据表之间的关系,首先,它要处理同一个数据表中不同列之间的关系(很明显,一个数据表内的各列毫无疑问是相关的);其次,它还要处理数据表之间的关系。

伴随着大数据和Web应用的流行,非关系型(Not Only SQL,NoSQL)数据库也开始野蛮生长。NoSQL系统将成为类SQL事实上的标准。NoSQL数据库的主旨在于,使用比关系模型更为灵活的方式来存储数据。这就可能意味着,无需数据库模式或者灵活的数据库模式。当然,灵活性和速度也是有代价的,例如无法始终保证事务的一致性。NoSQL数据库可以利用面向列的方法以字典的形式来储存数据,这些数据对象包括文档、对象、图、元组,甚至这些对象的组合体。本章将要介绍的主题如下。

  • 基于sqlite3的轻量级访问
  • 通过Pandas访问数据库
  • SQLAlchemy
  • Pony ORM
  • Dataset:懒人数据库
  • PyMongo与MongoDB
  • 利用Redis存储数据
  • 利用memcache存储数据
  • Apache Cassandra。

SQLite是一款非常流行的关系型数据库,它非常轻盈,因此被大量应用程序广泛采纳,如Mozilla Firefox等浏览器。安卓系统上的大部分应用的数据存储也是通过SQLite完成的。

sqlite3是Python标准发行版自带的一个模块,可以用于处理SQLite数据库。使用sqlite3模块时,数据库既可以存放到文件中,也可以保留在内存中。本例采用后一种方式。下面我们导入sqlite3,代码如下。 ...

Get Python数据分析(第2版) now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.