Hi @ all,
ich bin im Moment Azubi zum Fachinformatiker - Anwendungsentwicklung. Ich möchte euch bitten, meinen kurzen Antrag durchzulesen und mir gegebenenfals auch ein paar Anmerungen zu geben.
Ich möchte das Projekt mit einer Oracle DB programmieren. Wie sind mit Oracle die Erfahrungswerte? Gibt es irgendwelche Probleme?
Hier der Projektantrag:
Kurze Projektbeschreibung:
Ist- Zustand:
Testpläne und Testergebnisse werden in Excel erstellt und auf einem Fileserver abgelegt. In diesen Dateien sind die Testergebnisse in einem vorgegebenen Testplan gespeichert. Diese sind mit aufwendigen Formatierungen versehen. Das daraus resultierende Ergebnis sind viele Excel Dateien die viel Speicherplatz in Anspruch nehmen. Des weiteren ist die Übersichtlichkeit und ge-naue Analysen aller Testfälle nur mit hohem Zeitaufwand darstellbar.
Soll- Zustand/ Ziele:
Es soll ein Programm entwickelt werden, welches die bisherigen Testpläne in eine Datenbank importiert. Dabei soll der Testplan flexibel und für die Zukunft jederzeit erweiterbar sein. Jeder Benutzer soll die Möglichkeit erhalten, sich über das Programm den Testplan anzeigen zu lassen. Zusätzlich wird dem Benutzer ermöglicht, Statistiken in grafischer Form (Diagramme und Tabellen) anzusehen.
Um die Mehruserfähigkeit zu gewährleisten wird eine Oracle Datenbank eingesetzt. Alle Funktio-nen des Clients werden ausschließlich mit der Scriptsprache Python programmiert. Dies gewähr-leistet einen multifunktionalen Einsatz auf den 3 wichtigsten Platformen Linux, OSX und Windows. Als Frontend (GUI) wird das Modul wxPython eingesetzt.
Projektphasen mit Zeitplanung:
Planungsphase (8 Stunden)
- Erfassung des Ist Zustandes (1 Stunde)
- Pflichtenheft (7 Stunden)
Konzeptphase (23 Stunden)
- Ermittlung der Excel Export / Import Möglichkeiten + Statistikanalyse (2 Stunden)
- Ermitlung der Anzeigemöglichkeiten "Frontend" (2 Stunden)
- Erstellen eines Export / Import Konzeptes + Statistikanalyse (14 Stunden)
- Erstellen eines Datenbankmodell's (5 Stunden)
Realisierungsphase (22 Stunden)
- Realisieren des Datenbankkonzepts (2 Stunde)
- Realisieren des Export/-Import-konzepts + Statistikanalyse (10 Stunden)
- Realisieren des Frontendkonzept (10 Stunden)
Abschlussphase (17 Stunden)
- Erstellen der Konfigurationsdokumentation (5 Stunden)
- Erstellen der Projektdokumentation (12 Stunden)
Thx & Gruss Michael
FIAE - Python Projektantrag
Hab ich aus der IHK Antragsvorlage, Wörd rauskopiert. Sagt wohl alles .sape hat geschrieben:de_master hat geschrieben:Da-teien
ge-naue
Tabel-len
gewähr-leistet
SCNR
Das will mein Ausbildungsbetrieb.jens hat geschrieben: Warum gerade Oracle?
Autsch.de_master hat geschrieben:Das will mein Ausbildungsbetrieb.jens hat geschrieben: Warum gerade Oracle?
Oracle ist teuer und ressourcenhungrig. Bei der Veranstaltung “Einführung in Datenbanksysteme” gab's bei uns kostenlose Oracle (8i oder 9i) Versionen für Studis auf CD. In den Anforderungen stand “mindestens 2 GB freier Plattenplatz”. Meine Projektgruppe hat dann PostgreSQL benutzt.
Versuch am besten möglichst nahe am SQL-Standard zu bleiben, oder schau mal, ob Du ein [wiki=Module#BindungenFrRelationaleDatenbanken]ORM[/wiki] benutzen kannst, dass auch mit Oracle kann.
- sunmountain
- User
- Beiträge: 89
- Registriert: Montag 13. März 2006, 17:18
de_master hat geschrieben: Planungsphase (8 Stunden)
- Erfassung des Ist Zustandes (1 Stunde)
- Pflichtenheft (7 Stunden)
Konzeptphase (23 Stunden)
- Ermittlung der Excel Export / Import Möglichkeiten + Statistikanalyse (2 Stunden)
- Ermitlung der Anzeigemöglichkeiten "Frontend" (2 Stunden)
- Erstellen eines Export / Import Konzeptes + Statistikanalyse (14 Stunden)
- Erstellen eines Datenbankmodell's (5 Stunden)
Realisierungsphase (22 Stunden)
- Realisieren des Datenbankkonzepts (2 Stunde)
- Realisieren des Export/-Import-konzepts + Statistikanalyse (10 Stunden)
- Realisieren des Frontendkonzept (10 Stunden)
Abschlussphase (17 Stunden)
- Erstellen der Konfigurationsdokumentation (5 Stunden)
- Erstellen der Projektdokumentation (12 Stunden)
Deine Zeitplanung ist ein klassischer Deathmarch Kandidat.
Vollkommen unrealistisch.
Ich komme beim Mitrechnen auf ca. 17 MT.
Ich denke realistisch wäre das Doppelte, mindestens.
Du willst ne Menge Komponenten testen, die
a) komplex (wxPython)
b) in Kombination selten (Excel + Python)
c) eigene Fallstricke haben (Oracle)
d) hohe Anforderungen stellen (Erweiterbarkeit, Statistik, Analyse)
Ich will ja nicht schwarz malen, aber aus Erfahrung kann ich Dir
nur den Tip geben, Deine Feinziele zu überdenken.
Ich behaupte, sie sind nicht zu schaffen - in der Zeit.
Die Kombination ist nicht so selten. Fragen danach tauchen recht häufig in der englischsprachigen Newsgroup auf. Neben Anbindung per COM (Windows only) gibts noch xlrd zum Lesen und pyExcelerator zum schreiben von Excel-Dateien.sunmountain hat geschrieben:b) in Kombination selten (Excel + Python)
- sunmountain
- User
- Beiträge: 89
- Registriert: Montag 13. März 2006, 17:18
Ich wäre bei Excel geblieben.
Die drunterliegenden Spreadsheets einfach durch Queries
austauschen, ein bischen VBA, und die Grafiken sind auch
schon fast fertig.
Man muss immer mal sehen, wieviel Aufwand es ist,
die Architektur komplett umzukrempeln.
Die drunterliegenden Spreadsheets einfach durch Queries
austauschen, ein bischen VBA, und die Grafiken sind auch
schon fast fertig.
Man muss immer mal sehen, wieviel Aufwand es ist,
die Architektur komplett umzukrempeln.
Zu a)sunmountain hat geschrieben:Deine Zeitplanung ist ein klassischer Deathmarch Kandidat.
Vollkommen unrealistisch.
Ich komme beim Mitrechnen auf ca. 17 MT.
Ich denke realistisch wäre das Doppelte, mindestens.
Du willst ne Menge Komponenten testen, die
a) komplex (wxPython)
b) in Kombination selten (Excel + Python)
c) eigene Fallstricke haben (Oracle)
d) hohe Anforderungen stellen (Erweiterbarkeit, Statistik, Analyse)
Ich will ja nicht schwarz malen, aber aus Erfahrung kann ich Dir
nur den Tip geben, Deine Feinziele zu überdenken.
Ich behaupte, sie sind nicht zu schaffen - in der Zeit.
Das sing genau 3 Fenster. Auswahl, Testplan anzeigen und Statistik Anzeige. Das soll natürlich nicht aufwendig dargestellt werden. Hauptaufgabe ist der import in die Datenbank.
Zu b)
Ich exportiere das Dukument als .htm. Dann parse ich die Datei dementsprechend und stopf das in die Datenbank. Parser ist zu 40% vorhanden.
Zu c)
Oracle is mit Python neuland. Bin ich noch am überlegen ob ich nicht MySQL nehmen soll.
Zu d)
Das ist kein großer Aufwand. Da werden nur in einer Tabellen in der Datenbank gespeichert die man dann aus dem Dokument ausliest. Passiert nach dem Parsen beim Eintrag in die Datenbank.
Der Zeitplan sollte schon hinkommen. Habs mit Cheffe auch durchgesprochen .
Gruss Michael
Weist du ob ich über diese 2 Module auch an die Grupierungen herankomme? Leider Exportiert Excel keine Grupierung in eine .xml Datei. Desshalb muss ich die .htm Datei parsen was etwas aufwendiger ist.BlackJack hat geschrieben:Die Kombination ist nicht so selten. Fragen danach tauchen recht häufig in der englischsprachigen Newsgroup auf. Neben Anbindung per COM (Windows only) gibts noch xlrd zum Lesen und pyExcelerator zum schreiben von Excel-Dateien.sunmountain hat geschrieben:b) in Kombination selten (Excel + Python)
Ich glaube nicht. Wirst Du wohl beim HTML bleiben müssen.de_master hat geschrieben:Weist du ob ich über diese 2 Module auch an die Grupierungen herankomme?BlackJack hat geschrieben:Neben Anbindung per COM (Windows only) gibts noch xlrd zum Lesen und pyExcelerator zum schreiben von Excel-Dateien.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo Michael!de_master hat geschrieben:Oracle is mit Python neuland. Bin ich noch am überlegen ob ich nicht MySQL nehmen soll.
PostgreSQL kommt Oracle näher als MySQL. Außerdem gibt es eine wirklich gute Schnittstelle zu PostgreSQL --> psycopg2
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Hallo Gerold,gerold hat geschrieben:Hallo Michael!de_master hat geschrieben:Oracle is mit Python neuland. Bin ich noch am überlegen ob ich nicht MySQL nehmen soll.
PostgreSQL kommt Oracle näher als MySQL. Außerdem gibt es eine wirklich gute Schnittstelle zu PostgreSQL --> psycopg2
mfg
Gerold
was habe ich denn bei PostgreSQL für Vorteile? Hab das zwar mal installiert, glaube beim OpenExchange Server. Da hats aber nicht wirklich geklappt.
Mein letztes Programm habe ich schon mit Python und MySQL programmiert. Das hat super geklappt ohne Probleme.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi Michael!de_master hat geschrieben:was habe ich denn bei PostgreSQL für Vorteile?
Die meisten Unterschiede kommen erst bei größeren Anwendungen zum Tragen. Das fängt damit an, dass die Unicode-Unterstützung bei psycopg2 spitzenmäßig funktioniert und das schon seit mehreren Versionen. Die Lizenz bei PostgreSQL ist einfach und durchschaubar. Bei MySQL weiß ich immer noch nicht, ab wann ich Lizenzgebühren an MySQL-AB zahlen muss. PostgreSQL kann schon lange mit Transaktionen, Triggern, Prozeduren, Views und Foreign Keys umgehen. Bei MySQL wurden einige dieser Dinge erst viel später und das auch nicht zu jedem Tabellentyp hinzuprogrammiert.
PostgreSQL beherrscht die eingebaute Sprache PL/PGSQL, was der Sprache von Oracle ziemlich nahe kommt. Es gibt sogar Projekte, die sich erfolgreich zum Ziel gesetzt haben, PostgreSQL so umzuprogrammieren, dass es sich nach ausen wie Oracle anfühlt.
Es gibt von psycopg2 auch ein officielles Release für Windows und Python 2.5: http://www.stickpeople.com/projects/pyt ... index.html
Sinnvolle Erweiterungen gibt es bei psycopg2 auch: http://www.initd.org/tracker/psycopg/wi ... umentation
Dann sollte man nicht vergessen, dass der PostgreSQL-Server, verbundene Clients über Ereignisse benachrichtigen kann. Auch das wurde in psycopg2 umgesetzt, auch wenn ich es noch nie eingesetzt habe.
Wenn man ORMs einsetzt, dann kann man von vielen dieser Features wahrscheinlich nicht profitieren. Dann ist es auch ziemlich egal, welches Datenbanksystem man verwendet.
Und zum Abschluss noch ein Auszug aus Wikipedia:
mfgPostgreSQL ist eines der ältesten und am weitesten fortgeschrittenen objektrelationalen Datenbanksysteme (ORDBMS) im Bereich der freien Software.
PostgreSQL ist weitgehend konform mit dem SQL92/SQL99/SQL2003-Standard, d. h. alle in dem Standard geforderten Funktionen stehen zur Verfügung und verhalten sich so wie vom Standard gefordert; dies ist bei manchen kommerziellen sowie nichtkommerziellen SQL-Datenbanken bisweilen nicht gegeben.
Gerold
PS: Nein, ich wollte eigentlich nicht so viel dazu schreiben.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Ich schau mir das ganze mal an .
Jedoch werd ich wohl entweder Oracle under MySQL benutzen. Im geschäft habe ich genügend Oracle u. MySQL Profis . Für das Abschlussprojekt reicht eigentlich eine MySQL Datenbank.
Gruss Michael
Jedoch werd ich wohl entweder Oracle under MySQL benutzen. Im geschäft habe ich genügend Oracle u. MySQL Profis . Für das Abschlussprojekt reicht eigentlich eine MySQL Datenbank.
Gruss Michael
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Also ich würde einfach SQLAlchemy nutzten und somit unabhängig von der DB bleiben.
IMHO muss man eine Anwendung nur dann gezielt auf der DB zuscheiden wenn sie sehr groß ist und damit die Performances eine große Rolle spielt.
IMHO muss man eine Anwendung nur dann gezielt auf der DB zuscheiden wenn sie sehr groß ist und damit die Performances eine große Rolle spielt.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Meist muss man eine Applikation auf eine Datenbank zuschneiden, wenn eine Datenbank etwas bietet, was ORMs nicht tun. Und PostgreSQL bietet viele Sachen, die ORMs nicht unterstützen.jens hat geschrieben:IMHO muss man eine Anwendung nur dann gezielt auf der DB zuscheiden wenn sie sehr groß ist und damit die Performances eine große Rolle spielt.
Ist nur die Frage - braucht mans?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Genau das meine ich. IMHO braucht man all diese tollen Features nur dann, wenn man die Performance steigern möchte. Das braucht man aber eigentlich erst dann zu machen, wenn diese nicht ausreicht.Leonidas hat geschrieben:Ist nur die Frage - braucht mans?
Im Grunde ist es das selbe wie [wiki]Python Performance[/wiki]