Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
modul:m245:learningunits:lu03:theorie:01 [2025/03/26 12:35] vdemirmodul:m245:learningunits:lu03:theorie:01 [2025/03/26 12:54] (aktuell) vdemir
Zeile 1: Zeile 1:
 ====== LU03c - Projekt 1: freeDB ====== ====== LU03c - Projekt 1: freeDB ======
 +
 +===== Einleitung =====
 +Der Grundgedanke des Innovationsmodul II ist es eine Innovation vorzubereiten und den Nachweis zu bringen, dass diese grundsätzlich möglich ist. Gemäss Definition ist unter dem Begriff Innovation //eine neue Idee/Produkt// oder //eine neue, bessere Zusammensetzung von Komponenten oder Prozessen// zu verstehen.
 +
 +===== Ausgangslage =====
 +Datenbanken gibt es sehr viele auf dem Markt, die meisten sind bezüglich der Lizenzierung für Privatpersonen kostenlos. Zudem gibt das Thema //Offenlegung des Sourcecodes// immer wieder Grund zur Diskussion bei Unternehmen.
 +
 +Dieses Projekt soll das Prinzip der Datenbank neu denken und die Themen //Lizenzierung// und //Openbsource//" neu definieren. D.h. das Projekt ist als OpenSource-Projekt durchzuführen, was bedeutet, dass auch Unternehmen keine Lizenzgebühren zahlen müssen.
 + 
 +===== Projektauftrag freeDB =====
 +//Re-Programmieren// Sie die CRUD-Operationen einer Datenbank unter Verwendung eines Standard-Befehlssatzes einer Programmier- oder Scriptsprache (Python, BASH, ...). 
 +
 +Achten Sie darauf, dass jedes Teammate für einen ASPEKT der CRUD-Operationen zuständig ist. Sprich Person A erledigt das CREATE, eine andere Person das READ, etc.
 +
 +===== Befehlsreferenz C = Create =====
 +  - CREATE Table bzw. CREATE TABLE IF NOT EXITSTS
 +    - Separate Files anlegen für mit Tabellenstruktur und Tabelleninhalt, erkennbar an der Endung
 +    - Falls File vorhanden ist  entsprechende Fehlermeldungen ausgeben lassen
 +  - INSERT INTO TABLE
 +    - Prüfen, ob Tabellen und genannten Spalten vorhanden sind.
 +    - Zeile am Ende des Files dranhängen
 +    - Gesamten Fileinhalt Sortierten nach der 1. Spalte (ID)
 +
 +===== Befehlsreferenz R = Read =====
 +  - SELECT count(*)
 +    - AWK auf Datenfile
 +    - Alternativ wc (Wordcount) verwenden
 +  - SELECT * FROM
 +    - Fehlermeldung, wenn Tabellen nicht existiert
 +    - Gesamter Inhalt der Tabelle wird ausgegeben
 +  - SELECT nach Spalten
 +    - SELECT Spalte1, Spalte2, Spalte3 FROM Tabelle
 +    - Wenn Spalte nicht existiert, Fehlermeldung.
 +  - SELECT mit WHERE
 +    - SELECT * FROM Tab WHERE ID=15
 +    - GREP kombiniert mit AWK
 +    - Spalte auswählen, die gefiltert werden soll und darauf den GREP anwenden  RegEx
 +    - Die betroffene Zeile ausgeben lassen
 +  - SELECT mit JOIN (zweiter Entitätentyp)
 +    - Gemeinsamer Schlüssel zwischen zwei Tabellen
 +    - Treffermenge beider Tabellen ausgeben gemeinsam Ausgeben lassen
 +  - SELECT mit Bedingung/WHERE (z.B. Gehalt > 10'000)
 +    - SELECT MIT AWK
 +    - Spaltenwert muss Vergleichbar sein
 +  - SELECT mit LIKE
 +    - SELECT MIT AWK und GREP
 +
 +===== Befehlsreferenz U = Update =====
 +  - UPDATE TABLE WHERE ID=??
 +    - Zeile finden herauslesen
 +    - Mittels RegEx Zeile aktualisieren
 +  - ALTER TABLE
 +    - In Tabellendefinition prüfen, ob die Spalte schon vorhanden ist
 +    - Wenn nicht, Spalte am Ende anhängen
 +    - Datenfile mit Leeren Kommas füllen am Ende auffüllen
 +===== Befehlsreferenz D = Delete =====
 +  - DELETE FROM TABLE
 +    - AWK mit GREP kombiniert 
 +    - grep -v  suchmuster originaldatei > tempdatei
 +    - mv tempdatei originaldatei
 +  - DROP TABLE
 +    - rm-Befehl
 +
 +===== Zusatz =====
 +  - INDEXIERUNG (Sortierung der Tabelleninhalte)
 +    - Select auf eine String-Spalte, die unsortiert ist (Like «demi%)
 +    - Schattentabellen mit entsprechend Sortiert Spalte anlegen
 +    - Gleiche Abfrage auf die Schattentabelle
 +    - Zeit vor der Indexierung und Zeit nach der Indexierung stoppen
 +    - https://wiki.ubuntuusers.de/Skripte/Stoppuhr/ 
 +  - Fonetische Suchen via Soundex 
 +    - Hierbei geht es eine Klang-Suche anstatt nach Wörtern. 
 +    - SoundEx ermöglicht das Auffinden von Inhalten mit anderen Schreibweisen.
 +    - https://gist.github.com/livibetter/1997957 
 +    - https://de.wikipedia.org/wiki/Soundex
 +
 +
 +
 +
 +
 +
 +
  • modul/m245/learningunits/lu03/theorie/01.1742988902.txt.gz
  • Zuletzt geändert: 2025/03/26 12:35
  • von vdemir