CONSTRAINTS in Datenbanken

  • Gültigkeitsprüfungen in Datenbanken (Auf welche Tabelle wird verwiesen? Welche Spalten werden referenziert?) können zunächst einmal in der Tabelle USER_CONSTRAINTS überprüft werden.

    Liege ich damit schon falsch? Wenn ja, bitte ich um Verbesserung!

    Andernfalls wäre mir sehr geholfen, wenn mir jemand sagen könnte, was in dieser Tabelle steht und wie der weitere Weg ist, solche Referenzen zu finden? Wo stecken die foreign- bzw. primary keys?

    CONSTRAINT_NAME, TABLE_NAME, USER_CONS_COLUMNS, etc. Was fange ich mit diesen Tabellen an und welche Aussagen stecken dahinter?

    Ich hoffe, dass ich mein Problem detailliert genug beschrieben habe.
    Erzählt mir mal was ihr wisst und ich versuche es einzuordnen. Das Problem ist, dass ich eigentlich selber nicht genau weiß was ich will!
    Alles in allem wäre mir eine „Wegbeschreibung“ zur Überprüfung der Tabellen für solche Gültigkeitsprüfungen sehr hilfreich!

    MfG

  • Hey Gast!
    Hast Du eine Frage, die Du gerne beantwortet haben möchtet? Klickt auf den folgenden Link und Du wirst die Antwort finden:

    Hier findest Du die Antworten

    Egal, ob es sich um eine Frage zu einem bestimmten Thema in eurem Studium oder um allgemeine Ratschläge handelt - wir haben die Antworten, die ihr sucht. Also zögert nicht und klickt auf den Link! Wir freuen uns darauf, euch zu helfen.

  • Hallo ISMIRKALT,

    Zitat

    Gültigkeitsprüfungen in Datenbanken (Auf welche Tabelle wird verwiesen? Welche Spalten werden referenziert?) können zunächst einmal in der Tabelle USER_CONSTRAINTS überprüft werden.

    Damit kann ich leider schon mal nicht allzuviel anfangen. Ziemlich wirr und ohne Zusammenhang...
    Aber ich versuch mal einfach ein paar deiner Schlagwörter aufzugreifen und zu erklären, vielleicht lichtet sich ja dann dein Wald.

    Zu Beginn, Constraint ist eine SQL spezifische Deklaration, wirst du also in anderen DB Sprachen so nicht wiederfinden. Sie sind eine Regel - Beziehung um in Tabellen (DB) eine Datenkonsitenz zu gewährleisten. Folgende Formen kann das constraint dabei annehmen:

    CONSTRAINT ... PRIMARY KEY definiert Primärschlüsselspalten.
    CONSTRAINT ... REFERENCES definiert Fremdschlüsselspalten.
    CONSTRAINT ... NOT NULL erzwingt Eingabewerte.
    CONSTRAINT ... CHECK ... ermöglicht zusätzliche Prüfungen.
    UNIQUE mit einem Parameter stellt sicher, das es keine zwei gleichen Elemente in dieser Spalte gibt. Bei zwei Parametern gilt das Gleiche für Element-Kombinationen

    Zitat

    CONSTRAINT_NAME, TABLE_NAME, USER_CONS_COLUMNS, etc. Was fange ich mit diesen Tabellen an und welche Aussagen stecken dahinter?

    keine Ahnung was du hier genau willst? Dies sind weder Schlagwörter noch irgendwelche Inhaltlich fördernede Informationen. Hast du irgendwo eine Zusammenhangsaufgabe, woraus sich diese Namen ableiten lassen?

    Kann es sein dass du überhaupt gar keine Ahnung hast was DDL angeht?
    folgendes Konstrukt um eine Vorstellung zu bekommen wie eine Tabelle mit SQL aussehen könnte: (Beispiel aus meinem Skript!)

    CREATE TABLE Autor (
    Nr INT
    CONSTRAINT Pk_Autor PRIMARY KEY,
    Name VARCHAR(80)
    CONSTRAINT Nn_Autor_Name NOT NULL,
    VorName VARCHAR(80)
    CONSTRAINT Nn_Autor_VorName NOT NULL,
    GebJahr INT,
    Geschl CHAR(1)
    CONSTRAINT Ch_Autor_Geschl
    CHECK ( TYP IN ('m', 'w') ),
    UNIQUE( Nr ),
    UNIQUE( Name, VorName ) );

    Hier kannst du auch noch mal den Zusammenhang Constraint erkennen!

    Zitat

    Ich hoffe, dass ich mein Problem detailliert genug beschrieben habe.


    find ich nicht! Kann dir daher auch nicht wirklich weiter helfen.

    Zitat

    Erzählt mir mal was ihr wisst und ich versuche es einzuordnen.


    wohl kaum, wir reden hier schließlich um Grundlagen Datenbanken, das kann Stunden dauern da auch nur Ansatzweise auf eine Sinnvoll gemeinsame Basis zu kommen. - Ich kenn dein Wissensstand nicht und ich vermute der wird auch nicht sehr hoch sein -

    Sorry, aber ich kann dir hier, ohne konkrete weitere Hinweise von deiner Seite, nicht mehr Input geben. Vielleicht reicht dir ja auch schon das was ich dir mitgeben konnte.

    Viel Erfolg noch und
    Viele Grüße
    Clark

  • CONSTRAINT_NAME, TABLE_NAME, etc. Was fange ich mit diesen Tabellen an und welche Aussagen stecken dahinter?

    Zitat


    keine Ahnung was du hier genau willst? Dies sind weder Schlagwörter noch irgendwelche Inhaltlich fördernede Informationen. Hast du irgendwo eine Zusammenhangsaufgabe, woraus sich diese Namen ableiten lassen?

    Durch folgende Eingabe erhält man eine Übersicht in der unter anderem oben beschriebene Tabellen aufgeführt sind.

    SQL>desc user_constraints

    Was besagen denn jetzt folgende Tabellen:

    CONSTRAINT_NAME
    CONSTRAINT_TYPE
    TABLE_NAME
    R_CONSTRAINT_NAME

  • OK vielleicht liege ich falsch, dann entschuldige ich mich hiermit, aber meines Wissens nach ist lediglich user_constraints eine Tabelle, nämlich die welche eine Übersicht über alle Constraints enthält!
    Die

    Zitat

    CONSTRAINT_NAME
    CONSTRAINT_TYPE
    TABLE_NAME
    R_CONSTRAINT_NAME

    sind soweit ich das kenne die Identifier der Tabelle (von mir aus auch Spaltennamen!).
    Also wenn ich mich nun nicht irre, hast du in der Tabelle user_constraints alle erstellten Constraints stehen, die du aktuell nach den genannten Kriterien selektieren kannst.
    Aber wie schon gesagt ich kann mich irren. Du scheinst dir ziemlich sicher zu sein, dass es sich um Tabellen handelt, so sicher bin ich mir mit meiner Version leider nicht.

    Sorry dass ich dir nicht weiter helfen konnte. Wünsche dir dennoch viel Erfolg
    Viele Grüße
    Clark

  • Ich sehe es auch so, user_constraints ist eine Tabelle die alle Constraints enthält.

    Gruß
    Markus

    I don't always know what I'm talking about but I know I'm right!


    E-Mail: markus at study-board.com


    Skype und MSN auf Anfrage