[S12L1] Intro Relational DB Flashcards
Was ist eine Data Persistence?
- Persistente Daten sind Daten, welche unregelmäßig abgefragt werden und nicht oft modifiziert werden
- Man kann also Vertrauen, dass die Daten vorhanden sind solange man sie nicht explizit entfernt oder modifiziert
Sind JavaScript Objects persistent oder Local Storage Key-Value Pairs?
- JavaScript Objects sind nicht persistent, da sie resetten wenn die Application geschlossen wird
- Local Storage ist Semi-Persistent, kann durch Cookies löschen gelöscht werden von Nutzer
Was ist eine Datenbank?
-Ein Platz um Daten persistent zu speichern
-
Welche Datenbankarten gibt es?
- Relationale Datenbanken (ProgresSQL, Lernen wir)
- Dokumentenbasierte Datenbanken (MongoDB)
- Graphbasierte Datenbanken
Was sind Vor- und Nachteile von dokumentenbasierten Datenbanken?
- Sehr leicht zu bootstrapen
- Für kleinere, nicht komplexe Applikationen nützlich
- Leiten zu Fehlern, wenig Übersicht und Komplexität
Was sind Vor- und Nachteile von graphenbasierten Datenbanken?
-Sind sehr gut für sehr spezielle Anforderungen an eine Datenbank
Warum sollte eine Datenbank relational sein?
- Wenn sie oft genutzt wird
- Wenn Daten effizient gemanaged werden sollen
- Forciert best Practise
- Lindy/Haben sich bewährt
- Wird als guter Skill von Personalern gesehen
Was sind die Grundprinzipien einer relationalen Datenbank?
- Tables, welche aus Rows und Columns bestehen
- Columns sind Schema der Datenbank (Wie die Daten aussehen sollen)
- Rows ist ein Entry eines Datensatzes
- Manche Datensätze sind miteinander verknüpft/related
Wie spricht man mit (relationalen) Datenbanken?
- Durch eine Sprache namens SQL (Structued Query Language)
- Über Javascript durch einen Wrapper für SQL wie knex.js
Warum sollte man SQL lernen?
- Das Leben wird einfacher, besonders beim Debuggen
- Ist ein wichtiger Skill
- Tieferes Verständnis von Knex.js und Datenbank Libraries
Ist SQL eine Programming Language?
- Nein, es ist eine Query Language
- Es gibt keine Conditionals. Schleifen oder Variablen
- Ist skalierbar und liefert nur query Data zurück
Wie sucht man in SQL nach einem speziellen Customer?
select * from Customers where customerid = 6;
select * from Customers where name= “Sascha”;
Wie inserted man Daten via SQL?
Insert into Categories (CategoryName, Description) VALUES (‘Spices, ‘Tasty Stuff’);
Wie Updated man Daten via SQL?
UPDATE Categories SET Description=’Herbs and spices’ WHERE CategoryID = 9;
Wie löscht man Daten via SQL?
DELETE FROM products WHERE ProductId=8;
Was ist Knex.js?
-Ein SQL Wrapper, welcher es erlaubt Helper Functions in JavaScript zu schreiben, welche die SQL Queries übernehmen
Welche Dateien braucht data/Knex.js?
- db-config.js (Connections Setup)
- db-helpers.js (Helfer Methoden für Queries)
- users.db3 (Leere Datei, welche eine DB Datei wird)
Ist SQL case-sensitive?
-Nein, lower und upper Case macht keinen Unterschied für die SQL Anweisungen
Wie kann man mit SQL mehrere Columndaten aus einer SQL Table bekommen?
Select productId, productName from products
Select firstname, lastname from customers
Kann man mit SQL Select mehrer Columns in der Reihenfolge die man haben möchte anfragen?
Ja, mit
-Select CustomerName, ContactName, Country, City from Customers
Liefert die Columns in der gleichen Reihe wie angefragt
Wie kann man neben den Columndaten auch einen Filter auf spezielle Datensätze filtern?
-Mit WHERE
Select ContactName, CustomerName, Country
From Customers
Where City=’Berlin’;
Wie kann man nach mehreren WHERE Row Datensätzen Filtern?
-Mit OR / AND
Select ContactName, CustomerName, Country
From Customers
Where City=’Berlin’ or Country = ‘Brazil’:
Select ContactName, CustomerName, Country
From Customers
Where Country = ‘Brazil and CustomerID > 30’:
Wie kann man Datensätze sortieren/ in Order anzeigen?
Select ContactName, CustomerName, Country
From Customers
Where City=’Berlin’ or Country = ‘Brazil’
order by contactName desc;
Wie kann man mehrere Sortierungen ausführen? (Country ascending, City descending)
-Default is ascending
Select Country, City, CustomerID, COntactName, CustomerName
From Customers
order by country, city desc
Select Country, City, CustomerID, COntactName, CustomerName
From Customers
order by 1, 2 desc
// 1 und 2 bezieht sich auf die Reihenfolge der in SELECT bezug genommenen Daten, aber ist keine Best Practise