Entwicklung eines Datenbanksystems

-Ist eine "View-Regelung" in meinem Datenbanken-Konzept möglich?
-PostgreSQL?

Views sind eigentlich nichts weiter als ein gespeichertes Select. Es gibt updateable Views, denen ein TRIGGER hinterlegt ist, damit man da auch Inserts/Updates/Deletes machen kann. Es gibt materialized Views, die quasi vorberechnet schon daliegen. Es gibt versch. Wege, solche materialized Views aktuell zu halten.

PostgreSQL ist eine open Source-DB (BSD-Lizenz), die vom Funktionsumfang erheblich mehr als MySQL kann, teilweise auch mehr als Oracle (vermutlich kann Oracle dafür auch Dinge, die PG nicht kann). Sich das mal anzuschauen lohnt sich meines Erachtens, da a) sehr großer Funktionsumfang (alleine sehr viele Datentypen bis hin zu Key-Value-Stores, Range-Typen, JSON, XML etc), b) stark erweiterbar (siehe PostGIS für Geo-Anwendungen, Du kannst eigene datentypen, eigene Indexe, eigen Funktionen etc. definieren in vielleicht 1 Dutzend versch. Sprachen) und sehr, sehr ausgereift ist - es ist absolut robust, die Technologie dahinter ist so, daß z.B. auch ein harter Reset keine inkonsistenten Daten hinterläßt.

Und es hat eine grandios arbeitende Community. In den Mailinglisten bleiben Fragen selten länger als 10 Minuten ohne hilfreiche Antwort. Selbst für sehr viel Geld bekommst Du für ein kommerzielles Produkt keinen so guten Support.
 
Werbung:
Ich würde hier auch zu materialized Views greifen, einfach um die Verfügbarkeit zu gewährleisten... Was du vorhast sind sehr kosten-intensive Berechnungen die man nicht Online tätigen sollte...
Da du allerdings von Angebotskalkulation und Controlling gesprochen hast, würde ich dich fast schon eher an ein Data-Warehouse weiterverweisen... Die Kisten sind für solche Dinge gedacht...
 
Ich glaube Oracle is schon vorhanden. Das weiß ich noch nicht.
Also Hauptkriterium beim Software-Vergleich wären ja dann zunächst einmal die Schnittstellen.
Ja, aber auch die bereits existierende Datenbank: Wenn Du in der Firma fünf Oracle-Server laufen hast, mit fest angestellten Administratoren, dann werden sie keine PostgreSQL-DB zusätzlich hinstellen. Oracle ist die eierlegende Wollmilchsau unter den DBMS, da dürfte es in Bezug auf die Schnittstellen am wenigsten Probleme geben.

Ich habe morgen ein Meeting mit einem IT-Fachmann des Unternehmens organisiert. Habt ihr irgendwelche wegweisenden Fragen, die ich ihm stellen könnte?
Du brauchst die Liste an Datenbanken, die Du zusammenführen sollst, musst wissen, wie die Schnittstellen aussehen (das wird er Dir eventuell auch nicht so aus dem Kopf sagen können.). Musst erfragen, ob es Vorgaben bezüglich der zu verwendenen Datenbank gibt (s. o.).
Am wichtigsten scheint mir die Frage, wie und in welcher Weise Du während der Entwicklung Zugriff auf die Schnittstellen bekommst. Können Dir für alle Systeme Read-Only-Schnittstellen eingerichtet werden und bekommst Du einen Arbeitsplatz in der Firma, von dem aus Du das entwickeln kannst? Denn gerade die Schnittstellenanbindung scheint mir eine der aufwendigen Sachen an dem Projekt zu sein. Und da Du Dir wohl auch keine Windchill-Lizenz besorgen wirst, um die vorhandene Infrastruktur zu simulieren, ist das einer der zeitnah zu klärenden Punkte.
Später musst Du dann noch klären, welche Ausgaben (Views) produziert werden sollen, aber das muss nicht jetzt schon geklärt werden. Und du musst wissen, ob die Views jedesmal neu geholt werden können (normale Views) oder ob sie zwischengespeichert werden sollen (materialized views), weil die vorhandenen DBs zu langsam sind, zu hohe Latenz haben oder bereits am Limit sind. Ich tippe auf letzteres.

