python程序设计及上机实验教程第12章python数据库的持久化_第1页
python程序设计及上机实验教程第12章python数据库的持久化_第2页
python程序设计及上机实验教程第12章python数据库的持久化_第3页
python程序设计及上机实验教程第12章python数据库的持久化_第4页
python程序设计及上机实验教程第12章python数据库的持久化_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计及上机实验主讲:杨薇

Pythonpython数据库的持久化第12章12.1数据库基础12.2Python数据库访问模块12.3Python访问MySQL数据库12.4Python访问MongoDB数据库12.5课后习题数据库基础12.1数据库就是存储数据的仓库,即存储在计算机系统中结构化的、可共享的相关数据的集合。数据库中的数据按照一定的数据模型组织、描述和存储,可以最大限度地减少数据的冗余度。数据库管理系统(DatabaseManagementSystem,DBMS)是用于管理数据的计算机软件。数据库管理系统使用户能够方便地定义数据、操作数据以及维护数据。12.1.1数据库的概念数据库基础12.1目前流行的数据库管理系统产品可以分为两类:适合于企业用户的网络版DBMS,如Oracle、MicrosoftSQLServer、IBMDB2等;适合于个人用户的桌面DBMS,如MicrosoftAccess等。数据库系统(DatabaseSystem,DBS)是指在计算机系统中引入数据库后组成的系统。数据库系统一般包括计算机硬件、操作系统、DBMS、开发工具、应用系统、数据库管理员(DatabaseAdministrator,DBA)、用户等。数据库基础12.1常用的数据库模型包括层次模型(HierarchicalModel)、网状模型(NetworkModel)、关系模型(RelationalModel)和面向对象的数据模型(ObjectOrientedModel)。关系模型具有完备的数学基础,简单灵活,易学易用,已经成为数据库的标准。目前流行的DBMS大多基于关系模型的关系数据库管理系统。12.1.2关系数据库关系模型把世界看作是由实体(Entity)和联系(Relationship)构成的。实体是指现实世界中具有一定特征或属性并与其他实体有联系的对象,在关系模型中实体通常是以表的形式来表现。表的一行描述实体的一个实例,表的一列描述实体的一个特征或属性。联系是指实体之间的对应关系,通过联系就可以用一个实体的信息来查找另一个实体的信息。联系可以分为以下3种。数据库基础12.1(1)一对一:如一个部门只能有一个经理,而一个经理只能在一个部门任职,部门和经理为一对一的联系。(2)一对多:如一个部门有多名员工,而一名员工只能在一个部门工作,部门和员工为一对多的联系。(3)多对多:如一名学生可以选修多门课程,而一门课程可以有多名选修的学生,学生和课程是多对多的联系。12.1.2关系数据库数据库基础12.1NoSQL,指的是非关系型的数据库。NoSQL有时也称作NotOnlySQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。今天我们可以通过第三方平台(如:Google,Facebook等)可以很容易的访问和抓取数据。用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志已经成倍的增加。我们如果要对这些用户数据进行挖掘,那SQL数据库已经不适合这些应用了,NoSQL数据库的发展却能很好的处理这些大的数据。12.1.3非关系数据库数据库基础12.11.NoSQL的优点/缺点优点:高可扩展性;分布式计算;低成本;架构的灵活性,半结构化数据;没有复杂的关系。缺点:没有标准化;有限的查询功能;最终一致是不直观的程序。2.NoSQL数据库分类NoSQL数据库类型分为很多种,表12-1列出了常用的数据库类型及产品数据库基础12.1Python数据库访问模块12.2Python针对各种流行的数据库,提供了各种专用的数据库访问模块,如表12-2所示。Python访问MySQL数据库12.3MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,现属于Oracle公司旗下产品。MySQL是目前最流行的关系型数据库管理系统之一,是Web应用方面最好的数据库应用软件之一。访问MySQL官方网站下载安装包,安装完成后MySQL数据库的后台服务进程自动启动。12.3.1MySQL的安装Python访问MySQL数据库12.3使用Python操作MySQL数据库之前,需要安装PyMySQL。它是Python中操作MySQL的模块。在Windows操作系统的cmd命令界面中运行如下命令安装PyMySQL,pipinstallPyMySQL,安装完成后接下来就可以访问数据库了。12.3.2使用Python操作MySQL数据库Python访问MySQL数据库12.312.3.2使用Python操作MySQL数据库1.访问数据库的步骤Python的数据库模块具有统一的接口标准,数据库操作遵循一致的模式,使用PyMySQL模块操作数据库的步骤如下:(1)导入相应的数据库模块(2)建立数据库连接,返回Connection对象(3)创建游标对象cur(4)使用Cursor对象的execute执行SQL命令返回结果(5)获取游标的查询结果集(6)数据库的提交和回滚(7)关闭Curson对象和Connection对象Python访问MySQL数据库12.32.创建数据库和表使用pymysql.connect(“数据库文件名”)可以创建或打开MySQL数据库,并返回连接对象con;使用con.execute(“createtable”)可以创建表。Python访问MySQL数据库12.33.数据库表的插入、更新和删除操作在数据库表中插入、更新和删除记录的一般步骤如下:(1)建立数据库连接。(2)根据SQLInsert、Update、Delete语句,使用con.execute(sql)执行数据库记录的插入、更新、删除操作,并根据操作返回的值判断操作结果。(3)提交操作(4)关闭数据库Python访问MySQL数据库12.34.数据库表的查询操作查询数据库表的一般步骤如下:(1)建立数据库连接。(2)根据SQLSelect语句,使用con.execute(sql)执行数据库查询操作,返回游标对象cur。(3)循环输出结果Python访问MongoDB数据库12.4MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。MongoDB是目前最流行的NoSQL数据库之一,使用的数据类型BSON(类似JSON)。MongoDB提供了可用于32位和64位系统的预编译二进制包,可以从MongoDB官网下载安装,MongoDB预编译二进制包下载地址:/download-center/community12.4.1MongoDB的安装Python访问MongoDB数据库12.4Python要连接MongoDB需要MongoDB驱动,这里我们使用PyMongo驱动来连接。在Windows操作系统的cmd命令界面中运行如下命令安装pymongo,pipinstallpymongo,安装完成后接下来就可以访问数据库了。12.4.2使用Python操作MongoDB数据库Python访问MongoDB数据库12.41.访问数据库的步骤Python的数据库模块具有统一的接口标准,数据库操作遵循一致的模式,使用pymongo模块操作数据库的步骤如下:(1)导入相应的数据库模块(2)建立数据库连接,返回Connection对象(3)创建游标对象cur(4)使用Cursor对象的execute执行SQL命令返回结果(5)获取游标的查询结果集(6)数据库的提交和回滚(7)关闭Curson对象和Connection对象Python访问MongoDB数据库12.42.创建数据库和表使用pymongo.connect(“数据库文件名”)可以创建或打开MySQL数据库,并返回连接对象con;使用con.execute(“createtable”)可以创建表。Python访问MongoDB数据库12.43.数据库表的插入、更新和删除操作在数据库表中插入、更新和删除记录的一般步骤如下:(1)建立数据库连接。(2)根据SQLInsert、Update、Delete语句,使用con.execu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论