版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子商务数据库技术E-BusinessDatabaseTechnology电子商务的基本结构框架电子商务应用社会人文环境(公共政策、法律、规则等)一般业务服务自然科技环境(文档、安全、网络协议的技术标准)多媒体信息发布安全保障基础通信网络网络软件操作系统网络数据库系统计算机硬件设备电子商务应用一般业务服务是上商务活动的标准化服务物流管理视频点播网上银行电子市场电子广告网上娱乐有偿信息服务家庭购物目录服务多媒体信息发布文本声音图像动画安全保障数据存储的安全保障防止非法用户的使用防止合法用户的非法使用防止数据丢失和损坏数据传输的安全保障数据在传输过程中如何防止被截取防止被截取的数据被使用基础通信网络电子商务的硬件基础设施,承担着电子商务信息传输的任务远程通信网(telecom)电话(telephone)电报(telegram)有线电视网(cableTV)无线通信网(wireless)移动通信(mobile)卫星网(satellite)互联网(internet)主要的互联网技术在操作系统和网络软件的支持下提供的主要技术WWW(如微软Explore,网景Netscape)电子邮件(如Outlook,Foxmail等)FTP(如CuteFTP等)Telnet网络数据库系统OracleInformixSQLServerDB2dBASEAccessVisualFoxPro(VFP)计算机硬件设备工作站、服务器和终端;电话设备、集线器、交换机、路由器、调制解调器等TCP/IPAppleTalkSPX/IPXNetBIOSDECnetAPPC/LU6.2地位与作用存储管理查询结算处理物理地位电子商务服务商组织信息并发布;用户根据需要提取信息发布向客户发送信息http://数据库工作组客户静态页面和动态页面数据库服务器表 ID LAST_NAME FIRST_NAME 10 Havel Marta 11 Magee Colin 12 Giljum Henry 14 Nguyen Mai SALES_ ID NAME PHONE REP_ID 201 Unisports 55-2066101 12 202 SimmsAtheletics 81-20101 14 203 DelhiSports 91-10351 14 204 Womansport 1-206-104-0103 11表名:S_CUSTOMER表名:S_EMP201202203204静态页面动态页面绑定Web与数据库集成的主要形式运用Web发布数据运用Web共享数据用数据库驱动Web站点
建立电子商务网站步骤选择ISP和DSP注册域名和选择接入方式网页设计制作创建和维护数据库整合数据库和网站在Web上使用数据库ISP服务提供商,是可以让用户连入Internet并提供网络服务的主机系统互联网内容提供商(ICP,InternetrContentProvider)。为客户提供各种网上信息服务(网络新闻、搜索引擎、网页制作、电子商务等)。互联网接入提供商(IAP,InternetAccessProvider)。专门为用户提供上网服务(虚拟主机、托管服务器、专线接入)。DSP数据库服务提供商(DatabaseServiceProvider)物理形态域名是企业在Internet上的地址,并且具有商标的性质IAPISPhttp://DSP工作组客户网页设计工具Netscape的Navigator、CommunicatorMicrosoft的FrontpageMicromedia的Dreamweaver网页三剑客Dreamweaver用于构造网站和应用程序Fireworks设计、优化和集成网页图形Flash创建丰富的交互动画网络数据库是数据库驱动Web站点的核心桌面型中小型面向对象型大型分布型数据仓库型数据库系统的几个层面数据库系统设计与实现数据库应用设计与实现数据库应用DBMSDBDBS的设计DB的设计数据的访问基于Web的应用模式客户访问通过HTTP(HypertextTransferProtocol)程序设计Web站点http://数据库工作站客户Web设计超文本记语言(HTML,HypertextMarkupLanguage)。提供网页显示功能。脚本语言(如JavaScript、VBScript等)。提供程序控制和访问控制功能,如数据库访问等功能
处理用户在表单中数据,编辑、复制它们到隐含域,等等增强界限效果控制表单的提交和生成复杂的URL请求。四个基本概念数据(Data)数据库(Database,简称DB)数据库管理系统(DatabaseManagementSystem,简称DBMS)数据库系统(DatabaseSystem,简称DBS)数据描述事物的符号记录。例(李明,男,22,1982,浙江,计算机,1999)语义李明是个大学生,1982年出生,今年22岁,男性,浙江人,1999年考入计算机系数据的形式还不能完全表达其内容,需要经过解释。数据的解释是指对数据含义的说明,数据的含义称为数据的语义,数据与其语义是不可分的。数据库长期储存在计算机内,有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。数据库管理系统数据管理软件系统。管理、控制数据库的建立、运行和维护。功能数据定义功能数据操纵功能数据库的运行管理数据库的建立和维护功能数据库系统数据库引入到计算机系统中的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。在一般不引起混淆的情况下常常把数据库系统简称为数据库。数据管理技术的发展阶段人工管理阶段文件系统阶段数据库系统阶段人工管理阶段1)不保存;2)无软件管理,由应用程序直接管理;3)不共享;4)无独立性。应用程序1应用程序2应用程序n…数据组1数据组2数据组n…文件系统阶段1)长期保存;2)文件系统管理数据;3)共享差,冗余度大;4)独立性差。应用程序1应用程序2应用程序n…文件1文件2文件n文件系统(FS)…数据库系统阶段1)数据结构化;2)共享好,冗余低,易扩充;3)独立性高;4)DBMS统一管理和控制。应用程序1应用程序2应用程序n…数据库管理系统(DBMS)数据库数据库系统的发展第一代,层次数据库系统和网状数据库系统第二代,关系数据库系统第三代,面向对象数据库系统数据模型数据模型是数据库中用于抽象、表示和处理现实世界中的数据和信息的工具。需要满足三方面要求:一是能比较真实地模拟现实世界;二是容易为人所理解;三是便于在计算机上实现。机器世界DBMS支持的数据模型信息世界概念模型现实世界认识抽象数据模型的组成要求1、
数据结构是所研究的对象类型的集合。属于系统静态特性。2、
数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合。属于系统动态特性。3、
数据约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。概念模型概念模型实际上是现实世界到机器世界的一个中间层次。基本概念实体(entity):客观存在,并可相互区别的事物。属性(attribute):实体的某一特性。码(key):唯一标识实体的属性集合。域(domain):属性的取值范围。实体型(entitytype):实体及其属性名集合来抽象和刻画同类实体。实体集(entityset):同类实体的集合。联系(relationship):实体之间、实体内部属性间的联系。如1:1、1:n、m:n等。概念模型表示方法E-R图,P.P.S.Chen于1976年提出(entity-relationshipapproach)。实体型:用矩形表示,矩形框内写明实体属性:用椭圆形表示,并用无向边将其一相应的实体连接起来联系:用菱形表示,菱形框人写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:m,m:n等)示例1一般的联系班级班级-班长班长11班级组成学生1n1:1课程选修学生mn1:nm:n示例2特殊的联系课程讲授教师1m参考书n三个实体间的联系职工经理1n实体内部的联系示例3E-R图课程讲授教师1m参考书n选修学生mn班级组成1n小组长n1成绩常用的数据模型层次模型(hierarchicalmodel)网状模型(networkmodel)关系模型(relationalmodel)层次模型代表:IBM的IMS(InformationManagementSystem)数据结构基本结构只有一个结点无双亲,即为根结点(1:1)其他结点有且只有一个双亲结点(1:n)多对多(m:n)冗余结点法:m:n=1:m+1:n虚拟结点法:将冗余结点转为虚拟结点,即指引元,指向替代的结点。其它非树型结构转换成树型操纵与完整性约束没有双亲结点值不能插入子女结点值删除双亲结点值,相应子女值也同时删除冗余结点更新时,几处同时更新存储结构邻接法:层次树前序链接法:用指引元反映数据之间的层次联系优缺点简单;联系固定;完整性良好。非层次表示笨拙;插入、删除限制多;查询子女通过双亲;层次命令趋于程序化。示例用层次模型表示多对多E-R图S→CC→SS→V.CC→V.SS#SNSSS-CC#CNmn学生S课程CS#SNSSC#CNC#CNS#SNSSS#SNSSC#CNV.CV.S网状模型典型代表是DBTG系统,也称CODASYL系统。这是20世纪70年代数据系统语言研究会CODASYL(ConferenceOnDataSystemLanguage)下属的数据库任务组(DataBaseTaskGroup,简称DBTG)提出的一个系统方案数据结构可以有一个以上的结点无双亲;至少有一点结点,有多于一个的双亲;两个结点之间可以有两种或多种联系。操纵与完整性约束
插入操作允许尚未确定双亲结点值的子女结点值;删除操作允许只删除双亲结点值。存储结构链接法:单向、双向、环状、向首引元阵列、二进制阵列、索引优缺点更直接描述;性能良好、存取效率高。DDL复杂;独立性差、指定存取路径。示例网状模型表示多对多学号姓名年龄性别课程号课程名学号课程号成绩学生(S)课程(C)学生-成绩系(S-SC)课程-成绩系(C-SC)成绩(SC)关系模型关系模型(relationalmodel)1970年E.F.Codd论文“大型共享系统的关系数据库的关系模型”数据结构逻辑结构是二维表,由行和列组成。关系:二维表。元组:表中的一行。属性:表中的一列。主码(key):属性组(集),可以唯一确定一个元组。域(domain):属性的取值范围。分量:元组中的一个属性值。关系模式:对关系的描述。表示为:关系名(属性1,属性2,……属性n)操纵与完整性约束集合操作(操作对象、操作结果都是关系(元组的集合)):查询、插入、删除、修改。实体完整性、参照完整性、用户定义的完整性。存储结构实体、及实体之间的联系用“表”表示,表以文件形式存储优缺点与非关系模型不同,它建立于严格的数学概念(关系代数)的基础上的;关系模型的概念单一。无论实体还是实体间的联系都用关系表示,对数据的检索结果也是关系(即表)。故其数据结构简单、清晰,用户易懂易用;关系模型的存取路径对用户透明,具有更高的数据独立性,更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。
由于存取路径对用户透明,查询效率不如非关系数据模型;为提高性能,须对用户查询请求进行优化,从而增加了数据库管理系统的负担。示例二维表学生登记表学号姓名性别系别年龄95001张三男CS2096010李四女IS1999100王五男MA17关系名列,属性名,主码行,元组域:如整数三级模式结构应用A应用B应用C应用D外模式3外模式2外模式1123模式内模式DB一个数据库只有一个模式外模式/模式映象模式/内模式映象也称子模式、用户模式。是模式的子集。是用户的数据视图,与某一应用有关。也称逻辑模式。是所有用户的公共数据视图。与应用开发工具、应用无关;与物理存储、硬件环境无关。也称存储模式。数据在数据库内部的表示方式。只有一个内模式;主要描述存储方式,如顺序存储、B树存储,hash存储;以及如何进行索引、压缩、加密等。数据独立性逻辑独立性当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映象作相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而也不必修改,保证了数据与程序的逻辑独立性。物理独立性当数据库的存储结构改变了(例如选用了另一种存储结构),由数据库管理员对模式/内模式作相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性。数据库系统的组成硬件平台及数据库足够大的内存足够大的磁盘较高的通道能力软件DBMS支持DBMS的OS具有与数据库接口的高级语言及其编译系统以DBMS为核心的应用开发工具为特定应用环境开发的数据库应用系统人员数据库管理员系统分析员和数据库设计人员应用程序员用户用户偶然用户不经常访问数据库。一般是企业或组织机构的高中级管理人员。简单用户查询和修改数据库。银行的职员、航空公司的机票预定工作人员、旅馆总台服务员等。复杂用户包括工程师、科学家、经济学家、科学技术工作者等能够直接使用数据库语言访问数据库,甚至编制应用程序的人。DBA的工作职责决定数据库中的信息内容和结构决定数据库的存储结构和存取策略定义数据的安全性要求和完整性约束条件监控数据库的使用和运行数据库的改进和重组重构数据库管理系统数据库管理系统是数据库系统的核心,是为数据库的建立、使用和维护而配置的软件。DBMS建立在操作系统的基础上,是位于操作系统与用户之间的一层数据管理软件,负责对数据库进行统一的管理和控制。用户发出的或应用程序中的各种操作数据库中数据的命令,都要通过数据库管理系统来执行。数据库管理系统还承担着数据库的维护工作,能够按照数据库管理员所规定的要求,保证数据库的安全性和完整性。DBMS的功能和组成功能数据定义模式、存储模式和外模式,各模式间的映象定义,及定义结束条件数据操纵检索、插入、删除、修改等数据库运行管理并发控制、安全性检查、完整性约束条件等的检查与执行。内部维护(包括索引、数据字典的自动维护)
数据组织、存储和管理文件结构、存取方式(如何保证空间利用率和处理效率(时间效率))数据库的建立与维护初始数据输入、数据转换等。转储(备份)与恢复、重组、重构等。数据通信接口与用户的通信接口,各服务器间的通信接口等组成数据定义语言及其翻译处理程序DDL数据操纵语言及其编译(或翻译)程序DML,宿主型、自主型(自含型)数据库运行控制程序
实用程序
数据库保护DBMS的数据控制功能数据安全性(Security)保护数据完整性(Integrity)控制并发(Concurrency)控制数据库恢复(Recovery)安全性控制三层安全防线操作系统的安全保护机制DBMS的安全保护机制数据库中对象的安全保护机制计算机系统采用的安全措施用户标识和鉴定存取控制视图数据加密数据库审计完整性约束此外,还可以分立即执行约束(语句结束)和延迟执行约束(事务结束)粒度/状态列级元组级关系级静态类型格式值域空值其它元组值应满足的条件实体完整性约束参照完整性约束函数依赖约束统计约束动态改变列定义或列值元组新旧值之间应满足的约束条件关系新旧状态间应满足的约束条件Oracle示例CREATETABLEEMP(EmpnoNUMERIC(4)PRIMARYKEY,EnameVARCHAR(10)NOTNULL,JobVARCHAR(9),MgrNUMERIC(4),SalNUMERIC(7,2)CHECK(Sal>300),DeptnoNUMERIC(2),
CONSTRAINTFK_DEPTNOFOREIGNKEY(Deptno)
REFERENCEDEPT(Deptno)
ONDELETECASCADE);并发控制并发控制的单位—事务(transaction)Begintransaction数据库操纵语句集Commit/rollback并发操作导致数据的不一致性丢失数据不可重复读读“脏”数据不一致性的示例时间事务1事务2t1检索,读A=16
t2
检索,读A=16t3更新,A←A-1写回A=15
t4
更新,A←A-1写回A=15时间事务1事务2t1检索,读B=200
t2
检索,读B=200t3更新,B←B*2写回B=400t4检索,读B=400
时间事务1事务2t1检索,读C=200更新,C←C+100写回C=300
t2
t3检索,读C=300t4撤销(ROLLBACK)数据库技术新进展分布式数据库面向对象数据库系统多媒体数据库分布式数据库DDBMS是在两台或多台地理上或物理上分散而逻辑上集中的数据库系统。……视图(计算机学生)视图(数学系学生)视图(中文系学生)全局概念模式(学生)局部概念模式(玉泉校区学生)分片模式(按校区划分)局部内模式(UNIX平台)局部内模式(LINUX平台)分配模式(各校区学生信息各自存储)局部内模式(WINDOWS平台)局部概念模式(紫金港校区学生)局部概念模式(西溪校区学生)全局外层全局概念层局部概念层…………局部内层面向对象数据库系统OODBMS是数据库技术与面向对象技术相结合的产物。具有表示和构造复杂对象的能力通过封装和消息隐藏技术提供了程序的模块化机制继承和类层次技术不仅能表示ISA联系,还提供了软件重用的机制通过滞后联编*等概念提供系统扩充能力提供与宿主语言的无缝(seamless)连接消息中的方法名,在应该程序编译时还不能确定它所代表的过程,只有执行时,当消息发送到具体的对象后,方法名的方法的过程才能够结合。这种“名”与“义”的推迟结合称为滞后联编(latebinding)多媒体数据库MDB是能够管理数值、文件、表格、表格、图形、图像、声音等多媒体的数据库应用方式基于关系模型,加以扩充,使之支持多媒体数据库类型基于OO模型来实现对多媒体信息的描述和操作基于超文本模型关键技术数据模型技术,如OO数据模型、语义数据模型等数据的存储管理和压缩/解压技术多媒体信息的再现和良好的用户界面技术多媒体信息的检索与查询及其他处理技术分布式环境与并行处理技术客户机/服务器技术客户机/服务器的结构C/S的组成三层结构的客户机/服务器结构C/S结构的数据库系统的实现技术客户机/服务器的结构节点(Site)1客户机(Client)节点(Site)2客户机(Client)节点(Site)3服务器(Server)节点(Site)n客户机通讯网络(CommunicationNetwork)服务器(Server)……接口接口接口接口C/S的组成客户机是一个面向对象最终用户的接口或应用程序。它通过向一个设备或应用程序(服务器)发出请求信息,然后将信息显示给用户。主要处理界面。服务器建立进程和网络服务地址、监听用户的调用、处理客户的请求、将结果交给客户机和释放与客户机的连接。是主要处理设备。连接件多指一种软件通信过程;对应用开发人员来说,客户机/服务器之间的连接主要是它所能使用的软件工具和编程函数。如ODBC。三层结构的客户机/服务器结构三层C/S模式客户机客户机……客户机应用逻辑应用服务器(Web服务器)数据库服务器网络自定义协议DBMS接口DBDB优点整个系统被分为不同的逻辑块,层次非常清晰能够使“肥客户机”变成“瘦客户机”开发和管理的工作向服务器方向转移,使得分布数据处理成为可能管理和维护变得相对简单加强整个系统的安全性C/S结构的数据库系统实现技术开放的数据库访问接口ODBC(OpenedDatabaseConnectivity)JDBC存储过程高性能。存储过程是以编译和优化后的形式存储的,因此在被调用时可以直接运行,速度快。存储在服务器端。共享性简化了应用开发过程,提高了应用开发效率简化了安全性控制分布数据管理数据复制和分布两阶段提交因特网多层应用示例因特网浏览器浏览器……浏览器应用逻辑Web服务器数据库服务器自定义协议DBMS接口DBDBWeb服务及应用选择应用服务器应用逻辑自定义协议……关系模式关系模式是关系的描述,它由五部分组成,即为五元组:R(U,D,DOM,F)其中R为关系名,U是属性集合,D是域的集合,即取值范围的集合。DOM是属性源域(属性集合U中属性所来自的域),为属性向域的映象集合F为属性间的数据依赖关系集合。简化描述R(U,F),甚至R(U)关系数据库设计中的异常问题数据冗余更新异常插入异常删除异常示例数据学生(学号,姓名,系名,系负责人,课程名,成绩)主码={学号,课程名}学号(6)姓名(8)系名(8)系负责人(8)课程名(10)成绩(2)980701章涌管理系李瑞祥市场营销85980701章涌管理系李瑞祥技术经济78980701章涌管理系李瑞祥生产管理80980702李文利管理系李瑞祥市场营销70980702李文利管理系李瑞祥技术经济86980702李文利管理系李瑞祥生产管理90980703王沐阳管理系李瑞祥市场营销84980703王沐阳管理系李瑞祥技术经济75980703王沐阳管理系李瑞祥生产管理70980704杨舒管理系李瑞祥市场营销78980704杨舒管理系李瑞祥技术经济72980704杨舒管理系李瑞祥生产管理9012行42字节数据冗余总字节数=(6+8+8+8+10+2)*12=504B系名和系负责人重复12次学号和姓名重复3次课程名重复4次更新异常管理系负责人改为李增瑞需要修改12条记录(所有相关的记录,与该系的学生有关)由于数据重复存储导致更新操作复杂化。插入异常计算机系成立,尚未招生——无法插入在学生表存储数据必须保证其实体完整性——主属性不为空,故学号和课程名不能为空招生完毕,但学生尚未选修课程——无法插入学号是有了,但由于未选修,所以课程名不知道,不能保证主属性不为空的实体完整性要求。求学校有多少系?结果不正确,在学生表中还未有计算机系含在内。问计算机系负责人是谁?不知道,计算机系不存在。由于信息不全,导致应该存储的数据无法存储。删除异常管理系98级学生毕业,删除所有该年级学生。由于管理系只有98级学生,被删除后,连带管理系及其负责人信息一起被删除。问学校有几个系?问管理系负责人是谁?若980701学生取消三门选修课程,则需要删除该学生对应的三条记录该学生记录信息也会因此被删除。问管理系有多少学生?删除元组时导致额外信息的丢失根本原因上述学生关系模式的规范化程序较低。解决的办法通过规范化理论对其进行规范化,可以逐步降低和消除上述问题基础概念函数依赖(FunctionalDependency)非平凡的函数依赖(NontrivialFunctionalDependency)完全函数依赖(FullFunctionalDependency)部分函数依赖(PartialFunctionalDependency)传递函数依赖(TransitiveFunctionalDependency)函数依赖定义1:对于R中属性X的任何一个具体值,Y仅有唯一的具体值与之对应,则称R的属性Y函数依赖于属性X,记作X→Y,X称为决定因素(Determinant)。设R(U)是一关系模式,U是R的属性集合。X和Y是U的子集,对于R(U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。例如:学号→姓名,学号→系名(学号,课程名)→成绩非平凡的函数依赖在关系模式R(U)中,对于U的子集X和Y,如果X→Y,但Y⊈X,则称X→Y是非平凡函数依赖。若Y⊆X,则称X→Y为平凡函数依赖。对任一关系模式,平凡函数依赖都必然成立,不能反映新的语义,故一般只讨论非平凡的函数依赖。完全函数依赖与部分函数依赖定义2:在R中如果属性集Y函数依赖于属性庥X,且不函数依赖于X的任何真子集,则称Y完全函数依赖于X,记作XY,否则Y部分函数依赖于X,记作XY。在关系模式R(U)中,如果X→Y,且对于X的任一真子集X’,都有X’↛Y,则称Y完全函数依赖于X,记XY。若X→Y,但Y不完全函数依赖于X,则称Y部分函数依赖于X,记X
Y。如关系SC(Sno,Cno,Grade)中,由于Sno↛Grade,Cno↛Grade。所以有(Sno,Cno)Grade。传递函数依赖定义3:在R中,对于属性子集X、Y、Z,若XY,Y⊄X,Y→Z,则称Z对X传递函数依赖,记作XZ。在关系模式R(U)中,如果X→Y,Y→Z且Z⊈Y(即Z-Y≠φ),Y↛X,则称Z传递函数依赖于X。记作XY,或者X
Y。说明:Y→Z且Z⊈Y(即Z-Y≠φ)是指Y与Z之间的函数依赖是非平凡的。而加上条件:Y↛X,否则因为如果Y→X,则X←→Y,故XZ。并非传递函数依赖了。如关系Std(Sno,Sdept,Mname)中有Sno→Sdept,Sdept→Mname,且Sdept↛Sno,故Sno
Mname。码如果K
U,则K
是关系模式R(U)的超级码(Superkey)K
是R(U)的候选码(candidatekey)当且仅当K
U,且不存在
K,使
U成立。即K
R若关系模式R有多个候选码,则选定其中一个作为主码(primarykey)外码外部码(Foreignkey):如果关系R的某一属性组A不是R的候选码,而是另一关系S的候选码,则称A为R的外部码。外部码提供了一种表示两个关系联系的方法包含在任意一个候选码中的属性,称为主属性。不包含在任何候选码中的属性称为非主属性。范式范式(NormalForm)是符合某一级别的关系模式的集合。目前主要有六种范式,即第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BC范式(BCNF)、第四范式(4NF)和第五范式(5NF)。它们之间有如下的关系。1NF⊃2NF⊃3NF⊃BCNF⊃4NF⊃5NF若R为第n范式,则记R∈nNF。第一范式(1NF)如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。1NF是关系模式的最起码要求,不满足第一范式的数据库模式不能称为关系数据库。例如,学生(学号,姓名,系名,系负责人,课程名,成绩)第二范式(2NF)若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于R的码,则R∈2NF。将学生(学号,姓名,系名,系负责人,课程名,成绩)中存在的非主属性对码的部分函数依赖消除后可以降低和消除异常问题。姓名、系名、系负责人部分函数依赖于{学号,课程名},但都完全函数依赖于学号。学生情况(学号,姓名,系名,系负责人)成绩(学号,课程名,成绩)规范化结果学生情况(学号,姓名,系名,系负责人)成绩(学号,课程名,成绩)学号(6)姓名(8)系名(8)系负责人(8)980701章涌管理系李瑞祥980702李文利管理系李瑞祥980703王沐阳管理系李瑞祥980704杨舒管理系李瑞祥学号(6)课程名(10)成绩(2)980701市场营销85980701技术经济78980701生产管理80980702市场营销70980702技术经济86980702生产管理90980703市场营销84980703技术经济75980703生产管理70980704市场营销78980704技术经济72980704生产管理90规范化前总字节数=(6+8+8+8+10+2)*12=504B规范化后总字节数=(6+8+8+8)*4+(6+10+2)*12=120B+216B=336B异常问题缓解数据冗余(减轻,但仍存在)数据冗余:系名和系负责人重复4次;学号重复3次;课程名重复4次。更新异常(减轻,但仍存在)修改管理系负责人为李增瑞需涉及4条记录插入异常(减轻,但仍存在)计算机系成立,尚未招生——无法插入(未解决)招生完毕,但学生尚未选修课程——可以插入学生情况表删除异常(减轻,但仍存在)取消选修,不会删除学生信息但删除系中学生,仍会导致学生信息丢失。(未解决)第三范式(3NF)如果R∈2NF,且它的任何一个非主属性都不传递依赖于任何主码,则R是第三范范式,记作R∈3NF。将起传递作用的函数关系中的主属性(决定方)和非主属性取出单独构成一个关系模式,再将它的决定方和关系式中余下的属性,加上主码,构另一个关系模式去掉关系模式中的多余项。对学生情况进行规范化由于只有系负责人传递函数依赖于学号(学号→系名,系名→系负责人)故分解得到系(系名,系负责人)学生表(学号,姓名,系名)系名(8)系负责人(8)管理系李瑞祥学号(6)姓名(8)系名(8)980701章涌管理系980702李文利管理系980703王沐阳管理系980704杨舒管理系异常问题缓解数据冗余降低规范前学生情况总字节数=(6+8+8+8)*4=120B规范后学生表+系的总字节数=(8+8)*1+(6+8+8)*4=104B更新异常不再修改系负责人只与该系的一个元组有关。插入异常不再系成立后可插入系,不需要招生删除异常不再删除管理系的所有学生并不会将管理系的信息一起删除进一步优化将作为外码的字段所占空间减少,即减少重复项的空间占用。例如将系名用系号(2B)表示,课程名用课程号表示(2B)。系号(2)系名(8)系负责人(8)MD管理系李瑞祥学号(6)姓名(8)系号(2)980701章涌MD980702李文利MD980703王沐阳MD980704杨舒MD优化前总字节数=104B优化后总字节数=(2+8+8)*1+(6+8+2)*4=82进一步优化课程表(课程号,课程名)选修(学号,课程号,成绩)优化前总字节数=(6+10+2)*12=216B优化后总字节数=(2+10)*3+(6+2+2)*12=156B学号(6)课程号(2)成绩(2)980701185980701278980701380980702170980702286980702390980703184980703275980703370980704178980704272980704390课程号(2)课程名(10)1市场营销2技术经济3生产管理BCNF设关系模式R<U,F>∈1NF。如果对于R的每个函数依赖X→Y,若Y⊈X,则X必含有候选码,那么R∈BCNF(BoyceCoddNormalForm)。实际上即说,在BCNF中,每一个决定属性集都包含候选码。BCNF为Boyce和Codd两个提出的,比3NF更进一步,通常认为是修正的第三范式,所以有时也称为第三范式。第四范式(4NF)关系模式R<U,F>∈1NF,如果对R的每个非平凡多值依赖X→→Y,(Y⊈X),X都含有候选码,则R∈4NF。规范化过程非规范化的关系消去重复项,将关系模式分解成若干个规范化的关系模式,并指定一个或若干个属性作为主码。消除决定属性集非码的非平凡函数依赖1NF
↓消除非主属性对码的部分函数依赖2NF
↓消除非主属性对码的传递函数依赖3NF
↓消除主属性对码的部分和传递函数依赖BCNF
↓消除非平凡且非函数依赖的多值依赖
4NF
↓消除不是由候选码所蕴含的连接依赖
5NF
面向对象基本概念对象(Object)是一些属性及专用服务的封装,是问题空间中一些东西的抽象。粗略地讲,对象就是E-R模型中的实体。类和实例(ClassandInstance)具有相同结构和相同行为的对象被组合在同一类中,是对象的抽象,对应E-R模型中的实体集。实例是为具体的对象。消息(Message)和方法(Method)消息是实现对象存取或使用的一种方式,是能够激活对象的唯一过程。方法是提供对对象内部属性访问的过程,消息可用于访问其他类的数据。继承(Inheritance)对象继承了它所在类的结构、操作和约束,也指一个类继承另一个类的结构、操作和约束。体现了一种共享机制。类定义classemployee{//定义类雇员
/*Variables变量,属性*/
string name;//名字
string address;//地址
date start-date;//雇用日期
int salary;//工资
/*Messages消息,方法*/
int annual-salary();//年工资
string get-name();//取得姓名
string get-address();//取得地址
int set-address(stringnew-address);//设置新地址
int employment-length();//雇用时间
};ORACLE对象定义CREATETYPEpersonASOBJECT(--定义对象人
nameVARCHAR2(30),--姓名
phoneVARCHAR2(20));--电话CREATETYPElineitemASOBJECT(--定义对象项目
item_nameVARCHAR2(30),--项目名称
quantityNUMBER,--数量
unit_priceNUMBER(12,2));--单价CREATETYPElineitem_tableASTABLEOFlineitem;--定义项目表CREATETYPEpurchase_orderASOBJECT(--定义对象定购合同
idNUMBER,--合同号
contactperson,--合同人
lineitemslineitem_table,--项目
MEMBERFUNCTION--成员函数
get_valueRETURNNUMBER);--取值继承继承的例子实现技术对象关系数据库(ORDBMS)面向对象的数据库系统ORDBMS四个基本特征允许基本类型扩充支持复杂对象的管理,复杂对象指由基本的或用户定义的类型所构成的对象支持结构、数据和函数的继承,包括多重继承对产生式规则的支持A→B,B→C类型扩充与复杂对象CREATETYPEpersonASOBJECT(--定义对象人
nameVARCHAR2(30),--姓名
phoneVARCHAR2(20));--电话CREATETYPEemployeeASOBJECT(--定义雇员
empperson,--雇员基本信息继承
salaryNUMBER(6,2));--雇员独特信息CREATETYPEcustomerASOBJECT(--定义客户
custperson,--客户基本信息继承
accnoCHAR(6));--客户独特信息面向对象的数据库必备的:是指面向对象的数据库民必须满足的特征。它们是复杂对象、对象标识、封装性、类、继承性及迟后绑定重载、可扩充性、计算完备性、持久性、辅存管理、并发性、恢复和即席查询功能。可选的:是为了使系统更加完善可添加的功能。分别是多继承性、类型检查和推理、分布、设计事务处理和版本开放的:是设计人员可以选择的特征。分别是程序设计范例、表示系统、类型系统及单一性。常用开发工具PowerBuilder(PB)DelphiPowerBuilderPB应用由用户可与之交互的窗口和菜单等用户界面组成。包括标准的Windows控件和PB特有的控件。(参考图)PB应用是事件驱动的。用户通过在事件中编写脚本可以控制应用程序的运行。(参考图)PB应用的编程语言是PowerScript,由各种命令,函数和处理响应的语句组成。(参考图)
PowerScript提供了丰富的内部函数,编程人员可以使用它们去控制应用程序中的对象和控件。此外还可以定义自己的函数。面向对象编程。PB的基本组成元素是对象,具有属性、事件和函数(方法)等性质。象菜单、窗口等都是对象,可以封装、继续和多态处理,增加了可重用性和可扩展性。PB支持跨平台开发。用户开发的PB应用能够移植到PB支持的各种平台上。支持团队跨平台开发。PB提供连接各种数据库的接口。(参考图)PB常用工具ApplicationPainter(应用描绘器):用于应用对象WindowsPainter(窗口描绘器):用于生成窗口对象DataWindowPainter(数据窗口描绘器):用于生成数据窗口对象,即定义数据显示格式DatabasePainter(数据库描绘器):用于定义操纵数据库MenuPainter(菜单描绘器):用于生成菜单对象UserObjectPainter(用户对象描绘器):用于生成用户自定义对象LibraryPainter(库管理描绘器):用户管理应用的源程序中的对象的库代码编辑窗口:用于编辑、编译脚本和函数,可以直接引用窗口的安全变量和窗口函数,还可以引用全程变量、结构和函数。调试器:可以在一个应用的任何对象中的任何函数或事件的代码中设置断点,检查变量值,检查调用堆栈,单步执行程序等DelphiDelphi的编程语言是ObjectPascal。数据访问页:在该页上的控件主要用于说明有关的数据库信息,如应用程序要访问的数据库,要访问的数据库表,及表中的字段等。例如:Tdatasource(作为数据库访问控件和数据控制控件的连接),Ttable(表控件),Tquery(查询控件,支持各种SQL语句),TstoreProc(存储过程控件,可访问存储过程),Tdatabase(连接数据库),TbatchMove(支持批量数据复制)。数据控制页:该页的控件主要用于显示浏览数据库中的数据信息,为用户提供一个可视化的界面等。如Tdbgrid(表格数据显示),Treport(报表输出)等。可以通过BDE(BorlandDatabaseEngine)连接数据库Delphi开发环境主窗口主菜单项快速命令栏控件选择板窗体(Delphi的程序由许多个Forms串成一个系统)对象观察器(用来描述控件的属性特征和动作行为,分为属性和事件两部分)程序代码编辑器其他重要工具项目管理器对象浏览器图像编辑器数据库体系SQL视图1视图2基本表1基本表2基本表3基本表4存储文件1存储文件2外模式——视图模式——基本表内模式——文件SQL组成数据查询(dataquery)用于查询数据数据操纵(datamanipulation)用于增、删、改数据数据定义(datadefinition)用于定义、删除和修改数据模式数据控制(datacontrol)用于数据访问权限的控制SQL特点综合统一;非过程化;面向集合的操作;一种语法两种使用方式;简单易学;数据定义基本对象主要包括数据库、表、视图和索引。表tablecreate、drop、alter视图viewcreate、drop索引indexcreate、drop数据库databasecreate、drop数据库的建立与删除建立数据库CREATE
DATABASE<数据库名>[其他参数];CREATEDATABASEnewtest;数据库的删除DROP
DATABASE
<数据库名>;DROP
DATABASE
newtest;SQLServer中的数据库创建CREATEDATABASEdatabase_name
[ON
[<filespec>[,...n]]
[,<filegroup>[,...n]]
]
[LOGON{<filespec>[,...n]}]
[COLLATEcollation_name]
[FORLOAD|FORATTACH]<filespec>::=[PRIMARY]
([NAME=
logical_file_name,]
FILENAME=
'os_file_name'
[,SIZE=
size]
[,MAXSIZE={max_size|UNLIMITED}]
[,FILEGROWTH=
growth_increment])[,...n]<filegroup>::=FILEGROUPfilegroup_name<filespec>[,...n]基本表定义格式:CREATETABLE<表名>(<列名><数据类型>[列级约束][,<列名><数据类型>[列级约束]……][,<表级约束>]);注:在上面的格式规定中可以看出,一外表名后的括号中可以跟若干个列的定义,列与列之间用逗号分隔,(方括号表示可选项,尖括号表示必选项,圆括号为实际应用的括号)。另外,SQL语言通常以分号结尾(在少数SQL语言的实际使用环境中,不以分号结尾)。简单示例例:CREATETABLEStudent(SnoCHAR(5)NOTNULLUNIQUE,SnameCHAR(20),SsexCHAR(1),SageINT,SdeptCHAR(15));定义及约束条件存于数据字典中示例CreateTABLESC(SNO char(7) notnull,CNO char(4) notnull,G smallint notnulldefault0,Primarykey(SNO,CNO),Foreignkeystudent_no(SNO) ReferencesSondeleteCASCADEonupdateSETNULL,Foreignkeycourse_no(CNO) ReferencesCondeleteSETNULLonupdateRESTRICT,Unique(SNO,CNO),Check(G>=0andG<=100));删除基本表格式:DROPTABLE<表名>;例:删除表Student。DROPTABLEStudent;基本表定义一旦被删除,表中的数据及在此表上建立的索引都将自动被删除,但与其相关的视图仍然保留,却已无法引用。修改基本表格式:ALTERTABLE<表名>[ADD<新列名><数据类型>[完整性约束]][DROP<完整性约束名>][MODIFY<列名><数据类型>];修改基表包括下列几种方式:修改方式使用的关键字增加新列ADD增加新的完整性约束条件修改原有的列定义MODIFY删除已有的列定义DROP其它(如改变约束的使、能状态)enable、disable修改示例例:在学生表(Student)中增加新列Scome,表示入学时间。ALTERTABLEStudentADDScomeDATE;注:新增列为空值(允许空值),而不能为非空(列约束为NOTNULL),否则可能破坏已有的数据。在有些实际的数据库系统中,允许在数据库表中为空(没有数据)的情形下,新增非空列。例:改变列Sage的数据类型定义。ALTERTABLEStudentMODIFYSageSMALLINT;注:改变列的数据类型定义,一般只允许扩展原有的数据类型长度;而对于减小数据类型长度或改变数据类型(如INT改为DATE)则会有限制。一般地,只有在表中列值为空时允许这类修改。示例例:删除列Sno的约束。ALTERTABLEStudentDROPUNIQUE(Sno);如果要删除属性(列),一般需要几个步骤:将保留部分及其内容复制到一个新表(可以使用create……asselect……这样的句式完成)。删除原表。将复制的表重新命名。关于视图视图的主要作用是减少冗余和简化查询。基表只存放基本数据,由基本数据经过各种计算派生出的数据一般是不存储的。在已有字段上的视图定义当然也不含这些派生数据。视图中的数据不实际存储。根据基表中的列派生出的属性列不实际存在,故称属性列。定义视图格式:CREATEVIEW<视图名>[(<列名1>[,<列名2>]……)]AS<子查询>[WITHCHECKOPTION];子查询可以是任意复杂的SELECT语句,但通常不允许含有ORDERBY子句和DISTINCT短语。WITH子句表示对视图进行UPDATE、INSERT和DELETE操作时保证更新、插入和删除的行满足视图定义的谓词条件(即子查询的条件表达式)。视图的列名可以省略,但以下情况需要明确组成视图的所有列名(或全部省略,或全部指定):其中某个目标列不是单纯的属性名,而是集函数或列表达式。多表连接时选出了几个同名列作为视图的字段。需要在视图中为某个列启用新的更合适的名字。删除视图格式:DROPVIEW<视图名>;视图所基的表如果被删除,视图将失效,基于该视图的其它视图也失效。但视图的定义在未执行DROPVIEW语句前始终存在于数据字典建立索引索引的作用在于加快表的检索(查询)速度。系统在存取数据时会自动选择合适的索引作为存取路径,用户不必也不能选择索引。索引对于用户而言只是作为优化SQL语句的参考(如,如何充分利用现有的索引)。至于系统以何种方式建立索引,要引用哪些索引,如何引用都无须关心。格式:CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序>]]……);其中次序有两种,即升序(ASC,缺省值)和DESC(降序)。UNIQUE表示索引值唯一,在此索引的约束下,元组的索引项不能有相同的值。CLUSTER表示要建立的索引是聚簇索引。示例例:为表Student中的列Sno建立唯一索引。CREATEUNIQUEINDEXStusnoONStudent(Sno);例:为表Course中的列Cno建立唯一索引。CREATEUNIQUEINDEXCoucnoONCourse(Cno);例:为表SC中的列Sno和Cno建立唯一索引,且Sno升序,Cno降序。CREATEUNIQUEINDEXSCnoONSC(SnoASC,CnoDESC);删除索引一旦建立索引,数据库系统将负责使用、维护,用户不需要干预。使用索引能够减少查询的操作时间,但在数据增、删、改时,系统会花费时间、空间来维护相关索引表中的索引项,又会增加开销,所以索引并不是建得越多越好。有时需要对索引进行调整,如删除索引。格式:DROPINDEX<索引名>;例:删除索引Stusname。DROPINDEXStusname;删除指定的索引后,系统会删除索引内容,并将索引的定义(描述)也从数据字典中删除。查询格式格式:SELECT[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]……FROM<表名或视图名>[,<表名或视图名>]……[WHERE<条件表达式>][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2>[ASC|DESC]];注:“|”表示选择项,其中排在前面的ALL和ASC为缺省选择项。目标列表达式可以是列名,也可以是算术表达式、字符串常量、函数等。列名1和列名2都可以出现多个列名示例用表及其关系SnoSnameSsexSageSdept95001张三男20CS96010李思思女19IS95041王五男17CS97101郑路路女18MA96104任西女20MA96023丁八男19ISCnoCnameCpnoCcredit1数据库542数学
23信息系统144操作系统35数据结构246C语言54StudentCourseSnoCnoGrade950011919500128395001386950412789504138295041692960104819610446996023494SCStudentCourseSCmn无条件查询SELECTSname,2004-SageFROMStudent;Sage原来表示年龄,如果当前年份为2004年,表达式2004-Sage表示出生年份。SELECTSname,’YearofBirth:’,2004-Sage,ISLOWER(Sdept)FROMStudent;这例中使用了字符串常量和函数,字符串常量用于改变列的显示标题,函数则作用于每一检索到的元组。Sname2004-Sage张三1984李思思1985王五1987郑路路1986任西1984丁八1985Sname‘YearofBirth:’2004-SageISLOWER(Sdept)张三YearofBirth:1984cs李思思YearofBirth:1985is王五YearofBirth:1987cs郑路路YearofBirth:1986ma任西YearofBirth:1984ma丁八YearofBirth:1985is查询满足条件的元组查询条件用条件表达式表示,使用了下面的运算符:比较运算符=,>,<,>=,<=,!=,<>,!>,!<,NOT+比较符确定范围BETWEEN……AND……,NOTBETWEEN……AND……确定集合IN,NOTIN字符匹配LIKE,NOTLIKE空值判断ISNULL,ISNOTNULL逻辑运算符AND,OR,NOT条件查询SELECTSnameFROMStudentWHERESdept=’CS’;SELECTSname,Sdept,SageFROMStudentWHERESageBETWEEN20AND23;SELECTSname,SsexFROMStudentWHERESdeptIN(‘IS’,’MA’,’CS’);例:找出95级学生的信息。SELECT*FROMStudentWHERESnoLIKE‘95%’;其中学号的前两位表示该学生的所在级号。SnoSnameSsexSageSdept95001张三男20CS95041王五男17CSSnameSsex张三男李思思女王五男郑路路女任西女丁八男SnameSdeptSage张三CS20任西MA20Sname张三王五排序查询在排序时可以指定多个列,系统将按照指定列的顺序来依次列示结果。例:显示所有学生的信息,按系排序(不指定升序或降序,通常使用缺省值,一般升序为SQL语言中的缺省值),同系中按年龄从大到小排列(降序)。SELECT*FROMStudentORDERBYSdept,SageDESC;有时也可以使用列的序号来指定排序的列,这在列为常量、函数等较长列名时尤其有效。SELECT*FROMStudentORDERBY5,4DESC;这里的“5”即指列Sdept,“4”即指Sage。Sno、SnameSsexSageSdept95001张三男20CS95041王五男17CS96010李思思女19IS96023丁八男19IS96104任西女20MA97101郑路路女18MASno、SnameSsexSageSdept95001张三男20CS96010李思思女19IS95041王五男17CS97101郑路路女18MA96104任西女20MA96023丁八男19IS嵌套查询例:查询其它系中比IS系某一学生年龄小的学生名单。SELECTSname,SageFROMStudentWHERESage<ANY(SELECTSageFROMStudentWHERESdept=’IS’)ANDSdept<>’IS’ORDERBYSageDESC;例:查询所有选修了1号课程和学生姓名。SELECTSnameFROMStudentWHEREEXISTS(SELECT*FROMSCWHERESno=Student.SnoANDCno=‘1’);计算查询又称集合函数、组函数、分组函数、聚集函数等,通过与分组短语一起使用。作用于元组集。COUNT([DISTINCT|ALL]*)统计元组个数COUNT([DISTINCT|ALL]<列名>)统计一列中值的个数SUM([DISTINCT|ALL]<列名>)计算一列值的总和(列须是数值型)AVG([DISTINCT|ALL]<列名>)计算一列值的平均值(列须是数值型)MAX([DISTINCT|ALL]<列名>)计算一列值的最大值MIN([DISTINCT|ALL]<列名>)计算一列值的最小值示例例:求总的学生数。SELECTCOUNT(*)FROMStudent;例:求选修了课程的学生数。SELECTCOUNT(DISTINCTSno)FROMSC;例:求课程4的平均成绩。SELECTAVG(Grade)FROMSCWHERECno=’4’;例:求课程4的最高分数。SELECTMAX(Grade)FROMSCWHERECno=’4’;COUNT(*)6COUNT(DISTINCTSno)5AVG(Grade)81.333333333MAX(Grade)94与分组结合将查询结果表的各行按一列或多列取值相等的原则进行分组。目的是细化集合函数的作用对象。如果不分组,集合函数的作用对象就是整个结果;如果分组,集合函数的作用对象就是每一组。例:找出每门的选修人数。SELECTCno,COUNT(Sno)FROMSCGROUPBYCno;例:查询选修人数超过2人(不含2人)的课程号。SELECTCnoFROMSCGROUPBYSnoHAVINGCOUNT(*)>2;其中HAVING子句用于对分组结果进行筛选。CnoCOUNT(Sno)1122326143Cno4数据操作插入数据——INSERT修改数据——UPDATE删除数据——DELETE插入数据插入单个元组格式:INSERTINTO<表名>[(<属性列1>[,<属性列2>]……)]VALUES(<常量1>[,<常量2>]……);插入多个元组(子查询结果)格式:INSERTINTO<表名>[(<属性列1>[,<属性列2>]……)]<子查询>;例:对每一个系,求学生的平均年龄,并把结果存入数据库。INSERTINTODeptage(Sdept,Avgage)SELECTSdept,AVG(Sage)FROMStudentGROUPBYSdept;修改数据格式:UPDATE<表名>SET<列名>=<表达式>[,<列名>=<表达式>]……[WHERE<条件>];根据条件的指定可以
修改一个元组的值,也可以
修改多个元组的值,此外也可以使用
带子查询的修改语句。例:将计算机科学系的学生的成绩置零。UPDATESCSETGrade=0WHERE‘CS’=(SELECTSdeptFROMStudentWHEREStudent.Sno=SC.Sno);一致性问题UPDATE语句一次只能操作一个表。这会带来数据库的一致性问题。例如,学号为95007的学生因病休学一年,复学后需要将其学号改为96089,由于Student表和SC表都有关于95007的信息,因此两个表都需要修改,而这种修改只能通过两条UPDATE语句进行。在执行了一句修改后(例如对Student中相应的记录做了修改),数据库中的数据处于不一致状态,数据的参照完整性受到破坏(此时原来95007选修的课程还没有归于96089)。只有两条修改语句都执行了,数据库才会再
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 打造家庭健身新风尚
- 2024石材工程设计与施工监理一体化合同3篇
- 2025年度特色果树培育委托育苗合同3篇
- 二零二五年度遗产继承债务豁免协议-合理解决债务问题3篇
- 基于学生兴趣的美术课程设计与实施策略
- 二零二五年度水电资源开发利用合同3篇
- 2025年度艺术品认购协议书范本参考3篇
- 二零二五年度石材供应与建筑施工项目安全生产合同3篇
- 二零二五年度安全生产文明施工安全事故处理协议范本3篇
- 二零二五年度环保产业投资合伙协议范本3篇
- 中国邮票JT目录
- 脑疝观察及护理
- 【学易金卷】2023-2024学年四年级数学上册期末全真模拟提高卷(三)(答题卡)(北师大版)
- 部编 2024版历史七年级上册期末(全册)复习卷(后附答案及解析)
- 四川省成都市2024年初中学业水平考试生物学试卷
- 山东省济南市历城区历城第二中学2025届高一数学第一学期期末监测模拟试题含解析
- 供应链安全培训教材课件
- 《篮球移动技术 行进间传球》教案(共三篇)
- 第三章第四节:“三新”背景下沉淀转化实验的一体化微型装置及其拓展应用 教学设计 2024-2025学年高二上学期化学人教版(2019)选择性必修1
- 人教版高中生物必修1-第1、2章测评(B)
- 电梯安全隐患排除报告范文
评论
0/150
提交评论