数据库应用-XML数据存储(XML Speicherung)-2

来源:互联网 发布:戚家刀 淘宝 编辑:程序博客网 时间:2024/05/16 23:49

STORED

使用RDMS

RDMS即关系型数据库管理系统。
目的:
目的是为了通过使用RDMS来管理半结构化数据
上一节已经了解基本的从XML文档,生成对应的关系视图集(因为一个XML文档,可能生成多个表不是吗)的方法。下面我们要学习的是,如何使生成的表能够更好的反映文档的结构。

inlining(Mengenwertigkeit)

RDBMS中存在管理集的标准的技术( Standardtechnik für das Verwalten von Mengen mit RDBMSen.(Herkömmliche RDBMSe-NF2 soll hier verwendet werden))
一个关系集中的不同的表,可以通过join来互相连接(Bestandteile der Menge in separater Relation, Verknüpfung über Fremdschlüssel)
另外一个问题是什么时候用哪种表达比较好呢??//为什么问题变了??而且怎么就没了??还没说inlining是什么呢??

STORED

STORED是Semistructured TO RElational Data的缩写。
目的是,再说一遍通过使用RDBMS来管理半结构化的数据
在这里应该注意的是,并没有生成真实的表格,而是定义了关系视图(View)(Auswahl und freie Definition der relationalen Sichten, keine generischen Tabellen)

可能出现的问题

  1. Auswahl der Sichten, die man materialisieren will…
  2. mögliche Randbedingungen:…
  3. Plattenplatz, Maximalanzahl von Relation.
  4. 关系视图只包含了文档的部分内容。
    //上面三个因为旷课,所以。。。暂时不全不能。
    //S9-10给的图和表达感觉有点出入,待查。里面写着RDBMS的Schema由文档的类型决定,但它给的图确说明了是有文档的内容决定。
    这里写图片描述
    这里写图片描述

Storage Queries

Storage Queries 用于描述从半结构化的数据岛关系模型的映射。
例子:
M1a=
From Audit.taxpayer:$X
{name:$N, adr: $P, OPT{audited: $A}, OPT{taxamount:$T}}
where typeOF($P, “string”)
STORE Taxpr($X, $N, $P, $A, $T)

