嵌入式数据库
一、数据库综述
数据库(DataBase,简记为DB)就是一个有结构的、集成的、可共享的统一管理的数据集合。它不仅包括数据本身,而且包括相关数据之间的联系。数据库技术主要研究如何存储、使用和管理数据;
所谓有结构的,指的是数据是按一定的模型组织起来的。
·数据模型可用数据结构来描述。
·数据模型决定数据的组织方式、操作方法。
·理解数据库的前提是理解数据模型。
·现在的数据库多数是以关系模型来组织数据的。
·可以简单地把关系模型的数据结构-关系理解成为一张二维表。
所谓集成的,是指数据库中集中存放着企业各种各样的数据。
·集中存放的好处是:一个数据只需一个备份,重复存储少,即消除了数据的冗余。
·没有数据冗余,也就能保证数据的一致。
所谓共享,指的是数据库中的数据可以被不同的用户使用。也就是说,每一个用户可以按自己的要求访问相同的数据库。
所谓统一管理的,指的是数据库由DBMS统一管理,任何数据访问都是通过DBMS来完成的。
二、数据库管理系统(DataBase Management System,DBMS)
·是用来管理数据库的一种商品化软件。
·所有访问数据库的请求都由DBMS来完成的。
·DBMS提供了操作数据库的许多命令(语言),即SQL语言。
根据处理对象的不同,数据库管理系统的层次结构由高级到低级依次为应用层、语言翻译处理层、数据存取层、数据存储层、操作系统。
常见的关系型数据库管理系统:
目前有许多数据库产品,如Oracle、SQL Server、DB2、MySQL 、Access,SQLite3等产品各以自己特有的功能,在数据库市场上占有一席之地。
Oracle
Oracle是1983年推出的世界上第一个开放式商品化关系型数据库管理系统。它采用标准的SQL结构化查询语言,支持多种数据类型,提供面向对象存储的数据支持,具有第四代语言开发工具,支持Unix、Windows NT、OS/2、Novell等多种平台。除此之外,它还具有很好的并行处理功能。Oracle产品主要由Oracle服务器产品、Oracle开发工具、Oracle应用软件组成,也有基于微机的数据库产品。主要满足对银行、金融、保险等企业、事业开发大型数据库的需求。
SQL Server
SQL即结构化查询语言(Structured Query Language,简称为SQL)。SQL Server最早出现在1988年,当时只能在OS/2操作系统上运行。2000年12月微软发布了SQL Server 2000,该软件可以运行于Windows NT/2000/XP等多种操作系统之上,是支持客户机/服务器结构的数据库管理系统,它可以帮助各种规模的企业管理数据
随着用户群的不断增大,SQL Server在易用性、可靠性、可收缩性、支持数据仓库、系统集成等方面日趋完美。特别是SQL Server的数据库搜索引擎,可以在绝大多数的操作系统之上运行,并针对海量数据的查询进行了优化。目前SQL Server已经成为应用最广泛的数据库产品之一。
由于使用SQL Server不但要掌握SQL Server的操作,而且还要能熟练掌握Windows NT/2000 Server的运行机制,以及SQL语言,所以对非专业人员的学习和使用有一定的难度。
DB2
DB2是基于SQL的关系型数据库产品。20世纪80年代初期DB2的重点放在大型的主机平台上。到90年代初,DB2发展到中型机、小型机以及微机平台。DB2适用于各种硬件与软件平台。各种平台上的DB2有共同的应用程序接口,运行在一种平台上的程序可以很容易地移植到其他平台。DB2的用户主要分布在金融、商业、铁路、航空、医院、旅游等各个领域,以金融系统的应用最为突出。
Access
Access是在Windows操作系统下工作的关系型数据库管理系统。它采用了Windows程序设计理念,以Windows特有的技术设计查询、用户界面、报表等数据对象,内嵌了VBA(全称为Visual Basic Application)程序设计语言,具有集成的开发环境。Access提供图形化的查询工具和屏幕、报表生成器,用户建立复杂的报表、界面无需编程和了解SQL语言,它会自动生成SQL代码。
Access被集成到Office中,具有Office系列软件的一般特点,如菜单、工具栏等。与其他数据库管理系统软件相比,更加简单易学,一个普通的计算机用户,没有程序语言基础,仍然可以快速地掌握和使用它。最重要的一点是,Access的功能比较强大,足以应付一般的数据管理及处理需要,适用于中小型企业数据管理的需求。当然,在数据定义、数据安全可靠、数据有效控制等方面,它比前面几种数据库产品要逊色不少。
三、数据管理技术的发展过程
·人工管理阶段(40年代中--50年代中)
·文件系统阶段(50年代末--60年代中)
·数据库系统阶段(60年代末--现在)
数据库系统阶段
特点:
数据结构化
数据的共享性高,冗余度低,易扩充
数据独立性高
数据由DBMS统一管理和控制
四、数据模型
数据模型的组成要素
(1) 数据结构
(2) 数据操作
(3) 数据的完整性约束
数据模型:
·层次数据模型
·网状数据模型
·关系数据模型
·面向对象数据库模型
层次数据模型
层次模型按树型结构组织数据,它是以记录类型为结点,以结点间联系为边的有序树,数据结构为有序树或森林。
优点: 数据结构很类似于金字塔,不同层次之间的关联性直接而且简单。
缺点: 由于数据纵向发展,横向关系难以建立,数据可能会重复出现,造成管理维护的不便。
网状数据模型
网状模型用网状结构表示实体及其之间的联系,网中结点之间的联系不受层次限制,可以任意发生联系。
优点: 避免了数据的重复性,具有良好的性能,存取效率高。
缺点: 关联性比较复杂,尤其是当数据库变得越来越大时,关联性的维护会非常麻烦。
关系数据模型
用关系(二维表格形式结构)来表示实体类型以及实体间联系的模型称为关系模型。关系数据模型是由IBM公司的E.F.Codd于1970年首次提出,以关系数据模型为基础的数据库管理系统,称为关系数据库系统(RDBMS),目前广泛使用。
面向对象数据库模型
使用面向对象技术(Object-Oriented,简称OO)来表示信息世界的实体类型及实体之间联系的模型称为对象模型。
五、数据库系统的三级模式结构
数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级组成
外模式
外模式也称子模式或用户模式,它是数据库用户(包括应用程序员和最终用户)看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。外模式一般是模式的子集。一个模式可以有多个外模式。一个应用程序只能使用一个外模式。外模式是保证数据库安全性的一个有力措施。
模式
模式也称为逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公用数据视图。一个数据库只有一个模式。模式是数据项值的框架。数据库系统模式通常还包含有访问控制、保密定义、完整性检查等方面的内容。
内模式
内模式也称为存储模式,它是数据库在物理存储器上具体实现的描述,是数据在数据库内部的表示方法,也是数据物理结构和存储方式的描述。一个数据库只有一个内模式
二级映像功能与数据独立性
数据库系统在三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像。正是这两层映像保证了数据库系统的数据能够具有较高的逻辑独立性和物理独立性。
数据的逻辑独立性
模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对应于同一个模式可以有任意多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式之间的对应关系。当模式改变时(例如,增加新的数据类型、新的数据项、新的关系等),由数据库管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变,从而应用程序不必修改,保证了数据的逻辑独立性
数据的物理独立性
数据库中只有一个模式,也只有一个内模式,所以模式/内模式映像是惟一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构改变时(例如,采用了更先进的存储技术),由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而保证了数据的物理独立性。
六、数据库系统结构
从数据库管理系统的角度,数据库系统通常采用三级模式结构,这是数据库管理系统内部的系统结构。从数据库最终用户的角度看,数据库结构分为集中式、分布式、客户/服务器和并行结构等。
·本地小型数据库
·Main Frame大型数据库
·分布式数据库
·客户机/服务器数据库
单用户数据库系统
单用户数据库系统是一种早期的最简单的数据库系统。在这种系统中,整个数据库系统(包括应用程序、DBMS、数据)都装在一台计算机上,由一个用户独占,不同机器之间不能共享数据。
主从式结构
主从式结构是指一个主机带多个终端的多用户结构。在这种结构中,数据库系统(包括应用程序、DBMS、数据)都集中存放在主机上,所有处理任务都由主机来完成,各个用户通过主机的终端并发地存取数据库,共享数据资源。
分布式结构
指数据库中的数据在逻辑上是一个整体,但物理地分布在计算机网络的不同节点上。网络中的每个节点都可以独立处理本地数据库中的数据,执行局部应用;同时也可以同时存取和处理多个异地数据库中的数据,执行全局应用。
客户/服务器结构
在客户/服务器结构中,客户端的用户请求被传送到服务器,服务器进行处理后,只将结果返回给用户(而不是整个数据),从而显著减少了网络上的数据传输量,提高了系统的性能、吞吐量和负载能力;另一方面,客户与服务器一般都能在不同的硬件和软件平台上运行,可以使用不同厂商的数据库应用开发工具,应用程序具有更强的可移植性,同时也可减少软件维护开销。
七、关系术语和定义
·关系(Relation):一个关系就是一张二维表,每一个关系有一个关系名,可以存储为一个文件。其定义可以描述为 的子集叫做域 , ,…, 上的关系,表示为 ,R表示关系的名称,n表示关系的目或度(Degree)。
·元组:表中的行称为元组,一行就是一个元组,对应存储文件中的一个记录。
·属性:关系中的一列称为一个属性。一个属性必须有唯一的属性名,一个关系可以有若干个属性值。
·域(Domain):属性的取值范围,是一组具有相同数据类型的值的集合。
关系的候选键与主键
表中某一列(或若干列的最小组合)的值能惟一标识一个行,称该列或列组为候选键。如Students表的学号列,就是一个候选键。
对于一个表,可能有多个候选键 。
候选键取决于应用范围,如给定条件,没有重复的学生姓名,则姓名是学生基本情况表的一个候选键。
如果一个表有多个候选键,数据库设计者通常选择其中一个候选键作为区分行的惟一性标识符,称为主键(primary key,PK)。如果一个表只有一个候选键,那么这个候选键就作为主键。例如,在学生基本情况表中,把学号作为该表的主键。
因为主键是候选键之一,而根据候选键的定义,候选键列上的各个值都惟一,因此主键列上的各个值也都惟一
八、嵌入式存储需求
·便捷信息存储和查询功能是系统软件必备的基本服务,嵌入式系统也不例外
·关系数据库技术历经数十载的发展,相关概念深入人心,成为最重要的信息存储和检索手段。
·相对现有的通用计算机系统,嵌入式系统运行环境要求苛刻,同时不同的系统对于性能要求也存在很大的不同