首页 文章

如何在Oracle中定义Schema?

提问于
浏览
0

我最近不得不在Oracle数据库上做一些工作 . 我来自MS SQL背景 . 我仍然试图了解Oracle中的一些基本定义

架构 - 对我来说这只是意味着数据库的结构 . 其中包括表,索引和任何约束的结构 . 这不包括存储在表中的任何数据 . 数据库只包含一个Schema和一组数据 .

但在Oracle中,似乎Schema被定义为结构和数据 . 数据库可以容纳许多模式 .

这是准确的吗?

1 回答

  • 2

    无论数据库引擎如何,将数据模型称为“模式”的情况并不少见 . 这不一定是任何关系数据库引擎定义术语的方式,但从上下文中可能非常清楚,您只谈论对象的定义而不是实际数据 .

    在SQL Server和Oracle中,"schema"是一种收集大量相关对象,代码和数据的方法 . 如果在SQL Server中定义架构并在该架构中创建表 foo 以及 usp_setFoo 过程,则 foo 中的数据将成为该架构的一部分 . 同样,Oracle模式通常涉及表和索引定义,数据,代码等 .

    从技术上讲,在Oracle中,模式被定义为特定用户拥有的对象集 . 实际上,Oracle模式通常大致类似于SQL Server“数据库” . Oracle通常有两个级别的对象命名(schema.object),而不是SQL Server(database.schema.object)中的三个级别 . 如果您正在使用带有可插拔数据库的Oracle 12.1企业版,那么可以稍微改变一点,Oracle可插拔数据库可以类似于SQL Server数据库 .

相关问题