Estratto del documento

Formattazione del testo con tag HTML

(Cognome, Nome)) Interrogazione: SELECT: Istruzioni SELECT con una sola relazione nella clausola FROM permettono di realizzare: selezioni, proiezioni, ridenominazioni. Con più relazioni nella FROM si realizzano join (e prodotti cartesiani). Le espressioni SQL sono dichiarative e noi ne stiamo vedendo la semantica. In pratica, i DBMS eseguono le operazioni in modo efficiente, ad esempio: eseguono le selezioni al più presto, se possibile, eseguono join e non prodotti cartesiani. La capacità dei DBMS di "ottimizzare" le interrogazioni rende (di solito) non necessario preoccuparsi dell'efficienza quando si specifica un'interrogazione. È perciò più importante preoccuparsi della chiarezza (anche perché così è più difficile sbagliare...) LIKE: select * from persone where nome like 'A_d%' Ordinamento del risultato: select nome, reddito from persone where eta < 30 order by nome Sostituzione

nome Colonna (ridenominazione risultato):select nome as nome,from personawhere 10<eta<30(oppure: where true)Operatori aggregate: COUNTselect *from Paternitawhere Padre = 'Franco'DELETE:DELETE FROM Tabella[ WHERE Condizione ]DELETE FROM Persone WHERE Eta < 35CREA UNA VISTA:create view NomeVista [ ( ListaAttributi ) ] as SelectSQL [ with [ local | cascaded ] check option ]create view ImpiegatiAmmin(Nome, Cognome, Stipendio) asselect Nome, Cognome, Stipendiofrom Impiegatowhere Dipart = 'Amministrazione' andStipendio > 10INTERROGAZIONE DI UNA VISTA:select * from ImpiegatiAmminselect Nome, Cognome, Stipendiofrom Impiegatowhere Dipart = 'Amministrazione' and Stipendio > 10DISTINCT:select distinctcognome, filialefrom impiegatiJOIN:select R1.A1, R2.A4from R1, R2where R1.A2 = R2.A3Media dei redditi dei figli di Franco: (SUM, AVG, MAX, MIN)select avg(reddito)from persone join paternita on nome=figliowhere padre='Franco'UNION: unisce tutta

Formattazione del testo

la tabella

genitore figlio
padre figlio
madre figlio

Modifica:

INSERT:

INSERT INTO Persone(Nome, Reddito)VALUES('Lino',55)

VINCOLI DI INTEGRITÀ GENERICI:

Specifica vincoli a livello di schema

create assertion NomeAss check ( Condizione )

create assertion AlmenoUnImpiegatocheck (1 <= ( select count(*)from Impiegato ))

CHECK POINT VISTE: permette modifiche, ma solo a condizione che la ennupla continui ad appartenere alla vista

create view ImpiegatiAmminPoveri as

select *

from ImpiegatiAmmin

where Stipendio < 50

with check option

OUTER JOIN:

select paternita.figlio, padre, madre

from maternita left outer join paternita

on maternita.figlio = paternita.figlio

INSERT INTO Persone ( Nome )

SELECT Padre

FROM Paternita

WHERE Padre NOT IN (SELECT Nome

FROM Persone)

UPDATE:

UPDATE Persone SET Reddito = 45

WHERE Nome = 'Piero'

UPDATE Persone

SET Reddito = Reddito * 1.1

WHERE Eta < 30

ORDER:

select nome, reddito

from persone

where eta <

  1. order by nome
  2. CHECK: Specifica di vincoli di ennupla check ( Condizione )
  3. create table Impiegato(Matricola character(6),Cognome character(20),Nome character(20),Sesso character not null check (sesso in ('M','F')) Stipendio integer,Ritenute integer,Netto integer,Superiore character(6),check (Netto = Stipendio - Ritenute ))
  4. Capitolo 5: Modello Concettuale E-R
    • Entità: CLASSE O INSIEME di oggetti (fatti, persone, cose) della applicazione di interesse con proprietà comuni e conesistenza "autonoma", ogni entità ha un nome che la identifica univocamente nello schema: nomi espressivi e opportune convenzioni (singolare);
    • Occorrenza (o istanza) di entità: SINGOLO elemento della classe;
    • Attributo: proprietà elementare di un'entità o di una relationship, di interesse ai fini dell'applicazione; associa ad ogni occorrenza di entità o relationship un valore appartenente a un insieme detto

