Autor
|
Thema: Oracle Beziehungen (9123 mal gelesen)
|
BloodyMess Mitglied Applicationingenieur
Beiträge: 604 Registriert: 06.06.2002 AutoCAD Map 3D 2005 Win XP pro
|
erstellt am: 22. Sep. 2004 21:33 <-- editieren / zitieren --> Unities abgeben:
Hallo, dann hab ich doch auch gleich mal eine Frage .. . Wie kann ich mir denn aus einer OracleDB die Beziehungen zwischen den einzelnen Tabellen graphisch darstellen lassen? Hatte das schon mit DBDesigner4 ausprobiert, aber irgendwie kommen da keine Beziehungen mit rüber .. Hab dann die Verbindung mal mit einer AccessDB aufgebaut, in der es Beziehungen gibt, aber die sind auch nicht mit dargestellt worden. Das Programm ist überhaupt sehr genial, damit kann man im EntwurfsModus Datenbanken (Oracle, Odbc, MySql, usw.) erstellen, ohne sich in dem eigentlichen System zu befinden. Und man kann halt auch die Tabellen, Indizes, usw. ausspielen und als Zeichnung exportieren. Gibt es vielleicht noch nen anderen Weg an die Beziehungen ranzukommen? Der Designer von Oracle, ob der´s tut??? bevor ich´s vergess, die DB ist 9.2.0.4 und die Clients sind 10.1.0.2 und 9.2.0.1 Gruß TP ------------------
Code: For Each Person In This.Forum TP.Say "have a nice day!" Next Person
[Diese Nachricht wurde von BloodyMess am 22. Sep. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
furter Mitglied
Beiträge: 483 Registriert: 01.03.2004 Windows 7 Autodesk Map 3D 2020 AEC 2020 TOPOBASE / Oracle
|
erstellt am: 25. Sep. 2004 21:15 <-- editieren / zitieren --> Unities abgeben: Nur für BloodyMess
Hallo zusammen Ich finde, die Erweiterung der Foren durch Fragen über Datenbanken toll. Das ist die Zukunft von CAD allgemein! Die CAD-Programme dienen dem leichten Definieren der Geometrie usw., das Erfassen und Abspitzen danach in eine Datenbank dient dem sicheren Datenerhalt und vor allem dem einfachen und offenen Austausch mit Programmen ähnlich gelagerter "Philosophie". Besten Dank für die Erweiterung des Forums! Hallo BloodyMess Leider kann ich Deine Frage nicht beantworten. Die Beziehungen mit ODBC abzufragen kannst Du wahrscheinlich vergessen. Dies experimentierte ich schon x-mal während dem Mittagessen. Vielleicht kann ich das mal, wenn ich das DBA-Zertifikat erhalten habe. Wir arbeiten vor allem mit "fertigen" Datenbanken, da gibst's diese Bedürfnisse nicht. Und Eingriffe via SQL gelingen wunderbar. Uns fehlt auch die Zeit, mehr als die täglichen Aufgaben zu erfüllen. Wenn Du es rauskriegst, würde es mich aber schon interessieren. Gruss furter [Diese Nachricht wurde von furter am 27. Sep. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WolfgangE Mitglied
Beiträge: 1006 Registriert: 29.01.2003 Compass2000 in allen Ausbaustufen: Easy, Pro, Jobserver, ACM, Replikator, SML, Administration und Programmierung (DBP und SQL). Administration, Wartung und Programmierung von MSSQL Server 2000 und -datenbanken. Grundkenntnisse in AutoLisp-Programmierung.
|
erstellt am: 27. Sep. 2004 09:53 <-- editieren / zitieren --> Unities abgeben: Nur für BloodyMess
|
BloodyMess Mitglied Applicationingenieur
Beiträge: 604 Registriert: 06.06.2002 AutoCAD Map 3D 2005 Win XP pro
|
erstellt am: 27. Sep. 2004 11:35 <-- editieren / zitieren --> Unities abgeben:
Hallo Wolfgang, also gerade zweifle ich etwas an nir .. ;( Bei dem Designer, scheitert es daran, das ich nicht in der Lage bin ein Repository zu erstellen. Mir fehlen auch Rechte für den User, die ich nicht weiß, wo die herkommen (alle 'Required object privileges') .. ist mir ein Rätsel wo ich die vergeben soll. Gibt es weder unter 'Rolle' noch unter 'System' des jeweiligen Users. Das ToAd hatte ich auch schon einmal beim Wickel, aber da hab ich´s net gefunden gehabt. Nun hab ich mal nen bissle gesucht, weil Du mich darauf nochmals aufmerksam gemacht hast. Das einzige, was ich bisher gefunden hab, ist das ich mir einen Report erstellen kann, indem die Tabellen eines Schemas ausgegeben werden mit ihren ganzen Eigenschaften (Constraints, Indizes, usw.). Hier gleich mal eine Zwischenfrage. Für mich sind Constraints Zusatzbedingungen um den Inhalt der Spalte zusätzlich auf Grenzen und/oder Plausibilität zu prüfen. Mich irritiert hierbei 'Primary Key'. Was hat das mit einem Primärschlüssel zu tun? Wenn auf einer Spalte ein Primärschlüssel sitzt, dann kann es nicht sein, das es vielleicht doch sein könnte, das ein Schlüssel zweimal vorkommt. Wozu brauch ich dann noch ein Constraint darauf? Irgendwie werd ich das Gefühl nicht los, das es in meiner DB keine Beziehungen gibt. Kann man das nicht irgendwie über den EnterpriseManager sehen? Sorry, für die Fragen, aber ich mache Oracle erst seid 2 Monaten ... Gruß TP ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WolfgangE Mitglied
Beiträge: 1006 Registriert: 29.01.2003 Compass2000 in allen Ausbaustufen: Easy, Pro, Jobserver, ACM, Replikator, SML, Administration und Programmierung (DBP und SQL). Administration, Wartung und Programmierung von MSSQL Server 2000 und -datenbanken. Grundkenntnisse in AutoLisp-Programmierung.
|
erstellt am: 27. Sep. 2004 11:43 <-- editieren / zitieren --> Unities abgeben: Nur für BloodyMess
Tja, muss dich leider enttäuschen, von Oracle habe ich auch äußerst wenig Ahnung. Ich hab's mir nur mal gezwungenermaßen angesehen, meine Kenntnisse beschränken sich also auf Grundlegendes. Meine Stärke liegt auf SQLServer. Zu den geposteten Links: da hab ich einfach mal schnell gegoogelt, da sind die beiden rausgekommen. Zu den Constraints: es ist richtig, dass Constraints auch bestimmte Prüfungen beinhalten können, z.B. auf Eindeutigkeit. Ein Constraint muss aber nicht zwangsläufig mit einer Beziehung verbunden sein. Es ist durchaus möglich, dass deine Datenbank Primärschlüssel etc. hat, aber keinen expliziten Beziehungen zwischen den Tabellen definiert wurden. Hier wird dann die Logik zwischen den Tabellen nur noch über das darüberliegende Programm realisiert, auf Datenbank-Ebene liegt es dann an dir, dir die Informationen irgendwie raus zu saugen. Ist leider so, hatte ich selbst auch schon. Ciao, WolfgangE ------------------ An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BloodyMess Mitglied Applicationingenieur
Beiträge: 604 Registriert: 06.06.2002 AutoCAD Map 3D 2005 Win XP pro
|
erstellt am: 28. Sep. 2004 10:13 <-- editieren / zitieren --> Unities abgeben:
Hallo Wolfgang, hab jetzt auch ein ER-Diagramm mit TOAD erstellen können. Es ist das selbe wie im DBDesigner - keine Beziehungen vorhanden. Nun stellen sich für mich allerdings ein paar Fragen ... 1. Wann und warum macht es Sinn die Tabellen nicht in Beziehung zueinander zu stellen? 2. Wie erkenne ich in einer OracleDB, das es Beziehungen überhaupt gibt? 3. Wozu werden dann Primary Keys in einer Tabelle vergeben, wenn es keine Relationen zwischen den Tabellen gibt? 4. Macht es denn Sinn, dem Programm zu überlassen, welche Tabellen wie in Verbindung stehen? Das ist doch eigentlich von der Performance her nicht wirklich gut? Und ändern tut das auch nix daran, das die Beziehungen virtuell im Programm definiert sind und somit einen größeren Programmieraufwand darstellt. Aber das muss ja dann Vorteile haben, dass man das so macht??? hmmmm ... irgendwie hab ich das mal alles anders gelernt .. ;( Fragen über Fragen tun sich da über mir auf .. vielleicht kann mir der ein oder andere von Euch helfen. grüßle TP ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WolfgangE Mitglied
Beiträge: 1006 Registriert: 29.01.2003 Compass2000 in allen Ausbaustufen: Easy, Pro, Jobserver, ACM, Replikator, SML, Administration und Programmierung (DBP und SQL). Administration, Wartung und Programmierung von MSSQL Server 2000 und -datenbanken. Grundkenntnisse in AutoLisp-Programmierung.
|
erstellt am: 28. Sep. 2004 11:40 <-- editieren / zitieren --> Unities abgeben: Nur für BloodyMess
Hallo TP, ich versuch mal ein paar Antworten zu geben: 1. Sinn? Gute Frage, weiß ich nicht. Vielleicht klären wir zunächst den Sinn der Sache: Meist sind Datensätze ja über mehrere Tabellen verteilt. Da kann es schon mal passieren, dass ein Primärschlüssel-Wert in der einen Tabelle angelegt wird, der in der anderen nicht existiert. Diese Einträge können früher oder später Probleme bereiten. Beziehnungen zwischen den Tabellen helfen, solche Probleme von Grund auf zu vermeiden. Warum sie also weglassen? Keine Ahnung. Könnte auch am fehlenden KnowHow liegen? 2. Du musst dir die Beziehnungen direkt ansehen (z.B. im DBAStudio bzw. EnterpriseManager). Bei den Constraints gibt es dann die Information "references to" oder so ähnlich. Da steht dann drin, auf welche andere Tabelle sich ein Constraint bezieht. 3. PrimaryKeys haben durchaus auch ohne Beziehungen eine Bedeutung. Z.b. wird dadurch auf Eindeutigkeit des Werts geprüft. Diese Eindeutigkeit macht es möglich, zuverlässige Ergebnisse zu erhalten, wenn Daten über mehrere Tabellen abgefragt werden, da die Zuordnungen eindeutig gefunden werden könnnen. Außerdem (bei MSSQL ist's so, ob bei Oracle auch, weiß ich nicht), wird mit dem Primärschlüssel ein Index auf die Spalte gelegt und auch die Sortierung erfolgt dadurch nach dieser/n Spalte(n). 4. Also eigentlich muss das Programm ja sowieso wissen, wo es Daten reinschreiben darf und wo nicht, egal ob Beziehungen da sind. NUR: wenn es keine Beziehungen auf der Datenbank gibt, kann es schon mal vorkommen, dass das Programm eben doch Einträge schreibt, die nicht sein sollten. Bei gesetzten Beziehnungen kann das Programm zwar immer noch den Versuch unternehmen, wird aber am Datenbanksystem scheitern, welches diesen Versuch unterbindet. Dies hat den großen Vorteil, dass die Daten wirklich konsistent bleiben. Ciao, WolfgangE ------------------ An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BloodyMess Mitglied Applicationingenieur
Beiträge: 604 Registriert: 06.06.2002 AutoCAD Map 3D 2005 Win XP pro
|
erstellt am: 28. Sep. 2004 13:08 <-- editieren / zitieren --> Unities abgeben:
Hallo Wolfgang, vielen Dank für deine Antworten. Ist mal ganz interessant, das aus einer anderes Sicht zu sehen. 2tens hab ich mittlerweile rausbekommen ... Hab mir ein kurzes Beispiel mal zusammengebaut und dann mit den ER-Tools probiert und was soll ich sagen, es funktioniert einfach nur. Nun konnt ich auch sehen, wie es in Oracle aussieht, wenn es Beziehungen gibt und das das auch Constraints sind. zur Info ...
Code: SQL> create table lars.Person( 2 personid number(10), 3 vorname varchar(50), 4 nachname varchar(50), 5 constraint pk_personid primary key (personid)); SQL> create table lars.adresse( 2 personid number(10), 3 adress varchar(50), 4 starsse varchar(50), 5 primary key (personid), 6 foreign key (personid) references lars.person(personid));
dbdesigner ... ist übrigen opensource toad Xpert und das gibt das freewaretool .. toad her ... ------------------------------------------------------- TOAD Tables Report ADRESSE Columns PERSONID NUMBER(10) NOT NULL ADRESS VARCHAR2(50) STARSSE VARCHAR2(50) Primary Key PERSONID Indexes Foreign Keys SYS_C008516 (PERSONID) REFERENCES LARS.PERSON (PERSONID) Check Constraints PERSON
Columns PERSONID NUMBER(10) NOT NULL VORNAME VARCHAR2(50) NACHNAME VARCHAR2(50) Primary Key PERSONID Indexes Foreign Keys Check Constraints ------------------------------------------------------- nicht wirklich schön, aber dafür kann das ja jeder für sich entscheiden, was ihm besser gefällt. Und festzuhalten bleibt nun noch, das mein Schema also keine Beziehungen hat. Hab das jetzt nochmal durchgekramt alles ... o_O .. nix da. Das weiß ich jetzt mit Sicherheit. ... Zitat: Keine Ahnung. Könnte auch am fehlenden KnowHow liegen?
Autodesk ... kein knowhow ... hmmm .. ... würd ich so jetzt mal bezweifeln, aba konntest ja net wissen. Irgendwas müssen die sich ja dabei gedacht haben, das sie das Schema so benutzen. zu 3tens .. ok, mag ja sein, aber reicht es nicht, wenn ich da einen Typ number deklarier und darauf einen constraint 'UNIQUE' lege. Hätte für mich, zumindest theoretisch, den selben Effekt. zu 4tens .. hmm als ich das das erste mal las, dacht ich das du recht hast, aber eine Datenbank ist doch gerade mit dazu geschaffen um Datensicherheit zu gewährleisten nicht nur was die Daten angeht, sondern auch die Ebene der Überprüfung der Daten (insert, update) - sprich in dem Falle der Richtigkeit der Daten. Warum sollte man dann diesen Vorteil nicht auch ausnutzen? Ich glaub, das da noch was anderes dahintersteckt. Gerade wenn man solche Sachen programmiert, da möchte man ja soviel Möglichkeiten wie möglich im voraus ausschließen und auf so wenig Fehler wie möglich reagieren müssen. Vielen Dank für deine Beiträge ... hilfst mir sehr weiter Gruß TP ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Experte CAM Softwareentwicklung (m/w/divers) | thyssenkrupp ist ein international aufgestelltes Industrie- und Technologieunternehmen mit rund 100.000 Mitarbeitenden. In 48 Ländern erwirtschaftete es im Geschäftsjahr 2022/2023 einen Umsatz von 38 Mrd ?. Mit umfassendem Technologie-Know-how entwickeln die Geschäfte wirtschaftliche und ressourcenschonende Lösungen für die Herausforderungen der Zukunft, vor allem in den Bereichen Klimaschutz und Energiewende, digitaler Transformation in der Industrie sowie Mobilität der Zukunft.... | Anzeige ansehen | Fertigung, Produktion |
|
BloodyMess Mitglied Applicationingenieur
Beiträge: 604 Registriert: 06.06.2002 AutoCAD Map 3D 2005 Win XP pro
|
erstellt am: 11. Okt. 2004 15:28 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|