1、第1章 数据库系统概述1.1 数据库的基本概念l1.1.1数据与数据库l1.数据及其特征l(1)数据的定义数据(Data)是描述现实世界各种信息的符号记录,是信息的载体和具体表现形式。l(2)数据的特征数据有“型”和“值”的特点。数据有多种表现形式。数据与信息有内在的联系。1.1 数据库的基本概念l2.数据库l数据库(Database,DB)就是按照一定的数据模型组织的、长期储存在计算机内、可为多个用户共享的数据的聚集。在引入了数据库管理系统(DBMS)这个概念之后,可以认为,数据库就是由DBMS统一管理和控制的数据的聚集。1.1 数据库的基本概念l1.1.2数据库管理系统l数据库管理系统(D
2、atabase Management System,DBMS),是位于用户与操作系统之间的一层数据管理软件,是管理数据库的工具,是为数据库的建立、使用和维护而配置的软件,它建立在操作系统的基础上,实现对数据库统一的管理和控制。1.1 数据库的基本概念l按功能划分,数据库管理系统大致可分为6个部分:l模式翻译l应用程序的编译l交互式查询l数据的组织与存取l事务运行管理l数据库的维护1.1 数据库的基本概念l1.1.3数据库系统l数据库系统(Database System,DBS)是采用数据库技术的计算机系统,是一个实现有组织、动态的存储大量相关结构化数据的计算机软、硬件资源的集合。它包括和数据库
3、有关的整个系统:数据库、DBMS、应用程序以及数据库管理员和用户等。(1)数据库(2)硬件(3)软件(4)人员1.1 数据库的基本概念1.2数据模型l1.2数据模型l 1.2.1数据模型的概念数据模型(Data Model)就是一种对客观事物抽象化的表现形式,是计算机世界对现实世界的抽象、表示和处理的工具,是数据库系统的核心和基础。1.2数据模型l1.2.2信息的三个世界l各种计算机上实现的DBMS软件都是基于某种数据模型的,因此需要把现实世界中的具体事物抽象、组织为与各种DBMS相对应的数据模型,这是两个世界间的转换,即从现实世界到机器世界。但是这种转换在实际操作中,是不能够直接执行的,还需
4、要一个中间过程,这个中间过程就是信息世界,如图1-2所示。1.2数据模型l1.2.3数据模型的三要素数据模型通常由数据结构(Data Structure)、数据操作(Data Control)和完整性约束(Integrity Rules)三要素组成。l(1)数据结构数据结构描述的是系统的静态特性,是所研究对象的类型的集合。由于数据结构反映了数据模型最基本的特征,因此,人们通常都按照数据结构的类型来命名数据模型。传统的数据模型有层次模型、网状模型和关系模型。1.2数据模型l(2)数据操作数据操作描述的是系统的动态特性,是对各种对象实例允许执行的操作的集合。数据操作主要分更新和检索两大类,更新包括
5、数据的插入、删除、修改等操作。l(3)完整性约束完整性约束的目的是保证数据的正确性、有效性和相容性。例如,在关系模型中,任何关系都必须满足实体完整性和引用完整性这两个条件。1.2数据模型l1.2.4常见的数据模型l1.层次模型(Hierarchical Model)l(1)基本原理层次模型可以看作是一棵以记录型为结点的有向树,每一个结点是一个有若干数据项组成的逻辑记录型,用有向边来表示实体集之间的一对多联系。这样,层次模型把整个数据库的结构表示成一个有序树的集合。其中,逻辑记录型可以看作是逻辑记录的集合的名字,一个逻辑记录代表一个实体,逻辑记录由字段组成,用字段值表示实体的属性值。1.2数据模
6、型l(2)层次模型的特点数据结构树型结构(一对多关系)只有一个无双亲的根结点,其他结点有且只有一个双亲。表示多对多关系需要转换成一对多关系。表示非树形结构需要先转换成树形结构。操纵与完整性约束不能插入无双亲的子结点.子结点会随着双亲结点被删除时一起删除。更新操作时要保证数据的一致性。1.2数据模型l(3)层次模型的优缺点l优点比较简单,只需很少命令就能操纵数据库,比较容易使用。结构清晰,结点间联系简单,只要知道每个结点的双亲结点,就可知道整个模型结构。现实世界中许多实体间的联系本来就呈现出一种很自然的层次关系,如表示行政层次,家族关系很方便。提供了良好的数据完整性支持。1.2数据模型l缺点不能
7、直接表示两个以上的实体之间的复杂联系和实体型间的多对多联系,只能通过引入冗余数据或创建虚拟结点的方法来解决,易产生不一致性。对数据的插入和删除的操作限制太多。查询子结点必须通过双亲结点。1.2数据模型l2.网状模型(Network Model)l(1)基本原理网状数据模型中的每一个结点代表一个记录类型,联系则用链接指针来实现。在网状模型中子女到双亲的联系不是惟一的,所以在网状模型中给每一对父结点与子结点之间的联系都指定名字,这种联系称为系。系中的父结点称为首记录型或主记录型,子记录型称为属记录型。1.2数据模型l(2)网状模型的特点数据结构网状模型中每个结点表示一个记录型(实体),每个记录型可
8、包含若干个字段(实体的属性),结点间的连线表示记录类型(实体)间的父子关系。允许多个结点无双亲,同时也允许结点有多个双亲。允许结点间有多个联系(复合联系)。1.2数据模型数据操纵与完整性约束允许插入无双亲的子结点,允许只删除双亲结点。更新操作较简单,修改数据时,可直接表示非树形结构,而无需像层次模型那样增加冗余结点,因此,修改操作时只需更新指定记录即可。1.2数据模型l(3)网状模型的优缺点优点能更为直接地描述客观世界,可表示实体间的多种复杂联系。具有良好的性能和存储效率。缺点结构复杂,其DDL语言极其复杂。数据独立性差,由于实体间的联系本质上是通过存取路径表示的,因此应用程序在访问数据时要指
9、定存取路径。1.2数据模型l3.关系模型(关系模型(Relational Model)l(1)基本原理关系模型以二维表结构来表示实体与实体之间的联系。关系模型的数据结构是一个“二维表框架”组成的集合。每个二维表又可称为关系(Relation)。在关系模型中,操作的对象和结果都是二维表。1.2数据模型l(2)关系模型的特点数据结构关系模型与层次模型、网状模型不同,它是建立在严格的数学概念之上的。关系模型的数据结构是一个“二维表框架”组成的集合,每个二维表又可称为关系,所以关系模型是“关系框架”的集合。1.2数据模型l数据操纵与完整性约束数据操纵主要包括查询、插入、删除和修改数据,这些操作必须满足
10、关系的完整性约束条件,即实体完整性、参照完整性和用户定义的完整性。在非关系模型中,操作对象是单个记录,而关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合。用户只要指出“干什么”,而不必详细说明“怎么干”,从而大大地提高了数据的独立性,提高了用户的生产率。1.2数据模型l(3)关系模型的优缺点优点与非关系模型不同,它有较强的数学理论根据。数据结构简单、清晰,用户易懂易用,不仅用关系描述实体,而且用关系描述实体间的联系。关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库建立和开发的工作。缺点由于存取路径对用户透明,查询
11、效率往往不如非关系模型,因此,为了提高性能,必须对用户的查询表示进行优化,增加了开发数据库管理系统的负担。1.3数据库系统结构l1.3.1三层模式结构美国国家标准协会(American National Standard Institute,ANSI)的数据库管理系统研究小组于1978年提出了标准化的建议,将数据库结构分为三级:面向用户或应用程序员的用户级、面向建立和维护数据库人员的概念级、面向系统程序员的物理级。用户级对应外模式,概念级对应概念模式,物理级对应内模式,使不同级别的用户对数据库形成不同的视图。数据库的三级模式是数据库在三个级别(层次)上的抽象,使用户能够逻辑地、抽象地处理数据而
12、不必关心数据在计算机中的物理表示和存储。1.3数据库系统结构l1.外模式外模式(External Schema)又称为用户模式,是数据库用户和数据库系统的接口,是数据库用户的数据视图,是数据库用户可以看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。l2.内模式内模式内模式(Internal Schema)又称为存储模式(Storage Schema),是数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式。1.3数据库系统结构l3.模式模式l模式(Schema)是所有数据库用户的公共数据视图,是数据库中全部数据的逻辑结构和特征的描述。模式不但要描述数据的逻
13、辑结构,比如数据记录的组成,各数据项的名称、类型、取值范围,而且要描述数据之间的联系、数据的完整性、安全性要求。l模式又可细分为概念模式(Conceptual Schema)和逻辑模式(Logical Schema),其中概念模式可用实体-联系模型来描述,逻辑模式以某种数据模型(比如关系模型)为基础,综合考虑所有用户的需求,并将其形成全局逻辑结构。1.3数据库系统结构l1.3.2两层映像功能l所谓映像(Mapping)就是一种对应规则,说明映像双方如何进行转换。1.3数据库系统结构l1.外模式外模式/模式映像模式映像l通过外模式与模式之间的映像,可以把描述局部逻辑结构的外模式与描述全局逻辑结构
14、的模式联系起来。由于一个模式与多个外模式对应,因此对于每个外模式都有一个外模式/模式映像用于描述该外模式与模式之间的对应关系。l2.模式模式/内模式映像内模式映像l通过模式与内模式之间的映像把描述全局逻辑结构的模式与描述物理结构的内模式联系起来。由于数据库只有一个模式,也只有一个内模式,因此模式/内模式映像也只有一个。1.3数据库系统结构l1.3.3数据库体系结构与数据独立性l数据独立性是指应用程序和数据结构之间相互独立,互不影响,是数据库系统的最基本的特征之一。数据独立性包括数据逻辑独立性和数据物理独立性:逻辑独立性表示一旦模式发生变化,无需改变外模式或者应用程序的能力;物理独立性表示不会因
15、为内模式发生改变而导致概念模式发生改变的能力。1.4 数据库管理系统l1.4.1数据库管理系统的组成1.4 数据库管理系统l1.DBMS输入输入l(1)查询对数据的查询有两种生成方式。l(2)更新对数据的插入、修改和删除等操作统称为更新。l(3)模式更新所谓数据库的模式,就是指数据的逻辑结构。1.4 数据库管理系统l2.查询处理程序(查询处理程序(Query Processor)l查询处理程序的功能是接收到一个操作的请求后,找到一个最优的执行方式,然后向存储管理程序发出命令,使其执行。存储管理程序的功能是从数据库中获得上层想要查询的数据,并根据上层的更新请求更新相应的信息。由此可见,查询处理程
16、序它不仅负责查询,也负责发出更新数据或模式的请求。1.4 数据库管理系统l3.存储管理程序(Storage Manager)l在简单的数据库系统中,存储管理程序可能就是底层操作系统的文件系统;但有时为了提高效率,DBMS往往直接控制磁盘存储器。存储管理程序包括两个部分文件管理程序和缓冲区管理程序。1.4 数据库管理系统l4.事务管理程序(事务管理程序(Transaction Manager)l事务管理程序负责系统的完整性。它必须保证同时运行的若干个数据库操作不互相冲突,保证系统在出现故障时不丢失数据。事务管理程序要和查询处理程序互相配合,因为它必须知道当前将要操作的数据,以免出现冲突。为了避免
17、发生冲突,还可能需要延迟某些操作。事务管理程序也要和存储管理程序互相配合,因为数据库恢复一般需要一个日志文件,记录每一次数据的更新,这样即使系统出现故障,也能有效而可靠地进行恢复。1.4 数据库管理系统l1.4.2数据库管理系统的功能l(1)数据定义DBMS提供数据定义语言DDL(Data Definition Language),供用户定义数据库的三级模式结构、两级映像以及完整性约束和保密限制等约束。l(2)数据操作DBMS提供数据操作语言DML(Data Manipulation Language),供用户实现对数据的追加、删除、更新、查询等操作。1.4 数据库管理系统l(3)数据库的运行
18、管理数据库的运行管理功能是DBMS的运行控制、管理功能,包括多用户环境下的并发控制、安全性检查和存取限制控制、完整性检查和执行、运行日志的组织管理、事务的管理和自动恢复,即保证事务的原子性。这些功能保证了数据库系统的正常运行。l(4)数据组织、存储与管理DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等,需确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率,选择合适的存取方法提高存取效率。1.4 数据库管理系统l(5)数据库的保护数据库中的数据是信息社会的战略资源,所以数据的保护至关重要。DBMS对数
19、据库的保护通过4个方面来实现:数据库的恢复、数据库的并发控制、数据库的完整性控制、数据库安全性控制。DBMS的其他保护功能还有系统缓冲区的管理以及数据存储的某些自适应调节机制等。l(6)数据库的维护这一部分包括数据库的数据载入、转换、转储、数据库的重组重构以及性能监控等功能,这些功能分别由各个使用程序来完成。1.4 数据库管理系统l(7)通信lDBMS具有与操作系统的联机处理、分时系统及远程作业输入的相关接口,负责处理数据的传送。对网络环境下的数据库系统,还应该包括DBMS与网络中其他软件系统的通信功能以及数据库之间的互操作功能。1.4 数据库管理系统l1.4.3数据库语言(Database
20、Language)l为了完成上述的数据库管理系统的七大功能,数据库管理系统为用户维护和操作数据库中的数据提供了丰富的数据库语言,数据库语言是对数据库系统完成数据描述、操纵和控制的重要工具。1.4 数据库管理系统l1.数据描述语言(数据描述语言(Data Definition Language,DDL)数据描述语言或称数据定义语言,用于描述数据库中的数据、数据的逻辑结构、数据的物理结构以及两者间映射的工具。数据库系统结构可分为三个层级:模式、子模式和存储模式数据描述语言相应地也分为三级:供数据库管理员使用的,描述数据库全局逻辑结构的数据描述语言,即模式数据描述语言。描述数据实际存储方式的数据描述
21、语言,即存储描述语言。供用户使用的,描述数据库局部逻辑结构的数据描述语言,即子模式数据描述语言。1.4 数据库管理系统l2.数据操纵语言(数据操纵语言(Data Manipulation Language,DML)对数据库中数据进行存储、检索、修改和删除的语言,为使用数据库所必需的工具。任何数据库管理系统至少提供一种数据操纵语言。1.4 数据库管理系统lDML一般可分为两类:可以独立使用的自容型数据操纵语言,主要提供查询功能,也称查询语言,有时还可兼有数据存储、修改和删除功能,通常是非过程化语言。宿主型数据操纵语言,它要嵌入其他程序设计语言(如COBOL、FORTRAN、PL/I、汇编语言)。
22、被嵌入的语言称为宿主语言,嵌入的语言称为子语言。数据库应用程序用宿主语言和子语言书写而成,操纵语言和宿主语言要有相容的语法,宿主型操纵语言通常是过程化语言。关系数据库管理系统所提供的数据库语言,如System R的SQL语言,具有定义、操纵和控制一体化的特征,既可嵌入宿主语言,也可独立用作查询语言。1.4 数据库管理系统l3.数据控制语言(数据控制语言(Data Control Language,DCL)l数据库语言中提供数据控制功能的语句的总和,如控制用户对数据的存取权、控制数据完整性等的语言成分。这些语句包括GRANT、DENY、REVOKE等语句。1.4 数据库管理系统l1.4.4数据库
23、管理系统的工作过程在对数据库的系统结构和数据库管理系统的体系结构有了初步的了解以后,下面通过介绍应用程序查询数据库数据的全过程来大致了解数据库系统运行的过程。1.4 数据库管理系统l1.4.5主要数据库管理系统介绍l1.SQL serverlSQL Server能够提供满足今天电子商务商业环境要求的不同类型的数据库解决方案。它是一种应用广泛的数据库管理系统,具有许多显著的优点,如易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等。1.4 数据库管理系统l2.MySQLlMySQL由瑞典MySQL AB公司开发,目前属于Oracle
24、公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,它分为社区版(免费且开源)和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。1.4 数据库管理系统l3.DB2lDB2是IBM公司研制的一种关系型数据库系统。DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到
25、单用户环境,应用于OS/2、Windows等平台下。DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。DB2采用了数据分级技术,能够使大型机数据很方便地下载到LAN数据库服务器,使得客户机/服务器用户和基于LAN的应用程序可以访问大型机数据,并使数据库本地化及远程连接透明化。它以拥有一个非常完备的查询优化器而著称,其外部连接改善了查询性能,并支持多任务并行查询。DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。1.4 数据库管理系统l4.
26、Oracle数据库lOracle数据库是Oracle公司于1979年首先推出的基于SQL标准的关系数据库产品,可在100多种硬件平台上运行,包括个人电脑、工作站、小型机、中型机和大型机,并支持多种操作系统。它是以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。用户的Oracle应用可以便利地从一种计算机配置移植到另一种计算机配置上。Oracle的分布式结构可将数据和应用驻留在多部电脑中,且相互之间的通讯是透明的。其最新版本是Oracle Database 11g。第2章 电子商务中的数据库系统2.1 电子商务相关技术发展l
27、Web是一种典型的分布式应用结构。Web应用中的每一次信息交换都要涉及客户端和服务端。因此,web开发技术大体上也可以分为客户端技术和服务端技术两类。Web客户端的主要任务是展现信息内容。Web客户端涉及技术主要包括:HTML语言、Java Applets、脚本程序,CSS、DHTML、插件技术以及VRML技术。Web服务器技术主要包括服务器构建的基本技术、CGI、PHP、ASP、ASP.NET、Servlet和JSP等技术。2.1 电子商务相关技术发展l2.1.1客户端技术l1.静态文档(HTML/XML)l网页伴随互联网的普及深入到生活的方方面面,在这些网页背后则是HTML技术,它深刻地影
28、响着现代互联网的各个领域。lHTML是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。2.1 电子商务相关技术发展l使用HTML可以:发布包含标题、文本、表格、列表、图片的在线文档。通过单击超链接进行网页间的跳转。设计表单将用户输入的内容提交给服务器进行处理。可以嵌入声音、视频等多媒体内容。2.1 电子商务相关技术发展l2.样式表样式表CSSlCSS(Cascading Style Sheets,层叠样式表单)是一种用来表现HTML或XML等文件样式的计算机语言。CSS目前最新版本为CSS3,是能够真正做到网页表现与内容分离的一种样式设计语言
29、。相对于传统HTML的表现而言,CSS能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。CSS能够根据不同使用者的理解能力,简化或者优化写法,针对各类人群,有较强的易读性。2.1 电子商务相关技术发展lCSS的功能包括:样式定义如何显示HTML元素。样式通常存储在样式表中。把样式添加到HTML 4.0中,是为了解决内容与表现分离的问题。外部样式表可以极大提高工作效率。外部样式表通常存储在CSS文件中。多个样式定义可层叠为一。2.1 电子商务相关技术发展l3.插件技术插
30、件技术l由于HTML语言的功能十分有限,无法达到人们的预期设计,以实现令人耳目一新的动态效果,在这种情况下,各种脚本语言应运而生,使得网页设计更加多样化。l插件是一种遵循一定规范的应用程序接口编写出来的程序。很多软件都有插件,插件有无数种。例如在IE中,安装相关的插件后,WEB浏览器能够直接调用插件程序,用于处理特定类型的文件。2.1 电子商务相关技术发展l常见的插件有Flash插件、RealPlayer插件、MMS插件、MIDI五线谱插件、ActiveX插件等等;再比如迅雷的IE下载支持插件,也是一种插件。2.1 电子商务相关技术发展l(1)Flash插件lFlash是一种集合动画创作与应用
31、程序开发于一身的创作软件,到2013年,其最新的零售版本为Adobe Flash Professional CS6。Flash广泛用于创建吸引人的应用程序,它们包含丰富的视频、声音、图形和动画。2.1 电子商务相关技术发展l(2)ActiveX插件lActiveX是一个开放的集成平台,为开发人员、用户和Web生产商提供了一个快速而简便的在Internet和Intranet创建程序集成和内容的方法。使用ActiveX可轻松方便的在Web页中插入多媒体效果、交互式对象以及复杂程序。2.1 电子商务相关技术发展l4.DHTMLlDHTML(Dynamic HTML,动态HTML)指的是网页内容随着用
32、户或计算机程序提供的参数而变化的HTML,通过结合HTML、用户端脚本语言(如JavaScript)、样式表(CSS)和文件物件模型(DOM)来创建动态网页内容。2.1 电子商务相关技术发展l2.1.2服务器端技术l1.CGI技术技术lCGI(Common Gateway Interface)是HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。绝大多数的CGI程序被用来解释处理来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使网页具有交互功能。2.1 电子商务相关技术发展l2.服务器端脚本语言服务器端脚本语言l服务器端
33、脚本语言(Server Script Language)是一种必须附在某程序上来扩展此程序的语言,它介于HTML和Java、C+、Visual Basic编程语言之间。它为建立交互式Web页面的开发者提供了非常便利的条件,其基本特点是开发快速、部署容易、代码动态。用脚本语言编写的代码必须通过适应的解释器执行,所指定的程序在服务器端执行,一般用户看不到源程序。它允许用户访问数据库系统并回应用户的输入请求。lASP、PHP和JSP是目前较为常用的几种服务器端脚本语言。2.1 电子商务相关技术发展l(1)ASPlASP(Active Server Pages)是一套服务器端解释型的脚本语言环境,它允
34、许开发者用可扩展的软件组件装置连接脚本语言(如VBScript和JavaScript)。l(2)PHPlPHP(Hypertext Preprocessor)是一种嵌入在HTML并由服务器解释的多用途脚本语言。l(3)JSPlJSP(Java Server Page)是由SUN公司倡导、许多公司参与一起建立的一种动态网页编程技术标准。2.1 电子商务相关技术发展l2.1.3 Web2.0l1.定义与特点l目前IT界对于web2.0尚无统一定义。2004年国际web2.0大会提出web成为一个平台。Wiki百科全书中说:“Web2.0是指对于感知到的万维网正在进行的变化,是万维网从网站的集合转变
35、为向终端用户提供Web应用的计算平台的统称,代表着因特网从静态网页集合向提供软件服务载体的一种演进,是新一代的互联网模式。”。2.1 电子商务相关技术发展l2.NoSQL运动运动lNoSQL(Not Only SQL)指的是非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。2.1 电子商务相关技术发展lNOSQL的优势如下:l易扩展:NoSQL数据库种类繁多,但是有一个共同的特点都是去掉关系数据
36、库的关系型特性。l大数据量:高性能NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。l高可用:NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。l常见的NoSQL数据库有Cassandra、Mongo dB、Couch DB、Redis、Riak、Membase、Neo4j和HBase等。2.2网络数据库的发展l传统的Web数据库系统一般实现Web数据库系统的连接和应用可采取两种方法:一种是在Web服务器端提供中间件来连接Web服务器和数据库服务器;另一种是把应用程序下载到客户端并在客户端直接访问数据库。l中间件负责管理Web服务器和数据库服务器之间的通信并提
37、供应用程序服务,它能够直接调用外部程序或脚本代码来访问数据库,因此可以提供与数据库相关的动态HTML页面,或执行用户查询,并将查询结果格式化成HTML页面。通过Web服务器返回给Web浏览器。最基本的中间件技术有通用网关接口(CGI)和应用程序接口(API)两种。2.2网络数据库的发展l2.2.1 CGIlCGI(Common Gateway Interface,基于通用网关接口)是WWW服务器运行时外部程序的规范,按照CGI编写的程序可以扩展服务器的功能,完成服务器本身不能完成的工作,外部程序执行时间可以生成HTML文档,并将文档返回WWW服务器。2.2网络数据库的发展l几乎使用的服务器软件
38、都支持CG开发人员可以使用任何一种WWW服务器内置语言编写CG其中包括流行的C、C+、VB和python等。基于CGI的Web应用的结构图如图。2.2网络数据库的发展lCGI的典型操作过程是:分析CGI数据;打开与DBMS的连接;发送SQL请求并得到结果;将结果转化为HTML;关闭DBMS的连接;将HTML结果返回给Web服务器。2.2网络数据库的发展l基于Web的数据库访问利用已有的信息资源和服务器。其访问频率大,尤其是热点数据。但其主要的缺点是:l客户端与后端数据库服务器通信必须通过Web服务器,且Web服务器要进行数据与HTML文档的互相转换,当多个用户同时发出请求时,必然在Web服务器
39、形成信息和发布瓶颈。lCGI应用程序每次运行都需打开和关闭数据库连接,效率低,操作费时。lCGI应用程序不能由多个客户机请求共享,即使新请求到来时CGI程序正在运行,也会启动另一个CGI应用程序,随着并行请求的数量增加,服务器上将生成越来越多的进程。为每个请求都生成进程既费时又需要大量内存,影响了资源的使用效率,导致性能降低并增加等待时间。2.2网络数据库的发展l由于SQL与HTML差异很大,CGI程序中的转换代码编写繁琐,维护困难。l安全性差,缺少用户访问控制,对数据库难以设置安全访问权限。lHTTP协议是无状态且没有常连接的协议,DBMS事务的提交与否无法得到验证,不能构造Web上的OLT
40、P应用。2.2网络数据库的发展l2.2.2基于服务器扩展的APIl为了克服CGI的局限性,出现的另一种中间件解决方案是基于服务器扩展API(Internet Server Application Programming InterfacISAPI)的结构。与CGI相比,API应用程序与Web服务器结合得更加紧密,占用的系统资源也少得多,而运行效率却大大提高,同时还提供更好的保护和安全性。2.2网络数据库的发展l虽然基于服务器扩展API的结构可以方便、灵活地实现各种功能,连接所有支持32位ODBC的数据库系统,但这种结构的缺陷也是明显的:各种API之间兼容性很差,缺乏统一的标准来管理这些接口。开
41、发API应用程序也要比开发CGI应用复杂得多。这些API只能工作在专用Web服务器和操作系统上。2.2网络数据库的发展l2.2.3基于JDBC的Web数据库技术lJDBC(Java DataBase Connectivit,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯Java API编写数据库应用程序。2.3电子商务数据库系统结构l2.3.1服务器结构的演进l计算机的应用结构经历了集中式结构
42、、文件服务器的网络结构,发展到现在的客户机/服务器(C/S)结构。2.3电子商务数据库系统结构l2.3.2 Client/Server数据库结构lClient/Server结构是近几年计算机界的主要趋势之一,也称为C/S模式。客户机安装了客户端程序,具备一定的数据处理和数据存储能力,服务器端主要完成数据库的数据存储、操作和管理任务。C/S结构又称为“胖客户机”模式。2.3电子商务数据库系统结构l2.3.3 Browser/Server数据库结构l在应用领域,目前大部分企业感兴趣的是如何与供应商、客户进行更密切的交流以便共享信息,提供更好的客户支持。随着Internet技术对“跨企业”应用的支持
43、,出现了一种浏览器/服务器(Browser/ServeB/S模式)数据库系统的模式。这种模式的基本结构由3个部分组成:客户端浏览器、Web服务器、数据库服务器,一般也称为三层模式结构。2.3电子商务数据库系统结构l(1)客户端浏览器l客户端浏览器的主要作用是向Web服务器端发送请求,这个请求是通过在浏览器的地址栏里输入网站地址URL(Uniform Resource Locato统一资源定位符)实现的,包含请求的方法、URL、协议版本、请求头部和请求数据。2.3电子商务数据库系统结构l(2)Web服务器lWeb服务器是指驻留于因特网上某种类型计算机的程序。Web服务器使用HTTP协议响应客户端
44、浏览器的请求,Web服务器解析请求,定位请求资源。当浏览器中输入了一个文件或单击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由IP地址指定的URL。2.3电子商务数据库系统结构l(3)数据库服务器l一个数据库服务器是指运行在网络中的一台或多台服务器计算机上的数据库管理系统软件,数据库服务器为客户应用提供服务,这些服务包括查询、更新、事务管理、索引、高速缓存、查询优化、安全及多用户存取控制等。2.3电子商务数据库系统结构l2.3.4四层B/S模式l随着软件系统的规模扩大和复杂性的增加,软件体系结构的选择成为比数据结构和算法的选择更为重要的因素。B/S模式在企业的不断推广使用
45、,渐渐出现了四层B/S体系结构。2.3电子商务数据库系统结构l四层B/S模式在两层模式的基础上,增加了新的一级。这种模式在逻辑上将应用功能分为四层:客户显示层:为客户提供应用服务的图形界面,有助于用户理解和高效地定位应用服务。Web服务器层:负责处理内容的显示,即形成HTML页面,不处理业务逻辑。业务逻辑层(Business Logic Layer):位于Web服务器层和数据服务层之间,专门为实现企业的业务逻辑提供了一个明确的层次,在这个层次封装了与系统关联的应用模型,并把用户表示层和数据库代码分开。数据库服务器层:是四层模式中的最底层,用来定义、维护、访问和更新数据并管理和满足应用服务对数据
46、的请求。2.3电子商务数据库系统结构l四层B/S模式体系结构如图。3.1关系模型3.1.1关系数据结构1.关系的定义l关系(Relation)是二维表的抽象,无论是实体集还是实体之间的联系均由单一的“关系”结构类型表示。l关系模式可以形式化地表示为:R(U,D,dom,F),其中,R为关系名,U是组成该关系的属性名集合,D是属性组U中属性所来自的域,dom是属性向域的映象集合,F是属性间的数据依赖关系集合。关系模式通常可以简记为:R(U)或 R(A1,A2,An)其中:R为关系名,A1,A2,An为属性名。3.1关系模型2.关系的分类按属性分类按元组数目分类按存储状况分类3.1关系模型3.关系
47、的性质元组个数有限性元组的唯一元组的次序无关性属性名唯一性属性的次序无关性分量值域的同一性列不可再分性3.1关系模型3.1.2关系操作1.查询操作2.插入操作3.删除操作4.修改操作3.1关系模型3.1.3完整性约束1.实体完整性(Entity Integrity)2.参照完整性(Referential Integrity)3.用户定义的完整性(User-defined Integrity)3.2 关系代数3.2.1概述n关系代数(Relation Algebra)是关于数理逻辑和集合论的代数结构。它是一种抽象的查询语言,主要作用于一个或多个关系上生成一个新的关系,通过对“关系”的运算来“表达
48、查询”,即运算对象是关系,运算结果也是关系。n运算对象、运算结果和运算符是关系代数运算的三大要素。而关系代数用到的运算符主要有两大类:传统集合运算符和专门的关系运算符,另外还有两类运算符是用来辅助专门的关系运算符进行操作的,即算术比较运算符和逻辑运算符3.2 关系代数3.2.2传统的集合运算1.并(Union)2.差(Difference)3.交(Intersection)4.广义笛卡尔积(Extended cartesian product)3.2 关系代数3.2.3专门的关系运算1.选择(Selection2.投影(Projection)3.连接(Join)(1)一般连接(2)等值连接(3
49、)自然连接4.除(Division)3.3关系数据库的完整性3.3.1完整性概念与作用1.概念数据库的完整性是指数据库中数据的正确性、有效性和相容性(一致性)。设计数据库一个重要的步骤就是实施保证数据完整性。2.作用3.3关系数据库的完整性3.3.2完整性约束的类型1.实体完整性2.参照完整性3.域完整性4.用户定义完整性3.3关系数据库的完整性3.3.3完整性约束表现形式1.静态约束(1)静态列级约束(2)静态元组约束(3)静态关系约束2.动态约束(1)动态列级约束(2)动态元组约束(3)动态关系约束3.4范式理论3.4.1数据依赖与范式1.数据依赖l 关系模型中各属性之间相互依赖、相互制约
50、的关系就成为数据依赖。数据依赖是可以作为关系模式的取值的任何一个关系所必须满足的一种约束条件,是通过一个关系中数据间值的相等与否体现出来的相互关系。l 一般可分为:函数依赖、多值依赖、连接依赖。3.4范式理论2.函数依赖(1)函数依赖的概念l是指同一关系中各属性或属性组之间的相互依赖关系,类似于变量之间的单值函数关系,它是最重要的数据依赖,也是关系规范化的理论基础。l函数依赖的定义为:对于X的每一个具体值,Y都有唯一的具体值与之对应,则称Y函数依赖于X,或X函数决定Y,X称为决定因素。其中:如果XY且Y不是X的子集,则称XY是非平凡的函数依赖;如果Y是X的子集,则称XY是平凡的函数依赖。3.4
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。