-Was nutzt ihr für Back-End-Software? Oracle? Wenn ja wäre doch das am besten geeignet? Wegen größter Anzahl an Schnittstellen?
PostgreSQL kann vieles, was Oracle auch kann (s. akretschmers Post), in Sachen SQL tun sich beide nicht viel. Aber an einigen Stellen hinkt PostgreSQL deutlich hinterher (z. B. ist die Volltextsuche in PostgreSQL ein Graus.). Für Dich dürften die Unterschiede aber keine gewichtige Rolle spielen. Views gehören zu den trivialen Dingen, materialized Views können inzwischen beide. Mach Deine Entscheidung von den bereits vorhandenen Datenbanksystemen und den Schnittstellen abhängig. Aber wenn Oracle möglich ist, dann schrei laut hier.

-Was für ein Front-End wäre erwünscht? Eines über Browser (PHP) oder nicht über den Broswer (z.B. Excel, sonstiges)?
Wahrscheinlich gibt es auch bereits existierende Front-Ends, von denen aus auf Deine Views zugegriffen werden kann. Wie gesagt: Views sind gespeicherte Selects, sprich die ganze Logik ist in der DB gespeichert und jeder Client, der mit dem DB-Server kommunizieren kann, kann sie ohne weiteres zutun auch abrufen. Ansonsten gibt es kommerziell erwerbbare PHP-Skripte, die eine komfortable Abfrage ermöglichen. Es wird also eher darum gehen, bereits vorhandene Anwendungen (z. B. Excel) mit Deiner DB zu verbinden, als das Rad jetzt gänzlich neu zu erfinden.

-Ist eine "View-Regelung" in meinem Datenbanken-Konzept möglich?
Wie gesagt, Views sind in jedem DBMS, das diesen Namen verdient, möglich.
 
Also wenn noch keine Lizenz vorhanden ist würde ich auch zu Postgre tendieren. Wenn ihr schon Oracle oder auch MSSQL habt kann man da sehr gut drauf aufbauen. Alles andere würde ich entweder als zu speziell oder zu "schlecht" empfinden, insbesondere MySQL würde ich gar nicht erst zur Wahl stellen.
 
Hallo Datenbank-Forum!

Ich bin es wieder. Der Bachelor-Vertrag beginnt ab morgen, womit ich ab morgen also 84 Tage Zeit habe.

Folgende Informationen habe ich bekommen:

1.) Als RDBMS stehen 3 zur Verfügung: My SQL, MS SQL und ORACLE

Mir wurde ein eigenes Schema auf einer Oracle-Datenbank des Unternehmens eingerichtet. Es ist nur noch ein Oracle Client von Nöten. Was installiere ich da am besten?
Zunächst soll ich diese 3 Kandidaten vergleichen, welcher denn überhaupt am besten geeignet ist. Tippe mal auf ORACLE.

2.) Auf Grund globaler Zusammenarbeit aller Standorte muss es sich um einer Browser-Anwendung handeln. Cloud-Lösungen sind nicht erlaubt. Also eine Client-Webserver-Architektur. Kommunikation über HTTP, Netzwerkprotokoll TCP/IP.

3.) Zur Erstellung einer Eingabemaske steht folgende Software zur Verfügung: Jobrouter, Dokuware, Oracle, Clarity PPM und Crystal Reports. Ich kenne leider keines dieser Programme und muss auch hier irgendwie vergleichen welche Software am besten geeignet ist. Dann gibt es natürlich noch das klassische PHP, an welches ich gedacht habe, weil man dazu genug Tutorials im Internet findet. Kennt ihr zufällig ein paar dieser Programme? Kann man mit Oracle wirklich 'schöne' Browser-Anwendungen programmieren?

4.) Die wichtigsten Input-Daten, die in der Browser-Anwendung aufgenommen werden müssen, sind die geschätzten Kosten, geschätzten Arbeitszeiten und nötige Produktinformationen (die in anderen Datenbanken 'Windchill' liegen) von allen Entwicklungsabteilungen.

Mir ist auch schon ein 'View' bekannt mit dem ich auf die Clarity PPM - Datenbank zugreifen kann 'select * from name'. Dabei handelt es sich um einen 'View' stimmts? Also ich weiß schonmal, dass mittels 'select *' einfacher Zugriff auf die wichtigsten Datenbanken möglich ist!

Was ich also machen muss:

