Grundlegende Frage zur Verwendung von Primärschlüsseln

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

smguenther
**
Beiträge: 23
Registriert: So, 22.04.2007 14:07

Grundlegende Frage zur Verwendung von Primärschlüsseln

Beitrag von smguenther »

Hallo,

nachdem ich einige erste Schritte mit Base (OOo 2.2.0) hinter mir habe und versucht habe mir mit Hilfe der Beschreibungen im Forum zu helfen, stehe ich nun doch auf dem Schlauch.
Würde mich sehr freuen, wenn mir jemand vom Schlauch helfen würde.

Wenn ich eine neue Tabelle ohne Primärschlüssel in Base anlegen, dann kann ich in die Tabelle keine Daten eingeben. Laut einiger Postings soll dies daran liegen, daß ich beim Anlegen der DB ausgewählt habe, daß die DB registriert werden soll. Wenn ich dies nicht auswähle, kann ich die Tabelle aber auch nicht mit Daten füllen.

Vergebe ich jedoch beim Anlegen der Tabelle einen Primärschlüssel, dann kann ich Daten eingeben? Wo ist da der Sinn des Primärschlüssels?

Wenn ich nun bei einer bereits angelegten, aber leeren Tabelle versuche nachträglich einem Feld einen Schlüssel zuzuordnen, dann erhalte ich die Fehlermeldung "Warnung. Die Spalte feld1 konnte nicht geändert werden. Soll sie statt dessen gelöscht und das neue Format angehängt werden"?

Unterscheidet sich die Verwendung des Primärschlüssels in Base so sehr von jener in z.B. MS Access oder MySQL? Schließlich muß ich dort auch nicht eine Schlüssel anlegen, damit ich Daten eingeben kann.

Danke für jeden Hinweis & Tipp.

Stefan
Aksel-one-
Beiträge: 6
Registriert: Mi, 02.05.2007 13:00

Beitrag von Aksel-one- »

den primärschlüssel brauchst du z.B. um relationale Verknüpfungen zu realisieren...außerdem dient er dazu das deine tabelle anhand eines suchbegriffs eindeutig identifiziert werden kann...

und in mysql ist das das selbe in grün...
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hallo Stefan,
Wenn ich eine neue Tabelle ohne Primärschlüssel in Base anlegen, dann kann ich in die Tabelle keine Daten eingeben. Laut einiger Postings soll dies daran liegen, daß ich beim Anlegen der DB ausgewählt habe, daß die DB registriert werden soll. Wenn ich dies nicht auswähle, kann ich die Tabelle aber auch nicht mit Daten füllen.
Der erste Satz ist korrekt, der zweite nicht. Um Daten eingenen zu können, brauchst du eine Primärschlüssel - das ist aber unabhängig von der Registrierung oder ähnlichem.

Ein Primärschlüssel ist der einzige eindeutige Kennzeichen zur Identifikation des Datensatzes. In relationalen Datenbanken werden die Datensätze intern nicht "untereinander" gespeichert, so dass sie eine eindeutige Zeilennummer haben - insofern braucht man andere Kriterien.
versuche nachträglich einem Feld einen Schlüssel zuzuordnen, dann erhalte ich die Fehlermeldung
Das ist sicher noch eine Schwäche von Base - man kann aber damit leben :-)
Du könntest auch folgendes Versuchen: Die ganze Tabelle kopieren (in der normalen Base-Ansicht ) und neu einfügen. Dann wird in der Regel ein Dialog angezeigt, cer alle Spalten darstellt und Dir die Möglichkeit biertet, einzelne nicht zu übernehmen etc. Dabei kannst du dann meist auch eine vorhandene Spalte als Primärschlüssel definieren :-)
Unterscheidet sich die Verwendung des Primärschlüssels in Base so sehr von jener in z.B. MS Access oder MySQL
Nein, nicht wirklich. Access ist da sicher eine Ausnahmen - dort ist das nicht nötig (bei DBase übrigens auch nicht :-) ), macht aber dennoch Sinn. Access indiziert intern automatisch - und belastet den Nutzer nicht mit solchen "Kleinigkeiten" ;-)
Bei relationalen DB aber ist das Verhalten gleich.

Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
smguenther
**
Beiträge: 23
Registriert: So, 22.04.2007 14:07

Beitrag von smguenther »

Hey toxitom,

das war eine Antwort aus der Kategorie "Da bleibt keine Frage offen"!
Danke für die ausführliche Kommentierung meiner Fragen.

Gruß,

Stefan
Antworten