Ich habe zugestimmt, in einem Datenbankkurs Lehrerassistent zu werden, und wurde auch gebeten, Änderungen zu prüfen, die für den Kurs gemacht werden können.
Der Kurs heißt "Advanced Databases", aber der Name ist ein wenig trügerisch. Die Studenten sind keine Informatik-Majors, sondern irgendeine Art von "IT-Management" -Studenten und daher fehlt es an den grundlegenden Konzepten, die die Informatik benötigt (höhere Mathematik, etc.).
Sie hatten bereits einen Einführungskurs in Datenbanken und sollten bereits Folgendes wissen:
Also, meine Frage an euch alle lautet: Welche zusätzlichen Konzepte könnte dieser Kurs vermitteln?
Der Kurs ist in erster Linie auf den "fortgeschrittenen Gebrauch" von Datenbanken ausgerichtet, daher akzeptiere ich gerne Antworten mit Konzepten, die nicht gerade fortgeschrittene Datenbankkonzepte sind, sondern sich auf eine Art "fortgeschrittener Nutzung von Datenbanken" beziehen. Als mögliche Themen wurden einfaches Data Mining oder die Nutzung externer Webdienste wie Amazon diskutiert.
Der Kurs wird ein Projekt enthalten, bei dem der Schüler eine Art Frontend (in PHP oder was auch immer) für seine Datenbank (MySQL) erstellen muss, damit er etwas programmieren muss.
Bearbeiten: Denken Sie daran, dass die Studenten keine Informatikstudenten sind, also Dinge, die sehr High-Tech oder Low-Level wie Abfragepläne, Abfrageoptimierungen usw. sind, sind nicht in diesem Bereich Natürlich.
Sicherheit. das ist was wir wirklich brauchen. Wir brauchen neue Leute, um keine infektionsfreundlichen Anwendungen zu machen
Leistung müssen Sie ihnen über die Kosten von Operationen erklären, und wenn einige Dinge, die nützlich scheinen, Ihre App zu einem Crawl wie bestimmten Joining-Operationen bringen (Sie sollten auch erklären, warum es schwer ist, gute Algorithmen für diese zu machen Operationen, aber keine Notwendigkeit, in die Mathematik zu bringen, verwenden Sie einfach Sachen wie Bienen und Blumen)
Abfragepläne lesen / verstehen
Wenn sie bereits mit Modellierung, Normalisierung und SQL vertraut sind, dann ist das Verständnis der Grundlagen der Optimierung der beste nächste Schritt. Ohne das sind alle anderen Fähigkeiten nutzlos. Nach diesen ersten drei Themen treffen die Reifen auf die Straße.
Optimierung von Abfragen. Das ist so ziemlich alles, was das Management in Bezug auf unser DBMS hier beschäftigt. Entweder arbeitet die DB gut oder sie arbeitet aufgrund einer Abfrage, die an einer nicht indizierten Spalte teilnimmt, langsam. Oder unsere nicht standardmäßigen Datenbankeinstellungen bewirken, dass der Ausführungsplan einen fehlerfreien Index ignoriert. Das sind die Dinge, die Manager wirklich dazu bringen, den Schlaf zu verlieren (weil ihre Manager sie um 3 Uhr morgens anrufen) und dann die DBAs anruft, was sie dazu bringt, Schlaf zu verlieren.
Bearbeiten: Auch, wie man Risiko vermeidet. Müssen Sie einen Index für eine Tabelle mit vielen I / O neu erstellen? Ist es ein Produktionsserver? Mach es während eines Wartungsfensters. Ändern einer TCP-Stack-Einstellung auf Betriebssystemebene? Tun Sie es nicht auf einem Produktionsserver. Testen Sie es auf einer wertlosen Maschine und führen Sie es während der Produktion während eines Wartungsfensters durch. Der andere Teil der Risikovermeidung ist ein laufendes Backup. Sichern Sie Ihre Datendateien ist gut, aber Redundanz ist besser. Wir haben Dataguard (Oracle) auf einem lokalen Computer und einem externen Computer laufen, so dass wir sofort auf einen wechseln können, wenn dieser ausfällt. Und es geht runter, und es wird in Zukunft wieder untergehen. Wenn es ausfällt, drängen sich zuerst mein Manager, sein Manager und der Manager seines Managers um den DBA-Würfel und fragen, wann die Seite wieder verfügbar sein wird. Mit unserem Dataguard-Setup bittet er den Manager um einen Wechsel und voila, fertig. Die Site ist gesichert.
Wie wäre es mit Informationen zum Aufbau eines Data Warehouse wie Denormalisierung (intentional), Faktentabellen und allgemeinen Dimensionen?
XML-Datenbanken waren ein Merkmal des fortgeschrittenen Datenbankkurses, den ich gemacht habe. Kann jetzt aber geschmacklos sein?
Ich mag dein Konzept, sie zu lehren, ein Front-End zu bauen. Das ist offensichtlich der Schlüssel. Wie wäre es mit einer Abdeckung des objektrelationalen Mappings: was es ist, warum es verwendet wird und ein oder mehrere gängige Frameworks.
Wenn es Menschen gibt, mit denen ich in der Zukunft arbeiten würde, würde ich mir wünschen, dass sie Respekt vor dem relationalen Datenmodell haben und wie es Geschäftsregeln und Geschäftsbedingungen richtig modellieren kann.
Versuchen Sie, den Kurs mit der festen Überzeugung zu verlassen, dass ein gutes Datenmodell und strenge Einschränkungen entscheidend sind, um die Vorteile eines dbms zu nutzen.
Zu viele Leute betrachten die Datenbank als nur eine weitere Flatfile-API für die Datenpersistenz.
Viele der DBAs, mit denen ich konfrontiert bin, haben wenig Ahnung von der Anwendungsentwicklung. Daher übersehen sie Probleme wie Schemaversionskontrolle, Testdaten und Datenversionierung. Sie können auch die Datenmodellierung diskutieren (z. B. Ссылка ). Wie wäre es mit hierarchischen Modellen (dh Eltern-Kind-Beziehungen), Business Intelligence Data Mining oder Data Warehousing? Wie wäre es mit dem Erstellen von virtuellen Maschinen, um mehr Tests zu ermöglichen?
Tags und Links database