LA CAMPANA

C’è chi ha letto questa notizia prima di te.
Iscriviti per ricevere nuovi articoli.
E-mail
Nome
Cognome
Come vuoi leggere La Campana?
Niente spam

Nelle discipline matematiche il concetto di “tavola” corrisponde al concetto di “relazione”. Il tavolo riflette un oggetto del mondo reale – essenza, e ogni riga riflette un'istanza specifica dell'entità. Ogni colonna ha un nome univoco per la tabella.

Le linee non hanno nomi, il loro ordine non è definito e il loro numero è logicamente illimitato. Uno dei principali vantaggi di RMD è l'uniformità (ogni riga della tabella ha lo stesso formato). L'utente stesso decide se le entità corrispondenti hanno omogeneità. Ciò risolve il problema dell’idoneità del modello. Gli elementi principali del RMD sono mostrati in Fig. 17.

Una relazione è una tabella bidimensionale contenente alcuni dati.

Essenza– un oggetto di qualsiasi natura, i cui dati sono archiviati nel database.

Attributi– proprietà caratterizzanti l'entità (colonne). Il grado della relazione è il numero di colonne.

Diagramma delle relazioni– un elenco di nomi di attributi, ad esempio, DIPENDENTE (N., Nome completo, Anno di nascita, Posizione, Dipartimento).

Dominio un insieme di valori di attributi di relazione (tipo di dati). Più strettamente parlando, dominio C'è potenziale insieme di valori.

Proprietà del dominio: Un dominio è un insieme, sebbene in generale i suoi valori non possano essere semplicemente enumerati. Dall’insieme vengono quindi ereditate le seguenti proprietà:

    Limitazione: il dominio ha un confine, i dati sono divisi in possibili e impossibili. Come nel caso di un insieme, ciò non significa che il numero degli elementi sia finito.

    Unicità: puoi confrontare alcuni elementi con altri ed evitare duplicati. Per un singolo dominio questo è ovvio.

Il concetto di dominio aiuta correttamente simulare argomento

Dominio e attributi. UN gli attributi devono essere specifici del dominio o "definiti su un dominio". È possibile impostare più attributi su un dominio.

Atomicità dei valori: i valori degli attributi devono essere semplici, atomico, non composito.

Naturalità dei domini. D I presagi devono portare un carico semantico. È più utile trattare un dominio come un certo gruppo di parametri per descrivere un argomento, come un certo concetto semantico.

Di norma, molte aree tematiche sono già abbastanza formalizzate e dispongono di concetti e libri di consultazione già pronti.

Limitare i confronti non necessari tra attributi – scopo principale dei domini.

Corteo– riga della tabella.

Cardinalità (potenza)– numero di righe nella tabella.

Nome e cognome

Anno di nascita

Titolo di lavoro

Codice dipartimento

Ivanov I.I.

Petrov P.P.

Professore

Sidorov S.S.

Vasiliev V.V.

Vovkin V.V.

insegnante

Stepanov S.S.

Professore

Figura 17. Elementi del modello relazionale

Il concetto di database è strettamente correlato ai concetti di elementi strutturali come campo, record, file (tabella),

    campo , - un'unità elementare di organizzazione logica dei dati, che corrisponde a un'unità indivisibile di informazione - un dettaglio. Per descrivere il campo viene utilizzato quanto segue: caratteristiche :

    Nome , Per esempio. Cognome, nome, patronimico, data di nascita;

    tipo , ad esempio simbolico, numerico, calendario;

    lunghezza , ad esempio, 15 byte e sarà determinato dal numero massimo possibile di caratteri

    precisione , per dati numerici, ad esempio due cifre decimali per mostrare la parte frazionaria di un numero.

Documentazione- un insieme di campi logicamente correlati. Un'istanza di record è un'implementazione separata di un record contenente valori specifici per i suoi campi.

File(tabella) - una raccolta di istanze di record della stessa struttura.

Una tabella in un modello dati relazionale può essere considerata come una classe di oggetti dello stesso tipo .

Pertanto, per oggetti della stessa classe, l'insieme di proprietà sarà lo stesso, sebbene i valori di queste proprietà per ciascun oggetto, ovviamente, possano essere diversi.

Tipi di dati consentiti nel modello dati relazionale.

Principali tipi di dati utilizzati nei modelli di dati:

Intero breve – intero breve;

Intero lungo – intero lungo;

Galleggiante – numero reale (numero in virgola mobile);

Doppio – numero reale (numero in virgola mobile) doppia precisione;

Testo – tipo di dati testo;

Logico - logico (sì/no);

Dati - temporaneo. Il valore è definito come una data delimitata nel formato specificato;

Macchia – oggetti binari di grandi dimensioni (binary large object - BLOB), che possono memorizzare dati di dimensioni illimitate. I campi di questo tipo consentono di memorizzare informazioni binarie arbitrarie adimensionali.

Elemento chiave (chiave primaria) dei dati è un elemento da cui è possibile determinare i valori di altri elementi di dati. Un oggetto può essere identificato in modo univoco da due o più valori di dati.

Chiave primaria Si tratta di un attributo che identifica in modo univoco le righe di una relazione. Una chiave primaria composta da più attributi è chiamata chiave composita. La chiave primaria non può essere completamente o parzialmente vuota (avere valore null).

Significato pratico La chiave primaria è ovvia: un oggetto di dominio è descritto in modo univoco da un insieme di attributi della tabella. La chiave primaria cattura la cosa più importante di un oggetto, la sua essenza unica. I restanti campi possono essere chiamati “semplici attributi”.

Vengono chiamate le chiavi che possono essere utilizzate come chiavi primarie potenziale O alternativachiavi.

Chiave esterna - serve per collegare le tabelle. Questi sono valori di una tabella che possono essere collegati in modo univoco a un'altra. Più precisamente, per una relazione, una chiave esterna è un insieme di attributi predefiniti

Chiave esterna -è uno o più attributi di una tabella che possono fungere da chiave primaria di un'altra tabella. È un collegamento alla chiave primaria di un'altra tabella (Fig. 18).

Fig 18. Connessione di relazione

Relazione STUDENTE (Nome, Gruppo, Specialità) E ELEMENTO (Nome Pr, Orologio) collegati da una relazione STUDENT_SUBJECT (Nome completo, Nome del Pr, Voto), in cui chiavi esterne Nome e cognome E Nome_Pr formare una chiave composta.

Il modello relazionale dei dati (RDM) è stato sviluppato dal dipendente IBM E.F. Codd (Edgar Frank Codd) nel 1969-1970. basato sulla teoria matematica delle relazioni. Attualmente è il modello di dati più comune utilizzato dai DBMS commerciali.

Il modello di dati relazionali presenta vantaggi e svantaggi. I vantaggi del modello includono quanto segue:

  • la presenza di un piccolo insieme di astrazioni che consentono di modellare in modo relativamente semplice una parte significativa dell'area disciplinare e consentono definizioni formali precise pur rimanendo intuitive;
  • la presenza di un apparato matematico semplice e allo stesso tempo potente, basato principalmente sulla teoria degli insiemi e sulla logica matematica e che fornisce le basi teoriche per l'approccio relazionale all'implementazione dei database;
  • la possibilità di manipolazione dei dati non di navigazione, eliminando la necessità di conoscere l'organizzazione fisica specifica del database nella memoria esterna.

Gli svantaggi del modello sono:

  • alcune limitazioni quando utilizzato in applicazioni che richiedono strutture dati estremamente complesse (ad esempio, nei sistemi di progettazione assistita da computer);
  • incapacità di visualizzare adeguatamente la semantica dell'area tematica.

Come ogni altro, il modello relazionale dei dati definisce le parti strutturali e integrali. L'apparato matematico alla base del RMD ha permesso di determinare la parte di manipolazione. Di conseguenza, per descrivere la struttura e le restrizioni imposte alla struttura, viene utilizzato un linguaggio di descrizione dei dati (DDL); Il linguaggio di manipolazione dei dati (DML) viene utilizzato per manipolare i dati.

Caratteristiche del modello dati relazionale che lo distinguono dai modelli entità-relazione:

  • viene definita la parte di manipolazione: un insieme specifico di operazioni, funzionalità;
  • esistono linguaggi specifici per descrivere i dati, vincoli posti sui dati e manipolazione dei dati;
  • I moderni DBMS relazionali utilizzano un unico linguaggio: SQL, che combina sia IOD che YaMD.

COMPONENTI STRUTTURALI FONDAMENTALI DEL MODELLO RELAZIONALE DEI DATI

I componenti strutturali di base dell’RMD sono:

  • domini e attributi;
  • relazione;
  • comunicazioni.

Domini, attributi e relazioni

Definizione. Dominio- Molti elementi dello stesso tipo.

E.F. Codd ha definito un dominio semplice, i cui elementi hanno valori semplici (atomici), e un dominio composto, i cui elementi rappresentano relazioni costruite su domini semplici.

Esempi di domini semplici:

ANNO = (1985, 2003, 2000);

