《Oracle对象管理》_第1页
《Oracle对象管理》_第2页
《Oracle对象管理》_第3页
《Oracle对象管理》_第4页
《Oracle对象管理》_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

1、第十一讲 Oracle对象管理本章学习目标 表、索引和约束是Oracle数据库管理的重要对象。本章将介绍它们的概念、分类、创建及管理方法。精选ppt11.1 表11.2 索引11.3 完整性约束精选ppt11.1 表11.1.1 普通表11.1.2 索引组织表(IOT)11.1.3 分区11.1.4 簇集11.1.5 表的存储管理11.1.6 表信息查询精选ppt不同类型的表普通表簇分区表索引组织表精选ppt11.1.1 普通表存储 创建表时,Oracle会自动从指定的表空间中为新建的表创建一个数据段,而该表的所有数据都会存放到相应的表段中。ROWID ROWID用于惟一标识表行。它间接地给出

2、了表行的物理存放位置,是定位表行最快速的方式。精选pptROWID格式OOOOOOBBBBBBFFFRRR数据对象号相对文件号行号块号数据对象编号需要32 位,相关文件编号需要10 位,块编号需要22,位行编号需要16 位,加起来总共是80 位或10 个字节精选ppt数据文件的最大尺寸? 32bit-object number-, 每个数据库最多有4G个对象 10bit-file number-, 每个数据库最多有1024个文件 22bit-block number-, 每个文件最多有4M个BLOCK 16bit-row number-, 每个BLOCK最多有64K个ROWS精选ppt建表并指

3、定存储参数CREATE TABLE schema.table(column datatype,column datatype) TABLESPACE tablespace PCTFREE integer PCTUSED integer INITRANS integer MAXTRANS integer STORAGE storage-clause LOGGING| NOLOGGING CACHE | NOCACHE 精选pptPCTFREE和PCTUSED PCTFREE用于指定块中必须保留的最小空闲空间比例; PCTUSED用于指定当数据块达到PCTFREE参数的限制之后,数据块能够被再次使

