2009-06-25 9 views
3

Also ich habe ein paar Bücher über SQL gelesen und ich habe SQL verwendet und Datenbanken erstellt, aber wirklich nichts fortgeschritten, ein paar Tabellen, ein paar verbindet, so etwas.Datenbank Programmierung Konzepte

So jetzt arbeite ich an einem Projekt, das ziemlich groß ist. Die Datenbank wird mehrere Tabellen haben und wir werden täglich 40'000 bis 80'000 Datenzeilen verarbeiten.

Jetzt finde ich mich einige grundlegende SQL-Konzepte fehlen, zum Beispiel:

Ich habe einen Datensatz mit Dateien und Dateidetails. Die Dateien werden in einer Tabelle aufgelistet und die Dateidetails werden in einer anderen Tabelle aufgelistet. Wir haben auch eine Build-Tabelle und eine vierte Tabelle, die die Build-Tabelle, die Datei-Tabelle und die Datei-Details-Tabelle zusammenfügen.

Die Probleme sind wie: „Wie kann ich die Dateien verarbeiten und haben die richtigen Dateidetails mit Dateien und mit einem Build assoziiert werden?

Auch meine Universität nicht deckten und jetzt fühle ich mich

Nehmen wir ein weiteres Beispiel: Nehmen wir die Dateitabelle.In meiner Anwendung habe ich 40'000 Dateien, ich muss Dateien hinzufügen, die noch nicht in der Dateitabelle vorhanden sind für jeden einzelnen Eintrag suchen und hinzufügen, wenn es nicht existiert und überspringen, wenn es tut?

So ist meine wirkliche Frage, wo ist ein guter Platz e um allgemeine Konzepte zu lesen?

+0

Ohne zu wissen, die Anforderungen Ihrer Anwendung ist gefährlich zu fragen und Anregungen zu geben. – MaD70

+0

@Coding Monkey - Können Sie eine grundlegende Illustration der Tabellenstrukturen geben? –

Antwort

5

Die besten Bücher, die ich zu diesem Thema gefunden habe, sind die "SQL for Smarties" -Serie von Joe Celko. Sie behandeln die Grundlagen von der Normalisierung bis zur Darstellung verschiedener Datenstrukturen in SQL.

+0

http://stackoverflow.com/questions/406760/whats-your-most-controversial-programming-opinion/406764#406764 –

+1

+1 Celko ist stark eigenwillig, und nicht jeder stimmt mit allem überein, was er sagt. Lies seine Bücher trotzdem. Sie sind hilfreich, wenn Sie sie mit einem Körnchen Salz nehmen. Er wird dich zwingen, über eine Menge Dinge nachzudenken, über die du nachdenken musst. –

1

Um Ihre letzte Frage zuerst zu beantworten, wenn Sie mehr über SQL concepts erfahren möchten, gibt es eine Reihe von sehr guten Büchern. Wie LPCRoy erwähnt hat, ist alles von Joe Celko gut. Auch für die Mengenlehre gibt es ein Buch mit dem Titel "Angewandte Mathematik für Datenbankprofis", das ich sehr empfehle. Vernachlässige auch nicht die Foren. Ich bin ein großer Fan des Forums und der Artikel unter SqlServerCentral.com persönlich.

Ihre spezifischeren Fragen betrafen nun die Interaktion mit dem Dateisystem und die Verarbeitung von Dateien (oder zumindest Listen von Dateinamen) aus der Datenbank. Die meisten RDBMS haben Möglichkeiten, dies in gespeicherten Prozeduren zu tun, aber genau, hängt davon ab, welches System Sie verwenden. Auch in denen, die das erlauben würden, würde ich es nicht empfehlen.

Ich würde stattdessen empfehlen, eine andere Programmiersprache wie Python oder C# zu verwenden, um Ihre Dateien zu analysieren und dann die benötigten Daten in Ihre Datenbank einzugeben. Beachten Sie, dass einige neuere RDBMS wie MS Sql Server 2008 Ihnen erlauben, Dokumente direkt mit der Datenbank zu verknüpfen oder sogar Dokumente in der Datenbank zu speichern, wenn Sie möchten. Auch wenn dies Ihr oberstes Ziel ist, verwenden Sie wahrscheinlich am besten eine externe Sprache wie Python oder C#, um sie in die Datenbank einzufügen.

0

Die Frage, die Sie gestellt haben, scheint eine einfache Join-Abfrage-Lösung und vielleicht ein bisschen Abfrage zu haben. Beabsichtigen Sie, diese Operationen im PL/SQL-Block oder im Code auszuführen? Suchen Sie nach Code-db-Interaktionskonzepten oder rein auf Datenbankebene?

Ich finde normalerweise Kopf zuerst Reihe eine informative und eine Spaßweise des Lernens. http://headfirstlabs.com/books/hfsql/

