Database programmering på Mercantec

Vi har database kurser på 3 af vores hoved forløb H1, H2 og H3. De handler alle sammen omkring SQL, men kan have dele fra andre database strukturer. Der er en klar ændring fra hvert hoved forløb og de er opsummeret her.

Der kan være lidt blanding alt efter størrelsen på holdet og den generelle dygtighed i klassen. Det er en del af de projekt forløb som er på H1 - H3

H1 - Grundlæggende SQL

Her får vi kendskab til SQL. Ofte har I aldrig rørt SQL før, så vi starter selvfølgelig helt fra bunden! Der bliver brugt

Vi bruger det i vores projekt - H1 - Markedsplads. Vi laver en simpel database struktur, som skal integreres med vores hjemmeside.

Her bruger vi ofte ADO.NET til at forbinde vores C# kode til vores database. Ofte er det en MSSQL database, når vi snakker Cloud er det nemmest at finde en Postgres database.

H2 - Database Design

På H2 har vi et 10 ugers projektforløb H2 - Booking side. Her bruger vi den viden som vi fik på H1 til at kunne implementere en database i vores projekt og bruge den til vores applikation. Her bruger vi igen ADO.NET til at lave sql-queries mod en database, enten en lokal MSSQL eller en som bliver hostet igennem Microsoft Azure. Alternativt bruger vi også Postgres, da det er langt nemmere at finde Cloud-løsninger til.

H3 - Object-Relational Mapping (ORM)

På H3 har vi det sidste officielle database kursus, det betyder ikke at det er sidste gang at I skal opsætte en database eller lave en backend som er implementeret op mod en database. Fra dette kursus og frem forventer vi at I har erfaring og selvstændighed til selv at kunne opsætte og håndtere database siden af jeres projekt.

Vi tager det sidste skridt og bliver bekendt med ORM - Object Relational Mapping, mere konkret Entity Framework. Her bruger vi det under følgende projekt H3 - IoT og Serverside

Der findes mange andre ORMer, fx SQLAlchemy til Python og Prisma eller Sequelize til JavaScript

Storset alle ORMer virker til de forskellige databaser, såsom Postgres, MySQL, MSSQL og i nogle tilfælde NoSQL database såsom Firestore og MongoDB.

Hvorfor ikke ORM - Object Relational Mapping fra H1 eller H2?

Alt information man finder på nettet peger altid over i at man skal bruge en ORM, såsom Entity Framework. Hvorfor bruger vi så ikke bare det i stedet for ADO.NET?

En ORM er et abstraktions niveau over SQL og andre database typer. Det betyder at vi ikke for trænet, vores evner til at bruge en database på den mest basis måde. Når vi bruger en ORM, skal vi ikke tænke på alt det teori som vi har på H1 og H2. Det giver os en bedre indgangsvinkel til at bruge en ORM, fordi vi har kendskab til det problemer de løser!

ORM kommer heller ikke uden fejl, det er generelt et trade-off som man tager. Vi mister kontrol og afgiver det til et framework, der bliver ofte ikke lavet efficiente SQL-kommandoer som vi ellers ville have fuld kontrol over med et mere manuelt framework såsom ADO.NET.

I målpindene er det også specificeret at I først skal have kendskab til det på database 3, som I har under H3 - IoT og Serverside.

Mere end bare SQL

Der findes mange forskellige typer af databaser - vi har prøvet at sortere dem ind efter deres kompleksitet herunder

Key-value databaser : Redis

Key-value er den simpleste måde vi kan designe en database - det virker meget som en dictionary i Python eller C#, måske også hen mod et JavaScript objekt.

Den mest populære er Redis som også har mulighed for en del mere end bare key-value.

Redis tilbyder meget mere end bare key-value. Der er både JSON, som er ligesom vores NoSQL databaser, RedisGraph som har samme funktionalitet som vores Graph databaser. RedisSearch og mange flere.

Vi går ikke i dybden med dem her, men alle paradigmerne bliver beskrevet længere nede!

Untitled

Untitled

Wide Column: Cassandra