SQLServerCLR集成介绍.ppt
幻灯片幻灯片1(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据在本章,你将学到:理解受管理代码创建受管理数据库对象定义超文本传输协议端点为网络服务实现超文本传输协议端点目标目标幻灯片幻灯片2(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据CLR 集成:允许数据库开发者以任何.NET支持的语言编写代码 允许运行数据库中的管理代码提供程序执行所需的以下功能和服务SQL Server CLR集成介绍集成介绍幻灯片幻灯片3(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据在以下情形下,可以创建受管理数据库对象:实现复杂的编程逻辑访问外部资源实现CPU密集的功能,它与受管理代码相比可以更有效运行。当遇到下面的情况,应该使用T-SQL语句:完成数据访问和使用T-SQL语句可以完成的操纵操作。要实现编程逻辑,TAT可以很容易地使用T-SQL编程构造实现。识别受管理代码的需求识别受管理代码的需求幻灯片幻灯片4(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据课间思考课间思考下面哪个是.NET支持的并且不是T-SQL支持的?1.写查询2.创建过程3.面对对象4.写触发器答案:3.面向对象幻灯片幻灯片5(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据汇编:创建来附加管理代码使用CREATE ASSEMBLY命令创建汇编语法:CREATE ASSEMBLY assembly_name FROM|,.n WITH PERMISSION_SET=SAFE|EXTERNAL_ACCESS|UNSAFE 让我们看看如何导入和配置汇编导入和配置汇编幻灯片幻灯片6(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据课间思考课间思考你将使用下面哪个PERMISSION_SET访问另外一个数据库服务器?1.SAFE2.EXTERNAL_ACCESS3.UNSAFE答案:2.EXTERNAL_ACCESS幻灯片幻灯片7(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据受管理的数据库对象类型可以是以下类型:存储过程函数触发器用户定义类型创建受管理的数据库对象创建受管理的数据库对象幻灯片幻灯片8(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据受管理的存储过程:通过创建一个执行导入的汇编的过程而实现受管理的存储过程语法:CREATE PROCEDURE AS EXTERNAL NAME.,让我们看看如何创建受管理的数据库对象(续)创建受管理的数据库对象(续)幻灯片幻灯片9(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据受管理的函数:通过创建一个执行导入的汇编的函数而实现受管理的函数语法:CREATE FUNCTION()RETURNS AS EXTERNAL NAME.让我们看看如何创建受管理的数据库对象(续)创建受管理的数据库对象(续)幻灯片幻灯片10(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据受管理的触发器:通过创建一个执行导入的汇编的触发器而实现受管理的触发器语法:CREATE TRIGGER ON AS EXTERNAL NAME.让我们看看如何创建受管理的数据库对象(续)创建受管理的数据库对象(续)幻灯片幻灯片11(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据受管理的用户定义类型:使用 CREATE TYPE 命令创建受管理的用户定义类型语法:CREATE TYPE schema_name.type_name FROM base_type (precision ,scale )NULL|NOT NULL|EXTERNAL NAME assembly_name.class_name 让我们看看如何创建受管理的数据库对象(续)创建受管理的数据库对象(续)幻灯片幻灯片12(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据课间思考课间思考什么时候你使用受管理的代码替代T-SQL?1.当你需要写查询的时候。2.当你需要访问外部资源的时候。3.当你需要在数据库上完成管理任务的时候。答案:2.当你需要访问外部资源的时候。幻灯片幻灯片13(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据问题描述:AdventureWorks,Inc的管理层决定他们想在数据库中包含员工配偶的详情。用于输入员工详情的程序将接收员工配偶的名称和生日。而且,它将连接使用一个;隔离的两个值。作为数据库开发人员,你需要以下面的格式存储配偶的详情:配偶名:;配偶生日:为了实现它,你决定创建一个受管理的用户定义数据类型。你将如何创建这个数据类型?演示:实现受管理的用户定义类型演示:实现受管理的用户定义类型幻灯片幻灯片14(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据解决方案:为了解决上述问题,你需要完成下面的任务:1.在数据库中使能CLR。2.创建一个汇编。3.创建受管理的数据库用户定义数据类型。4.创建将实现的用户定义数据类型的表。5.验证输出。演示:实现受管理的用户定义类型(续)演示:实现受管理的用户定义类型(续)幻灯片幻灯片15(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据SOA:SOA是基于请求/应答设计模式的分布式计算的扩展程序的商业逻辑被模块化,并且表示为服务SOA允许创建对象,如网络服务,它可以从异构系统访问面向服务的架构(面向服务的架构(SOA)介绍)介绍 幻灯片幻灯片16(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据Flash 演示:Web服务介绍网络服务是一系列方法,它提供网络上客户程序使用的程序逻辑。SQL Server 2005 通过使用以下公开标准提供本地XML 网络服务:超文本传输协议(HTTP)简单对象访问协议(SOAP)Web服务定义语言(WSDL)网络服务介绍网络服务介绍幻灯片幻灯片17(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据课间思考课间思考下面哪个描述网络服务?1.WSDL2.SOAP3.UDDI答案:1.WSDL幻灯片幻灯片18(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据课间思考课间思考下面哪个有助于发现网络服务?1.WSDL2.SOAP3.UDDI答案:3.UDDI幻灯片幻灯片19(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据HTTP 端点:这个端点是网关,通过它基于HTTP的客户可以发送查询到服务器HTTP端点在端口80监听和接收客户请求在本地网络服务架构中识别在本地网络服务架构中识别HTTP端点的角色端点的角色幻灯片幻灯片20(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据在本地网络服务架构中识别在本地网络服务架构中识别HTTP端点的角色(续)端点的角色(续)HTTP 端点架构:幻灯片幻灯片21(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据课间思考课间思考SQL Server在下面哪个端口监听HTTP请求?1.802.903.70答案:1.80幻灯片幻灯片22(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据包括以下任务:1.创建需要的数据库代码以访问数据。2.使用 CREATE ENDPOINT 语句创建HTTP端点。创建创建HTTP端点端点幻灯片幻灯片23(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据语法:CREATE ENDPOINT endpoint_nameSTATE=STARTED|STOPPED|DISABLED AS HTTP(AUTHENTICATION=(BASIC|DIGEST|INTEGRATED|NTLM|KERBEROS,PATH=url,PORTS=(CLEAR)FOR SOAP(WEBMETHOD namespace.method_alias(NAME=,SCHEMA=NONE|STANDARD|DEFAULT ,FORMAT=ALL_RESULTS|ROWSETS_ONLY ),.n BATCHES=ENABLED|DISABLED ,WSDL=NONE|DEFAULT|sp_name 让我们看看如何创建创建HTTP端点(续)端点(续)幻灯片幻灯片24(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据课间思考课间思考当创建HTTP端点的时候,你将使用下面哪个格式仅返回结果集给用户?1.ROWSET_ONLY2.ALL_RESULT3.NONE答案:1.ROWSET_ONLY幻灯片幻灯片25(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据问题描述:AdventureWorks,Inc的数据库服务器位于Bothell。公司有分布在全球不同位置的不同办公室。根据需求,用户需要访问在不同位置的所有员工的数据。用户也可能需要使用PDAs或移动电话访问这些详情。作为数据库开发人员,你已经决定实现一个网络访问,它允许用户通过互联网访问数据。你将如何在AdventureWorks数据库内实现这个服务?演示:实现演示:实现HTTP端点端点幻灯片幻灯片26(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据解决方案:为了解决上述问题,你需要完成下面的任务:1.创建一个过程。2.为SOAP创建HTTP端点。3.验证HTTP端点的创建。演示:实现演示:实现HTTP端点(续)端点(续)幻灯片幻灯片27(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据在本章中,你已经学到:以任何.NET支持的语言创建的数据库对象被称为受管理数据库对象。CLR集成提供了如下好处:更好的编程模型公共开发环境定义数据类型的能力T-SQL可以被用来完成数据访问和操纵使用T-SQL提供的编程结构实现的操作。小结小结幻灯片幻灯片28(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据受管理数据类型可以被用在下面的情况:为了实现复杂编程逻辑,你可以重用.NET基类库提供的功能。为了访问外部资源,例如调用一个网络服务或访问文件系统。为了实现CPU密集功能,它与受管理的代码相比运行更有效。默认,SQL Server不允许在服务器上运行受管理代码。在你的数据库中创建受管理数据库对象之前,CLR集成特性应该使用sp_configure存储过程在数据库中激活。被用来创建受管理数据库对象的.NET代码被在.NET中编译为汇编,.dll 或.exe。为了创建受管理的数据库对象,首先.NET汇编被在数据库引擎中导入。小结(续)小结(续)幻灯片幻灯片29(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据在数据库引擎中的汇编可以被指定下面三种授权:SAFE EXTERNAL_ACCESS UNSAFE 受管理存储过程可以使用CREATE PROCEDURE命令被创建。受管理函数可以使用CREATE FUNCTION命令被创建。受管理触发器可以使用CREATE TRIGGER命令被创建。受管理数据类型可以使用CREATE TYPE命令被创建。网络服务是一段在网络上暴露的代码。小结(续)小结(续)幻灯片幻灯片30(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据网络服务有下面的优点:互操作性多语言支持可重用性SOAP是在分布环境中以结构格式以交换信息的标准通信协议。WSDL是描述网络服务的标记语言。UDDI提供注册和发现网络服务的标准机制。HTTP端点允许你在SQL Server内创建和使用网络服务。在创建HTTP端点之前,你需要首先创建存储过程或形成网络服务的函数。小结(续)小结(续)幻灯片幻灯片31(共(共31张)张)第第 16章章使用使用SQL Server 2005查询和管理数据查询和管理数据HTTP端点为用户提供了一个连接点,通过它他们可以访问实现的函数。你可以使用CREATE ENDPOINT语句创建HTTP端点。小结(续)小结(续)