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

“模式”一词的解释

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

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

    编辑:

    9 回复  |  直到 13 年前
        1
  •  11
  •   Cheeso    16 年前

    定义

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

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

    在这个例子中,模式没有将“size”作为客户结构中的元素,因此您无法将该元素插入任何客户条目中。另一方面,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恤公司来说,一个约束可以是:“size”元素必须是{S、M、L、XL}中的一个。形式模式语言允许您以计算机程序可以验证合规性的方式明确指定这些约束。在非正式的模式规范中,你只需写或说,“大小必须是S、M、L、XL之一”,这就涵盖了它。

        2
  •  8
  •   Scott Lance    16 年前

    模式是你试图描述的任何东西的框架或模型。

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

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

        3
  •  4
  •   John Topley    16 年前

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

        4
  •  4
  •   Mitch Wheat    16 年前

    模式即模型。

    实体是表示某个对象的一种方式(在 领域 ,这就是你正在建模的情况)。

        5
  •  3
  •   Matthew Jones    16 年前

    维基百科:

    [XML Schema是]一种定义 结构、内容和,对一些人来说 XML的语义 文件。

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

        6
  •  2
  •   Archimedes Trajano    16 年前

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

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

    在面向对象语言中,你可以把它看作是类定义。

    在C中,你可以把它看作typedef结构体。

        7
  •  0
  •   austin cheney    16 年前

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

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

        8
  •  0
  •   anishMarokey FIre Panda    16 年前

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

    Importance of Database Schemas in SQL Server

        9
  •  0
  •   Erwin Smout    16 年前

    “模式就是模型。”

    “问题是,对于初学者来说,这种解释并没有澄清。”

    模式确实是一个模型。模型是任何允许模型的任何观察者形成他/她自己的图像的东西,当建模的东西被有效地构建时,现实会是什么样子。例如,必须建造的桥梁的比例模型,以及它如何与环境融为一体。或者是待建房屋的平面图。

    数据库模式是数据库的一个模型,它允许模型的任何查看者自己形成数据库注册了哪种信息(因此可以从中检索到哪种信息)的图像,对注册的信息应用了哪些约束(即注册的信息必须满足哪些规则),将信息从数据库移植到用某种宿主语言编写的程序时需要进行哪些转换(如果有的话),等等。

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

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