a) Ein Eingabe-Konzept entwickelt, dass die Datenaufnahme für alle Entwicklungsabteilung komfortabel, fehlerfrei und 'hübsch' (nebensächlich) löst.
b) Ein Datenbanken-Konzept, dass mit dem Browser-Fenster in Verbindung steht und mittels 'Views' auf andere relevante Datenbanken zugreifen kann.
c) Dann soll alles in der Datenbank stehen und meine Arbeit ist erfüllt. 'Output-Anwendungen' soll ich nicht machen. Höchstes Ziel ist einfach alle Daten, die im Moment auf Excel-Blättern stehen in einer Datenbank zu verpacken
d) Ein Prototyp der Datenbank ist mit MS Access erlaubt soll dann über ODBC auf die Oracle-DB rübergezogen werden

Nun noch ein paar Fragen:

-Wie gehe ich am besten bei diesem Software-Vergleich vor, da man in einer wissenschaftlichen Arbeit möglichst alles mit Literatur belegen muss?
-Habt ihr zufällig Erfahrungen mit Browser-Anwendungs-Entwicklung? Was könnt ihr mir empfehlen? Ist PHP nicht voll ausreichend?

Viele Grüße und Danke!
Säsch
 
Äh sorry nochmal zum Thema Output:
Sales braucht natürlich einen Report in dem alles was eingegeben wurde angezeigt wird.
 
1.) Als RDBMS stehen 3 zur Verfügung: My SQL, MS SQL und ORACLE

Mir wurde ein eigenes Schema auf einer Oracle-Datenbank des Unternehmens eingerichtet. Es ist nur noch ein Oracle Client von Nöten. Was installiere ich da am besten?
Zunächst soll ich diese 3 Kandidaten vergleichen, welcher denn überhaupt am besten geeignet ist. Tippe mal auf ORACLE.
Für Dein Problem dürften alle drei geeignet sein, denn so schwierig scheint es nicht zu sein. Diese drei kannst Du in etwa wie folgt anordnen:
___MySQL____________________________MSSQL______Oracle
Das heißt, MySQL kann vieles, aber doch einiges nicht. Dann kommt lange nichts, dann MS SQL und in geringem Abstand Oracle. Du wirst das also definitiv sowohl mit MSSQL als auch mit Oracle realisieren. Mit MySQL wahrscheinlich auch, aber vielleicht musst Du doch so einige Umwege gehen. Da Du Dich mit keinem RDMS auskennst, nimm Oracle, da machst Du nichts falsch.
Zu den genauen Tools kann ich Dir aber nichts sagen, da ich nicht mehr mit Oracle arbeite.

3.) Zur Erstellung einer Eingabemaske steht folgende Software zur Verfügung: Jobrouter, Dokuware, Oracle, Clarity PPM und Crystal Reports. Ich kenne leider keines dieser Programme und muss auch hier irgendwie vergleichen welche Software am besten geeignet ist. Dann gibt es natürlich noch das klassische PHP, an welches ich gedacht habe, weil man dazu genug Tutorials im Internet findet. Kennt ihr zufällig ein paar dieser Programme? Kann man mit Oracle wirklich 'schöne' Browser-Anwendungen programmieren?
PHP ist eine Programmiersprache, kein Programm. Was Du brauchst, ist ein Formulargenerator-Programm, das Dir eine Webseite generiert, die dann wiederum mit PHP-Skripten arbeitet. Die genannten Programme haben damit so weit ich das sehe nichts zu tun. Google mal nach "oracle formular generator", dann findest Du z. B. so was:
https://www.sqlmaestro.com/products/oracle/phpgenerator/
Wer hat Dir denn aufgetragen, dass Du genau diese Programme vergleichen sollst? Und kennt sich dieser jemand mit diesen Programmen aus?

Natürlich kannst Du die Formulare auch per Hand, also in PHP programmieren, aber Du hast keinen Schimmer von Datenbanken und anscheinend auch keinen vom Programmieren und hast keine drei Monate für Deine Bachelor-Arbeit und möchtest auch noch PHP lernen??? Überleg Dir das gut. Allerdings musst Du auch nicht wirklich PHP können für ein paar Eingabefelder. Die Frage ist, wie viele Eingabefelder werden es sein? 10, 20, dann ist die PHP-Variante vielleicht wirklich der beste Weg, wenn Du viel Hilfe in einem entsprechenden Forum findest. Denn Formulare könnnen dann recht leicht mit Copy+Paste erstellt werden. Sind es mehr Felder, dann wäre eine Generatorsoftware aber zu empfehlen.

