Oracle Beziehungen (DDL Code, Technisch)

buten444

Neuer Benutzer
Beiträge
3
Hallo,
zur Info ich bin neu im Thema Datenbanken.
1) Kann mir einer sagen was der unterschied zwischen den Beiden, auch technisch gesehen bzw. wie sich der Foreign Key verhält.
Da ich keinen unterschied im DDL Coding erkenne bin ich etwas verwirrt.
2) Wird ein Structured Datentyp auf der Serverseite nur in einer Spalte ausgegeben? Das heißt in einer Spalte hätte ich da möglicherweise mehrere Attribute soweit ich das verstanden habe, wäre das nicht gegen die Normalisierungsregeln. Bzw. was ist ein Strucutured Type genau, habe bis jetzt keine zufriedenstellende antwort gefunden bzw. was mir das bringen soll.
Danke für eure Hilfe :)

1705829788101.png
 
Werbung:
Ich kenne diese Darstellung nicht, aber ich vermute(!), die untere Darstellung stellt eine optionale Verbindung dar (es wären also Angestellte erlaubt, die keiner Abteilung zugeteilt sind)

Das bedeutet, die Spalte, die als Foreign Key definiert wird, darf NULL Werte enthalten. Im ersten Fall wird die Spalte vermutlich als NOT NULL definiert.
 
Wird ein Structured Datentyp auf der Serverseite nur in einer Spalte ausgegeben?
Diese Frage ist etwas unklar.
Was ist ein Structured Datentyp für Dich? Meinst Du vielleicht einen Object Type?

Auf "der Serverseite" wird nie etwas ausgegeben. Dort wird gespeichert und abgefragt. Die Ausgabe erfolgt auf/in/mit dem Clientprogramm.
Eine Spalte kann selbst ganz allgemein einen Wert oder mehrere Werte enthalten. Sind es mehrere Werte, können diese strukturiert oder unstrukturiert vorliegen.
Ist der Client in der Lage, die Datenstruktur innerhalb einer Spalte zu verarbeiten, so kann er sie explizit ausgeben.
BLOB oder CLOB in Oracle sind Beispiele für definierte Typen, die per se unstrukturierte Daten enthalten.
Ein Spalte kann bspw. von Type TEXT/CLOB sein und JSON - oder XML Daten enthalten, deren Zusammensetzung für die DB (den Server) und den abfragenden Client intransparent ist.
 
Sorry für die ungenaue Definition unser vortragender macht es auf English und oracle data modeller ist auf deutsch bei uns ^^
Das meine ich mit Strukturierten Datentyp, nur habe ich den Sinn nicht ganz verstanden was mir das bringt.
Danke, für die Antworten

1705843291433.png
 
Da stellt sich bei mir die Frage ob das dann so aussehen würde in der Tabelle (Customer ID, Title, Firstname(ATTRIBUT1,ATTRIBUT2,ATTRIBUT3), LastName, etc. aussehen würden. Das heißt ob in der Spalte Firstname alle Attribute in einer Spalte drin sind die ich im Object definiert habe und welchen nutzen ich davon habe.
 
Werbung:
Das sieht wie sowas aus:
>Structured user-defined types
Main article: structured type

These are the backbone of the object–relational database extension in SQL:1999. They are analogous to classes in objected-oriented programming languages. SQL:1999 allows only single inheritance.

Es geht um Objekt Orientierte Programmierung und wenn man mit einer durchgängigen Tool Chain arbeitet, kann es wahrscheinlich ganz nett sein, das einzusetzen. Ich habe es nie verwendet. Und ich vermute, dass es nicht sehr verbreitet ist. In ähnlicher Form kenne ich es nur von Postgres.
Dient wahrscheinlich dazu, Klassen aus der OO Programmiersprache einfach in der DB zu übernehmen.

Wenn Du also einen Kurs belegt hast, der "Objekt orientierte Java Entwicklung mit Oracle Database" lautet, dann würde das bspw. dem entsprechen, wie man es einsetzen könnte.
Lässt man irgendwelche Programmiersprachen weg und nimmt z.B. XML her, so kann man mit solchen Methoden relativ einfach zwischen XML und DB Tabelle transformieren.
Ein Vorname, der wie hier in 3 Teile aufgeteilit ist, wäre ein einfaches Beispiel dafür. Oracle Database kann sowas halt, im Gegensatz zu vielen anderen RDBMS ist Oracle ein ORDBMS.
Das letzte SQL Statement im Artikel zeigt im Vergleich zu dem "normalen" Statement davor ganz gut den "reinen Nutzen" in SQL.
SELECT Formal( C.Name )
FROM Customers C
WHERE C.address.city="New York" -- the linkage is 'understood' by the ORDB
 
Zurück
Oben