3
  • SQL and Relational Theory - How to Write Accurate SQL Code, von Chris J.Datum; von der Vorwort:

    SQL ist allgegenwärtig. Aber SQL ist schwer zu benutzen: Es ist kompliziert, verwirrend und fehleranfällig - viel mehr, wage ich es vorzuschlagen, als seine Apologeten glauben machen wollen. Um die Hoffnung zu haben, SQL-Code schreiben zu können, von dem Sie sicher sein können, dass er genau ist (also genau das, was er tun soll, nicht mehr und nicht weniger), müssen Sie eine geeignete Disziplin befolgen - und es ist die These davon Stellen Sie fest, dass die Verwendung von SQL relational die Disziplin ist, die Sie benötigen. Aber was bedeutet das? Ist SQL überhaupt nicht relational?

    Nun, es ist wahr, dass SQL die Standardsprache für die Verwendung mit relationalen Datenbanken ist - aber diese Tatsache an sich macht es nicht relational. Die traurige Wahrheit ist, dass SQL viel zu viele Wege von der Relationstheorie entfernt; Duplizierte Zeilen und Nullen sind zwei offensichtliche Beispiele, aber sie sind nicht die einzigen. Als Konsequenz gibt es Ihnen ein Seil, mit dem Sie sich sozusagen aufhängen können. Wenn Sie sich nicht selbst aufhängen wollen, müssen Sie die Relationstheorie verstehen (was es ist und warum); Sie müssen über die Abweichungen von SQL von dieser Theorie wissen; und Sie müssen wissen, wie Sie die Probleme vermeiden können, die sie verursachen können. In einem Wort müssen Sie SQL relational verwenden. Dann können Sie sich so verhalten, als ob SQL wirklich relational wäre, und Sie können die Vorteile der Arbeit mit einem tatsächlich relationalen System genießen.

    Jetzt wäre ein Buch wie dieses nicht nötig, wenn alle SQL bereits relational verwenden würden - aber das ist es nicht. Im Gegenteil, ich beobachte viele schlechte Praktiken in der aktuellen SQL-Verwendung. Ich beobachte sogar, dass solche Praktiken in Lehrbüchern und ähnlichen Publikationen von Schriftstellern empfohlen werden, die es wirklich besser wissen sollten (keine Namen, keine Packübung); In der Tat ist eine Überprüfung der Literatur in dieser Hinsicht eine ziemlich entmutigende Übung. Das relationale Modell erblickte 1969 das Licht der Welt, und doch sind wir fast 40 Jahre alt, und die Datenbankgemeinschaft scheint es immer noch nicht gut zu verstehen. Teilweise aus solchen Gründen verwendet dieses Buch das relationale Modell selbst als organisierendes Prinzip; Es erläutert ausführlich verschiedene Funktionen des Modells und zeigt in jedem Fall, wie SQL am besten zur Implementierung des fraglichen Features verwendet werden kann. ...

  • Von dort aus, wenn Sie wollen, das Thema zu vertiefen, Applied Mathematics for Database Professionals, von Lex de Haan (RIP) und Toon Koppelaars; vom Vorwärts, von Hugh Darwen und Chris J. Date (wieder):

    Wir begrüßen diesen Beitrag zu der Datenbank Literatur. Es ist ein weiteres Buch über die Theorie und Praxis relationaler Datenbanken, aber dieses ist interessanterweise anders. Der Großteil des Buches ist einer Behandlung der Theorie gewidmet. Die Behandlung ist nicht nur streng und mathematisch, sondern auch zugänglicher als einige andere Texte dieser Art. Die Autoren erkennen, wie wir es tun, die Bedeutung von Logik und Mathematik, wenn das Datenbankstudium ernst genommen werden soll. Sie haben eine gute Arbeit geleistet, um einen gewissen Formalismus zu beschreiben, der von ihren ehemaligen Lehrern Bert de Brock und Frans Remmen entwickelt wurde. Dieser Formalismus enthält einige Ideen, die für viele Leser neuartig sein werden, auch für diejenigen, die bereits mit dem Thema vertraut sind. Besonders interessante neue Idee, uns ist die Formalisierung der Aktualisierung und Transaktionen in Kapitel 10 ...

  • Practical Issues in Database Management: A Reference for the Thinking Practitioner, von Fabian Pascal:

    Vorwort

    Die Die Computerindustrie - und insbesondere ihr Datenbanksektor - ähnelt der Modebranche: Sie wird von Modetrends angetrieben. Und in den meisten Fällen profitieren Anbieter von beschleunigter Obsoleszenz, auf der Modeerscheinungen basieren.Es ist die Benutzer, jedoch nicht die Verkäufer, die durch die Nase zahlen. Die Anbieter können, unterstützt von den Fachmedien, Ignoranz und obskure ernste Produktmängel und fragwürdige Praktiken, die sie induzieren, gewinnbringend einsetzen, indem sie die Benutzer einfach zur nächsten Modeerscheinung locken - das Internet ist nur das neueste. ... [Meine Anmerkung:. Das Buch im Jahr 2000 veröffentlicht wurde, aber es gibt keine Anzeichen dafür, dass das WWW insbesondere über seine Marotte Funktionsweise vorgeschoben wird]

  • An Introduction to Relational Database Theory, von Hugh Darwen, dieses ist frei, es kann direkt von seiner Seite heruntergeladen werden.