Database Accesso Utenti diversi Programmi diversi Modelli di database

Slides:



Advertisements
Presentazioni simili
SQL applicato a SQL Server
Advertisements

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Corso di Informatica (Basi di Dati)
Basi di dati Università Degli Studi Parthenope di Napoli
Introduzione a Oracle 9i
LE BASI DI DATI E IL LINGUAGGIO SQL.
I DBMS BASI DI DATI (DATABASE) Insieme organizzato di dati utilizzati
© 2015 Giorgio Porcu - Aggiornamennto 28/03/2015 UdA 1A Database Progettazione Fisica G IORGIO P ORCU
Lezione 5 - SQL. Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato.
ICT e Sistemi informativi Aziendali Materiale di supporto alla didattica.
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
CORSO elementare su DATABASE Applicativo utilizzato OpenOffice 3.0.
Basi di dati - Fondamenti
Il modello logico Il modello logico.
Database Accesso Utenti diversi Programmi diversi Modelli di database
L’ ORGANIZZAZIONE DEI DATI IN AZIENDA
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rileaborato da M. Lenzerini - Basi di dati
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Le operazioni relazionali
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Secondo Compito: PROGETTAZIONE DI UN DATABASE Claudia Angione
PROGETTAZIONE DATABASE SECONDO COMPITO CAROLINA CASIELLO
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
di Basi di Dati: Overview
PROGETTAZIONE CONCETTUALE
Creare tabelle in sql Ripasso!.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Microsoft Access E’ un programma utile per lo sviluppo di applicazioni gestionali che si appoggiano a una base dati.
Microsoft Access E’ un programma utile per lo sviluppo di applicazioni gestionali che si appoggiano a una base dati.
Rielaborato da Atzeni et al., Basi di dati, Mc-Graw Hill
COME SI CREA UNA TABELLA CON UNA CHIAVE ESTERNA
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Corso di Basi di Dati Il Linguaggio SQL
Microsoft Office Access
Integrità referenziale
La normalizzazione delle relazioni
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
I vincoli di integrità Alcuni aspetti della realtà NON possono essere modellati solamente con entità, attributi e relazioni, per esempio i vincoli di integrità.
FAQ.
MODELLAZIONE DEI DATI.
Creare un server casalingo - 3
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Progettazione logica: Il modello relazionale
Linguaggio SQL prima parte
Database
Introduzione alle basi di dati
OBJECT ORIENTED DATABASE
Access.
Introduzione alla normalizzazione
Basi di dati - Fondamenti
INTRODUZIONE A EXCEL Il foglio elettronico o foglio di calcolo è una tabella che contiene parole e numeri che possono essere elaborati applicando formule.
Introduzione alla materia sistemi
Progettazione concettuale
Partizionamento/accorpamento di concetti
SQL per la modifica di basi di dati
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Gli archivi e le basi di dati
Introduzione ai DBMS I Sistemi di Gestione di Basi di Dati sono strumenti software evoluti per la gestione di grandi masse di dati residenti su memoria.
Il questionario: progettazione e redazione II Modulo
Docente: Sabato Bufano
Transcript della presentazione:

Database Accesso Utenti diversi Programmi diversi Modelli di database Ger, Ret, Rel, Obj DB Relazionale (1:1) … Definizione DBMS Grado di cardinalità e relazione Chiave Primaria e Secondaria Estrazione Selezione Proiezione Congiunzione Database Normalizzazione 1ª no megatabelle, 2ª ogni tabella una chiave primaria, 3ª chiave primaria e secondaria Linguaggi DDL, DML, QL Integrità Referenziale Livelli: Concettuale Logico Fisico Modelli di rappresentazione: E/R e UML

Le basi di dati

