Lär dig SQL

Back to All Courses

Lesson 14

Avslut

by Ted Klein Bergman

Nu ska ni ha den kunskap som krävs för att för att göra Tweeter fullständigt i sin begränsade kapacitet. Om något inte går som det ska så finns alla svar i filen Tweeter/app/database.py som du kan tjuvtitta på för att fullständiga sidan. Det går också att ändra importen i Tweeter/app/tweeter.py från from database_exercise import... till from database import ... för att se hur hemsidan fungerar i sitt slutgiltiga stadium.

Med det du har lärt dig ska du ha grunderna för att skapa och använda databaser i mindre projekt som en egen liten hemsida eller ett spel. Det finns dock fortfarande mycket som inte tagits upp i kursen som är värt att titta vidare på för att säkert och effektivt kunna arbeta med större databaser med fler tabeller tillsammans med andra människor.

Att titta vidare på

Samarbete har inte tagits upp. När flera människor arbetar med en databas uppkommer problem med säkerhet och synkronisering. En sak vi tittade på inom ämnet samarbete var transaktioner, som hjälper till att synkronisera användandet av en databas mellan flera personer. För att göra databasen mer säker bör man skapa olika users med olika privileges och views. Vad det betyder är att varje användare får en inloggning till databasen (user), med olika rättigheter (privileges) där vissa bara får hämta data från databasen, vissa får redigera, vissa får skapa nya tabeller och så vidare. Sedan kan användare tilldelas olika representationer av databasen (views) som begränsar exakt vilken data de kan komma åt.

Design har inte heller tagits. Vår databas har varit väldigt liten vilket gör att vi inte har behövt tänka alltför mycket hur vi konstruerar den. När databaser blir stora med många tabeller måste man däremot börja tänka på hur allt går ihop för att undvika anomalies och se till att man så effektivt som möjligt kan komma åt datan. Denna process kallas normalization och är tätt kopplat till functional dependencies. Dessutom används ofta ER-diagram för att underlätta designandet och ge en visuell representation av databasen. Relational algebra kan också vara bra att titta på. Det är en matematisk representation av queries och operationer som kan göras mellan tabeller.

ORM (Object-Relation Mapping) är en vanlig teknik som används inom applikationer. Det är en teknik där man använder funktioner och klasser i ett programmeringsspråk och låter dem generera SQL-kod åt en. Detta är bra då det blir lättare att synkronisera databasen med applikationen. I denna kurs har vi inte använt oss av ORM då det skulle vara en väldigt dålig SQL-kurs om vi använde objekt som generera SQL-kod åt oss. Dock är det en standard som används när man bygger upp en back-end.