SOLDI = (500, 1.000.850).

Un esempio di dominio composto costruito sui domini semplici YEAR e MONEY:

In questo esempio, il valore di un elemento di un dominio composito è un insieme di coppie della forma

Una relazione del modello relazionale è definita secondo la sua definizione nella teoria degli insiemi.

Definizione. Sia data una collezione di insiemi O p E 2, ..., E p, non necessariamente diversi. Allora la relazione K definita su questi insiemi è l'insieme delle tuple ordinate tali che

Nel modello di dati relazionale, gli insiemi sono domini.

Esempio: dati due domini E, = (a, b, c) ed E 2 = (1,2). Una relazione costruita su questi domini può essere = (, ). Un'altra relazione costruita sugli stessi domini: I 2 = (, ).

Proprietà della relazione:

  • le tuple della relazione non sono ordinate;
  • i domini all'interno delle tuple sono ordinati.

Definizione. Attributi specificare come viene utilizzato il dominio all'interno di una relazione.

In connessione con l'introduzione del concetto di attributo nel modello di dati relazionale, viene introdotto il concetto di schema di relazione.

Definizione. Diagramma delle relazioniè una raccolta denominata di coppie

Uno schema di relazione rappresenta l'intensione di una relazione.

Diamo un'occhiata a un esempio. Si diano due domini: NUMBER e STRING. In relazione a DEPARTMENT, il dominio NUM viene utilizzato per specificare il numero del dipartimento: inserisci l'attributo Numero del dipartimento, e il dominio STRING viene utilizzato per impostare l'attributo nome del dipartimento Nome. Quindi la relazione REPARTO corrisponde al seguente diagramma di relazione:

DIPARTIMENTO (Numero dipartimento: NUMERO, Nome: LINEA).

In generale, come accennato in precedenza, può esistere un dominio composito. Secondo la sua definizione, un dominio composto è una relazione costruita anche su domini semplici. Ma in una relazione del genere gli attributi non compaiono. Torniamo al dominio STORIA SALARIO. È costruito sui domini semplici YEAR e MONEY e può essere specificato come segue:

STORIA DEL SALARIO (ANNO, DENARO).

I domini compositi possono essere utilizzati anche per definire uno schema di relazione. Considera la relazione DIPENDENTE. I suoi attributi possono essere Impiegato numero(definito sul dominio NUMER), Nome(sul dominio STRING) e Stipendio, definito nel dominio STORIA SALARIO:

DIPENDENTE (Impiegato numero: NUMERO, Nome: LINEA, Stipendio: STORIA DEL SALARIO).

Una specifica implementazione (estensionale) di questa relazione può avere la forma mostrata in Fig. 5.1.

Riso. 5.1. Un esempio di rappresentazione del rapporto DIPENDENTE

Il requisito fondamentale del modello dati relazionale è: tutte le relazioni devono essere normalizzate.

Definizione. Atteggiamento normalizzatoè una relazione in cui ciascun valore di attributo è atomico.

In altre parole, solo i domini semplici possono essere utilizzati in una relazione normalizzata. Secondo questa definizione, l'esempio fornito (vedi Figura 5.1) rappresenta una relazione non normalizzata, che non è consentita nel modello di dati relazionali.

Le relazioni non normalizzate sono molto facili da trasformare in relazioni normalizzate. Per fare ciò, in uno schema di relazione, un dominio composto viene sostituito dai suoi domini semplici costituenti e, in un'implementazione di relazione, i valori degli attributi definiti su altri domini vengono ripetuti per ciascuna tupla del dominio composto. Pertanto, normalizzando il rapporto sopra riportato si otterrà il seguente rapporto normalizzato, presentato in Fig. 5.2.

Riso. 5.2. Atteggiamento normalizzato dei DIPENDENTI

Proprietà della relazione del modello dati relazionale.

  • 1. Ciascun attributo di relazione ha un nome univoco in questa relazione.
  • 2. Ogni attributo è definito su un singolo dominio.
  • 3. È possibile definire più attributi sullo stesso dominio.
  • 4. Il nome dell'attributo può essere uguale al nome del dominio.
  • 5. L'ordine degli attributi non è stabilito (gli attributi nella definizione dello schema di relazione non sono ordinati).
  • 6. Non ci sono tuple corrispondenti nella relazione (ogni tupla è unica).
  • 7. L'ordine delle tuple non è stabilito (le tuple nella relazione non sono ordinate).
  • 8. Una relazione ha un nome diverso nello schema del database dai nomi di tutte le altre relazioni.

Nota: spesso gli insiemi intuitivi vengono utilizzati come domini: ad esempio, nell'esempio precedente è intuitivamente chiaro che Numero del dipartimento - questo è un numero e Nomeè una stringa. Di conseguenza, il nome di dominio viene spesso omesso dallo schema di relazione:

DIPARTIMENTO (Numero del dipartimento, Nome).

In un modello di dati relazionale, una relazione è un singolo componente strutturale utilizzato per rappresentare sia un'entità che una relazione.

Rappresentazione dell'ente

Per rappresentazione di entità si intende la capacità di identificare in modo univoco ogni singola tupla di una relazione mediante i valori dei suoi attributi. Poiché in una relazione non esistono tuple duplicate, ogni tupla è unica e può essere identificata dai valori di tutti i suoi attributi. Tuttavia, di regola, nelle tuple è possibile distinguere un certo sottoinsieme di attributi i cui valori sono unici per tutte le implementazioni della relazione: presente, passato e futuro. Tali sottoinsiemi di attributi sono chiavi.

Definizione. Chiaveè un insieme di attributi che identifica in modo univoco ciascuna tupla di una determinata relazione.

La chiave può contenere attributi aggiuntivi non necessari per identificare in modo univoco la tupla. Pertanto, l'RMD introduce il concetto di chiave primaria, costituita solo da quegli attributi realmente necessari per l'identificazione univoca di una tupla.

Definizione. Chiave primaria(PK - Primary Key) - un insieme non ridondante di attributi i cui valori definiscono in modo univoco la tupla della relazione.

Una chiave primaria non è ridondante se:

  • a) è costituito da un attributo;
  • b) è composta da più attributi, ma nessuno di questi attributi è superfluo per identificare univocamente ciascuna tupla (se una chiave è composta da più attributi, viene chiamata composto).

Pertanto, secondo la definizione, la chiave primaria di una relazione ha le seguenti due proprietà:

  • unico: ogni tupla in una relazione è identificata in modo univoco dal suo valore chiave;
  • irriducibilità: nessun sottoinsieme appropriato di una chiave ha la proprietà di unicità.

Una relazione può avere solo una chiave primaria. Se in una relazione possono essere identificati più insiemi di attributi, ognuno dei quali identifica in modo univoco e non ridondante ciascuna tupla della relazione, allora uno di essi viene selezionato come chiave primaria e tutti gli altri sono chiavi alternative (AK - Alternate Key ). Ad esempio, in relazione a

DIPARTIMENTO ( Numero del dipartimento, Nome)

ciascuno degli attributi identifica in modo univoco ciascuna tupla. Se l'attributo è selezionato come chiave primaria Numero del dipartimento, quindi l'attributo Nomeè una chiave alternativa.

Nel diagramma delle relazioni sottolineeremo la chiave primaria e dopo le chiavi alternative aggiungeremo la sigla AK:

DIPARTIMENTO ( Numero del dipartimento. Nome(AK)).

Connessioni

Le relazioni tra entità riflettono le relazioni tra istanze specifiche di entità. Queste relazioni sono rappresentate utilizzando chiavi esterne.

Definizione. Chiave esterna(FK - Foreign Key) è un attributo o un certo insieme di attributi della relazione R1, che non sono attributi propri della relazione R1, ma il loro valore coincide con i valori della chiave primaria di una qualche relazione R2 (la non è esclusa la possibilità di identità di R1 e R2).

Gli attributi della chiave esterna sono alcuni attributi aggiuntivi che non definiscono l'entità stessa, ma consentono di stabilire associazioni con un'altra entità.

I principali tipi di relazioni tra entità sono le relazioni 1:p e p:p. Consideriamo la rappresentazione di queste connessioni. Iniziamo con una connessione 1:p.

Consideriamo le seguenti relazioni:

  • DIPENDENTE con attributi Impiegato numero(chiave primaria), Nome E Anno di nascita;
  • REPARTO con attributi Numero del dipartimento(chiave primaria) e Nome.

Tra queste relazioni viene definita una relazione 1:n: ogni dipendente lavora in un dipartimento specifico e molti dipendenti lavorano in ciascun dipartimento. Nella fig. La Figura 5.3 mostra il corrispondente diagramma entità-relazione nella notazione proposta da P. Chen.

Questa relazione è definita dall'attributo chiave esterna nella relazione DIPENDENTE: la chiave esterna è inclusa in questa relazione Numero del dipartimento, i cui valori corrispondono ai valori della chiave primaria Numero del dipartimento DIPARTIMENTO relazioni Nel diagramma delle relazioni contrassegneremo gli attributi della chiave esterna con l'abbreviazione FK. I diagrammi delle relazioni saranno simili a questi:

