Oracle Datenbank
-
Hi,
ich muß mich gedrungener maßen mit datenbanken auseinandersetzen und im speziellen falle mit einer von Oracle. Da ich die noch nicht begutachten konnte und auch so nur rudimentäres wissen über Datenbanken habe hät ich da mal einige verständnis fragen:
Ich hab im Wiki gelesen das Oracle Datenbankenlösungen anbietet, bisher dachte ich die haben eine ganz eigene Sprache dafür aber scheinbar besteht die datenbank aus SQL und das entwicklungstool ist Java gestützt...
Ist das soweit richtig? Bedeutet das, das wenn ich damit was amchen will ich letzendlich SQL lernen muß oder gehört da mehr dazu, viell. ist das SQL nur zum manipulieren der DB gedacht und sonst gibts doch was eigenes?
Hat da viell wer einige schlüssige infos zu und auch eine Lektüreempfehlung?
mfg
-
Korrekt, du musst um mit der Datenbank zu arbeiten SQL lernen. SQL ist eine Standartisierte Sprache.
http://de.wikipedia.org/wiki/SqlHinweis:
Es kommt ab und zu vor, dass einige Befehle je nach Datenbank unterschiedlich sind oder bei anderen Datenbanken nicht existieren. Ebenfalls sind die Tabellentypen teilweise je nach Datenbank unterschiedlich.Es gibt noch eine weitere Sprache die von Oracle unterstützt wird. Diese nennt sich PL/SQL. Mit hilfe dieser Sprache kannst du Stored Procedure, Trigger, Packages, etc. schreiben.
-
ja das mit dem pl/sql hab ich gelesen ... scheinbar gibt es auch ein sql das an java gekoppelt ist. Also wieder alles reichlich vielseitig.
Ich werd mit diese datenbank mal genauer ansehen um zu wissen was das genau für eine oracle ist. wie sieht das überhaupt mit entwicklungsumgebungen aus, sind die von oracle die geeignetsten?
-
Kommt auf das Programm an das du schreiben willst. Oder willst du per Konsole die SQL Statments ausführen?
-
also eigentlich soll es so sein, das langfristig eine java-anwendung entsteht mit der man die oracle datenbank abrufen kann und datensätze verändern kann.
Im moment ist das so, das es die oracle datenbank als server version gibt und die per Access über diese ODB schnittstelle bearbeitet wird ... also keine besonders tolle lösung wie ich finde, zumal so mobile zugriffe ganz entfallen, wäre ja bei java möglich via applets.
Das problem meinerseits ist jetzt folgendes: wie geht man sowas am besten an? Java lernen und pl/sql oder reicht ordinäres Sql? Wie verbindet man das überhaupt etc. oder gibts ne ganz andere lösung...?
Oracle selber gibt da keine schlüssigen antworten, deren jdeveloper ist wie ich es sehe nur eine java entwicklungsumgebung wie es recht viele gibt, dann jaben die noch einen sql-developer aber das scheint wohl vornehmlich zum testen zu sein und die datenbank an sich mit dem clienten der aber auch nur commandozeilen bassiert ist...
Tragende unterschiede zw. der enterprise und exoress version gibts vermutlich nicht, also was die programmierung und schnittstellen anbelangt.
Ein handbuch zu oracle hab ich auch nicht wirklich gefunden, bzw. etwas das das system mal erläutert wie das funktioniert und arbeitet, wobei sowas schon püurer luxus wäre in deutsch
ist ja doch etwas komplex die thematik.
mfg
-
Jepp, lerne Java und SQL, am besten auch gleich PL/SQL, da dies auch zu oracle dazu gehört. Wenn Ihr eine eigene Anwendung für zum Administrieren schreiben wollt, dann solltest du dich auch mit den Dictonarys anfreunden.
-
mal noch ne frage wegen der entwicklungsumgebung ... was wäre sinnvoll auch in bezug auf oracle, die bieten mämlich so viel an das es einfach unklar ist was nun sinnvoll wäre?
Wie schauts eigentlich mit literatur aus ? Ich hab ein buch gefunden"oracle 9i in 21 tagen" obs gut ist weiß ich natürlich nicht
aber viell. fürn anfang ganz sinnvoll zwecks breiter einführung.
-
Also als Entwicklungsumgebung kann ich für Java nur eclipse empfehlen. Bezüglich Oracle Bücher muss ich passen, hab nämlich nen Oracle Kurs hinter mir und somit die Original Unterlagen
-
-> Der Unterschied zwischen Express Edition und Enterprise Edition liegt vor allem in der Anzahl der unterstützten CPUs bzw. des unterstüzten RAM.
-> Oracle 10g ist erstmal nur ein DBMS. Als Client kommt SQL*Plus mit, welches unbrauchbar ist für größere Erledigungen. Da kannst du entweder auf das von Oracle als Beta zur Verfügung gestellte "Raptor" zurückgreifen oder aber auf ein externes Programm (zB Toad). Auf jeden Fall brauchst du aber SQL-Kenntnisse (sonst geht nicht nur bei Oracle im Datenbankbereich eher wenig). Für Oracle schaden PL/SQL-Kenntnisse auch auf keinen Fall. Als ausgezeichnetes Nachschlagewerk für Fragen empfehle ich: http://www.psoug.org/library.html
-> Die Datenbank selbst administrieren kannst du mit dem Enterprise Manager, der mit dem DBMS mitkommt und eigentlich keine Wünsche offen lassen sollte
-> Oracle ist sehr stark javalastig. Also kannst du praktischerweise Java verwenden um mit Oracle zu arbeiten. Sehr komofortabel ist es, die hauseigene Java-IDE JDeveloper zu verwenden die inzwischen auch sehr mächtig geworden ist. Dort kannst du deine ersten Erfahrungen mit Java und Oracle machen. Am besten über JDBC. Dieses "SQL integriert in Java" alias SQLJ ist der größte Mist mit dem ich jemals arbeiten musste - nicht nachmachen
-> Willst du später mit Java Enterprise-Anwendungen schreiben benötigst du zudem auch noch einen Application Server. Der hauseigene OC4J kommt mit dem JDeveloper als Entwicklungs-Server mit und du kannst die eigenne Applikationen direkt testen.
Falls du noch fragen hast einfach stellen
Mit Tutorials oder Ähnlichem kann ich leider nicht dienen da ich da selbst nichts kenne. Ich habe mein ganzes Wissen aus dem Bereich aus der Schule. Vielleicht noch: http://tahiti.oracle.com/ sowie http://www.oracle-doku.de/
MfG SideWinder
-
also ich hab mir jetzt Oracle DB XE besorgt und diese Oracle Developer Suite 10g, JDeveloper und SqlDeveloper hab ich extra noch geladen...
Ich nhem an das ist dann jetzt das was man braucht
Das buch was ich da gefunden hab basiert zwar auf der enterprise edition, bzw. peronal edition aber das ist ja kostenpflichtig. ich nehm mal an das XE system reicht fürn anfang zum rumspielen.
-
XE reicht für viele überhaupt. Wie gesagt, am Funktionsumfang dürfte nichts anders sein (ev. hast du keinen Enterprise Manager ... have a look).
Die Developer Suite hättest du noch nicht benötigt, du programmierst ja mit Java und nicht mit den Oracle-4GL-Tools die mit der Developer Suite kommen (Oracle Forms & Reports sowie Oracle HTML DB)
MfG SideWinder
-
also ich hab das DB XE jetzt installiert und wollte mich einloggen mittels des angegebenen links: 127.0.0.1:8080/apex, das problem ist, das keine verbindung herstellbar ist aber die Bd ist aktiv und läuft ohne fehlermeldung. neustarts etc hat nichts genutzt.
ich sitzt zwar hinter einem router aber das ist doch der localhost der geht doch nicht über das gerät.
-
-> Sind auch alle Dienste gestartet?
-> Hast du überhaupt schon eine DB angelegt oder nur die DBMS-Software installiert?MfG SideWinder
-
ich hab die SW installiert und im startmenü DB-Starten gewählt dann kam im statusfenster das dies passiert wäre und das wars. dann hab ich es mittels sqlplus versucht und nach dem connect befehl kommt nur Fehler 01033 Datenbank ist im begriff zu starten oder zu schließen...
im tastmanager ist halt dieser oracle.exe dienst aktiv.
ich hab keine datenbankdatei nur die DB-SW.
-
ich habs lösen können und jetzt geht das gute stück ... hab schon dieses einführungsbeispiel gemacht und etwas mit dem sql clienten in der beispieldatenbank rumgespielt
ansich ist alles recht übersichtlich und komfortabel aufgebaut.
Wobei der rechner wohl doch etwas lahm ist für das ganze javazeugsmich würd aber mal interessieren wie man was umstellen muß, das man die DB auch von einem anderen rechneraus ansteuern kann... den passenden clientend azu habe ich wobei das auch nur son kommandozeilen ding ist.
-
Grundsätzlich gar nichts, wenn dein Listener auf TCP horcht (was sie afaik standardmäßig machen) nimmt er auch externe Anfragen an.
Wichtig dabei ist es, im Falle eines Routers den Oracle-Datenbank-Port durchzurouten. Je nachdem was du machen willst: http://www.chebucto.ns.ca/~rakerman/oracle-port-table.html Welche Ports du für was genau freischalten musst weiß ich jetzt auch nicht. Für SQL*Plus-Zugriff reicht aber imho 1521.
Zum Speed: Ja, für Java-Entwicklung kann viel RAM nicht schaden. Vor allem in Verbindung mit Datenbank und Application-Server würde ich ein 1GB empfehlen. 512 reichen da meistens nicht mehr.
Wenn du dann auch noch eine Enterprise-Entwicklungsumgebung wie IBM-RAD für Java wählst wirst du selbst mit 1GB keinen richtigen Spaß haben
MfG SideWinder
-
ich hab jetzt rumgespielt und eine tabelle erstelltz und diverse datensätze eingetragen ... nun hab ich gelesen das man das auch automatisieren kann mittels SQLLoader. Ich hab das probiert und es hat auch geklappt aber nachdem ich mir die tabelle angeschaut habe waren die alten datensätze überschreiben. muß man da etwa was beachten oder wo liegt der trick? außerdem wurde das datum von01.10.1996 auf 01.10.96 gekürzt obwohl doch diese extra formatierung angegeben ist in der control.dat.
sqlldr userid=Name controll=C:\control.dat
Control.dat:
LOAD DATA
INFILE 'c:\eingabe.dat'
INTO TABLE student
FIELDS TERMINATED BY ','
(mat_nr,name,vorname,einschreibedatum DATE "dd-mm-yyyy")Eingabe.dat:
123456,Mayer,Efriede,01-10-1996
234567,Mustermann,Anja,01-10-1997
345678,Schmidt,Hugo,01-10-1995
-
Das Datumsformat bei der Ausgabe muss nicht dem Format in der Datenbank entsprechen - heißt: Dein Datum wurde gar nicht gekürzt sondern nur bei der Ausgabe in kurzer Form dargestellt.
Dieses LOAD DATA ist afaik nur für das erstmalige Befüllen einer Tabelle gedacht, wenn die Daten nicht aus einer SQL-Datei kommen. Deswegen wurden deine Daten auch wahrscheinlich überschrieben.
Datensätze in Zukunft am besten per SQL einfügen:
INSERT INTO student VALUES ( 123456 , 'Mayer' , 'Efriede' , to_date('01-10-1996','DD-MM-YYYY') );
MfG SideWinder