Il 0% ha trovato utile questo documento (0 voti)
4 visualizzazioni6 pagine

Informatica Database

Il documento fornisce una panoramica sui database e i sistemi di gestione dei database (DBMS), descrivendo le loro caratteristiche e l'architettura a 3 livelli. Viene inoltre spiegato il concetto di schema concettuale e schema ER, insieme ai principi dell'algebra relazionale e delle lingue SQL, inclusi DDL, DML e QL. Infine, si discute la normalizzazione dei dati, l'integrità referenziale e l'uso di PHP per l'accesso e la manipolazione dei dati nei database.

Caricato da

ricky48489a
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)
4 visualizzazioni6 pagine

Informatica Database

Il documento fornisce una panoramica sui database e i sistemi di gestione dei database (DBMS), descrivendo le loro caratteristiche e l'architettura a 3 livelli. Viene inoltre spiegato il concetto di schema concettuale e schema ER, insieme ai principi dell'algebra relazionale e delle lingue SQL, inclusi DDL, DML e QL. Infine, si discute la normalizzazione dei dati, l'integrità referenziale e l'uso di PHP per l'accesso e la manipolazione dei dati nei database.

Caricato da

ricky48489a
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

🔹 1.

Database, DBMS e architettura a 3 livelli


▶ Cos'è un database?

Un database è un insieme organizzato di dati, strutturati secondo uno schema preciso, con
lo scopo di essere facilmente accessibili, gestibili e aggiornabili. Viene utilizzato in moltissimi
ambiti: banche, e-commerce, scuole, ospedali ecc.

▶ Cos'è un DBMS?

Il DBMS (Database Management System) è il software che gestisce il database. Esso


fornisce strumenti per:

●​ creare, modificare e cancellare strutture di dati (tabelle, viste, ecc.);​

●​ inserire, aggiornare, cancellare e interrogare i dati;​

●​ garantire sicurezza, integrità, accesso simultaneo e recupero in caso di guasti.​

Esempi di DBMS: MySQL, PostgreSQL, Oracle, Microsoft SQL Server.

▶ Caratteristiche principali di un DBMS:

●​ Indipendenza dei dati: i programmi non dipendono dalla struttura fisica dei dati.​

●​ Controllo sulla concorrenza: più utenti possono accedere contemporaneamente.​

●​ Backup e ripristino: sistemi automatici di salvataggio dei dati.​

●​ Integrità dei dati: vincoli che assicurano la correttezza delle informazioni.​

●​ Sicurezza: gestione degli accessi (permessi, utenti, ruoli).​

▶ Architettura a 3 livelli:

1.​ Livello interno: come i dati sono fisicamente memorizzati (indici, file).​

2.​ Livello concettuale: descrive la struttura logica dell’intero database (relazioni,


vincoli, domini).​

3.​ Livello esterno: viste personalizzate per l’utente o l’applicazione, nasconde la


complessità.​
🔹 2. Schema concettuale, schema ER e derivazione
dello schema logico
▶ Schema concettuale

È una rappresentazione ad alto livello dell’organizzazione dei dati. È indipendente dal tipo di
DBMS e descrive le entità, le relazioni e i vincoli.

▶ Schema ER (Entity-Relationship)

È il modello più usato per descrivere lo schema concettuale. Si disegna con un


diagramma ER, dove:

●​ Entità: oggetti o concetti del mondo reale (es. Studente, Corso).​

●​ Attributi: caratteristiche dell'entità (es. nome, matricola).​

●​ Relazioni: legami tra entità (es. Studente “frequenta” Corso).​

Altri elementi:

●​ Entità deboli: dipendono da un’altra entità per la loro identificazione.​

●​ Attributi composti: es. nome completo = nome + cognome.​

●​ Cardinalità: 1:1, 1:N, N:M → definiscono quanti elementi possono partecipare alla
relazione.​

▶ Derivazione dello schema logico (relazionale)

Dal diagramma ER si passa allo schema logico relazionale, dove ogni entità diventa una
tabella:

●​ Gli attributi diventano colonne​

