Zum Inhalt springen

dr.dimitri

Mitglieder
  • Gesamte Inhalte

    1276
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von dr.dimitri

  1. Garnicht. Auf diesen Datentyp kann kein Uniquekey gesetzt werden, ergo ist auch kein PK Constraint möglich. Dim
  2. Wenn Du zwei Tabellen verknüpfen möchtest, musst Du einen PK und einen Fremdschlüssel einführen. Dazu würde ich immer rein technische Felder verwenden (mal davon abgesehen, dass bei der Verknüpfung von Vor- und Nachname absehbar ist, dass es Eindeutigkeitsprobleme geben wird). Sprich Du fügst in die Tabelle Kunde eine Spalte ID ein und in der Tabelle einen Fremdschlüssel KundenID der Kunde.ID referenziert. Dim
  3. In der 3. NF wäre nicht nur die Anschrift vom Kunden getrennt, sondern es gäbe auch eigene Tabellen für die Orte, PLZ, Strassennamen, die dann über FKs Verbindungen zu einer wirklichen Adresse zusammen gejoint würden. Gleiches gilt für den Namen des Kunden. Hier müsste theoretisch eine Vor- und Nachnamentabelle eingeführt werden. Des weiteren ist die Speicherung von Kundengeburtstag und Kundenalter redundant. Wenn dann nur der Geburtstag, aus dem sich dann immer das aktuelle Alter errechnen lassen kann. Ansinsten müsste täglich geprüft werden, welche Kunden Geburtstag hatten und das Alter entsprechend angepasst werden. Dim
  4. dr.dimitri

    Normalisierung

    Das die DB evtl. kleiner wird - ok kann sein. Der Aussage, dass die Performance durch Normalisierung schneller wird kann ich mich nicht anschließen. Es ist ganz im Gegenteil so, dass es praktisch keine umfangreicheren Datenbanken gibt, die sich 100%ig in der 3. NF befinden, da die vielen Joins die Abfragen extrem unperformant machen. Daher wird auch gezielt wieder denormalisiert. Normalisierung macht man nicht aus perforancegründen. Man kann vieles tun, aber wenn man eine relationale Datenbank verwendet, dann sollte man sie auch richtig verwenden. Bei 2 Tabellen und einer handvoll Datensätzen mag das noch überschaubar sein wenn man ein bissl schlampig arbeitet. Wenn du ein DB-Modell mit 40,50 oder 200 Tabellen und zig Millionen Einträgen hast, dann wirst Du das anders sehen. Dim
  5. dr.dimitri

    Normalisierung

    Wenn mehrer Mitarbeiter die gleiche Tätigkeit machen sollen, bekommen alle die gleiche TätigkeitsID. Würdest Du hier den tatsächlichen Wert speichern wäre das Redundanz von fachlichen Informationen. Es ist kein "verschreiben" bei den Tätigkeitsbezeichnungen möglich, ändere ich den Namen einer Tätigkeit wirkt sich das auch automatische auf alle Mitarbeiter aus, die die entsprechende ID eingetragen haben. Ich muss mich um nichts weiteres kümmern. Dim
  6. Versteh ich jetzt nicht ganz. Zuerst wird die Person angelegt, dann der Bewerber. Also im Prinzip genau umgekehrt wie Du es momentan gemacht hast. Dim
  7. ODBC ist keine Sprache, sondern ein (alter und langsamer) Schnittstellenstandard für Datenbanktreiber. Daher kann SQL nicht nach ODBC umgeschrieben werden. Wenn php bleibt, müsste ihr vermutlich nur die Konfiguartion für die Datenbankverbindung anpassen. mysql_real_escape_string etc. sind php Funktionen und haben nichts mit ODBC zu tun. Dim
  8. Wie möchtest Du dass denn dann abspeichern? Ich würde empfehlen die zahl in einen varchar feld umzuwandeln und dann jede einzelne Ziffer in eine Spalte abzuspeichern. Dann kannst beliebig drauf selektieren. Wie oft werden die Daten denn geändert/geladen? Evtl. ware das ein Einsatzgebiet für Bitmapindizes. Allerdings sollte dann wenig DML auf die Tabelle erfolgen sein oder der Einbau zumindest per Batchjob erfolgen. Dim
  9. In diesem fall solltest Du mal schauen, ob es ein ähnliches Programm gibt, welches unter einen OpenSource Lizenz steht. Was genau hast du denn runtergeladen? Dim
  10. Interessant wär auch noch zu wissen, wie man denn dort posten kann. Wenn ihr Autoren sucht müssen da eigentlich 4 blinkende Pfeile auf einen Link "Autor werden" zeigen (also mal überspitzt ausgedrückt ) Dim
  11. Nein ich meinte damit, dass manches dort schlicht und ergreifend falsch ist. Z.B. hier Das ist eher eine Beschreibung wie man es nicht machen sollte. Dim
  12. Also bei der technische Qualität der Beiträge zumindest im SQL Forum habt ihr noch Luft nach oben. Da kann man z.T. eigentlich nur hoffen, dass es nicht so gemacht wird. Hab auch schon dementsprechende Kommentare gepostet. Dann solltest Du dir mal diverse technische Blogs ansehen und regelmäßig lesen. Ich bevorzuge Blogs gegenüber den üblichen statischen HowTo's und Tutorials wie man sie zuhauf findet. Dim
  13. Weglassen? Nein nur ersetzen: CREATE PROCEDURE table_count ( in_table_name IN VARCHAR2, out_anzahl OUT NUMBER) AS BEGIN EXECUTE IMMEDIATE 'select count(*) from '||in_table_name INTO out_anzahl; END; Des weiteren sind das ' und keine Backticks (’) wie du sie verwendet hast. Dim
  14. Hi, nicht ganz. Zuerst müsste man wissen wohin das Ergebnis ausgegeben werden soll. Bei einem SELECT count() wird nie eine NO_DATA_FOUND Exception gefunden. Bei 0 Sätzen wird einfach 0 geliefert. Den entsprechenden Exceptionteil kannst also weglassen. Dann kann man kein statisches SQL machen, bei dem der tabellenname nicht fest ist. Hier braucht man dynamisches SQL: EXECUTE IMMEDIATE' select count(*) from '||in_table_name INTO out_anzahl; Weswegen scheidest Du denn die Fehlermeldung auf 80 Zeichen ab? Dim
  15. Hab da 9/2000 die Ausbildung begonnen und bin seit dem dort. Dim
  16. Hi, mit der Funktion add_months kannst Du Monate zu einem Datum hinzuzählen oder abziehen: Das Datum in einem Jahr: select add_months(sysdate,12) from dual Das Datum vor 5 Monaten: select add_months(sysdate,-5) from dual Dim
  17. Allerdings sollte man für das Konkartinieren von Strings einen StringBuffer verwenden und erst zum Schluss daraus einen String erzeugen. Das beschleunigt das ganze (insb. bei großen Dateien) ungemein. Dim
  18. Wenn Du dich mit dem Thema IT (nicht nur Oracle) beschäftigst (oder beschäftigen musst) dann ist Englisch Pflicht. Auf Deutsch oder in anderen Sprachen findet sich da nur recht wenig (und schon gar nicht die Oracle Doku). Ja, das würd mich auch interessieren. Dim
  19. Ah ok. Das würd ich jetzt zwar als fachliche Anforderung bezeichnen und nicht als Constraint aber ok. Meine Meinung dazu: Wer so etwas per Trigger macht, ist auf dem besten Weg eine unübersichtliche, schwer wartbare und fehleranfällige Anwendung zu schreiben. Fachliche Logik gehört nicht in einen Trigger versteckt, sondern in die Anwendung selbst (als normale Methode oder als Stored procedure ist dabei egal aber nicht losgelößt davon in einen Trigger). Du solltest das ganze also als Beispiel sehen, wie man es definitiv nicht macht. Dim
  20. Dynamische Integritätsbedingungen. Interessant sowas hab ich in 6 Jahren Datenbankentwicklung mit Oracle noch nie gehört. Kannst mir da mal ein Beispiel geben? Würd mich interessieren. Dim
  21. Mit einem Trigger können keine funktionierenden Constraints erstellt werden. Zumindest nicht, wenn es sich um eine Multiuserdatenbank handelt. Dim
  22. Dazu empfehle ich Effective Oracle By Design von Tom Kyte Da hilft dir der Concepts Guid weiter. Du solltest das Wort Constraint nicht zusammen mit dem Wort Trigger verwenden. Das hat nie funktioniert und wird nie funktionieren. Dazu brauchst zuerst mal eine Oracle Datenbank. Ich würde zur Oracle XE raten. Und dann natürlich noch die Oracle Doku zu SQL. Falls Du dir ein Buch dazu kaufen möchtest rate ich dir auf jeden fall ab eines aus dem Rampant Verlag zu nehmen. Dim
  23. Nur mal nachgefragt: Gibst Du das Ergebnis als HTML? Falls ja, müssen mehr als ein Leerzeichen durch Verwendung von erzwungen werden. Falls das nicht der Fall ist, füg doch mal probehalber einen Satz ein, den Du z.B. mit # auffüllst um zu sehen ob es ein Anzeige oder Applikationsproblem ist. Dim
  24. dr.dimitri

    DB Vgl

    Und nu? Ist die noch im Druck? Dim
  25. Wo genau liegt den dein Problem? Du benötigst einen enstprechenden Eintrag in der tnsnames.ora und einen installieren Oracle Client (entweder den großen oder auch den Thin Client). Es gibt auch noch andere Möglichkeiten z.B. beim jdbc Thin Treiber, der nur den Hostnamen, den Port des Listeners und den Service Namen benötigt Mit einer Oracle XE die ungeschützt über's Internet erreichbar ist? Du bist auf jeden Fall auf dem Weg die Kontrolle über deine Instance zu verlieren. 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...