代码之家  ›  专栏  ›  技术社区  ›  P a u l

数据库模式混淆

  •  1
  • P a u l  · 技术社区  · 15 年前

    当我设计一些课程时,我有一个小小的术语崩溃了。在SQL Server 2005中,“架构”指的是名称空间和数据库对象的组织系统。但是对于关系数据库,一般来说,“模式”指的是表、字段等的DDL设计。如果我是对的,它解释了我在阅读微软文档和理解各种数据访问API时的许多不一致之处。你能解释一下这里发生了什么吗,在“模式”的定义上真的有那么大的区别吗?

    2 回复  |  直到 15 年前
        1
  •  3
  •   Bill Karwin    15 年前

    是的,不幸的是,“模式”这个词在数据库供应商中已经超载了。

    SQL-99 Complete, Really “说:

    SQL目录是一组命名的模式。…

    SQL架构是由特定的 . …每个架构对象都有一个必须唯一的名称 (在其名称类的对象中)在其所属的架构中。架构对象名称类包括:

    • 基表和视图
    • 域和UDT
    • 约束和断言
    • 字符集
    • 排序规则
    • 翻译
    • 触发器
    • SQL Server模块
    • SQL调用的例程

    甲骨文使用“模式”和“用户”交替使用,这总是让我的眉毛扬起。

    MySQL使用 SCHEMA 作为 DATABASE .

    PostgreSQL使用“模式”,但使用“数据库”来引用标准SQL所称的“目录”。

        2
  •  0
  •   Sam Axe    15 年前

    你说得对。在SQL 2005/2008中,“模式”指的是名称空间,而在关系数据库讨论中,“模式”指的是表、视图、过程、函数等的逻辑结构。