Il 0% ha trovato utile questo documento (0 voti)
15 visualizzazioni4 pagine

Database

Il documento fornisce una panoramica sui database, descrivendo la loro struttura, il ruolo dei DBMS, e concetti chiave come l'algebra relazionale, SQL injection, e normalizzazione. Viene inoltre trattato il funzionamento di schemi E/R, la funzione floor, SQLite, socket, REST, API e programmazione asincrona. Questi elementi sono fondamentali per comprendere la gestione e l'interazione con i dati in contesti informatici.

Caricato da

nivoloniero
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
15 visualizzazioni4 pagine

Database

Il documento fornisce una panoramica sui database, descrivendo la loro struttura, il ruolo dei DBMS, e concetti chiave come l'algebra relazionale, SQL injection, e normalizzazione. Viene inoltre trattato il funzionamento di schemi E/R, la funzione floor, SQLite, socket, REST, API e programmazione asincrona. Questi elementi sono fondamentali per comprendere la gestione e l'interazione con i dati in contesti informatici.

Caricato da

nivoloniero
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 4

Database

Un database è una raccolta organizzata di dati, che consente di memorizzare, gestire e


recuperare informazioni in modo efficiente. I dati in un database sono strutturati in tabelle,
dove ogni tabella è composta da righe (o record) e colonne (o campi). Le tabelle possono
essere correlate tra loro attraverso chiavi primarie e chiavi esterne. I database possono
essere categorizzati in vari tipi, come relazionali, NoSQL, grafici, e altri, a seconda della loro
struttura e del modello di gestione dei dati.

DBMS (Database Management System)

Il DBMS è un software che fornisce strumenti per creare, leggere, aggiornare e cancellare
dati all'interno di un database. Gestisce l'accesso ai dati garantendo sicurezza, integrità, e
coerenza. Un DBMS offre funzionalità come il controllo delle transazioni, che assicura che
tutte le operazioni di un'unità di lavoro siano completate correttamente o annullate in caso di
errore. Esempi di DBMS includono MySQL, PostgreSQL, Oracle Database, Microsoft SQL
Server e SQLite.

Algebra Relazionale

L'algebra relazionale è un linguaggio formale per descrivere le operazioni sui dati nei
database relazionali. Include un insieme di operazioni che possono essere combinate per
eseguire query complesse. Alcune operazioni principali sono:

●​ Selezione (σ): Filtra le righe di una tabella in base a una condizione specifica. Ad
esempio, σ(cognome = 'Rossi')(Dipendenti) seleziona tutti i dipendenti con cognome
'Rossi'.
●​ Proiezione (π): Estrae specifiche colonne di una tabella. Ad esempio, π(nome,
cognome)(Dipendenti) restituisce una tabella con solo i nomi e i cognomi dei
dipendenti.
●​ Unione (∪): Combina le righe di due tabelle con lo stesso schema, eliminando
duplicati. Ad esempio, Dipendenti ∪ ExDipendenti.
●​ Intersezione (∩): Restituisce le righe comuni a due tabelle. Ad esempio, Dipendenti
∩ ExDipendenti.
●​ Differenza (−): Restituisce le righe di una tabella che non sono presenti in un'altra.
Ad esempio, Dipendenti − ExDipendenti.
●​ Join (⨝): Combina righe di due tabelle basate su una condizione comune. Ad
esempio, Dipendenti ⨝ Dipartimenti per combinare dipendenti con i loro rispettivi
dipartimenti.

SQL Injection

L'SQL Injection è una tecnica di attacco in cui un attaccante inserisce codice SQL malevolo
in un input di un'applicazione web, con l'obiettivo di manipolare il database. Questo avviene
quando l'input dell'utente non è correttamente validato o sanitizzato. Un esempio di SQL
Injection è fornire un input come 1; DROP TABLE Utenti; in una query che non è
correttamente protetta, causando la cancellazione della tabella Utenti. Le contromisure
includono l'uso di query preparate, ORM (Object-Relational Mapping) e validazione accurata
degli input.

Normalizzazione

La normalizzazione è il processo di organizzazione dei dati in un database per ridurre la


ridondanza e migliorare l'integrità dei dati. Il processo implica la suddivisione delle tabelle in
tabelle più piccole e l'eliminazione di dati duplicati. Ci sono diverse forme normali:

●​ Prima Forma Normale (1NF): Richiede che tutti i campi contengano valori atomici e
ogni valore in una colonna sia dello stesso tipo.
●​ Seconda Forma Normale (2NF): Richiede che sia in 1NF e che ogni attributo non
chiave sia completamente dipendente dalla chiave primaria.
●​ Terza Forma Normale (3NF): Richiede che sia in 2NF e che ogni attributo non
chiave sia indipendente da ogni altro attributo non chiave (nessuna dipendenza
transitiva).
●​ Boyce-Codd Normal Form (BCNF): Una versione più rigorosa della 3NF, che
elimina alcune anomalie non gestite dalla 3NF.

Schemi E/R (Entità-Relazione)

