根据存储数据时所用数据模型的不同,当今互联网中的的数据库主要分为两种:关系型数据库和非关系型数据库。
1.关系型数据库
关系型数据库指采用关系模型(即二维表格形式)数据的数据库系统,它由数据表和数据表之间的关系组成,主要包含以下核心元素:
数据行:一条记录,相当于Python对象;
数据列:字段,相当于Python对象的属性;
数据表:数据行的集合;
数据库:数据表的集合。
看一个数据表的示例,如图1所示。
关系型数据库经历了几十年的发展,技术比较成熟,因其具有容易理解、操作简单、便于维护的特,而被广泛应用到各个行业的数据管理中。目前,主流的关系型数据库有Oracle、MySQL、IBMDb2、PostgreSQL、MicrosoftSQLServer、MicrosoftAccess等,其中使用较多的有Oracle和MySQL数据库。
2.非关系型数据库
非关系型数据库也被称为NoSQL(NotOnlySQL)数据库,指非关系型的、分布式的数据
存储系统。与关系型数据库相比,非关系型数据库无需事先为要存储的数据建立字段,它没有固定的结构,既可以拥有不同的字段,也可以存储各种格式的数据。
mongodb和mysql结合非关系型数据库的种类繁多。按照不同的数据模型,非关系型数据库主要可以分为列存储数据库、键值存储数据库、文档型数据库,分别介绍这些数据库各自的特征及适用范围。
(1)键值(Key-Value)存储数据库
键值存储数据库采用键值结构存储数据,每个键分别对应一个特定的值。这类数据库具有易部署、查询速度快、存储量、高并发操作等特,适用于处理量数据的高访问负载和一些日志系统等。
键值存储数据库的典型代表有Redis、Flare、MemcacheDB等。
(2)列式(Column-Oriented)存储数据库
列式存储数据库采用列式结构存储数据,将同一列数据存储到。这类数据库具有查询速度快、可扩展性强等特,更容易进行分布式扩展,适用于分布式的文件系统。
列式存储数据库的典型代表有Hbase、Cassandra等。
(3)文档型(Document-Oriented)存储数据库
文档型存储数据库的结构与键值存储数据库类似,采用文档(如JSON或XML等格式)结构存储数据,每个文档中包含多个键值对。这类数据库的数据结构要求并不严格,具有表结构可变、查询速度更快的特,适用于Web应用的场景。
文档型数据库的典型代表有MongoDB、CouchDB等。
为了让读者更好地理解文档型数据库的数据结构,这里以MongoDB为例进行介绍。MongoDB数据库主要包含3个核心元素,分别为文档、集合和数据库,各个元素的介绍如下。
·文档:由JSON或XML数据构成的对象,对应关系数据库中的行;
·集合:文档的物理容器,对应关系数据库中的表;
·数据库:集合的物理容器,一个数据库中可以包含多个文档;
在众多数据库中,MySQL、MongoDB和Redis都比较突出的,应用也比较广泛。针对这些主流的数据库,Python了包或模块实现程序与数据库交互。例如,使用pymysql库操作MySQL数据库,使用pymongo模块操作MongoDB数据库,使用redis模块操作Redis数据库。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论