Zu dem Vergleichen generell:
1) Vergleiche nur das, was wirklich Sinn macht. Die obige Software in Bezug auf die Geeignetheit für die Erstellung einer Formularseite zu vergleichen, ist wie der Vergleich von 40-Tonnern, Monstertrucks und Ferraris bezüglich deren Eignung für den Verkehrsübungsplatz. Mir scheint, dass Dein Aufgabensteller ähnlich wenig Ahnung von der Materie hat wie Du.
2) Vergleiche zielgerichtet auf Deine Fragestellung hin. Also schwadronier nicht über die generellen Unterschiede, sondern gucke sehr gezielt, warum Du welche Software für Deine Software der anderen vorziehst. Beispiel: Suche Dir z. B. bei MySQL einen Punkt, den es nicht beherrscht, der für Dich aber sinnvoll ist. Dann schreib zwei Sätze zu MySQL und stelle fest, dass es rausfällt wegen dem Punkt und widme Dich dem Vergleich von MSSQL und Oracle ausführlicher mit dem wahrscheinlichen Schluss, dass beide gleich geeignet für Deine Aufgabe sind. Teilweise wirst Du das auch erst schreiben können, wenn Du angefangen und einen Überblick hast.

4.) Die wichtigsten Input-Daten, die in der Browser-Anwendung aufgenommen werden müssen, sind die geschätzten Kosten, geschätzten Arbeitszeiten und nötige Produktinformationen (die in anderen Datenbanken 'Windchill' liegen) von allen Entwicklungsabteilungen.
Die Kosten und Arbeitszeiten sollen im Formular eingegeben werden und die Produktinformationen aus den Datenbanken geholt werden?

Mir ist auch schon ein 'View' bekannt mit dem ich auf die Clarity PPM - Datenbank zugreifen kann 'select * from name'. Dabei handelt es sich um einen 'View' stimmts? Also ich weiß schonmal, dass mittels 'select *' einfacher Zugriff auf die wichtigsten Datenbanken möglich ist!
Hattest Du nicht gesagt, Du hättest mal eine Datenbankvorlesung gehört?
Lies Dir als aller erstes die folgenden Seiten intensiv durch, damit Du wenigstens so ein bißchen Basic-Wissen hast:
https://de.wikipedia.org/wiki/SQL
https://de.wikibooks.org/wiki/Einführung_in_SQL:_Fremdschlüssel-Beziehungen
https://de.wikipedia.org/wiki/Sicht_(Datenbank)


a) Ein Eingabe-Konzept entwickelt, dass die Datenaufnahme für alle Entwicklungsabteilung komfortabel, fehlerfrei und 'hübsch' (nebensächlich) löst.
Ja, konzentrier Dich auf das Erstellen, nicht auf das hübsch.

b) Ein Datenbanken-Konzept, dass mit dem Browser-Fenster in Verbindung steht und mittels 'Views' auf andere relevante Datenbanken zugreifen kann.
Wobei die Daten aus den Views schon im Formular genutzt werden.

c) Dann soll alles in der Datenbank stehen und meine Arbeit ist erfüllt. 'Output-Anwendungen' soll ich nicht machen. Höchstes Ziel ist einfach alle Daten, die im Moment auf Excel-Blättern stehen in einer Datenbank zu verpacken
Gut.
d) Ein Prototyp der Datenbank ist mit MS Access erlaubt soll dann über ODBC auf die Oracle-DB rübergezogen werden
Vergiss Access, sorry aber das ist völliger Bullshit. Du brauchst die Oracle-DB, einen Formulargenerator oder musst Dir PHP-Wissen aneignen und einen DB-Management-Tool, mit dem Du auf die Oracle-DB zugreifen kannst.

Teile uns doch noch einmal viel genauer mit:
1) Wie viele Datenbanken gibt es, die Du zusammenführen sollst und was für Daten sind das jeweils
2) Wie viele Eingabefelder, wie viele Formulare wird es in etwa geben.

-Wie gehe ich am besten bei diesem Software-Vergleich vor, da man in einer wissenschaftlichen Arbeit möglichst alles mit Literatur belegen muss?
Das ist wahrscheinlich eine FH-Arbeit, oder? An der Uni würde man so eine Arbeit gar nicht vergeben, deshalb weiß ich das auch nicht genau. Normalerweise bezieht man sich ja nur auf wissenschaftliche Quellen, also Papers, höchstens mal auf eine Dissertation. Die wird es zu der Software nicht geben. Aber wenn ein solcher Vergleich verlangt wird, musst Du wohl die Dokumentation referenzieren. Was bleibt Dir übrig?
Aber ein genereller Hinweise: Tue nur das, was Du auch tun musst: Wenn sich eine der obigen Software nicht für die Erstellung von Formularen eignet, dann solltest Du sie in Deiner Arbeit nicht einmal erwähnen. Gehe dann zu Deinem Betreuer und klär das mit ihm. Eigentlich sollte der Dich weit besser anleiten.

