《电子商务系统设计与实现(第8章).ppt》由会员分享,可在线阅读,更多相关《电子商务系统设计与实现(第8章).ppt(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、浙江工商大学计算机与信息工程学院电子商务系统设计与实现电子商务系统设计与实现毛郁欣毛郁欣浙江工商大学计算机与信息工程学院浙江工商大学计算机与信息工程学院1浙江工商大学计算机与信息工程学院课程的主要内容课程的主要内容第第1章章 概论概论第第2章章 电子商务系统分析与设计基础电子商务系统分析与设计基础第第3章章 电子商务系统开发基础电子商务系统开发基础第第4章章 电子商务系统规划电子商务系统规划第第5章章 电子商务系统分析电子商务系统分析第第6章章 电子商务系统设计电子商务系统设计第第7章章 电子商务应用系统设计电子商务应用系统设计第第8章章 数据库实现数据库实现第第9章章 电子商务网站开发技术电
2、子商务网站开发技术第第10章章 电子商务系统的开发模式电子商务系统的开发模式第第11章章 电子商务系统的测试与维护电子商务系统的测试与维护2浙江工商大学计算机与信息工程学院第第8章章 数据库实现数据库实现8.1 桌面数据库的实现桌面数据库的实现MS Access 20038.2 大型数据库的实现大型数据库的实现MS SQL Server 20058.3 SQL编程规范编程规范3浙江工商大学计算机与信息工程学院8.1 桌面数据库的实现桌面数据库的实现MS Access 20038.1.1 Access 概述概述Access使用标准的SQL(Structured Query Language,结构
3、化查询语言)作为它的数据库语言,从而提供了强大的数据处理能力和通用性,使其成为一个功能强大而且易于使用的桌面关系型数据库管理系统和应用程序生成器。一个Access数据库中可以包含表、查询、窗体、报表、宏、模块以及数据访问页。不同于传统的桌面数据库(dbase、FoxPro、Paradox),Access数据库使用单一的*.mdb文件管理所有的信息,这种针对数据库集成的最优化文件结构不仅包括数据本身,也包括了它的支持对象。4浙江工商大学计算机与信息工程学院8.1.2 数据库和表的创建数据库和表的创建(1)ACCESS数据库的创建(2)表的创建和使用5浙江工商大学计算机与信息工程学院8.1.3 创
4、建查询创建查询(1)在设计视图中创建查询(2)运行查询6浙江工商大学计算机与信息工程学院8.2 大型数据库的实现大型数据库的实现MS SQL Server 2005SQL SERVER 2005是微软公司开发的一个关系型数据库管理系统。和ACCESS相比,SQL SERVER具有更高的存储效率和安全性,和ORACLE相比,SQL SERVER具有更友好的操作界面、配置管理界面。在我国,SQL SERVER已广泛应用于众多行业和领域。和SQL Server以前的版本相比,SQL Server 2005的新增功能主要表现在企业数据管理易管理性、可用性、可伸缩性和 安全性。7浙江工商大学计算机与信息
5、工程学院SQL Server 2000主要组件介绍主要组件介绍服务管理器服务管理器SQL Server服务管理器负责启动、暂停和停止SQL Server的进程。若要启动SQL Server服务管理器,请选择“开始”“程序”“Microsoft SQL Server”“服务管理器”命令。“SQL Server服务管理器”窗口:8浙江工商大学计算机与信息工程学院SQL Server 2000主要组件介绍主要组件介绍企业管理器企业管理器企业管理器是SQL Server 2000中最重要的一个管理工具。它以层叠形式显示出所有SQL Server对象,使用企业管理器可以完成几乎所有的管理工作,主要包括:
6、注册和管理SQL Server服务器;连接、启动、暂停或停止SQL Server服务;创建和管理数据库;创建和管理各种数据库对象,包括表、视图、存储过程、触发器、角色、规则、默认值、用户自定义数据类型、用户自定义函数以及全文目录;备份数据库和事务日志;数据库复制;设置任务调度;让管理者进行警报设置;提供跨服务器的拖放操作;管理用户账户;编写和执行Transact-SQL语句;管理和控制SQL Mail。9浙江工商大学计算机与信息工程学院SQL Server 2000主要组件介绍主要组件介绍查询分析器查询分析器SQL Server 2000查询分析器是一种图形工具,它允许用户输入和执行SQL语句
7、,并返回语句的执行结果。可以进行以下操作。在“查询”窗口中创建查询和其他SQL脚本,并针对SQL Server数据库来分析和执行它们,执行结果在结果窗格中以文本或表格形式显示,利用模板功能,可以借助预定义脚本来快速创建数据库和各种数据库对象(如表、触发器和视图等)。利用对象浏览器脚本功能,可以快速复制现有数据库对象。利用对象浏览器过程在参数未知的情况下执行存储过程。利用T-SQL调试程序调试存储过程。调试查询性能问题,包括显示执行计划、显示服务器跟踪、显示客户统计和索引优化向导。利用对象搜索功能在数据库内定位对象,或在对象浏览器查看和使用对象。在“打开表”窗口中快速插入、更新或删除表中的记录行
8、。10浙江工商大学计算机与信息工程学院SQL Server 2000主要组件介绍主要组件介绍数据导入导出工具数据导入导出工具数据导入导出工具是一个向导程序,用于在不同的SQL Server服务器之间传递数据,也用于在SQL Server与其他数据库管理系统(如Access、FoxPro或Oracle)或其他数据格式(如电子表格或文本文件)之间交换数据。服务器网络实用工具服务器网络实用工具服务器网络实用工具用于设置服务器支持的网络库及其参数,目的在于为客户端网络实用工具提供设置参数,使客户机能够顺利地连接到本服务器上。11浙江工商大学计算机与信息工程学院SQL Server 2000主要组件介绍
9、主要组件介绍客户端网络实用工具客户端网络实用工具SQL Server客户端网络实用工具是一个图形工具,它允许用户创建到指定服务器的网络协议连接并更改默认的网络协议,并用于显示当前系统中安装的网络库的有关信息,还显示当前系统中安装的DB-Library版本,并为DB-Library选项设置默认值。事件探查器事件探查器SQL事件探查器是一个图形工具,可以使系统管理员监视SQL Server中的事件,允许捕获有关每个事件的数据并将其保存到文件或SQL Server表中,供以后分析。12浙江工商大学计算机与信息工程学院SQL Server 2000主要组件介绍主要组件介绍在在IIS中配置中配置SQL
10、XML支持支持SQL Server 2000的新特性之一是增加了对扩展标记语言XML的支持,可以利用HTTP协议以URL方式访问SQL Server数据库。为了实现SQL Server 2000对XML语言的支持,必须在已有Web站点中建立一个虚拟目录,或者在一个已有虚拟目录中建立一个子目录。联机丛书联机丛书联机丛书包含了关于SQL Server 2000的使用说明,利用联机丛书的导航功能可以很方便地找到所需要的帮助信息。13浙江工商大学计算机与信息工程学院8.2.1 实现数据库设计实现数据库设计设计数据库的过程实际上就是在数据库管理系统中设计数据库对象的过程。在SQL SERVER中,常用的
11、数据库对象主要有:数据库关系图、表、视图、同义词、存储过程、函数、触发器、程序集、类型、规则、默认值等。14浙江工商大学计算机与信息工程学院8.2.2 创建和管理数据库创建和管理数据库SQL Server 2005提供了两种类型的数据库:系统数据库用户数据库创建用户数据库15浙江工商大学计算机与信息工程学院8.2.3 创建表创建表SQL SERVER 2005的数据类型、字段属性和ACCESS中是有较大不同的,SQL SERVER 2005中的数据类型、字段属性要比ACCESS中的数据类型丰富得多。16浙江工商大学计算机与信息工程学院8.2.4 创建视图创建视图创建视图修改视图删除视图17浙江
12、工商大学计算机与信息工程学院使用企业管理器创建视图方法要点:选择“操作”“新建视图”命令,打开视图设计器,然后添加表、视图或函数,指定要输出的列和搜索条件等。使用CREATE VIEW语句创建视图语法格式:CREATE VIEW (,.n )WITH ENCRYPTION AS SELECT语句 WITH CHECK OPTION 2.指定列别名在下列情况下,才有必要在CREATE VIEW语句中指定列名:某个列是来自于一个算术表达式、内置函数或常量。由于在SELECT语句中连接了多个表,致使多个列具有相同的名称。要给某个列指定一个不同于基础表中的列名。例如,在基础表中列名用的是英文,在视图中
13、则用中文指定列名。列名也可以在SELECT语句中指定。如果不指定列名,则视图中的列将使用与SELECT语句中相同的名称。18浙江工商大学计算机与信息工程学院8.2.5 创建索引创建索引(1)为什么要用索引(2)创建索引的指导原则(3)在SQL Server Management Studio中创建索引19浙江工商大学计算机与信息工程学院创建索引的注意事项:只有表的所有者可以在同一个表中创建索引。每个表中只能创建一个聚集索引。每个表可以创建的非聚集索引最多为249个,包括PRIMARY KEY约束或UNIQUE约束创建的索引在内。包含索引的所有长度固定列的最大大小为900字节。例如,不可以在定义
14、为char(300)、char(300)和char(301)的三个列上创建单个索引,因为总宽度超过了900字节。包含同一索引的列的最大数目为16。20浙江工商大学计算机与信息工程学院8.2.6 创建存储过程创建存储过程创建存储过程执行存储过程2.使用CREATE PROCEDURE语句创建存储过程语法格式:CREATE PROC EDURE procedure_name ;number parameter data_type VARYING =default OUTPUT ,.n WITH RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION FOR REPLIC
15、ATION AS sql_statement .n 21浙江工商大学计算机与信息工程学院8.2.7 设计数据完整性设计数据完整性数据完整性是指数据的精确性和可靠性。设计数据完整性的目的是为了防止数据库中存在不符合语义的数据,防止错误信息的输入。SQL SEVER提供了一些工具来帮助用户实现数据完整性,其中最主要的是:约束、规则、默认值、触发器。22浙江工商大学计算机与信息工程学院(1)约束约束定义关于列中允许值的规则,是强制完整性的标准机制。SQL SERVER主要支持以下五类约束:NOT NULL 指定不接受 NULL 值的列;CHECK 约束对可以放入列中的值进行限制,以强制执行域的完整性
16、UNIQUE 约束在列集内强制执行值的唯一性。PRIMARY KEY(主键)约束标识列或列集,这些列或列集的值唯一标识表中的行。在一个表中,不能有两行包含相同的主键值。FOREIGN KEY(外键)约束标识表之间的关系。23浙江工商大学计算机与信息工程学院(2)规则规则是一个向后兼容的功能,用于执行一些与 CHECK 约束相同的功能。CHECK 约束是用来限制列值的首选标准方法。CHECK 约束比规则更简明,一个列只能应用一个规则,但是却可以应用多个 CHECK 约束。CHECK 约束作为 CREATE TABLE 语句的一部分进行指定,而规则以单独的对象创建,然后绑定到列上。24浙江工商大学
17、计算机与信息工程学院(3)默认值如果在插入行时没有指定列的值,那么默认值指定列中所使用的值。默认值可以是任何取值为常量的对象,例如:固定的某一个默认值、用SQL SERVER的内置函数计算得到的值或几个字段计算而得到的数学表达式。25浙江工商大学计算机与信息工程学院1.使用企业管理器创建默认值方法要点:展开要在其中创建默认值对象的数据库,单击“默认”节点,然后选择“操作”“新建默认”命令。2.使用CREATE DEFAULT语句创建默认值语法格式:CREATE DEFAULT default AS constant_expression26浙江工商大学计算机与信息工程学院(4)触发器触发器是一
18、类特殊的存储过程,被定义为在对表或视图发出UPDATE、INSERT或 DELETE语句时自动执行。触发器是功能强大的工具,它使每个站点可以在有数据修改时自动强制执行其业务规则。触发器可以扩展 SQL Server 约束、默认值和规则的完整性检查逻辑,但只要约束和默认值提供了全部所需的功能,就应使用约束和默认值。27浙江工商大学计算机与信息工程学院1.使用企业管理器创建触发器方法要点:单击将在其上创建触发器的表,然后选择“操作”“所有任务”“管理触发器”命令。2.使用CREATE TRIGGER语句创建触发器基本语法格式:CREATE TRIGGER trigger_nameON table|
19、view WITH ENCRYPTION FOR INSERT ,UPDATE ,DELETE AS IF UPDATE(column_name)AND|OR UPDATE(column_name).n sql_statement .n28浙江工商大学计算机与信息工程学院8.3 SQL编程规范编程规范每个程序员的编程水平和代码风格各不相同,如果不统一编程规范,其程序可读性将变差,这不仅给代码的理解带来障碍,还会极大增加维护阶段的工作量,同时不规范的代码、及程序中的垃圾代码不仅占用额外的空间,而且还常常影响程序的功能与性能,很可能给程序的测试、维护等造成不必要的麻烦。29浙江工商大学计算机与信息
20、工程学院命名规范命名规范数据库命名:建议命名格式为项目英文名称(或项目英文名称+Db)。如:AdventureWorks、AdventureWorksDb。关系型数据仓库:建议命名格式为项目英文名称+DW。如:AdventureWorksDW。数据表;表名别名要简短,但意义要尽量明确。通常使用大写的表名作为别名,使用 AS 关键字指定表或字段的别名。如:Employee、Product。数据视图:建议命名格式为v+视图名称。如:vEmployee、vSalesPerson。数据列:列名称命名采用英文单词或缩写,英文单词只来自于具体业务定义,尽量表达清楚含义。如:AddressID、Postal
21、Code。存储过程:命名能清晰简单的描述存储过程的功能,如:GetUser、AddUser。主键、外键关系和索引常用字段命名30浙江工商大学计算机与信息工程学院8.3.2 SQL语法规范语法规范大写所有的SQL 关键字,数据类型定义使用全部小写。尽量避免在任何代码中使用“SELECT*”,而应指明需要返回哪些字段。在where语句中,要使用设定了索引的列。在程序段中使用“;”作为 Transact-SQL 语句终止符。尽量采用Unicode数据存储格式,提高可移植性和兼容性。使用nchar、nvarchar、ntext代替char、varchar、text。如果字符具有明确的长度,使用ncha
22、r代替nvarchar;char 代替varchar。在只有两个可能数值时,使用bit代替int或smallint。在SQL Server 2005中,使用nvarchar(MAX)代替ntext;varchar(MAX)代替text;varbinary(MAX)代替image。在特殊的数据表结构中可考虑使用xml数据类型。在建立数据表时,尽量使用默认值代替NULL值。比如设置CreatedDate列默认值为GETDATE()。在可避免的情况下设置字段为不允许空。31浙江工商大学计算机与信息工程学院8.3.2 SQL语法规范语法规范确保允许用户可能需要的最大字符数,避免超出最大长度时出现字符丢
23、失现象。对于字符型数据,建议采用2的n次方来定义数据长度。在SQL 代码中为字符常量使用单引号,避免使用双引号。语句缩进语句分割关于类型转换排序Unicode字符串在SQL代码快中尽量使用BEGIN.END 语句块,提高代码可阅读性。关于“TRY块”的使用在SQL Server 2005中加强了TOP的使用,尽量使用TOP(变量)来减少SQL拼串的使用。关于TRANSACTION编写32浙江工商大学计算机与信息工程学院8.3.3 SQL编程规范编程规范如果要对数据修改、不能在记录集对象中进行,而应使用SQL语句进行修改。有大量数据的表不能联接。对多个记录的更新语句(update语句),应用WH
24、ERE语句的“IN”使SQL语句只运行一次。动态游标比静态游标更占用资源,所以对于只是读取数据的SQL语句(SELECT语句)应使用向前回滚游标来执行SQL语句。在WHERE语句中,不能用IS NULLIS NOT NULL检索。因为如果用IS NULL及IS NOT NULL条件在存储大量数据的表中查询数据,即使建立了索引,数据库服务器也不能利用索引检索。有大量数据存储的表中,不要使用TRIM、LTRIM、RTRIM等函数进行查询。因为即使建立了索引,数据库服务器也不能利用索引检索。33浙江工商大学计算机与信息工程学院8.3.3 SQL编程规范编程规范SELECT语句中,应尽量避免使用LEF
25、T(AAA)、RIGHT(BBB)等函数。因为数据库服务器需要用大量的资源来处理函数,会导致服务器的负荷会加重。而在应用程序中处理这些函数会比较好。在针对SELECTUPDATEINSERTDELETE进行操作的数据中,存在单引号“”的情况下,应将单引号转义为“”。SQL语句中不应该出现多余的空格。多余的空格会降低SQL执行的效率。如果表中使用了复合索引(由多个字段组成的索引),那么在WHERE语句中使用字段的顺序要与建索引的字段顺序相同。对于多个SQL语句对数据进行修改(INSERTUPDATEDELETE)的情况,应利用事务(Transaction)来保证数据的一致性。34浙江工商大学计算机与信息工程学院8.3.3 SQL编程规范编程规范因为在事务处理过程中,其他的操作要用到事务处理所涉及的表,就会需要等待,所以应尽可能缩短事务处理的时间。在事务处理的过程中,应避免出现与用户交互的界面。使用Command对象或RecordSet对象等对象后,需要释放对象资源。数据库连接必须断开。35