为了比较不同供应商(Oracle,SQL Server,DB2,MySQL和PostgreSQL)的数据库,我如何唯一地标识任何对象,我是否需要目录?例如,在Java的DatabaseMetadata中,我至少应指定目录和模式fooPattern。
目录仅仅是数据存储的抽象吗?
在Oracle中:
在PostgreSQL中:
在MySQL中:
在Microsoft SQL Server中:
dbo
因此,我认为您的问题的答案是:
取决于实现,是否需要目录名称来标识对象。“目录”,“模式”和“数据库”的含义因一种实现方式而异。
是的,目录是数据存储的抽象。我认为也应该将其定义为一个独立的隔离名称空间,但并非所有SQL引擎都可以做到这一点。
__所有供应商都很好地定义了 数据库 和 架构 。 目录 有时与“数据库”(至少在Oracle和Postgres中)同义,有时与“ schema”同义,有时又与两者同义。术语 目录 通常还表示元数据收集(又名系统表)。