-Habt ihr zufällig Erfahrungen mit Browser-Anwendungs-Entwicklung? Was könnt ihr mir empfehlen? Ist PHP nicht voll ausreichend?
Ja, PHP ist voll ausreichend für kleine Projekte, nicht für die Sachen, mit denen sich hier die meisten beschäftigen. Ob es für Dich eine Möglichkeit ist, kann ich nur sagen, wenn Du mal etwas ausführlicher mit den Informationen bist.

(1) Du musst Dich als allererstes rudimentär in die Materie einarbeiten. Siehe obige Links, (2) dann klären, ob die genannte Software irgendetwas mit deiner Aufgabe zu tun hat. (Ich bezweifle das. Das sind Dokumentenmanagementprogramme und ähnliches. Völlig untauglich für Dich.) Habe ich recht, (3) dann musst Du mit Deinem Betreuer sprechen und den Vergleich streichen. (4) Dann musst Du uns mal genauer schreiben, welchen Umfang Deine Formulare haben werden, sonst geben wir Dir wieder gänzlich falsche Tipps. (5) Dann kommt der Entwurf der Datenbank, (6) anschließend das Holen der externen Daten und Erstellen entsprechender Views und (7) der Entwurf des Formulars. Als letztes dann noch ein paar Report-Skripte, die sind schnell gemacht.


Das ist locker genug Arbeit für weniger als drei Monate.
 
Großen Dank für bisherige Antworten!

Ich nehme kurz Stellung zu meinem informatischen Know-How:

Programmierkenntnisse: 3 Semester C/C++
Datenbank-Theorie: 1 Semester Daten-Modellierung und ein kleines MS Access Projekt
Select * kenne ich natürlich :D Aber nur um Tabellen auszuwählen und nicht um auf eine komplette Datenbank eines anderen Datenbankprogramms zuzugreifen. Vielleicht ist es auch nur eine Tabelle. Ich muss das mal genauer Anschauen, wenn ich meinen Oracle-Zugang eingerichtet habe.
Geübte Praxis: Ein paar Youtube-Tutorials mit Notepad++, XAMPP, PHP, MySQL. Notepad++ zum Programmieren von HTML und PHP, XAMPP für Beziehung zwischen PHP, Browser und MySQL. MySQL, weil es automatisch mit XAMPP mit dabei ist.

Kurze Fragen zu Oracle:

=> Welchen Oracle-Clienten soll ich installieren? (11g?, Instant Client?)
=> Könnte als DB-Management-Tool XAMPP funktionieren? Bin damit im Bezug auf PHP und MySQL schon ein bisschen Vertraut, um auf eine MySQL-Datenbank zugreifen zu können. Habe im Internet gefunden, dass man damit auch irgendwie einen Zugriff einrichten könnte. Finde XAMPP sehr freundlich für Einsteiger.

Zu "Tom S. (4) und 4.)":
Der Angebotsdefinitions-Prozess, den ich auf der ersten Seite beschrieben habe, ist mit einem Qualitäts- und Projektmanagementprozess verbunden. Jetzt wird's kompliziert... Es müssen Informationen zu dem jeweiligen Entwicklungs-Projekt, wie z.B:
-Risikoinformation zu dem Projekt
-Entwicklungsplattform
-Produktlinie
-Kunde
-Projektbezeichnung und Nummer
ausgewählt/reingeschrieben werden

Außerdem müssen verschiedene Geschäftsszenarien auswählbar sein, weil parallel Kundenverhandlungen stattfinden. Das heißt es wird parallel an mehreren Produktvarianten gearbeitet, sodass der Kunde, wenn es Richtung Vertragsabschluss kommt, sofort eine Auswahl an Produkten hat und dann den Vertrag unterschreibt, weil etwas passendes vorhanden ist.

Dann müssen eben noch die Werte Kosten und Zeit in die Kategorien Material, Reisezeit, Prototypen, etc, eben in alle nötigen Kostenarten über Quartale oder Monate verteilt werden.

