Die Mathe-Redaktion - 09.12.2019 17:13 - Registrieren/Login
Auswahl
ListenpunktHome
ListenpunktAktuell und Interessant ai
ListenpunktArtikelübersicht/-suche
ListenpunktAlle Links / Mathe-Links
ListenpunktFach- & Sachbücher
ListenpunktMitglieder / Karte / Top 15
ListenpunktRegistrieren/Login
ListenpunktArbeitsgruppen
Listenpunkt? im neuen Schwätz
ListenpunktWerde Mathe-Millionär!
ListenpunktFormeleditor fedgeo
Schwarzes Brett
Aktion im Forum
Suche
Stichwortsuche in Artikeln und Links von Matheplanet
Suchen im Forum
Suchtipps

Bücher
Englische Bücher
Software
Suchbegriffe:
Mathematik bei amazon
Naturwissenschaft & Technik
In Partnerschaft mit Amazon.de
Kontakt
Mail an Matroid
[Keine Übungsaufgaben!]
Impressum

Bitte beachten Sie unsere Nutzungsbedingungen, die Distanzierung, unsere Datenschutzerklärung und
die Forumregeln.

Sie können Mitglied werden. Mitglieder können den Matheplanet-Newsletter bestellen, der etwa alle 2 Monate erscheint.

Der Newsletter Okt. 2017

Für Mitglieder
Mathematisch für Anfänger
Wer ist Online
Aktuell sind 960 Gäste und 17 Mitglieder online.

Sie können Mitglied werden:
Klick hier.

Über Matheplanet
 
Zum letzten Themenfilter: Themenfilter:
Matroids Matheplanet Forum Index
Moderiert von matroid
Informatik » Datenbanken » Können Beziehungstypen auch Fremdschlüssel enthalten? Und wieso?
Druckversion
Druckversion
Antworten
Antworten
Autor
Universität/Hochschule Können Beziehungstypen auch Fremdschlüssel enthalten? Und wieso?
Cajetan
Junior Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.07.2018
Mitteilungen: 7
Aus: Saarland
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2019-07-15


Hallo, zusammen.
Zurzeit mitten im Informatikstudium, Vorlesung: Informationssysteme. Die folgende Frage, die mich hier beirrt ist die der Fremdschlüssel. Ich habe keinerlei Probleme Schlüsselkandidaten für Primärschlüssel auszumachen, auch nicht bei mehrstelligen Beziehungstypen. Allerdings bei den Fremdschlüsseln ist mir nicht ganz klar, warum dies auch bei Beziehungstypen möglich sein soll.

Wir benutzen das Entity-Relationship-Modell und das relationale Modell. (Schreibweise aus Alfons Kempers Buch über DBMS)

Gedankengänge:
Fremdschlüssel erhalten immer diejenigen Entitätstypen, die die Kardinalität "1" haben, soweit das klassische Verständnis. Bei 1:1-Beziehungen kann man sich entscheiden (bzw. hier ist dann die min-max-Notation notwendig), bei N:M erhält keiner einen Fremdschlüssel, klar, weil man hier jede Entität ja einzeln über alle Schlüssel bestimmen muss.

Ein Beispiel, wie ich es normal verstehe (relationales Modell):
[Student]: {[matrikelnummer: int, name: varchar, vorname: varchar]}
[studiert]: {[matrikelnummer: int, id:int]
[Studiengang]: {[id:int, name: varchar, zulassungsfrei: bool]}
(Beispiel 1.0)

"matrikelnummer" ist hierbei mein Primärschlüssel (im relationalen Modell unterstrichen) im Entitätstyp "Student" und "id" der Primärschlüssel im Entitätstyp "Studiengang". Student und Studiengang sind über den Beziehungstyp "studiert" miteinander verknüpft als N:1-Beziehung. Im Beziehungstypen "studiert" ist entsprechend daher nur "matrikelnummer" unterstrichen.

Würde ich jetzt einen Fremdschlüssel bestimmen, so löse ich den Beziehungstypen "studiert" auf, und gebe einen Fremdschlüssel dem Entitätstypen mit der Kardinalität "1". Das wäre hier "Student". Das Ergebnis:

[Student]: {[matrikelnummer: int, name: varchar, vorname: varchar, studiertZurzeit: (Studiengang -> id)]}
[Studiengang]: {[id:int, name: varchar, zulassungsfrei: bool]}
(Beispiel 1.1)

Allerdings, sind mir jetzt auch in relationalen Modellen Beziehungstypen vorgekommen, die Fremdschlüssel enthalten. Intuitiv verstehe ich das leider nicht so ganz. Kann man da auch nicht gleich einfach die Schlüssel von den jeweiligen Entitätstypen in Beziehungstypen aufnehmen wie oben im Beispiel 1.0? Was ich bspw. gesehen habe wäre (wenn wir obiges Beispiel wiederverwenden) folgendes:

[Student]: {[matrikelnummer: int, name: varchar, vorname: varchar]}
[studiert]: {[matr_id: (Student -> matrikelnummer), studiengang_id: (Studiengang -> id)]
[Studiengang]: {[id:int, name: varchar, zulassungsfrei: bool]}
(Beispiel 1.2)

So ganz erschließt sich mir der Sinn hier aber nicht bzw. ich finde es eigentlich überflüssig. Steckt da doch etwas dahinter? Dient es vielleicht nur zur Verdeutlichung oder zur Übersicht?

Ich danke schonmal im Voraus!

MfG,
Cajetan.



  Profil  Quote  Link auf diesen Beitrag Link
hgseib
Aktiv Letzter Besuch: im letzten Quartal
Dabei seit: 04.04.2019
Mitteilungen: 172
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2019-07-16


Hallo

da sich niemand anderes meldet, versuche ich mal mein Glück:


in Beispiel 1.1 hat jeder Student via studiertZurzeit einen Studiengang

in Beispiel 1.2 kann jeder Student via studiert mehrere Studiengänge haben


der Unterschied von Beispiel 1.0 zu 1.2 liegt wohl im relationalen Datenbanksystem, ob die DB nur id's kennt, oder 'weiss', wessen id's das sind?


mfg



  Profil  Quote  Link auf diesen Beitrag Link
Cajetan hat die Antworten auf ihre/seine Frage gesehen.
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2019 by Matroids Matheplanet
This web site was made with PHP-Nuke, a web portal system written in PHP. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]