Benutzer:Arxthek

aus Wikipedia, der freien Enzyklopädie

Notizen

Benutzer:Arx

Rekursion

Bei einer Rekursion ruft sich eine Prozedur oder Funktion selbst auf. Es entsteht also eine Endlosschleife. Damit keine Endlosschleife entsteht ist es notwendig eine Abbruchbedingung einzufügen. Somit wird sich eine Funktion immer solange selber aufrufen und ausführen bis die Abbruchbedingung erfüllt wurde und somit gestoppt wird. Bsp. von Wikipedia: Beim Begriff Rekursion wird auf den Begriff Rekursion verwiesen. Quasi auf sich selbst. Die Rekursion ist der Aufruf einer Funktion durch sich selbst. Rekursive Lösungen sind elegant.


Iteration

Eine Iteration ist eine Möglichkeit sich der Lösung eines Problems Schrittweise zu nähern. Diese erfolgt über eine Annäherung an die Lösung. Das Bedeutet es wird ein Schritt ausgeführt und sich somit der Lösung angenähert. Dieses Zwischenergebnis ist der neue Ausgangspunkt für denselben Schritt wie vorher und so weiter. Die Iteration ist die Schrittweise Annäherung an ein Problem mit einer Prozedur. Dabei werden die Zwischenergebnisse der einzelnen Schritte als jeweiliger Ausgangspunkt für den nächsten Schritt verwendet. Iterative Lösungen sind effizient.


Generalisierung (UML) / Spezialisierung

Bei einer Generalisierung / Spezialisierung handelt es sich um eine Beziehung in UML zwischen zwei Klassen. Die spezielle Klasse erbt Attribute der generellen Klasse und ergänz (spezialisiert) durch ihre eigenen Attribute. Beispielsweise wäre eine generelle Klasse „Vogel“ mit den Attributen „Flügel“; „Schnabel“ und „Federn“. Eine spezielle Klasse von Vogel wäre beispielsweise „Bussard“ mit den speziellen Attributen „Raubvogel“ oder „Fleischfresser“ Die Klasse „Bussard“ ist eine Spezialisierung von „Vogel“ und „Vogel“ ist eine Generalisierung der Klasse „Bussard“.


Relation (Datenbank)

Eine Relation ist eine Zeilenweise, zusammengefasste menge an Attributen. Einfach ausgedrückt ist eine Relation eine Tabelle.


Tupel (Informatik)

Eine Tupel ist bei einer Relation ein Datensatz mit atomaren Attributswerten. Das Bedeutet es wäre in einer Tabelle eine „Zeile“. Eine Tupel ist keine Spalte, da eine Spalte aus einem Wertebereich besteht.


Funktionale Abhängigkeit

Wenn in einer Relation Attribute den Wert anderer Attribute bestimmen, dann besteht einer funktionale Abhängigkeit. Die Attribute, welche eindeutig die Werte aller anderen Attribute bestimmen, bilden den Superschlüssel. Gibt es einen Schlüsselkanditen aus dem Superschlüssel, der mit einem minimalen Attributswert alle anderen Attribute eindeutig bestimmt, dann wählt man diesen als Primärschlüssel aus.


Vollfunktionale Abhängigkeit

Jedes Nicht-Primär-Attribut ist vom gesamten Schlüssel abhängig. Zu beachten ist das das es sich um den gesamten Schlüssel handeln muss, also falls es aus mehreren Teilen besteht muss das Attribut von jedem einzelnen Teil des Gesamtschlüssels abhängig sein, damit es sich um eine vollfunktionale Abhängigkeit handelt.


Normalisierung

Durch Normalisierungen von Relationen (Datenbanken; Tabellen) werden Redundanzen und Inkonsistenzen der Daten vermieden. Auch wird das Suchen und Ändern von Daten erheblich vereinfacht, weil Änderungen nur noch an einer Stelle durchzuführen sind.


erste Normalform