Parleremo di ….. Il modello relazionale: la selezione la proiezione congiunzione Normalizzazione 1FN 2FN 3FN L’integrità referenziale I linguaggi per le basi di dati: DDL (Data Definition Language) DML (Data Manipulation Query Languages I 3 livelli Cos’è una base di dati? A cosa serve una base di dati ? Cosa deve garantire un database? Il DBMS I modelli per il database Il modello gerarchico Il modello reticolare Il modello relazionale I database orientati agli oggetti Il modello relazionale: concetti fondamentali requisiti fondamentali la chiave primaria la chiave esterna

Cos’è una base di dati (database)? E’ un insieme di archivi di dati: organizzati mediante tabelle e relazioni (associazioni) gestiti sulle memorie di massa attraverso appositi software (DBMS)

Database Conti Correnti In altre parole … Un database è un insieme dati, che possono essere usati da utenti diversi con programmi diversi. Versamenti Prelevamenti Database Conti Correnti

Cosa deve garantire un database? Un database deve garantire di ritrovare facilmente le informazioni desiderate. Con: velocità, sicurezza.

Il DBMS (Data Base Management System) Il DBMS è l’insieme dei programmi software in grado di garantire il funzionamento ottimale del database. Le informazioni conservate devono garantire: no ridondanza accesso multiplo integrità

I modelli per il database Nello sviluppo della teoria dei database, dal 1960 in poi, sono emersi tipi diversi di modelli per le basi di dati: Gerarchico o ad albero (un padre enne figli), Reticolare (più padri ed enne figli), Relazionale (concetto matematico-1:1, 1:n, M:n) database orientati agli oggetti (immagini, suoni).

Il modello relazionale Rappresenta il database come un insieme di tabelle e di associazioni (relazioni) Le relazioni possono essere di tipo: 1:1 (biunivoca) ad un elemento di A corrisponde un solo elemento di B (es: Alunni e Diplomi); 1:n (semplice) ad un elemento di A corrispondono più elementi di B (es: Alunni e Assenze); m:n (complessa) a più elementi di A corrispondono più elementi di B (Alunni e Docenti);

Il modello OODB (Object Oriented DataBase) I database orientati agli oggetti sono stati introdotti per poter inserire: grafici, audio, video.

Il modello relazionale: concetti di Cardinalità e Relazione Il numero delle righe (record o tuple o ennuple) indica il grado di cardinalità (nel nostro esempio 4); Il numero delle colonne (campi o attributi) indica l grado di relazione (nel nostro esempio 4). Riga 1 Riga 2 Riga 3 Riga 4 Colonna 1 Colonna 2 Colonna 3 Colonna 4

Chiave Esterna/secondaria Il modello relazionale: concetti di chiave Primaria (Primary Key - PK) e chiave esterna/secondaria (Foreign Key - FK) La chiave primaria è l'insieme di uno o più attributi che identificano in modo univoco ogni riga della tabella; La chiave esterna è l'insieme di uno o più attributi che ci permettono di collegare tra loro le tabelle. Chiave Primaria Chiave Esterna/secondaria

Il modello relazionale: Selezione, Proiezione, Congiunzione Selezione: crea una nuova entità/tabella costituita solo dalle righe di partenza che soddisfano a una determinata condizione.

Il modello relazionale: Selezione, Proiezione, Congiunzione Proiezione: crea una nuova entità/tabella costituita solo dalle colonne che soddisfano una determinata condizione.

Il modello relazionale: Selezione, Proiezione, Congiunzione Congiunzione: crea una nuova entità/tabella, partendo da due tabelle aventi uno o più attributi in comune, costituita dalle colonne e dalle righe delle due tabelle che soddisfano una determinata condizione.

Il modello relazionale: la normalizzazione Nelle entità/tabelle occorre evitare la ripetizione o la ridondanza dei dati. Per evitare queste anomalie bisogna attenersi ai cosi detti processi di normalizzazione (N.B. non è una religione). La normalizzazione avviene a livelli crescenti a cui corrispondono diverse forme normali.

Il modello relazionale: la normalizzazione 1 FN: l’entità/tabella non deve contenere dati ridondanti (ripetitivi) – evitare le megatabelle; Esempio Matricola Cognome Nome Classe Sezione Data assenza Motivo Giustificata 1 AAA A 12/12/ NO 2 BBB 12/12 SI 14/12 15/12 3 CCC B 16/12 Nelle celle colorate sono presenti dati ridondanti

Chiave Primaria Assenze Chiave Primaria Alunni Il modello relazionale: la normalizzazione 2 FN: (1 FN) + i dati dipendono dalla chiave primaria – ogni tabelle creata dovrebbe avere un campo che diventa chiave primaria; Numero Data assenza Motivo Giustifica 1 12/12/ AAA NO 2 12/12 SI 3 14/12 BBB 4 15/12 5 16/12 6 Matricola Cognome Nome Classe Sezione 1 AAA A 2 BBB 3 CCC B Chiave Primaria Assenze Chiave Primaria Alunni Dalla Megatabella abbiamo creato due tabelle

Chiave Primaria Assenze Chiave Primaria Alunni Il modello relazionale: la normalizzazione 3 FN: (2 FN) + ogni campo, che può essere aggiunto, può diventare chiave secondaria/esterna – per creare le relazioni) Chiave Esterna Matricola Cognome Nome Classe Sezione 1 AAA A 2 BBB 3 Ccc B Chiave Primaria Assenze Chiave Primaria Alunni Numero Matricola Data assenza Motivo Giustifica 1 12/12/ AAA NO 2 12/12 SI 3 14/12 BBB 4 15/12 5 16/12 6

L’integrità referenziale integrità referenziale (referential integrity): per ogni valore non nullo della chiave esterna, deve esistere un valore corrispondente della chiave primaria nella tabella associata. Per ogni matricola (chiave esterna) presente nella tabella delle assenze, non può non esistere la corrispondente matricola (chiave primaria) nella tabelle degli alunni.

I linguaggi (SQL) per le basi di dati Definizione degli schemi: Data Definition Language, permette di creare la struttura delle entità/tabelle e le relazioni tra le stesse; manipolazione dei dati: Data Manipulation Language, permette di inserire, cancellare e modificare i dati nelle entità/tabelle; interrogazione delle informazioni (Query Language).

Modalità di rappresentazione: 1) Diagramma E/R (Entity Relationship) Campi o Attributi Rettangolo = Entità Rombo = Relazione Tra parentesi il tipo di Associazione (1 ad N)