Die entsprechende Entwicklungsabteilung (Kostenstelle), die die Schätzungen abgibt, muss auswählbar sein.

Auch sollte es den beteiligten Kostenstellen möglich sein Produktinformationen hochzuladen an die entsprechende Stelle.

Zusammengefasst muss also in mein Formular Information zu dem Programm (=mehrere Projekte zusammengefasst sind ein Programm), Kostenstellen, Zeitschätzung, Zeitrahmen (Start of production , End of production um Quartalanzahl und Jahr ermitteln zu können), Kostenschätzung, Geschäftsszenarien zugeordnet zu geschätzten Kosten und Zeit und Produktdefinition eingefügt werden. Ich weiß noch nicht genau was genau davon man aus anderen Datenbanken ziehen kann. Mir wurde gesagt alle Produktinformationen liegen in Windchill. Aber da es sich um Produktentwicklungen handelt, muss auch neue Information dazukommen.

Aber wohl zu komplex für PHP oder?

Viele Grüße
Säsch
 
Zuletzt bearbeitet:
Kurze Fragen zu Oracle:
=> Welchen Oracle-Clienten soll ich installieren? (11g?, Instant Client?)
Hier kann ich Dir nicht helfen. Googlen oder ein Post im Oracle-Forum sind hier erfolgsversprechender.

=> Könnte als DB-Management-Tool XAMPP funktionieren? Bin damit im Bezug auf PHP und MySQL schon ein bisschen Vertraut, um auf eine MySQL-Datenbank zugreifen zu können. Habe im Internet gefunden, dass man damit auch irgendwie einen Zugriff einrichten könnte. Finde XAMPP sehr freundlich für Einsteiger.
XAMPP ist kein DB-Management-Tool. Zur Unterscheidung:
Bei XAMPP ist das
- DB-Management-Tool = phpmyadmin
- PHP = Programmiersprache, mit der z. B. die Formulardaten von phpmyadmin verarbeitet und die Verbindung zur Datenbank MySQL hergestellt wird. Mit PHP kannst Du aber auch beliebiges anderes serverseitig programmieren.

XAMPP bringt dir einfach einen lokalen Webserver, auf dem PHP-Programme laufen können und mit der mitgelieferten Datenbank kommuniziert. Theoretisch ginge das auch für Dich, wenn Du MySQL nutzen würdest. Du entwickelst alles lokal und spielst erst die fertige DB bei der Firma ein. Um das mit Oracle zu machen, bräuchtest Du also, eine Installation der Oracle-Datenbank und vor allem eine DB-Management-Software für Oracle, also so etwas wie phpMyAdmin für MySQL. Natürlich kannst Du XAMPP installieren, eine webbasiertes Oracle-DB-Management-Tool lokal installieren und mit Deiner externen DB in der Firma verknüpfen. Das wäre wahrscheinlich auch eine gute Lösung. Es hängt aber nur davon ab, welches Management-Tool Du nutzen wirst. Bei einem normalen Programm brauchst Du keinen Webserver. Du kannst aber nicht einfach phpMyAdmin für Oracle verwenden.

Ich exzerpiere mal Deine Angaben zu der Datenbank:
Informationen zu dem jeweiligen Entwicklungs-Projekt:
-- Projektbezeichnung und Nummer
-- Risikoinformation zu dem Projekt
-- Angebotsdefinitions-Prozess/Aufwandsabschätzung
--- geschätzten Kosten
--- geschätzten Arbeitszeiten
--- Zeitrahmen
-- Entwicklungsplattform
-- Entwicklungsabteilung
-- verschiedene Geschäftsszenarien
-- Produktlinie
-- Produktinformationen (aus verschiedenen 'Windchill'-DB)
--- beispielsweise hochkomplexe CAD-Zeichnungen
--- Kosten und Zeit für Prototypen
-- Kunde
--- Kundeninformationen in der Sales-Datenbank.
...
Was ich jetzt hier gemacht habe, um es mir mal selber verständlich machen, musst Du für Dich auch machen. Das ist der nächste Schritt: Strukturiert und so genau es jetzt geht, aufschreiben, welche Daten Du zusammentragen musst und für welche die Benutzer Eingabefelder bekommen sollen.
Das solltest Du wirklich jetzt mal en detail machen.
Was wir hier vor allem bräuchten, wären die nackten Zahlen:
Wie viele Eingabefelder wird es ca. geben. Wie viele Auswahlfelder muss es geben.*
Wir geben Dir hier einfach falsche Hinweise, wenn Du es so beschreibst, als wenn Du fünf Produkt-DB verbinden musst und 16 zusätzliche Eingabefelder hast und es dann doch 100 Eingabefelder und 50 DB sind.