DIPARTIMENTO (Numero del dipartimento. Nome(AK));

DIPENDENTE (Impiegato numero. Nome, Anno di nascita,

Numero del dipartimento(FK)).

Riso. 5.3. Rappresentazione di una connessione di tipo 1:n in un diagramma di P. Chen

Le implementazioni che soddisfano questi modelli di relazione sono mostrate in Fig. 5.4.

Riso. 5.4. Esempio di rappresentazione del tipo di collegamento 1: n in RMD

In questo esempio, una tupla può apparire nella relazione DIPENDENTE, ma non può apparire una tupla, poiché in questa tupla il valore “5” della chiave esterna della relazione DIPENDENTE non corrisponde ad alcun valore della chiave primaria della relazione DIPARTIMENTO .

Pertanto, le relazioni di tipo 1:n non sono rappresentate in modo specifico in alcun modo, solo nella relazione sul lato “molti” compaiono gli attributi delle chiavi esterne;

Va notato che la notazione IDEFlx corrisponde pienamente alla rappresentazione della comunicazione nel RMD (Fig. 5.5).

Dipartimento / Impiegato E1 / E2


Riso. 5.5. Rappresentazione di una relazione di tipo 1: n nella notazione IDEF1 x

Consideriamo la rappresentazione di una connessione n:n. Ad esempio, una relazione FORNITORE con attributi Numero del fornitore(chiave primaria), Nome E Indirizzo e la relazione DETAIL con gli attributi Numero del dettaglio(chiave primaria), Nome E Prezzo. Tra queste relazioni viene definita una relazione n:n: ciascun fornitore fornisce molte parti e ciascuna parte viene fornita da molti fornitori. Il corrispondente diagramma entità-relazione nella notazione proposta da P. Chen è mostrato in Fig. 5.6.


Riso. 5.6. Rappresentazione della connessione di tipo n:n nel diagramma di P. Chen

In questo caso, nell'RMD, la relazione SUPPLY (SUPPLIER, PART) è rappresentata come una relazione a sé stante, che avrà attributi di chiave esterna che fanno riferimento alle relazioni SUPPLIER e PART. Questi attributi possono far parte della chiave primaria di una relazione. Inoltre, una relazione di relazione può avere un proprio attributo. I diagrammi delle relazioni saranno simili a questi:

FORNITORE ( Numero del fornitore. Nome indirizzo)",

DETTAGLIO ( Numero del dettaglio. Nome, Prezzo)",

CONSEGNA ( Numero del fornitore (bKI. Numero di parte (LK2).

Quantità).

Un esempio dell’implementazione di queste relazioni è mostrato in Fig. 5.7.

E in questo caso la notazione SEE1x corrisponde pienamente all'RMD. Nelle prime fasi della progettazione possono comparire connessioni di tipo n: n, che nelle fasi successive vengono sostituite da un'ulteriore relazione di entità e due connessioni di tipo 1: n (Fig. 5.8). Pertanto, in futuro, la notazione JEE1x verrà utilizzata per illustrare diagrammi di relazioni e connessioni tra relazioni.

Riso. 5.7. Esempio di rappresentazione del tipo di connessione p:p in RMD

Parte /E2

Fornitore/E1

Forniture/_

fornito

a) connessione incerta

Fornitore / E1

Parte /E2

esegue

Numero di parte (EK2)

Quantità

  • -partecipa- 1
  • b) trasformazione in una connessione specifica

Riso. 5.8. Conversione di una relazione n:p in una relazione di tipo 1:p nella notazione UEP1x

PARTE INTEGRANTE DEL MODELLO RELAZIONALE DEI DATI

Il modello dati relazionale definisce due requisiti di integrità di base supportati da qualsiasi DBMS relazionale:

  • requisito di integrità dell'entità;
  • requisito di integrità referenziale o integrità referenziale.

Integrità dell'entità

Un oggetto o entità del mondo reale in un database relazionale ha una tupla di relazione. Il requisito di integrità per le entità è il seguente: qualsiasi tupla di qualsiasi relazione deve essere distinguibile da qualsiasi altra tupla della stessa relazione.

Questo requisito significa che ogni relazione deve avere una chiave primaria. Questo requisito viene soddisfatto automaticamente se le proprietà fondamentali delle relazioni non vengono violate nel sistema.

Inoltre possono essere previste le seguenti limitazioni:

  • unicità dei valori degli attributi; definisce chiavi di relazione alternative;
  • significato obbligatorio; in caso di inserimento di nuovi o di modifica di elementi di relazione esistenti è necessario specificare i valori degli attributi corrispondenti;
  • ammissibilità dei valori degli attributi; i valori inseriti devono soddisfare alcune condizioni specificate.

Integrità referenziale

I vincoli di integrità referenziale nel modello di dati relazionale sono condizioni imposte alla coesistenza di tuple nelle relazioni correlate. Come discusso in precedenza, in un database relazionale, le relazioni tra relazioni vengono rappresentate utilizzando chiavi esterne. Torniamo all'esempio in cui è stata considerata la relazione REPARTO e DIPENDENTE (vedi Fig. 5.5):

DIPARTIMENTO (Numero del dipartimento. Nome(AK));

DIPENDENTE (Impiegato numero . Nome, Anno di nascita,

Numero del dipartimento(EK)).

Attributo chiave esterna Numero del dipartimento in relazione a DIPENDENTE consente di ottenere informazioni complete sullo specifico reparto in cui lavora uno specifico dipendente.

Tipicamente viene chiamata la relazione in cui viene definita una chiave esterna relazione infantile e la relazione a cui fa riferimento la chiave esterna è atteggiamento genitoriale. Quindi, nel nostro esempio, la relazione EMPLOYEE è una relazione figlia e la relazione DEPARTMENT è una relazione genitore.

Il requisito dell'integrità referenziale è che il valore di un attributo di chiave esterna in qualsiasi tupla di una relazione figlia deve corrispondere al valore di un attributo di chiave primaria in qualche tupla della relazione genitore.

In altre parole, il requisito di integrità referenziale significa questo ciò a cui ci riferiamo deve esistere.

Quando si eseguono operazioni relative alla modifica delle relazioni (operazioni di inserimento ed eliminazione di tuple, modifica del valore della chiave corrispondente), è necessario monitorare i requisiti di integrità (Fig. 5.9).

Relazione genitore. Relazione figlio

Comunicazione......a

  • - inserire - inserire
  • - cancellazione - cancellazione
  • - modifica della Repubblica del Kazakistan - modifica della Repubblica del Kazakistan

Riso. 5.9. Operazioni per modificare le relazioni genitore e figlio

Consideriamo le caratteristiche dell'esecuzione di queste operazioni.

  • 1. Tutte le operazioni con una relazione figlia devono soddisfare i requisiti di integrità referenziale:
    • Quando si inserisce un nuovo elemento, quell'elemento deve avere un valore di attributo di chiave esterna valido;
    • la cancellazione degli elementi viene eseguita senza alcuna restrizione;
    • Quando si modifica la chiave esterna di qualche elemento, quell'elemento deve ricevere un valore valido per gli attributi della chiave esterna.
  • 2. Le operazioni con relazione madre vengono eseguite secondo le seguenti regole:
    • l'inserimento di un nuovo elemento avviene senza alcuna restrizione;
    • La rimozione di un elemento non dovrebbe portare a una violazione dell'integrità referenziale. Se c'è un elemento in una relazione figlia che fa riferimento a un elemento nella relazione genitore che viene eliminato, cosa dovremmo farne? Ci sono tre possibili approcci qui:
      • a) la cancellazione di un elemento da una relazione genitore non viene eseguita se c'è almeno un elemento nella relazione figlia che fa riferimento a quello da cancellare;
      • b) insieme all'elemento della relazione genitore, vengono cancellati tutti gli elementi della relazione figlio che fanno riferimento ad esso;
      • c) agli attributi di chiave esterna della relazione figlia viene assegnato un valore vuoto (ogni DBMS utilizza il proprio modo di assegnare un valore vuoto); Questo approccio è possibile se gli attributi della chiave esterna della relazione figlia non hanno un vincolo di valore richiesto;
    • Anche la modifica del valore della chiave primaria di un elemento esistente non deve portare a una violazione dell'integrità referenziale. Anche qui sono possibili gli stessi tre approcci:
      • a) la modifica della chiave primaria di un elemento della relazione genitore non viene eseguita se c'è almeno un elemento nella relazione figlio che fa riferimento a quello che si sta modificando;
      • b) insieme all'elemento della relazione genitore, vengono modificati i valori degli attributi della chiave esterna di tutti gli elementi della relazione figlia che fanno riferimento ad esso;
      • c) agli attributi di chiave esterna della relazione figlia viene assegnato un valore vuoto; Questo approccio è possibile se gli attributi della chiave esterna della relazione figlia non hanno un vincolo di valore richiesto.

