Python环境下的数据库编程

简介

在应用程序中有很多信息需要存储起来,存储的方式有多种,数据库就是其中的一种。比较流行的数据库模型有三种,分别为层次式数据库、网络式数据库和关系型数据库。最常用的数据库模型是关系型数据库。

数据库三种数据模型

  • 层次模型

层次模型是数据库系统最早使用的一种模型,它的数据结构是一棵“有向树”。根结点在最上端,层次最高,子结点在下,逐层排列。层次模型的特征是:

  • 有且只有一个根结点

  • 其他结点有且仅有一个父结点

  • 网状模型

网状模型以网状结构表示实体与实体之间的联系。网中的每一个结点代表一个记录类型,联系用链接指针来实现。网状模型可以表示多个从属关系的联系,也可以表示数据间的交叉关系,即数据间的横向关系与纵向关系,它是层次模型的扩展。网状模型可以方便地表示各种类型的联系,但结构复杂,实现的算法难以规范化。其特征是:

  • 允许结点有多于一个父结点;
  • 可以有一个以上的结点没有父结点。

关系模型

关系模型以二维表结构来表示实体与实体之间的联系,它是以关系数学理论为基础的。关系模型的数据结构是一个“二维表框架”组成的集合。每个二维表又可称为关系。在关系模型中,操作的对象和结果都是二维表。关系模型是目前最流行的数据库模型。支持关系模型的数据库管理系统称为关系数据库管理系统,Access就是一种关系数据库管理系统。

  • 描述的一致性,不仅用关系描述实体本身,而且也用关系描述实体之间的联系;
  • 可直接表示多对多的联系;
  • 关系必须是规范化的关系,即每个属性是不可分的数据项,不许表中有表;
  • 关系模型是建立在数学概念基础上的,有较强的理论依据。

ADO、DAO、ODBC

Python提供了多种连接数据库的手段,包括DAO、ODBC、ADO以及
Python专用模块等。

使用DAO访问数据库

DAO(Data Access Object)是常见的一种连接数据库的方式,它适用于小型应用程序。DAO提供了操作管理关系型数据库系统所需的属性和方法,包括创建数据库、定义表、字段和索引,以及查询、添加、删除、修改等操作。

使用的库是pywin32

使用ODBC 访问数据库

ODBC(Open Database Connectivity,开放数据库互连)是Micros Sott公司提出的数据库访问通用接口标准。ODBC是一个数据库访问函数库,使应用程序可以直接操纵数据库中的数据。

ODBC基于SQL语言,是一种在SQL和应用界面之间的标准接口,它生成的程序与数据库或数据库引擎无关,为数据库用户和开发人员提供了数据库访问的统一接口,为应用程序实现与平台的无关 应用程序性和可移植性提供了基础。ODBC由应用程序、驱动 驱动程序管理器程序管理器、驱动程序、数据源构成,如图所示。
在这里插入图片描述

  • 应用程序:应用程序调用ODBC函数,完成连接数据库、提交执行语句给数据库、检索结果并处理错误、提交或者执行回滚语句的事务、与数据库断
    开连接等操作。
  • 驱动程序管理器:各种不同的数据库都需要向ODBC驱动程序管理器注册ODBC驱动程序,ODBC驱动程序管理器能将与ODBC兼容的执行请求从应用程序传给驱动程序,随后对数据库实现访问操作。
  • 驱动程序:ODBC通过驱动程序来提供数据库独立性。
  • 数据源:用户自定义的数据库服务器的名称、登录名和密码等信息。

三者区别

  • ODBC是一种底层的访问技术,因此,odbc api 可以是客户应用程序能从底层设置和控制数据库,完成一些高级数据库技术无法完成的功能;但不足之处由于odbc只能用于关系型数据库,使得利用odbc很难访问对象数据库及其他非关系数据库。

  • DAO提供了一种通过程序代码创建和操纵数据库的机制。最大特点是对microsoft jet数据库的操作很方便,而且是操作jet数据库时性能最好的技术接口之一。并且它并不只能用于访问这种数据库,事实上,通过dao技术可以访问从文本文件到大型后台数据库等多种数据格式

  • ADO是基于ole db的访问接口,它是面向对象的ole db技术,继承了ole d的优点。属于数据库访问的高层接口。

访问接口 易用性 运行性能 可扩展性 突出特点 能否访问非关系数据源 技术层次

odbc 差 较高 差 可进行底层控制 否 底层

mfc odbc 好 一般 通用标准,应用广泛 否 高层

mfc dao 好 较高 一般 访问jet性能最好 能 高层

ole db 较难 高 好 可访问非关系db 能 底层

ado 最好 高 好 可访问非关系,有多种编程接口 能 高层

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落春只在无意间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值