Modalità di rappresentazione: 2) Diagramma UML (Unified Modeling Language) Entità Relazione (1 ad N) Campi o Attributi Kahoot

Livelli per rappresentare i data base: 1) Concettuale – 2) Logico – 3) Fisico 1) Livello Concettuale: rappresentare le Entità e le Relazioni con uno dei modelli conosciuti (E/R – UML) ALUNNI ID_ALUNNI (PK) COGNOME NOME CLASSE SEZIONE FOTO N ASSENZE ID_ALUNNI (FK) DATA MOTIVO GIUSTIFICATA (S, N) 1

Livelli per rappresentare i data base: 1) Concettuale – 2) Logico – 3) Fisico 2) Livello Logico: descrivere la natura (Formato e Dimensione) dei Campi Tabella ALUNNI NOME CAMPO FORMATO DIMENSIONE CHIAVE NOTE MATRICOLA NUMERICO 5 PRIMARIA   COGNOME CARATTERE 15 NOME CLASSE 1 SEZIONE 3 FOTO Oggetto OLE

Formato dei dati ACCESS SQL-ACCESS COMMENTO Testo CHAR(…) Indicare la lunghezza del campo Memo MEMO Per campi molto lunghi (oltre 255) Data DATE/TIME  Data e ora (in vari formati) Valuta MONEY o CURRENCY  Euro, Dollaro, Sterlina, ecc… Contatore COUNTER Si autoincrementa Si/no BIT: 0 = NO, -1 = SI Vero o falso Byte BYTE Valori numerici piccoli Intero SMALLINT Valori numerici medi Intero lungo INT o INTEGER Numeri naturali Precisione singola SINGLE Valori reali Precisione doppia DOUBLE   Oggetto OLE IMAGE - LONGBINARY Per inserire Immagini (oggetti OLE)

Livelli per rappresentare i data base: 1) Concettuale – 2) Logico – 3) Fisico 3) Livello Fisico: Creazione (Create) della tabella CREATE TABLE ALUNNI ( MATRICOLA COUNTER NOT NULL, COGNOME CHAR (15), NOME CHAR (15), CLASSE INTEGER, SEZIONE CHAR (3), FOTO LONGBINARY, PRIMARY KEY (MATRICOLA) )

Livelli per rappresentare i data base: 1) Concettuale – 2) Logico – 3) Fisico Utilizzando il comando CREATE, visto precedentemente, creare la tabella riguardante i Fornitori, con i seguenti campi: ID_FORNITORE CONTATORE DENOMINAZIONE CARATTERE DA 25 INDIRIZZO CARATTERE DA 20 CAP CARATTERE DA 5 COMUNE CARATTERE DA 20 PROVINCIA CARATTERE DA 2 PARTITA_IVA CARATTERE DA 11 N.B. ID_FORNITORE CHIAVE PRIMARIA con valori Non Nulli

Livelli per rappresentare i data base: 1) Concettuale – 2) Logico – 3) Fisico Utilizzando il comando CREATE, visto precedentemente, creare la tabella riguardante i Clienti, con i seguenti campi: ID_CLIENTE CONTATORE COGNOME CARATTERE DA 15 NOME CARATTERE DA 15 INDIRIZZO CARATTERE DA 20 CAP CARATTERE DA 5 COMUNE CARATTERE DA 20 PROVINCIA CARATTERE DA 2 CODICE_FISCALE CARATTERE DA 16 N.B. ID_CLIENTE CHIAVE PRIMARIA con valori Non Nulli

Livelli per rappresentare i data base: 1) Concettuale – 2) Logico – 3) Fisico Utilizzando il comando CREATE, visto precedentemente, creare la tabella riguardante la Merce, con i seguenti campi: ID_MERCE CONTATORE DESCRIZIONE CARATTERE 25 QUANTITA’ NUMERICA PREZZO VALUTA DATA DATA ALIQUOTA_IVA N.B. ID_MERCE CHIAVE PRIMARIA con valori Non Nulli

Livelli per rappresentare i data base: 1) Concettuale – 2) Logico – 3) Fisico Utilizzando il comando CREATE, visto precedentemente, creare la tabella riguardante i Libri, con i seguenti campi: ID_LIBRO CONTATORE TITOLO CARATTERE 25 GENERE CARATTERE 25 FOTO COPERTINA PREZZO VALUTA AUTORE CARATTERE 25 ANNO_PUBBLICAZIONE CARATTERE 4 N.B. ID_LIBRO CHIAVE PRIMARIA con valori Non Nulli

Livelli per rappresentare i data base: 1) Concettuale – 2) Logico – 3) Fisico Utilizzando il comando CREATE, visto precedentemente, creare la tabella riguardante la Rubrica, con i seguenti campi: ID_RUBRICA CONTATORE TITOLO* CARATTERE 10 COGNOME CARATTERE 15 NOME CARATTERE 15 TELEFONO CARATTERE 12 N.B. ID_RUBRICA CHIAVE PRIMARIA con valori Non Nulli * SIGNOR, SIGNORA, DOTTORE, ECC…

Fine Fase 2: le clausole (comandi) del linguaggio QL