LA MANIPOLAZIONE PARTE DEL MODELLO RELAZIONALE DEI DATI

caratteristiche generali

Il modello relazionale dei dati si basa su alcune sezioni della teoria matematica delle relazioni e della logica matematica. Questa base teorica matematica consente la creazione di linguaggi di interrogazione efficienti per database relazionali.

La parte di manipolazione del modello dati relazionale è costituita da operatori di specifica che sono naturali per il modello dati e basati sui concetti della teoria degli insiemi.

In generale, i linguaggi di query nel modello dati relazionale sono divisi in due classi:

  • linguaggi algebrici (algebra relazionale), che consentono di esprimere interrogazioni utilizzando operatori speciali applicati alle relazioni;
  • linguaggi di calcolo dei predicati (calcolo relazionale), in cui le query descrivono l'insieme di tuple richiesto specificando un predicato che tali tuple devono soddisfare.

Dalla definizione precedente segue:

  • I linguaggi di algebra relazionale mostrano come ottenere il risultato;
  • I linguaggi di calcolo relazionale mostrano cosa si deve ottenere.

I linguaggi di calcolo relazionale, a loro volta, si dividono in due classi - a seconda di quali siano gli oggetti primitivi del calcolo - tuple o elementi di dominio, che sono i valori di alcuni attributi.

Pertanto, per riassumere quanto sopra, possiamo definire tre tipi di linguaggi di query:

  • linguaggi dell'algebra relazionale;
  • linguaggi di calcolo relazionale con variabili - tuple;
  • Linguaggi di calcolo relazionale con variabili di dominio.

I linguaggi di algebra relazionale consentono di esprimere le query in termini di operazioni specializzate applicate alle relazioni.

I linguaggi di calcolo relazionale consentono di esprimere query specificando un predicato che le tuple (calcolo delle variabili di tuple) o gli elementi di dominio (calcolo delle variabili di dominio) devono soddisfare.

Tali linguaggi di query teorici sono il punto di riferimento per valutare i linguaggi di query nella vita reale. Sono stati proposti da E.F. Codd per presentare le capacità minime di qualsiasi linguaggio di query relazionale per il modello relazionale. In termini di espressività (dal punto di vista dell'ottenimento delle informazioni necessarie da un database relazionale), tutti e tre i tipi di linguaggi di query sono equivalenti tra loro.

I veri linguaggi di query forniscono le funzioni del linguaggio teorico corrispondente o la loro combinazione e, inoltre, implementano alcune operazioni aggiuntive (aritmetica e alcune altre).

Algebra relazionale. caratteristiche generali

Algebra relazionale fornisce un mezzo per scrivere e interpretare le espressioni. Un'espressione algebrica ha la struttura usuale: un insieme di operandi separati da segni di operazione. Il risultato di un'espressione è determinato dagli operandi e dalle operazioni in essa utilizzate. L'algebra relazionale rappresenta un insieme di operazioni che utilizzano le relazioni come operandi e restituiscono anche una relazione come risultato, ad es. rappresenta operazioni sulle relazioni:

IO optare E. E..

E.F. Codd ha definito un insieme minimo di operazioni sulle relazioni; Tutte le operazioni incluse in questo set possono essere divise in due gruppi.

  • 1. Operazioni insiemistiche - operazioni tradizionali sugli insiemi, definite dalla teoria degli insiemi; Questi includono:
    • Unione;
    • sottrazione;
    • intersezione;
  • 2. Operazioni relazionali particolari; Questi includono:
    • scelta (selezione);
    • proiezione;
    • composto;
    • divisione.

Particolare attenzione va posta all'operazione di ridenominazione, che appartiene al secondo gruppo di operazioni.

Da quanto sopra esposto si possono trarre due importanti conclusioni.

1. Gli operandi delle operazioni relazionali sono relazioni; il risultato è anche l'atteggiamento. Questa proprietà si chiama proprietà di chiusura. Consente di utilizzare il risultato di un'operazione come input (operando) per un'altra.

Pertanto possiamo scrivere espressioni nidificate, cioè. espressioni in cui gli operandi sono rappresentati non da semplici nomi di relazione, ma da altre espressioni:

A, optare] io 2 optare 2 ...

  • 2. Utilizzando il termine atteggiamento, Va ricordato che in realtà abbiamo a che fare con due concetti:
    • schema di relazione (intensione);
    • istanza (realizzazione) di una relazione (estensionale).

Dato che un'operazione relazionale risulta in una relazione, avrà quindi, oltre ad un'implementazione, anche uno schema di relazione.

Poiché uno schema di relazione è una raccolta denominata di nomi di attributi, vengono definite le operazioni relazionali regole per ereditare i nomi degli attributi, in base al quale si determina lo schema della relazione che è il risultato dell'operazione relazionale. Queste regole di ereditarietà consentono di prevedere i nomi degli attributi nell'output dell'operazione.

Un prerequisito per definire uno schema di relazione è l'unicità dei nomi degli attributi nello schema. Affinché la relazione risultante abbia lo schema corretto contenente i nomi degli attributi corretti (unici nello schema specificato), è necessario uno speciale operazione di ridenominazione permettendoti di rinominare un attributo in uno schema di relazione. È da notare che l'operazione di ridenominazione cambia soltanto lo schema della relazione; l'implementazione della relazione risultante è esattamente la stessa dell'implementazione della relazione originale.

Diamo un'occhiata a un esempio. Lascia che ci sia una relazione con il circuito 8 (A, B, C) e qualche implementazione:

È possibile utilizzare, ad esempio, la seguente operazione di ridenominazione:

B: rinominare C in 8C.

Di conseguenza, otteniamo una relazione con il seguente circuito 81 (A, B, 8C) e la stessa implementazione:

Le operazioni di ridenominazione non verranno utilizzate esplicitamente nelle espressioni di algebra relazionale, ma, ove necessario, si farà riferimento all'operazione di ridenominazione per definire lo schema di relazione dei risultati appropriato.

Operazioni insiemistiche

Come affermato in precedenza, le operazioni della teoria degli insiemi sono operazioni tradizionali sugli insiemi definite dalla teoria degli insiemi; Questi includono:

  • Unione;
  • sottrazione;
  • intersezione;
  • prodotto diretto (cartesiano).

Ma va notato che le operazioni relazionali presentano una differenza significativa rispetto a quelle classiche definite nella teoria degli insiemi.

Diamo un'occhiata a questa differenza usando l'esempio di un'operazione di unione. L'operazione di unione nella teoria degli insiemi è definita come segue.

Definizione. Vengono forniti due insiemi: 81 e 82. L'unione di questi insiemi è l'insieme 8, i cui elementi appartengono al primo insieme 81 e (o) al secondo insieme 82:

8 = 81 e 82 = (5|5e 81 e/o essere 82).

Graficamente ciò può essere rappresentato come segue (Fig. 5.10).

impostare 1

insieme 2

unione di insiemi

Riso. 5.10. Unione di insiemi

Il modello dati relazionale considera l'unione di insiemi - domini e/o relazioni.

Unione di domini. Nel modello dati relazionale, un dominio è un insieme di elementi dello stesso tipo. Unirsi

gli scambi devono creare un nuovo dominio. Siano dati i seguenti domini:

O, = (1, 3, 5, 7, 9); B2=(“a”, b “c”); O, = (2, 4, 6, 8). Quindi un nuovo insieme è definito nella teoria degli insiemi:

