[S12L2] DB Schema Flashcards
Was ist SQLite Studio?
-Ein GUI Programm um mit SQLite DBs zu arbeiten
Was ist eine Datenbank? (Eine Datei, Ordner, Code?)
-Hängt davon ab welches Datenbank Management System man benutzt
Was ist ein Database Management System?
- Software um Datenbanken zu erstellen und zu managen
- Das Interface zwischen Programmierer und Datenbank
- Oft abgekürzt als DBMS oder RDBMS
- SQLite, Postgres, MySQL, Oracle
Was ist SQLite?
- Eine leightweight DBMS
- Daten werden in einer einzigen Datei in Binärcode gespeichert
Wie verbindet man SQLite Studio mit der Datenbank um diese zu sehen und in der RDBMS zu managen?
-Einfach die Datei öffnen
Was ist ein Database Schema?
- Eine Blaupause der Datenbank
- Definition welche Tabllen vorhanden sind und welche Columns sie haben
- Datentypen und Constraints der Daten werden definiert(Unique etc)
Was ist ein PrimaryKey?
- In jedem Table gibt es für jede Row einen eindeutigen PrimaryKey oft als ID
- Ist dafür da um den einzelnen Datensatz zu identifizieren
Was sind Datentypen für eine Datenbank?
- String
- Number
- Float
- BLOB
Was sind Contraints?
- Einschränkungen der Daten
- Unique
- NOT NULL
Wie kann man mit SQLite Studio eine neue Datenbank erschaffen?
-Auf das + Symbol drücken
Wie könnte ein SQL Code aussehen um ein neuen Table anzulegen?
CREATE TABLE students ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT (128) UNIQUE NOT NULL, section INTEGER NOT NULL, email TEXT (128) );
Was sind Knex Migrations?
- Dateien welche die Veränderungen der Datenbank aufzeigen
- Helfen dabei das DB Schema intakt zu halten
- DB Updated werden atomar, nachvollziehbar und verhindern bugs
- Sind die git commits nur für DB Schema Updates
Wie initialisiert man eine knex datei?
knex init
Welche Angaben benötigt knex?
- client: ‘sqlite3’
- Gibt an welchen Driver für welchen Datenbanktyp benutzt werden soll um seine Sprache zu sprechen
- conection: { filename: ‘path’}
- Gibt den Pfad zur DB Datei an
Wie erstellt man eine DB Migrationsdatei mit knex?
npx knex migrate:make create-user-table
-Danach wird ein Migration Folder mit der hash datei der Migration erstellt
Was beinhaltet eine knex Migrationsdatei?
-Anweisungen welche Änderungen in dieser Migration getätigt worden sind und mit welchen Query geup oder gedowngradet werden kann
WIe kann eine Migration mit knex ausgeführt werden?
npx knex migrate:latest
Wie kann man mit knex eine Migration downgraden?
npx knex migrate:rollback
Was sind knex seeds?
-Beispieldaten mit denen man die Datenbank bereits befüllen kann
Wie erstellt man eine knex seed Datei?
npx knex seed:make 01-users
Haben Seeds auch wie Migrations einen Timestamp im Namen und sind sortiert?
Nein, man muss durch den Dateinamen die Sortierung selber machen:
- 01-users
- 02-users
Was ist der Unterschied in seeds zwischen .del() und .truncate()
-truncate() setzte ebenfall die IDs zurück
Wie führt man eine population der Datenbank mit einem knex seed aus?
npx knex seed:run
Was bedeutet Schema im Zusammenhang mit Datenbank?
-Struktur der Datenbank (Tables, Columns)