Zentrale Datenbank aus verschiedenen Datenquellen

stud3

Aktives Mitglied
hallo,
da ich mit einem Projekt in einer Firma am Montag anfangen werde, wollte ich folgendes fragen. Das Projekt handelt um Daten, die sich in verschiedenen Datenbanken befinden, jede Datenbank steht für ein entsprechendes Team zur Verfügung, diese Datenbanken beinhalten Daten, Tabellen mit verschiedenen Formaten, meine Aufgabe ist aus diesen Datenquellen eine zentrale Datenbank, eine zentrale Datenbankmaske, die alle wichtigsten Daten aus diesen Datenquellen herausholt, auszubauen,richtig habe ich nicht verstanden was mir erklärt wurde, zusätzlich hatte mir gesagt, es sollte eine Datenbankmaske aufgebaut werden, die dem Benutzer ermöglicht Datenbankanfragen automatisch als Ergebnis zu bekommen anstatt sie manuell alles tun.
Ich weiß nicht womit ich anfangen sollte, was für Tipps hat jemand von euch, hat jemand schon sowas in der Praxis gemacht?, ich möchte mich daran einarbeiten, als erster Schritt lese ich mir Relationale Datenbanken und übe mit SQL, aber ich bin ratlos wie ich das aufbauen werde. Hätte jemand eine Idee?, hoffentlich ja. Noch dazu wollte ich mitteilen, dass ich dieses Projekt im Rahmen meines Praktikums tun würde. Ich wäre dankbar wenn jemand mir einen Rat bzw. Tipps gibt....


 
Ich hab das auch schon gemacht, also Daten aus verschiedenen Datenbanken geholt resp. so dargestellt, wie wenn sie aus einer DB kommen. Auch eine zentrale Maske ist machbar, wenn auch etwas aufwendig, wenn sie sehr flexibel sein soll.

Soweit ich weiss, unterstützt SQL (der Standard) nicht die Verbindung von Daten aus verschiedenen Datenbanken. Die Möglichkeiten hängen also von den verwendeten Datenbanksystemen ab. Falls diese die Verbindung nicht unterstützen, musst Du die Daten wohl oder übel im Programmcode aufbereiten.

- MS Access erlaubt das Einbinden (Verknüpfen) von Tabellen aus anderen Datenbanken, das können theoretisch irgendwelche ODBC-fähige DBs sein. Damit kann man sehr schön Daten aus verschiedenen DBs zusammen abrufen, allerdings nicht zu empfehlen für grosse Datenmengen.

- Mit MS SQL Server kann man auf andere Datenbank zugreifen, die sich auf dem gleichen oder anderen SQL-Servern befinden. Ob damit auch auf andere DB-Systeme zugegriffen werden kann, weiss ich nicht.

- Bei Oracle wüsste ich nicht, ob das überhaupt irgendwie mit anderen Systemen zusammenarbeitet...

- MySQL kenn ich nicht.

Wenn Du noch nie mit Datenbanken gearbeitet hast, ist es sicher richtig, erstmal mit Hilfe eines Buches das Verständnis zu erlangen. Am besten machst Du - mit einem Datenbanksystem, das in der Firma verwendet wird - ein kleines Übungsprojekt, z.B. eine Adressdatenbank. Daran kannst Du auch die SQL-Sprache praktisch ausprobieren.

Danach kannst Du Dich an die Umsetzung des Projekts machen. Dafür brauchst Du erstmal die vorhandenen Datenstrukturen (möglichst mit Musterdaten), und dann die genauen Anforderungen der Firma.

Griessli
Irene
 
danke Irene für die Antwort, sorry dass ich erst jetzt geantwortet habe, aber so wie ich sehe, ich kriege keine EMail, wo es benachrichtigt wird, dass jemand auf meinen Eintrag geantwortet hat. Ich muß an dem MS SQL Server 2000 arbeiten, bisher habe ich nur mit MySQL und Access etwas mit Datenbanken gemacht auch mit Oracle. Natürlich falls Fragen werde ich hier sein. Danke.
 
Es wäre hilfreich, wenn Du uns sagen würdest, mit welcher Programmiersprache Du an die Datenbanken ranwillst.
Zu bedenken wäre dann noch, dass es in SQL mehrere Dialekte gibt.

Hamlet
 
Wenn alle Daten im SQL Server sind, ist es kein Problem. Du kannst Views erstellen, die Daten von verschiedenen Datenbanken zusammensuchen; dazu musst Du nur die Tabellen im Format datenbankname.dbo.tabellenname ansprechen.

Für kompliziertere Abfragen - falls eine View nicht ausreicht - kannst Du auch Stored Procedures oder benutzerdefinierte Funktionen erstellen. Damit kannst Du gleichzeitig auch mehrere Tabellen zurückliefern, die quasi virtuell zusammengestellt sind.

Aber wie Hamlet schon sagt, es kommt dann noch auf die Programmiersprache an, resp. was diese unterstützt.

Griessli
Irene
 