B = E e E 2 = (1, 3, 5, 7, 9, "a", "b"c").

Ma per il modello di dati relazionale, l'insieme risultante non è un dominio, poiché contiene elementi di tipo diverso. Pertanto, questa operazione non è definita nel modello dati relazionale per gli operandi specificati.

D'altra parte, il nuovo set

0 = 0 e 0 3 = (1,3, 5,7,9, 2,4, 6, 8)

contiene elementi dello stesso tipo, ad es. è un dominio. Pertanto, in questo caso, per questi operandi è definita l'operazione di unione.

Unire le relazioni. Nel modello dati relazionale, una relazione è un insieme di tuple che soddisfano un singolo schema. Anche l’unione delle relazioni deve risultare in una relazione.

Si definiscano i seguenti modelli di relazione definiti sui domini di cui sopra:

Le realizzazioni di queste relazioni possono avere la seguente forma: r, = ( , ); r2 = ( , ); g3 = ( , ).

Quindi un nuovo insieme è definito nella teoria degli insiemi: r = r, e r 2 = ( , ).

Ma per il modello relazionale dei dati, l'insieme risultante non è una relazione, poiché le tuple di questo insieme corrispondono a diversi schemi di relazione. D'altra parte, molti

g = g,ig3 = ( , )

è una relazione, sebbene gli schemi delle relazioni iniziali I, AND I 3 siano diversi.

A questo proposito, l'algebra relazionale considera la proprietà compatibilità associativa.

Definizione. Semplice domini sono considerati compatibile per associazione, se sono costituiti da elementi dello stesso tipo.

Per gli esempi precedenti, i domini e sono incompatibili per associazione, e O ed E 3 sono compatibili per associazione.

Definizione. Due relazione sono considerati compatibile per associazione, Se:

  • entrambe le relazioni hanno lo stesso insieme di attributi;
  • gli stessi attributi di due relazioni sono definiti su domini compatibili per associazione.

Pertanto, negli esempi precedenti, le relazioni I e I 3 sono compatibili per associazione, poiché i loro attributi con lo stesso nome sono definiti su domini compatibili per associazione.

Se è necessario verificare la compatibilità delle relazioni combinate che utilizzano nomi di attributi diversi nei loro schemi, in base alla semantica degli attributi è possibile rinominarli utilizzando l'operazione di ridenominazione. Successivamente, viene verificata la compatibilità delle relazioni risultanti. Ad esempio, data un'altra relazione I 4 (BpO p B 2:0 3) e dobbiamo verificare se questa relazione è compatibile per associazione con la relazione Ya Innanzitutto, mediante l'operazione di rinomina, otteniamo una nuova relazione I 4 ( ApOp A 2:0 3):

I 4: rinominare B, in A r B 2 in A 2.

Dopodiché puoi controllare la relazione I! e I 4 per compatibilità per associazione. Puoi ugualmente utilizzare l'operazione di ridenominazione:

Yar rinomina A [ in B r A 2 in B g

Consideriamo ora tutte le operazioni dell'algebra relazionale. Nelle definizioni di operazioni ed esempi, le lettere minuscole indicano implementazioni di relazioni e le lettere maiuscole indicano schemi di relazione; una notazione della forma r(R) significa: una realizzazione della relazione r che soddisfa lo schema R.

Unire le relazioni

Definizione. Combinazione di due relazioni r ^ R,) e r 2 (R 2), compatibili per associazione, è detta relazione b = g, e r 2, per cui:

  • a) lo schema di relazione coincide con I., oppure I 2;
  • b) l'implementazione di una relazione rappresenta un insieme di tuple appartenenti all'implementazione di r (e (o) r 2 .

Ingresso formale:

dato g/K,), g 2 (I 2), g 1 = inferno, g 2 = inferno, I, = I, I 2 = I;

B = G e Sol 2 = 8 (I), B = | ^? G 1 E/O V

5 = SOL 1 e SOL 2

Proprietà dell'operazione:

  • commutativo - r 1 e r 2 = r 2 e r;
  • associativo - g ] e (g 2 e g 3) = (g 1 e g 2) e g 3 = g ] e g 2 e g 3.

Rapporti di sottrazione

Definizione. Sottraendo due rapporti rDYa^ e r 2 (R 2), compatibili per associazione, è detta relazione b = r, - r 2, per cui:

  • b) l'implementazione di una relazione rappresenta un insieme di tuple appartenenti all'implementazione di r ad eccezione di quelle presenti in r 2 .

Ingresso formale:

dato g,(I,), g 2 (I 2), g, = inferno, g 2 = inferno, I, = I, I 2 = I;

8 = r, - r 2 = 8(I), B = I ^€ r, I G.

Proprietà dell'operazione:

  • non commutativo;
  • non associativo.

Intersezione di relazioni

Definizione. L'intersezione di due relazioni r^I^) e r 2 (11 2), compatibili per associazione, è detta relazione b = n g 7, per cui:

  • a) lo schema di relazione coincide con I, oppure I 2;
  • b) l'implementazione della relazione rappresenta un insieme di tuple contenute sia in r che in r 2 .

Ingresso formale:

dato r,(K,), r 2 (I 2), r, = (g e), g2 = io, = io, io 2 = io;

B = G! PG SOL 2 = 8(I), B = | ^? G, io ^

8 = SOL 1 SOL 2

Proprietà dell'operazione:

  • commutativo - g1 p g2 = g2 p g1;
  • associativo - g1 p (g2 p gZ) = (g1 p g2) p gZ = g1 p g2 p gZ. L’operazione di intersezione può essere espressa attraverso l’operazione di sottrazione:

SOL 1 PA 2 = SOL 1 - (SOL 1 _SOL 2) -

Prodotto cartesiano di relazioni

Qui le relazioni r^R^ e g2 (K2) possono avere schemi diversi, non necessariamente compatibili per associazione. Prima di eseguire l'operazione del prodotto cartesiano, è necessario rinominare gli attributi negli schemi di relazione I o I 2 in modo che i nomi di tutti gli attributi siano diversi.

Definizione. Prodotto cartesiano di due relazioni rДЯ^ e r 2 (I 2), i cui schemi di relazione non hanno attributi con lo stesso nome, ad es. I 1 n I 2 = 0, è chiamata la relazione b = g] x g 2, per cui:

  • a) lo schema relazionale è determinato dall'accoppiamento (unificazione) degli schemi I e I 2;
  • b) l'implementazione di una relazione rappresenta un insieme di tuple, che si ottiene concatenando ciascuna tupla di r 1 con ciascuna tupla di r 2.

Ingresso formale:

dato r,(I,), I,(A r A 2 ,..., A t), r 2 (I 2), I 2 (B r B 2,..., V p),

à 1 = è è ), à 2 = (^), È,нÈ 2 = 0;

b = g1 x g2 = b(I), I(A r A 2, A t, V r B 2,..., V p),

in = (i.u.|i.e Gr cu G2).

Proprietà dell'operazione:

  • commutativo - r, x r 2 = r 2 x Gr
  • associativo - g] x (g 2 x g 3) = (g! x g 2) x g 3 = ^ x g 2 x g 3.

Nella teoria degli insiemi, questa operazione non è né commutativa né associativa, poiché gli insiemi definiscono l'ordine in cui vengono elencati gli elementi in una tupla. Poiché una delle proprietà del modello dati relazionale è la mancanza di ordinamento degli attributi, questa operazione acquisisce le proprietà specificate.

Operazioni speciali

Le operazioni speciali dell'algebra relazionale includono:

  • proiezione;
  • scelta (o selezione);
  • composto;
  • divisione.

Le operazioni speciali sono definite solo per le relazioni normalizzate. In queste operazioni, insieme alle relazioni stesse, partecipano anche i loro attributi. Nelle relazioni del modello dati relazionale, è possibile accedere agli attributi per nome o per posizione nel diagramma delle relazioni. Utilizzeremo gli attributi per nome.

Proiezione

Questa operazione è un'operazione unaria sulle relazioni, cioè In questa operazione è coinvolta solo una relazione.

Definizione. Proiezione della relazione g(A), A = (A()), in alcune liste di nomi di attributi (sottoinsieme di attributi) b da A, b con A, è chiamata la relazione B = 71 b(g), PER LA QUALE!

  • lo schema delle relazioni è determinato dalla lista b;
  • l'implementazione di una relazione è un insieme di tuple ottenute dalle tuple della relazione r eliminando elementi corrispondenti agli attributi L - C ed escludendo i duplicati.

Ingresso formale:

dato r(A), A(A, A 2 ,..., A t), r = ();

5(b) = 71 b(g), CVR in 2,..., in k), B; c L, b = (

tale che a = I se B 1 = A^).

La proiezione fornisce un sottoinsieme verticale della relazione.

Proprietà di proiezione:

se Y c X c A, allora m y (l: x (r)) = l; y(g).

Questa operazione è anche chiamata limitazione E selezione. Anche un'operazione unaria su una relazione.

Definizione. Scegliendo dall'atteggiamento r(A) per la condizione A è chiamata relazione B = Op(r), per cui:

  • lo schema di relazione coincide con lo schema A;
  • l'implementazione di una relazione è un insieme di tuple da r che soddisfano la condizione K

Notazione formale: dato r(L), r = (1;);

