Zum Inhalt springen

dr.dimitri

Mitglieder
  • Gesamte Inhalte

    1.276
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von dr.dimitri

  1. Also ich hab mir damals mit 16 von einem Schulkameraden aus der Oberstufe ein C Buch ausgeliehen (keine Ahnung wie das hieß - irgendwas von Markt&Technik), das gute alte Borland Turbo C++ für 20 Mark oder so gekauft und einfach angefangen alles von vorne bis hinten durchzuarbeiten. Danach kamen noch weitere C/C++ Bücher dazu, der Borland C++ Builder und obwohl ich heute mit C/C++ praktisch nichts mehr zu tun habe, hat es mir beim erlernen weiterer Sprachen enorm geholfen. Sozusagen das Latein der Programmiersprachen(nur nicht ganz so tot ), denn viele neuere Sprachen ähneln C bzw. haben dort auch ihre Wurzeln. Daher wäre mein Rat: Fang mit C an, arbeite ein Buch durch, erwarte auch nicht, dass Du nach einer Woche die schönsten Oberflächen machen kannst, sondern sieh es als Grundlage für die weitere Ausbildung an. Bei Amazon findest du bestimmt was passendes (vgl. die dortigen Bewertungen) Dim
  2. Das kannst Du nur, wenn Du den Zugriff auf die beteiligten Tabellen serialisierst - sprich vor jeder Änderung die Tabellen komplett für andere sperrst. Ansonsten geht es in einer Mutiuserumgebung definitiv nicht. Dim
  3. Dann habt ihr aber ein grundsätzliches Problem mit dieser Installation. Das ganze auf Linux zu migrieren würde evtl. das Sicherungsproblem beheben, aber euer Problem mit dem Dienst könnte unter Linux ebenso auftreten bzw. wäre vielleicht auch mit einer Neuinstallation der Instance "behoben". Eine Onlinesicherung würde im übrigen daran nichts ändern, denn auch wenn die Archivelogs kleiner sind - einmal die Woche sollte doch eine Vollsicherung gefahren werden, die, auch wenn sie Online durchgeführt werden kann, wiederum die 90GB kopieren muss. Habt ihr schon mal versucht, die Files zu splitten? WinRar kann das beispielseise und läßt sich auch gut skripten. Dim PS: Wenn die anderen die EDV-Abteilung sind, was bist dann Du?
  4. Das SQL ist nicht ganz korrekt. Es muss HAVING COUNT([Auft-Menge])>1 heißen. Dim PS: Bindestiche in Spaltennamen? Das kann doch eigentlich nur Access sein oder? Ich würde das tunlichst unterlassen, denn ein - wird im allgemeinen als Minus Operator erkannt und Du benötigst dann die [] drum herum.
  5. Das wirst Du sowohl unter Linux als auch unter Windows schaffen können. Wo habt ihr denn mehr KnowHow? Die DB und das OS wollen ja auch ordentlich administriert werden. Ausfallsicherheit wäre über ein RAC oder eine StandbyDB zu lösen. Kostet natürlich und muss auch von einem erfahrenen DBA aufgebaut werden. Dim
  6. Vielleicht ließt Du dir nochmal meinen Beitrag #13 genau durch, dann bekommst Du schon mal einen Hinweis darauf. Unabhängig davon ist die Update Version schon vom Ansatz her falsch. Vergiss ihn einfach. Dim
  7. Hmm kann sein, aber ich hab das eher so gelesen, dass jemand Performanceprobleme mit seinem CRM System hat und jetzt der Auftrag an TK8782 ergangen ist, sich "doch mal" die Datenbank anzusehen ob man da was machen könnte... Kann aber auch anders sein. Auf jeden Fall muss die Anwendung danach nochmal komplett durchgetestet werden, wenn im großen Stil Constraints eingefügt werden. Was die Dateninkonstistenzen, die ohne PK-FK Constraints zwangsläufig auftreten, betrifft, hast Du natürlich recht. Dim
  8. Die Aufgabenstellung ist schon klar definiert. Ein Arbeiter kann eine oder mehrere Maschinen bedienen. Mein Zusatz bezüglich der n:m Beziehung war nur als weiterer Hinweis gedacht, um zu erläutern wie sowas aussehen würde. Da es sich hier also um eine 1:n Beziehung handelt, sind Arbeiter und Maschine direkt miteinander verbunden. Allerdings ist das noch nicht das Ende der Aufgabe, denn es gibt noch die Entität Produkte, die ein Arbeiter an einer Maschine erzeugt. Hier ist (zumindest mir) allerdings wirklich unklar, ob ein Produkt an einer Maschine hängt oder zusätzlich auch noch am Arbeiter. Im ersteren Fäll wäre es möglich das ganze nur mit binären Relationstypen zu modellieren. Im letzteren Fall hätten wir zwischen Produkt und Arbeiter eine n:m Beziehung, die zusätzlich noch aufgelöst werden müsste. Auf jeden Fall brauche wir dann Relationstypen 3 Grades. Dim
  9. Wenn es sich um eine Kaufsoftware handelt schon, denn kein Hersteller wird hier noch irgendwas kostenfrei beheben, wenn plötzlich irgendwas nicht mehr so läuft wie es laufen sollte.
  10. Das ist keine 1:1 Beziehung. Dann würde ein Arbeiter immer genau eine Maschine bedienen und eine Maschine würde immer von genau einem Arbeiter bedient werden. Da aber ein Arbeiter eine oder mehrere Maschinen bedienen kann, ist es zumindest eine 1:n Beziehung. Kann eine Maschine auch von mehreren Arbeiter gleichzeitig bedient werden (das geht aus dem Text aber nicht hervor), dann wäre es sogar eine n:m Beziehung, die über eine entsprechende Relation aufgelöst werden müsste. Dim
  11. Nein. FK Constraints werden, wie flashpixx schon erläutert hat, verwendet, um die technische integrität der Daten sicherzustellen. Sprich Du kannst damit z.B. festlegen, dass eine Adresse immer zu einer Person gehören muss und nicht allein dastehen darf. Dim
  12. Hi, sofern die FK möglich sind, sollte man sich durchaus überlegen solche einzuführen. Das sollte aber unbedingt genau getestet werden, denn wenn die Anwendung z.B. intern immer zuerst die Adresse anlegt bevor die Person angelegt wird, gibt das erstmal Probleme. Des weiteren könnten jetzt Inkonsistenzen zum Vorschein kommen, die vorher nicht bemerkt wurden (z.B. Adressen ohne Personen o.ä.) Die Performance wird sich durch die Anlage eines FK-Constraints nicht verändern, wenn man mal von Löschungen absieht, die falls gewünscht, dann von der DB durchgeführt werden und je nach Datenmodell dadurch schneller oder langsamer werden können. Dim
  13. An dem SQL ist schlicht und ergreifend nichts falsch. Die 0.5 Punkte Abzug fallen eher unter die Rubrik Korinthen****er. Dim
  14. Klar, denn Du gehst damit in den SQL Kontext und dort sind wieder nur 4000 Byte erlaubt. Du musst das komplett im PL/SQL Kontext machen: declare l_myClob clob; l_buf varchar2(32000); l_amount binary_integer:=1; begin select myClobColumn,dbms_lob.getlength(myClobColumn) into l_myClob,l_amount from clobTable where id=1; dbms_lob.read(l_myClob,l_amount,1,l_buf); dbms_output.put_line(l_buf); execute immediate l_buf; end; / Die Doku dazu findest Du hier Dim
  15. Hi, selektier dir den CLOB in eine entsprechend lange VARCHAR2 Variable (in PL/SQL dürfen die bis zu 32K groß sein, nicht nur 4000 byte) und den übergiebst Du dann an Execute Immediate. Dim
  16. Hi, ich kenn die MSSQL Trigger nicht, aber in Oracle hast Du die Werte der neuen/geänderten Zeile über entsprechende variablen im Zugriff und kannst sie im Trigger auch durch eine einfache Zuweisung ändern. D.H. du musst in der Doku nachsehen, ob es sowas auch für MSSQL gibt (geh ich mal davon aus) und dann dein Änderungsdatum über diese Variable in einem Bevor Update oder Bevor Insert trigger ändern. Ein extra UPDATE aus dem Trigger heraus sollte nicht nötig sein (mal davon abgesehen, dass Du in deinem Update keine WHERE Bedingung drinnen hast und somit alle Datensätze ändern würdest). Dim
  17. dr.dimitri

    MySQL Trigger

    Das so ein konfuses Vorgehen nur von einer Firma unterstützt werden kann war fast klar.:old Dim
  18. Nein kann man nicht, es sei denn, man sperrt für jeden Insert die komplette Tabelle. Die einzige Möglichkeit das zu realisieren und die Multiuserfähigkeit zu erhalten ist die Kombination eines Check Constraints mit einem Unique Constraint:. Ein Feld wird per Check Constraint so definiert, dass dort nur Ziffern von 1-5 eingegeben werden dürfen. Über ein weiteres geeignetes Feld z.B. den FK zur übergeordneten Tabelle und dem oben erwähnten Feld wird ein Unqiue Constraint gelegt. Erst jetzt ist auch über die Datenbank sichergestellt, dass jeder User nur maximal 5 Einträge einstellen kann. Dim
  19. Zweifelhaft, ob Du heute wegen einer steifen Hand als Informatiker berufsunfähig geschrieben wirst. Je nach Grad der Behinderung (ich weiß nicht genau, mit wieviel % eine steife Hand gewertet wird) fällst Du dann sogar unter die Schwerbehindertenquote und wirst bevorzugt eingestellt bzw. genießt besondere Kündigungsschutz etc. Nö. Aber Unfall- und Pflegeversicherung. Die sind m.E. deutlich wichtiger. Außerdem ist es für alle BU Befürworter pratisch unverzichtbar eine private Rentenversicherung mit Beitragfreistellung zu besitzen, denn was viele immer übersehen: Die BU endet im allgemeinen mit dem Renteneintrittsalter. Es gibt mittlerweile viele Produkte, die eine Unfallversicherung mit einer Art "BU Light" (Absicherung von Krankheiten) kombinieren. Ich würde mich evtl. mal danach umsehen. Des weiteren Hände weg von Produkten mit Beitragszückerstattung. Das lohnt sich nur für die Versicherung. Dim
  20. Klar. einfache Datumsarethmetik. Zuerst den Zeitanteil nullen, dann die Differenz mit der Originalzeit bilden und last but not least in Minuten umwanden: SELECT (sysdate-trunc(sysdate))*24*60 from dual; Ergibt die Anzahl Minuten seit Mitternacht. Anstelle von sysdate verwendest Du dann Deine Datumsspalte. Dim
  21. Das ist so nicht ganz richtig. Zum sind ist es keine Transaktion die in der v$session_longops gelistet werden sondern Statements, zum anderen gibt es sowohl die 6 Sekunden Grenze als auch die 10000 Blockgrenze. Das alleine reicht aber nicht, denn es gibt durchaus Langläufer, die dort nicht auftauchen. Eine sehr gute Erläuterung findet sich hier. Dim
  22. Ok. Dann gehört in die Tabelle Verbrauch auch noch die zugehörige ID aus Verbraucher und die entsprechenden Felder aus Verbrauch raus. Dim
  23. Was bezweckst Du damit? Die Tabelle Verbrauch (die würde der von mir erwähnten Tabelle Materialverbrauch entsprechen) bekommt ein PK Feld, sowie die Felder StandortID, MaterialID und Verbrauch ggf. auch noch eine Zeiteinheit sofern diese Variabel sein soll. Damit kannst Du dann ermitteln, dass der Verbraucher X vom Material Y 10 Einheiten in 1 Stunde benötigt. Benötigt ein Verbraucher mehrere Materialien, so bekommt er einen zweiten, dritten etc. Eintrag in dieser Tabelle. Die Tabelle Verbraucher wird nicht benötigt Dim
  24. Ok. Dann bekommt die Tabelle Material eine Spalte, in fest der Maximalbestand eingetragen wird. Des weiteren wäre eine Spalte mit der verwendeten Einheit für die Anzeihe sicherlich wünschenswert. Der noch vorhandene Bestand wird zur Laufzeit berechnet, ist aber nie in der Datenbank vorhanden. Dim
  25. Die Materialien gehören in eine eigene Tabelle. Da es sich wohl um eine n:m Beziehung handelt musst Du das ganze über eine Zwischentabelle auflösen z.B. Materialverbrauch. Dort ist eingetragen die ID der Verbrauchers, die ID des Materials und die Menge die verbraucht wird. Pro benötigtem Material bekommt ein Verbraucher hier einen neuen Eintrag. Die noch vorhandene Menge und das letzte Fülldatum gehört in die Tabelle Material. Wie wird denn der Verbrauch bestimmt? Läuft das automatisch, also unabhängig davon, ob der Verbrauch auch stattfindet oder ist das nur eine eingetragene Information und der tatsächliche Verbrauch kann auch höher oder niedriger sein? Dim

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...