hallo Irene, Helmut,
zuerst Alles Gute zum Neuen Jahr. Mit der Datenbankeingabemaske habe ich noch nicht angefangen. Das werde ich schon in diesem Monat anfangen, es wurde mich gefragt in welcher Programmiersprache es machen möchte, die Antwort ist in Java, da ich bessere Grundkenntnisse in Java habe als z.B. in ASP (JavaScript, VisualBasic), das in der Firma wo ich mein Praktikum tue am meisten benutzt wird. Vielleicht ist es nicht sinnvoll meine Datenbankeingabemaske mit JAVA zu erstellen, da die Firma dann die benötigten Ressourcen braucht, um diese DBEingabemaske in JAVA zu erstellen, aber mit ASP kenne ich mir nicht aus.
Die Datenbanken befinden sich in einem MS SQL Server 2000, Views werden kreiert, um mit Hilfe von diesen Reports auf der Intranet Seiten meiner Abteilung zu zeigen.
Am Dienstag müssen mein Betreuer, das ganze Team und ich zusammensetzen und eine detaillierte Spezifikation erstellen, was in Wirklichkeit das Team damit will, was für Eingabefelder kommen auf der DBEM, usw.
Meine Frage an dieser Stelle wäre: würden Sie mir empfehlen, den Aufbau dieser DBEM mit JAVA zu erstellen? brauche ich die Phasen einer Softwareentwicklung zu folgen bzw mit UML anzufangen?, es geht nicht um eine Softwareerstellung, sondern nur um eine Java-Applikation. Ich brauche wirklich Orientierung, für diese wäre ich Ihnen sehr dankbar. Grüße.
 
Danke, Dir ebenfalls alles Gute fürs neue Jahr :)

Ich würde mich zu diesem Zeitpunkt noch nicht auf eine Programmiersprache festlegen. Es fällt mir auch manchmal schwer, die technischen Details einfach mal zu vergessen und sich auf das Konzept konzentrieren. Aber es muss sein, weil eine zu frühe Fixierung auf eine Programmiersprache kann später zu grossem Aufwand oder Kosten führen.

Nach der Sitzung am Dienstag dürfte in etwa klar sein, wie gross der Umfang des neuen Systems (ich nenns jetzt mal so) sein wird und was für spezielle Features benötigt werden. Auf Basis dieser Infos kann dann das "Layout" des Ganzen festgelegt werden; also das DB-Modell (falls noch nicht existent), die Client-Anwendung, der Serverteil und eventuelle Daten-Schnittstellen (Middle-Tier). Zwei Beispiele eines solchen "Layouts" wären

- Einfache Webanwendung: Serverseitige (Script-) Sprache wie PHP, ASP, JSP, Datenbankschnittstelle im Serverseitigen Code implementiert, Client-Frontend ist der Browser, also HTML mit CSS und Javascript.

- Komplexe 3-Tier-Anwendung: Datenbankschnittstelle teils im DB-Server implementiert (Stored Procedures), RMI-Server (oder SOAP-Webservice) als Datenschnittstelle, Java-Applet als Client-Frontend, Webserver lediglich als "Lieferant" des Applets und evtl. für Benutzer-Autentifizierung im Intranet.

Das erste Beispiel ist viel schneller zu realisieren und auch einfacher zu warten, aber spätere Erweiterungen sind dann eventuell viel aufwendiger. Die Entscheidung für das eine oder andere Layout (oder eine Mischform) hängt davon ab, was aktuell gewünscht wird und was vielleicht in der Zukunft mal noch dazukommen könnte - also "so einfach wie möglich aber so komplex wie nötig" ;-)

Bei Verwendung des Browsers als Client-Frontend ist zu beachten, dass HTML nicht alle Funktionen abdecken kann. Komplexe Validierungen, spezielle Eingabe-Elemente, teilweiser Neuaufbau der Eingabemaske (z.B. bei mehrstufigen Auswahlfeldern) etc. kennt HTML nicht. Solche Dinge sind - für den Entwickler wie für den Benutzer - besser in einem normalen GUI zu handhaben. Dieses GUI kann eine normale Desktop-Applikation, ein Java-Applet oder gar ein C#-Applet sein.

Welche Programmiersprache schlussendlich zum Zug kommt, hängt vom Layout ab. Bei serverseitigem Code würde ich hier auf ASP abstellen, weil es in der Firma bekannt ist und deshalb problemlos gewartet/erweitert werden kann. Und ich denke, wer Java kann hat ASP schnell im Griff, es ist wesentlich einfacher ;-)

Wird das Frontend aber ein normales GUI sein, kann das als Java-Applet oder als C#-Applet realisiert werden. Falls in der Firma schon mit Dotnet gearbeitet wird (oder das geplant ist), empfiehlt sich ein C#-Applet. Die Sprache ist Java sehr ähnlich, und die Zusammenarbeit mit dem SQL-Server ist sehr performant und für den Entwickler angenehm ;-)

Falls für die Zukunft noch ein weiteres Frontend geplant ist (z.B. für Kunden/Externe), wäre die Entwicklung eines Webservices sinnvoll. Dieser kann als Schnittstelle zwischen den Daten und den verschiedenen Frontends sitzen und die Daten als XML liefern, was die Implementierung eines weiteren Frontends wesentlich vereinfacht.