●​ La chiave primaria identifica univocamente una riga​

●​ Le relazioni N:M diventano tabelle a parte con due chiavi esterne​

●​ Le relazioni 1:N si risolvono con una chiave esterna sul lato N​


🔹 3. Algebra relazionale e SSQL
▶ Algebra relazionale

È un linguaggio formale usato per esprimere operazioni sui dati nelle tabelle. Le principali
operazioni sono:

●​ Selezione (σ): restituisce le righe che soddisfano una condizione.​


Esempio: σ(età > 18)(Studenti)​

●​ Proiezione (π): restituisce solo alcune colonne.​


Esempio: π(nome, cognome)(Studenti)​

●​ Join: combina due tabelle sulla base di un attributo comune.​

●​ Unione, intersezione, differenza: operazioni tra insiemi.​

●​ Rinominazione (ρ): cambia nome a tabelle o attributi​

▶ SSQL (Simple SQL)

È una forma semplificata di SQL che si concentra su SELECT, WHERE, ecc.​


Esempio:

sql
CopiaModifica
SELECT nome FROM Studenti WHERE età > 18;

🔹 4. DDL, DML e QL con SQL


▶ DDL (Data Definition Language)

Serve per creare e modificare la struttura del database:

●​ CREATE TABLE, ALTER TABLE, DROP TABLE​

Esempio:

sql
CopiaModifica
CREATE TABLE Studenti (
id INT PRIMARY KEY,
nome VARCHAR(50),
età INT
);

▶ DML (Data Manipulation Language)

Serve per gestire i dati:

●​ INSERT, UPDATE, DELETE​

Esempio:

sql
CopiaModifica
INSERT INTO Studenti (id, nome, età) VALUES (1, 'Luca', 21);

▶ QL (Query Language, SELECT)

Serve per interrogare i dati con SELECT:

sql
CopiaModifica
SELECT nome FROM Studenti WHERE età >= 20 ORDER BY nome;

Si possono usare:

●​ GROUP BY, HAVING per aggregazioni​

●​ JOIN per combinare più tabelle​

🔹 5. Normalizzazione e integrità referenziale


▶ Normalizzazione

Processo che elimina ridondanze e anomalie nei dati.

●​ 1NF (prima forma normale): tutti gli attributi devono essere atomici (nessun elenco,
sottotabelle, ecc.)​
●​ 2NF: ogni attributo non chiave deve dipendere dall’intera chiave primaria​

●​ 3NF: nessun attributo deve dipendere indirettamente dalla chiave primaria​

Benefici:

●​ Migliore efficienza​

●​ Meno spazio sprecato​

●​ Minori possibilità di errore​

▶ Integrità referenziale

Garantisce che le relazioni tra tabelle siano corrette. Si usa la FOREIGN KEY per
collegare tabelle:

sql
CopiaModifica
CREATE TABLE Iscrizioni (
idStudente INT,
idCorso INT,
FOREIGN KEY (idStudente) REFERENCES Studenti(id),
FOREIGN KEY (idCorso) REFERENCES Corsi(id)
);

Esempio: non puoi iscrivere uno studente a un corso se non esistono entrambi.

🔹 6. PHP e accesso/manipolazione dati


▶ PHP

È un linguaggio di scripting lato server usato per creare pagine web dinamiche. È spesso
usato con database come MySQL.

▶ Connessione a MySQL con mysqli


php
CopiaModifica
$conn = new mysqli("localhost", "root", "", "miodatabase");
if ($conn->connect_error) {
die("Errore di connessione: " . $conn->connect_error);
}

▶ Esecuzione di query SQL in PHP


php
CopiaModifica
$sql = "SELECT nome FROM Studenti";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "Nome: " . $row["nome"] . "<br>";
}
}

▶ Prevenzione SQL Injection (con prepare)


php
CopiaModifica
$stmt = $conn->prepare("SELECT * FROM Studenti WHERE nome = ?");
$stmt->bind_param("s", $nome);
$stmt->execute();

Potrebbero piacerti anche