Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Aphorismen
Applications
Business Economics & Admin.
My Computers
Cooking
Devices
Folders
Food
Hardware
Infos
Software Development
Sports
Operation Instructions
Todos
Test
Help
Glossary
Community portal
adaptions
Sidebar anpassen
Wiki RB4
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
SQL
(section)
Page
Discussion
English
Read
Edit
View history
Toolbox
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Begriffe== Zentrales Element von relationalen Datenbanken (DB) sind Tabellen/Relationen, die die eigentlichen Daten enthalten. Objekte/Entities werden durch Relationenschemas beschrieben. Relationenschemas bestehen aus einer Anzahl Attributen. Eine Datenbank bzw. ein Datenbankschema besteht aus n Tabellen. Metadaten sind Daten, welche die Struktur der Daten innerhalb einer DB beschreiben. Sie werden im sogenannten data dictionary gespeichert. Die Struktur einer ganzen DB wird als konzeptionelle Sicht oder auch vollständiges logisches Modell bezeichnet. Das Schema gehört zu den Metadaten und ist eine benannte Kollektion zusammengehörigen Tabellen, wodurch ein Namensraum aufgespannt werden kann. Ein Katalog ist eine benannte Kollektion von Schemata, wodurch eine weitere Stufe des Namensraums aufgespannt wird. Ein Attribut einer Relation kann eine endliche Anzahl von Werten annehmen. Die Gesamtmenge dieser Werte wird als ''Domäne'' des Attributs bezeichnet. Constraints sind Regeln, die festlegen, welche Werte die Attribute einer Tabelle annehmen dürfen. Es gibt drei Arten von Constraints: Spalten-Constraints, Tabellen-Constraints und Zusicherungen (assertions), daß sind Constraints, die mehr als eine Tabelle betreffen. Ein Spalten-Constraint ist z.B. daß Check-constraint bzw. in Access Gültigkeitsregel. ===Relationen/Tabellen=== In der DB Theorie sind Tabellen Relationen bzw. eine Tabelle ist eine Relation. Die Spalten in Tabellen heißen Felder und die Zeilen Datensätze. Ein gemeinsames Feld in mehreren Tabellen verknüpft diese Tabellen. Eine Relation ist eine Teilmenge des kartesischen Produkts über den Wertebereich der Attribute eines Relationenschemas. Eine Relation zum Relationenschema R wird durch r(R) gekennzeichnet. DB_Relation.jpg Ein ''(Spalten-)Attribut'' ist eine bestimmte Eigenschaft eines Feldes in einer Tabellenspalte. Wie sich jedermann/frau vorstellen kann, werden Tabellenspalten durch die Angabe des Datentyps charakterisiert. Beispielsweise können diese Datentypen vom Typ DATE, CHAR, VARCHAR, INTEGER...u.s.w. sein. Attribute von Feldern charaktierisieren aber über den Datentyp hinaus das Verhalten der Datensätze in einer Spalte. Z.B. kann hier festgelegt werden, daß z.B. eine Spalte vom Typ VARCHAR(20) nicht mehr in der Größe wachsen darf, auch wenn jemand einen längeren String ablegen möchte. Das Attribut, daß das Feld variabel ist, ist meist die Standardeinstellung. Ein weiteres Attribut ist z.B. die Festlegung, daß ein Feld in einer Tabellenspalte konstant sein muß. Im Normalfall geht man davon aus, daß alle Werte verändert werden können, es gibt jedoch manchmal die Forderung nach der Festlegung von Werten, z.B. nach einem Monatsabschluß bei der Finanzzbuchhaltung oder bei einer Umstellung der MwSt. im April 1998 und zu Beginn 2000. Ein weiteres Attribut kann sein, daß eine automatische Sortierung in auf-oder absteigender Reihenfolge vorgenommen wird. Ein ''Primärschlüssel'' (primary key) unterscheidet die Datensätze in einer Tabelle, d.h. jeder Datensatz ist anhand des Primärschlüssels eindeutig zu identifizieren. Es gibt auch zusammengesetzte Primärschlüssel, wobei die Attribute nicht leer sein dürfen. Ein ''Fremdschlüssel'' (foreign key) ist eine Spalte oder eine Gruppe von Spalten in einer Tabelle, die einen Primärschlüssel in einer anderen Tabelle referenziert. Ein Fremdschlüssel muß selbst nicht eindeutig sein, aber er muß einen eindeutigen Primärschlüssel referenzieren. Ein ''Sekundärschlüssel'' beinhaltet all die Attribute, die potentiellen Primärschlüsselcharakter haben, aber nicht als Primärschlüssel herangezogen wurden, sondern nur ergänzenden Charakter haben. Ein '''Surrogat Key''' ist ein künstlicher Primärschlüssel, der keine Bedeutung trägt, wie z.B. der Name als Primärschlüssel für eine Tabelle User. ===1:n Relation=== Zu Datensätzen in Tabelle A gibt es immer genau eine Entsprechung in Tabelle B. Zu Tabelle B gibt es keine Entsprechung, eine oder mehrere Entsprechungen in Tabelle A. Der Fremd-Key in der Detailtabelle ist der Primär-Key in der Mastertabelle. 1_zu_n_Relation.jpg ===n:m Relation=== Zu Tabelle B gibt es keine Entsprechung, eine oder mehrere Entsprechungen in Tabelle A. Zu Tabelle A gibt es keine Entsprechung, eine oder mehrere Entsprechungen in Tabelle B. Dies ist nur möglich, indem eine dritte Tabelle definiert wird (die als Verbindungstabelle bezeichnet wird), deren Primärschlüssel aus zwei Feldern besteht, den Fremdschlüsseln aus den Tabellen A und B. Eine m:n-Beziehung besteht eigentlich aus zwei 1:n-Beziehungen mit einer dritten Tabelle. m_zu_n_Relation.jpg ===ER- Diagramme=== ER_Diagramme.jpg ===Entity Integrität === Um die Entity-Integrität zu besitzen, muß eine Tabelle über einen Primärschlüssel verfügen, der jede Zeile in der Tabelle eindeutig identifiziert. Um die Entity-Integrität zu gewährleisten, muß man sicherstellen, daß die Spalte oder die Spalten, die den Primärschlüssel bilden, keine Nullwerte enthalten. Außerdem muß der Primärschlüssel das Constraint UNIQUE erfüllen. ===Domänenintegrität=== Damit ist gewährleistet, daß jeder Eintrag in einer Spalte einen gültigen Wert besitzt. ===Referentielle Integrität=== Die Regeln der referentielle Integrität verbieten verwaiste Fremdschlüssel, d.h. es können keine Zeilen einer Tabelle (Mastertabelle) gelöscht werden, die in einer anderen Tabelle (Detailtabelle) als Fremdschlüssel werden. ===Index=== Ein Index beschleunigt das Suchen und Sortieren von Datensätzen. Die Daten in einer Tabelle werden in der Regel in der Reihenfolge gespeichert wie sie eingegeben werden. Im Index wird die Position der Daten nachgeschlagen. Sie können Indizes auf ein einzelnes Feld oder auf mehrere Felder legen. Zusammengesetzte Indizes erlauben das Unterscheiden zwischen Datensätzen, deren Inhalt im ersten Feld möglicherweise identisch ist Ein Index sollte für Spalten nach denen oft gesucht oder sortiert wird ein Index angelegt werden, allerdings kostet die Verwaltung jeder zusätzlicher Indexe zusätzliche Rechenzeit. ===Joins=== Man verbindet zwei Tabellen in einem Join über eine connecting bzw. join column. Beispielsituation: [[Image:join1.jpg]] '''Inner joins''' between two tables returns rows of data that exist across all joined tables, excluding rows that may only exist in one of the tables but not the other table. '''Outer joins''' return every row that exists in the left (in a left outer join) or right (in a right outer join) joined table, while rendering NULL values on rows whose foreign key does not match a record in the other (right or left) table. The "left" table refers to the table to the left of the JOIN statement in the query, whereas the "right" table refers to the table to the right of the JOIN statement in the query. Ein '''inner join''' kombiniert Datensätze aus zwei Tabellen, sobald ein gemeinsames Feld dieselben Werte enthält (unabhängig ob es primary oder foreign key Felder sind): [[Image:join2.jpg]] '''Left joins''' schließen alle Datensätze aus der ersten (linken) Tabelle von zwei Tabellen ein, auch wenn keine entsprechenden Werte für Datensätze in der zweiten (rechten) Tabelle vorhanden sind: [[Image:join3.jpg]] '''Right joins''' schließen alle Datensätze aus der zweiten (rechten) Tabelle von zwei Tabellen ein, auch wenn keine entsprechenden Werte für Datensätze in der ersten (linken) Tabelle vorhanden sind. [[Image:join4.jpg]] Man kann auch''' kombinierte Joins''' ausführen: [[Image:join5.jpg]] ===View=== A view is an alternative way of looking at the data in one or more tables. Views are sometimes called virtual tables (virtuelle Tabellen) or derived tables (abgeleitete Tabellen). Im Gegensatz dazu werden 'echte' Tabellen oft base tables (Basistabellen) genannt. Ein View enthält keine Kopie der Daten, sondern die realen Daten.
Summary:
Please note that all contributions to Wiki RB4 may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Uwe Heuer Wiki New:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Toggle limited content width