Termini e tecnologie

Database

Database Management System. Un Database è quindi un sistema che permette di salvare i dati (informazioni che il programma ha bisogno di salvare da qualche parte per poter funzionare). Il DB ci consente di fare le operazioni CRUD – Create – Read – Update – Delete. Utilizzando il sistema a tabelle.

Riepilogo:

Quando facciamo login su FB > richiesta HTTP al server > si attiva linguaggio backend (in questo caso Fb utilizza php) che chiede al DB tramite il linguaggio SQL, i dati relativi all’utente (questa operazione si chiama query = interrogazione) >  riceve una risposta e il linguaggio backend verifica che i dati inseriti siano corretti > risposta HTTP al client.

Database Relazionali (SQL):

SQL = Structured Query Language è un linguaggio (non di programmazione) di interrogazione per chiedere al database.

Esempio: immaginiamo un database di utenti. creiamo una tabella chiamata users. Ogni utente ha un ID cioè un codice identificativo, (chiave primaria) questi utenti possono creare dei post (creiamo tabella post) ogni post avrà un ID (chiave primaria) ma i post sono creati dagli utenti quindi c’è una relazione.

Questa relazione non è altro che un riferimento.

Relazione= riferimento es. user_post (chiave esterna)

Quindi possiamo dire che i ‘collegamenti tra le tabelle del DB  sono le relazioni’.

semplificando: SQL = relazioni tra tabelle.

Database Non Relazionali (NoSQL):

Not only SQL. Database NON SOLO SQL cioè che vanno oltre le relazioni tra tabelle.

4 famiglie di DB NoSQL:

  • Key-Value

Un DB dove abbiamo una tabella con due colonne: chiave e valore. Molto veloce in lettura perchè usa memoria RAM ovvero non salva nell’hard disk. Più famoso si chiama REDIS.

  • Wide-Column

Sono dei DB dove ci sono poche righe ma tante colonne. Molto lento. Utilizzato solo in settori particolari. Cassandra più famoso

  • a Grafo

Le relazioni vengono espresse con ‘cerchi’ chiamati vertici e frecce chiamate archi. Adatto ai social network. Perchè ci sono tante relazioni. Il più conosciuto è Neon4j.

  • a Documenti

organizzato con JSON. Può permettere di creare oggetti negli oggetti. Il database più famoso basato su oggetti è MongoDB.

Backend-Framework:

Backend classico > restituisce codici HTML. I classici siti internet.

Backend moderno > genera REST API che restituiscono dei file JSON.

Il framework è come una cassetta degli attrezzi.

Backend-Framework utilizzati nello sviluppo lato server. Quindi o stiamo creando un classico sito internet oppure delle REST API. I B-F ci offrono dei vantaggi:

  1. la Struttura:  organizzazione in cartelle. Tenere separati i file per destinazione d’uso, separare le entità dei codici. Questa suddivisione prende il nome di MVC.  Avremo quindi una cartella Model (dati = DB), View (vista = HTML), Controller (codici effettivi del linguaggio backend che stiamo usando).
  2. Routing = instradamento. Esempio un sito come google.it ha diverse pagine index, gmail, etc. queste sono delle rotte ti portano su diverse destinazioni. dal punto di vista del server possiamo gestire queste rotte per ogni rotta creando un file dentro al server. es index.html, gmail.php, page.jsp… Per ogni rotta c’è un file effettivo sul server questo concetto viene superato dai framework perchè creano una mappa dinamica gestita dal codice in base a GET e POST. Per esempio se atterro tramite chiamata GET sulla pagina login faccio visualizzare qualcosa come un form, quindi reindirizzo. Se invece ci arrivo tramite POST instraderò in un altro percorso, rotta.
  3. Template Engine = abbiamo detto che la cartella view è formata da soli file html. Potrebbe nascere esigenza di creare dinamicità all’interno delle viste. Esempio se devo stampare il nome utente nella pagina per mostrare chi è loggato in quel momento. Per farlo dovremmo passare delle variabili da controller a view. Ovvero da backend a file html, ma non è possibile farlo per non mischiare codici. visto molto male nella programmazione backend. Quindi si usano motori per potenziare codici html.
  4. Error Handling = i framework ti danno a disposizione strumenti per gestire al meglio gli errori.
  5. Permessi = Può capitare che alcune rotte sono solo per tipologie di utenti. Es. solo per utenti a pagamento, amministratori. Di solito i backend framework ti mettono a disposizione delle opzioni, strumenti per gestire permessi alle singole pagine.
  6. Test automatizzati

Rest API:

API Application Programming Interface. Un interfaccia per accedere ad un’ applicazione tramite la programmazione. Attenzione applicazione non deve farci pensare all’app per smartphone ma si intenrde il backend di un sito internet.

Quindi semplificando un modo per accedere a un sito tramite linguaggi di programmazione.

BACKEND CLASSICO: browser > server > restituisce html,css,js che i browser capiscono.

BACKEND MODERNO: Nuovi device come app native, smartwatch, frontend framework fanno comunque chiamate ai server MA non capiscono lo stesso linguaggio del browser. Hanno bisogno di codice JSON quindi esigenza di creare API. (Un url apposito per le API, Endpoint, che capiscono solo quelle applicazioni).

Dato che non possiamo quindi parlare di sito internet ma web services o servizi web. Semplificando ulteriormente sono un modo (interfaccia, url) per accedere a un web services tramite linguaggi di programmazione.

App native e ibride:

IDE e editor:

Stack:

Programmazione ad oggetti OOP:

GIT:

CMS:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *