数据库技术基础一、数据库系统概论1、数据库组成:数据库(DB):一组相互关联的文件;数据库管理系统(DBMS):专门用于数据库管理的系统软件,提供应用程序与数据库的接口,提供数据处理功能包括数据库定义、数据操纵、数据控制、数据维护;数据库运行的软硬件环境数据库应用程序:允许用户插入修改删除并报告数据库中数据的计算机程序,有程序员用某种程序设计语言编写的;数据库管理员:建立在账户基础上的维护人员。2、数据库结构:数据描述:实体属性属性值取值域记录字段文件关键词数据模型:层次模型网状模型3、数据库维护:安全完整并发控制二、常用数据库管理系统1、Oracle:OracleDatabase,又名OracleRDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的适应高吞吐量的数据库解决方案。ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的C/S或B/S体系结构的数据库之一。Oracle数据库最新版本为OracleDatabase12c。Oracle数据库12c引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。Oracle数据库12c是私有云和公有云部署的理想平台。2、DB2:DB2是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBMi(旧称OS/400)、z/OS,以及Windows服务器版本。DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器操作系统平台下。DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。DB2采用了数据分级技术,能够使大型机数据很方便地下载到LAN数据库服务器,使得C/S用户和基于LAN的应用程序可以访问大型机数据,并使数据库本地化及远程连接透明化。DB2以拥有一个非常完备的查询优化器而著称,其外部连接改善了查询性能,并支持多任务并行查询。DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。DB2数据库可以通过使用微软的开放数据库连接(ODBC)接口,Java数据库连接(JDBC)接口,或者CORBA接口代理被任何的应用程序访问。3、SQLServer:SQLServer是一个关系数据库管理系统。它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本。Sybase则较专注于SQLServer在UNⅨ操作系统上的应用。4、Sybase:美国Sybase公司研制的一种关系型数据库系统,是一种典型的UNIX或WindowsNT平台上客户机/服务器环境下的大型数据库系统。Sybase提供了一套应用程序编程接口和库,可以与非Sybase数据源及服务器集成,允许在多个数据库之间复制数据,适于创建多层应用。系统具有完备的触发器、存储过程、规则以及完整性定义,支持优化查询,具有较好的数据安全性。Sybase通常与SybaseSQLAnywhere用于客户机/服务器环境,前者作为服务器数据库,后者为客户机数据库,采用该公司研制的PowerBuilder为开发工具,在我国大中型系统中具有广泛的应用。对UNIX操作系统目前广泛应用的为SYBASE10及SYABSE11forSCOUNIX。5、MySQL:MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem:关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。Linux作为操作系统,Apache和Nginx作为Web服务器,MySQL作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP“或“LNMP”组合。6、Access:MicrosoftOfficeAccess是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。它是微软OFFICE的一个成员,在包括专业版和更高版本的office版本里面被单独出售。它能够存取Access/Jet、MicrosoftSQLServer、Oracle(甲骨文软件公司),或者任何ODBC兼容数据库内的资料。MSACCESS以它自己的格式将数据存储在基于AccessJet的数据库引擎里。它还可以直接导入或者链接数据(这些数据存储在其他应用程序和数据库)。软件开发人员和数据架构师可以使用MicrosoftAccess开发应用软件,“高级用户”可以使用它来构建软件应用程序。和其他办公应用程序一样,ACCESS支持VisualBasic宏语言,它是一个面向对象的编程语言,可以引用各种对象,包括DAO(数据访问对象),ActiveX数据对象以及许多其他的ActiveX组件。可视对象用于显示表和报表,他们的方法和属性是在VBA编程环境下,VBA代码模块可以声明和调用Windows操作系统函数。三、ODBC1、简介开放数据库互连(OpenDatabaseConnectivity,ODBC)是微软公司开放服务结构(WOSA,WindowsOpenServicesArchitecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。开放数据库互连定义了访问数据库API的一个规范,这些API独立于不同厂商的DBMS,也独立于具体的编程语言(但是Microsoft的ODBC文档是用C语言描述的,许多实际的ODBC驱动程序也是用C语言写的。)ODBC规范后来被X/OPEN和ISO/IEC采纳,作为SQL标准的一部分,具体内容可以参看《ISO/IEC9075-3:1995(E)Call-LevelInterface(SQL/CLI)》等相关的标准文件。2、架构2.1应用程序应用程序对外提供使用者交谈界面,同时对内执行资料之准备工作,将数据库系统所传回来的结果呈现给使用者。简单来说,应用程序即ODBC界面执行下列主要工作:1)Requestaconnection(i.e.session)withadatasource.2)SendSQLrequeststothedatasource.3)DefinestorageareasanddataformatsfortheresultofSQLrequests.4)Requestresults.5)Processerrors.6)Requestacommitorrollbackofoperationsfortranscationcontrol.7)Terminateaconnectionadatasource.2.2驱动管理器驱动管理器本身是MSWindows中一个动态连接链接库文件(ODBC.DLL)。应用程序透过驱动管理器去加载并连接数据源的驱动程序(driver)并连接数据源。驱动管理器主要工作有:1)UsesODBCINIfiletomapadatasourcenametoaspecificdriverDLL.2)ProcessesserverODBCinitializationcalls.3)ProvidesentrypointstoODBCfunctionsforeachdriver.4)ProvidesparametervalidationandsequencevalidationforODBCcalls.2.3驱动程序-驱动程序也是一个动态连接链接库文件,当应用程序呼叫ODBC函数,SQLConnect或SQLDriverConnect时,驱动管理器就会加载相对的驱动程序与应用程序呼应。驱动程序主要是执行ODBC之相对函数,并与对应的数据源(DataSource)做沟通。驱动程序之工作如下:1)Establishesaconnecttoadatasource.2)Submitsrequeststoadatasources.3)Translatesdatatoorfromotherformats,ifrequestedbytheapplication.4)Returnresultstotheapplication.5)Formatserrorsintostandarderrorcodesandreturnsthemtotheapplication.6)Declaresandmanipulatescursorsifnecessary(invisibletotheapplication).7)Initiatestransactionsifthedatasourcerequiresexplicittransactioninitiation(invisibletotheapp).2.4数据源数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。应用系统程序通过标准API来连接数据源,因此开发过程中不需指定特定的数据库系统,所以数据库系统的开放性从此被建立。3、ODBC数据源配置例:在XP操作系统下配置SQLServerODBC数据源步骤第一步在控制面板下选择管理工具-ODBC数据源,双击图标出现如下界面第二步在用户DSN选项卡片上,单击按钮,出现创建新数据源对话框,选择SQLServer第三步单击第二步的按钮,出现创建到SQLServer的新数据源。如下图所示。输入数据源名称、数据源描述和SQLServer所在的服务器名称或者IP地址。服务器名称可以是SQLServer所在的机器名称,也可以是IP地址。单击下一步按钮。第四步选择登录SQLServer时的身份验证方式。并输入登录SQLServer时所用到的用户名和密码。如下图所示。这里的用户名和密码是在SQLServer中建立的。在SQLServer数据库中选择安全性-登录,新建用户,如下图所示。第五步一定要选择选项,否则默认数据库是master。然后选择您想要连接的数据库。其余的按默认设置,如下图所示。然后单击下一步按钮。第六步按默认设置,单击完成按钮。第七步