1. 程式人生 > >資料庫應用-半結構化資料模型1

資料庫應用-半結構化資料模型1

本文結構

主要由兩部分組成:
1.描述合法的資料庫狀態(比如使用的是什麼型別的Schema?關係型的?還是NF2的?等等??)
2.通過使用的操作(Operator)描述合法的狀態轉化(Zustandsübergänge)

導論

資料庫狀態

基本思想:
資料模型=合法資料庫狀態的集合
(Datentype=Menge zulässiger Zustände)
型別(Typ):指擁有相同數學結構的物件的集合//啥叫數學結構啊???
(或者簡單的說:擁有相同的Schema)
例項(Ausprägung,Instant):型別對應的例項
型別系統(Typsystem):
Typsystem指型別的集合,和他們之間的相互聯絡。
(I.Allg. Feature von Programmiersprachen, dass nämlich Werte Instanzen von Typen sein müssen這句不理解???指程式語言的特徵就是:他的指必須是模型的例項???)
資料型別的多型屬性(Polymorphe Typsystem):


Typsystem是一個型別的集合,但其中的內容並不是單個型別的固定的組合,本質上,他只是通過型別構造器(Typkonstruktor)呈現出來。(以此增加其靈活性)
(Keine starre Menge von Kombinationen atomarer Typen, sondern im wesentlichen nur Angabe von Typkonstruktoren, dadurch Flexibilität.
i.d.R. beschrieben durch atomare Typen,Typkonstruktoren und polymorphe Konsistenzbedingungen)
//因為不知理解得對不對,所以都加上原文
原子型別(atomar Typ):

int
bool={true,false}
date

通過型別構造器(Typkonstruktor),可以由原子型別構建出新的型別,常見的型別構造器有:
record(t1,...,tn):組合
set(t):由t的例項的集合組成的集合(Menge der Mengen mit Elementen aus t)
list(t):由t的例項的列表組成的集合(Menge der List mit Elementen aus t)
//問:關係模型裡有哪些資料構造器呢??join??projection??…??
例子:
Typ DVD::=recored[Name:string,Sprache:string,Jahr:int]
Typ DVDs::=set {DVD}
//吐槽一下老師,前面一直用英語的record和set,講到例子突然就用德語的Datensatz和menge,然後就瞬間斷片了
生成新模型的限制條件:

一致性原則(polymorphe Konsistenzbedingungen)//具體指什麼????

通過Operator實現狀態轉化

這裡的Operator指的是:使用於型別例項的數學函式(Mathematische Funktion, die auf Instanzen von Typen anwendbar sind),比如有:
等價測試(Gleichheitstest)x=y:適用於所有型別
排序(Anordnung)x < y:適用於數字,日期和字串
算數操作(arithmetische Operationen)+,-,*,/:適用於所有數字
邏輯操作(logische Operationen)and,or,not:適用於Bool值
集合操作(Mengenoperationen),,:適用於通過set生成的Typ
一元操作(Monoamorphe Operatoren):
只能作用於一個Typ的例項的操作如,not
//還有哪些monoamorphe Operator呢??
比如有整數的除,取餘,求日期差//表示理解不能中????
多元操作(Polymorphe Operatoren):
可以作用於不同Typ的例項的操作,如=,<等

資料模型的描述標準(Beschreibungskriterien für Datenmodelle)

//以前學過不少資料模型,那麼要怎麼對這些模型進行比較呢??有哪些標準是可以考慮的??
結構強度(Strukturelle Mächtigkeit):
由可以使用的型別構造器的數量(polymorpher Typkonstruktoren)體現。他表現了資料結構的豐富程度
結構上得正交性(Strukturelle Orthogonalität):
有型別組合時的自由度(或限制)體現(Maß für Freizügigkeit, mit der sich polymorphe Typen kombinieren lassen)
比如,只能由原子型別組成record,再由record組合成結合。record的內容不能包括record。
圖形表達
//上傳不能、、、
Operator之間的銜接性(Operationelle Verknüpfbarkeit):
//名字感覺有錯,解釋不通。總之就是能否好的表達資料的意思
由型別表達時的靈活性體現(Maß für Freizügigkeit, mit der sich aus Tyüausdrücken hervorgegangene Datenstrukturen durch Operatoren ineinander überführen lassen)
比如:NF2中的Nest-/Unnest就提高了靈活性
圖形表達
//上傳不能。。。
操作的普遍性(Operationelle Generizität):
//理解不能
Position der Operatoren im Spektrum(蝦米?)zwischen Polymorphe und Monomorphin.
Polymorpher Operator-ausschließlich an polzmorphen(啥?) Typ gebunden, also auf alle entsprechenden Typen anwendbar.Weite Einsatzbreite.
geht aber auf keine semantischen Feinheiten ein.
Tipgebundener(monomorpher)Operator-umgekehrt

導論2

為什麼使用SGML(Standard Genelized Mackup Language)

SGML把邏輯結構和佈局結構進行了分離,從而提高了其自由的。//好抽象啊???
(Trennung zwischen logischer und Layout-Struktur führt zu höherer Flexibilität.Logische Struktur-Bedeutung der Dokumentbestandteile)
人們可以根據不通的使用者及其要求做不同的展示(像view)
//沒看出表現在哪了?????
使用Markup的文件一般包含比較多得內容,能更清晰的表達自己的工作,方便團隊工作。
保持文件的一致性(Konsistenz der Dokument)
//intra-document consistency,inter-document consistency不知這是啥??

XML

XML並不是SGML(nicht Standardisierung des Generalized Markups)
針對不同的文件型別,他會使用不同的Markup。
XML的目標:
1.標準化(Standardisierung)文件中的generalized Markup的描述
2.標準化(Standardisierung)Markup的規則:比如那個地方可以出現那些Markup
舉例:
像可以規定在選單中必須包含有佐料,或者佐料必須寫在準備工作的前面。

<!ELEMENT bookstore (book)*> //特殊符號式正則表示式
<!ELEMENT book (title,author+,price?)
<!ATTLIST book genre CDATA #REQUIRED>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (name|(firstname,lastname))>
<!ELEMENT price (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT firstname (#PCDATA)>
<!ELEMENT lastname (#PCDATA)>

//缺圖片一張,XML-Einordnung