L) = o n (g), b = (i, | e |

La condizione (predicato) I è scritta secondo le seguenti regole:

  • gli attributi e/o le costanti della relazione possono essere specificati come operandi;
  • Operazioni relazionali (=, f, ecc.) e operazioni logiche (l, v, -n).

Per indicare l'ordine di valutazione del predicato P, si possono usare parentesi.

La selezione produce un sottoinsieme orizzontale della relazione.

Proprietà dell'operazione:

  • commutativo - a P1 (Op 2 (g)) = Op 2 (a n (g)) = o P1l P2 (g);
  • distributivo rispetto alle operazioni y = (n, u, -):

^p(guz) = Or(g) var(5).

L'operazione di selezione restringe le tuple della relazione originaria ai valori che soddisfano la condizione.

Composto

Nell'algebra relazionale vengono considerate due modifiche di questa operazione: unione naturale e unione condizionale (o 0-join).

Connessione naturale

Definizione. Connessione naturale delle relazioni r,(I,), I, = XY, e r 2 (I 2), I 2 = dove Y è un sottoinsieme comune di attributi da I e I 2, definiti sugli stessi domini, la relazione b(I) si chiama = g (M g 2, per cui:

  • diagramma delle relazioni I = I e I 2 = XY7;
  • l'implementazione di una relazione è un insieme di tuple (1) per le quali

Ingresso formale:

dato r^R^, R, = XY, e r 2 (R 2), R 2 =

b(I) = g, g 2, I = I e I 2 = XYZ e = (I | tale che 71 xy (1:)

b = SOL1XI SOL2

Il composto naturale dato si chiama interno, O Chiuso, poiché il risultato dell'operazione contiene solo quelle tuple di due relazioni che hanno valori corrispondenti di attributi con lo stesso nome. Insieme a questa operazione, viene considerata anche l'operazione di un'unione esterna o naturale aperta e esistono varietà dell'operazione di unione esterna: unione esterna sinistra, destra e completa.

Il risultato dell'operazione di unione esterna sinistra r, x] r 2 include il risultato dell'operazione di unione naturale, integrato da quelle tuple di r per le quali non esistono tuple corrispondenti di r 7; per tali tuple, i valori degli attributi ereditati da r7 vengono impostati su valori vuoti.

Il risultato dell'operazione di unione esterna destra r 1 x r 2 include il risultato dell'operazione di unione naturale, integrato da quelle tuple di r 7 per le quali non esistono tuple corrispondenti di r; per tali tuple, i valori degli attributi ereditati da r sono impostati su valori vuoti.

Infine, il risultato dell'operazione di unione esterna completa G! x r 2 include il risultato dell'operazione di unione naturale, integrato da entrambe le tuple di r per le quali non esistono tuple corrispondenti di r 2, e tuple di r 2 per le quali non esistono tuple corrispondenti di Gr con valori vuoti del corrispondente attributi ereditati.

Connessione per condizione

Definizione. Date due relazioni r^Rj) e r 2 (R 2), per le quali non esistono attributi con gli stessi nomi in R e R 2, cioè R, n R 2 = 0. Si confronti l'attributo A e Rj mediante la condizione 0 con l'attributo B e R (la condizione 0 è definita allo stesso modo del predicato F nell'operazione di selezione). Poi relazioni di collegamento rj(Rj) e r2 (R2) per condizione 0 è la relazione s(R) = r, r 2 per cui:

  • diagramma delle relazioni R = R, u R 2:
  • l'implementazione di una relazione è un insieme di tuple ottenute concatenando tuple da r, e r 2, che soddisfano la condizione A0B.

Ingresso formale:

dati rj(Rj) e r 2 (R 2), R, n R 2 = 0;

s(R) = r t r 2 , R = R, u R 2 , s = (uv | tale che u e r p v

e la condizione v 0 è soddisfatta).

Gli attributi A e B possono essere compositi, cioè A = (A p A 2, ..., A p), B = (Bp B 2, ..., B p Allora A0B = [A,0, Bp A 2 0 9 B 2, ...). , A n 0 n BJ. Le operazioni 0j possono essere diverse. Ad esempio, sia dato g, (Ap A 2, AD e g 2 (Bp B 2, B 3), e tutti gli attributi siano definiti su domini numerici. Quindi è possibile ottenere una connessione secondo la condizione:

C = SOL M A

ъ 11 V

Se l'operazione = viene utilizzata come operatore 0, tale unione viene denominata equijoin per condizione.

Definizione. Dati due rapporti gDI^) e r 2 (11 2), per cui 11 2 s I! e I 2 non è vuoto. Il quoziente della separazione della relazione r dalla relazione r 2 è la relazione 8(R) = G ]-n g 2, per cui:

  • diagramma di relazione I = I, - I 2,
  • L'implementazione di una relazione è un insieme di tuple I tale che for all e. es g 2 esiste V. 6 g 1 tale che y.(I ​​​​1 - I 2) = I e y/I 2) = u.

Ingresso formale:

dato r,(R,), r 2 (R 2), R 2 con K, R 2 ^ 0;

8(I) = SOL 1 -5- SOL 2, I = I, - I 2, B = (E | V ed e SOL 2 (E e g^).

In altre parole, 8xr 2 e g r

In effetti, ci sono tuple nella relazione. C'è una tupla nella relazione r ma non c'è tupla, quindi non c'è tupla in b.

Possiamo scrivere un'espressione di algebra relazionale equivalente all'operazione di divisione:

G! + SOL 2 = L K, -I, - ,1 K | -I,“%,-I 2 X SOL 2> - SOL!>-

Diamo un'occhiata ad alcuni esempi di scrittura di query di database nel linguaggio dell'algebra relazionale.

Sia dato il seguente schema del database:

  • 8(8#, 814, 8C) - FORNITORE ( Numero del fornitore. Nome, Città)", P(?#, P1CH, RS) - DETTAGLIO ( Numero del dettaglio, Nome, Prezzo)", 8Р( 8#, Р#, OTU) - CONSEGNA (Numero del fornitore , Numero del dettaglio . Quantità).
  • 1. Ottenere i nomi dei fornitori che forniscono parti con numero PP

%^ a P#='P,'(8 M 8P))'

2. Ottenere i nomi dei fornitori che non forniscono parti con numero PP

^B!^ 8) - ^B^^P# ='RG^ 8 8P))-

3. Ottenere i nomi dei fornitori che forniscono solo il codice prodotto P (:

ts 8H (a p# =T1,(8 8P))-l: 8M (a p# ^ P1,(8 M 8P)).

4. Ottieni i nomi dei fornitori che forniscono tutte le parti:

^ 71 r#(r)) 8)-

5.3.5. Calcolo relazionale Definizioni generali

Calcolo relazionaleè alla base dell'approccio dichiarativo alla formulazione di una query di database, la cui essenza è la seguente.

Una query di database corrisponde a una formula di qualche teoria logica formale che descrive le proprietà del risultato desiderato.

La risposta ad una query è un insieme di oggetti del dominio di interpretazione (che è il database), su cui è vera la formula corrispondente alla query.

Come tale viene utilizzata una teoria logica formale teoria del calcolo dei predicati del primo ordine, in cui la formula è data nella forma predicato.

Il concetto di predicato

Dati alcuni insiemi arbitrari disgiunti a coppie E, ..., E n, n E = 0 per qualsiasi F), e variabili x p

x 2, ..., x, prendendo valori dagli insiemi corrispondenti: x ^ per qualsiasi r

Poi predicato(O funzione predicativa)è chiamata funzione P(x p x 2, x), che accetta uno dei due valori: 1 o 0 (vero o falso).

Le variabili x p x 2, x n sono chiamate variabili predicative. Gli insiemi D p D 2 , ..., D n costituiscono il dominio di interpretazione del predicato.

Nella scrittura di un predicato, insieme alle operazioni logiche l, v, il cui significato e uso sono tradizionali, vengono utilizzate operazioni speciali - quantificatori: universalità V ed esistenza 3. Il significato dell'uso dei quantificatori è il seguente:

  • Vx (f(x)) significa che per tutti i valori di “x” del dominio di interpretazione, la formula f(x) ha il valore “vero”;
  • 3x (f(x)) significa che esiste almeno un valore di "x" dal dominio di interpretazione per il quale la formula f(x) è vera.

Esempi. Sia definita la variabile “x” sull'insieme “gruppo di studio”; f(t) - la dicitura “non riceve una borsa di studio”; allora il predicato 3x (f(x)) è vero se almeno un membro del gruppo (non importa chi) riceve una borsa di studio, e falso se nessuno nel gruppo riceve una borsa di studio.

Sia definita la variabile “x” sull'insieme “gruppo di studio”; f(t) - dichiarazione “non ha debiti durante la seduta”; allora il predicato Vx (f(x)) è vero se tutti i membri del gruppo non sono in debito nella sessione, e falso se almeno un membro del gruppo è in debito.

L'uso dei quantificatori definisce il concetto gratuito E imparentato occorrenze di variabili in una formula predicativa.

L'occorrenza della variabile t nella formula |/ è correlata se la variabile t è nella formula q/ in una sottoformula che inizia con i quantificatori V o 3, che sono immediatamente seguiti dalla variabile t; si dice quindi che il quantificatore lega la variabile t. Negli altri casi t INSERISCI 1|/ liberamente.

Considera il seguente esempio:

  • (Vx(R(x,y)v3y(U(x,y,z)AQ(x,y))))v(Vx(3r(U(x,y,r)A(3x(F(x) ))).
  • 112 3 134 13 56 576 88

L'esempio numera l'uso delle variabili in relazione alla loro comparsa nei quantificatori e nella formula. Pertanto, nella prima sottoformula, tutte le occorrenze di “x” (contrassegnate con il numero 1) sono collegate dal quantificatore V; la prima occorrenza di "y" (contrassegnata con il numero 2) è gratuita; occorrenze successive "y"(contrassegnati con il numero 3) sono collegati dal quantificatore 3; l'inserimento della variabile “g” (contrassegnata con il numero 4) è libero. Nella seconda sottoformula, tutte le occorrenze della variabile “x” (contrassegnate con i numeri 5 e 8) sono collegate rispettivamente dai quantificatori V e 3;

l'occorrenza di “y” (contrassegnata con il numero 7) è gratuita; ed infine, l'occorrenza della variabile r (contrassegnata con il numero 6) è associata al quantificatore 3.

I quantificatori nel calcolo relazionale definiscono gli intervalli di valori e la visibilità delle variabili. Ciò significa quanto segue.

Tutte le variabili incluse in una formula, nella cui costruzione non sono stati utilizzati quantificatori, sono libere. Ciò significa che se durante la valutazione di una formula del predicato si ottiene il valore "vero" per un determinato insieme di variabili libere, allora questo insieme di valori di variabili libere verrà incluso nel risultato determinato dal predicato.

Se l'occorrenza di una variabile in una formula è collegata da un quantificatore, tale variabile non è visibile al di fuori della formula che collega questa variabile. Nel calcolare il valore di tale formula non viene utilizzato un valore della variabile, come nel caso delle variabili libere, ma tutti i valori del dominio di definizione di questa variabile.

Diamo un'occhiata a un esempio. Sia dato un insieme di cifre decimali E = (O, 1,2, 3, 4, 5, 6, 7, 8, 9); allora il sottoinsieme costituito da cifre pari può essere definito come segue: l'insieme di tutti i valori di y tali che la condizione sia soddisfatta:

Zx(x^ DI l x -g- 2 = 0 l y = x).

Il predicato di cui sopra viene interpretato come segue: esiste almeno un valore “x” e DI, che è pari e coincide con il valore di una variabile libera “y”. Pertanto, se la variabile libera y ha un valore particolare, ad esempio 6, il predicato fornito risulterà vero e il valore di y verrà incluso nel risultato. Se la variabile “y” ha un valore di 7 o 12, allora il predicato avrà il valore “false” e questo valore di y non sarà incluso nel risultato.

Nel calcolo relazionale, il dominio di interpretazione di un predicato è il database, cioè l'insieme di tutti i valori di tutti i domini su cui sono definiti tutti gli schemi di relazione che definiscono lo schema del database. La corrispondenza tra il predicato P e la relazione r(A p A 2 ,..., A n) è la seguente

Se P(a r a 2,..., a) = 1, cioè campione relazioni r(A r A 2 ,..., A n), cioè

Se P(b p b 2 ,..., b) = 0, allora e g.

Pertanto, i concetti di base del calcolo infinitesimale sono il concetto di variabile e il concetto di formula costruita correttamente.

Come accennato in precedenza, a seconda di come viene determinato l'intervallo di valori delle variabili utilizzate, si distinguono due tipi di calcolo relazionale:

  • calcolo relazionale con variabili tuple, per cui i domini di definizione delle variabili sono relazioni di database, cioè il valore valido di ciascuna variabile è una tupla di qualche relazione;
  • calcolo relazionale con variabili su domini, per cui gli ambiti delle definizioni di variabile sono domini che definiscono l'insieme di valori di attributo validi. Le formule costruite correttamente servono per esprimere

condizioni imposte alle variabili (tuple o domini).

Calcolo relazionale con variabili di tupla

Come già accennato, in questo caso l'ambito di definizione delle variabili sono le relazioni. Le variabili di tupla devono soddisfare un certo schema di relazione R. Una formula ben formulata (wff) determina i risultati della selezione: vengono selezionate quelle tuple per le quali wff dà il valore 1.

Indichiamo una formula costruita correttamente (un predicato i cui valori sono 0 o 1) con |/(t).

Consideriamo le regole di costruzione (/(t).

I. La base della formula sono gli atomi, che possono avere i valori 0 o 1.

Esiste tre tipi di atomi formule vj/(t).

  • 1. Sia r(R) una qualche implementazione di una relazione che soddisfa lo schema R; t è una variabile tupla che soddisfa lo schema R. Allora r(t) è un atomo; significa che t è una tupla rispetto a r (cioè la formula è vera se t e r).
  • 2. Sia r(R) una qualche implementazione della relazione che soddisfa lo schema R; u e v sono variabili tupla dalla relazione r(R) (cioè u e r, v, >, F,
  • 3. Sia u una variabile tupla dalla relazione r(R) (cioè u e r); 0 - operazione di confronto aritmetico (, >, F,

Nelle condizioni di cui sopra, la voce u[A] significa "il valore della variabile tupla e per l'attributo A".

II. La formula del calcolo relazionale (/(t), così come le occorrenze libere e vincolate delle variabili, sono determinate dalle seguenti regole ricorsive.

  • 1. Ogni atomo è una formula. Tutte le occorrenze delle variabili tupla menzionate in un atomo sono libere. Ad esempio, la formula r(0) afferma che la variabile tupla I è una tupla della relazione r(I).
  • 2. Se x(I.) è una variabile tupla dalla relazione r con lo schema I; |/(x) - una formula in cui la variabile “x” ha un'occorrenza libera; allora 3x(A) (|/(x)) è una formula in cui l'occorrenza della variabile “x” diventa un quantificatore legato 3. Questa formula afferma che esiste almeno una tupla “x” in relazione r(R) in modo tale che sostituendolo nella formula (/(x) invece di tutte le occorrenze libere di “x” otteniamo il valore “vero”. Ad esempio, la formula 3x(R) (r(x)) afferma che la relazione r non è vuoto (cioè esiste anche se ci sarebbe una tupla x appartenente a d).
  • 3. Se x(I.) è una variabile tupla dalla relazione r con lo schema I; |/(x) - una formula in cui la variabile “x” ha un'occorrenza libera; allora /x(R) (q/(x)) è una formula in cui l'occorrenza della variabile “x” diventa un quantificatore vincolato V. Questa formula afferma che per tutte le tuple “x” dalla relazione r(R) quando sostituendoli nella formula 1|/(x) invece di tutte le occorrenze libere di “x” otteniamo il valore “vero”. Ad esempio, la formula /x(H) (x[A] F 0) afferma che per tutte le tuple il valore dell'attributo A non è vuoto, cioè l'attributo A è obbligatorio.
  • 4. Se |/(x) e φ(x) sono formule, allora anche -|)/(x), |/(x) l φ(x), q/(x) V φ(x) sono formule. Le occorrenze della variabile "x" in queste formule rimangono libere o legate, le stesse di c/(x) o f(x), rispettivamente. Ad esempio, se la variabile “x” avesse un'occorrenza libera in φ(x) e un'occorrenza vincolata in φ(x), allora il tipo di occorrenza delle variabili viene preservato in queste funzioni.
  • 5. Se φ(x) è una formula, allora anche (φ(x)) è una formula; l'occorrenza della variabile “x” rimane libera o vincolata, come in f(x).
  • 6. Nient'altro è una formula.

Quando si calcolano le formule, viene utilizzato l'ordine di precedenza delle operazioni, determinato dalle regole per la costruzione della formula:

  • a) atomi in cui si possono utilizzare operazioni di confronto aritmetico;
  • b) quantificatori;
  • c) negazione (-|)
  • d) operazione “I” (l)
  • e) operazione “OR” (V)

Le parentesi vengono utilizzate per modificare l'ordine in cui viene valutata una formula.

Definizione. Un'espressione di calcolo relazionale con variabili tupla ha la forma: (1:(11) 11|/(1:)), dove I è una variabile tupla che soddisfa lo schema di relazione I; l'unica variabile che può essere inclusa liberamente nella formula 1|/(1:); c/D) è una formula costruita correttamente.

Interpretazione dell'espressione del calcolo relazionale: un insieme di tuple 1: che soddisfa lo schema di relazione R, tale per cui è vera la formula yD) costruita correttamente.

Esempio. Lasciamo che ci sia un atteggiamento K(Nome, Borsa di studio); attributo Borsa di studio definito sul dominio DI= (“sì”, “no”). Poi l'espressione

(((Nome)| Zx(I) (r(x) l x[ Borsa di studio] = "sì" l x[Nome] = ([Nome])

ti permetterà di recuperare dalla relazione i nominativi di tutti gli studenti beneficiari di borsa di studio.

Espressioni sicure

Un'espressione della forma (I | -1 gD)) nel caso generale definisce un rapporto infinito, il che è inaccettabile. Pertanto, nel calcolo relazionale ci limitiamo a considerare il cosiddetto sicuro espressioni della forma (I | |/(1:)), che garantiscono la produzione di un insieme limitato di tuple. In tali espressioni, i valori degli attributi delle tuple I sono elementi di un insieme universale limitato - OOM((/). Qui OOM(1|/) è una relazione unaria, i cui elementi sono simboli che appaiono esplicitamente in 1|/, o servire come componenti di alcuni o di una tupla in qualche relazione che ho menzionato in 1|/.

Nel libro di J. Ullman viene data la seguente definizione: “Chiamiamo l'espressione (I | |/(1:)) del calcolo relazionale con variabili tuple sicuro, se sono soddisfatte le seguenti condizioni:

  • 1. Ogni volta che I soddisfa c/D), ogni componente di I è un elemento di OOM()/).
  • 2. Per ogni sottoespressione |/ della forma (Zi) (co(u)), ogni componente e appartiene a OOM(co) se e soddisfa co.
  • 3. Se per qualsiasi sottoespressione |/ della forma (/u) (co(u)) ciascun componente e non appartiene a OOM(co), allora non soddisfa co. Le condizioni 2 e 3 permettono di stabilire la verità di una formula qualificata (Zi) (co(u)) o (Ui) (co(u)), considerando solo e, composta da simboli appartenenti a OOM(co). Ad esempio, qualsiasi formula (3 and) (Shchi) l...) soddisfa la condizione 2, e qualsiasi formula (Ui) (-.Shchi) V ...) soddisfa la condizione 3.

Sebbene la condizione 3 possa sembrare non intuitiva, è opportuno notare che la formula (Ui) (co(u)) è logicamente equivalente alla formula -n(3) (-|Co(u)). Quest'ultima non è sicura se e solo se esiste qualche e 0 PER il quale -1CO(u 0) è VERO e e 0 non appartiene al dominio della formula -nso(u). Poiché i domini co e ->co sono uguali, la condizione 3 afferma che la formula (/u) (co(u)) è sicura quando la formula -DZi) (-.co(u)) è sicura...”

Equivalenza delle espressioni di algebra relazionale e relazionale

calcolo con variabili tuple

Nello stesso libro è stato dimostrato il seguente teorema, che qui viene dato senza dimostrazione.

Se E è un'espressione di algebra relazionale, allora esiste un'espressione di calcolo relazionale sicura equivalente con variabili tuple.

Nella tabella 5.1 fornisce alcune equivalenze.

Tabella 5.1

Equivalenze per l'algebra relazionale e il calcolo relazionale

con tuple variabili

Espressione dell'algebra relazionale

Espressione del calcolo relazionale con tuple variabili

Unione: g, eg, g, (K), g 9 (K)

(x(H) | G,(x) V r 2 (x))

Differenza: g, - g, g, (K), g 2 (I)

(x(I) I G,(x) A -iG 2 (x))

Intersezione: r 1 n r 2, r^Ya), r 7 (K)

(x(H)|r,(x)lg 2 (x))

Prodotto cartesiano: g, x g., gDYa,), g 2 (I 2)

(x(I,I,) 1 Ei(I,) Eu(I 2) (g,(i)l g 2 (y)l x[I,] =

I(g1]lx[I 2 1=y[I 2 ]))

Proiezione: D b (g), g (Z), bсЯ

(DO | Ei(I) (r(i) l i[C = Db])

Scelta: a p (g), g (I)

D(I) | g(1) l I’))

Composto naturale: g, mg, g, (AB), g 2 (BC)

(DAWS) | Eu(AB) Eu(BC) (g,(u) l g 2 (y) l u[B] =

= y[V] l DAV] = u [ A B ] l T[C] = y[C]))