dominio dell'attributo;

  • Attributi Composti: raggruppano attributi di una medesima entità o relationship che presentano affinità nel loro significato o uso
  • Relationship (o Relazione, Correlazione, Associazione): legame logico fra due o più entità, rilevante nell'applicazione di interesse, nomi espressivi e opportune convenzioni (singolare, sostantivi invece che verbi);
  • Una occorrenza di una relationship binaria è coppia di occorrenze di entità, una per ciascuna entità coinvolta;
  • Una occorrenza di una relationship n-aria è una n-upla di occorrenze di entità, una per ciascuna entità coinvolta;
  • Nell'ambito di una relationship non ci possono essere occorrenze (coppie, ennuple) ripetute

Relazioni con cardinalità massime: uno a uno; uno a molti, molti a molti.

Identificatore di una entità: "strumento" per l'identificazione univoca delle occorrenze di

un'entità è costituita da:

  • identificatore interno: attributi dell'entità;
  • identificatore esterno: (attributi +) entità esterne attraverso relationship;
  • Ereditarietà: tutte le proprietà (attributi, relationship, altre generalizzazioni) dell'entità genitore vengono ereditate dalle entità figlie e non rappresentate esplicitamente;
  • Generalizzazione:
    • totale se ogni occorrenza dell'entità genitore è occorrenza di almeno una delle entità figlie, altrimenti è parziale;
    • esclusiva se ogni occorrenza dell'entità genitore è occorrenza di al più una delle entità figlie, altrimenti è sovrapposta;
  • Cardinalità di relationship o di attributo: coppia di valori associati a ogni entità che partecipa a una relationship; specificano il numero minimo e massimo di occorrenze delle relationship cui ciascuna occorrenza di una entità può partecipare.
entità può partecipare (0 = "partecipazione opzionale"; 1 = "partecipazione obbligatoria"; "N" non pone alcun limite)

Capitolo 6: Modello Logico

Obiettivo "tradurre" lo schema concettuale in uno schema logico che rappresenti gli stessi dati in maniera corretta ed efficiente:

  • dati di ingresso: schema concettuale; informazioni sul carico applicativo; modello logico
  • dati di uscita: schema logico; documentazione associata.

Indicatori:

  • spazio: numero di occorrenze previste;
  • tempo: numero di occorrenze (di entità e relationship) visitate durante un'operazione.

Si costruisce una tavola degli accessi basata su uno schema di navigazione.

Analisi delle ridondanze: in questa fase si decide se eliminare le ridondanze eventualmente presenti o mantenerle (o anche di introdurne di nuove)

Vantaggi: semplificazione delle interrogazioni;

Svantaggi: appesantimento degli aggiornamenti, maggiore

occupazione di spazio. Eliminazione delle gerarchie: si eliminano perciò le gerarchie, sostituendole con entità e relationship, in tre modi:

  1. accorpamento delle figlie della generalizzazione nel genitore, conviene se gli accessi al padre e alle figlie sono contestuali;
  2. accorpamento del genitore della generalizzazione nelle figlie, conviene se gli accessi alle figlie sono distinti;
  3. sostituzione della generalizzazione con relationship, conviene se gli accessi alle entità figlie sono separati dagli accessi al padre.

Scelta degli identificatori principali: operazione indispensabile per la traduzione nel modello relazionale. Criteri:

  • assenza di opzionalità;
  • semplicità;
  • utilizzo nelle operazioni più frequenti o importanti.

Partizionamento/accorpamento di entità e relationship: Gli accessi si riducono:

  • separando attributi di un concetto che vengono acceduti separatamente;
  • raggruppando attributi di concetti diversi.
acceduti insieme. Casi principali:
  • partizionamento verticale di entità;
  • partizionamento orizzontale di relationship;
  • eliminazione di attributi multivalore;
  • accorpamento di entità/relationship.
Capitolo 7: PHP Stile abbreviato:
<?Codice php?>
Stile classico:
<?phpCodice php?>
Commenti:
  • // questo è un commento
  • /* questo è un commento */
  • # questo è un commento
