浙江工商大学计算机与信息工程学院1电子商务系统设计与实现毛郁欣maoyuxin@zjgsu.edu.cn浙江工商大学计算机与信息工程学院浙江工商大学计算机与信息工程学院2课程的主要内容第1章概论第2章电子商务系统分析与设计基础第3章电子商务系统开发基础第4章电子商务系统规划第5章电子商务系统分析第6章电子商务系统设计第7章电子商务应用系统设计第8章数据库实现第9章电子商务网站开发技术第10章电子商务系统的开发模式第11章电子商务系统的测试与维护浙江工商大学计算机与信息工程学院3第8章数据库实现8.1桌面数据库的实现——MSAccess20038.2大型数据库的实现——MSSQLServer20058.3SQL编程规范浙江工商大学计算机与信息工程学院48.1桌面数据库的实现——MSAccess20038.1.1Access概述•Access使用标准的SQL(StructuredQueryLanguage,结构化查询语言)作为它的数据库语言,从而提供了强大的数据处理能力和通用性,使其成为一个功能强大而且易于使用的桌面关系型数据库管理系统和应用程序生成器。•一个Access数据库中可以包含表、查询、窗体、报表、宏、模块以及数据访问页。•不同于传统的桌面数据库(dbase、FoxPro、Paradox),Access数据库使用单一的*.mdb文件管理所有的信息,这种针对数据库集成的最优化文件结构不仅包括数据本身,也包括了它的支持对象。浙江工商大学计算机与信息工程学院58.1.2数据库和表的创建(1)ACCESS数据库的创建(2)表的创建和使用浙江工商大学计算机与信息工程学院68.1.3创建查询(1)在设计视图中创建查询(2)运行查询浙江工商大学计算机与信息工程学院78.2大型数据库的实现——MSSQLServer2005•SQLSERVER2005是微软公司开发的一个关系型数据库管理系统。和ACCESS相比,SQLSERVER具有更高的存储效率和安全性,和ORACLE相比,SQLSERVER具有更友好的操作界面、配置管理界面。在我国,SQLSERVER已广泛应用于众多行业和领域。•和SQLServer以前的版本相比,SQLServer2005的新增功能主要表现在企业数据管理易管理性、可用性、可伸缩性和安全性。浙江工商大学计算机与信息工程学院8SQLServer2000主要组件介绍•服务管理器•SQLServer服务管理器负责启动、暂停和停止SQLServer的进程。若要启动SQLServer服务管理器,请选择“开始”“程序”“MicrosoftSQLServer”“服务管理器”命令。•“SQLServer服务管理器”窗口:浙江工商大学计算机与信息工程学院9SQLServer2000主要组件介绍•企业管理器•企业管理器是SQLServer2000中最重要的一个管理工具。•它以层叠形式显示出所有SQLServer对象,使用企业管理器可以完•成几乎所有的管理工作,主要包括:•注册和管理SQLServer服务器;•连接、启动、暂停或停止SQLServer服务;•创建和管理数据库;•创建和管理各种数据库对象,包括表、视图、存储过程、触发器、角色、规则、默认值、用户自定义数据类型、用户自定义函数以及全文目录;•备份数据库和事务日志;数据库复制;设置任务调度;•让管理者进行警报设置;提供跨服务器的拖放操作;•管理用户账户;编写和执行Transact-SQL语句;管理和控制SQLMail。浙江工商大学计算机与信息工程学院10SQLServer2000主要组件介绍•查询分析器•SQLServer2000查询分析器是一种图形工具,它允许用户输•入和执行SQL语句,并返回语句的执行结果。可以进行以下操作。•在“查询”窗口中创建查询和其他SQL脚本,并针对SQLServer数据库来分析和执行它们,执行结果在结果窗格中以文本或表格形式显示,•利用模板功能,可以借助预定义脚本来快速创建数据库和各种数据库对象(如表、触发器和视图等)。•利用对象浏览器脚本功能,可以快速复制现有数据库对象。•利用对象浏览器过程在参数未知的情况下执行存储过程。•利用T-SQL调试程序调试存储过程。•调试查询性能问题,包括显示执行计划、显示服务器跟踪、显示客户统计和索引优化向导。•利用对象搜索功能在数据库内定位对象,或在对象浏览器查看和使用对象。•在“打开表”窗口中快速插入、更新或删除表中的记录行。浙江工商大学计算机与信息工程学院11SQLServer2000主要组件介绍•数据导入导出工具•数据导入导出工具是一个向导程序,用于在不同的SQLServer服务器之间传递数据,也用于在SQLServer与其他数据库管理系统(如Access、FoxPro或Oracle)或其他数据格式(如电子表格或文本文件)之间交换数据。•服务器网络实用工具•服务器网络实用工具用于设置服务器支持的网络库及其参数,目的在于为客户端网络实用工具提供设置参数,使客户机能够顺利地连接到本服务器上。浙江工商大学计算机与信息工程学院12SQLServer2000主要组件介绍•客户端网络实用工具•SQLServer客户端网络实用工具是一个图形工具,它允许用户创建到指定服务器的网络协议连接并更改默认的网络协议,并用于显示当前系统中安装的网络库的有关信息,还显示当前系统中安装的DB-Library版本,并为DB-Library选项设置默认值。•事件探查器•SQL事件探查器是一个图形工具,可以使系统管理员监视SQLServer中的事件,允许捕获有关每个事件的数据并将其保存到文件或SQLServer表中,供以后分析。浙江工商大学计算机与信息工程学院13SQLServer2000主要组件介绍•在IIS中配置SQLXML支持•SQLServer2000的新特性之一是增加了对扩展标记语言XML的支持,可以利用HTTP协议以URL方式访问SQLServer数据库。•为了实现SQLServer2000对XML语言的支持,必须在已有Web站点中建立一个虚拟目录,或者在一个已有虚拟目录中建立一个子目录。•联机丛书•联机丛书包含了关于SQLServer2000的使用说明,利用联机丛书的导航功能可以很方便地找到所需要的帮助信息。浙江工商大学计算机与信息工程学院148.2.1实现数据库设计•设计数据库的过程实际上就是在数据库管理系统中设计数据库对象的过程。•在SQLSERVER中,常用的数据库对象主要有:数据库关系图、表、视图、同义词、存储过程、函数、触发器、程序集、类型、规则、默认值等。浙江工商大学计算机与信息工程学院158.2.2创建和管理数据库•SQLServer2005提供了两种类型的数据库:–系统数据库–用户数据库•创建用户数据库浙江工商大学计算机与信息工程学院168.2.3创建表•SQLSERVER2005的数据类型、字段属性和ACCESS中是有较大不同的,SQLSERVER2005中的数据类型、字段属性要比ACCESS中的数据类型丰富得多。浙江工商大学计算机与信息工程学院178.2.4创建视图•创建视图•修改视图•删除视图浙江工商大学计算机与信息工程学院18使用企业管理器创建视图方法要点:选择“操作”“新建视图”命令,打开视图设计器,然后添加表、视图或函数,指定要输出的列和搜索条件等。使用CREATEVIEW语句创建视图语法格式:CREATEVIEW视图名[(列名[,...n])][WITHENCRYPTION]ASSELECT语句[WITHCHECKOPTION]2.指定列别名在下列情况下,才有必要在CREATEVIEW语句中指定列名:某个列是来自于一个算术表达式、内置函数或常量。由于在SELECT语句中连接了多个表,致使多个列具有相同的名称。要给某个列指定一个不同于基础表中的列名。例如,在基础表中列名用的是英文,在视图中则用中文指定列名。列名也可以在SELECT语句中指定。如果不指定列名,则视图中的列将使用与SELECT语句中相同的名称。浙江工商大学计算机与信息工程学院198.2.5创建索引(1)为什么要用索引(2)创建索引的指导原则(3)在SQLServerManagementStudio中创建索引浙江工商大学计算机与信息工程学院20•创建索引的注意事项:•只有表的所有者可以在同一个表中创建索引。•每个表中只能创建一个聚集索引。•每个表可以创建的非聚集索引最多为249个,包括PRIMARYKEY约束或UNIQUE约束创建的索引在内。•包含索引的所有长度固定列的最大大小为900字节。例如,不可以在定义为char(300)、char(300)和char(301)的三个列上创建单个索引,因为总宽度超过了900字节。•包含同一索引的列的最大数目为16。浙江工商大学计算机与信息工程学院218.2.6创建存储过程•创建存储过程•执行存储过程•2.使用CREATEPROCEDURE语句创建存储过程语法格式:CREATEPROC[EDURE]procedure_name[;number][{@parameterdata_type}[VARYING][=default][OUTPUT]][,...n][WITH{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}][FORREPLICATION]ASsql_statement[...n]浙江工商大学计算机与信息工程学院228.2.7设计数据完整性•数据完整性是指数据的精确性和可靠性。设计数据完整性的目的是为了防止数据库中存在不符合语义的数据,防止错误信息的输入。•SQLSEVER提供了一些工具来帮助用户实现数据完整性,其中最主要的是:约束、规则、默认值、触发器。浙江工商大学计算机与信息工程学院23(1)约束•约束定义关于列中允许值的规则,是强制完整性的标准机制。•SQLSERVER主要支持以下五类约束:•NOTNULL指定不接受NULL值的列;•CHECK约束对可以放入列中的值进行限制,以强制执行域的完整性•UNIQUE约束在列集内强制执行值的唯一性。•PRIMARYKEY(主键)约束标识列或列集,这些列或列集的值唯一标识表中的行。在一个表中,不能有两行包含相同的主键值。•FOREIGNKEY(外键)约束标识表之间的关系。浙江工商大学计算机与信息工程学院24(2)规则•规则是一个向后兼容的功能,用于执行一些与CHECK约束相同的功能。CHECK约束是用来限制列值的首选标准方法。CHECK约束比规则更简明,一个列只能应用一个规则,但是却可以应用多个CHECK约束。CHECK约束作为CREATETABLE语句的一部分进行指定,而规则以单独的对象创建,然后绑定到列上。浙江工商大学计算机与信息工程学院25(3)默认值•如果在插入行时没有指定列的值,那么默认值指定列中所使用的值。默认值可以是任何取值为常量的对象,例如:固定的某一个默认值、用SQLSERVER的内置函数计算得到的值或几个字段计算而得到的数学表达式。浙江工商大学计算机与信息工程学院261.使用企业管理器创建默认值方法要点:展开要在其中创建默认值对象的数据库,单击“默认”节点,然后选择“操作”“新建默认”命令。2.使用CREATEDEFAULT语句创建默认值语法格式:CREATEDEFAULTdefaultASconstant_expression浙江工商大学计算机与信息工程学院27(4)触发器•触发器是一类特殊的存储过程,被定义为在对表或视图发出UPDATE、INSERT或DELETE语句时自动执行。触发器是功能强大的工具,它使每个站点可以在有数据修改时自动强制执行其业务规则。触发器可以扩展SQLServer约束、默认值和规则的完整性检查逻辑,但只要约束和默认值提供了全部所需的功能,就应使用约束和默认值。浙江工商大学计算机与信息工程学院281.使用企业管理器创建触发器方法要点:单击将在其上创建触发器的表,然后选择“操作”“所有任务”“管理触发器”命令。2.使用CREATETRI