计算机信息管理基础_第1页
计算机信息管理基础_第2页
计算机信息管理基础_第3页
计算机信息管理基础_第4页
计算机信息管理基础_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

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

文档简介

计算机信息管理基础计算机信息管理基础计算机信息管理基础清华大学计算机与信息管理中心计算机信息管理基础教学内容应用:介绍开发应用系统的过程和方法Delphi:可视化的,面向对象的开发工具数据库技术:讨论表示、存贮数据,高效地获取数据的方法,牵涉DB〔DataBase〕体系结构、数据模型、关系代数、DB设计理论、DB安全性、完整性,并发控制等知识点〔未经许可请勿转载〕网络技术:简介计算机网络的构成及通讯协议课程要求了解计算机信息系统的基本概念及其应用,掌握开发计算机信息系统牵涉的基础知识,开发过程和开发方法〔未经许可请勿转载〕参考书1.计算机信息管理基础清华大学计算中心编著〔教学资料〕2.数据库技术与应用龙守谌编著〔科学出版社〕3.数据库系统概论〔第2版〕萨师煊、王珊编著〔高等教育出版社〕4.Oracle数据库系统基础俞盘祥编著清华大学出版社5.Delphi:程序设计黄建华、罗庆祖、江政杰编著〔清华大学出版社〕清华大学计算机与信息管理中心第一章信息系统的概念及其应用1.1基本概念数据和信息数据〔Data〕:为客观实体的属性值,它表示原始的,没有加工过的数据。如数字、字符串、语言、声音、图形等。〔未经许可请勿转载〕信息:通过加工和处理以后的数据。信息有如下特点:·有一定的含义·具有可用性〔强调经过加工〕,与目的有关·可传递、可存贮、可共享·时间性信息和数据的关系,如下图:信信息处理(器)数据存储原始数据,用实体〔Entity〕、属性〔Property〕、属性值〔Value〕表示。通过分析、汇总获得信息〔未经许可请勿转载〕信息可以从多种角度分类,按应用领域可分为经济信息、社会信息、科技信息、军事信息、外交信息等。按形式分类,可分成数据信息、图像信息、声音信息等。〔未经许可请勿转载〕信息管理信息管理是一种管理行为,从数据角度,信息管理是指对数据本身的各种管理活动。其中有数据结构的管理,对数据的维护、数据的安全、保密管理、数据处理等。这种管理是技术上的措施,是多用户共享使用数据环境下不可缺少的功能。〔未经许可请勿转载〕在企业管理过程中,为了达到某种特定目标,在大量的信息中选择有用的信息,进行有效的收集、分类、整理、分析和传递等一系列的信息处理的过程也称为信息管理。〔未经许可请勿转载〕例如:一个企业,它的经营目标是T,Q,C,S。围绕这一目标,我们把整个生产经营活动归为以下3类:〔未经许可请勿转载〕供销产供销产生产活动:围绕物料流进行管理活动:围绕生产活动进行。它对生产活动进行指挥、监控、协调、控制,并从生产活动中收集信息进行分类、汇总,作为领导决策的依据。〔未经许可请勿转载〕信息管理是各种信息系统应具备的主要功能。信息系统的主要形式:人机系统以计算机为主要支持工具,通过人和机器一系列的交互活动,获取知识,获取信息。1.2信息系统的应用及其发展电子数据处理阶段1946年第一台计算机诞生以来,计算机主要做统计,计算。事务处理系统阶段计算机逐步应用于企业的部分业务管理,生成财务报告,简单的订票系统,管理活动以人工为主。〔60年代末〕〔未经许可请勿转载〕管理信息系统阶段MIS〔ManagementInformationsystem70年代中期〕MIS系统是以一个部门的管理为背景,以基层事务处理系统为基础,以完成该部门的总体任务为目标,强调企业中各局部系统之间信息相互联系的综合系统。〔未经许可请勿转载〕MIS系统对企业的影响a.提高了科学管理水平b.增强了企业组织的活力c.提高了管理人员的素质和管理水平d.提高了企业对环境的适应能力e.提高了企业的经济效益和社会效益办公信息系统阶段计算机集成制造系统〔CIMS〕阶段清华大学计算机与信息管理中心第二章计算机网络基础2.1计算机网络的基本组成所谓计算机网络就是利用通讯设备和线路将地理位置不同的,功能独立的多个计算机系统互连起来,以功能完善的网络软件〔即网络通讯协议,信息交换方式及网络操作系统等〕实现网络中资源共享和信息传递的系统。〔未经许可请勿转载〕组成网络的基本软硬件部件:网卡和媒体网络工作站网络服务器网间连接器网络系统软件2.2数据通信系统数据传输技术传送数据可以按一次一位或一次多位的方式进行,这就是所谓的串行传送与并行传送。从硬件的角度,不同的传送方式有不同的I/O接口电路,并行数据传送由并行数据端口进行,它把一个字节/字的宽度同时进行输入/输出;而串行数据传送由串行数据端口进行,它把一个字节/字变成按位方式进行输入/输出。〔未经许可请勿转载〕数据交换技术最简单的形式是在两个用某种类型的传输介质直接连接的设备之间进行数据通信。但是直接连接两个设备常常是不现实的。通常是通过有中间结点的网络来把数据从源地发送到目的地实现通讯。这些中间结点并不关心数据内容,只起一个交换设备的作用把数据从一个结点传送到另一个结点。〔未经许可请勿转载〕通常将希望通信的设备称为站,而将提供通信的设备称为结点。常用的交换技术有:a.线路交换使用线路交换的方式,就是通过网络中的结点在两个站之间建立一条专用的通信线路。最普通的线路交换例子是电话系统。〔未经许可请勿转载〕建立线路:在传送任何数据之前,必须建立站到站的线路。传送数据拆除线路b.存储交换在存贮交换中,不需要在两个站之间建立一条专用通路。如果一个站想要发送一个报文〔信息的一个逻辑单位〕,它把一个目的地址附加在报文上,然后把报文从结点到结点地通过网络。在每个结点暂存整个报文,然后转发到下一个结点。〔未经许可请勿转载〕c.分组交换试图结合线路交换和存储交换的优点,而使两者缺点最少。分组交换很象报文交换。形式上的主要差别在于,在分组交换网络中,要限制所传输的数据单位的长度,也就是说,将数据报文分割成若干长度较短的分组进行传输,每个分组除数据信息外,还包含地址标识,分组编号,检验信息等。〔未经许可请勿转载〕报文在发送端进行分割,其中每个分组可经过不同的路由传输。途中经过每个结点的时候,先存储后转发,并检查,有错误时重发,回送应答信息。当接收端正确收到全部分组后,再按分组编号重新装成数据报文。〔未经许可请勿转载〕2.3计算机网络的体系结构计算机网络体系结构是指通过系统的整体设计,为网络硬件,软件、协议,存取控制和拓扑提供标准。网络体系结构广泛采用的是国际标准化组织〔ISO〕在1979年提出的开放系统互连〔OSI〕的参考模型。该模型用七个功能层次描述网络的结构:〔未经许可请勿转载〕层次功能应用层提供各种网络服务,如文件传输,虚拟终端,电子邮件等表示层数据表示和字符编码转换会话层对话管理,包括通讯的建立和拆除传输层端到端的数据发送网络层确定分组从源端到目的端的路径选择数据链路层任务是把物理层传输比特的功能加强,使之为网络层显现一条无措线路物理层牵涉原始数据在通讯道上的传输OSI参考模型层次和功能从网络互连的角度来看,网络体系结构的关键要素是协议和拓扑。协议协议是规则的集合,它规定了网络的不同部分是如何交互的,从而保证了网络上的设备彼此之间能够通讯。〔未经许可请勿转载〕低层协议。通常在OSI模型的物理层和数据链路层操作,低层协议规定网络基本的物理和逻辑特征。高层协议。通常在OSI模型的网络层以上层操作,高层协议规定网络内部更复杂的逻辑结构,拓扑拓扑是网络上的设备之间的连接形式。基本的局域网拓扑类型包括:·总线拓扑,所有设备连接到干线电缆构成网络的总线,或中枢〔backbone〕·星型拓扑,所有设备连接到一个中心点,此中心点称做网络的集线器〔hub〕。·环型拓扑,所有设备彼此串行连接,就像连成链一样,构成了一个回路或称做环〔ring〕。·混合拓扑:以上拓扑的混合结构。2.4局域网的基本组成网卡和媒体网卡和媒体影响所组成网络的传输率,拓扑结构、地理范围、传输效率,输可靠性等。网络工作站网络工作站为联网用户所使用的计算机。在这类微机工作站上可配置DOS、OS/2、Windows等操作系统和网络软件。〔未经许可请勿转载〕网络服务器局域网中服务器配置有两种:文件服务器和通讯服务器。文件服务器在局域网上可选用高档微机作为文件服务器。在文件服务器上可配置大容量的硬盘,优质打印机,为网上用户提供服务。〔未经许可请勿转载〕服务器上配置相应的软件,可与远程主机等设备通讯。网间连接器网络的互连有四种可能型式·LAN-LAN·LAN-WAN·WAN-WAN·LAN-WAN-LAN网间互连的设备主要有:中继器〔一层〕中继器是最低层次的设备,它只起放大信号的作用。在规划网络时,若网络段已超过最大长度,则要用中继器来延伸。〔未经许可请勿转载〕网桥〔二层〕桥是一种存储转发设备,用来连接两个同类的网络。所谓同类网络是指操作系统是一致的。在桥接的网络中若由文件服务器兼做网桥称内桥。若专门用一台微机作为两个网络互连的设备称外桥。〔未经许可请勿转载〕路由器〔三层〕当两个以上同类网络互连时,必须选用路由器。路由器除了具有网桥的全部功能外,还提供路经选择功能。路由器有两种类型:内部路由器和外部部由器。内部路由器由文件服务器实现,也可以在网络中单独用一台PC机作为外部路由器。〔未经许可请勿转载〕网关〔Gateway〕网间连接器网关运行在OSI模型的高层,能支持从传送层到应用层的协议。它可执行协议的转换,使不同协议的局域网通信。当异类局域网〔异种网络操作系统〕,局域网与主机,局部网与广域网互连时,在局域网上必须配置网关。〔未经许可请勿转载〕2.5SQL*Net简介网络的出现,使计算机的使用方式发生了根本的变化,大大提高了资源的利用率。网络技术的发展也使得数据库系统从集中式数据库发展成为分布式数据库系统,使得分布式数据库中的用户可以象存取本地数据库一样存取远程数据库。〔未经许可请勿转载〕SQL*Net是Oracle公司为分布式Oracle数据库管理系统开发的一个通讯软件模块〔选件〕,该选件与各种操作系统所支持的通信协议一起为Oracle关系数据库管理系统〔RDBMS〕提供分布式的处理环境。分布处理是指不同网络结点上的多个程序通过网络传送信息来协调它们的工作。〔未经许可请勿转载〕SQL*Net支持的通讯模式有:客户/服务器〔Client/Server〕通讯模式服务器/服务器〔Server/Server〕浏览器/应用服务器/DB服务器〔Browse/AppServer/DBServer〕通讯模式〔未经许可请勿转载〕SQL*Net提供以下功能:a.网络上任何地方的用户,通过SQL*Net可以向网内任一结点上的Oracle数据库注册并使用远程的数据库。〔未经许可请勿转载〕b.通过SQL*Net,利用Oracle数据库的分布处理能力,用户可以同时存取网内多个数据库中的数据。Oracle分布式数据库系统支持用户在一条SQL语句中查询、修改多个结点中的数据。〔未经许可请勿转载〕c.SQL*Net独立于它所支持的网络协议,无论什么协议,SQL*Net提供相同的功能。d.SQL*Net为分布式Oracle数据库系统中的用户提供了物理位置透明性。SQL*Net提供的数据访问方式有:本地访问远程访问分布式的访问第三章数据库技术数据库方法数据库技术是管理数据的一种最新方法,它研究如何组织数据,存储数据,如何能够高效地获取和处理数据的方法。〔未经许可请勿转载〕信息系统的三个世界3.1数据库技术的发展及概述阶段1:ﻩ人工管理阶段〔50年代中期〕ﻩﻩﻩ没有统一的数据管理软件阶段2:ﻩ文件系统阶段〔50-60年代中〕ﻩ ﻩ有统一的软件处理数据〔如,COBOL语言〕ﻩﻩﻩ数据可以组织成:顺序、索引、直接文件形式 处理特点:程序+数据阶段3:ﻩ数据库阶段〔60年代末至今〕有统一的数据管理软件,管理数据数据具有独立性强调面向企业面向系统组织数据3.2数据库的体系结构3.2.1三级模式的结构DB的体系结构分成三级:内模式又称存储模式,是数据在数据库系统的内部表示,即为数据的物理结构和存储方式的描述。外模式又称用户模式,表示用户能看到的数据。概念模式又称逻辑模式,是DB中全体数据的逻辑结构和特征的描述。DBMS在这三级结构之间提供了两层映象:外模式/模式映象、模式/内模式映象3.2.2数据库系统一个数据库系统是一个实际可运行的,按照一定的数据模型存贮,维护并向应用系统提供数据或信息支持的系统。它由以下部分组成:〔未经许可请勿转载〕数据库〔Database,DB〕数据库管理系统〔DatabaseManagementSystem,DBMS〕DBMS的主要功能:a.数据库定义:包括全局逻辑结构〔Schema〕的定义。局部逻辑结构〔subschema〕的定义,安全保密等的定义。〔未经许可请勿转载〕b.数据库管理:数据存取、完整性、安全性、并先控制等。c.数据库的建立和维护、建库、库的迁移,再组织,数据的后备和恢复、性能监控等。应用系统开发工具〔程序设计软件〕数据库管理员〔DatabaseAdministrator,DBA〕3.2.3分布式数据管理系统局部概念层局部概念层局部内部层视图视图视图全局概念模式全局外部层全局概念层分片模式分配模式局部概念模式局部概念模式局部概念模式局部内模式局部内模式局部内模式通讯模式:clien/serverserver/serverclient/Appserver/DBserver〔未经许可请勿转载〕3.3数据模型在DB技术中我们使用模型的概念描述数据库的结构和语义。即描述现实世界中对象集及对象集之间关系的模型称作数据模型。〔未经许可请勿转载〕目前广泛使用的数据模型分为两种类型:概念数据模型:描述信息世界中数据及数据之间关系的模型,它独立之于计算机。结构数据模型:描述计算机世界中,数据及数据之间表示、存贮、处理特征的模型,它依赖于具体的计算机。〔未经许可请勿转载〕3.3.1实体一联系方法〔Entity-RelationshipApproach〕也叫E-R方法。〔未经许可请勿转载〕实体:实体表示一个现实和抽象事物的集合,这些事物必须具有相同的属性和特征。实体用长方形表示,框内写上实体名,如部门用DEPT表示。联系:表示实体和实体之间的关系或联系实体之间的联系用菱形表示,在菱形边框内写上联系名。两个实体之间联系的基数〔类型〕可以是1:1,1:n,m:n,可写在连线旁,例如,实体之间的联系为:〔未经许可请勿转载〕DEPTDEPTEMPD-E1nPROJEMPPR-Emn属性,用于描述实体的性质和特征,用椭圆形表示。例如:DEPTD-EDMGRDNAMEDEPTNOEMPNOEMPJOBSALENAMESEXDEPTD-EDMGRDNAMEDEPTNOEMPNOEMPJOBSALENAMESEX实体实例:实体中的一个元素就是这个实体的实例。例如:计算机系、电子系、职工张三、李四等属性值,为一个属性的取值,例如,ENAME的取值,王明,张丽等。3.3.2结构数据模型也称数据模型结构数据模型直接面向数据库中数据的逻辑结构。它一方面把信息世界的信息在机器世界中以数据形式存储,同时,描述了数据世界中存储的数据集上的操作。因此一个数据模型由三个部分组成:〔未经许可请勿转载〕对象类型的集合:操作符的集合和完整性规则的集合。对象类型的集合:描述全部数据的逻辑结构。操作符集合:表示数据结构支持的操作。完整性规则集合:描述数据及其联系所指定的制约或依存规则。目前,实际的数据库系统支持的数据模型有:层次模型、网状模型、关系模型和OO模型。层次模型:层次模型是用树结构表示实体及其实体之间的联系。它的主要特征是一棵有向树。树的结点是记录类型。根结点只有一个,根结点以外的结点有且只有一个父结点。〔未经许可请勿转载〕R1R3R1R3R2R5R4系主任系分系名姓名职称班名教师号班号年龄性别学生姓名图中R1是根,R2,R3是R1的子女,R2,R3为兄弟,R2,R4,R5称为叶子。IMS〔InformationManagementSYStem〕是IBM公司研制的最早的大型数据库系统,也是层次模型的典型代表。〔未经许可请勿转载〕网状模型用网络结构表示实体以其实体之间联系的数据模型称为网状模型。网状模型满足以下条件:a.有一个以上结点无双亲b.至少有一个结点有多于一个双亲R1R4R1R4R2R5R6班级课程学生学生-选择网状模型数据库的代表是DBTG系统。DBTG〔DataBaseTaskGroup数据库任务组〕是美国CODASYL〔conferenceOnDataSystemLanguage数据系统语言协商会〕下属的一个组织,主要研究数据库语言。1969年DBTG小组提出了一份报告,即有名的“DBTG报告〞。1971年报告被正式通过。〔未经许可请勿转载〕关系模型用表格结构表示实体以及实体间联系的数据模型叫关系模型。关系模型是由若干“关系〞〔Relational〕组成的集合。〔未经许可请勿转载〕在网状和层次模型中用指针的链接表示实体之间的联系,例如:D3,Automation,ZhangD3,Automation,ZhangD2,Radio,L1D1,Computer,WangE1,Li,clerk,500E2,Wang,manager,900E3,Liu,worker,450E5E6E7DEPTD-EEMP而在关系模型中,通过子女关系继承父亲关系的主码表示关系或表格之间的联系。例如:DEPT关系:EMP关系DNODNAMEDIRECTOREMPNOENAMEJOBSALDEPTNOD1ComputerWangE1L1clerk500D1D2RadioLiE2wangmanager900D1D3AutomationZhangE3liuworker450D1E5gaoanalyst850D2“关系〞本身牵涉存储结构、访问技术等细节,与网状、层次模型比起来实现较复杂,效率也低。但提供给用户的界面较简单,容易为初学者接受。〔未经许可请勿转载〕面向对象模型〔Object-Orientedmodel〕面向对象模型中最基本的概念是对象〔Object〕和类〔Class〕。对象的概念与记录元组的概念相似,但远比它们复杂。每个对象都有一个唯一的标识符,而且把一个状态〔State〕和一个行为封装在一起。对象的状态是该对象属性值的集合,对象的行为是在对象状态上操作的方法〔程序代码〕的集合。〔未经许可请勿转载〕类的概念类拟于表格或记录型,它把共享同一属性集合和方法集合的所有对象组合在一起,命名为类。面向对象模型特点:a.语义强b.支持复杂的数据类型〔向量、矩阵、有序集等〕c.有封装性、继承性。d.具有版本管理功能e.支持长事务等ClassClassDEPTEMPPROJClassClassDEPTEMPPROJClass所有的属性和方法。类与类之间的关系,用指针定实现查询:导航查询信息世界、机器世界术语的对应关系如下:信息模型〔信息世界〕ﻩﻩ数据模型〔机器世界〕E-R方法〔model〕 网状模型 ﻩﻩ关系模型实体ﻩ ﻩ记录型 ﻩ关系〔表〕实体实例ﻩ ﻩﻩ记录〔值〕 ﻩ 元组〔行〕属性 ﻩ ﻩ 数据项ﻩ 属性〔域〕属性值ﻩ ﻩﻩ 数据项值 ﻩ 元组分量〔列值〕清华大学计算机与信息管理中心3.3.3数据库设计概念设计1〕定义实体实体由基本实例综合而成,这些实体实例具有相同的特征和类型。实体的每一个实例是实体的一个成员,每个成员具有同一类型的标识信息。〔未经许可请勿转载〕例如:实体实例丁一王敏张华实体:雇员姓名:雇员号:年龄:职务:为了帮助建模人员区分实体和非实体,对于每一个候选实体建模人员可提出以下问题:·它能被描述吗〔它有性质吗?〕·有n个这类的实例吗?·一个实例可被区分或标识吗?·它属于描述某物吗?〔回答“是〞则隐含是一个属性而不是实体〕2〕定义联系一个“联系〞可以被简单地定义为两个实体之间的一种关联或连接。为了建立两个实体之间的关联,实体间的联系应该从两个方向检验。〔未经许可请勿转载〕例如,考虑实体“班级〞〔CLASS〕和“学生〞〔STUDENT〕之间的联系。一个班级可以有多名学生,从另一个方面分析一名学生只能在一个班中。〔未经许可请勿转载〕确定了两个实体之间联系的基数后,要给联系命名。3〕定义属性属性表示一个同类型的属性值的集合。属性从属于实体,它用来描述实体的特征和性质。一个属性只有一个所有者,一个所有者叫实体。〔未经许可请勿转载〕概念设计实例:为选课系统设计E-R模型。已经知道:一个班级可以有多名学生,一名学生只能属于一个班级;一个班级可以有多门必修课程,一门课程可能是多个班级的必修课;一名学生可选修多门课程,一门课程可以被多名学生选修;一门课程可以有多个上课时间,一个上课时间内可能有多门课程上课,根据以上管理规范,构造E-R模型。〔未经许可请勿转载〕逻辑设计任务:把概念模型〔E-R模型〕转换成具体的DBMS能处理的模型〔模式〕。程序设计指南程序设计指南约束,安全性等使用要求概念模型逻辑设计DBMS特性(支持模型)物理设计指南DBMS可处理模型E-R模型转换成关系模型的转换规则:1:N联系:AABAABB属性:实体属性就是关系的属性子女关系:实体名转换成关系名属性:子女实体属性加双亲的主码属性EECCE双亲实体:同上联系:转换成一个关系属性:联系的属性加各双亲的主码属性数据库设计习题:〔1〕根据我校情况为教务管理设计概念模型,并用E-R图表示。在教务管理中牵涉教师信息、学生信息、课程信息、以及学生选课成绩。希望可方便地获取某教师讲授的课程及听课学生的情况,可获取某学生所选修的课程。〔未经许可请勿转载〕〔2〕为商店销售管理设计概念模型,并用E-R图表示。要求包含以下信息:销售人员的情况、商品库存情况、销售记录、和顾客信息。〔未经许可请勿转载〕〔3〕为医院住院部管理设计概念模型,并用E-R图表示。要求包含以下信息:大夫信息、病人信息、病房信息、科的信息和病人治疗信息等。每个大夫只属于一个科,一个科管理多个病房,在一个病房中可有多张床位,病人在住院时,只有一个主治大夫负责医治。〔未经许可请勿转载〕〔4〕为学校管理信息设计概念模型,要求包括以下信息:系、教研组、教师、班级、学生、课程、及课程开设记录。在清华大学,课程的开设是由教研组负责,每个教师只属于一个教研组,班级由系统一管理。〔未经许可请勿转载〕3.4关系数据库语言SQL〔StructureQueryLanguage〕70年代初,E.F.CODD首先提出关系数据模型。70年代中期,IBM公司在研制SYSTEMR关系数据库管理系统中研制了SQL语言,最早的SQL语言叫〔SEQUEL〕。在1979年Oracle公司推出了商用SQL。1986年10月美国国家标准化研究所〔ANSI〕采用SQL作为关系数据库管理系统的标准语言,后为国际标准化组织〔ISO〕采纳为国际标准。目前市场上的一些大型的关系数据库系统几乎都支持SQL的某形式。例如:Oracle,UDB,SQLServer,Sybase,InformaxIngress等关系数据库系统的产品。〔未经许可请勿转载〕SQL语言的优点:〔1〕非过程化语言SQL是一种非过程化语言,它一次处理的是一个记录集合,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作。SQL不要求用户指定对数据的存取方法,SQL语句使用查询优化器,由系统决定对指定数据存取的最快速手段。当关系的设计者在关系表上定义了索引,系统会自动地利用索引进行快速检索,用户不需知道表上是否有索引,表有什么类型的索引等细节。〔未经许可请勿转载〕〔2〕统一语言SQL可用于所有用户的数据库活动类型,包括数据库系统管理员,程序员等操作简单,使用方便。〔3〕关系数据库的公共语言用户可将使用SQL的技能从一个RDBMS很容易地转到另一个系统,所有用SQL语言写的程序具有可移植性。〔未经许可请勿转载〕本课内所介绍的SQL语言是在分布式的关系数据库系统Oracle上实现的,为ANSI标准和ISO标准的超集,所描述的SQL语言特性仅适用于Oracle。〔未经许可请勿转载〕3.4.1SQL支持的主要数据类型:字符型:ﻩCHAR〔n〕字符数据,长度为n个字符ﻩﻩﻩVARCHAR2〔n〕变长字符型数字型: NUMBER〔n〕数字数据。最大可达105位ﻩ ﻩNUMBER〔m,n〕m位数字,其中n位为小数位日期型:ﻩDATEDD-MON-YY例如:17-DEC-85长型行码数:LONGRAW二进制行码数,变长,可达2GB3.4.2SQL支持的运算符·算术运算符:+,-,*,/·逻辑运算符:与“AND〞、或“OR〞,非“NOT〞·比较符:=,!=,>,<,>=,<=IN,NOTIN,ANY,ALL,判断是否是集合的成员。BETWEENANDﻩ 判断列值是否满足指定的区间LIKE匹配模式IS[NOT]NULL测试空值等3.4.3常用SQL命令介绍3.4.3.1表的基本操作表的建立关系数据库的主要特点之一就是用表的方式组织数据。表是SQL语言存放数据、查找数据以及更新数据的基本数据结构。在SQL语言中,表有严格的定义,它是一种二维表,对于这种表有如下规定:〔未经许可请勿转载〕1〕每一张表都有一个名字,通常称为表名或关系名。表名必须以字母开头,最大长度为30个字符。2〕一张表可以由若干列组成,列名唯一,列名也称作属性名。3〕表中的一行称为一个元组,它相当于一条记录。4〕同一列的数据必须具有相同的数据类型。5〕表中的每一个列值必须是不可分割的基本数据项。当用户需要新的数据结构或表存放数据时,首先要生成一个表。语句句法:CREATEﻩTABLEﻩﻩ表名ﻩ[表约束]〔列名1 ﻩ数据类型ﻩﻩﻩ[缺省值,列约束]〔列名2ﻩﻩ数据类型 ﻩ [缺省值,列约束]…列名n ﻩ数据类型ﻩ ﻩ[缺省值,列约束][TABLESPACEﻩﻩ表空间名][STORAGEﻩ ﻩ〔存贮子句〕][ENABLE ﻩ 约束名][DISABLE ﻩ约束名]〔注:n<=254对于oracle7>扦入数据当一个表新建成时,它里面没有数据,通过向表中扦入数据,建成表的实例。语句句法:INSERT ﻩINTO ﻩ表名[〔列名1,…〕] ﻩ VALUES〔值1,‘值2’,…〕 ﻩﻩ[子查询];将新雇佣的职员JOE增加到你的EMP表中,并按照表的结构将该职员的信息添加完整。INSERTINTOEMPVALUSE〔7901,‘JOE’,’ENGINEER’,7839,’15-SEP-97’,1500,NULL,20〕;〔未经许可请勿转载〕修改数据对表中已有数据进行修改,语句句法:UPDATE 表名SET列名1=表达式1,列名2=表达式2,…WHEREﻩ条件;例如:将JOE提升为经理〔MANAGER〕。UPDATEEMPSETJOB=‘MANAGER’WHEREENAME=‘JOE’;删除数据删除表中已有数据。语句句法:DELETEﻩFROM 表名 WHERE条件;例如:删除部门30中的全部职工DELETEFROMDEPTWHEREDEPTNO=30;修改表的结构。a.在已存在的表中增加新列〔属性〕。语句句法:ALTERﻩTABLE 表名ﻩADD〔新列名 数据类型〔长度〕〕;例如:ALTER TABLE DEPTﻩADD 〔DMGRﻩCHAR〔8〕〕;b.增加已有列宽度。语句句法ALTERTABLEﻩDEPT MODIFY〔DNAMEVARCHAR2〔20〕〕;表的删除。语句句法DROP TABLE表名;例如:DROPTABLEEMP;数据库逻辑设计实例:将下面所示的E-R图〔模型〕设计成关系模式。DEPTDEDEPTDEEMPLOCDNAMEDEPTNOHIREDATEEMPNOSALJOBCOMMENAMEMGRSALGRADEGRADELOSALHISALDEPT〔DEPTNO,DNAME,LOC〕EMP〔EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO〕〔未经许可请勿转载〕SALGRADE〔GRADE,LOSAL,HISAL〕3.4.3.2查询语句SELECT命令的语法为:SELECT[DISTINCT|ALL]{*|模式名.]{表名|视图名|快照名].*…|{表达式[列别名]…}}[,[模式名.]{表名|视图名|}.*…|表达式[列别名]]…FROM[模式名.]{表名|视图名|快照名}[@数据库链名][表别名][,[模式名.]{表名|视图名|快照名}[@数据库链名][表别名]]…[WHERE条件][STARTﻩWITH条件ﻩCONNECT BY条件][GROUPBY表达式[,表达式]…[HAVING条件][UNION|UNIONALL|INTERSECT|MINUS]SELECT命令[ORDERBY{表达式|位置}[ASC|DESC][,{表达式|位置[ASC|DESC]}]…]〔未经许可请勿转载〕SELECT FROMﻩ子句SQL>ﻩSELECT * FROMﻩEMP;SQL>ﻩSELECT DISTINCT JOB FROMﻩEMP;WHERE子句,从表中获取〔检索〕满足条件的记录SQL>SELECT*FROMEMPWHEREDEPTNO=30;查询工资高于或等于4500的第30部门的销售员的情况。SQL>SELECTENAME,DEPTNO,SALFROMEMPWHEREJOB=‘SALESMAN’ANDDEPTNO=30ANDSAL>=4500;〔未经许可请勿转载〕BETWEENﻩAND查询工资不在1200至3000之间的职工信息SQL>SELECTENAME,JOB,SAL,DEPTNOFROMEMPWHERESALNOTBETWEEN1200AND3000;IN,ANY的用法,判断是否是集合的成员SQL>SELECTENAME,JOB,SAL,DEPTNODEPARTMENTFROMEMPWHEREJOBIN〔’SALESMAN’,’MANAGER’〕;SQL>SELECTENAME,JOB,SALFROMEMPWHEREJOB=ANY〔‘SALESMAN’,‘MANAGER’〕;〔注:ANY前面可使用!=,>,>=,<,<=等〕字符串匹配找出姓名以M开头的职工。SQL>SELECTENAME,JOB,DEPTNOFROMEMPWHEREENAMELIKE‘M%’“-〞匹配任一字符CONNECTBY子句列出BLAKE管辖的职工的职务结构SQL>SELECTLEVEL,ENAME,EMPNO,DEPTNO,MGRFROMEMPCONNECTBYPRIOREMPNO=MGRSTARTWITHENAME=‘BLAKE’;GROUPBY子句将返回行分组,每组返回一个总计信息Oracle提供的分组函数有:AVG ﻩCOUNTﻩMAXﻩﻩMIN SUM平均值ﻩ查询行数ﻩ最大值ﻩ最小值 求和列出某单位的工资总额,最高工资,最低工资级最高和最低工资差额。SQL>SELECTSUM〔SAL〕,MAX〔SAL〕,MIN〔SAL〕,MAX〔SAL〕-MIN〔SAL〕〔未经许可请勿转载〕FROMEMP;列出最小工资值小于1000的部门的最高工资,最低工资及其差额SQL>SELECTDEPTNO,MAX〔SAL〕,MIN〔SAL〕,MAX〔SAL〕-MIN〔SAL〕〔未经许可请勿转载〕FROMEMPGROUPBYDEPTNOHAVINGMIN〔SAL〕<1000;〔未经许可请勿转载〕ORDERBY子句〔使查询结果有序〕按部门号升序,按职工号降序列出职工信息SQL>SELECTENAME,DEPTNO,SALFROMEMPORDERBY2ASC,3DESC;查询语句示范:1.查询EMP表中的所有信息。2.查询EMP表中的所有职员的名字,并且按字母的升序进行排序。3.查询EMP表中在部门10和部门20中工作的职员的名字、工资、受雇日期、并按照受雇日期的先后顺序排序。〔未经许可请勿转载〕4.显示所有部门的地址不以“N〞字母打头的部门信息。5.显示工资比佣金高的职工名字、部门号、工资和佣金,并按工资的降序排列。如果有两个或两个以上的职员有相同的工资,则按他们的名字的字母顺序排列。〔未经许可请勿转载〕6.查询在第20号部门工作,工资大于1500元的职员信息,并按工资由高到低的次序排序。7.查询工资为1500元的职员的工资级别。8.查询没有佣金且工资低于1000元的职员名字,工资额和所在部门号。9.显示部门30中所有职员的工资总和,并使显示结果以TOTAL30为列头。10.显示各部门的部门号及所属职员的平均工资,并按平均值由大到小的次序排列。11.查询公司各个部门中职业为办事员〔CLERK〕的职员的工资总和及人数。12.查询平均工资大于1500元的部门的工资总额,职员人数和平均工资。13.查询1981年6月30日之后受雇的职员的最高报酬〔包括工资和佣金〕。14.查询部门20中工资大于该部门平均工资的职员的信息。SELECT*FROMEMPWHEREDEPTNO=20ANDSAL>〔SELECTAVG〔SAL〕FROMEMPWHEREDEPTNO=20〕;15.查询能获得红利〔即在BONUS表中存在〕的推销员的名字,受雇日期及工资额。SELECTENAME,HIREDATE,SALFROMEMPWHEREJOB=‘SALESMAN’ANDENAMEIN〔SELECTENAMEFROMBONUS〕;16.查询职员“SMITH〞所在的部门名称。SELECTDNAMEFROMDEPTWHEREDEPTNO=〔SELECTDEPTNOFROMEMPWHEREENAME=‘SMITH’〕;17.查询部门10中所有所赚的工资在最高一级的职员名字,工资及受雇日期。SELECTENAME,SAL,HIREDATEFROMEMPWHEREDEPTNO=10ANDSAL>〔SELECTLOSALFROMSALGRADEWHEREGRADE=5〕;18.查询在纽约工作并且工资比“SCOTT〞高的职员的名字、职业、工资。SELECTENAME,JOB,SALFROMEMP,DEPTWHERELOC=‘NEWYORK’ANDEMP.DEPTNO=DEPT.DEPTNOANDSAL>〔SELECTSALFROMEMPWHEREENAME=‘SCOTT’〕;19.查询在第30号部门工作的所有受雇时间早于他的老板的职员的名字和受雇日期及其老板的名字及受雇日期。〔未经许可请勿转载〕SELECTE.ENAME,E.HIREDATE,M.ENAME,M.HIREDATEFROMEMPE,EMPMWHEREE.HIREDATE<M.HIREDATEANDE.DEPTNO=30ANDE.MGR=M.EMPNO;20.查询最先受雇的职员姓名及受雇日期。SELECTENAME,HIREDATEFROMEMPWHEREHIREDATE=〔SELECTMIN〔HIREDATE〕FROMEMP〕;21.查询公司中所有职员所赚工资及所处的工资级别。SELECTE.ENAME,E.SAL,S.GRADEFROMEMPE,SALGRADESWHEREE.SALBETWEENS.LOSALANDS.HISAL;3.4.3.3分布查询分布的查询是从两个或多个数据库中检索数据,这些数据物理上存放在网络中的多个数据库中,而逻辑上是一个数据库。〔未经许可请勿转载〕分布查询前先建立数据库链路,然后执行分布查询语句。语句语法:CREATE[PUISLIC]DATABASELINKlink-nameCONNECTTOuserIDENTIFIEDBYpasswdUSING‘Connect-string’〔未经许可请勿转载〕例如:SQL>CREATEDATABASELINKL-EMPCONNECTTOclasslIDENTIFIEDBYclass1using’T:166.111.4.4:or7o’;SQL>SELECTDNAME,ENAME,DEPT.DEPTNOFROMDEPT,EMP@L-EMPWHEREDEPT.DEPTNO=EMP.DEPTNO;分布查询语句实例假如本地结点数据库名为OR7O,网络地址为166.111.4.4;远程数据库为ORAD7,网络地址为166.111.4.3。现在要在本地机器上访问远程数据库中用户studeutx〔密码为studentx〕中的DEPT,EMP表,请写出相关的SQL语句?若要访问本地的DEPT,远程数据库中的EMP,如何修改SQL语句。〔未经许可请勿转载〕D:>SQLPLUSstudentx/studentx@T:166111.4.4:Or70〔未经许可请勿转载〕SQL>CREATEDATABASELINKS_empCONNECTTOstudentxIDENTIFIEDBYstudentxusing‘T:166.111.4.3:Orad7’;SQL>SELECTDNAME,ENAMEFROMDEPT@S_emp,emp@S_emp〔未经许可请勿转载〕WHEREDEPT.DEPTNO=EMP.DEPTNO;SQL>SELECTDNAME,ENAME,DEPT.DEPTNOFROMDEPT,EMP@s_empWHEREDEPT.DEPTNO=EMP.DEPTNO;UNION,INTERSECT,MINUS子句设关系:BASKETBALL〔NAME,AGE,SEX,HEIGHT,WEIGHT〕VOLLEYBALL〔NAME,AGE,SEX,HEIGHT,WEIGHT〕操作实例:。查找年龄小于30岁的体育代表队员信息SELECT*FROMBASKETBALLWHEREAGE<30UNIONSELECT*FROMVOLLEYBALLWHEREAGE<30;查找年龄小于25岁的既是篮球队员又是排球队员的信息SELECT*FROMBASKETBALLWHEREAGE<25INTERSECTSELECT*FROMVOLLEYBALLWHEREAGE<25;查找只参加篮球队未参加排球队员的信息SELECT*FROMBASKETBALLMINUSSELECT*FROMVOLLEYBALL;3.4.3.3分布查询分布的查询是从两个或多个数据库中检索数据,这些数据物理上存放在网络中的多个数据库中,而逻辑上是一个数据库。〔未经许可请勿转载〕分布查询前先建立数据库链路,然后执行分布查询语句。语句语法:CREATE[PUBLIC]DATABASELINKlink-nameCONNECTTOuserIDENTIFIEDBYpasswdUSING‘Connect-string’〔未经许可请勿转载〕例如:SQL>CREATEDATABASELINKL-EMPCONNECTTOclasslIDENTIFIEDBYclass1USING’T:166.111.4.4:or7o’;SQL>SELECT DNAME,ENAME,DEPT.DEPTNO FROMDEPT,EMP@L-EMPWHEREDEPT.DEPTNO=EMP.DEPTNO;分布查询语句实例假如本地结点数据库名为OR70,网络地址为166.111.4.4;远程数据库为ORAD7,网络地址为166.111.4.3。现在要在本地机器上访问远程数据库中用户studeutx〔密码为studentx〕中的DEPT,EMP表,请写出相关的SQL语句?若要访问本地的DEPT,远程数据库中的EMP,如何修改SQL语句。〔未经许可请勿转载〕D:>SQLPLUSstudentx/studentx@T:166.111.4.4:Or70〔未经许可请勿转载〕SQL>CREATEDATABASELINKS_empCONNECTTOstudentxIDENTIFIEDBYstudentxUSING‘T:166.111.4.3:Orad7’;SQL>SELECTDNAME,ENAMEFROMDEPT@S_emp,EMP@S_emp〔未经许可请勿转载〕WHEREDEPT.DEPTNO=EMP.DEPTNO;SQL>SELECTDNAME,ENAMEFROMDEPT,EMP@s_emp〔未经许可请勿转载〕WHEREDEPT.DEPTNO=EMP.DEPTNO;3.5关系数据库3.5.1关系模型的基本概念关系数据库的基本结构是表〔tables〕,即关系〔relations〕。关系是命名的二维表。关系数据库是相关关系的集合。〔未经许可请勿转载〕例如,供店商〔Supplier〕供应零件〔PART〕的关系,用E-R模型表示为:PARTSNOSTATUSSNAMESupplierCITYPNOPNAMECOLORWEIGHTNAAMISPnm〔未经许可请勿转载〕PARTSNOSTATUSSNAMESupplierCITYPNOPNAMECOLORWEIGHTNAAMISPnm用二维表格表示则为:关系Supplier关系SPSNOSNAMESTATUSCITYSNOPNOQTYS1Smith20LondonS1P1300S2Jones10ParisS1P2200S3Blake30ParisS1P3400S4Clake20LondonS1P4200S5Adams30AthensS1P5100S2P6100关系PartS2P2300PNOPNAMECOLORWEIGHTS3P3400P1RedRed12S4P4200P2boltGreen17S4P5300P3ScrewBlue17S4P6400P4ScrewRed14P5CamBlue12P6CogRed19关系数据库一个关系数据库是由一个域集和一个关系集组成的。其中域〔domain〕是值的集合。例如:整数值域,实数值域、字符值域等。在关系模型中,域必须是简单域,即域值是不可再分的。〔未经许可请勿转载〕关系的数学定义设D1,D2,…,Dn为一组域,D1,D2,…Dn上的笛卡尔积定义为:D1×D2×…×Dn={〔d1,d2,…,dn〕|diDi,i=1,2,…,n}〔未经许可请勿转载〕其中每一个元素〔d1,d2,…dn〕称为一个n元组,简称元组。元组中每一个值di叫做一个分量。〔未经许可请勿转载〕D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的关系〔Relation〕。如果其名为R,该关系则可表示为:〔未经许可请勿转载〕R〔D1,D2…,Dn〕例:已经知道三个域:MEN〔男人域〕、WOMEN〔女人域〕CHILDREN〔儿童〕,MEN={张华,李一敏},WOMEN={郑燕,卢泳},CHILDREN={张勇,李冬}。〔未经许可请勿转载〕其笛卡尔积MEN×WOMEN×CHILDREN={〔张华,郑燕,张勇〕,〔张华,卢泳,张勇〕,〔张华,郑燕,李冬〕,〔张华,卢泳,李冬〕,〔李一敏,郑燕,张勇〕,〔李一敏,卢泳,张勇〕,〔李一敏,郑燕,李冬〕,〔李一敏,卢泳,李冬〕}〔未经许可请勿转载〕则家庭〔FAMILY〕为笛卡尔积MEN×WOMEN×CHILDREN的子集,称为在域MEN、WOMEN、CHILDREN上的关系。关系FAMILY为:〔未经许可请勿转载〕FAMILY〔MEN,WOMEN,CHILDREN〕={〔张华,郑燕,张勇〕,〔李一敏,卢泳,李冬〕}〔未经许可请勿转载〕其中〔张华,郑燕,张勇〕是关系FAMILY的一元组,标志一个家庭。关系是一张二维表,如关系FAMILY可表示成以下表:FAMILY张华郑燕张勇李一敏卢泳李冬表的每一列对应于一个域。在集合论中定义的关系,其域的次序是有关系的,即同一组域,如果其域的次序不同,则在集合论中,所构成的关系是不同的。在关系数据库中为了消除域的次序对关系的影响,对每一列起一个名字,称为属性名,由属性名称对应的域名组成属性。当关系引入属性后,关系表示为:〔未经许可请勿转载〕R〔A1:D1,A2:D2,…An:Dn〕其中属性集〔A1:D1,A2:D2,…,An:Dn〕即具有属性A1,A2,…,An,相应地定义在域D1,D2,…,Dn上。当引入属性后,使域的次序与关系无关。所以关系模型中的关系是基于集合论中的关系,但有一些差别。〔未经许可请勿转载〕关系模式是数据结构〔属性名、类型、长度〕、操作和完整性约束的集合。数据定义不明显包括物理布局和存取路径。〔未经许可请勿转载〕例如:CREATETABLEDEPT〔DEPTNONUMBER〔2〕PRIMARYKEYCONSTRAINTPK-DNOCHECK〔DEPTNOBETWEEN10AND99〕〔未经许可请勿转载〕CONSTRAINTCHECK-DEPTNO,DNAMEVARCHAR〔10〕LOCVARCHAR〔10〕CHECK〔LOCIN〔Bejing’shanghei〕〕CONSTRAINTCHECK-LOC〕;〔未经许可请勿转载〕对一个关系的描述称为关系模式,它包含关系名,属性名,属性向域的映象和属性间数据的依赖关系。如果属性名与域名相同,即Ai=Di则属性向域的映象可以省略。例如,属性A1,A2,…An上的关系记作〔未经许可请勿转载〕R〔A1,A2,…An〕下面给出学生,课程关系的数据库模式。STU〔SNO,SNAME,SD〕定义域:SNO〔学生编号〕CHAR〔3〕ﻩ SNAME〔学生姓名〕CHAR〔15〕SD〔系名〕CHAR〔15〕COURSE〔CNO,CNAME,CREDIT〕定义域:CNO〔课号〕 CHAR〔8〕 CNAME〔课名〕ﻩ CHAR 〔30〕CREDIT〔学分〕 ﻩNUMBER〔1〕关系的性质不能有重复的元组元组上下无序按属性名引用时,属性左右无序所有属性值都是原子项。3.5.2关系代数关系数据模型的创始人E.F.Codd将集合代数运用于关系称作关系代数。在关系模型中,对数据库的全部操作都归结为关系的运算。即以一个或多个关系作为运算的对象,对它们进行集合运算,结果形成一个新的关系。早期的关系操作能力是由两种方式表示:代数方式和逻辑方式,关系代数其操作由对关系的特殊操作所表示。关系演算,其操作由逻辑公式表示。这两种方式在功能上是等价的。SQL语言所支持的关系操作介于上述两种方式之间。本节介绍关系代数,它是关系理论的基础。〔未经许可请勿转载〕如果两个n元关系R〔A1:D1,A2:D2,…,An:Dn〕和S〔B1:D1,B2:D2,…,Bn:Dn〕,其相应的属性取值于同一域,则称关系R和S是并相容。〔未经许可请勿转载〕关系代数提供以下操作:并操作〔〕设关系R和S是并相容,其并操作表示为RS,其操作结果生成一个关系,其元组由属于R的元组或属于S的元组组成,可表示成:〔未经许可请勿转载〕RS={t|tRts}差操作〔-〕设关系R和S是并相容,其差操作表示为R-S,其操作结果生成一个新关系,其元组由属于R的但不属于S的元组组成,可表示成:〔未经许可请勿转载〕R-S={t|tRts}其中符号表示“不属于〞。叉积设关系R和S的元数分别为r和s。定义R和S的笛卡尔积是一个〔r+s〕元元组的集合,每一个元组的前r个分量来自R的一个元组,后s个分量来自S的一个元组。笛卡尔积记为R×S,形式定义如下:〔未经许可请勿转载〕R×S={t|t=<tr,ts>trRtsS}若R有m个元组,S有n个元组,则R×S应有mn个元组。例如:R:ABCS:A(B(Ca1a2a3b1b4b2c1c7c2a2a4b4b3c7c3R×S:ABCABC(a1a2a3a1a2a3b1b4b2b1b4b2c1c7c2c1c7c2a2a2a2a4a4a4b4b4b4b3b3b3c7c7c7c3c3c3s选择该操作是从关系中选择部分元组,其表示形式为:F〔R〕其中:F是条件,在F中可包含任何一种比较操作〔=,,>,>=,<,<=〕,条件形式为AiVi,为比较操作符,Vi为Di域中的值,Ai为Di域上的属性名。该选择操作是从关系R中选择使条件为“真〞的元组,可表示为:〔未经许可请勿转载〕F〔R〕={t|tRLF〔t〕=“真〞}投影〔〕投影操作是从关系的属性集中选择属性子集,即由关系的部分列组成一个新关系,投影操作表示为:P〔ai,...,aj〕R投影操作的结果生成一个新关系,其属性集为〔Ai:Di,…,Aj:Dj〕,其元组为〔Ai:ai,…,Aj:aj〕。〔未经许可请勿转载〕上述介绍的操作是关系代数的基本操作。为了操作方便引入一些其它操作,这些操作可用上述基本操作实现。下面简单介绍最常用的一些其它操作。〔未经许可请勿转载〕连接〔Join〕连接操作是从叉积中选择满足条件的元组。叉积操作将结果关系扩展得很多,如果叉积的两关系各自元组数为m和k,那么结果关系的元组数为m·k,在处理中往往只是需要其中部分元组。连接操作表示为:〔未经许可请勿转载〕当比较操作〔q〕为相等〔=〕比较时,在结果中存在着完全相等的两列,可将重复列在结果中去掉,这样的操作称为自然连接。其自然连接表示为:〔未经许可请勿转载〕R*S=〔Ra1,…,Ran,Sb1,…,Sbj-1,Sbj+1,…,Sbm〕〔Rai=Sbj〔R|X|S〕〕〔未经许可请勿转载〕交〔〕如果两个关系R和S是并相容,可求其交集,操作结果是一关系,可表示为:RS=R-〔R-S〕操作结果为:RS={t|tRtS}利用上述的关系操作,可完成对关系数据库中关系的操作。下面通过教务管理模式实例完成关系操作。设关系模式为:〔未经许可请勿转载〕STUDENT〔SNO〔学号〕,SNAME〔姓名〕,SEX〔性别〕,CLASS〔班级名〕,AGE〔年龄〕〕〔未经许可请勿转载〕TEACHER〔TNO〔职工号〕,TNAME〔教师名〕,DNAME〔系名〕,SPECIALTY〔专长〕〕〔未经许可请勿转载〕COURSE〔CNO〔课程号〕,CNAME〔课程名〕,CREDIT〔学分〕,HOURS〔学时〕〕〔未经许可请勿转载〕STC〔SNO,TNO,CNO,SCORE〔成绩〕〕1.查找“程8〞班,年龄为18至20岁的学生姓名。其查询表达式为:p〔SNAME〕〔CLASS=‘程8’ANDAGE>=18ANDAGE<=20〔STUDENT〕〕〔未经许可请勿转载〕2.查找选修课程名为“数据库原理〞的学生名单,该课程的学习成绩在85分以上。其查询表达式为:SNAME〔STUDENT*SNO〔SCORE>85〔STC*CNO〔CNAME=‘数据库原理’COURSE〕〕〕〕〔未经许可请勿转载〕3.查找同时选修两门课程,其课程号为‘C01’和‘C02’的学生学号。这个题看起来很容易,但很容易犯逻辑性错误,分析一下以下查询表达式是否正确?SNO〔CNO=‘C01’ANDCNO=‘C02’〔STC〕〕其错误在什么地方?其正确的表示为SNO〔CNO=‘C01’〔STC〕〕SNO〔CNO=‘C02’〔STC〕〕〔未经许可请勿转载〕4.查找讲授课程名为“UNIX操作系统〞的教师信息。TEACHER*TNO〔STC*pCNO〔CNAME=‘UNIX操作系统’〔COURSE〕〕〕〔未经许可请勿转载〕3.5.3关系模型的完整性为了保证数据库数据的正确性,在关系模型中利用了实体完整性和参照〔引用〕完整性,来保证关系数据库中数据的正确性。〔未经许可请勿转载〕实体完整性是指:设属性A为关系R的主码,那么属性A不能接受空值,即关系R中没有一个元组在属性A上的属性值为空值〔无值〕。〔未经许可请勿转载〕例:在关系STUDENT中,其码为SNO,根据实体完整性的规则那么不能将一个无学号的学生插入到STUDENT关系中。〔未经许可请勿转载〕参照完整性是指:若关系R含有另一个关系S的主码Ks所对应的属性或属性组F〔该属性或属性组F称为关系R的外来码〔ForeignKey〕,则在关系R中的每一个元组在属性组F上的值必须满足:或者取空值〔F的每个属性值均取空值〕,或者等于S中某个元组的主码值〕。〔未经许可请勿转载〕3.6数据库的安全性、完整性和并发控制为了保证数据库中的数据安全可靠和正确有效地运行,数据库管理系统通常都提供数据的保护功能,数据保护包括数据的安全性、完整性、并发控制和恢复。〔未经许可请勿转载〕3.6.1安全性安全性指的是保护数据库,防止不合法的使用所造成的数据泄露,修改或破坏。在数据库系统中,安全措施是逐级设置的。〔未经许可请勿转载〕3.6.1.1保证数据安全的一般方法1.用户标识与系统鉴别采用提供用户名和口令方法标识和鉴别用户2.存取控制用户被获准使用数据库之后,还要根据预定的用户权限进行存取控制。系统通过对用户权限的控制,达到保护数据防止非法使用的目的。〔未经许可请勿转载〕3.6.1.2ORACLE系统中的安全措施。ORACLE数据库系统采用以下措施保证数据的安全性。标识和鉴别用户的合法性存取控制审计1.用户标识和鉴别语句语法:CREATEUSER用户名IDENTIFIEDBY口令[DEFAULTTABLESPACE表空间名][TEMPORARYTABLESPACE表空间名][QUOTA整数MON表空间][PRO名]例如:CREATEUSERCLASS1IDENTIFIEDBYCLASS1ﻩﻩDEFAULT TABLESPACEUSERSTEMPORARYTABLESPACEUSERSQUOTA10MONUSERSQUOTA5MONSYSTEMPRO;2.存取控制授与系统特权,保证系统的安全性语句语法:系统特权80多种包括:CREATETABLE,CREATEDATABASELINK,CREATEVIEW,CREATECLUSTER等及以下三种角色;〔未经许可请勿转载〕CONNECT:允许用户册到ORACLE系统,使用数据字典,使用被授予特权的数据。RESOURCE:允许建立关系表,索引,视图,数据库链路等。DBA:拥有全部的系统特权。例如:GRANTCONNECT,CREATETABLETOCLASSL;授与对象特权,保证用户创建的对象的安全性〔列1,列2,…〕ON对象名TO对象特权包括:ALTER:允许改变表结构DELETE:允许从表和视图中删除数据EXECUTE:允许执行建在对象上的过程和函数INDEX:允许在表上建立索引INSERT:允许向表和视图中插入数据REFERENCES:允许建立和改变FOREIGNKEY约束SELECT:允许从表,视图快照中插入数据UPDATE:允许修改表、视图中的数据例如:GRANTALLONDEPTTOClasslWITHGRANTOPTION;〔未经许可请勿转载〕回收系统特权例如:REVOKECREATETABLE,CONNECTFROMClassl;回收对象特权REVOKEINSERT,DELETEONDEPTFROMClassl;3.审计通过监视用户对数据库施加的操作,防止非法使用数据。例如:AUDLTALLONClassl.EMP;AUDITINSERT,UPDATEONClass3DEPT;3.6.2完整性数据库的完整性是指数据的正确性和相容性。在数据库系统中,为了保证数据库中的数据是正确的,DBMS通常提供一种功能来保证数据正确、有效,这种功能称为完整性检查。完整性检查是根据完整性规则集工作的。完整性规则集由DBA和应用程序员事先向完整性子系统提供一组有关数据的规则,每个规则由三部分组成:〔未经许可请勿转载〕·什么时候使用规则检查〔触发条件〕·要检查的内容〔称为‘约束条件’〕·如果出错误应该怎么办〔违反条件时要做的事情〕ORACLE系统中应用于表数据完整性有以下类型:·主码值规则,主码值唯一地标识表的一行且不空·引用完整性,同关系模型的定义·列值的空与非空规则·列值所满足的条件3.6.3并发控制数据库是一个共享资源,许多事务可能同时对同一数据进行操作。当多个用户程序同时对数据库中的数据并行存取时,如果不对并行操作进行控制,用户程序会存取不正确的数据,或破坏数据库数据的一致性。〔未经许可请勿转载〕例如:在飞机售票系统中,有两个售票员〔T1,T2〕对某航线〔A〕的机票作事务处理,操作过程如下:〔未经许可请勿转载〕并行操作实例数据库中的A111100T1READAA:=A-1WRITEAT2READAA:=A-1WRITEAT1工作区中的A10000T2工作区中的A11000首先T1读A,接着T2也读A。然后T1将其工作区中的A减1,T2也采取同样动作,它们在工作区中都得0,最后分别将0值写回数据库。在这个过程中没有任何非法操作,但实际上多出售了一张机票。这种情况称为数据库的不一致性,这种不一致性是由于并行操作而引起的。所谓不一致,实际上是由于处理程序工作区中的数据与数据库中的数据不一致所造成的。数据不一致性问题是由两个因素造成:一是对数据的修改;二是并行操作。为了保持数据的一致性,必须对并行操作进行控制,称为并发控制。并发控制最常用的措施是对数据进行封锁。〔未经许可请勿转载〕在多用户的数据库中,有以下数据一致性的问题:·丢失更改,在一事务中重写另一事务的修改,如上述售飞机票例子。·不可重读,在一个事务范围内,两个相同查询将返回不同数据,这是由于查询注意到其它提交事务的修改而造成。〔未经许可请勿转载〕·读脏数据,如果事务T1对一值〔A〕修改,然后另一事务T2读该值,在这之后T1由于某种原因撤消对该值的修改,这样造成T2读取的值是脏的。〔未经许可请勿转载〕在多用户数据库中,利用封锁〔Lock〕来解决并发操作中的数据一致性和完整性。一般使用两种封锁:共享封锁和排它〔专用〕封锁。〔未经许可请勿转载〕排它封锁〔Exclusivelock〕,它禁止相关资源的共享,如果一事务以排它方式封锁一资源,仅仅该事务可更改资源,直至释放该封锁。〔未经许可请勿转载〕共享封锁〔Sharelock〕,它允许相关资源可以共享。当几个用户同时读取同一数据,此时几个事务可对同一资源进行共享封锁。共享封锁比排它封锁有更高的数据并行性。〔未经许可请勿转载〕在多用户数据库系统中,在使用封锁之后,会出现死锁,如果两个或多个用户处于彼此等待所封锁的数据,这种情况称为死锁〔Deadlock〕。死锁将引起一些事务不能继续工作。〔未经许可请勿转载〕为了更好地使用共享资源,一般在数据库系统中引入事务〔Transaction〕的概念。用户在操作数据库期间,根据情况可分成多个事务,所以一个事务是工作的一个逻辑单位,它可由多个数据库操作语句组成。一个事务是一个原子单位,即构成事务的全部数据库操作语句的操作结果只可全部提交或者被全部回滚。封锁仅在事务范围内有效,当事务结束,全部封锁将被释放,这样利用事务概念后可使数据库数据达到更好地共享。〔未经许可请勿转载〕3.6.4数据库的后备和恢复由于计算机系统的故障〔硬件故障、软件故障、网络故障、进程故障等〕会影响数据库系统的正常运行,影响数据库中数据的正确性,严重的则破坏数据库,使数据库中的全部或部分数据丢失。为了使数据库系统在出现故障后,快速恢复系统,几乎所有的数据库系统都提供了后备和恢复数据的功能。所谓“后备〞,是由DBA定期地将整个数据库复制到磁带上保存起来。这些备用的数据文本称为后备副本。当数据库遭到破坏后,可利用后备副本将数据恢复。〔未经许可请勿转载〕ORACLE数据库系统提供的后备/恢复方法:〔1〕转储/装入〔EXPORT/IMPORT〕转储/装入方式·表方式·用户方式·全数据库方式每种方式能够卸出的对象表方式用户方式全数据库方式表上的授权表上的授权授权表上的索引表上的索引索引表约束表约束表约束触发器触发器所有触发器聚集聚集数据库链路数据库链路序列序列快照快照快照日志快照日志存储过程存储过程专用同义词所有同义词视图视图环境文件角色回滚段定义系统审计选项系统特权表空间定义表空间限额用户定义卸出/装入命令·命令行·交互式命令〔2〕日志文件每次用户事务对数据库的修改,例如,事务的开始,终止时间,修改操作的内容包括旧值、新值等都将记录在日志文件中。一旦系统出现故障,利用日志文件可将数据库系统恢复到出现故障的点称为故障点。〔未经许可请勿转载〕3.7关系数据库设计理论

温馨提示

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

评论

0/150

提交评论