Web Analytics

See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Relationale Datenbank - Wikipedia

Relationale Datenbank

aus Wikipedia, der freien Enzyklopädie

Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf bitte mit, ihn zu verbessern, und entferne anschließend diese Markierung.


Eine relationale Datenbank ist eine Datenbank, die auf dem relationalen Datenbankmodell basiert, das von Edgar F. Codd 1970 erstmals vorgeschlagen wurde; darin ist eine Relation ein im streng mathematischen Sinn wohldefinierter Begriff, der im Wesentlichen ein mathematisches Modell für eine Tabelle beschreibt (siehe dazu Relation).

In einer Relation werden die Daten in Form von zweidimensionalen Tabellen verwaltet, die über Schlüssel miteinander verknüpft werden können. Die meisten in der Praxis eingesetzten Datenbanksysteme sind für relationale Datenbanken konzipiert (relationale Datenbankmanagementsysteme, kurz RDBMS). Im allgemeinen Sprachgebrauch ist deshalb oft eine relationale Datenbank oder ein relationales Datenbanksystem gemeint, wenn von Datenbanken die Rede ist.

Für relationale Datenbanken gibt es mit SQL eine verbreitete und größtenteils standardisierte Abfragesprache.

Zur Modellierung von relationalen Datenbanken wird meist das Entity-Relationship-Modell oder Varianten davon verwendet. Es dient zum Entwurf eines konzeptuellen Schemas, welches unter Verwendung eines DBMS implementiert werden kann. Dieser Schritt wird als logischer Entwurf oder auch Datenmodellabbildung bezeichnet und hat als Ergebnis ein Datenbankschema im Implementierungsdatenmodell des DBMS.

Früher wurden in der betrieblichen Datenverarbeitung hierarchische Datenbanksysteme und Netzwerk-Datenbanksysteme verwendet. Sie kommen in Spezialfällen auch heute noch zum Einsatz.

Zum Teil werden die relationalen Datenbanken durch objektorientierte Datenbanken abgelöst. Relationale Datenbanken sind aber derzeit immer noch die am meisten verbreitete Datenbankform und es ist nicht klar, ob sich die objektorientierten Datenbanken durchsetzen werden. Die großen Datenbankhersteller fügen ihren relationalen Datenbanken objektorientierte Eigenschaften hinzu und haben so die objektrelationalen Datenbanken entwickelt.

Inhaltsverzeichnis

[Bearbeiten] Theorie der relationalen Datenbanken

Die Grundlagen der Theorie der relationalen Datenbank wurden von Edgar F. Codd in den 1960ern und 1970ern gelegt und in seiner Arbeit A Relational Model of Data for Large Shared Data Banks (Lit.: Codd1970) beschrieben. Theoretisch basieren alle Operationen auf der relationalen Algebra.

Die erste kommerziell erfolgreiche relationale Datenbank wurde jedoch erst Ende der 1970er von der Firma Oracle auf den Markt gebracht.

1986 hat Codd in der Computer World einen zweiteiligen Artikel mit 12 strengen Anforderungen veröffentlicht, welche ein RDBMS aus seiner Sicht erfüllen muss. Dabei sind die Regeln so streng, dass kein zur Zeit verfügbares Datenbanksystem alle erfüllt. Besondere Probleme bereiten die Regeln 6, 9, 10, 11 und 12. Da es aktuell (Februar 2004) noch keine eindeutigen, allgemeinverständlichen Übersetzungen gibt, sind hier die Originalüberschriften auf Englisch aufgeführt:

  1. The Information Rule
  2. Guaranteed Access Rule
  3. Systematic Treatment of Null Values
  4. Dynamic On-line Catalog Based on the Relational Model
  5. Comprehensive Data Sublanguage Rule
  6. View Update Rule
  7. High-level Insert, Update and Delete
  8. Physical Data Independence
  9. Logical Data Independence
  10. Integrity Independence
  11. Distribution Independence
  12. Nonsubversion Rule

Zusätzlich hat Codd noch die Regel 0 definiert, wonach jeder Zugriff nur durch relationale Fähigkeiten stattfinden darf.

