Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

SQL Theoriefragen

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von fhwn.jan, 3 November 2016.

  1. fhwn.jan

    fhwn.jan Benutzer

    Hallo,
    Ich habe folgende Fragen als Musterklausur bekommen. Ich habe die Fragen gelöst aber bin mir nicht so sicher. kann vll jemand meine Lösungen kurz anschauen ob ich richtig gelöst habe? Ich wäre sehr dankbar.

    datenbank teori.PNG

    a: Primery keys: Personalnummer und AbteilungsNr (1. Tabelle)
    Foreign key: Abteilungsnummer (2.tabelle)

    b: delete from abteilungen where bezeichnung = "Werkstatt"

    c: nicht möglich, da Abteilung 7 nicht existriert.

    d: nicht möglich, weil Primerykey kann nicht aktualisiert werden.

    2: erste Statement ist richtig (nur wenn PNr 12378 integer ist)
    zweite statement ist falsch
    dritte statement ist falsch
    vierte statement ist auch falsch weil "having" ist nur möglich mit group by.


    Wenn jemand kurz ein Augenblickt wirft und sagt ob ich etwas falsch habe, würde ich mich sehr freuen.

    Danke im Voraus.
     
  2. ukulele

    ukulele Datenbank-Guru

    a) ist nicht ganz richtig. Personalnr. ist PK von Tabelle 1, Abteilungsnr. PK von Tabelle 2 und FK in Tabelle 1.
    b) wird scheitern, die referenzielle Integrität der DB wird verhindern das du die Abteilung Werkstatt löscht solange ein FK (konkret Fritz Kunz) auf den Eintrag zeigt.
    c) richtig
    d) das ist tatsächlich nicht zulässig aber eben auch weil ein FK auf den PK zeigt und sobald der PK sich ändert geht die referenzielle Integrität nicht mehr gegeben ist. Ohne einen FK der auf den PK zeigt müsste das gehen, zumindest in der praxis geht es.
    2a) Statement richtig
    2b) Statement falsch, es fehlt die Join-Condition
    2c) Statement falsch, sum() muss mit HAVING geprüft werden
    2d) Statement falsch, Begründung richtig
     
  3. fhwn.jan

    fhwn.jan Benutzer

    Danke Ukulele. Ich habe volgende 2 Fragen so bearbeitet. Kannst du auch schauen ob ich Fehler habe?



    ER Frage lösung.png ER Normal.PNG
     
  4. ukulele

    ukulele Datenbank-Guru

    Also die Firmen-Branchen-Frage hast du nicht gelöst?

    Bei den Normalformen vertue ich mich auch immer mal wieder, sieht aber richtig aus. Nur die rechte Tabelle ist nicht stimmig. Wo kommt die Rechnungsnummer ID her? Wenn das Positionen auf einer Rechnung abbilden soll, musst du mehrere Positionen auf einer Rechnungs-ID ermöglichen, die kann also nicht PK sein. Ich denke aber die Spalte ist hier gar nicht gewollt.

    Du könnest, um die Aufgabe abzubilden, nur mit ArtikelID und LiefernatID als Spalten alles abbilden. Der PK wäre dann aus diesen beiden Spalten zusammengesetzt.
     
  5. fhwn.jan

    fhwn.jan Benutzer

    man muss es nur zeichnen, also ich habe auf paint so was gezeichnet wie es unter der frage steht :)
     
  6. fhwn.jan

    fhwn.jan Benutzer

    ja du hast recht, ich habe Normalisierung korrigiert! Danke
     
  7. ukulele

    ukulele Datenbank-Guru

    Achso, in der Zeichnung dürfte aber bei der Entität Branchen glaube ich keine 3 Striche bei der Beziehung sein. Es handelt sich ja um eine 1:n Beziehung zur Zwischentabelle.

    Außerdem steht da möglichst detailiert, dazu gehören natürlich auch Atribute, PK, FK, etc.
     

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden