14.1 什么是数据库
数据库一种存储结构数据的文件。绝大多数数据库类似字典——映射键和值的关系。最大的区别是数据库是保存在硬盘或其它永久性的存储上,所以在程序结束后它仍然存在。而保存在内存中的字典容量受限于计算机的内存配置,所以数据库可以比字典存储更多的数据。
类似字典,数据库软件在插入和访问数据时非常迅速,即使是庞大的数据。通过创建数据索引,数据库软件维持它的性能,并允许计算机快速跳至一个特定入口。
目前有很多不同目的的数据库系统,包括:Oracle, MySQL, 微软的SQL Server, PostgreSQL和SQLite。因为SQLite是一个常用数据库,且在Python中内置,所以本书重点关注SQLite。SQLite被设计用于内嵌应用程序,为应用程序提供数据库支持。例如火狐浏览器和其它产品一样,在内部使用SQLite数据库。
你可以访问 http://sqlite.org/ 获得更多SQLite 的信息。
SQLite非常适合在信息学中处理解决问题的数据,例如在本章中我们描述的Twitter爬虫软件。
14.2 数据库的概念
当你第一次看到数据库,它看起来像由多张表组成的电子表格。数据库中主要的数据结构有:表、行和列。在关系数据库的技术说明中,表、行和列被更正式的称为关系、元组和属性。在本章我们使用非正式的术语。
14.3 SQLite管理器-火狐插件
虽然本章的重点是使用Python来操作SQLite数据库中的数据,但是使用一个叫做SQLite Database Manager的火狐插件可以更加便捷地完成操作。这个插件可以免费从以下地址获取:
https://addons.mozilla.org/en-us/firefox/addon/sqlite-manager/
你可以轻松地利用浏览器在数据库中创建表,插入和编辑数据,或者运行简单的SQL查询。
在某种程度上,数据库管理器类似于处理文本文件的文本编辑器。当你想着一个文本文件上做一个或者很多的操作时,你可以直接用一个文本编辑器打开它,并进行修改。但当你有很多对方需要修改时,经常性你会编写一个简单的Python程序。当你进行数据库处理时,你会发现相同的模式。你会用数据库管理器做简单的操作,而用更便捷的Python程序来做更加复杂的操作。
注:文章原文为Dr. Charles Severance 的 《Python for Informatics》。