Im weitesten Sinn musst Du also schon den "Phasen der Softwareentwicklung" folgen, man kann schliesslich das Pferd nicht am Schwanz aufzäumen ;-)
Aber UML brauchts nicht unbedingt, das lohnt sich eher für grössere Projekte mit vielen Entwicklern und definierten Zuständigkeiten. Auch hier gilt "so einfach wie möglich aber so komplex wie nötig".

Griessli
Irene
 
hallo Irene,
erstmals danke für die Antwort, das wird mir sehr hilfreich sein.
Irene, ich höre immer von "Konzept", wird man damit gemeint, die Anforderungen des Benutzers an die Applikation?
Die Applikation ist gedacht in 3 Monaten zu erstellen, vielleicht noch einen Monat, es kommt darauf an, wie aufwendig das Projekt sein sollte.
Die Möglichkeit an einem Java-Applet finde ich besser. Andererseits für einen Java-Applet muß die Abteilung üver eine Java Virtual Machine verfügen, abhängig von was für einen Internetbrowser jeder Benutzer hat.
Bisher hatte ich gedacht, dass ASP eine Mischung von JavaScript und VBScript ist, und Java und JavaScript sind ganz verschiedene Sachen.
Die folgende Frage, Irene: falls die Fima mit Dotnet arbeitet, kann man trotzdem Java Applet anwenden?
Das mit den Phasen der SW Entwicklung, denke ich mal, könnten mir dienen, mein Projekt gut zu strukturieren, aber ich nehme an, ich muß nicht unbedingt alle Phasen nutzen, irre ich mich?
 
Das Konzept beinhaltet die Benutzer-Anforderungen, aber auch noch viel mehr. Es beschreibt eigentlich die ganze Applikation mit all ihren Elementen (Datenbank, Serverteil, Client-Teil etc.), den Abläufen (Prozessen), was wann warum passiert, wer was machen darf und wer evtl. nicht und so weiter.

Wenn die Applikation in drei Monaten fertig sein soll, könnte es mit Java eng werden - ausser Du hast schon viel Erfahrung und bist wirklich sattelfest.

Eine Problematik ist beim Java-Applet wirklich die Verwendung der passenden Virtual Machine. Die Java-Versionen sind untereinander nicht voll kompatibel, deshalb sollte für die Ausführung ein Plugin verwendet werden, und dieses muss natürlich auf allen Client-PCs installiert sein.

ASP hast mit Javascript nix zu tun. ASP ist reines VBScript (evtl. kann man auch JScript verwenden, weiss ich nicht auswendig) gemischt mit HTML/CSS/Javascript. Das VBScript ist der serverseitige Code und wird vom Webserver ausgeführt, das HTML/CSS/Javascript wird - als Resultat der serverseitigen Ausführung - an den Clientbrowser geschickt und von diesem interpretiert resp. ausgeführt.

Java und Javascript sind von der Syntax und ein paar Objekten (z.B. String) sehr ähnlich. Java wird aber kompiliert und in dieser Form von einer Virtual Machine ausgeführt, während Javascript vom Browser interpretiert wird. Ausserdem beinhaltet Java weit mehr Klassen und Möglichkeiten als Javascript; es sind also schon grundlegend unterschiedliche Sachen.

Java Applets kann man immer anwenden, auch wenn sonst mit Dotnet gearbeitet wird; technisch gibts da kein Hindernis. Java-Code und Dotnet-Code werden von verschiedenen Virtual Machines ausgeführt, die sich nicht in die Quere kommen.

Wie Du sagst: die Phasen der Softwareentwicklung sollen dazu dienen, das Projekt gut zu strukturieren - und zu durchdenken! - und aufzugleisen, aber man muss überhaupt nicht alle Phasen nutzen. Wichtig ist, dass die Anforderungen und die darauf basierenden Entscheidungen gut dokumentiert sind.

Griessli
Irene
 
hallo Irene,
nach langer Zeit, leider konnte ich nicht auf Ihre Antwort in dem Internet Forum auch beantworten, da Fehler aufgetreten sind. Aber alles hat wieder funktioniert mit einem Rescan.
Jetzt bezüglich meines Projektes habe ich folgendes Problem:
ich habe angefangen, die Datenbankeingabemaske zu erstellen, die Zugriff auf eine zentrale Datenbank hat. Nun ich möchte mit Hilfe von ASP, Datensätze einer Tabelle anzeigen, damit es tabellarisch gezeigt wird, muß ich eine HTML Vorlage mit dem Tag table und Komponenten benutzen, klar es geht auch wenn man das Ganze nur auf der ASP Vorlage einsetzt. Das Problem ist es, was soll in dem Fall machen, wenn sich sehr viele Datensätze in der Tabelle befinden? 1000 Einträge z.B. Die Maske hat ein scrollbaren Bereich für die anzuzeigende Tabelle.
Meine Buttons sind Hinzufügen, Ändern, Löschen und Speichern für die Tabelle, die als Test dienen soll. Benutzte Serversprache für die Web-Applikation ist ASP.
was soll ich in diesem Fall machen? Dankbar für eine Hilfe!
 
Zurück
Oben