第一章Oracle入门2课程地位.Net&C#SQLServerXMLSPMASP.NET&WebServiceOracleUMLSPR:ComputerBaseHTML&JavaScriptSQLServerBaseOOP&JavaBaseCSTBJSP/ServletEJB&WebServiceWinFormsStruts&JSFTesting&SQALinux3课程目标理解Oracle数据库体系结构熟练掌握SQL命令和SQL函数使用Oracle的各种数据库对象使用PL/SQL编写存储过程掌握基本的数据库配置和管理4目标了解Oracle体系结构的各种组件掌握Oracle中的基本用户管理了解Oracle的工具了解Oracle的安装和卸载5Oracle数据库简介2-1对象关系型的数据库管理系统(ORDBMS)在管理信息系统、企业数据处理、因特网及电子商务等领域使用非常广泛在数据安全性与数据完整性控制方面性能优越跨操作系统、跨硬件平台的数据互操作能力Oracle数据库的主要特点支持多用户、大事务量的事务处理数据安全性和完整性控制支持分布式数据处理可移植性6Oracle数据库简介2-2Oracle数据库基于客户端/服务器技术客户端应用程序通过向服务器请求并接收信息的方式与数据库进行交互。它充当用户与数据库之间的接口请求响应数据库服务器对数据库表进行最佳管理,处理多个客户端对同一数据的并发访问。全面地保持数据完整性,并控制数据库访问权限等安全性需求网络服务器7Oracle9i体系结构Oracle服务器Oracle数据库Oracle实例Oracle数据库是一个数据的集合,该集合被视为一个逻辑单元管理数据库的后台进程和内存结构的集合称为Oracle实例数据库的体系结构是指数据库的组成、工作过程与原理,以及数据在数据库中的组织与管理机制Oracle服务器提供开放、全面和综合的信息管理,它由Oracle数据库和Oracle实例组成8Oracle数据库Oracle数据库由操作系统文件组成,这些文件为数据库信息提供实际物理存储区Oracle数据库包括逻辑结构和物理结构物理结构逻辑结构物理结构包含数据库中的一组操作系统文件。逻辑结构指数据库创建之后形成的逻辑概念之间的关系Oracle数据库9Oracle物理组件物理组件就是Oracle数据库所使用的操作系统物理文件。物理文件可分为三类:物理组件数据文件控制文件日志文件数据文件用于存储数据库数据,如表、索引数据等。控制文件是记录数据库物理结构的二进制文件。日志文件记录对数据库的所有修改信息,用于故障恢复10Oracle逻辑组件3-1数据库的逻辑结构是从逻辑的角度分析数据库的组成。Oracle的逻辑组件包括:数据库表空间段区数据块模式11Oracle逻辑组件3-2表空间是数据库中最大的逻辑单位,一个Oracle数据库至少包含一个表空间,就是名为SYSTEM的系统表空间。每个表空间是由一个或多个数据文件组成的,一个数据文件只能与一个表空间相关联。表空间的大小等于构成该表空间的所有数据文件大小之和。CREATETABLESPACEtablespacenameDATAFILE‘filename’SIZE[K|M][AUTOEXTEND[OFF|ON]];创建表空间的语法是:12Oracle逻辑组件3-3段段是构成表空间的逻辑存储结构,段由一组区组成。按照段所存储数据的特征,将段分为四种类型,即数据段、索引段、回退段和临时段。区区为段分配空间,它由连续的数据块组成。当段中的所有空间已完全使用时,系统自动为该段分配一个新区。区不能跨数据文件存在,只能存在于一个数据文件中。数据块数据块是Oracle服务器所能分配、读取或写入的最小存储单元。Oracle服务器以数据块为单位管理数据文件的存储空间。模式模式是对用户所创建的数据库对象的总称。模式对象包括表、视图、索引、同义词、序列、过程和程序包等。13Oracle实例Oracle实例是后台进程和内存结构的集合Oracle实例内存结构后台进程分配启动14系统全局区2-1数据库信息存储于SGA,由多个数据库进程共享共享池数据缓冲区日志缓冲区SGA的内存结构15系统全局区2-2共享池共享池是对SQL、PL/SQL程序进行语法分析、编译、执行的内存区域共享池由库缓存和数据字典缓存组成。共享池的大小直接影响数据库的性能。数据缓冲区用于存储从磁盘数据文件中读入的数据,所有用户共享。服务器进程将读入的数据保存在数据缓冲区中,当后续的请求需要这些数据时可以在内存中找到,不需要再从磁盘读取,提高了读取速度。数据缓冲区的大小对数据库的读取速度有直接的影响。日志缓冲区日志记录数据库的所有修改信息,日志信息首先产生于日志缓冲区。当日志缓冲区的日志数据达到一定数量时,由后台进程将日志数据写入日志文件中。相对来说,日志缓冲区对数据库的性能影响较小。16后台进程2-1后台进程PMON实例的各种后台进程是:SMONDBWRLGWRCKPT其他17后台进程2-2PMON进程监控进程清理出现故障的进程。释放所有当前挂起的锁定。释放故障进程使用的资源。SMON系统监控进程在实例失败之后,重新打开数据库时自动恢复实例。整理数据文件的自由空间,将相邻区域结合起来。释放不再使用的临时段。DBWR数据写入进程管理数据缓冲区,将最近使用过的块保留在内存中。将修改后的缓冲区数据写入数据文件中。LGWR日志写入进程负责将日志缓冲区中的日志数据写入日志文件。系统有多个日志文件,该进程以循环的方式将数据写入文件。18会话会话是用户与Oracle服务器的单个连接当用户与服务器建立连接时创建会话当用户与服务器断开连接时关闭会话启动Oracle实例使用SQL*Plus连接至数据库创建用户进程创建服务器进程提交SQL查询19程序全局区程序全局区(PGA)包含单个服务器进程所需的数据和控制信息PGA是在用户进程连接到数据库并创建一个会话时自动分配的,保存每个与Oracle数据库连接的用户进程所需的信息PGA为非共享区,只能单个进程使用,当一个用户会话结束,PGA释放20Oracle实例进程结构Oracle实例有几种不同类型的进程,它们是:实例进程用户进程服务器进程后台进程用户进程是一个需要与Oracle服务器进行交互的程序。当用户运行一个应用程序准备向数据库服务器发送请求时,即创建了用户进程服务器进程用于处理连接到该实例的用户进程的请求。当用户连接至Oracle数据库实例创建会话时,即产生服务器进程后台进程是Oracle数据库为了保持最佳系统性能和协调多个用户请求而设置的。Oracle实例启动时即创建一系列后台进程21Oracle主要组件实例内存结构后台进程PMONSMONDBWRLGWRCKPT其他数据库数据文件数据文件数据文件控制文件控制文件日志文件日志文件参数文件归档日志文件口令文件SGA用户进程服务器进程PGA共享池数据缓冲区日志缓冲区22Oracle默认用户只有用合法的用户帐号才能访问Oracle数据库Oracle有几个默认的数据库用户Oracle默认用户SYSSYSTEMSCOTT数据库中所有数据字典表和视图都存储在SYS模式中。SYS用户主要用来维护系统信息和管理实例。SYSTEM是默认的系统管理员,该用户拥有Oracle管理工具使用的内部表和视图。通常通过SYSTEM用户管理数据库用户、权限和存储等SCOTT用户是Oracle数据库的一个示范帐户,在数据库安装时创建23创建新用户要连接到Oracle数据库,就需要创建一个用户帐户每个用户都有一个默认表空间和一个临时表空间CREATEUSER命令用于创建新用户CREATEUSERusernameIDENTIFIEDBYpassword[DEFAULTTABLESPACEtablespace][TEMPORARYTABLESPACEtablespace];CREATEUSER命令的语法是:CREATEUSERMARTINIDENTIFIEDBYmartinpwdDEFAULTTABLESPACEUSERSTEMPORARYTABLESPACETEMP;创建一个名称为martin的用户,其密码为martinpwd24授予权限3-1权限指的是执行特定命令或访问数据库对象的权利权限有两种类型,系统权限和对象权限系统权限允许用户执行某些数据库操作,如创建表就是一个系统权限对象权限允许用户对数据库对象(如表、视图、序列等)执行特定操作角色是一组相关权限的组合,可以将权限授予角色,再把角色授予用户,以简化权限管理。25授予权限3-2GRANT命令可用于为用户分配权限或角色GRANTCONNECTTOMARTIN;CONNECT角色允许用户连接至数据库,并创建数据库对象GRANTRESOURCETOMARTIN;RESOURCE角色允许用户使用数据库中的存储空间GRANTCREATESEQUENCETOMARTIN;此系统权限允许用户在当前模式中创建序列,此权限包含在CONNECT角色中26授予权限3-3授予用户MARTIN操作TEST表对象的权限GRANTSELECTONTESTTOMARTIN;允许用户查询TEST表的记录GRANTUPDATEONTESTTOMARTIN;允许用户更新TEST表中的记录GRANTALLONTESTTOMARTIN;允许用户插入、删除、更新和查询TEST表中的记录27收回权限3-4REVOKE命令可用于为用户回收权限或角色REVOKECONNECTFROMMARTIN;回收CONNECT角色允许用户连接至数据库,并创建数据库对象REVOKERESOURCEFROMMARTIN;回收RESOURCE角色允许用户使用数据库中的存储空间REVOKECREATESEQUENCEFROMMARTIN;回收系统权限允许用户在当前模式中创建序列,此权限包含在CONNECT角色中28授予权限3-3授予用户MARTIN操作TEST表对象的权限GRANTSELECTONTESTTOMARTIN;允许用户查询TEST表的记录GRANTUPDATEONTESTTOMARTIN;允许用户更新TEST表中的记录GRANTALLONTESTTOMARTIN;允许用户插入、删除、更新和查询TEST表中的记录29更改和删除用户ALTERUSER命令可用于更改口令ALTERUSERMARTINIDENTIFIEDBYmartinpass;修改MARTIN用户的密码DROPUSER命令用于删除用户DROPUSERMARTINCASCADE;删除MARTIN用户模式30使用Oracle数据库的开发流程服务器端安装Oracle服务器软件创建数据库(安装时自动创建)配置监听器(安装时自动配置)启动Oracle实例(自动启动服务)安装Oracle客户端软件配置网络服务名以新用户登录Oracle提交SQL查询创建新用户并授权创建用户表空间客户端31Oracle网络配置2-1Oracle产品安装完成后,服务器和客户端都需要进行网络配置才能实现网络连接。服务器端配置监听器,客户端配置网络服务名。tnsnames.oraOracle客户端listener.oraOracle服务器32Oracle实例内存结构系统全局区(SGA)程序全局区(PGA)Oracle实例启动时分配系统全局区当服务器进程启动时分配程序全局区Oracle的内存结构包含以下两个内存区:内存区33Oracle网络配置2-2服务器端监听器配置信息包括监听协议、地址及其他相关信息。配置信息保存在名为listener.ora的文件中。在安装服务器软件时自动配置一个监听器客户端的网络服务名配置信息包括服务器地址、监听端口号和数据库SID等,与服务器的监听器建立连接。配置信息保存在名为tnsnames.ora的文件中Oracle中的NetConfigurationAssistant和Ne