Die Grundregeln für eine relationale Datenbank (nach Codd) lassen sich wie folgt beschreiben:

  • Jede Relation ist eine zweidimensionale Tabelle und entspricht einem Relationstyp
  • Jede Zeile dieser Relation (Tabelle) wird Tupel genannt und beschreibt ein konkretes Tupel des Relationstyps, den die Relation (Tabelle) darstellt
  • Jede Spalte der Relation (Tabelle) entspricht einem Attribut des Relationstyps. Die konkreten Tupel werden somit durch die entsprechenden Attributwerte beschrieben.
  • Der Grad einer Relation bezeichnet die Anzahl der Attribute
  • Die Kardinalität einer Relation entspricht der Anzahl der Tupel
  • Existiert für ein Attribut eine begrenzte Anzahl von Attributwerten, so wird die Zusammenfassung aller Attributwerte für dieses Attribut Domäne (Wertebereich) genannt
  • Es ist nicht relevant, in welcher Reihenfolge Zeilen bzw. Spalten der Tabelle angeordnet sind
  • Die Existenz zweier identischer Zeilen ist ungültig
  • Attributwerte sind atomar

Ende 1990 hat Codd in seinem Buch The Relational Model for Database Management - Version 2 (Lit.: Codd1990) die bisherigen 12 Regeln auf 333 Regeln differenziert, die allgemeine Akzeptanz gefunden haben.

[Bearbeiten] Wichtige Begriffe relationaler Datenbanken

Dieser Artikel oder Abschnitt besteht hauptsächlich aus Listen, wo Fließtext stehen sollte.
Begriffe relationaler Datenbanken
vergrößern
Begriffe relationaler Datenbanken


  • Attribut

Beschreibung einer bestimmten Eigenschaft einer Entität bzw. Aussage, die über eine bestimmte Entität (Objekt) der Miniwelt gemacht werden. Man unterscheidet zwischen:

    • Determinante: ein Attribut oder eine Gruppe von Attributen, von der beliebige andere Attribute voll funktional abhängig sind
    • Globales Attribut: ein Attribut heißt global, wenn es in mindestens einer Relation eines betrachteten Datenmodells als (Bestandteil des) Primärschlüssel(s) vorkommt.
    • Lokales Attribut: ein Attribut heißt lokal, wenn es nur in einer Relation des betrachteten Datenmodells und nicht als (Bestandteil des) Primärschlüssels(s) vorkommt.
    • Multiples Attribut: ein Attribut kann zu einem Zeitpunkt mehrere Werte annehmen. Es besitzt mehrere Ausprägungen (Instanzen, "multivalued").
    • Periodenfeld: ist ein multiples Attribut, wobei jede Ausprägung eine vordefinierte Bedeutung hat.
    • Zusammengesetztes Attribut: besteht aus mehreren einfachen, atomaren Attributen.
  • Datenmodell-Integration

Fein-Datenmodelle zu sichten und auf ein gemeinsames gültiges Datenmodell zu machen, das UwDM, zu machen.Strebt nach projektübergreifender Klärung und Vereinheitlichung von betriebswirtschaftlichen und technischen Daten. Die dabei gewonnen Erkenntnisse und Ergebnisse sind auch Voraussetzung für eine anwendungssystemübergreifende Datenbanknutzung.

  • Domäne

Eine durch den Domänentyp bezeichnete Menge von Werten, die als Attributwerte für die Entitäten eines Entitätstypes zulässig sind.

Individuelles Exemplar von Dingen, Personen oder Begriffen der realen oder der Vorstellungswelt (Individuum der Miniwelt).

  • Generalisierung

Als Inverser Prozess zur Spezialisierung stellt die Generalisierung die konzeptionelle, schrittweise Synthese von ETs zu einem Super-ET dar (Bottom-Up-Vorgehen).

  • Grad

Anzahl der Attribute einer Relation.

Anzahl der Beziehungs-Instanzen, an denen ein Entity teilnehmen kann. Ein Beziehungtyp kann als eindeutig (1:1), einseitig eindeutig (1:n) oder komplex (m:n) typisiert werden.

Die Erhaltung der Integrität umfasst die Aufrechterhaltung der Korrektheit und Konsistenz von Daten.

  • Relationales DB-Schema

Zusammenfassung einer Menge von Relationen und zugeordneter Integritätsbedingungen.

  • Relationales Datenmodell

Repräsentation der Daten in einer Datenbank als Ansammlung von Relationen.

