简介
在应用程序中有很多信息需要存储起来,存储的方式有多种,数据库就是其中的一种。比较流行的数据库模型有三种,分别为层次式数据库、网络式数据库和关系型数据库。最常用的数据库模型是关系型数据库。
数据库三种数据模型
- 层次模型
层次模型是数据库系统最早使用的一种模型,它的数据结构是一棵“有向树”。根结点在最上端,层次最高,子结点在下,逐层排列。层次模型的特征是:
-
有且只有一个根结点
-
其他结点有且仅有一个父结点
-
网状模型
网状模型以网状结构表示实体与实体之间的联系。网中的每一个结点代表一个记录类型,联系用链接指针来实现。网状模型可以表示多个从属关系的联系,也可以表示数据间的交叉关系,即数据间的横向关系与纵向关系,它是层次模型的扩展。网状模型可以方便地表示各种类型的联系,但结构复杂,实现的算法难以规范化。其特征是:
- 允许结点有多于一个父结点;
- 可以有一个以上的结点没有父结点。
关系模型
关系模型以二维表结构来表示实体与实体之间的联系,它是以关系数学理论为基础的。关系模型的数据结构是一个“二维表框架”组成的集合。每个二维表又可称为关系。在关系模型中,操作的对象和结果都是二维表。关系模型是目前最流行的数据库模型。支持关系模型的数据库管理系统称为关系数据库管理系统,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 最好 高 好 可访问非关系,有多种编程接口 能 高层