Un schema E/R è una rappresentazione grafica delle entità in un sistema e delle relazioni
tra loro. Gli elementi principali sono:

●​ Entità: Oggetti del mondo reale che possono essere distinti da altri oggetti. Ad
esempio, Studente e Corso.
●​ Attributi: Proprietà che descrivono un'entità. Ad esempio, Nome, Cognome,
Matricola per l'entità Studente.
●​ Relazioni: Associazioni tra entità. Ad esempio, Iscrizione tra Studente e
Corso.

Floor

La funzione floor restituisce il massimo intero che è minore o uguale a un dato numero. È
comunemente usata per arrotondare verso il basso i numeri decimali. Nei linguaggi di
programmazione, questa funzione è spesso disponibile nelle librerie matematiche. Ad
esempio, in Python, math.floor(3.7) restituisce 3 e math.floor(-2.3) restituisce -3.

SQLite

SQLite è un DBMS leggero e autoconclusivo che non richiede un server separato. È


utilizzato frequentemente in applicazioni mobili, desktop e embedded grazie alla sua
semplicità e portabilità. SQLite memorizza l'intero database in un singolo file, rendendolo
facile da gestire. Nonostante sia leggero, supporta gran parte delle funzionalità SQL di un
DBMS completo, come transazioni, subquery, e viste.

Socket
Un socket è un endpoint di comunicazione utilizzato per inviare e ricevere dati attraverso
una rete. Viene utilizzato per stabilire una connessione tra due dispositivi su una rete e
permette lo scambio di dati. Esistono due tipi principali di socket:

●​ Socket Stream (TCP): Fornisce una connessione affidabile e orientata alla


connessione. Assicura che i dati arrivino nell'ordine corretto e senza perdita.
●​ Socket Datagram (UDP): Fornisce una connessione senza connessione e meno
affidabile. I pacchetti di dati possono arrivare in qualsiasi ordine e possono essere
persi.

REST (Representational State Transfer)

REST è uno stile architettonico per la progettazione di servizi web. I servizi RESTful
utilizzano il protocollo HTTP per comunicare e operare su risorse identificate da URL. Le
operazioni principali in REST sono:

●​ GET: Recupera una risorsa.


●​ POST: Crea una nuova risorsa.
●​ PUT: Aggiorna una risorsa esistente.
●​ DELETE: Cancella una risorsa.

REST è basato su statelessness, meaning that each request from a client to a server must
contain all the information needed to understand and process the request.

API (Application Programming Interface)

Un'API è un insieme di regole che permette a un'applicazione di interagire con un'altra


applicazione o servizio. Le API definiscono come le richieste e le risposte devono essere
formattate e quali operazioni possono essere eseguite. Le API sono essenziali per la
comunicazione tra software diversi, facilitando l'integrazione e l'interoperabilità. Le API
possono essere pubbliche, private o partner, a seconda dell'accessibilità e dell'utilizzo
previsto.

Programmazione Asincrona

La programmazione asincrona consente l'esecuzione di operazioni in modo non


bloccante, permettendo al programma di continuare a funzionare mentre si attende il
completamento di un'operazione. Questo è particolarmente utile per operazioni I/O come
l'accesso a un database o a una rete. Tecniche comuni di programmazione asincrona
includono:

●​ Callback: Funzioni passate come argomenti ad altre funzioni e chiamate al


completamento di un'operazione.
●​ Promise: Oggetti che rappresentano il completamento futuro (o il fallimento) di
un'operazione asincrona.
●​ Async/Await: Sintassi che permette di scrivere codice asincrono in modo simile a
quello sincrono, migliorando la leggibilità.
Riassunto

1.​ Database: Raccolta organizzata di dati strutturata in tabelle.


2.​ DBMS: Software per gestire database, fornendo strumenti per operazioni CRUD
(Create, Read, Update, Delete).
3.​ Algebra Relazionale: Linguaggio formale per operazioni su dati nei database
relazionali.
4.​ SQL Injection: Tecnica di attacco che sfrutta vulnerabilità nelle query SQL.
5.​ Normalizzazione: Processo di organizzazione dei dati per ridurre la ridondanza.
6.​ Schemi E/R: Rappresentazione grafica delle entità e delle relazioni in un sistema.
7.​ Floor: Funzione che arrotonda un numero verso il basso all'intero più vicino.
8.​ SQLite: DBMS leggero e autoconclusivo che memorizza i dati in un singolo file.
9.​ Socket: Endpoint di comunicazione per l'invio e la ricezione di dati attraverso una
rete.
10.​REST: Stile architettonico per servizi web che utilizza HTTP per operare su risorse.
11.​API: Insieme di regole che permette l'interazione tra diverse applicazioni.
12.​Programmazione Asincrona: Tecnica che permette l'esecuzione non bloccante di
operazioni, migliorando l'efficienza e la reattività.

Spero che queste spiegazioni dettagliate siano utili! Se hai ulteriori domande o necessiti di
chiarimenti, fammelo sapere.

Potrebbero piacerti anche