`

Oracle DB中的Schema

阅读更多
官方定义如下:
  A schema is a collection of database objects (used by a user.).
  schema objects are the logical structures that directly refer to the database?s data.
  A user is a name defined in the database that can connect to and access objects.
  schemas and users help database administrators manage database security.
  从定义中我们可以看出schema为数据库对象的集合,为了区分各个集合,我们需要给这个集合起个名字,这些名字就是我们在企业管理器的方案下看到的许多类似用户名的节点,这些类似用户名的节点其实就是一个schema,schema里面包含了各种对象如tables views sequences stored procedures synonyms indexes clusters and database links。
  一个用户一般对应一个schema 该用户的schema名等于用户名,并作为该用户缺省schema。这也就是我们在企业管理器的方案下看到schema名都为数据库用户名的原因。oracle数据库中不能新创建一个schema,要想创建一个schema,只能通过创建一个用户的方法解决(oracle中虽然有create schema语句,但是它并不是用来创建一个schema的),在创建一个用户的同时为这个用户创建一个与用户名同名的schem并作为该用户的缺省shcema。即schema的个数同user的个数相同,而且schema名字同user名字一一 对应并且相同,所有我们可以称schema为user的别名,虽然这样说并不准确,但是更容易理解一些。
  一个用户有一个缺省的schema,其schema名就等于用户名,当然一个用户还可以使用其他的schema。如果我们访问一个表时,没有指明该表属于哪一个schema中的,系统就会自动给我们在表上加上缺省的sheman名。比如我们在访问数据库时,访问scott用户下的emp表,通过select from emp 其实,这sql语句的完整写法为select from scott.emp。在数据库中一个对象的完整名称为schema.object,而不属user.object。类似如果我们在创建对象时不指定该对象的schema,在该对象的schema为用户的缺省schema。这就像一个用户有一个缺省的表空间,但是该用户还可以使用其他的表空间,如果我们在创建对象时不指定表空间,则对象存储在缺省表空间中,要想让对象存储在其他表空间中,我们需要在创建对象时指定该对象的表空间。
  sql> gruant dba to scott
  sql> create table test(name char(10))
  table created.
  sql> create table system.test(name char(10))
  table created.
  sql> insert into test values(' scott' )
  1 row created.
  sql> insert into system.test values(' system' )
  1 row created.
  sql> commit
  commit complete.
  sql> conn system/manager
  connected.
  sql> select from test
  name
  ----------
  system
  sql> alter session set current_schema = scott --改变用户缺省schema名
  session altered.
  sql> select from test
  name
  ----------
  scott
  sql> select owner table_name from dba_tables where table_name=upper(' test' )
  owner table_name
  ------------------------------ ------------------------------
  scott test
  system test
  --上面这个查询就是我说将schema作为user的别名的依据。实际上在使用上,shcema与user完全一样,没有什么区别,在出现schema名的地方也可以出现user名。

分享到:
评论
1 楼 datawarehouse 2012-11-28  
一直对这两个认为是一样的,现在学习了。

相关推荐

    利用python-oracledb库连接Oracledb数据库,使用示例

    python-oracledb的源码和使用示例代码, python-oracledb 1.0,适用于Python versions 3.6 through 3.10. Oracle Database; This directory contains samples for python-oracledb. 1. The schemas and SQL ...

    Oracle XML DB Developer's Guide

    5. XML Schema支持:介绍了Oracle XML DB如何支持XML Schema验证,以及如何使用它来定义和验证XML数据结构。 6. 事务管理:讨论了如何在XML DB环境中利用Oracle数据库提供的事务管理机制来保证数据的一致性和完整性...

    用Toad for Oracle的Data Dump导入和导出Schema中的数据.txt

    - 在 **Export Dump:** 和 **Import Dump:** 字段中,分别输入 Oracle 安装路径下的 `expdp.exe` 和 `impdp.exe` 文件路径。 - 示例路径:`C:\Oracle\product\10.1.0\db_3\BIN\expdp.exe` - 示例路径:`C:\Oracle\...

    Oracle XML DB应用开发Oracle Database 11g

    Oracle XML DB是Oracle Database 11g中一个重要的特性,它是Oracle公司提供的一个全面的、高性能的XML存储和处理解决方案。这个特性使得Oracle数据库能够直接处理XML数据,无需将其转换为关系模型,从而极大地提高了...

    ORACLE DB升级性能保障利器SPA最佳实践

    标题和描述中提到的知识点主要集中在Oracle数据库升级过程中如何使用性能保障工具SPA(SQL Performance Analyzer)来确保性能不受影响。SPA是Oracle提供的一个强大的性能监控和分析工具,专门用于评估数据库变更前后...

    datanamic DB_Schema_Difftective 数据库结构升级脚本制作工具

    datanamic DB_Schema_Difftective 数据库结构升级脚本制作工具 自动比较 数据库结构差异, 生成DDL脚本 支持多种数据库,数据库结构升级脚本制作的理想工具。 支持oracle, sql server, db2, informix, my sql 。。。...

    pdm(用工具生成schema和dbsvr以及blsvr)

    在数据库系统中,Schema是数据库结构的蓝图,定义了数据库中表、视图、存储过程等对象的布局和关系。它是一个逻辑结构,描述了数据是如何组织的。创建和管理Schema对于确保数据的一致性和准确性至关重要。使用专门的...

    oracle转DB2 对照

    - **Oracle** 中有一个特殊的单行表 `DUAL`,常用于测试或演示目的。 - Oracle示例: ```sql SELECT 'Hello, World!' FROM DUAL; ``` - 注意点: DB2中没有类似的表,但可以使用 `VALUES` 构造单行数据。 #### ...

    Oracle XML DB

    #### 四、Oracle 9i R2 中的 XMLDB 特性 - **增强的 XMLType**: - 支持 XML Schema,提供更精细的数据类型控制。 - 维护 DOM 忠诚度的对象关系存储方式。 - 专门针对 XML 的内存管理机制,提高可扩展性和性能。...

    解析Oracle数据库中的对象集合schema

    在Oracle中,数据库名(DB Name)是在安装时设定的,不可更改,代表了数据库文件的位置;实例名(Instance Name)是运行时的名称,影响到内存结构和进程名。 Service Name是数据库对外提供的服务标识,通常用于客户端...

    Oracle XML DB文章

    Oracle XML DB 是 Oracle 数据库系统中的一个特性,它在 Oracle 9.2 版本中首次引入,专门用于处理和存储 XML(可扩展标记语言)数据。XML 是一种标准的数据交换格式,常用于在不同系统间传递结构化信息。Oracle XML...

    db-sample-schemas-19c.zip

    为了利用这些示例模式,你需要先解压"db-sample-schemas-19c.zip",然后在已安装的Oracle 19c数据库环境中导入它们。这通常涉及到使用SQL*Plus或DBCA(数据库配置助手)进行数据泵导入(expdp/impdp)或者使用SQL...

    Oracle XML DB应用开发.rar

    6. **XMLDB API**:Oracle提供了一系列的PL/SQL包,如DBMS_XDB、DBMS_XSL_PROCESSOR等,用于在PL/SQL中操作XML数据,包括读写XML文档、执行XQuery、处理XML Schema等。 7. **Web服务集成**:Oracle XML DB可以作为...

    Oracle9i数据类型Java数据类型Schema类型对比.doc

    Schema 类型通常与数据库系统提供的数据类型一致,例如 Oracle9i 中的 NUMBER、CHAR 和 DATE。 4. 其他数据库系统的数据类型对比: - DB2:它的数据类型如 SMALLINT, INTEGER, BIGINT, REAL, DOUBLE 与 Java 类型...

    Oracle XML DB英文资料

    在Oracle9i Database Release 2中引入的XML DB Repository(XML数据库仓库)是一项核心功能,它允许用户直接将XML文档存储在数据库中,无需在文件系统和关系型存储之间做出选择。 XML文档通常具有层次结构,适合...

    Oracle XML DB的发展历程.pdf

    在Oracle 10g中,XMLType不仅提供了存储XML文档的高效方式,还引入了XML Schema支持,允许对XML数据进行结构化验证。此外,XQuery和XPath的支持让开发人员能够更方便地查询和操作XML文档。Oracle XML DB在此阶段已经...

    oracle 与db2比较

    例如,Oracle中的“回滚段”没有在DB2中找到对应的组件,而DB2中的“容器”则没有在Oracle中出现。 ##### 2. 数据类型对比 - **Oracle**:支持CHAR(N)、NCHAR(N)、VARCHAR2(N)、NVARCHAR2(N)、NUMBER(P,S)、DATE、...

    Oracle XML DB和DB2 pure XML在基于XML电子病历实现技术方面的比较分析.pdf

    此外,Oracle XML DB的XQuery支持和XML Schema验证功能,使得数据的访问和验证更为严格和高效。 相比之下,DB2 pureXML则是IBM专门为XML数据设计的关系数据库系统。DB2 pureXML同样支持XML文档的原生存储,并提供了...

    DB2与Oracle 体系架构

    - **数据库对象与用户关联**:Oracle的模式(schema)必须与用户匹配,这限制了对象的创建和管理,但增加了权限管理的安全性。 ### 结论 DB2与Oracle在体系架构上各有侧重,DB2强调了灵活性和多数据库支持,适合于...

    基于Oracle XML DB的EDI系统设计.pdf

    Oracle XML DB支持标准的XML规范,如XML Schema(用于定义XML文档的结构和内容模式)和XPath(用于在XML文档中查找特定节点),同时也支持XSLT(用于转换XML文档的样式表语言)。 XML Schema允许开发者定义XML文档...

Global site tag (gtag.js) - Google Analytics