Jedes Attribut muss einen atomaren Wertebereich haben. Ein Attributwertebereich soll nicht mehr aufgeteilt werden können. Des Weiteren muss die Relation (Tabelle) einen Primärschlüssel haben. Bsp.: Adresse. Eine Adresse besteht aus Straße, Hausnummer, Postleitzahl und Ort. Adresse ist als Wertebereich in der ersten Normalform ungültig. Es muss in die Einzelnen Wertebereiche Straße, Hausnummer, Postleitzahl, Ort und Land aufgeteilt werden.

Nicht normalisierte Tabelle:

Pers Nr. Name Adresse
1733 Peter Plesse Heisterbach Str. 35 50441 Köln
1734 Hans Müller Mahlbach Str. 17 20095 Hamburg
1735 Jakob Kamm Sitzungsweg 82 10001 Berlin

Tabelle in erster Normalform:

Pers Nr. Name Vorname Adress Nr. Straße Hausnummer Postleitzahl Ort
1733 Plesse Peter 645 Heisterbach Str. 35 50441 Köln
1734 Müller Hans 646 Mahlbach Str. 17 20095 Hamburg
1735 Kamm Jakob 647 Sitzungsweg 82 10001 Berlin


Beschreibung: Die Spalten „Name“ und „Adresse“ wurden aufgeteilt, damit die Attribute in einem atomaren Wertebereich liegen. Damit jedes Attribut einem Primärschlüssel (oder einem Teilschlüssel zugeordnet werden kann, wurde der Teilschlüssel „Adr. Nr.“ hinzugefügt). Diese Wertebereiche sind nicht weiter aufteilbar (atomar). Der Primärschlüssel der Tabelle ist ein Verbundschlüssel aus den Spalten „Pers. Nr.“ und „Adr. Nr.“.


zweite Normalform

Die erste Normalform muss gegeben sein. Alle Nicht-Primären-Attribute müssen vom Gesamtschlüssel voll funktional abhängig sein. Dabei ist zu beachten, dass es sein kann das sich der Gesamtschlüssel aus mehreren Teilschlüsseln zusammensetzt. Hier müsste jedes Attribut von jedem Teilschlüssel abhängig sein um eine vollfunktionale Abhängigkeit zu erzielen. Problem der Tabelle aus der ersten Normalform: Der Schlüssel besteht aus den Teilschlüsseln „Pers. Nr.“ und „Adr. Nr.“. Das Attribut „Name“ ist nur vom Teilschlüssel „Pers. Nr.“ abhängig, nicht aber vom Teilschlüssel „Adr. Nr.“. Somit ist es nur von einem Teil des Gesamtschlüssels abhängig und nicht vollfunktional vom Gesamtschlüssel abhängig.

Tabelle in erster Normalform:

Pers Nr. Name Vorname Adress Nr. Straße Hausnummer Postleitzahl Ort
1733 Plesse Peter 645 Heisterbach Str. 35 50441 Köln
1734 Müller Hans 646 Mahlbach Str. 17 20095 Hamburg
1735 Kamm Jakob 647 Sitzungsweg 82 10001 Berlin

Tabelle(n) in zweiter Normalform:

Pers Nr. Adress Nr. # Name Vorname
1733 645 Plesse Peter
1734 646 Müller Hans
1735 647 Kamm Jakob


Adress Nr. Straße Hausnummer Postleitzahl Ort
645 Heisterbach Str. 35 50441 Köln
646 Mahlbach Str. 17 20095 Hamburg
647 Sitzungsweg 82 10001 Berlin

Beschreibung: Die Tabelle aus der ersten Normalform wurde in zwei neue Tabellen zerlegt um eine vollfunktionale Abhängigkeit bei den nicht- Primär- Attributen zu schaffen. Der „Name“ und „Vorname“ sind nun vom Gesamtschlüssel (Primärschlüssel ist „Pers. Nr.“ und Fremdschlüssel ist „Adr. Nr.“) voll funktional abhängig. Ebenso ist „Straße“, „Hausnr.“, „PLZ“ und „Ort“ vom Gesamtschlüssel „Adr. Nr.“ voll funktional abhängig.


dritte Normalform

