Autor: pantsu

Vier Schichten Architektur (WEB)

  1. Präsentation – Darstellung und Benutzerinteraktion
  2. Webschicht – Kommunikation zwischen webclient/webserver
  3. Anwendungs-/Geschäftslogik – Verarbeitung der Daten
  4. Datenhaltung – Dauerhafte Speicherung + Fehlerholung + Mehrbenutzerzugriff

vierschicht

Version von Wikipedia:

 

 

 

 

 

 

 

 

 

Vierschichten-Architektur: Web-Server-Architektur“

Quelle : wikiepedia

Diagramme… UML

Es gibt 12 verschiedene Arten von Diagrammen in UML. Wir benötigen hier „Klassendiagramme„.

Ein Klassendiagramm ist ein „Strukturdiagramm “ für UML [Unified Modelling Language] .

[UML ist die o.o. Variante eines EER Diagramms]

Der Name der Klasse (Tabelle), ist auch der Name eines Blocks. Darunter kommen dann die Attribute (+ ihren DT), und im untersten Abschnitt die Operationen (Methoden)

allgstern

Quelle: Wikipedia

Bei UML unterscheiden sich vor allem die Beziehungen von allen anderen Diagrammetypen

allgstern

Quelle: Wikipedia

Komposition: Jedes Buch gehört genau einem Studenten. Und ein Student kann mehrere Bücher besitzen. [OWNERSHIP Beziehung]

Aggregation: Eine Vorlesung kann, muss aber nicht besucht werden.  [HAS-A Beziehung]

Und dann gibt es noch die Generalisierung als Beziehungstyp

allgstern
Quelle: Wikipedia

Dieses Prinzip entspricht der Vererbung (wie z.b. in Java)

Ihr könnt euch das also auch so vorstellen: class Privatkunde extends Person              

Der Privatkunde erbt also alles(!) was auch schon in der Person drin steht.

 

———-

Ihr wollt jetzt direkt loslegen und eure eigene Diagramme machen? Und wisst nicht womit?

Eure Optionen sind vielseitig!

  • Stift und Papier auspacken, und erstmal lustig Kästchen malen :)
  • ein Plugin für Eclipse oder den CodeEditor eurer Wahl besorgen (teilweise gibt es auch plugins die aus eurem Code automatisch Diagramme generieren können)
  • die MySQL Workbench generiert euch automatisch aus MySQL eure UML Diagramme mit allen Beziehungen. sehr schön und übersichtlich.
  • Offline am PC: Ein Programm nur für UML besorgen :  z.B. ArgoUML oder UMLet  (beide nicht sonderlich schön/sauber.. aber funktionell)
  • Online [+Gruppenarbeit]:  mein pers. Favourite: CACOO mit bis zu 15 leuten gemeinsam Arbeiten, oder auch Lucidchart vorteil hierbei: ihr könnt euch auch mit eurem google Login einloggen

Allgemeines zum B-Baum / B*-Baum

bbaumallg

Dastellung:  [B-Baum (K,H)]

K = Knoten, die vorgegebene zahl K ist der min wert für Elemente in einem Knoten, und max ist 2*k

H = Höhe, die vorgebene zahl H, ist die max. höhe die ein Baum erreichen darf (wobei die wurzel bereits 1 ist)

  • wenn kein wert angegeben ist, heisst es, das es schlichtweg kein limit gibt.
  • für die wurzel gilt stehts: anzahl elemente egal

für uns heisst das jetzt: [2,h]

  • 2 Knoten = min 2 Elemente pro knoten, max 4 (2*k), sobald also ein 5ter hinzu kommt, muss dieser nach oben hin rausgeschoben werden.
  • h = nicht gegeben, also kann es unendlich groß werden (in unserem fall wird die höhe bei 2 stoppen)

Formel zur Berechnung der Knoten

  • minimal: 1(Wurzel) + 2/k*((k+1)^(h-1) – 1)
  • maximal: (1/2k)*((2k+1)^h – 1)

Formel zur Berechnung der Anzahl der Elemente

  • minimal:   2(k+1)^(h-1) + 1
  • maximal: ( 2(k+1)^(h-1) ) – 1

B*-Baum

Keine sorge, soviel komplexer ist der B*-Baum gar nicht.

Wir nehmen die gleiche Tabelle wie beim B-Baum, nur mit etwas weniger Einträgen.

Unterschiede:

Kurzform:

  • Datensätze / Werte stehen nur in den Blättern
  • Datensätze / Werte werden in die Blätter kopiert
  • minimale befüllung der Knoten: 50%  (eigentlich 2/3, aber ignorieren wir)

Ausformuliert:

  • Das man nicht mehr direkt von einem Knoten aus nach unten zeigt, sondern von einem extra „Element“, welches komplett leer ist
  • Das Element was in eine Wurzel / Knoten nach oben gezogen wird, muss dennoch weiterhin in den Blättern vorhanden sein. Sprich es ist doppelt vorhanden.  Grund dafür: Nur die Blätter haben im B*-Baum echte Werte.
  • THEORETISCH: soll der B*Baum zu 2/3 gefüllt sein. Ist laut unserem Script aber nicht so. also am besten einfach ignorieren (lol)

tabelle2

Der ganze Anfang ist komplett identisch wie beim B-Baum

b-baum_stern

erklar2

noch einmal zusammengefasst:

allgstern

Unser Baum besteht nur aus einer Wurzel ebene, und einer Blätter ebene.

Somit ist dies ein ein B*Baum(2,2)

Würde dieser Baum noch mehr werte nach weiter unten bekommen, würde die mittlere Ebene wie die Wurzel aussehen.

Und alle Werte in den Mittleren Knoten müssten mit in die unteren Blätter kopiert werden.

B-Baum

Thema : B-Baum => komplex, nervig… egal!

Um euch allen erstmal den Wind aus den Segeln zu nehmen: ein B-Baum in SQL ist KEIN BINÄR-BAUM !
[es kann unter besonderen umständen einer sein.. ist es aber grundsätzlich nicht]

Wir Arbeiten erstmal mit einer einfachen Tabelle in einer Datenbank.
tabelle

  • Alle werte außer dem Namen interessieren bei der sortierung im B-Baum nicht.
  • bei uns ist ein name der PK (Primary Key), und d.h. für uns, es wird Alphabetisch sortiert!

wäre der PK eine Zahl, so würde er ganz normal nach seiner größe sortiert werden. [1..2..3…500..n]

Wir bauen jetzt einen (2,H) Baum

b-baum_normal

 

erklar

 

Loading...
X