* Ich habe es jetzt so verstanden, dass der Kunde schon in der Sales-DB angelegt ist und in Deiner DB nur referenziert wird, dann wäre es es Auswahlfeld. Genauso für Produkte, muss man nur ein Produkt auswählen oder dazu auch noch 20 Parameter?

Auch sollte es den beteiligten Kostenstellen möglich sein Produktinformationen hochzuladen an die entsprechende Stelle.
Verstehe ich es richtig, dass über Dein Formular Daten in die Windchill-DB geschrieben werden sollen? Wenn ja, dann stell das hinten an, damit Du es, wenn Du nicht hinkommst, hinten runterfallen lassen kannst und nach Abgabe fertig stellen kannst. Wenn nein, dann beschreib es bitte etwas genauer.

Aber wohl zu komplex für PHP oder?
Ich bin ja nicht so wirklich überzeugt von Deinen Programmierfähigkeiten und DB-Kenntnissen. Und genau wegen solcher Fragen, die man bei Deinem auf dem Papier vorhandenen Vorwissen nicht erwarten würde. Den Linux-Kernel neu zu programmieren, ist zu komplex für PHP. Und es wäre vielleicht auch zu komplex, wenn aus den CAD-Dateien spezielle Animationen generiert werden sollen (aber selbst da gibt es genug Bibliotheken), aber für Deine Aufgaben ist PHP völlig ausreichend. PHP wird ja nicht mehr tun, als die Daten aus deinen Formularen auf dem Server in Empfang zu nehmen und in die DB zu schreiben.
Lies Dir dazu bitte auch den Wikipedia-Artikel durch. Wenn Du nicht verstanden hast, wie PHP funktioniert, wo der Unterschied zu HTML liegt, dann sehe ich schwarz für die BA-Arbeit. Und lies Dir wirklich die geposteten SQL-Links durch! Wir können Dir hier Tipps geben, aber nicht Deine Arbeit für Dich schreiben. Die grundlegenden Sachen musst Du Dir selber anlesen und ergooglen.
 
=> Welchen Oracle-Clienten soll ich installieren? (11g?, Instant Client?)
Kommt ganz darauf an was du machen musst... Wie der Name schon sagt ist der "Instant Client" die kleinst mögliche Verison.
Runterladen -> Entpacken -> Abgehts...
Der Full Client bietet allerdings bedeutend mehr Funktionalität und kleinere Admintools... Was du brauchst hängt da ganz von dem ab was du machen willst :)
Egal ob Full oder Instant Client... Eine Sache habe ich immer dabei -> SQL*Plus
 
Also da das ganze nun so komplex wurde, steht das Konzept eindeutig im Vordergrund und nicht unbedingt ein Prototyp.

im thema Software, werde ich einen kriterienkatalog bearbeiten mit allen Infos die ich bekomme...

Zum Thema Datenbankenkonzept:
Es ist wichtig, dass die Datenbank an den Geschäfts-Workflow des Schätzungsprozesses gebunden ist.
Das heißt an bestimmten Schritten im Prozess hat eine bestimmte Person ein bestimmtes Recht etwas bestimmtes zu machen. Entweder die Person muss es oder darf es. Kopfdaten des Programms können zum Beispiel immer bearbeitet werden.

Ich habe mir jetzt die Prozess-Dokumentation angeschaut und geschaut an welcher Stelle welche Person was machen muss und denke mir dafür verschiedene FORMULARE aus und versuchezu verstehen, wie die Abfragen zur Datenbank aussehen können. Zum einen muss irgendwann mitten im prozess, bevor es weiter geht, eine elektronische Signierung stattfinden, wo die Datenbankstruktur ganz anders aussieht. Dazu habe ich einen anderen Thread. Später kommt an die stelle des Dokuments, eben vielleicht der Gesamtreport dieser Datenbank hier und die Datenbank muss dann auch blockiert sein, also alle Formulare, solange nicht alle "unterzeichnet" haben.

