Introduzione a Oracle 9i Introduzione a Oracle 9i Parte I © 2007 Gallo Odorisio – [email protected] Introduzione Database e DBMS: definizioni • Database: un archivio di dati, riguardanti uno stesso argomento o più argomenti correlati tra loro, strutturato in modo tale da consentire la gestione dei dati stessi da parte di applicazioni software (l'inserimento, la ricerca, la cancellazione ed il loro aggiornamento) • DBMS: Data Base Management System è un sistema software per la gestione delle basi dati © 2007 Gallo Odorisio – [email protected] Introduzione Database e DBMS: definizioni I linguaggi di programmazione che permettono al DBMS di interfacciarsi con l’utente si dividono in tre categorie: • DDL (Data Description Language): definisce la struttura degli archivi • DML (Data Manupulation Language): si occupa dell’elaborazione e della modifica delle informazioni registrate • QL (Query Language): permette di effettuare delle interrogazioni, cioè delle ricerche sugli archivi. © 2007 Gallo Odorisio – [email protected] Introduzione I tre livelli di astrazione I tre livelli di astrazione: • Il livello fisico: è formato dalle strutture di memoria di massa e dai dati che esse contengono, inclusi quegli elementi che consentono l’accesso ai dati stessi, come indici, puntatori ecc. • Il Livello concettuale: corrisponde alla definizione della struttura logica dell’archivio mediante un modello astratto. È il livello mediante il quale il DBMS s’interfaccia all’utente. Il modello è formato da entità. Ogni entità possiede degli attributi. • Il Livello esterno: che consente al DBMS di gestire gli accessi e le autorizzazioni ai dati. © 2007 Gallo Odorisio – [email protected] Introduzione Il modello entità relazioni Il modello Entità-Relazione (ER) è un modello concettuale basato su: • entità • attributi • relazioni Un’entità è un soggetto reale che si vuole rappresentare da un punto di vista concettuale; un insieme di entità correlate tra loro costituisce un ‘set di entità’. Ciascuna entità possiede inoltre delle proprietà caratteristiche, chiamate attributi, il cui valore varia all’interno di un particolare dominio, chiamato range. Tra due entità è possibile individuare delle relazioni, cioè dei legami che le uniscono. © 2007 Gallo Odorisio – [email protected] Introduzione Il modello entità relazioni La chiave è quindi un meccanismo che garantisce l’identificazione delle varie occorrenze delle entità, indicando col termine occorrenza il valore assunto dagli attributi in un particolare istante cioè quello che, nel linguaggio del modello ER, viene indicato col termine tupla. A tal fine, la chiave deve rispondere a due requisiti fondamentali: 1. univocità: in qualunque istante non devono esistere due tuple che presentano lo stesso valore della chiave 2. minimalità: l’attributo o l’insieme di attributi non deve poter essere ridotto di un attributo senza che venga persa la caratteristica di univocità © 2007 Gallo Odorisio – [email protected] Introduzione Il modello entità relazioni Il simbolismo del modello Entità Relazioni prevede l’utilizzo di quattro oggetti: 1. il rettangolo per indicare le entità 2. il rombo per le relazioni 3. l’ellisse per gli attributi 4. le frecce per indicare i rapporti tra le relazioni e le entità Entità © 2007 Gallo Odorisio – [email protected] Relazione Attributo Rapporti Introduzione Il modello entità relazioni Fra i rapporti è importante quello che specifica che un’entità B è un tipo particolare di un’altra entità A (rapporto IS-A, “È un…”); questo tipo di rapporto implica che B erediti tutti gli attributi di A, ma può anche possederne alcune caratteristiche che A non possiede. Matricola Tabella voti Voti Nome Studenti Pagelle © 2007 Gallo Odorisio – [email protected] Matricola IS-A Maturandi Introduzione Il modello relazionale Il Modello Relazionale (E. F. Codd ) è un modello concettuale che permette di descrivere nuove entità partendo da entità primarie; si ha così la suddivisione del problema in molteplici strutture logiche in grado di soddisfare le diverse esigenze dell’utente Eliminazione della ridondanza, cioè l’eliminazione delle informazioni duplicate © 2007 Gallo Odorisio – [email protected] Introduzione Il modello relazionale Il modello di E. F. Codd trova il suo fondamento nella teoria degli insiemi secondo cui una ‘relazione’ è un sottoinsieme del prodotto cartesiano di una lista di domini astratti. Dati tre attributi definiti nel seguente modo: A = (a1, a2, a3) B = (b1, b2) C = (c1, c2, c3) Il prodotto cartesiano sarà: ABC = {(a1 b1 c1), (a1 b1 c2), (a1 b1 c3), (a1 b2 c1), (a1 b2 c2), ...} © 2007 Gallo Odorisio – [email protected] Introduzione Il modello relazionale La ‘relazione’ nel modello relazionale è un sottoinsieme del prodotto cartesiano ne deriva che: • la relazione è una tabella • ogni tabella è formata da righe (tuple) e colonne; l’intestazione delle colonne rappresentano gli attributi, mentre l’insieme degli attributi costituisce lo schema della relazione (c.d. schema relazionale); • ogni attributo può avere, di volta in volta, un particolare valore previsto da un particolare dominio astratto (range); • il dominio attivo è formato dall’insieme di tutti i valori delle tuple. © 2007 Gallo Odorisio – [email protected] Introduzione Gli operatori relazionali Applicando a delle relazioni di base degli ‘operatori’ è possibile ricavare delle relazioni virtuali. Operatori booleani: Operatori relazionali: © 2007 Gallo Odorisio – [email protected] • unione • intersezione • differenza • complemento • selezione • proiezione • join Introduzione Gli operatori relazionali Operatori booleani Si dice unione di r con s la relazione formata da tutte le tuple appartenenti a r e a s Si dice intersezione di r con s la relazione formata solo dalle tupe comuni sia a r che a s (ricordando che tuple uguali vengono considerate una sola volta). Si dice differenza fra r e s la relazione formata da tutte e solo le tuple appartenenti ad r ma non a s Si dice complemento di una relazione r, la relazione formata da tutte e solo le tuple appartenenti al dominio di r ma non a r © 2007 Gallo Odorisio – [email protected] Introduzione Gli operatori relazionali Operatori relazionali Si dice selezione su una relazione r in base alla condizione Y la relazione formata da tutte e solo le tuple appartenenti a r il cui attributo A corrisponde alla condizione Y(A)=a1 Si dice proiezione della relazione r sullo schema P la relazione p dello schema P composta da tutte le tuple appartenenti a r secondo lo schema P Si dice join fra le relazioni r1,r2,…..rn aventi uno o più attributi in comune la relazione formata dal prodotto cartesiano tra le tuple delle n relazioni di partenza i cui attributi comuni verificano una condizione Y © 2007 Gallo Odorisio – [email protected] Introduzione La normalizzazione La normalizzazione è il processo mediante il quale gradualmente si tende ad eliminare le duplicazioni all’interno di una relazione. • Una relazione è in Prima Forma Normale (1NF) se e solo se tutti i suoi attributi sono valori atomici. • La 2NF (Second Normal Formal) stabilisce che gli attributi di una relazione non devono essere ridondanti • La 3FN impone che un attributo non può dipendere da un attributo che non sia a sua volta ‘chiave primaria’ © 2007 Gallo Odorisio – [email protected]