Drückt als Begriff auf Elementarebene den funktionalen Zusammenhang zwischen 2 oder mehreren Entitäten in eine Richtung aus. Zwischen 2 Entitäten, die dem gleichen ET (rekursive Beziehung) oder unterschiedlichen ETs angehören können, existieren immer 2 Beziehungen entsprechend den beiden Verbindungsrichtungen.

Bei der Normalisierung werden neue Relationen gebildet (bzw. bestehende Relationen geändert), indem die Attribute auf die Relationen nach bestimmten Regeln verteilt werden.

Der Sinn der Normalisierung besteht darin, Redundanzen zu verringern und Anomalien zu verhindern, um so die Wartung einer Datenbank zu vereinfachen sowie die Konsistenz der Daten zu gewährleisten.

  • Relationale Operation

Hat prinzipiell eine Menge von Tabellenzellen als Ziel, die vom Anwender durch ein qualifizierendes Prädikat (Suchausdruck) beschrieben wird. Das Ergebnis einer relationalen Datenmanipulation ist wiederum eine (temporäre) Relation, so dass die wiederholte Anwendung bzw Verkettung relationaler Operationen (Relationsalgebra), möglich ist. Die RO wird durch Relationale Operanten ausgeführt.

  • Relationshiptype (Beziehungstyp)

Oberbegriff für die Menge gleichartiger,wechselseitiger Relationships (Beziehungen) zwischen zwei oder mehren ETs.Der RT ist als Begriff auf Mengenebene nur abstrakt vorhanden, also in der Miniwelt real nicht existent.

  • Spezialisierung

Ein ET wird als Teilmenge einer anderen ET deklariert, wobei sich die Teilmenge (spezialisierte Menge) durch besondere Eigenschaften (spezielle Attribute und/oder Relationships) gegenüber der übergeordneten (generalisierten Menge) auszeichnet.

Ein Schlüssel dient zu eindeutiger Identifikation einer Relation.

[Bearbeiten] Gegenüberstellung von Grundbegriffen

Tabelle Relationales Datenmodell Entity-Relationship-Modell (ERM) Unified Modeling Language (UML)
Wertebereich (Domäne, Domain) Wertebereich (Domäne, Domain) Wertebereich (Domäne, Domain) Wertebereich (Domäne, Domain)
Kopfzeile Relationstyp/Relationsformat Entitätstyp Klasse
Spaltenüberschrift Attribut Attribut Attribut
Inhalt Relation Entitätsmenge(-set) Objektmenge, Instanzmenge, Klasse
Inhalt Fremdschlüssel Beziehung (Relationship) Assoziation
Zeile Tupel Entität Objekt, Instanz
Zelle Attributwert Attributwert Attributwert

[Bearbeiten] Schwachpunkte der relationalen Modellierung

  • Segmentierung
    In der relationalen Darstellung erfolgt die Abspeicherung eines Objektes segmentiert auf viele unterschiedliche Relationen. Die Anwendungsobjekte sind normalerweise komplex, bestehen also selbst wieder aus Objekten oder Listen von Objekten. Da das relationale Modell lediglich Tupelmengen kennt, die aus Werten bestehen, müssen komplexe Anwendungsobjekte bei einer Abfrage durch das DBMS mittels zahlreicher Joins aus den einzelnen Relationen wiederhergestellt werden, was zu unübersichtlichen Abfragen führt.
  • künstliche Schlüsselattribute
    Zur eindeutigen Identifizierung von Tupeln müssen in manchen Fällen künstliche Schlüssel eingesetzt werden. Dies dient z.B. dazu, die Größe des Schlüssels zu reduzieren, wenn er als Fremdschlüssel eingesetzt werden soll, oder dazu, gehört-zu-Beziehungen zu implementieren. Es werden also Attribute in die Relation aufgenommen, die mit der abstrakten Beschreibung eines Anwendungsobjektes nichts zu tun haben, sondern "nur" Verwaltungsinformationen sind.
  • externe Programmierschnittstelle
    Da in vielen relationalen Datenbanken nur Datenmanipulationssprachen eingeschränkter Mächtigkeit vorhanden sind, folgt daraus, dass Schnittstellen notwendig werden, um mächtigere Programmiersprachen einbinden zu können. Es gibt jedoch auch relationale Datenbanken mit mächtigen Programmiersprachen wie PL/SQL in Oracle. Die Verbindung von Datenbanksprachen mit externen, schon vorhandenen Programmiersprachen führt zu einer wenig programmiererfreundlichen Handhabung, z. B. beim Einbinden von SQL in C++-Programme: Beide Sprachen verfolgen hier ein unterschiedliches Verarbeitungsparadigma: SQL arbeitet mengenorientiert und C++ satzorientiert.
  • fehlendes Verhalten
    In der relationalen Datenbank kann das anwendungstypische Verhalten eines Objektes nicht beschrieben werden. Diese Beschreibung kann somit erst außerhalb der Datenbank in einer Anwendungssoftware erfolgen. Wenn mehrere Anwendungen den gleichen Datenbestand nutzen, kann das zu einer redundanten Implementierung führen.
  • keine transitive Hülle berechenbar
    Mit dem reinen Relationenmodell lässt sich keine Transitive Hülle berechnen. Betrachten wir z.B. eine Relation Mitarbeiter mit Primärschlüsselattribut PersNr (jeder Mitarbeiter hat genau eine Personalnummer) und einem zweiten Attribut hat_Chef. Dieses enthält den Wert der PersNr des jeweiligen Chefs. Wir können nun zu jedem Mitarbeiter seinen direkten Vorgesetzten bestimmen. Möchten wir aber alle seine Vorgesetzten bestimmen, also die Chefs seines Chefs, dann ist uns das nicht möglich.