Die zweite Normalform muss gegeben sein. Kein Nichtschlüssel darf transitiv von einem Schlüssel abhängig sein. D.H. jedes Nichtschlüsselattribut muss von dem Schlüssel direkt abhängig sein. Transitiv bedeutet ein Attribut A1 ist vom Primärschlüssel P abhängig. Attribut A2 ist aber von A1 abhängig und somit nur transitiv von P abhängig weil A1 von P abhängig ist. Somit wäre die dritte Normalform nicht gegeben. Dazu muss man es schaffen, dass jedes Nichtschlüsselattribut direkt vom Schlüssel abhängig ist.

Tabelle in zweiter Normalform:

Adress Nr. Straße Hausnummer Postleitzahl Ort
645 Heisterbach Str. 35 50441 Köln
646 Mahlbach Str. 17 20095 Hamburg
647 Sitzungsweg 82 10001 Berlin

Hier ist die „PLZ“ vom Schlüssel „Adr. Nr.“ abhängig. Der „Ort“ hingegen bezieht sich auf die „PLZ“, dadurch ist der „Ort“ nur transitiv vom Schlüssel „Adr. Nr.“ abhängig. Darin liegt die Verletzung der dritten Normalform.

Tabellen in dritter Normalform:

Adress Nr. Straße Hausnummer Postleitzahl#
645 Heisterbach Str. 35 50441
646 Mahlbach Str. 17 20095
647 Sitzungsweg 82 10001
Postleitzahl Ort
50441 Köln
20095 Hamburg
10001 Berlin

Beschreibung: Die beiden voneinander abhängigen Datensätze werden zusammen in eine neue Relation gesteckt. Dabei ist trotzdem die „PLZ“ in der alten Tabelle als Fremdschlüssel zurückgeblieben. Jedoch wurde der Ort entfernt, weil er ja bis dahin nur transitiv vom Schlüssel abhängig war. Jetzt ist er in seiner neuen Tabelle aber vollfunktional vom Schlüssel abhängig. Jetzt gibt es kein Attribut mehr welches transitiv vom Schlüssel abhängig ist und die Vorgabe der dritten Normalform ist erfüllt.


Schlüssel (Datenbank)

Superschlüssel

Die Menge aller Attribute in einer Tupel einer Relation, welche die Tupel als eindeutig identifizieren, bilden den Superschlüssel. Da sie eindeutig die Tupel identifizieren ist es ein Schlüssel aus denen sich alle Schlüsselkandidaten bilden können. Einfach gesagt: Wenn man die Wertebereiche von mehreren Zeilen markiert die nicht die gleichen Attribute haben, dann hat man den Superschlüssel.


Schlüsselkandidat

Der Schlüsselkandidat ist eine Teilmenge des Superschlüssels und ermöglicht die Identifizierung der Tupel. Einfach gesagt: Der Schlüsselkandidat ist ein Wertebereich einer Tabelle, welcher die Zeile „repräsentiert“.


Primärschlüssel

Ein Primärschlüssel ist ein ausgewählter Schlüsselkandidat und kann in anderen Relationen als Fremdschlüssel verwendet werden. Meist wird der Primärschlüssel so gewählt, dass er aus möglichst wenigen Attributen besteht.


Fremdschlüssel

Ein Fremdschlüssel in einer Relation ist in einer anderen Relation ein Primärschlüssel. Der Fremdschlüssel dient als Verweis zwischen zwei Relationen und gibt eine Art Verbindung an.


Entität

Eine Entität ist ein eindeutig zu bestimmendes Objekt dem Informationen zugewiesen werden können. Entitäten sind Dinge der realen Welt. Entitäten werden in Entitätstypen eingeteilt. Nimmt man beispielsweise die Entität Zugspitze wäre der Entitätstyp Berg.


Kardinalität

Eine Kardinalität beschreibt die Beziehung zwischen zwei Entitäten. Es gibt folgende Beziehungen:

1:1

1:n / n:1

n:m

Bei der 1:1 Beziehung ist einem Entitätstyp genau eine andere Entität eines anderen Entitätstyps zugewiesen. Bsp.: Ein KFZ- Kennzeichen ist genau einem Fahrzeug zugewiesen und ein Fahrzeug hat genau ein KFZ- Kennzeichen (Im Sinne der Buchstaben- Zahlenkombination und nicht der Anzahl der Blechschilder). Bei der 1:n Beziehung kann einer Entität des einen Entitätstyps beliebig viele andere Entitäten eines anderen Entitätstyps zugewiesen werden. Bsp.: Eine Mutter(1) kann mehrere Kinder(n) haben, ein Kind hat aber nur eine Mutter. Bei der n:m Beziehung können der einen Entität eines Entitätstyps beliebig viele Entitäten eines anderen Entitätstyps zugewiesen werden, jedoch gilt dies auch in die andere Richtung. Bsp.: Ein Lehrer unterrichtet mehrere Schüler(n). Die Schüler haben aber auch mehrere Lehrer(m).


Objektorientierte Programmierung

Datenkapselung (Programmierung)

Als Datenkapselung versteht man den kontrollierten Zugriff auf Methoden und Attribute. Kontrolliert, bedeutet das dies über eine Schnittstelle geschieht. Das versichert, dass eine Klasse nicht die Methoden und Attribute einer anderen Klasse ändert. Durch die Datenkapselung erreicht man, dass man nur das "WAS" (was kann die Klasse) einer Klasse sieht und nicht das "WIE" (wie macht die Klasse das).

Polymorphie

(Mehrfachvererbung)

Die P. ist eine Eigenschaft von Objektorientierter Programmierung. Kurz gesagt ist P. die Eigenschaft, dass Elemente in Codes einfach auszuwechseln sind. Wie Glühbirnen (Es gibt verschiedene Arten von Glühbirnen, aber das Gewinde wo sie reingedreht werden kann alle aufnehmen) kann man sich das vorstellen, dass alte Codestellen (schwache/kaputte Glühbirnen) entfernt werden und durch performanteren (neue Glühbirne) Code ersetzt wird. Dabei soll es für die vorhandene Codestruktur (Gewinde) kein Problem sein die Ergänzung aufzunehmen und zu integrieren.


ACID Eigenschaften

ACID steht für Atomarität, Konsistenz (engl. Consistency), Isoliertheit, Dauerhaftigkeit. Dies sind die erwünschten Eigenschaften, die bei Transaktionen in Datenbanksystemen, vorhanden sein sollten. Nachfolgend werden die vier Eigenschaften beschrieben:

Atomarität

Die Atomarität besagt, dass Transaktionen entweder ganz oder gar nicht durchgeführt werden. Das bedeutet, wird während einer Transaktion klar, dass diese nicht vollständig bzw. fehlerfrei ausgeführt werden kann, wird wieder der Ausgangszustand hergestellt (rollback). Es werden also keine fehlerhaften Transaktions- Ergebnisse übernommen.

Konsistenz

Die Konsistenz beschreibt, dass Daten nach einer Transaktion konsistent sind, sofern sie vor der Transaktion auch konsistent waren (Widerspruchsfreie Daten). Daten müssen/werden also von einem konsistenten Zustand in einen anderen konsistenten Zustand überführen. Jedoch ist eine Inkonsistenz während der Transaktion keine Verletzung der Konsistenzeinhaltung.

Isoliertheit

Transaktionen sind voneinander isoliert, d.h. sie beeinflussen sich nicht gegenseitig. Beispiel: Transaktion A verändert den Datensatz; Transaktion B greift auf den Datensatz zu - beide Transaktionen laufen parallel ab. Würde dies so einfach vonstatten gehen, könnte es sein das Transaktion B fehlerhaft ausgeführt wird, da der Datensatz während des Zugriffes verändert wurde. Es wird deswegen isoliert, sprich erst wird Transaktion A und dann Transaktion B durchgeführt. Somit wird durch Transaktion A ein konsistenter Datensatz hinterlassen auf den Transaktion B zugreifen kann.

Dauerhaftigkeit

Das Ergebnis einer Transaktion ist dauerhaft. Das bedeutet auch nach Systemabstürzen oder anderweitigen Problemen sind die Ergebnisse vorhanden. Zuständig dafür sind gewisse Backuplösungen oder ähnliches.

Dynamic Host Configuration Protocol (DHCP)

Das DHCP ist dafür da in einem Netzwerk dynamisch IP- Adressen und weitere Konfigurationsparameter zu verteilen. Weitere Informationen die über DHCP verschickt werden können sind:

  • Netzmaske
  • Gateway- Adresse
  • DNS- Server
  • WINS- Server
  • Proxy- Konfiguration
  • NTP- Server

Dadurch sind Konfigurationen an den Rechnern vor Ort selber nicht mehr nötig. Diese würden nämlich alle nötigen Informationen um im Netzwerk teilzunehmen vom DHCP- Server bekommen.

Um Clients IP- Adressen zu vergeben gibt es drei Zuordnungsmöglichkeiten.

  • Manuelle Zuordnung: Beim DHCP- Server wird festgelegt, welche Mac- Adresse welche IP- Adresse bekommen soll. Dabei sind die Adressen auf unbestimmte zeit zugeordnet.
  • Automatische Zuordnung: Dem DHCP- Server steht ein IP- Adresspool zur Verfügung aus dem er IP- Adressen verteilen kann. Fragt also ein Client eine IP- Adresse an, wird ihm eine zugewiesen und bleibt auf unbestimmte Zeit an diese Mac- Adresse gebunden.
  • Dynamische Zuordnung: Dem DHCP- Server steht ein IP- Adresspool zur Verfügung aus dem er IP- Adressen verteilen kann. Jede vergebene IP- Adresse wird aber nur vom Client geleast, also für einen definierten Zeitraum gemietet. Der Client kann kurz vor Ablauf der Leasetime diese verlängern. Falls sie nicht verlängert wird, wird diese IP- Adresse wieder frei und kann erneut vom Server vergeben werden.

Um Clientanfragen zu beantworten muss der DHCP- Server im selben Netz liegen wie der Client weil DHCP mit Broadcasts arbeitet und nicht über die Netzwerksegmente hinaus kommunizieren kann (Router trennen Netze voneinander und leiten keine Broadcasts weiter). Nach der halben Leasetime fragt der Client den Server an die Leasetime zu verlängern bzw. zu erneuern. Antwortet der Server nicht fragt der Client nach 87,5% der verstrichenen Leasetime irgendeinen DHCP- Server in seinem Netz an.


Simple Network Management Protocol (SNMP)

Das SNM Protokoll ermöglicht es in einem Netzwerk die Netzwerkelemente (Router, Switche, Drucker, Gateways, Computer etc.) überwachen und steuern zu können. Das Protokoll ist dafür da, damit die Netzwerkelemente und die zentrale Überwachungsstation miteinander kommunizieren können. Natürlich erfolgen bei der Überwachung der Netzwerkkomponenten auch eine Fehlererkennung und eine entsprechende Fehlermeldung, sofern Fehler auftauchen. Für die Überwachung sind bei den Netzwerkelementen so genannte Agenten installiert, welche den Status des Netzwerkelements erfassen. Diese Agenten kommunizieren auch mit der Überwachungsstation. Dabei ist es möglich das die Überwachungsstation Statusabfragen durchführt, oder sich der Agent bei der Überwachungsstation meldet, wenn Fehler aufgetreten sind.


Address Resolution Protocol (ARP)

Das AR- Protokoll sorgt für die Zuordnung von Netzwerkadressen zu Hardwareadressen. Wenn ein Rechner etwas an einen anderen Rechner im selben Netz verschicken will, erfolgt dies über ein IP- Paket welches in einem Ethernetframe gekapselt ist. Im IP- Paket ist die Zieladresse in Form einer IP- Adresse angegeben. Jedoch ist die Ziel- Mac- Adresse noch unbekannt, welche im Ethernetframe angegeben sein muss damit das Datagramm das Ziel erreicht. Um diese Mac- Adresse herauszubekommen, wird mit Hilfe der Ziel- IP- Adresse ein ARP- Request gestartet. Dies ist ein Broadcast, welcher alle Rechner anspricht mit der Frage „Wer hat die Mac- Adresse zu dieser IP- Adresse: X.X.X.X?“. Wenn ein Rechner diese kennt, antwortet er auf diese Anfrage. RARP = Reverse Address Resolution Protocol ermöglicht das Gegenteil von ARP, nämlich zu einer bekannten Mac- Adresse eine IP- Adresse herauszufinden.


Masquerading (NAT, PAT, NATP)

  • NAT = Network Address Translation
  • PAT = Port Address Translation
  • NAPT= Network Address Port Translation

Unter dem Masquerading (Maskieren) versteht man das Ersetzen von Adressen in Datagrammen. Dies Betrifft NAT auf Schicht 3 (OSI-Modell) mit den IP- Adressen und PAT auf Schicht 4 mit Ports. Dies wird meist gemacht wenn eine Kommunikation in andere Netze aufgebaut wird. Insbesondere wenn mehrere Clients in einem lokalen Netz gleichzeitig eine Verbindung ins Internet aufbauen wollen. Somit ist es möglich mit nur einer öffentlichen IP- Adresse mit mehreren Clients ins Internet zu gehen. Bei NAT wird die IP- Adresse ersetzt. Das bedeutet wenn ein Client mit einer privaten Quell- Adresse A und das öffentliche Ziel- B anpingt, wird das Paket erstmal zum Router an der Netzgrenze geschickt. Der Router hat nach außen hin eine öffentliche IP- Adresse. Nun ersetzt der Router mit NAT die private Quelladresse A mit seiner öffentlichen Adresse, damit bei Antworten die Pakete auch zurück zum Router und dann ins Netz finden. PAT ist das Ersetzen der Quellportnummern. PAT wird nur im Zusammenhang von NAT verwendet, weshalb eine genauere Beschreibung mit NAPT besser ist. NAPT ersetzt die IP Adressen und Port Adressen von Datenpaketen. Wenn mehrere Clients im lokalen Netz einen Server im Internet anfragen, dann werden die internen Quell IP- Adressen am Router mit der öffentlichen Adresse ersetzt. Zusätzlich werden die Quellportnummern der Pakete auch ersetzt. Somit unterscheiden sich alle Konversationen anhand der Portadressen. Denn wenn mal zwei Clients den gleichen Quellport haben und dieser am Router nicht ersetzt wird, sondern nur die IP- Adresse, dann gibt es zwei Pakete mit der gleichen IP- Adresse und dem gleichen Port. Kommen nun zwei Antworten zurück mit gleichen Zieladressen, kann der Router nicht mehr unterscheiden wem welches Paket gehört. Aber wenn zwei verschiedene Portadressen vorhanden sind ist immer eine Unterscheidung möglich.


Identifizierung; Authentifizierung; Authentisierung; Autorisierung

Identifizierung

Die Identifizierung ist der Vorgang zur eindeutigen Erkennung eines Objektes. Die Identifizierung besteht aus der Authentifizierung und der Authentisierung.

Authentifizierung

Die Authentifizierung ist der Vorgang einer Überprüfung der Identität eines Objektes. Es ist der Vorgang an sich. (A überprüft die Identität von B)

Authentisierung

Die Authentisierung ist der Vorgang des Beweisens der eigenen Identität. Es ist der Vorgang an sich. (B beweist die eigene Identität A gegenüber)

Autorisierung

Die Autorisierung ist die Zuweisung bestimmter Rechte und Freigaben. Sie erfolgt meist nach einer erfolgreichen Authentifizierung.

Lasttest

Ein Lasttest ist ein Softwaretest, der ein System unter eine hohe Last stellt. Daraufhin wird das Verhalten des belasteten Systems beobachtet. Ziel ist es Fehler zu entdecken die unter Normalbelastung nicht auftreten würden. Um eine "Überlast" zu erzeugen, werden gewisse Funktionen ganz schnell hintereinander oder parallel ausgeführt. Beim Lasttest wird das System so belastet, wie es höchstmöglich zu erwarten ist.


Stresstest

Beim Stresstest wird das System noch höher belastet als beim Lasttest, also über die höchstmöglich zu erwartenden Belastungen hinaus. Es wird also überprüft, wie weit man mit den vorhandenen Ressourcen gehen kann. Man kann somit überprüfen, wie sich das System verhält wenn es über die zu erfüllenden Anforderungen belastet wird. Da sich solche Höchstlasten aber meist nicht konstant halten, kann man eher damit testen, was für einen Lastanstieg das System verkraftet.