M1b=
FROM Audit.taxpayer:$X
{
name: $N,
adr:{street $S, OPT{city $C, OPT{zip $Z}},
OPT{audited: $A}, OPT{taxamount: $T}
}
STORE Taxpr ($X, $N, $S, $C, $Z, $A, $T)
一点注解:
1. from语句后面的属相默认为key属性。(Erste Variable in der FROM-Klausel ist per Default Schlüssel-Variable(d.h. man geht davon aus, dass Objekte OID haben, die man auslesen kann).)
2. Opt属性如果没有给出那么指默认为NULL值。
//小问题,当必须的属性没有赋值的时候会怎么样呢??
3. 一般情况下,同一组数据可以由多种不同的视图
例子2:
M2=
FROM Audit.taxpayer: $X
{name[1]: $N, audited[1]:$A1, OPT{audited[2]:$A2}}
STORE Taxpr2($N, $A1, $A2)
一点注解:
对象的不同的出线可以指向相同的Label(Objekt kann mehrere ausgehende Kanten mit gleichem Label haben.)
例子3:
M3a=
FROM Audit.irscenter: $X
{centername: $N, centeraddress: $A}
STORE IrsCenter($X, $N, $A)
M3b=
FROM Audit.irscenter: $X.hearing: $Y
{hearingdate: $D, taxpayername: $TN, auditorname: $AN, decision: $Z}
KEY $Y
STORE Hearings($Y, $X, $D, $TN, $AN, $Z)
又是一点注解
例子阐释了如何处理集(irscenter包含了hearing元素集)(Beispiel illustriert Umgang mit Mengen. irscenter enthält Menge von hearing-Elementen)//这个不是很了解,还有hearing是什么鬼???是另一个文档的吗?但是当前文档是不包含有这个东西的啊???
另外这里的KEY可以算是多余的。
例子4
已知有模型(Muster):Audit.taxpayer: {name[1], phone[*]}
M2=
FROM Audit.taxpayer: $X{name: $Y, phone: $Z}
KEY $Z
STORE R2($X, $Y, $Z)
一点注解:
默认key属性为Muster中的第一个属性。否则的话则需要通过KEY显示的表示出来。
尽管在文档中Taxpayer-ID只出现一次,但是在关系中他可以多次出现(Taxpayer-ID kann als Attribut in Relation mehrmals vorkommen(obwohl in Dokument nur einmal))//不是很懂??
//其实不懂Muster是什么东西,是已经建好的Storage Queries吗??
例子5
Audit.taxpayer: {name[1], phone[2], address[1]:{street[1], city[1]}}
一点注解:
phone[1]可以不用(phone[1] kann weggelassen werden)

Overflow Graph

文档的其余内容,通过EDGE格式进行存储(Rest der Dokument.Speicherung im EDGE-Format.)

到目前为止的总结

Gegenüberstellung Dokumenttyp-spezifischer vs. generischer Speichrung.
Verdeutlichung, warum zweite Alternative überlegen.
Abbildung XML RDBMS mit Hilfe von Queries(sogenannte Storage Queries)

mining

视图的选择

正如题目提到的,在书写具体的Storage Queries,我们应该先确定我们要求的是一个怎样的视图。我们应该找到一种常用的结构模式,然后构建对应的Storage Queries。(Wie kommt man zu den Storage Queries??(Strukturelle) Patterns finden, die häufig vorkommen. Diese Patterns auf Storage Queries abbilden)
Support eines Patterns:
我们用Pattern出现的次数来表示Pattern的支持度(Support eines Patterns)或者,换种表示方式,我们用包含有Pattern的文档的数量表示其支持度。
//其实不懂这个Pattern,究竟是指什么东西???
Query Support eines Patterns:
给定一个访问的集合Q1,...,Qk,Pattern P的访问支持度(Query Support eines Patterns)为包含有P得访问的数量
Pattern P的访问支持度越高,代表着越多的访问对应的结果包含有P。(Je größer Query-Support, für desto mehr Queries ist das Pattern Teil des Ergebnisses)
知道高访问支持度的Pattern对我们有什么好处呢??
(Was es nützt mir, Patterns mit hohem Query Support zu kennen/ explizit in Relatioinen abzulegen??)
Pattern的支持度是不是就代表了Pattern出现在数据库中的频率呢??
Pattern的访问支持度又能否代表访问包含有Pattern的频率呢??
(Eventuell mit Gewichtung der Anfragen.??)
Datenbestand, Queries - ebenfalls Patterns//三个名词,不知表示什么意思??
这里写图片描述
上方为三个访问,下面是两个Pattern。左边的Pattern的Query-Support为3,右边的为1.
现在我们的目的改变为:
1. 寻找具有高Query Support的Muster
2. Muster之间的重叠应该尽可能的少(为什么?)
如果重叠高的话,也就以为着文档中的同一个片段将被多次的选用。(Ausschnitt des Dokument wird i.Allg. mehrmals erfasst.)
在Subsuming Query的时候一般只用一个Muster的实例(什么意思???)(Für Subsuming Query braucht man i.d.R. nur Instanzen eines Musters.)

Frequent Pattern Mining

目的:找出所有(Query-)Support大于给定的阀值的Pattern(称这些Pattern为Frequent Pattern)
Frequent Pattern是选择关系视图的依据。
Fk表示包含有k个叶子的Frequent Pattern

视图选择的算法

Pi:用于构建第i个Storage Query的模型(Muster, das Grundlage der i-ten Storage Query ist.)
1. 得出所有支持度达标的Label Paths,也就是F1
2. 构建Frequent Patterns
3. 并不是每个Frequent Pattern都对应一个视图,因此应该使用使用贪心算法选出对应的Pattern:
*通过选出F1中含有极高支持度的路径作为第一个Pattern P1
*Pl的选择要满足下列条件:
    1. 使得P1,...,Pl1的重叠最小
    2. 来自F1的新的Path的支持度要高(neue Pfade aus F1 mit hohem Support abgedeckt werden.)
4. 选择每个Pattern的必选和可选属性:太多的可选属性以为着可能会有很多得NULL值,另外和其他Pattern的重叠也可能会更多。但是如果可选属性太少的话,产生的数据好像略少(zu wenige Daten werden gemacht)
5. 生成Storage Queries
另外应该注意区分一下两种状况:
//其实还体会不到区别????
Man unterscheidet mehrere Fälle:
Query sucht Pattern, das exakt mit einer Sichtdefinition übereinstimmt- einfacher, angenehmer Fall. Q=V
Query sucht Pattern, das ‘Storage Pattern’ enthält: In diesem Fall mehrstufiges Query-Processing, wie zuvor besprochen. QV
S29-30不懂

0 0
原创粉丝点击