[Bearbeiten] Empfehlungen (Best Practices)

Bezeichner für Tabellen, Felder, Views, Trigger sollten folgenden Regeln gehorchen:

  • Ein Bezeichner muss mit einem Buchstaben oder einem Unterstrich (_) beginnen und darf keine Leerzeichen enthalten.
  • Auf das erste Zeichen können Buchstaben, Ziffern und Unterstriche folgen.
  • Reservierte Wörter (z.B. FROM) dürfen nicht als Bezeichner verwendet werden.
  • Bezeichner sollten max. 64 Zeichen haben

Viele Datenbankmanagementsysteme sind wesentlich freizügiger bei der Vergabe von Bezeichnern. Man sollte diese Freiheiten aber nicht benutzen, denn dies erschwert das Portieren einer Datenbank auf ein anderes Datenbankmanagementsystem. Vor allem bei der Benutzung von reservierten Wörtern kann es zu Fehlern kommen, die sich nur schwer finden lassen.

[Bearbeiten] Siehe auch

[Bearbeiten] Literatur

  • Edgar F. Codd: A Relational Model of Data for Large Shared Data Banks. In: Communications of the ACM. 6/13/Juni 1970, ACM Press, New York, S. 377-387, ISSN 0001-0782
  • Edgar F. Codd: The Relational Model for Database Management. Version 2. Addison-Wesley, Reading u.a. 1990, ISBN 0-201-14192-2
  • Thomas Connolly, Carolyn Begg, Anne Strachan: Datenbanksysteme. Eine praktische Anleitung zu Design, Implementierung und Management. Addison-Wesley, München 2002, ISBN 3-8273-2013-5
  • Tobias Eggendorfer: Datenbanksysteme für Wirtschaftsinformatiker. Books on Demand, Norderstedt 2005, ISBN 3-8334-2493-1
  • Ramez Elmasri, Shamkant B. Navathe: Grundlagen von Datenbanksystemen, Pearson Studium, 15. September 2002, ISBN 3-8273-7021-3
  • Alfons Kemper, André Eickler: Datenbanksysteme. Eine Einführung. Oldenbourg, München 2004, ISBN 3-486-27392-2
  • Peter Stahlknecht, Ulrich Hasenkamp: Einführung in die Wirtschaftsinformatik. Springer, Berlin 2002, ISBN 3-540-41986-1
  • Helmut Dreßler: Datenstrukturentwurf (Vom Faktenchaos zur Anwenderdatenbank). R. Oldenbourg, München Wien 1995, ISBN 3-486-21808-5
  • C. J. Date und Hugh Darwen: Databases, Types, and the Relational Model: The Third Manifesto, Addison-Wesley, ISBN 0-321-39942-0

[Bearbeiten] Weblinks

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu