第1章数据库技术概述第1章数据库技术概述本章要点:数据库技术的基本概念常见的数据库设计软件Access2003数据库的特点数据库系统的特点概念模型与数据模型的概念关系型数据库关系型数据库的设计要素随着信息技术的进步,计算机正被应用于越来越多的领域,数据管理便是现代计算机技术的一项重要应用。在计算机中,数据管理指的是对数据进行分类、组织、编码、存储、检索和维护的过程。随着计算机硬件和软件技术的飞速发展,计算机数据管理技术也在不断地更新和完善之中,数据库技术就是一种非常重要而且被广泛应用的计算机数据管理技术。本章从数据库的外观开始讲起,先给读者一个感性的认识——数据库就是这个样子的。然后简单地介绍了被广泛应用的数据库管理系统Access2003的特点。随后概括地介绍了数据库技术的一些基本概念,并详细地讲解了概念模型与数据模型这两个重要的概念。最后介绍了关系型数据库的相关知识及设计要素,为以后数据库技术的系统学习打下坚实的基础。1.1初识数据库1.1.1数据库示例先来认识一下本书中使用到的两个数据库。1.Access2003示例数据库——罗斯文示例数据库(Northwind)罗斯文示例数据库是一个简化了的典型企业管理数据库,包括产品、订单、订单明细、供应商、雇员、客户、产品类别和运货商等数据,它有一个完整的Access数据库系统应具备的各种功能和部件。本书中将以罗斯文示例数据库为引子介绍各章节的知识点,用户可以在【帮助】菜单中的【示例数据库】一项中看到Access2003所提供的所有示例数据库,如图1-1-1所示。1Access数据库应用技术这里,我们单击【罗斯文示例数据库】。打开罗斯文示例数据库后,首先看到的是如图1-1-2所示的画面,这是罗斯文示例数据库的欢迎界面。图1-1-1Access2003中的示例数据库图1-1-2罗斯文示例数据库的欢迎界面单击【确定】按钮将它关闭。这时,就出现了罗斯文示例数据库的数据库窗口和主切换面板,如图1-1-3和图1-1-4所示。【数据库窗口】是Access数据库文件的主窗口,通过它可以查看和编辑当前数据库中的各种对象。在Access数据库中可以包含7种对象,分别是“表”、“查询”、“窗体”、“报表”、“页”、“宏”和“模块”。罗斯文示例数据库为每一个数据库对象都提供了相关的示例,后面章节将结合这一示例数据库来讲解各种数据库对象的功能。图1-1-3罗斯文示例数据库的数据库窗口图1-1-4罗斯文示例数据库的主切换面板【主切换面板】为用户浏览数据库中的数据,以及执行各种相关的功能提供了一种友好的交互式界面,不过这并不是Access数据库所必需的。通过【主切换面板】窗体上的命令按钮,可以执行不同的功能。例如单击【产品】按钮,会弹出【产品】窗体,如图1-1-5所示。【产品】窗体以一种多页面表单的形式显示了所有产品的数据。通过窗体底部的记录导航栏可以在不同的产品记录间切换。2第1章数据库技术概述2.图书管理系统图1-1-5罗斯文示例数据库的【产品】窗体图书管理系统是一种很重要而且很常见的数据库系统,相对于传统的人工管理而言,使用数据库系统对图书进行管理的优势是十分明显的,尤其是图书或会员的信息量较大时,图书管理系统更是起着必不可少的辅助作用。如图1-1-6所示,是使用Access2003设计的“图书管理系统”。图1-1-6图书管理系统窗口示例1.1.2数据库设计软件简介1.常见的数据库设计软件数据库设计软件有很多种,如Oracle、SQLServer、MySQL、Access、FoxPro等,在此只挑选几种比较常用的介绍一下。(1)Oracle数据库。Oracle(甲骨文)数据库是由美国Oracle公司研制的一种关系型数据库管理系统,它可以支持多种不同的硬件和操作系统平台,包括从台式机到大型和超级计算机。为各种硬件结构提供高度的可伸缩性,支持对称多处理器、群集多处理器、大规模处理器等,并提供广泛的国际语言支持。Oracle属于大型数据库系统,主要适用于大、中小型应用系统,或作为客户机/服务器系统中服务器端的数据库系统。它使用起来比较复杂,当然使用费用也比较高。3Access数据库应用技术(2)SQLServer数据库。SQLServer数据库是美国微软公司推出的一种关系型数据库系统,它是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案,多为大中型企业或单位采用。(3)MySQL数据库。MySQL作为一种开放源码关系型数据库,同Oracle等商业数据库一样,具有数据库系统的通用性。正因为如此,MySQL的出现为许多中小企业应用提供了不错的选择,无论是从降低成本,还是从性能方面,采用MySQL作为其数据支撑系统,都是一种可行的方案。随着网络的发展MySQL得到了广泛的应用,尤其是它与PHP的完美组合,在动态网页制作方面更是得到了前所未有的应用。(4)Access数据库。Access是本书主要介绍的数据库设计软件,它是微软公司于1994年推出的微机数据库管理系统,属于Office办公软件套装中的一员。Access具有界面友好、易学易用、开发简单、接口灵活等特点,适合于小型企业的数据库管理应用,是典型的新一代桌面数据库管理系统。下面将着重介绍一下Access2003数据库的特点。2.Access2003数据库的特点Access2003除具备一般关系型数据库管理系统所共有的功能之外,还拥有很多适合现代数据管理任务的独特功能,从而使其成为现在应用最广泛的关系型数据库管理系统之一。Access2003的主要特点如下。(1)易于管理的文件型数据库系统。与很多传统的数据库系统不同,使用Access创建的数据库系统是封装在一个单独的文件中的,即一个Access数据库系统中的各种成分(包括数据表、查询、窗体、报表、页、宏和模块)都存储在一个文件中。这样有利于整个数据库系统的迁移和维护等工作。(2)广泛地支持各种数据类型。除了基本数据类型外,Access2003还支持OLE(ObjectLinkingandEmbedding)数据和XML(ExtensibleMarkupLanguage)数据,从而大大地提高了可管理的数据的类型。(3)方便快捷的图形化工具和向导。Access2003采用了与整个OfficeSystem2003相统一的用户界面,并提供了许多图形化的工具和向导,从而使用户不用编写代码便可以轻松地创建并管理数据库系统。(4)与OfficeSystem中的其他组件高度集成。作为OfficeSystem2003的组件之一,Access2003不但保持了统一的OfficeSystem2003界面风格,还提供了与其他组件共享数据和协同工作的能力,从而大大提高了OfficeSystem的整体性能。4第1章数据库技术概述(5)提供了大量的内置函数与宏。Access2003提供了大量的内置函数与宏,从而使数据库开发人员,甚至是不懂编程语言的开发人员都可以快速地以一种无代码的方式实现各种复杂数据的操作与管理任务。(6)功能强大的集成开发环境。Access2003内置了功能强大且简单易用的VBA(VisualBasicforApplication)集成开发环境,从而使数据库开发人员无须安装并使用其他独立的开发工具便可以轻松地为数据库开发各种高级的功能。(7)增强的网络功能。Access2003提供了创建数据访问页的功能。这是一种可以发布到网络上的Web页面,用户通过数据访问页可以直接查询和处理数据库中的数据。1.1.3数据库技术发展史随着计算机数据管理需求的不断增大,数据管理技术也在不断地更新和完善之中。从计算机诞生至今,数据管理技术的发展大致经历了以下几个阶段,分别是人工管理阶段、文件系统阶段、数据库系统阶段、分布式数据库系统阶段和面向对象数据库系统阶段。1.人工管理20世纪50年代中期以前,计算机主要被用于科学计算。当时的硬件状况是,外存储器只有纸带、卡片和磁带,没有像磁盘这样可以随机访问、直接存取的外部存储设备;软件状况是,没有操作系统,没有专门管理数据的软件。数据由计算或处理它的程序自行携带,并以批处理的方式加以处理。这一时期,对数据以何种结构和方法存取,以及以何种方式输入和输出完全由程序设计人员负责。人工管理数据阶段具有以下一些特点:数据不进行长期保存;数据由对应的应用程序自行管理,而不使用专门管理数据的软件;一组数据只对应于一个应用程序,而无法实现数据的共享,所以大量相同的数据出现在了不同的应用程序中,造成了数据的冗余;由于数据无法独立于应用程序,所以修改数据的同时也要修改相应的应用程序。2.文件系统20世纪50年代后期到60年代中期,计算机的应用范围逐渐扩大,它不仅被用于科学计算,还被大量应用于数据管理方面。此时的计算机硬件已经有了可以直接在外部存取数据的磁盘和磁鼓,而软件方面不但出现了高级程序设计语言,还有了操作系统。这时,数据管理已不再采用人工方式,而是使用操作系统提供的文件系统来管理。采用文件系统来管理数据具有很多优势。首先,数据可以以文件的形式长期地保存下来。其次,数据已不再由应用程序自行管理,而是交由文件系统负责,从而实现了一定的数据独立性和共享能力。不过,随着计算机应用范围的扩大以及数据量的增加,使用文件系统管理数据也出现了很多的问题。比如由于数据在文件内的存储结构和它对应的应用程序之间存在5Access数据库应用技术着严格的依赖关系,所以当改变文件内数据的结构时也必须改变对应的应用程序;另外,虽然以文件形式存储的数据已经和应用程序分开,可以被不同的应用程序共同使用,但此阶段中,数据在文件内的存储结构并没有得到统一,所以数据仍只能服务于特定的一组应用程序,而不是所有的程序。3.数据库系统到了20世纪60年代,计算机硬件的价格开始大幅下降,并出现了大容量硬盘,但软件的开发成本却一直居高不下。这时,计算机在数据处理方面的应用已经越来越广泛,并且出现了对数据进行联机实时处理以及分布式处理的需求。在这种背景下,文件系统已无法满足各种应用的需求,于是,为了提高对数据的管理能力,以及为满足多用户、多应用共享数据的需求,出现了数据库技术,而应用数据库技术管理数据的软件被称为“数据库管理系统”。数据库技术的出现给高效地管理海量数据提供了可能。由于数据库技术采用了更为科学和规范的数据存储结构,所以使数据的冗余度降到了很低的程度。此外,数据库技术为应用程序提供了更为标准和开放式的接口,所以数据的独立性和共享能力都得到了显著的提高。4.分布式数据库系统随着计算机科学和技术的发展,数据库技术与网络通信技术的结合产生了分布式数据库系统。20世纪70年代之前,数据库系统多是集中式的。网络技术的发展为数据库提供了分布式运行的环境——从主机到终端体系结构发展到客户/服务器(Client/Server,简称C/S)系统结构。数据库技术与网络通信技术的结合分为紧密结合和松散结合两大类。分布式数据库系统又分为物理上分布、逻辑上集中的分布式数据库结构和物理上分布、逻辑上分布的数据库结构两种。目前使用较多的是基于第二种结构的客户/服务器系统结构。C/S结构将应用程序根据应用情况分布到客户的计算机和服务器上,将数据库管理系统和数据库放置到服务器上,客户端的程序使用开放数据库连接(OpenDataBaseConnectivity,简称ODBC)标准协议通过网络访问数据库。Access2003为创建功能强大的客户/服务器应用程序提供了专用工具。客户/服务器应用程序具有本地用户界面,但访问的是远程服务器上的数据。5.面向对象数据库系统数据库技术与面向对象程序设计技术结合产生了面向对象数据库系统。面向对象数据库吸收了面向对象程序设计方法的核心概念和基本思想,采用面向对象的观点来描述现实世界实体(对象)的逻辑组织、对象之间的限制和联系等。它克服了传统数据库的局限性,能够自然地存储复杂的数据对象以及这些对象之间的复杂关系,从而大幅度地提高了数据库管