4、用前,已占用的存储空间必须低于的比例INITRANS和MAXTRANS 在创建表时,Oracle将在表中每个数据块的头部空间中分配可以存储INITRANS个事务条目的空间。MAXTRANS表明一个块所允许的最大并发事务数目精选ppt在STORAGE子句中可以设置下面6个存储参数: INITIAL,NEXT,PCTINCREASE, MINEXTENTS,MAXEXTENTS, BUFFER_POOL:指定表的数据块的缓存池。小且经常被查询的表存放在KEEP中;大却很少被访问的表存储在RECYCLE里;负责存储在DEFAULT里LOGGING和NOLOGGING: 表的创建操作(包括通过查询创建

5、表时的插入记录操作)是否记录到重做日志中。精选ppt建表例子CREATE TABLE employees(empno NUMBER(4), last_name VARCHAR2(30)deptno NUMBER(2)PCTFREE 20 PCTUSED 50STORAGE(INITIAL 200K NEXT 200KPCTINCREASE 0 MAXEXTENTS 50)TABLESPACE data01;精选ppt复制表例子CREATE TABLE testSTORAGE(INITIAL 200K NEXT 200KPCTINCREASE 0 MAXEXTENTS 50)NOLOGGINGP

6、ARALLELTABLESPACE USERSASSELECT * FROM USER_OBJECTS;精选ppt11.1.2 索引组织表(IOT) 一般情况下,表与索引数据分别存放在表段和索引段中。但索引组织表(IOT)比较特殊,它将表的数据和索引数据存储在一起,即以B树索引的方式来组织表中的数据。 精选ppt非键列键列行头普通表及其索引索引组织表精选ppt创建索引组织表在CREATE TABLE语句中必须显式地指定organization index关键字。在索引组织表中必须建立一个primary key主码约束。create table employees( empno number(5

7、) primary key, ename varchar2(15) not null, sal number(7,2), job varchar2(10) ) organization indextablespace users;精选ppt11.1.3 分区分区是指将一张大表的数据进行物理划分,并最终将其数据放到几个相对较小的表分区段中。当执行SQL语句访问分区表时,系统可以直接访问某个表分区段,而不需要访问整张表的所有数据,从而降低磁盘I/O,提高系统性能。精选ppt范围分区 范围分区是按照分区字段中值的范围来对表进行分区。范围分区通常用于分区字段是日期类型的表。精选pptcreate ta

8、ble sales( customer_id number(3), sales_amount number(10,2), sales_date date) partition by range (sales_date)(partition pl values less than (TO_DATE (01012001, MMDDYYYY) tablespace tb2001, partition p2 values less than (TO_DATE (01012002, MMDDYYYY) tablespace tb2002, partition p3 values less than(TO

9、_DATE (01012003, MMDDYYYY) tablespace tb2003, partition p4 values less than(TO_DATE (01012004, MMDDYYYY) tablespace tb2004);精选ppt当在分区表上执行INSERT操作时,系统会自动按照sales_date值的范围将数据插入到相应的分区段上当执行SELECT、UPDATE、DELETE操作时,如果在WHERE子句中引用了分区列,那么Oracle会自动在相应分区上执行操作,从而降低I/O操作的次数,进而提高性能。精选ppt列表分区如果分区字段的值并不能划分范围(非数字或日期数

10、据类型),同时分区字段的取值范围只是一个包含少数值的集合,那么可以对表进行列表分区。在进行列表分区时,需要为每个分区指定一个取值列表,分区字段值处于同一个取值列表中的记录被存储在同一个分区中。列表分区适用于那些分区字段是一些无序的或者无关的取值集合的表。精选pptcreate table sales_by_region( deptno number, dname varchar2 (20), quarterly_sales number (10,2), city varchar2(10) partition by list (city)(partition pl values (北京, 上海)

11、 ,partition p2 values (重庆, 广州) ,partition p3 values (南京, 武汉) );精选ppt散列分区 在进行范围分区或列表分区的时候,有时由于用户无法对各个分区中可能具有的记录数目进行预测,可能会产生不平衡分区情况。这时应创建散列分区散列分区是指按照Oracle所提供的散列(HASH)函数来计算列值数据,并最终按照函数结果来分区数据。精选pptcreate table product( product_id number(6), description varchar2(30) partition by hash (product_id) (part

12、ition pl tablespace locall, partition p2 tablespace local2 );精选ppt组合分区 组合分区实际上组合了范围分区和散列分区,它首先按照列值范围从逻辑上进行范围分区,然后在每个范围分区的基础上再按照散列函数进行散列分区。精选pptcreate table sales_order( order_id number, order_date date, product_id number, quantity number) partition by range (order_date) subpartition by hash (product

13、_id) subpartitions 2 store in(users,userl) (partition p1 values less than( 01-APR-2001), partition p2 values less than (01-JUL-2001), partition p3 values less than (01-OCT-2001), partition p4 values less than (01-JAN-2002); 精选ppt其中,STORE IN用于指定散列分区所在表空间。 在执行了上述命令之后,首先按照ORDER_DATE列值进行范围分区,此时建立四个逻辑上的范

14、围分区。然后按照PRODUCT_ID列值进行散列分区,并将逻辑上的四个范围分区最终转化成8个物理上的散列分区段。精选ppt11.1.4 簇一般情况下,建表时Oracle会为每个表分配相应的表段。DEPTNO DNAME LOC10 ACCOUNTING NEW YORK20 RESEARCH DALLAS30 SALES CHICAGO40 OPERATIONS BOSTONDEPTDEPTNO DNAME SAL20 SMITH 80010 CLARK 245010 KING 500020 SCOTT 200030 DEVE 1800EMPDEPTEMP精选ppt产生的问题假定用户经常需要执

15、行类似于“SELECT dname,ename,sal FROM dept,emp WHERE dept.deptno=emp.deptno AND dept.deptno=10”的连接查询语句来检索部门及其雇员的相关信息,那么至少需要2次的I/O操作精选ppt解决方法Oracle利用簇将多个表的相关字段聚簇在相同的数据块中。Deptno(簇键) 10 ACCOUNTING NEW YORK CLARK 2450 KING 5000 20 RESEARCH DALLAS SMITH 800 SCOTT 2000簇DEPT_EMP精选ppt簇的建立(第一步)建簇create cluster de

16、pt_emp(deptno number (3) pctfree 20 pctused 60 size 500tablespace users storage ( initial 200K next 200K minextents 3 pctincrease 0 maxextents 50); 注:size指一个簇键和它相关行所需的平均字节数精选ppt簇的建立(第二步)建簇表create table dept( deptno number(3) primary key, dname varchar2(14), loc varchar2(13) )cluster dept_emp(deptno)

17、; 注:不能指定STORAGE子句和块空间使用参数精选ppt簇的建立(第三步)在插入数据之前必须首先建立簇索引create index dept_emp_idx on cluster dept_emp tablespace indx storage( initial 20K next 20K pctincrease 0); 精选ppt11.1.5 表的存储管理分配空间 默认情况下,Oracle会根据存储参数设置自动为表分配区并计算大小。若需要指定大小的区,则可使用ALTER TABLE ALLOCATE EXTENT语句以手工方式为表分配存储空间。 alter table department

18、 allocate extent (size 500K datafile e:testusers2.dbf);精选ppt释放空间ALTER TABLE schema.tableDEALLOCATE UNUSED KEEP integerK|M 注:KEEP指定在高水位标记(HIGH WATER MARK,使用段存储的最高历史记录)以上应该保留的字节数。如果使用上述命令时没有KEEP子句,Oracle将回收高水位标记以上所有未使用空间。精选pptFree space after deleteUnused blockHigh water markExtent ID 01234Extent ID 0

19、1234Used blockHigh Water MarkAfter insertsAfter deletes精选pptFree space after deleteUnused blockHigh water mark释放之前Used block释放未使用的空间ALTER TABLE scott.employeesDEALLOCATE UNUSED;释放之后0 1 2 3 4精选ppt修改存储参数 在表创建之后,可以使用ALTER TABLE语句来改变表的块参数设置和部分存储参数设置(INITIAL和MINEXTENTS不能改)。 ALTER TABLE schema.table stora

20、ge-clause PCTFREE integer PCTUSED integer INITRANS integer MAXTRANS integer 精选ppt表的重组 如果发现一个表的数据段具有不合理的区分配方式,但是又不能通过别的方法来调整(改变存储参数不会影响到已经分配的区),可以考虑将该表移到一个新的数据段中。用户可以为新的数据段重新设置存储参数,以便符合表的存储需求。 精选ppt 例1:将EMPLOYEES表移动到同一个表空间的新数据段中: alter table employees movestorage(initial 20K next 40K minextents 2 max

21、extents 20 pctincrease 0); 精选ppt 例2:将EMPLOYEES表移动到表空间USERS02的新数据段中:alter table employees movetablespace users02storage(initial 20K next 40K minextents 2 maxextents 20 pctincrease 0);精选ppt11.1.6 表信息查询DBA_OBJECTSOWNEROBJECT_NAMEOBJECT_IDDATA_OBJECT_IDCREATEDDBA_SEGMENTSOWNERSEGMENT_NAMETABLESPACE_NAME

22、HEADER_FILEHEADER_BLOCKDBA_TABLESOWNERTABLE_NAMEPCT_FREEPCT_USEDINITIAL_EXTENTNEXT_EXTENTMIN_EXTENTSMAX_EXTENTSPCT_INCREASECACHEBLOCKSEMPTY_BLOCKSCHAIN_CNT精选ppt11.2 索引11.2.1 B-Tree索引11.2.2 位图索引11.2.3 反键索引11.2.4 索引管理11.2.5 索引信息查询精选ppt11.2.1 B-Tree索引索引项标题关键字列长关键字列值ROWID根分支叶索引项精选ppt建立通常的B-Tree 索引CREATE

23、 UNIQUE INDEX schema. indexON schema. table(column ASC | DESC , column ASC | DESC .)TABLESPACE tablespace PCTFREE integer INITRANS integer MAXTRANS integer storage-clause LOGGING| NOLOGGING NOSORT 精选ppt建立B-Tree索引的例子CREATE INDEX test_idxON test(a)PCTFREE 30STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 0

24、 MAXEXTENTS 50)TABLESPACE indx;精选ppt建立索引的原则平衡查询和DML 需求放在一个单独的表空间内(非 SYSTEM, RBS, TABLE)使用统一的区大小(经验值: 五块的倍数或表空间MININUM EXTENT 大小的倍数)考虑对大索引使用NOLOGGING如果新的关键字值有可能位于当前范围内, 则设置高PCTFREE精选ppt11.2.2 位图索引row1234NameJoeJaneJohnJamesM_StatusSingleMarriedDivorcedMarriedStatePACACAPAGenderMFMMM_Status-IDXSingleM

25、arriedDivorcedState-IDXCAPAGender-IDXMF1 0 0 00 1 0 00 0 1 00 1 1 01 0 0 11 0 1 10 1 0 0Select count(*) from customerswhere M_Status = married ANDState = CA AND Gender = M精选pptB 树适合高基数的列更新关键字列的费用相对较低使用 OR 谓词的查询效率低对 OLTP 有用位图适合低基数的列更新关键字列的费用非常昂贵使用 OR 谓词的查询效率高对数据仓库有用B-Tree树与位图索引的比较精选ppt建立Bitmap索引 CREA

26、TE BITMAP INDEX schema. indexON schema. table(column ASC | DESC , column ASC | DESC .)TABLESPACE tablespace PCTFREE integer INITRANS integer MAXTRANS integer storage-clause LOGGING| NOLOGGING NOSORT 注意,Bitmap 不能是 unique 的精选ppt建立Bitmap索引的例子SQL CREATE BITMAP INDEX test_bm_idx 2 ON test(c) 3 PCTFREE 30

27、 4 STORAGE(INITIAL 200K NEXT 200K 5 PCTINCREASE 0 MAXEXTENTS 50) 6 TABLESPACE indx;索引已创建。精选ppt11.2.3 反键索引KEY ROWIDEMPNO (BLOCK# ROW# FILE#)- -1257 0000000F.0002.00012877 0000000F.0006.00014567 0000000F.0004.00016657 0000000F.0003.00018967 0000000F.0005.00019637 0000000F.0001.00019947 0000000F.0000.0

28、001.Index on EMP (EMPNO) EMP tableEMPNO ENAME JOB .- - -7499 ALLEN SALESMAN7369 SMITH CLERK7521 WARD SALESMAN .7566 JONES MANAGER7654 MARTIN SALESMAN7698 BLAKE MANAGER7782 CLARK MANAGER.精选ppt适合唯一索引反键索引有助于把本来相连的列值分散到索引的不同叶块,这样减少了I/O 的读取个数,从而提高了性能。精选ppt建立反键索引CREATE UNIQUE INDEX schema. indexON schema.

29、 table(column ASC | DESC , column ASC | DESC .)TABLESPACE tablespace PCTFREE integer INITRANS integer MAXTRANS integer storage-clause LOGGING| NOLOGGING REVERSE(注意,这里不能使用 NOSORT)精选ppt建立反键索引的例子SQL CREATE UNIQUE INDEX test_rsidx 2 ON test(b) REVERSE 3 PCTFREE 30 4 STORAGE(INITIAL 200K NEXT 200K 5 PCTI

30、NCREASE 0 MAXEXTENTS 50) 6 TABLESPACE indx;索引已创建。SQL精选ppt11.2.4 索引管理修改索引存储参数设置 可以使用ALTER INDEX命令修改其存储参数。存储参数INITIAL不能修改,而修改其他存储参数只对新分配的区起作用。 alter index test_idx storage(next 200k maxextents 50); 精选pptSQL ALTER INDEX test_bm_idx 2 ALLOCATE EXTENT (SIZE 200K 3 DATAFILE E:ORACLEORA92TESTINDX01.DBF);索引

31、已更改。SQL ALTER INDEX test_bm_idx 2 DEALLOCATE UNUSED;索引已更改。SQL注意:释放HWM之上的分配释放存储空间精选ppt11.2.5 索引信息查询DBA_INDEXESOWNERINDEX_NAMEINDEX_TYPETABLE_OWNERTABLE_NAMEUNIQUENESSTABLESPACE_NAMELOGGINGSTATUSDBA_IND_COLUMNSINDEX_OWNER INDEX_NAME TABLE_OWNER TABLE_NAME COLUMN_NAME COLUMN_POSITIONCOLUMN_LENGTH 精选ppt

32、11.3 完整性约束ApplicationcodeIntegrityconstraint(首选)DatabasetriggerTableData精选ppt11.3.1 约束的类型11.3.2 约束的定义11.3.3 约束的修改11.3.4 约束的删除11.3.5 约束的查询精选ppt11.3.1 约束的类型约束NOT NULLUNIQUEPRIMARY KEYFOREIGN KEYCHECK说明列不能包含空值列或列的组合 的值唯一列或列的组合 为表的主键该完整性约束保证:对于表的每一行,外键的值必须与父表的主键值匹配,表中每一行必须满足的特殊条件精选ppt延迟约束(Deferred Const

33、raints)DML 语句检查非延迟约束COMMIT检查延迟约束精选ppt 默认情况下,Oracle在一条SQL语句执行完毕后进行约束检查,但是也可以将约束检查的时间延迟到一个事务结束时进行。以保证事务的执行过程不会因为出现违反约束的情况而中断。不可延迟约束:在定义约束时,默认使用NOT DEFERRABLE关键字可延迟约束:如果在定义约束时显式地指定了DEFERRABLE关键字,则创建的约束是可延迟的。精选ppt11.3.2 约束的定义建立表时定义约束SQL CREATE TABLE emp( 2 id NUMBER(7) 3 CONSTRAINT employee_id_pk PRIMAR

34、Y KEY 4 DEFERRABLE 5 USING INDEX 6 STORAGE(INITIAL 100K NEXT 100K) 7 TABLESPACE indx, 8 last_name VARCHAR2(25) 9 CONSTRAINT employee_last_name_nn NOT NULL, 10 dept_id NUMBER(7) 11 TABLESPACE users;表已创建。精选ppt当定义主键约束和唯一约束时,Oracle会自动基于主键列或唯一约束列建立唯一索引。为了提高数据访问性能,Oracle建议将表及其索引分布到不同表空间,这时,在定义主键约束或唯一约束时可通

35、过使用USING INDEX子句来指定索引段所在表空间。精选ppt创建表后定义约束SQL create table department( 2 dept_id NUMBER(7) PRIMARY KEY, 3 dept_name VARCHAR2(25);表已创建。SQL ALTER TABLE emp 2 ADD(CONSTRAINT employee_dept_id_fk FOREIGN KEY(dept_id) 3 REFERENCES department(dept_id);表已更改。SQL精选ppt11.3.3 约束的删除当删除主键约束或唯一约束之后,会自动删除他们所对应的索引 AL

36、TER TABLE emp DROP CONSTRAINT employee_id_pk;如果在两张表之间存在主外键关系,那么当删除主表的主键约束时必须带有CASCADE选项 ALTER TABLE department DROP primary key CASCADE;精选ppt删除表的同时删除约束 DROP TABLE departmentCASCADE CONSTRAINTS; 注:CASCADE CONSTRAINTS选项用于指定级联删除。当表与其他表具有主外键关系时,删除主表时必须带有该选项。精选ppt11.3.4 约束的查询DBA_CONSTRAINTSOWNER CONSTRAI

37、NT_NAME CONSTRAINT_TYPE TABLE_NAME SEARCH_CONDITION R_OWNER R_CONSTRAINT_NAMEDELETE_RULE STATUS DEFERRABLE DEFERRED VALIDATED GENERATED BAD LAST_CHANGE DBA_CONS_COLUMNSOWNER CONSTRAINT_NAMETABLE_NAME COLUMN_NAME POSITION 精选pptt$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVk

38、SgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D

39、2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oX

40、lUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B

41、+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmU

42、jRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4

43、C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVk

44、SgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-

45、w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkTh

46、QeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK9H5E2A*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x

47、*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2*u$qZnWkShPdMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMb

48、J8G4D1A-w*t!qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmVjR

温馨提示

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

评论

0/150

提交评论