Divisione: g, n-g 2, g, (AB), g 2 (B)

(SI) | Yx(B) (g 2 (x) l Eu(AB) (g,(y) l y[B] =

H[V]lu[A]=SI])

Consideriamo gli stessi esempi di query forniti per il linguaggio dell'algebra relazionale.

Dato lo stesso schema del database:

  • 8(8#. 814, 8C) - FORNITORE (Numero del fornitore. Nome, Città)", P(P#. PЇ4, RS) - DETTAGLIO ( Numero del dettaglio. Nome, Prezzo)", 8Р( 8#. R#. OTU) - CONSEGNA (Numero del fornitore . Numero del dettaglio . Quantità).
  • 1. Ottenere i nomi dei fornitori che forniscono il codice prodotto P1.

(1(814) | Zi(8)Zu(8P)(8(i) a 8P(y) a u = y a y[P#] =

= 'RG l u = 1)).

Spiegazione: il risultato della query è un insieme di tuple і, avente un solo attributo 814, tale che:

  • - c'è almeno una tupla dalla relazione 8 (Zi(8)... (8(i)...) e
  • - c'è almeno una tupla dalla relazione BR (...Zu(8Р)(... 8Р(у) ...),

tale che

  • - i valori di queste tuple per attributo E# coincidono (e),
  • - il valore della tupla V per attributo P# determina il dettaglio P1 che ci interessa (y(P#( = ‘RG) e
  • - tupla e definisce il risultato della query (u = 1:).
  • 2. Ottenere i nomi dei fornitori che non forniscono il codice prodotto P1:

(1(814) | Zi(8)(8(i) l-Zu(8Р) (8Р(у) l у [Р#] = ‘РГ l и =

Uli = 1))).

Cioè, per una tupla della relazione 8 che definisce il risultato di una query, non esiste alcuna tupla della relazione 8P che abbia lo stesso valore per l'attributo 8# e definisca la parte P1.

3. Ottenere i nomi dei fornitori che forniscono solo il codice prodotto P1.

Questa richiesta unisce essenzialmente le due precedenti: ovvero vengono determinate le tuple corrispondenti alla parte consegnata P1, e da queste tuple vengono rimosse quelle corrispondenti alla consegna di altre parti:

(1(814) | Zi(8)Zu(8R)(8(i) l 8R(y) l e = y l y[P#] =

= 'RG l e = Ts8G^] l -.3у(8Р)(8Р(у) l у =

Io lo u[R#] F‘RG))).

4. Ottenere i nomi dei fornitori che forniscono tutte le parti. Poiché questa query è implementata dall'operazione di divisione dell'algebra relazionale, utilizzeremo l'equivalenza di cui sopra. Consideriamo innanzitutto una query che ci permette di ottenere il numero di fornitori che forniscono tutte le parti:

(1(8#) | Ush(R)Zi(8R)(R(w) d 8R(y) d y[R#| = y[R#] d P8#] = y18#])).

Aggiungiamo ora a questa query i costrutti necessari per ottenere il nome del fornitore dalla relazione 8:

(1(814) | Zi(8)/u(R)Zi(8R)(8(i) l R(u) l 8Р(у) l w =

U [P#] l u = u l t = u)).

Calcolo relazionale con variabili su domini

Un'espressione di calcolo relazionale con variabili di dominio viene costruita utilizzando gli stessi strumenti di un'espressione di calcolo relazionale con variabili tupla. La differenza è che qui l'ambito della definizione riguarda i domini.

Qui viene anche costruita una formula correttamente definita, la cui base sono gli atomi.

I. Gli atomi hanno la seguente forma:

  • a) g(x, x 2,..., x), dove g è una relazione che soddisfa lo schema R(A p A 2,..., A), e ogni x. c'è una costante o variabile nel dominio;
  • b) e 0 v, dove e e v sono costanti o variabili definite su domini compatibili con l'operazione 0,0 - operazione di confronto aritmetico (, >, F,

I. La formula del calcolo relazionale j/(t), così come le occorrenze libere e vincolate delle variabili, sono definite allo stesso modo del calcolo con variabili tuple.

Equivalenza delle espressioni del calcolo relazionale con variabili di tupla e del calcolo con variabili di dominio

Un'espressione di calcolo con variabile di dominio equivalente a un'espressione di calcolo con variabile di tupla (t | i|/(t)) viene costruita secondo le seguenti regole.

Sia una variabile tupla t(R), dove R = (A p A 2 , ..., A n) ha arità n Allora invece della variabile tupla t, vengono introdotte n nuove variabili sui domini t, t 2 ,... , t, e l'espressione di calcolo data con variabili tuple viene sostituita dall'espressione (t, t 2 , ..., t |

  • qualsiasi atomo r(t) è sostituito da un atomo r(t p t 2 ,..., t);
  • ogni occorrenza libera di t è sostituita dalla variabile t,;
  • per ogni quantificatore Z O Vu introdotto w nuove variabili e, e 2, ..., e, dove m è l'arietà di e. Quantificatori Zee (O V(u)) sono sostituiti dai quantificatori Zi, Zi 2 ... 3u m (Vu, Vu 2 ... Vum m , rispettivamente), e nelle espressioni subordinate ai quantificatori u[A,] sono sostituiti da e , a r(u) - r( Su u 2 ,..., um).

Teorema. Per Per ogni espressione sicura con variabili tupla, esiste un'espressione sicura equivalente con variabili di dominio.

Esempio. Vengono fornite le relazioni con gli schemi:

S(S#. NOME, CITTÀ) - fornitore;

P(P#. PNOME, PREZZO) - dettaglio;

SP( S#. R#. QTÀ) - consegna.

Scrivi un'espressione di calcolo relazionale che ti consenta di ottenere i nomi dei fornitori che forniscono il codice P1:

a) espressione di calcolo con variabili tuple:

(t(SNAME) | 3u(S) 3v(SP) (S(u) l SP(v) l u l u)

LA CAMPANA

C’è chi ha letto questa notizia prima di te.
Iscriviti per ricevere nuovi articoli.
E-mail
Nome
Cognome
Come vuoi leggere La Campana?
Niente spam