术语"架构"的解释

Zak*_*aki 5 xml database schema

我需要一个简单的英语解释"schema",如数据库模式和XML模式.

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

Che*_*eso 11

定义

模式定义数据的结构,无论您将其存储在数据库或XML文件中还是其他位置.

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

约束

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

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

应用于XML

XML模式只定义符合XML文档的结构.有一个W3C标准用于正式描述模式,XML Schema Definition,又名XSD.(有关它的非正式描述,请参阅参考资料)还有其他方法可以正式描述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之一"并覆盖它.


Sco*_*nce 8

模式是您尝试描述的任何框架或模型.

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

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