术语“架构”的解释

时间:2009-09-30 14:41:38

标签: xml database schema

我需要对“架构”进行简单的英语解释,如数据库架构和XML架构。

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

9 个答案:

答案 0 :(得分:11)

定义

模式定义数据的结构,无论是将数据存储在数据库中还是存储在XML文件中。

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

约束

架构可以指定字段是可选的还是必需的。在此示例中,您可能需要存在所有这些字段。如果通过某种机制强制执行架构,则无法在未指定电话号码的情况下将客户条目输入数据库。或者,您的架构可能会指定一个手机号码,作为可选。

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

应用于XML

XML模式只定义符合XML文档的结构。有一个W3C标准用于正式描述模式,XML Schema Definition,又名XSD。 (See the primer对其进行非正式描述)还有其他方式可以正式描述XML文档的结构或模式,这些方法不是默认的标准,而是用于相同的目的。 Relax-NG就是一个。

非正式架构

还有非正式的 - 或者至少是不太正式的 - 描述模式的方式,特别是围绕XML文件或其他格式。提供示例XML文件和文本描述是指定模式的一种常见,非正式方式。我称之为“非正式”,因为示例文档无法描述有关模式的所有内容。但是,一个示例文档与几行英文文本相结合,描述了什么是什么,通常是描述XML模式的足够好,甚至是最好的方式。这基本上是大多数网络的工作方式。

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

非正式架构也是大多数老式纸质企业的工作方式。他们分发表格并举出一些例子 - “如果你想下订单,请用这种方式填写表格”

执行或验证

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


在回答问题的第二部分时,
为客户创建数据库模式意味着定义属于客户实体的那些字段(在实体意义上),或者可以存储在客户表中(在数据库中)的列,或属性Customer元素的子元素和元素(在xml文档中),以及对它的约束(是需要的字段,可选字段等)。

约束限制特定字段中数据的类型或格式。一个示例约束是该字段是必需的还是可选的。另一个约束可能是:“客户名称不能仅由数字字符组成。”更严格的约束可能会说:“客户名称可能根本没有任何数字字符。”对于T恤公司,约束可能是:“size”元素必须是{S,M,L,XL}之一。正式模式语言允许您以计算机程序可以验证合规性的方式明确指定这些约束。在非正式的架构规范中,您只需编写或说“大小必须是S,M,L,XL之一”并覆盖它。

答案 1 :(得分:8)

架构是您要描述的任何内容的框架或模型。

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

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

答案 2 :(得分:4)

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

架构是模型。

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

答案 3 :(得分:4)

模式是数据表示的描述。它是数据结构 - 字段和类型。没有比这更真实的了。

答案 4 :(得分:3)

来自维基百科:

  

[XML Schema]是一种定义的方法   结构,内容和一些   范围,XML的语义   文档。

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

答案 5 :(得分:2)

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

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

在XML上下文中,您可以指定每个元素的类型和其他类型。

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

在C中你可以把它想象成typedef struct。

答案 6 :(得分:0)

数据库模式与XML模式完全不同。模式是用于定义结构语法的语言。数据库模式将使用数据库自​​己的元数据定义结构。因此,模式可以使用数据库自​​己的描述符形成数据存储文档。

然而,

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

答案 7 :(得分:0)

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

Importance of Database Schemas in SQL Server

答案 8 :(得分:0)

“架构是模型。”

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

架构确实是一种模型。模型是任何允许模型的任何观察者形成他/她自己的形象的图像,其中现实将在建模的事物被有效地建立时看起来像。例如,必须构建的桥的比例模型,以及它如何在其环境中集成。或者是要建造房屋的纸质计划。

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

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

所有这些都没有实际构建数据库,或者没有必须可供查看模型的人使用。