Es gibt einige entitäten in diesem Prozess. Die Hauptentität jedoch ist das "Program".
Bei einem "Program" (aus dem Projektmanagement) handelt es sich um ein Bündel aus Entwicklungsprojekten oder nur einem Projekt.
Das "Program" ist einem Kunden zugeordnet und ein Kunde kann mehreren "Programmen" zugeordnet sein. Ein Program hat 1 oder mehrere Geschäftsszenarien. 1 Geschäftsszenario kann für mehrere Programme genutzt werden. 1 oder mehrere Kostenstellen sind den Entwicklungsprojekten zugeordnet und ein Entwicklungsprojekt kann 1 oder mehrere Kostenstellen haben.
Ein Program "bearbeitet" ein bestimmtes Produkt. Ein bestimmtes Produkt kann mehreren Programmen zugeordnet sein.
Dann gibt es noch Platform und Produktilinie. Die (m:1) zum programm stehen.
Das wichtigste ist dann die Entität Costs&Resources, in die der Hauptinput (Arbeitsstunden, Kosten) fließen soll.
Die Person (Projektleiter) die diese Zahlen eingibt, gibt sie für Kostenstellen ein. Er soll immer alle Zahlen sehen können und diese erhöhen oder senken können (für alle Kostenstellen).

Im Anhang befindet sich mein vorläufiges ER-Diagram.
Was haltet ihr davon?

Das wichtigste der Features die einer meiner Reports können muss ist die Darstellung der Aufwände zugeordnet zu Projekten, Kostenstellen, Szenarios und (Abteilungen).
Ich habe mich bei den Beziehungen, wie man im ER-Diagramm sehen kann, auf das minimalste Beschränkt. Dabei Frage ich mich aber wie ich beispielsweise für Szenario 'ABC' Kosten ermittle. Falls eine Beziehung zwischen Scenarios und Cost&Resources bestehen würde, wäre es einfach:

Select Costs
From Cost&Resources
Where FK_Scenario =
(Select Scenario_ID
From Scenarios
Where Scenario_Name = 'ABC')


Ohne diese Beziehung ist die Abfrage sehr viel länger und bestimmt auch ineffizienter. Wie gehe ich also am besten vor bei einer Konzeption?
Eigentlich sind nämlich auch Produktlinie, Produkt, Platform und Kunde voneinander abhängig. So könnte man später die Pulldown-Menüs verkleinern, weil beispielsweise bei einer bestimmten Produktlinie schon 3/4 der gesamten Produkte rausfallen würden und man könnte nichts falsches wählen. Aber dann ist das Diagramm später voll von Verbindungen und komplett unübersichtlich.
Mach ich mehr Verbindungen oder müssen es so wenige es geht sein? (Redundanz)

Viele Grüße
Säsch
 

Anhänge

Zuletzt bearbeitet:
Edit zum oberen meiner Posts:
Annahme: Es sind Attribute in den Entitäten vorhanden.
Verbesserung: Sum(costs)


und für alle Kosten von Projekt 'X' sehe die Abfrage dann so aus oder?

Select sum (costs)
From Cost&Resources
Where FK_Cost Centers =
(Select ID_Cost Center
From Cost Center
Where FK_projects =
(Select ID_project
From Projects
Where Project_Name = 'X'))


und mit Inner Join so oder?

Select sum(costs)
From Cost&Resources
Where FK_Cost Centers =
(Select ID_Cost Centers
From Cost Centers
Inner Join Projects
On Cost Centers.FK_Projects = Projects.ID_Project
)
 
Zuletzt bearbeitet:
Der letzte Join is Murks (m:m zwischen projects und cost centers) ... ich meinte so:

SELECT sum(costs)
FROM costs&resources c&r
JOIN projects/cost centers p/cc
ON c&r.FK_cost centers = p/cc.FK_cost centers
WHRE FK_projects =
(
SELECT ID_Projects
FROM projects
WHERE project_name = 'X'
)
 
Werbung:
Zum Thema Formulare:
Vergiss diesen PHP und XAMPP Blödsinn.
Du verwendest ORACLE als DB in der dein DM liegt. Geh zu deinem DBA und
lass dir einen APEX Zugang geben. Application Express ist in jeder Oracle DB (so ab 10i) per Default vorhanden. Verursacht auch keine zusätzlichen Lizenzkosten. Damit baust du deine Applikation in ein paar Tagen.
APEX ist komplett Webbasierend und läuft in der DB, für Produkionsumgebungen ist dann noch
ORDS (entweder im Glassfish App Server oder im Tomcat) als Web Bindeglied ratsam. Dein DBA hilft dir sicher weiter.
 
Zurück
Oben