书签 分享 收藏 举报 版权申诉 / 66
上传文档赚钱

类型对象关系型DBMS开发技术课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4843066
  • 上传时间:2023-01-17
  • 格式:PPT
  • 页数:66
  • 大小:287KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《对象关系型DBMS开发技术课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    对象 关系 DBMS 开发 技术 课件
    资源描述:

    1、对象关系型对象关系型DBMSDBMS开发技术开发技术z 鞠鞠 时时 光光第一章第一章 绪论绪论z如何理解数据库这个名词?z为什么研究DBMS?z我们研究DBMS的目的?z现在常用的几类商业数据库z世界上研究数据库处于前沿的单位如何理解数据库这个名词z DBMSDBMS的体系结构,存储方法(数据模式data model),索引机制,查询机制,优化查询等。z 数据库理论数据源:Normal Form系统模型:ER图,数据完整性data integrity,数据安全性data security,数据共享data sharing信息利用:active data,data fusion,data din

    2、ingz 数据库应用本课目的z扩展关系DBMS到对象关系型DBMSz研究如何设计对象关系型DBMS的体系结构,存储方法,索引机制,查询机制等为什么研究DBMS?新兴的应用领域的需求:z计算机集成制造系统(计算机集成制造系统(CIMSCIMS)z办公信息系统办公信息系统(OIS)(OIS)z多媒体系统多媒体系统(multimedia)(multimedia)z高维数据应用系统高维数据应用系统计算机集成制造系统(计算机集成制造系统(CIMSCIMS)CIMS是在CAD,CAE,CAE,CAPP,FMS,等基础上发展起来的高技术.CIMS对DBMS的新功能要求包括能定义新的面向工程环境的数据模型;能

    3、修改和重新定义已有的数据结构;能存储和有效地检索设计图形和工程数据;能管理设计过程中对象演变的历史.传统数据库CAD 数据库被模仿的实际事物被模仿的实际事物是静态的.有关设计对象的数据是高度动态的,在设计过程中才被确定数据更新数据更新虽然频繁,但只涉及值的改动数据更新频繁,而且既更改数据值,也要更改数据结构。谁执行更改用户只能执行数据值的更改,但任何结构更改均需由数据库管理员实现。必须允许设计者执行数据值与数据结构的更改。数据模型化的复杂性一个管理模型可包含许多实体,但在大多数情况下,其间只是微弱相关设计过程中,要涉及很多实体和许多关系,从而导致一个复杂的网状结构数据结构的演变数据库装入后,数

    4、据的使用是经常的,但结构的演变缓慢或不变当对象没有完全被设计好时,对其在结构和值这两方面的描述是不断演变的信息量数据库相当稳定地管理大量数据CAD 数据库开始较小,但可在设计过程中增大办公信息系统办公信息系统(OIS)OIS)办公环境处理信息的多样性(图形、图像、报表、文字、声音)及存储介质的多样性(纸张、声音、录音、录像、磁盘、光盘等)信息类型丰富时间因素不规则交互式界面信息的过滤与综合优先级调度和触发器多媒体系统多媒体系统现在世界上85%的有用信息还未转变成电子形式,大部分是多媒体信息,如胶片。(a)(b)(c)图1.1 (a)图象、图形及正文可看成是在时间维上取定值的空间信息;(b)动画

    5、可看成是在空间和时间维上均动态变化的信息;(c)声音可看成是在时间维变化的信息。TXYTXYTXY高维数据应用系统(高维数据应用系统(1)高维数据对数据库管理系统提出了许多特殊的要求:一个对象不能用存储字符编码的方式来存储。检索图象也不像检索一个字符串或一个字符那样方便。用户查询或检索某个对象,有时需据空间关系来进行。如:拓扑操作:“包含”,“相联”等。几何操作:“靠近”,“远离”,“覆盖”等等。方位操作:“在右边”,“在上面这些操作基于实体间相互所处的空间位置之上。高维数据应用系统(高维数据应用系统(2)数据库管理语言有能力描述高维信息和字符信息的处理过程,但由于两种过程在本质上的差异。在诸

    6、如DDL,DML、SQL中,描述两种过程的语义规则不能混合。(为什么研究DBMS?)结论 这些新的特征,使得传统的关系型DBMS,或者面向对象型DBMS均难以有效的管理这些类型的数据。促使我们去研究、引入新型的DBMS系统。其中最重要的研究方向之一就是将面向对象技术与关系数据库技术相结合,构造新型的对象-关系型数据库管理系统我们研究DBMS的目的数据库管理系统(DBMS)的研究与开发 WEB数据库(电子商务、电子政务系统)安全数据库 数据挖掘数据拟合对象关系型DBMS 可视化数据库查询语言 GIS系统 工程数据库(如CAD数据库)常用的几类商业数据库 2 4 1 3有无查询功能 复杂 简单 简

    7、单 复杂数据复杂度区域1:表示处理的是简单数据 常见的正文处理系统有word,Framemaker,word perfect,vi等。这些正文系统可归类为最简单的DBMS软件系统。用名字打开文件,文件内容被拷贝到虚存中。在编辑正文时,更新虚存对象,对象被定期地保存到硬盘中。在结束正文处理时关闭文件,这时,虚存中的拷贝被存到文件系统中区域2:简单数据,复杂查询 关系数据库。目前常见的保险业务处理系统、企业的人事管理、生产管理、物资管理等信息管理系统都是基于这种RDBMS之上开发的。如Informix,Oracle,delph,VB,VF等。查询语言,国际标准组织相继推出SQL-86、SQL-89

    8、和SQL-92标准。为了方便数据库应用系统的开发,数据库厂商开发了各种客户工具,除了可以在SQL语句中嵌入第三代语言(如C,COBOL等),还提供4GL第四代语言区域2:传统数据库不足之处(1)传统数据模型,特别是关系数据模型用来描述复杂的嵌套实体就显得过于简单。传统数据库系统也没有提供相应的机制去表达和管理这些实体。(2)传统数据库系统只支持有限的数据类型,它甚至不支持对较长的非结构化数据,如图形、图像和文本文档的存储和检索。(3)传统数据模型不含若干常用的语义概念,如像泛化(generalization)和聚集(aggregation)关系。(4)许多应用程序是用某种程序设计语言(FORT

    9、RAN、或C)嵌入到某个数据库语言(如SQL、DML)实现的。而程序设计语言与数据库语言无论在数据模型还是在数据结构上都是很不相同的.区域3:复杂数据,简单查询 本类应用与前两类应用最主要的不同在于增加了复杂数据。而与第二类应用相比,它又几乎没有查询要求.面向对象数据库产品主要有ObjectStore,O2,Objectivity/DB,Matisse,ONTOS,Gemstone等。这些产品在坚固性,可伸缩性,客户/服务器结构,应用开发工具等许多方面不如RDBMS产品。区域3:面向对象数据库的不足面向对象数据库的不足 面向对象数据库产品在程序设计接口、实现方法(手段)、对查询的支持等等方面都

    10、存在许多差异。面向对象的数据库产品在一些方面仍然落后于关系数据库产品,例如,还没有OODB支持视图机制.OODB明显缺乏最终用户工具及应用开发工具.OODB的商业市场的增长速度比预想的要慢的多.区域4:复杂数据,复杂查询(1)图象数据库,其结构定义如下:create table photo (id int;/*图象编号*/date date;/*拍摄日期*/caption document;/*图象说明*/picture photo_CD_image;/*图象编码*/);被存储的对象具有复杂的数据结构按内容对图象进行查询还要求数据库管理系统允许用户自定义数据类型.并自定义这些数据类型上的函数和

    11、操作区域4:复杂数据,复杂查询(2)(1)表达和管理复杂嵌套对象的能力,以允许逐步细化复杂实体。(2)存储和检索任意长数据的能力。(3)定义和管理任意数据类型的能力。(4)表达和管理数据库变化的能力,包括时间和时间间隔的表示法,单对象的版本,复杂嵌套对象的版本和模式实体的版本。(5)表达和操作各种有用的语义模型概念的能力。例如CAE、复合文档合成等等上下文中的装配部分层次就是这些概念之一。(6)指定规则和扩充制约的能力,以支持基于知识的应用。(7)管理长协同事务的能力。下一代数据库系统的特征世界上研究数据库处于前沿的单位(1)Http:/www.cs.berkeley.edu(2)Postgr

    12、eSQL -Object-Relational DBMS http:/www.postgresql.org(3)http:/db.cs.berkeley.edu/papers/Informix/(4)Universal DBMS http:/ 第二章第二章 对象关系数据库的基本特性对象关系数据库的基本特性ORDBMS的定义的定义开发对象关系DBMS的途径支持复杂对象支持复杂对象基类扩充基类扩充继承机制继承机制规则系统规则系统 1990年,由Stonebraker等人组成的高级DBMS功能委员会发表的“第三代数据库系统宣言”:第三代对象关系型数据库系统必须具备的三条原则:原则1:除传统的数据管理

    13、服务外,第三代DBMS将支持更加丰富的对象结构和规则。原则2:第三代DBMS必须包含第二代(即关系的)DBMS的所有功能。原则3:第三代DBMS必须对其它子系统开放。ORDBMS的定义的定义对象关系型对象关系型DBMS这种系统具备关系数据库管理系统的功能,同时又支持面向对象的特性。它是关系数据库技术与面向对象技术的融合。主要是扩充基类、支持动态数据类型、支持复杂对象和大对象、增加复杂对象继承机制及支持规则系统等。并支持SQL查询语言的超集ORSQL。它适合于具有高维数据、动态数据、复杂查询等工程应用领域。可用作开发CAD、多媒体、CIMS、GIS等应用系统。实现这种系统需研究:通用存储机制。系

    14、统的存储机制必须能存储对象关系型数据。类属的索引机制。原有的关系型DBMS只为数字和字符串两种数据类型内置了B树代码。在ORDBMS中,B树代码必须是类属的。这样就可以在任何数据类型上建立B树索引。使得系统能在任何数据类型上提供高维存取方法。必须提供用户自定义新的数据类型和函数的功能。这种可扩充性消除了传统的DBMS必须进行的对新数据类型和函数的繁琐模拟。规则系统。这些规则被数据库系统实施后,存储的数据变的更主动(active),使得它更具有自己的行为。即数据库中的数据能自己讲话。研究定义对象关系型数据库查询语言 ORSQL开发对象关系DBMS的途径(1)从头写一个从头写一个ORDBMS(2)

    15、对对ORDBMS进行功能扩充(要在源代码上进行)进行功能扩充(要在源代码上进行)第一个采用增量式演变策略的是Ingres公司,1988年开始,将关系型引擎扩展为具有基本类型扩充功能和规则管理的系统(3)写一个包装层写一个包装层包装层就是在传统的关系型引擎上裹着一个模拟层。这个模拟层支持对象关系型API,其办法是将用户提交的对象关系型查询映像成关系型查询,然后在传统关系型引擎上执行。HP公司已采用包装层策略,把关系型引擎Allbase改造成关系-对象型引擎Open ODB。模拟效率是非常低的。因为在包装层中执行整个查询,就意味着包装层必须有第二个SQL分析器,第二个优化器和第二个执行器IBM的D

    16、B2/CS V2.0系统和CAIngres系统支持用户定义的基类、继承和视图等。Illustra是当前对象关系市场上功能相当完备的产品,提供基于抽象数据类型(ADT)、已经开发好的类型扩充软件包,用于管理诸如图象和正文等数据类型。这样的软件包有Illustra的DataBlade.IBM的Database Extender等几个具有对象关系数据库特征的产品支持复杂对象支持复杂对象特性特性1:丰富的复杂对象类型 “组合”、“集合”和“指针”三种类型构造器。特性特性2:复杂对象类型上的函数特性特性3:复杂对象的大小对组合的成员总存储量大小不应有限制,对集合大小和成员数目也不应有限制。特性特性4.:

    17、SQL的超集创建复杂对象(组合)CREATE ROW TYPE addr_t(Street varchar(30),City varchar(20),State char(2),Zip int);有了addr_t这种复杂对象类型,一个公司的职工信息表可以定义成:CREATE TABLE employee(Name varchar(3),startdate date,salary int,address addr_t);CREATE ROW TYPE employee_t(Name varchar(30),Startdate date,Salary int,Address addr_t);然后,

    18、公司的职员表可以更简单的定义为:CREATE TABLE employee OF TYPE employee_t;把职工的所有信息定义为一个类型Employee 表格式 addressnamestartdatesalarystreetcitystatezip这样创建的表称为“类型表”,可见这种表并不满足1NF范式集合集合SET:普通的集合类型,元素不能重复。多值集合MULTISET:元素可以重 复的集合。列表LIST:有顺序的集合。指针 指针类型的存在基于以下事实:数据库表中的一行或一个复杂对象的实例可以有一个唯一的内部标识 称作行标识(ROWID)或对象标识(OID).指针实际存储的是这种标

    19、识。这些标识是永久的,且绝对不会重复.例,可把公司中某一部门表的manager列改成指针类型:manager REF(employee-t)综合利用指针的集合在部门表中直接包含部门的职员 workers SET(REF(employee-t)引入复杂对象后的部门表定义如下:CREATE TABLE department(dname varchar(30),manager REF(employee-t),workers SET(REF(employee-t);结构非常简明,并且完整的描述了一个部门的信息。基类扩充基类扩充 SQL92定义的基本数据类型只有以下几种:整数、实数、字符串(定长或可变长

    20、)、时间.基本数据类型上的操作符和函数也都是精确定义(有的是硬编码)的.所谓基类扩充,是指用户在SQL中能创建带有相应操作符和函数的新数据类型.创建一个新的基类需定义类型名、类型的存储信息和将该数据类型与ASCII字符互相转换的子程序。创建一个新的基类 创建基类需定义类型名、类型的存储信息和将该数据类型与ASCII字符互相转换的子程序:创建类型语句 创建其上的输入函数 创建其上的输出函数下面是IUS中创建Opaque Type的基类complex的例子创建类型语句:CREATE OPAQUE TYPE complex(internallength=8,alighnment=4);创建其上的输入

    21、函数:CREATE FUNCTION complex _in(lvarchar)RETURNING complex WITH(NOT VARIANT)EXTERNAL NAME/funcs/complex/complex.so LANGUAGE C END FUNCTION;CREATE IMPLICIT CAST(lvarchar as complex with complex_in);创建其上的输出函数:CREATE FUNCTION complex _out(complex)RETURNING lvarchar WITH(NOT VARIANT)EXTERNAL NAME/funcs/c

    22、omplex/complex.so LANGUAGE C END FUNCTION;CREATE EXPLICIT CAST(complex as lvarchar with complex_out);用户定义的类型,用户可以加入各种操作操作函数的定义:用通用的第三代编程语言如C等来编写函数。然后将函数注册到系统中去.如Informix的Stored Procedure Language(SPL)语言写函数。格式如下:CREATE DBA FUNCTION 参数表 RETURNS|RETURNING SPECIFIC WITH()END FUNCTION DOCUMENT WITH LISTI

    23、NG IN;我们定义一个函数increase_by_pct 用来求一个数按某个百分比增长后的值。CREATE FUNCTION increase_by_pct(amt numeric,pct numeric)RETURNING numeric;DEFINE result numeric;LET result=amt+amt*(pct/100);RETURN result;END FUNCTION;定义操作函数例使用定义操作函数的方法1。直接执行这个函数EXECUTE FUNCTION increase_by_pct(8,20)into nweval;CALL increase_by_pct(8

    24、,20)RETURNING newval;2。在SQL 语句中使用该函数例如,有一张表Inventory如下:part_id,description,quantity,price,total_price,last_shipHDW566,Claw Hammer,10,10.00,NULL,NULL在select 语句中使用该函数:SELECT increase_by_pct(price,20)AS higher_price FROM inventory;在update语句中使用该函数:UPDATE inventory SET price=increase_by_pct(price,20);SEL

    25、ECT*FROM inventory;使用定义操作函数的方法定义操作符 传统SQL支持相当多的操作符。例如,对整数和浮点数都有比较操作符(,).从语法上讲,每个操作符都是一个双参数函数,只不过函数名出现在二个参数之间。Illustra系统中用以下命令来注册操作符:create operatorbinding opr-nameTO function-name;以职工信息系统为例。现假设有一查询如下:select r.namefrom emp,emp rwhere emp.name=Ju and distance(emp.location,r.location)1以上查询也可表示为:select

    26、r.namefrom emp,emp rwhere emp.name=Ju”and contained(r.location,circle(emp.location,1);定义操作符例我们将“”定义为对应于函数contained的操作符,则也可用操作符来写这个查询:select r.namefrom emp,emp rwhere emp.name=Ju”and r.locationcircle(emp.location,1);定义操作符例基类扩充模块DataBlade 基类扩充模块是一种标准的软件模块,它可以被插入到数据库中,用以扩展其能力.Informix现在正在推出的基类扩充模块有二十多个

    27、,这里列举几个:1.二维/三维空间基类扩充模块对二维和三维空间对象(点、线、面等)进行存储和分析,并使用高性能的R树对数据进行访问。使用函数(overlap,area,containment等)对空间对象进行各种操作。2.图象基类扩充模块在单色或彩色模式下,对50多种格式(TIFF、GIF、JPEG等)的图象进行转换、存储、操作、加强和管理。还提供许多范例,包括旋转、边界加强和卷积等。3.正文基类扩充模块使用一个广泛的函数集,来处理基于内容的文档查找。4.时间序列基类扩充模块对任何类型(整数、浮点数、正文信息等)数据的有规律的重复性的时间进行定义和操作,这是金融分析中的一个关键性需求。5.We

    28、b 基类扩充模块快速创建智能化的交互Web应用,可根据存储在数据库中的信息动态地生成HTML页。6.VIR(可视化的信息查询)基类扩充模块通过强有力的,基于内容的查询机制来对图象和影像信息进行查询。这一机制依据图象属性,例如颜色、形状、质地和组成成分等,来分析可视信息。基类扩充模块(DataBlade)2继承机制继承机制 支持子类对父类的继承是面向对象方法的重要特性之一。在实际的问题模型中,许多对象之间有着继承的关系。提供继承机制,可以更好的模拟实际问题,有利于软件的高内聚,低耦合的模块化,也有利于软件的一致性和可重用性.继承分类继承分类 一个子类对象(子类数据或子表)可以从父类对象中继承数据

    29、属性和行为。其中行为一般包括函数,操作符,约束条件定义,参照完整性,存取方法,存储策略以及触发器等。数据继承数据继承函数继承数据继承(数据继承(1)假设某公司的雇员中有工程师,销售人员以及其他人员。我们可以定义雇员元组类型作为父类型,而定义工程师和销售人员元组类型作为他的子类型。Emp_t Engineer_t sales_t我们可以用下面的语句定义公司职工的元组类型:Create ROW TYPE emp_t (name varchar(30),base_salary numeric(12,2),manager REF(emp_t);Create ROW TYPE engineer_t (s

    30、kills varchar(20),bonus numeric(12,2)UNDER emp_t;Create ROW TYPE sales_t (territory varchar(30),commision numeric(12,2),annual_sales numeric(12,2)UNDER emp_t;这样,engineer_t 和sales_t 就继承了emp_t的数据属性数据继承(数据继承(2)多重继承 Emp_t Engineer_t Sales_t Saleengg_t 多重继承是指一个子类型可以从多个父类型继承。例如,销售工程师类型既是工程师的子类型,又是销售人员的子类型

    31、:如果它的两个父类型有重名属性,则它继承哪个属性就存在二义性。解决这种二义性有两种方法:一是用户在定义多重继承结构时,父类们不允许有重名属性,否则给出错误。二是有DBA定义处理二义性的规则,继承哪个属性由规则决定,但用户恐怕很难理解这些规则。当然,前者比后者简单得多。在IUS中,数据库权限增加了UNDER权限,定义表的用户必须对他所用到的父表有UNDER权限。而且,表中继承关系的定义应该和它们相对应的元组类型的继承关系相吻合。CREATE TABLE emp OF TYPE EMP_T;CREATE TABLE engineer OF TYPE engineer_t UNDER emp;CRE

    32、ATE TABLE engineer OF TYPE sales_t UNDER emp;多重继承例 表 emp name base_salary manager 表 engineer skills bonus referenceORDBMS允许从表的继承层次系统中查询数据,也就是说,既可以从某一个表查询数据,又可以查询某一个表及其所有后代表中的数据。IUS提供了三种不同的SELECT语句来完成上述功能。(1)SELECT*FROM ONLY(emp);只查询表emp中的记录;(2)SELECT*FROM emp 不但查询emp表的记录,还要查询它的所有后代表engineer和sales表中的

    33、记录。但是,这个语句查询的仅仅是基表的字段,即只是三个字段:name,base-salary和manager。(3)SELECT emp FROM emp;查询结果是三个表的所有记录,而三个表的所有字段都在查询结果之中。多重继承的查询 函数的继承是行为继承中重要的一种。定义在父类的函数可以被它的子类继承。一个函数定义在哪个类上是由它的参数的数据类型所决定的。比如,下面的语句分别在emp_t 和engineer_t 类上定义salary 函数:create function salary(emp emp_t)returning numeric;return(emp.base_salary);en

    34、d function;create function salary(emp engineer_t)returning numeric;return(emp.base_salary+emp.bonus);end function;函数继承 Salary Salary emp_t Engineer_t sales_t sales-t 类继承了其父类emp-t上定义的salary函数,但是,engineer-t也可以继承emp-t 的salary函数,而又定义了自己的salary函数这时在对engineer-t类中。引用salary函数时,应该是在engineer-t上定义的那个版本。IUS在运行某

    35、段代码过程中需要计算某个函数时,如果它的实参数据类型上定义了这个函数,则引用这个版本;否则,则沿着实参数据类型的父类方向在继承层次中向上查找,直至找到它的一个祖先类型上定义了这个函数为止函数继承例规则系统规则系统规则定义的格式一般如下:ON EVENTDO ACTION规则分为四种基本类型:修改修改规则;查询修改规则;修改查询规则;查询查询规则修改修改规则修改修改规则事件是一个修改型操作(包括修改、增加、删除操作),而动作也是修改型操作的规则 ON UPDATE TO emp.base_salary WHERE current.name=mike DO UPDATE emp SET base_

    36、salary=new.base_salary WHERE name=jane 将能使Jane的基本工资与Mike始终相同查询修改规则查询修改规则该规则是一个查询事件激活一个修改性的动作。例如:ON SELECT TO emp.base_salary WHERE current.name=MikeDO INSERT INTO audit VALUES (current.base_salary,user,current_time);这个规则在对Mike的基本工资进行查询时,将相同的信息存入audit表中,这样就可以维护一个查询Mike工资的事件踪迹表。修改查询规则修改查询规则ON UPDATE TO emp.base_salary WHERE current.name=MikeDO my-alert;当对Mike工资修改时,系统将会发出警报查询查询规则查询查询规则ON SELECT TO emp.base_salary WHERE current.name=JaneDO INSTEAD SELECT base_salary FROM emp WHERE name=Mike当查询Jane的工资时,返回Mike的工资。这样存储Jane工资的单元永远不会被访问。第二章 小结一个对象关系型DBMS所具有的特征。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:对象关系型DBMS开发技术课件.ppt
    链接地址:https://www.163wenku.com/p-4843066.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库