《数据层技术基础》PPT课件.ppt_第1页
《数据层技术基础》PPT课件.ppt_第2页
《数据层技术基础》PPT课件.ppt_第3页
《数据层技术基础》PPT课件.ppt_第4页
《数据层技术基础》PPT课件.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章 数据层技术基础,数据层的任务 负责对数据的管理,也就是对数据进行分类、组织、编码、存储、检索和维护等 数据层的核心 数据库系统是数据层的核心,通过数据访问接口与表达层、逻辑层进行交互。,5.1数据管理技术的几个发展阶段,5.1.1手工管理阶段与文件系统阶段 手工管理阶段 软硬件条件:无DMA设备、无OS 应用目的:科学计算 数据组织方式:手工 特点:数据不保存、数据无结构、数据无独立性、数据不能共享 文件系统阶段 软硬件条件:有DMA设备、有OS 应用目的:科学计算、数据管理 数据组织方式:文件系统 特点:数据可保存、结构化不强、独立性较差、数据不能共享,5.1数据管理技术的几个发展阶段,5.1.2数据库系统阶段 应用目的:科学计算、OLTP、多媒体应用 数据组织方式:数据库三级模式 软硬件条件:大容量快速存储设备、多用户多任务OS 特点:数据保存在数据库、数据高度结构化、数据高度独立、数据共享、冗余小、数据统一控制 缺点:不能满足OLAP的需求,外模式/模式映像,5.1数据管理技术的几个发展阶段,5.1.3数据库系统的进一步发展数据仓库 数据仓库(DW+OLAP+DM) 软硬件条件:C/S技术成熟 应用目的:OLAP、决策支持 数据组织方式:多维数据 特点:数据冗余大,资源占用多,OLTP(online transaction process): 联机事务处理对数据库进行联机的日常事务处理 ,即利用数据库系统,对日常业务的记录数据进行维护,如进行记录的增加、删除、修改及简单查询 ; OLAP(online analysis process): 联机分析处理,即从企业已有的大量数据中提取决策信息并对之进行管理的服务。,数据仓库: W.H.Inmon认为:数据仓库是支持管理决策过程的、面向主题的、集成的、随时间变化的、但信息本身相对稳定的数据集合。包括了数据仓库生成技术(DW)、联机分析处理(从数据仓库中提取决策数据)和数据挖掘技术(DM,从数据库和数据仓库中进行深度数据分析,以实现决策支持的各种要求)三个方面的内容。,5.2电子商务系统数据层实现,5.2.1数据库平台的选择与数据模型的设计 数据库平台种类 关系数据模型的设计 关系数据模型组成要素:数据结构+数据操纵+数据完整性 实体完整性、域完整性、参照完整性、用户自定义完整性的设计 实体完整性:是为了唯一的确定表中的一条记录,因此实体完整性要求充当主码的字段值应唯一且不能为空 ; 参照完整性:要求参照字段(参照码)的取值只能取被参照的字段(某个表中的主码)中的值,或者索性为空; 域完整性(通过CHECK约束、DEFAULT约束):限制字段的数据类型、格式、取值范围等 ;,5.2电子商务系统数据层实现,5.2.1数据库平台的选择与数据模型的设计 数据库种类 关系数据模型的设计 数据模式定义与SQL查询 例5.1 数据结构的定义及SQL查询。,1)在SQL Server 中建立一个数据库mytest,包含以下5个表:教师Teacher、学生Student、课程Course、授课TC、选课SC,其关系模式如下: Teacher(教师号Tno,姓名Tname,年龄Tage,性别Tsex,系名Tdept,电话号码Ttel,邮件地址E-mail,家庭地址Taddr); Student(学号Sno,姓名Sname,年龄Sage,性别Ssex,系名Sdept) Course(课程号Cno,课程名Cname,学分数Ccredit,课时数Chour) TC(教师号Tno,课程号Cno,任课学年Ayear,任课学期Semester,评教等级Rating) SC(学号Sno,课程号Cno,成绩Grade) 2)将Teacher.Tno、Student.Sno、Course.Cno设为主码;将TC.Tno、TC.Cno、SC.Sno、SC.Sno设为外码,分别与Teacher、Student、Course建立参照关系。 3)用SQL查询语句完成下列操作: 查询所有不姓李的教师的姓名、年龄、性别和系名; 查询选修了“1”号和“4”号课程且成绩介于80分和90分之间的学生的姓名; 查询会计系男生的平均成绩; 将一个教师记录(教师号:0899;姓名:岳枫;年龄:28;性别:女;系名:经贸系;E-mail:)插入到Teacher表中; 将一个系学生的平均成绩存入数据库的某个表中; 将岳枫教师的E-mail改为; 删除某个学生(譬如汪莹)的选课信息。,5.2电子商务系统数据层实现,5.2.1数据库平台的选择与数据模型的设计 数据库种类 关系数据模型的设计 数据模式定义与SQL查询 参照完整性设计 规则 :是用来对表中的字段值(或用户自定义的数据类型中的值)进行限制的一种手段,用于执行一些与 CHECK 约束相同的功能 ; 例5.2 在SQL Server中利用T-SQL语句进行规则的创建与绑定,1)创建一个规则,用以限制Teacher表中的Tage取值范围。 USE mytest GO CREATE RULE rule1 AS range = 1 AND range 120 GO EXEC sp_bindrule rule1, Teacher.Tage,2)创建一个规则,用以限制Teacher表中的Tdept取值范围。 USE mytest GO CREATE RULE rule2 AS list IN (经贸系, 会计系, 金融系, 计算机系) GO EXEC sp_bindrule rule2, Teacher.Tdept,3)创建一个规则,用以限制Teacher表中的Taddr取值范围。 USE mytest GO CREATE RULE rule3 AS value LIKE _ -% - 任意一个字符的后面跟一个连字符和任意多个字符(或没有字符),如沪-淮海街道 GO EXEC sp_bindrule rule3, Teacher.Taddr,5.2电子商务系统数据层实现,5.2.1数据库平台的选择与数据模型的设计 数据库种类 关系数据模型的设计 数据模式定义与SQL查询 参照完整性设计 规则 默认值 :默认值对象的作用类似于建表时的DEFAULT约束,对未赋值的字段赋予初值,其管理和使用与规则比较相似,但优先级低于规则。 例5.3 定义一个默认值,使教师表中的Ttel初值为unkown。,USE mytest GO CREATE DEFAULT def1 AS unknown GO EXEC sp_bindefault def1, teacher.Ttel,5.2电子商务系统数据层实现,5.2.1数据库平台的选择与数据模型的设计 数据库种类 关系数据模型的设计 数据模式定义与SQL查询 参照完整性设计 规则 默认值 存储过程 简介:存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。存储过程可包含程序流、逻辑以及对数据库的查询。它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。 优点 例5.4 创建存储过程,1)创建一个能查询出所有不姓李的教师的姓名、年龄、性别和系名的存储过程 USE mytest IF EXISTS (SELECT name FROM sysobjects WHERE name = pro1 AND type = P) DROP PROCEDURE pro1 GO CREATE PROCEDURE pro1 AS SELECT teacher.Tname, teacher.Tage, teacher.Tsex, teacher.Tdept FROM teacher WHERE (teacher.Tname) Like 李%); GO EXEC pro1,2)创建一个能查询出选修了“1”号和“4”号课程且成绩介于80分和90分之间的学生的姓名的存储过程; USE mytest IF EXISTS (SELECT name FROM sysobjects WHERE name = pro2 AND type = P) DROP PROCEDURE pro2 GO CREATE PROCEDURE pro2 score1 int, score2 int AS SELECT sc.Sno FROM sc WHERE (sc.Cno)=1 Or (sc.Cno)=4) AND (sc.Grade) Between score1 And score2) GO EXECUTE pro2 80, 90,3)创建一个能查询出会计系男生平均成绩的存储过程; USE mytest GO IF EXISTS(SELECT name FROM sysobjects WHERE name = pro3 AND type = P) DROP PROCEDURE pro3 GO CREATE PROCEDURE pro3 avescore float OUTPUT AS SELECT avescore=Avg(sc.Grade) FROM student INNER JOIN sc ON student.Sno = sc.Sno WHERE (student.Sdept)=会计系) AND (student.Ssex)=男); GO,接下来可用下列语句进行测试: DECLARE avescore float EXECUTE pro3 avescore OUTPUT IF avescore 60 BEGIN PRINT PRINT 平均成绩不及格 END ELSE BEGIN PRINT 平均成绩及格 END,4)创建一个能从teacher表中查询出不同性别和所有记录数的存储过程; USE mytest GO IF EXISTS(SELECT name FROM sysobjects WHERE name = pro4 AND type = P) DROP PROCEDURE pro4 GO CREATE PROCEDURE 4 ( sex char , totalrec int output ) AS select totalrec=count(*) from teacher select * from teacher where teacher.Tsex =sex return (rowcount) GO,接下来也可用下列语句进行测试: use mytest go DECLARE sex char(2),totalrec int set sex=女 EXECUTE pro4 sex , totalrec OUTPUT PRINT sex PRINT totalrec,5.2电子商务系统数据层实现,5.2.1数据库平台的选择与数据模型的设计 数据库种类 关系数据模型的设计 数据模式定义与SQL查询 参照完整性设计 规则 默认值 存储过程 触发器 :一种特殊类型的存储过程 优点 例5.5 创建一个触发器,当在Teacher表中修改数据时报告所更新的记录数,USE mytest GO CREATE TRIGGER t1 ON dbo.Teacher FOR UPDATE AS DECLARE msg varchar(50) SELECT msg=No:+str(rowcount)+个记录已被更新! PRINT msg 可在查询分析器中用以下的语句来测试: USE mytest GO UPDATE teacher SET age=55,5.2电子商务系统数据层实现,5.2.2 数据访问接口的实现 数据库访问接口技术 数据库的访问,5.2电子商务系统数据层实现,5.2.2 数据访问接口的实现 数据库访问接口技术 数据库的访问 数据库访问接口,5.2电子商务系统数据层实现,5.2.2 数据访问接口的实现 数据库访问接口技术 数据库的访问 数据库访问接口 从ODBC到ADO.net ODBC(open database connectivity,数据库系统互连),ODBC=Interface+Driver Manager Driver Manager(驱动程序管理器)作用: 为应用程序装入DLL驱动程序,绑定DLL中函数,初始化ODBC调用,提供ODBC函数的入口点,对ODBC调用的参数进行合法性检查,调用ODBC中的函数等。 ODBC特点:ODBC属于很低层的接口,适合C或C+程序编程,5.2电子商务系统数据层实现,5.2.2 数据访问接口的实现 数据库访问接口技术 数据库的访问 数据库访问接口 从ODBC到ADO.net ODBC(Open Database Connectivity,数据库系统互连) DAO(Data Access Object,数据访问对象),DAO特点: 属于高层的接口,适合VB程序编程,访问Access快,访问其它数据库慢,5.2电子商务系统数据层实现,5.2.2 数据访问接口的实现 数据库访问接口技术 数据库的访问 数据库访问接口 从ODBC到ADO.net ODBC(Open Database Connectivity,数据库系统互连) DAO(Data Access Object,数据访问对象) RDO(Remote Data Object,远程数据对象),RAO特点: 属于高层的接口,适合VB程序编程,访问非Access数据库快,5.2电子商务系统数据层实现,5.2.2 数据访问接口的实现 数据库访问接口技术 数据库的访问 数据库访问接口 从ODBC到ADO.net ODBC(Open Database Connectivity,数据库系统互连) DAO(Data Access Object,数据访问对象) RDO(Remote Data Object,远程数据对象) OLE DB,OLE DB 构成: 数据消费者(一个应用程序)+数据提供程序+处理并传输数据的服务组件(如查询处理器、游标引擎) OLE DB特点: 基于 SQL查询的 数据源和非 SQL查询的 数据源 ; 不提供指针,不适合VB编程,适合c+。,5.2电子商务系统数据层实现,5.2.2 数据访问接口的实现 数据库访问接口技术 数据库的访问 数据库访问接口 从ODBC到ADO.net ODBC(Open Database Connectivity,数据库系统互连) DAO(Data Access Object,数据访问对象) RDO(Remote Data Object,远程数据对象) OLE DB ADO(Active Data Object,动态数据对象),在Web平台上使用ASP脚本,多数是使用ADO来访问数据库,5.2电子商务系统数据层实现,5.2.2 数据访问接口的实现 数据库访问接口技术 数据库的访问 数据库访问接口 从ODBC到ADO.net ODBC(Open Database Connectivity,数据库系统互连) DAO(Data Access Object,数据访问对象) RDO(Remote Data Object,远程数据对象) OLE DB ADO(Active Data Object,动态数据对象) ADO.net,ADO.net特点: 提供断开的数据访问模型(这对 Web 环境至关重要); 提供与XML的紧密集成; 提供与.NET框架的无缝集成,5.2电子商务系统数据层实现,5.2.2 数据访问接口的实现 数据库访问接口技术 数据库的访问 数据库访问接口 从ODBC到ADO.net 例: ASP脚本+ADO组件 Access数据库.,5.2电子商务系统数据层实现,5.2.2 数据访问接口的实现 数据库访问接口技术 数据库接口驱动程序 从ODBC到ADO.net 例 ASP脚本+ADO组件 Access数据库 例 VB中利用ADO访问SQL Server中mytest下的存储过程pro4,Private Sub Command1_Click() Dim cn As ADODB.Connection Dim cmd As New ADODB.Command Dim res As ADODB.Recordset Dim sql As String On Error GoTo errorhandle Set cn = New ADODB.Connection cn.ConnectionString = “PROVIDER=MSDASQL;dsn=my1;uid=sa;pwd=;database=mytest;“ cn.Open cmd.ActiveConnection = cn cmd.CommandText = “pro4“ cmd.CommandType = ADODB.CommandTypeEnum.adCmdStoredProc With cmd.Parameters .Append cmd.CreateParameter(“ReturnVal“, ADODB.DataTypeEnum.adInteger, ADODB.ParameterDirectionEnum.adParamReturnValue) .Append cmd.CreateParameter(“sex“, ADODB.DataTypeEnum.adChar, ADODB.ParameterDirectionEnum.adParamInput, 10) .Append cmd.CreateParameter(“totalrec“, ADODB.DataTypeEnum.adInteger, ADODB.ParameterDirectionEnum.adParamOutput) End With,cmd.Parameters(“sex“).Value = “女“ Set res = cmd.Execute MsgBox Str(cmd.Parameters(“ReturnVal“).Value) Dim fld As ADODB.Field If Not (res.EOF And res.BOF) Then Me.List1.AddItem (“total records:“ & cmd.Parameters(“totalrec“).Value) Me.List1.AddItem (“return records:“ & cmd.Parameters(“returnval“).Value) Do Until res.EOF Me.List1.AddItem (“-“) For Each fld In res.Fields Me.List1.AddItem (fld.Name & “:“ & fld.Value) Next res.MoveNext Loop End If res.Close Set res = Nothing cn.Close Set cn = Nothing Exit Sub errorhandle: MsgBox Err.Description End Sub,程序说明: 先利用Windows的控制面板下ODBC数据源建立一个名为my1的SQL数据源;然后在VB中建立一个项目,选择project菜单下的“引用”,引

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论