数据库架构混淆

4
我在设计一些类时,遇到了轻微的术语危机。在 Sql Server 2005 中,“schema”是指命名空间和数据库对象的组织系统。但是对于关系型数据库而言,“schema”意味着表、字段等DDL设计。如果我理解正确的话,这就解释了为什么我在阅读 Microsoft 文档并尝试理解各种数据访问 API 时会遇到很多不协调之处。你能解释一下发生了什么吗?“schema”的定义真的有那么大的差异吗?
2个回答

6
是的,不幸的是,“schema”这个词在数据库供应商中已经被滥用了。
SQL-99 Complete, Really”说:
SQL目录是一组命名的模式。... SQL模式是由特定所有者拥有的SQL数据的命名组。...每个模式对象都有一个名称,该名称必须在其所属的模式中是唯一的(在其名称类别的对象中)。模式对象名称类别包括:
基表和视图
域和UDT
限制和断言
字符集
排序规则
翻译
触发器
SQL服务器模块
SQL调用例程
Oracle将“模式”和“用户”通用使用,这总是让我眉头紧皱。
MySQL使用“SCHEMA”作为“DATABASE”的同义词。
PostgreSQL使用“模式”,但使用“数据库”来指代标准SQL所称的“目录”。

3

您说得对。当在SQL 2005/2008中使用时,“schema”是指命名空间;而在关系型数据库讨论中,“schema”则指表、视图、存储过程、函数等的逻辑结构。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接