代码之家  ›  专栏  ›  技术社区  ›  Zak

术语“模式”的解释

  •  5
  • Zak  · 技术社区  · 15 年前

    我需要一个简单的英语解释“模式”,如数据库模式和XML模式。

    编辑: 当有人说要创建数据库模式时,这是否意味着要为表中的字段创建约束?

    9 回复  |  直到 12 年前
        1
  •  11
  •   Cheeso    14 年前

    定义

    模式定义数据的结构,无论您是将其存储在数据库、XML文件还是其他地方。

    例子
    假设您使用关系数据库服务器来存储公司的数据,并且您有一个“客户”表来跟踪每个客户的信息。CUSTOMER表的模式可能规定每个CUSTOMER条目都应该有一个名字、姓氏和电话号码。创建客户时 进入 您只能存储这些字段。

    约束条件

    架构可以指定字段是可选的还是必需的。在本例中,您可能需要所有这些字段都存在。如果该模式是由某种机制实施的,那么在不指定电话号码的情况下,将无法在数据库中输入客户条目。或者,您的模式可以指定一个手机号码作为可选的。

    在本例中,模式没有“大小”作为客户结构中的元素的槽,因此不能将该元素插入到任何客户条目中。另一方面,一家T恤公司可能会使用包含“大小”字段的客户模式。模式因其所描述的内容以及使用模式的人员或各方而异。

    应用于XML

    XML模式只是定义一致的XML文档的结构。W3C标准正式描述了模式,XML模式定义,也就是XSD。( See the primer 对于它的非正式描述),也有其他方法来正式描述XML文档的结构或模式,这不是事实 标准 但目的是一样的。 Relax-NG 是一个。

    非正式图式

    还有非正式的——或者至少, 不正式 -描述模式的方法,尤其是围绕XML文件或其他格式。提供示例XML文件和文本描述是指定模式的一种常见的非正式方式。我称之为“非正式的”,因为示例文档不可能描述关于模式的所有内容。但是,一个示例文档加上几行英语文本来描述预期的内容,通常是描述XML模式的好方法,甚至是最好的方法。这基本上就是大多数网络的工作方式。

    考虑的情况 JSON . 它现在正被用来存储和传输信息,在某些情况下,它是XML的替代品。据我所知,没有正式的机制来描述JSON的模式。无法指定可接受或“兼容”的JSON文档的外观。人们所做的是提供一个示例或模板,这已经足够好了。没有强制执行。如果您提供符合预期格式的JSON包,那么它将按预期工作。如果你不这样做,那就行不通了。

    非正式模式也是大多数传统的纸质企业的工作方式。他们拿出一张表格并举例说明- 如果您想下订单,请用这种方式填写表格 .

    执行或确认

    模式可以自动执行,也可以不自动执行。关系数据库服务器通常提供严格的模式强制。必须定义架构才能创建表,并且任何数据库客户端都必须符合该架构。一些基于XML的系统对XSD执行文档验证以强制模式。很多人没有。正如我所说,大多数网络都不那么正式。


    回答问题的第二部分,
    为客户创建数据库架构 表示定义属于客户实体(在实体意义上)的字段,或可以存储在客户表(在数据库中)中的列,或客户元素(在XML文档中)的属性和子元素,以及对这些字段的约束(字段是必需的、可选的等)。

    约束限制特定字段中数据的类型或格式。一个示例约束是字段是必需的还是可选的。另一个约束可能是:“客户名称不能仅由数字字符组成。”更严格的约束可能会说:“客户名称可能根本没有数字字符。”对于T恤公司,约束可能是:“大小”元素必须是s、m、l、xl之一。形式模式语言允许您显式地指定这些约束,以一种计算机程序可以验证遵从性的方式。在非正式的模式规范中,您只需编写或说“大小必须是S、M、L、XL中的一个”,这就涵盖了它。

        2
  •  8
  •   Scott Lance    15 年前

    模式是您试图描述的框架或模型。

    数据库模式将显示每个表及其字段及其与数据库中其他表的关系,但不包括任何实际数据。

    XML模式也是如此,它将向您显示XML文档的框架,但不显示任何数据。

        3
  •  4
  •   John Topley    15 年前

    模式是对数据表示的描述。这是数据结构——字段和类型。没有比这更重要的了。

        4
  •  4
  •   Mitch Wheat    15 年前

    模式描述实体及其相互关系。

    模式是模型。

    实体是表示某个对象(在 领域 ,这是您正在建模的情况)。

        5
  •  3
  •   Matthew Jones    15 年前

    维基百科:

    [XML架构是]定义 结构、内容和 范围,XML的语义 文件。

    该语句也适用于数据库模式。

        6
  •  2
  •   Archimedes Trajano    14 年前

    图式 只是类型定义的另一个名称,您可以在其中限制对象将具有的值。在大多数情况下,有一些框架/工具可以将二进制数据的blob解析成您可以访问的结构(而不是您自己构建解析器)。

    在数据库上下文中,可以将表名、字段名、字段类型、关系视为限制预期数据类型的一种方法。

    在XML上下文中,指定每个元素将具有的类型以及其他类型。

    在OO语言中,您可以将其视为类定义。

    在C中,可以将其视为typedef结构。

        7
  •  0
  •   austin cheney    15 年前

    数据库模式与XML模式截然不同。模式是用于定义结构语法的语言。数据库模式将使用数据库自己的元数据定义结构。这样模式就可以使用数据库自己的描述符形成数据存储文档。

    然而,XML不是数据存储设备。XML是一种元语言,它是用于创建语言的语法。XML模式是用于创建正式语言语法的XML定义语言。XML模式和数据库模式的区别在于,存在数据库模式是为了表示数据,而存在XML模式是为了表示标记语言结构,而不考虑它可能包含或不包含的任何数据。

        8
  •  0
  •   anishMarokey FIre Panda    15 年前

    数据库架构是与数据库用户分离的独特命名空间。您可以将模式视为对象的容器。模式可以在数据库中创建和更改,并且可以授予用户访问模式的权限。模式可以由任何用户拥有,并且模式所有权可以转移。

    Importance of Database Schemas in SQL Server

        9
  •  0
  •   Erwin Smout    15 年前

    “架构是模型。”

    “问题是,对于初学者来说,这个解释并不能解释清楚。”

    模式确实是一个模型。一个模型就是任何一个模型的观察者都可以自己形成一个真实的图像,当模型被有效地建立起来的时候,这个图像会是什么样子的。例如,必须建造的桥梁的比例模型,以及它在环境中的集成方式。或是要建造的房子的平面图。

    数据库模式是数据库的模型,它允许模型的任何查看者自己形成数据库注册的信息类型(因此可以从中检索到什么类型的信息)、什么约束适用于注册的信息(即注册的信息必须满足什么规则)、什么ki当将信息从数据库移植到用某些主机语言等编写的程序时,需要进行ND转换(如果有)。

    物理数据库模式告诉查看器哪些信息块在物理上彼此靠近(因此查询“一次性”很有趣),哪些索引存在于注册信息上(因此,如果我们想要快速响应,应用哪些选择标准非常有趣),等等。

    所有这些都不需要实际构建数据库,也不需要让查看模型的人可以使用数据库。