Home
  • Sql
  • Modello relazionale - Lezione 2
gioacchino.delprete
pubblicato circa un anno fa

Modello relazionale - Lezione 2

Il modello relazionale, un articolo principalmente dedicato a neofiti, permette di fare un pò di chiarezza su i concetti che sono alla base del mondo dei Database

Come già detto nell'articolo di introduzione per la rappresentazioni di grossi moli di dati, che vengono chiamati notoriamente database, abbiamo bisogno di una rappresentazione logica dei dati che verrà poi implementata su un Database management system(DBMS) che nel caso specifico del modello relazionale sono chiamati Relational DBMS(RDBMS).

Le fondamenti del modello relazionale, sono:

  • l'algebra relazionale
  • teoria degli insiemi

ed è strutturato intorno al concetto di relazione.

Tutti i dati del modello relazionale sono rappresentati come relazioni, tali dati sono manipolati grazie agli operatori dell'algebra relazionale.

L'algebra relazionale ha sei operatori di base:

  • operatori binari di Unione
  • operatori binari di Prodotto cartesiano
  • operatori unari di Proiezione
  • operatori binari di Differenza
  • operatori unari di Selezione
  • operatori unari di Ridenominazione

e tre operatori derivati da quelli di base:

  • operatore insiemistico binario di Intersezione
  • operatore di Join nelle forme:
    • Inner Join
    • Natural-Join
    • Outer Join
    • Right outer Join
    • Self-join
    • Equi-Join
    • Cross Join
    • Left outer Join
    • Full outer Join
  • operatore di Divisione

Per ora basta sapere che tutti questi operatori vengono applicati alle relazioni che sono a loro volta semplicemente degli insiemi, vedremo con il seguito degli articoli come applicarli alle relazioni di un database e come ci possono essere utili.

Il modello relazione permette al progettista del database, una rappresentazione consistente e logica dell'informazione ottenuta inserendo nel progetto del database dei vincoli appropriati.
Mentre la traduzione di un'espressione di algebra relazionale in un programma che usa gli operatori della macchina fisica chiamato notoriamente piano di accesso ed altri dettagli implementativi sono gestiti dal RDBMS.

Struttura del modello relazionale
Prendiamo come esempio la tabella seguente, entità nel contesto in cui ci troviamo, che cerca di rappresentare l'informazione Studente, con campi Matricola, Nome e Cognome.

Con l'aiuto dell'immagine possiamo facilmente comprendere come la base del modello relazionale è il dominio cioè l'insieme dei valori che può assumere un determinato attributo, una tupla invece è un insieme non ordinato di valori degli attributi. Non volendo l'immagine rappresenta chiaramente come una relazione viene graficamente rappresentata, cioè tramite una tabella.
Nel modello relazione tutte le informazioni sono rappresentata da valori inseriti nelle relazioni o tabelle, dunque un database relazione è un insieme di relazioni contenente dei dati e la manipolazione e l'interrogazione di questi dati può essere rappresentata grazie ad una relazione.

Nel gergo dei database molto spesso, quasi sempre, un attributo prende il nome di colonna, la parola relazione viene sostituita da tabella, la tupla è praticamente una riga della tabella, e il tipo dei dati degli attributi sono, i tipi dei dati che conosciamo abbondantemente, “int”, “char”, “date” ecc.., molti RDBMS mettono a disposizione tipi propri ed altri ancora permettono addirittura all'utente di definirne dei propri.

Nel prossimo articolo vedremo come sia possibile mettere in relazione tra di loro le relazioni o tabelle.
Prenderemo in esempio un centro di ricerca e creeremo su di esso un database per la gestione ed archiviazione del personale assunto, creeremo lo schema entità-relazioni e scriveremo i comandi SQL per la creazione delle tabelle e dei vincoli su di esse.

Condividi su:

Esprimi un voto:

  • Current rating: 5.0/5
  • 1
  • 2
  • 3
  • 4
  • 5

Argomenti chiave:

Ultimi commenti Ultimi commenti

Esegui il Login oppure registrati per scrivere un commento.
Cerca nel sito...
Ultime recipes

Un utilissimo tool di shell che effettua un dettagliato e comodo report su MySQL MySQL Report un tool di shell per tenere tutto sotto controllo

Un utilissimo tool di shell che effettua un dettagliato e comodo report su MySQL


Vai alla recipe

Un utilissimo tool per sniffare il traffico Client/Server TCP/IP di MySQL MySQLSniffer sniffare il traffico TCP di MySQL

Un utilissimo tool per sniffare il traffico Client/Server TCP/IP di MySQL


Vai alla recipe

Verificare l'integrità, riparare gestire chiavi e memoria di tabelle MyISAM attraverso myisamchk riparare file MyISAM

Verificare l'integrità, riparare gestire chiavi e memoria di tabelle MyISAM attraverso il file myisamchk


Vai alla recipe

Un tool per comprimere le tabelle MyISAM fino a oltre il 50% myisampack comprimere file MyISAM

Un tool per comprimere le tabelle MyISAM fino a oltre il 50%


Vai alla recipe

mysqlshow le info di base sui database, tabelle e colonne senza utilizzare alcun mysqlshow visualizzare le informazioni sul database MySQL

mysqlshow le info di base sui database, tabelle e colonne senza utilizzare alcun client


Vai alla recipe

Utilizzando UNION / UNION ALL su campi int unsigned zerofill,
ho notato che MysqlUNION / UNION ALL su campi int unsigned zerofill. di DebUsr
Vai al tip

Utilizzo di funzioni come alias di campo tramite l'impiego di prepared statementReport con alias di campo dinamici di john_revelator
Vai al tip

Può capitare che sia necessario eseguire un dump di database in formato Comma SeparatedEsecuzione dump in formato CSV (tabelle in engine MyIsam esportate in formato CSV) di ghigomatto
Vai al tip

E' possibile eseguire le query SQL contenute in un file di testo. Questo è utileEseguire le query da un file di testo di Sante Caserio
Vai al tip

Se vogliamo fare il backup di tutti i database con mysqldump, e ne abbiamo parecchiFare il backup di tutti i database di Sante Caserio
Vai al tip

Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
Ho 4 aiuto per una query! di fighterdorico Vai al topic

Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
Ho 4 aiuto per una query! di fighterdorico Vai al topic

Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
Ho 4 aiuto per una query! di fighterdorico Vai al topic

Salve a tutti.

Ho una tabella con lettere accentate.
Le lettere vengono visualizzate ordinamento tabelle di ditch Vai al topic

Salve a tutti.

Ho una tabella con lettere accentate.
Le lettere vengono visualizzate ordinamento tabelle di ditch Vai al topic