Operatori:
  • +: addizione ($a + $b).
  • -: sottrazione ($a - $b).
  • *: moltiplicazione ($a * $b).
  • /: divisione ($a / $b).
  • %: modulo ($a % $b).
  • ==: uguale ($a == $b).
  • ===: identico ($a === $b) (cioè $a e $b sono anche dello stesso tipo).
  • !=: diverso ($a != $b).
  • <>: diverso ($a <> $b).
  • <: minore di ($a < $b).
  • <=: minore o uguale di ($a <= $b).
Gestione array:
  • count(): Restituisce il numero di elementi in un array.
  • array_push(): Aggiunge uno o più elementi alla fine di un array.
array.array_pop(): Rimuove e restituisce l'ultimo elemento di un array. array.array_merge(): Unisce due o più array. array.array_search(): Cerca un elemento all'interno di un array e restituisce la sua chiave. Funzioni:
  • phpinfo(): genera dinamicamente una pagina contenente informazioni sulla versione di PHP installata e altre cosette, quali nomi delle variabili predefinite
  • echo: serve per scrivere l'output che viene inviato al browser che accede allo script (non si tratta propriamente di una funzione) si può usare per visualizzare le variabili.
  • exit() e die(): arrestano l'esecuzione dello script; die() consente anche di stampare un messaggio. Tali funzioni possono essere utilizzate per gestire eventuali situazioni di errore che non consentono la prosecuzione dello script.
  • define("nome_costante","il valore che si intende dare"): per definire una costante
  • require "[file]" e include "[file]": per includere il contenuto di un file all'interno di un altro file

Per includere file esterni puoi utilizzare il tag <link> nel tag <head> del tuo documento HTML. Ad esempio:

<head>
    <link rel="stylesheet" href="style.css">
</head>

Un array può contenere anche elementi di tipo diverso. Puoi definire un array utilizzando il tag <script> nel tag <body> del tuo documento HTML. Ad esempio:

<body>
    <script>
        var array = [1, "stringa", true];
    </script>
</body>

Per estrarre una sottostringa da una stringa puoi utilizzare la funzione substr(stringa, inizio, fine). Ad esempio:

<script>
    var stringa = "Hello World";
    var sottostringa = stringa.substr(0, 5);
</script>

Per ottenere la lunghezza di una stringa puoi utilizzare la funzione strlen(stringa). Ad esempio:

<script>
    var stringa = "Hello World";
    var lunghezza = stringa.length;
</script>

Per eliminare gli spazi da una stringa puoi utilizzare la funzione trim(stringa). Ad esempio:

<script>
    var stringa = "   Hello World   ";
    var stringaSenzaSpazi = stringa.trim();
</script>

Per rendere maiuscola l'iniziale di una stringa puoi utilizzare la funzione ucfirst(stringa). Ad esempio:

<script>
    var stringa = "hello world";
    var stringaMaiuscola = stringa.charAt(0).toUpperCase() + stringa.slice(1);
</script>

Per rendere maiuscole tutte le iniziali delle parole di una stringa puoi utilizzare la funzione ucwords(stringa). Ad esempio:

<script>
    var stringa = "hello world";
    var parole = stringa.split(" ");
    for (var i = 0; i < parole.length; i++) {
        parole[i] = parole[i].charAt(0).toUpperCase() + parole[i].slice(1);
    }
    var stringaMaiuscole = parole.join(" ");
</script>

Per trovare la posizione di un pattern all'interno di una stringa puoi utilizzare la funzione strpos(stringa, pattern). Ad esempio:

<script>
    var stringa = "Hello World";
    var posizione = stringa.indexOf("World");
</script>
Anteprima
Vedrai una selezione di 3 pagine su 10
Basi di dati - Appunti più esercizi Pag. 1 Basi di dati - Appunti più esercizi Pag. 2
Anteprima di 3 pagg. su 10.
Scarica il documento per vederlo tutto.
Basi di dati - Appunti più esercizi Pag. 6
1 su 10
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze economiche e statistiche SECS-S/01 Statistica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher agnese.pino di informazioni apprese con la frequenza delle lezioni di Basi si dati e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Messina o del prof Villari Massimo.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community