一些基本的oracle概念

hgu*_*ser 4 oracle11g

嗨:在我们的新应用程序中,我们必须使用oracle作为db,我们之前使用mysql/sqlserver,当我来到oracle时我很困惑它的概念,例如表空间,对象,架构表,索引,程序,数据库链接,...... :(

架构对用户是封闭的,我无法做到.

因为当我们使用mysql时,我只知道一个数据库包含尽可能多的表,并且包含尽可能多的用户,用户对不同的表具有不同的身份验证.

但在甲骨文中,一切都是不同的.

任何人都可以告诉我oracle的一些基本概念,以及一些快速启动文档?

Ste*_*mon 15

Oracle对常用术语有特定的含义,而你是对的,这很令人困惑.我将从下到上构建一个术语层次结构:

  • 数据库 - 在Oracle中,数据库是构成整个数据集合的文件集合.要了解Oracle的含义,请将数据库管理系统(dbms)描绘为非运行状态.所有这些文件都是您的"数据库".
  • 实例 - 当您启动Oracle软件时,所有这些文件都会变为活动状态,内容会被加载到内存中,并且您可以连接一个实体.许多人会使用术语"数据库"来描述正在运行的dbms,但是,一旦所有内容都正常运行,Oracle就会将其称为"实例".
  • 表空间 - 一种抽象,允许您在不担心物理细节的情况下考虑一大块存储.创建用户时,要求Oracle将该用户的数据放在特定的表空间中.Oracle通过表空间隐喻管理存储.
  • 数据文件 - 实际存储数据的物理文件.数据文件分组到表空间中.如果您使用已分配给用户或用户组的所有存储,则将数据文件(或使现有文件更大)添加到他们配置为使用的表空间.
  • 用户 - 封装可以登录到Oracle实例的帐户的权限,身份验证信息和默认存储区域的抽象.
  • 架构 - 特定用户拥有的表,索引,约束,触发器等.用户和模式之间存在一对一的对应关系.架构与用户具有相同的名称.两者之间的区别在于用户概念全部是关于帐户信息,而模式概念是处理逻辑数据库对象.

这是一个非常简化的术语列表.例如,对于Oracle实例,存在不同的"运行"状态,并且很容易进行关于事物意义的非常细致的讨论.这是一个实用的练习,可以让你把手放在这些东西上,并使区别更清晰:

  1. 启动已创建的Oracle实例.此步骤将一组文件或Oracle所说的数据转换为正在运行的Oracle实例.
  2. 使用CREATE TABLESPACE命令创建表空间.您必须指定一些数据文件以放入表空间,以及一些存储参数.
  3. 使用CREATE USER命令创建用户.您将看到您必须指定的项目与密码,权限,配额等有关.指定将用户的数据存储在您在步骤2中创建的表空间中.
  4. 使用您在步骤3中使用新用户创建的凭据连接到Oracle.键入"SELECT*FROM CAT".什么都不应该回来.您的用户有一个架构,但它是空的.
  5. 运行CREATE TABLE命令.一些数据插入表中.架构现在包含一些对象.