Oracle 公司是世界上最大的信息管理软件及服务提供商,因其复杂的关系数据库产品而闻名。Oracle 的关系数据库是世界上第一个支持 SQL 语言的数据库。支持服务器/客户机等部署。Oracle 数据库管理系统是目前世界上最流行的一款关系型数据库管理系统。
一、Oracle 数据库体系结构简介
平常说的 Oracle 或 Oracle 数据库指的是 Oracle 数据库管理系统(管理数据库访问的计算机软件:Oracle database manager system)。它由 Oracle 数据库 和 Oracle 实例构成(安装的时候会看到在复制Oracle文件和创建Oracle实例)。
☛ Oracle 数据库:一个相关的操作系统文件(既存储在计算机硬盘上的文件)集合,这些文件组织在一起,成为一个逻辑整体,就称为 Oracle 数据库。Oracle 用它来存储和管理相关的信息,Oracle 数据库必须要与内存里的实例合作,才能对外提供数据库管理服务。
☛ Oracle 实例:位于物理内存里的数据结构,它由操作系统的多个后台进程和一个共享的内存池所组成。共享的内存池可以被所有的进程访问。Oracle 用它们来管理数据库访问。用户如果要存取数据库(硬件上的文件)的数据,必须通过 Oracle 实例才能完成,不能直接读取硬盘上的文件。其实 Oracle 实例就是平常所说的数据库服务(service):用来访问数据库文件。
区别:实例可以操作数据库,在任何时刻一个实例只能与一个数据库关联,访问一个数据库;而同一个数据库可由多个访问实例。
二、Oracle 数据库的启动
Oracle 数据库是一个庞大的软件。启动它会占用大量的内存和CPU资源,如果不想让 Oracle 数据库自行启动,可以进行如下设置:我的电脑—管理—服务和应用程序—服务:将 OracleService ORCL和 OracleOraDb10g_home1TNSListerner 设置为手动,其他禁用。
三、Oracle 数据库管理
Windows 用户可以通过企业管理器:Enterprise Manager Console 进行管理,Linux 用户只能通过命令行设置。下面我们就了解下管理中涉及到的概念问题,具体操作在用到的时候,上网查询即可。
【1】Oracle 的(资源限制)概要文件:
● 为了控制系统资源的使用,可以利用资源限制概要文件。
● 资源限制概要文件是 Oracle 安全策略的重要组成部分,利用资源限制概要文件可以对数据库用户进行基本的资源限制,而且可以对用户的口令进行管理。
● 使用资源限制概要文件可以限制下列资源的使用:
▶ 每个用户的并发数据库会话
▶ 每个会话的最大链接事件和空闲时间(以分计)
▶ 可供多线程服务器会话使用的最大的服务器内存
● 使用资源限制概要文件可以对每个指定此概要文件的用户账号进行一下设置
▶ 允许用户连续输入错误口令的次数, 在此之后 Oracle 将锁定账户
▶ 口令的过期时间(以天计)
▶ 允许用户使用一个到期口令的天数, 这之后 Oracle 将锁定账号
▶ 是否检查一个账号口令的复杂性, 以防止账号使用明显的口令
● 每个 Oracle 数据库都有一个默认的资源概要文件,名为 DEFAULT。当创建一个新的数据库用户且不对用户分配一个特定的概要文件时,Oracle 自动给用户分配数据库的 DEFAULT 概要文件.。默认时,数据库 DEFAULT 概要文件的所有资源限制设置为无限制的。
【2】模式(schema): 组织相关数据库对象的一个逻辑概念,与数据库对象的物理存储无关。一个模式只能属于一个数据库用户,而且模式的名称与用户的名称相同。
● Oracle 数据库的每个用户都拥有唯一的模式。默认情况下,用户所创建的所有模式对象都保存在自己的模式中。在Oracle 数据库中模式与用户账号为一一对应的关系。
● 如果要从一个模式中引用另一个模式中的对象,可以使用 点表示法。不同模式中的对象名可以重复。例如:ficcapp用户要访问 scott 用户的 emp 表,就需要使用:scott.emp
● Oracle 数据库中有许多类型的对象,但不是所有的对象都可以组织在模式中。可以组织在模式中的对象有:表、索引、触发器等。有一些不属于任何模式的数据库对象,称为非模式对象。如:表空间、用户账号、角色、概要文件等。
【3】用户的默认表空间:
● 表空间是数据库的逻辑存储设备,它把数据库信息组织成物理存储空间。
● 表空间由数据文件组成。用户的各种模式对象(如表、索引、过程、触发器等) 都是放在表空间中。
● 对每个数据库用户,都可以设置一个默认表空间。当用户创建一个新的数据库对象(如表),并且不明确地为此对象指定表空间时,Oracle 会把所创建的这个新数据库对象存放到用户默认的表空间中。
● 如果不给用户指定默认表空间,则用户的默认表空间为 USERS 表空间。
【4】用户的临时表空间:
● 一般 SQL 语句在完成任务时需要临时工作空间。例如:一个用来连接和排序大量的查询需要临时工作空间来存放结果。除非另外指定,一般情况下,用户的临时表空间是 TEMP 表空间。
● 若数据库中没有创建 TEMP 表空间,则用户的临时表空间为 SYSTEM 表空间。
● 因为 SYSTEM 表空间是用来保存数据库系统信息(数据库自身信息的内部系统表和视图 ---- 数据字典;所有 PL/SQL 程序的源代码 ---- 包括函数,触发器等)的。如果用户大量使用此表空间存储自己的数据,将会影响系统的执行效率。因此一般不建议用户使用 SYSTEM 表空间。
【5】权限管理:
● 在为一个 Oracle 数据库系统创建用户之后,这些用户既不能与数据库服务器连接,也不能做任何事情,除非他们具有执行特定数据库操作的权限。
● Oracle 中的数据库访问权限类型共有两种:
▶ 系统权限:一种功能很强的权限,他向用户提供了执行某一种或某一类型的数据库操作的能力。
▶ 对象权限:控制用户是否能在特定数据库对象(如表、视图或存储过程) 上执行特定类型的操作。
● 常见的系统权限:
● 使用系统权限:
▶ 用户连接到数据库必须具备 create session 权限。
▶ 如果用户具有 create any procedure 系统权限,则能够创建、修改、删除或执行任何存储过程,程序包和函数。
▶ 如果用户具有 create any table 系统权限,则能够在自己的模式中创建、修改、删除或查询任何表。
▶ 开发人员一般需要 create table、create view 和 create type 系统权限。
● 常见的对象权限:
【6】利用角色进行权限赋值:
● 数据库应用程序所需要的系统权限和对象权限很多。为了使 ”安全管理” 成为比较容易的工作,可以利用角色赋值。
● 角色(role):系统权限和对象权限的一个集合。可以将角色授予用户,被授予角色的用户会自动拥有角色所具有的权限。如果修改了角色所拥有的权限,则被授予角色的用户的权限也会随之自动修改。
四、SQL语言分为以下三种类型
【1】DML:Data Manipulation Language 数据操作语言:用于插叙与修改数据记录,包括如下语句:
● INSERT:添加数据到数据库中
● UPDATE:修改数据库中的数据
● DELETE:删除数据库中的数据
● SELECT:选择(查询)数据:是SQL语言的基础,最为重要。
【2】DDL:Data Definition Language 数据定义语言:用于定义数据库的结构,比如创建、修改或删除数据库对象,包括如下SQL语句:
● CREATE TABLE:创建数据库表
● ALTER TABLE:更改表结构、添加、删除、修改列长度
● DROP TABLE:删除表
● CREATE INDEX:在表上建立索引
● DROP INDEX:删除索引
【3】DCL:Data Control Language 数据控制语言:用来控制数据库的访问,包括如下SQL语句:
● GRANT:授予访问权限
● REVOKE:撤销访问权限
● COMMIT:提交事务处理
● ROLLBACK:事务处理回退
● SAVEPOINT:设置保存点
● LOCK:对数据库的特定部分进行锁定