LA CAMPANA

C'è chi legge questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam

MODELLI DI DATI

I dati memorizzati nel database hanno una certa struttura logica e sono descritti da un certo modello di rappresentazione dei dati (modello di dati) supportato dal DBMS. I seguenti modelli di dati sono classici:

· Gerarchico;

· Rete;

· Relazionale.

Inoltre, negli ultimi anni sono comparsi i seguenti modelli di dati che sono stati implementati più attivamente nella pratica:

Post-relazionale,

Multidimensionale,

· Orientato agli oggetti.

Sono inoltre in fase di sviluppo vari sistemi basati su altri modelli di dati che estendono i modelli noti. Questi includono modelli relazionali, orientativi e deduttivi, semantici, concettuali e orientati agli oggetti. Alcuni di questi modelli servono per integrare database, basi di conoscenza e linguaggi di programmazione. Alcuni DBMS supportano più modelli di dati contemporaneamente.

2.1. Modello gerarchico di dati

In un modello gerarchico, i dati possono essere descritti usando un grafico (o albero) ordinato. Una rappresentazione semplificata delle relazioni tra i dati in un modello gerarchico è mostrata in Fig. 2.1.


Figura. 2.1. Rappresentazione di relazioni in un modello gerarchico

Il tipo di dati dell'albero viene utilizzato per descrivere la struttura (schema) di un database gerarchico in un determinato linguaggio di programmazione.

Il tipo di albero è simile al tipo di dati del record Pascal. È consentita la nidificazione dei tipi, ognuno dei quali è a un certo livello.

Il tipo di albero è composito. Include sottotipi ("sottotitoli"), ognuno dei quali, a sua volta, è un tipo "albero". Ciascuno dei tipi di albero è costituito da un singolo tipo di radice e da un insieme ordinato di tipi subordinati (possibilmente vuoti). Ciascuno dei tipi primitivi inclusi nel tipo di albero è un tipo di record semplice o composito. Un semplice "record" è costituito da un tipo, ad esempio numerico. Un "record" composto combina una raccolta di tipi, come un numero intero, una stringa di caratteri e un puntatore (riferimento). Un esempio del tipo "albero" come una raccolta di tipi è mostrato in Fig. 2.2.

Kornevchiamato un tipo che ha sottotipi e non è esso stesso un sottotipo. Tipo slave (sottotipo) è un discendente di un tipo che funge da antenato (genitore) per esso. I discendenti dello stesso tipo sono gemelli l'uno rispetto all'altro.

In generale, il tipo di albero è un insieme di tipi di record organizzato gerarchicamente.



Figura. 2.2. Esempio di tipo "albero"

Un database gerarchico è una raccolta ordinata di istanze di dati di tipo ad albero (alberi) contenenti istanze di tipo di record (record). Spesso la relazione tra i tipi viene trasferita alla relazione tra i record stessi. I campi dei record memorizzano i valori numerici o simbolici effettivi che costituiscono il contenuto principale del database. La traslazione di tutti gli elementi di un database gerarchico viene generalmente eseguita dall'alto verso il basso e da sinistra a destra.

In un DBMS gerarchico, è possibile utilizzare una terminologia diversa da quella fornita. Ad esempio, un record può essere chiamato un segmento e un record di database può essere inteso come l'intero insieme di record relativi a un'istanza del tipo "albero".

I dati nel database con il diagramma dato (Fig. 2.2.) Possono apparire, ad esempio, come mostrato in Fig. 2.3.



Figura. 2.3. Dati in un database gerarchico

I seguenti gruppi di metodi possono essere utilizzati per organizzare il posizionamento fisico dei dati gerarchici nella memoria del computer:

· Rappresentazione mediante un elenco lineare con allocazione sequenziale della memoria (aritmetica dell'indirizzo, strutture dell'elenco di sinistra);

· Rappresentazione mediante elenchi lineari collegati (metodi che utilizzano puntatori e riferimenti).

Le principali operazioni per la manipolazione di dati organizzati gerarchicamente comprendono:

· Cercare l'istanza del database specificata (ad esempio, un albero con un valore di 912 nel campo Group_Code);

· Transizione da un albero all'altro;

· Transizione da un record all'altro all'interno dell'albero (ad esempio, al record successivo del tipo Studenti);

· Inserimento di un nuovo record nella posizione specificata;

· Eliminazione del record corrente, ecc.

In conformità con la definizione del tipo "albero", possiamo concludere che tra antenati e discendenti viene automaticamente mantenuto il controllo dell'integrità dei collegamenti. La regola principale del controllo dell'integrità è formulata come segue: un discendente non può esistere senza un genitore e alcuni genitori potrebbero non avere discendenti. Non esistono meccanismi per mantenere l'integrità dei collegamenti tra i record di alberi diversi.

I vantaggi del modello gerarchico di dati includono l'uso efficiente della memoria del computer e buoni indicatori del tempo richiesto per eseguire operazioni di base sui dati. Il modello di dati gerarchico è utile per lavorare con informazioni ordinate gerarchicamente.

Lo svantaggio del modello gerarchico è la sua ingombro per l'elaborazione di informazioni con connessioni logiche piuttosto complesse, nonché la complessità della comprensione per un utente normale.

Un numero relativamente limitato di DBMS si basa sul modello gerarchico di dati, inclusi sistemi esterni IMS, PS / Focus, Team-Up, Data Edge, nonché sistemi domestici Oka, INES, MIRIS.

2.2. Modello di rete

Il modello di dati di rete consente di visualizzare varie relazioni di elementi di dati sotto forma di un grafico arbitrario, generalizzando in tal modo il modello di dati gerarchico (Fig. 2.4). Il concetto più completo di database collegati in rete è stato presentato per la prima volta nelle Proposte del gruppo KODASYL.

Per descrivere lo schema del database di rete, vengono utilizzati i gruppi di tipi: "record" e "link". Il tipo di collegamento è definito per due tipi di record: antenato e discendente. Variabili di tipo "Link" sono istanze di link.


È composto da studenti

Guidato dal capo

Figura. 2.5. Esempio di uno schema del database di rete

In vari DBMS tipo di rete termini diversi possono essere usati per indicare concetti essenzialmente identici. Ad esempio, come elementi di dati e aggregati, record, set, aree, ecc.

Il posizionamento fisico dei dati nei database di tipo di rete può essere organizzato utilizzando quasi gli stessi metodi dei database gerarchici.

Le operazioni più importanti per la manipolazione dei dati dei database di tipo di rete includono quanto segue:

Cerca un record nel database,

Il passaggio da un antenato al primo discendente,

Transizione da discendente a antenato,

Creare un nuovo record,

Eliminazione del record corrente,

Aggiornamento del record corrente,

Inclusione della registrazione nella comunicazione,

Esclusione di un record dalla comunicazione,

· Cambio di connessioni, ecc.

Dignità modello di rete i dati sono la capacità di implementare in modo efficiente in termini di tempo ed efficienza. Rispetto al modello gerarchico, il modello di rete offre grandi opportunità nel senso della ricevibilità della formazione di connessioni arbitrarie.

Svantaggioil modello di dati di rete è l'elevata complessità e rigidità dello schema del database, costruito sulla sua base, nonché la complessità della comprensione e dell'esecuzione delle operazioni di elaborazione dei dati nel database per utenti ordinari. Inoltre, nel modello dei dati di rete, il controllo dell'integrità dei collegamenti è indebolito a causa della ricevibilità di stabilire collegamenti arbitrari tra i record.

I sistemi basati sul modello di rete non sono ampiamente utilizzati nella pratica. I DBMS di rete più famosi sono i seguenti: IDMS, db_VistaIII, NETWORK, CETOR e KOMPAS.

2.3. Modello relazionale

Il modello di dati relazionali è stato suggerito da un dipendente iBM Edgar Codd e si basa sul concetto di relazione (relazione).

Atteggiamento è un insieme di elementi chiamati tuple. Base teorica dettagliata modello relazionale discusso nella prossima sezione. Una forma visiva di rappresentazione di una relazione è una tabella bidimensionale familiare alla percezione umana.

Una tabella ha righe (record) e colonne (colonne). Ogni riga della tabella ha la stessa struttura ed è composta da campi. Le righe della tabella corrispondono alle tuple e le colonne agli attributi della relazione.

Usando una tabella, è conveniente descrivere informazioni su gruppi di oggetti, fenomeni o processi omogenei (aventi le stesse proprietà) nel mondo reale. Ogni riga della tabella contiene informazioni su un oggetto, fenomeno o processo specifico. Una stringa (record) ha la stessa struttura e descrive le proprietà degli oggetti usando i campi. Ad esempio, una tabella può contenere informazioni su un gruppo di tirocinanti, per ognuno dei quali sono note le seguenti caratteristiche: cognome, nome e patronimico, genere, data di nascita, indirizzo di residenza. Poiché non è possibile descrivere tutti i dati dall'area tematica all'interno di una tabella, vengono create diverse tabelle, tra le quali vengono stabiliti i collegamenti.

Posizionamento fisico dei dati nei database relazionali su media esterni fatto facilmente con file regolari.

Benefici il modello di dati relazionali sta nella semplicità, chiarezza e convenienza dell'implementazione fisica su un computer. È la semplicità e la chiarezza per l'utente che sono la ragione principale del loro uso diffuso.

Il principale svantaggi i modelli relazionali sono i seguenti: strumenti standard identificazione dei singoli record e complessità della descrizione delle relazioni gerarchiche e di rete.

Esempi di DBMS relazionali sono: dBaseIIIPlus dBaseIV (Ashton-Tate), DB2 (IBM), R: BASE (Microrim), FoxPro prime versioni e FoxBase (Fox Software), Paradox e dBASE per Windows (Borland), successivamente FoxPro, Visual FoxPro e Access (Microsoft), Clarion (Clarion Software), Ingres (ASK Computer System) e Oracle (Oracle).

Le versioni recenti dei DBMS relazionali hanno alcune proprietà dei sistemi orientati agli oggetti. Tali DBMS sono spesso chiamati relazionali ad oggetti. Oracle 8.x è un esempio di tale sistema.

2.4. Modello post-relazionale

Il modello relazionale classico presuppone l'indivisibilità dei dati memorizzati nei campi dei record delle tabelle. Ciò significa che le informazioni nella tabella sono presentate nella prima forma normale. Esistono numerosi casi in cui questa limitazione ostacola l'implementazione efficiente dell'applicazione.

Il modello di dati post-relazionali è un modello relazionale esteso che rimuove il vincolo sull'indivisibilità dei dati archiviati nei record di tabella. Il modello di dati di postrelazione consente campi multivalore: campi i cui valori sono costituiti da valori secondari. Una serie di valori per campi multivalore è considerata una tabella separata, incorporata nella tabella principale.

In fig. 2.6 sull'esempio di informazioni su fatture e merci per il confronto, viene mostrata la presentazione degli stessi dati usando modelli relazionali (a) e post-relazionali (b). La tabella Fatture contiene informazioni sui numeri di fattura e sui numeri dei clienti. La tabella Invoice_Goods contiene informazioni su ciascuna delle fatture: il numero della fattura, il nome dell'articolo e la quantità dell'articolo. La tabella Fatture è collegata alla tabella Fatture_Prodotti dal campo Numero fattura.

Come si può vedere dalla figura, rispetto al modello relazionale, il modello post-relazionale memorizza i dati in modo più efficiente e durante l'elaborazione non è necessario eseguire l'operazione di unione dei dati da due tabelle.

Oltre ai campi di nidificazione, il modello post-relazionale supporta campi multivalore associati (più gruppi). La raccolta di campi associati si chiama associazione. In questo caso, in una riga, il primo valore di una colonna dell'associazione corrisponde ai primi valori di tutte le altre colonne dell'associazione. Tutti i valori della seconda colonna sono correlati in modo simile e così via.

Il requisito di costanza non è imposto sulla lunghezza dei campi e sul numero di campi nei record della tabella. Ciò significa che la struttura di dati e tabelle è molto flessibile.

in alto

Overhead_Products

in alto

Figura. 2.6. Strutture dati modello relazionale e post-relazionale

Poiché il modello post-relazionale consente di archiviare dati non normalizzati nelle tabelle, esiste un problema nel garantire l'integrità e la coerenza dei dati. Questo problema è risolto dall'inclusione di meccanismi nel DBMS, simile alle procedure memorizzate nei sistemi client-server.

Per descrivere le funzioni di controllo per i valori nei campi, è possibile creare procedure (codici di conversione e codici di correlazione) che vengono chiamate automaticamente prima e dopo l'accesso ai dati. I codici di correlazione vengono eseguiti immediatamente dopo aver letto i dati, prima di elaborarli. Al contrario, i codici di conversione vengono eseguiti dopo l'elaborazione dei dati.

Il vantaggio del modello post-relazionale è la capacità di rappresentare un insieme di tabelle relazionali correlate da una tabella post-relazionale. Ciò fornisce un'alta visibilità della presentazione delle informazioni e un aumento dell'efficienza del suo trattamento.

Lo svantaggio del modello post-relazionale è la complessità di risolvere il problema di garantire l'integrità e la coerenza dei dati memorizzati.

Il modello di dati post-relazionali considerato è supportato da uniVers, Bubba, Dasdb DBMS.

2.5. Modello multidimensionale

Un approccio multidimensionale alla presentazione dei dati in un database è apparso quasi contemporaneamente a uno relazionale, ma fino ad ora c'erano pochissimi DBMS multidimensionali funzionanti (MSUBMS). Dalla metà degli anni '90, l'interesse per loro ha iniziato ad acquisire un carattere enorme.

L'impulso nel 1993 fu un articolo di programma di uno dei fondatori dell'approccio relazionale, E. Codd. Formula 12 requisiti di base per i sistemi della classe OLAP (OnLine Analytical Processing - elaborazione analitica on-line), i più importanti dei quali sono legati alle possibilità di rappresentazione concettuale ed elaborazione di dati multidimensionali. I sistemi multidimensionali consentono di elaborare rapidamente le informazioni per l'analisi e il processo decisionale.

Nello sviluppo del concetto di IP, si possono distinguere le due seguenti direzioni:

· Sistemi di elaborazione operativa (transazionale);

· Sistemi di elaborazione analitica (sistemi decisionali).

I DBMS relazionali erano destinati ai sistemi di informazione per l'elaborazione delle informazioni online ed erano molto efficaci in questo settore. Nei sistemi di elaborazione analitica, si sono rivelati un po 'goffi e non abbastanza flessibili. I DBMS multidimensionali sono più efficienti qui.

DBMS multidimensionalesono DBMS altamente specializzati progettati per l'elaborazione analitica interattiva delle informazioni. Riveliamo i concetti di base utilizzati in questi DBMS: aggregabilità, storicità, prevedibilità dei dati.

aggregabilità dati significa considerare le informazioni a vari livelli della sua generalizzazione. NEL sistemi di informazione il grado di dettaglio nella presentazione delle informazioni per l'utente dipende dal suo livello: analista, user-operator, manager, manager.

Storicità i dati implicano la garanzia di un elevato livello di staticità (immutabilità) dei dati stessi e delle loro interconnessioni, nonché l'obbligo di collegare i dati al tempo.

La natura statica dei dati consente di utilizzare metodi specializzati di caricamento, archiviazione, indicizzazione e recupero durante l'elaborazione.

L'associazione dei dati temporali è necessaria per eseguire frequentemente query con valori di data e ora nell'esempio. La necessità di organizzare i dati nel tempo nel processo di elaborazione e presentazione dei dati all'utente impone requisiti sui meccanismi di memorizzazione e accesso alle informazioni. Pertanto, per ridurre i tempi di elaborazione delle richieste, è auspicabile che i dati siano sempre ordinati nell'ordine in cui sono più frequentemente richiesti.

prevedibilità i dati implicano l'impostazione delle funzioni di previsione e la loro applicazione a diversi intervalli di tempo.

La multidimensionalità del modello di dati non significa la multidimensionalità della visualizzazione dei dati digitali, ma la rappresentazione logica multidimensionale della struttura delle informazioni nella descrizione e nelle operazioni di manipolazione dei dati.

Rispetto al modello relazionale, l'organizzazione di dati multidimensionali ha una maggiore visibilità e contenuto informativo.

Se una viene su un modello multidimensionale con una dimensione maggiore di due, quindi non necessariamente le informazioni visive sono presentate sotto forma di oggetti multidimensionali (ipercubi tridimensionali, quadridimensionali e più tridimensionali). In questi casi è anche più conveniente per l'utente gestire tabelle o grafici bidimensionali. In questo caso, i dati sono "sezioni" (più precisamente "sezioni") da un data warehouse multidimensionale, realizzati con vari gradi di dettaglio.

Consideriamo i concetti di base dei modelli di dati multidimensionali, che includono dimensione e cella.

Dimensione (Dimensiom) è un insieme di dati dello stesso tipo che formano una delle facce di un ipercubo. Esempi delle dimensioni temporali più comunemente utilizzate sono Giorni, Mesi, Quarti e Anni. Città, aree, regioni e paesi sono ampiamente utilizzati come dimensioni geografiche. In un modello di dati multidimensionale, le dimensioni agiscono come indici per identificare valori specifici nelle celle di un ipercubo.

Una cella o misura è un campo il cui valore è determinato in modo univoco da un insieme fisso di dimensioni. Il tipo di campo è spesso definito come numerico. A seconda di come si formano i valori di una determinata cella, di solito può essere una variabile (i valori cambiano e possono essere caricati da un'origine dati esterna o generati a livello di codice) o una formula (i valori, come le celle di formula di un foglio di calcolo, vengono calcolati utilizzando formule predefinite).

Nell'esempio di Fig. 2.8 ogni valore di cella Volume delle venditeè determinato in modo univoco dalla combinazione della dimensione temporale (mese di vendita) e del modello del veicolo. Un esempio di un modello di dati 3D è mostrato in Fig. 2.9.

1999

Petrov 9999999varoyoro

Volume delle vendite

"Zhiguli" "Moskvich"

misure:

Tempo (anno) - 1994, 1995, 1996

Manager - Petrov, Smirnov, Yakovlev

Modello - "Volga", "Zhiguli", "Moskvich"

Indicatore: volume delle vendite

Figura. 2.9. Esempio di modello 3D

Esistono due opzioni principali (schemi) per l'organizzazione dei dati nell'MSUBD esistente: ipercubico e policubico.

Lo schema del semi-cubo presuppone che il DBMS possa definire diversi hypercube con dimensioni diverse e con dimensioni diverse come facce. Un esempio di un sistema che supporta una versione policubica di un database è Oracle Express Server.

Nel caso di un disegno ipercubo, si presume che tutte le misure siano definite dallo stesso insieme di dimensioni. Ciò significa che se ci sono più hypercube DB, hanno tutti la stessa dimensione e dimensioni coincidenti. Ovviamente, in alcuni casi, le informazioni nel database potrebbero essere ridondanti (se si richiede il riempimento obbligatorio delle celle).

Nel caso di un modello di dati multidimensionale, vengono applicate una serie di operazioni speciali, tra cui: "fetta", "rotazione", aggregazione e dettagli.

Una sezione è un sottoinsieme di un ipercubo risultante da una o più misurazioni. L'affettatura viene eseguita per limitare i valori utilizzati dall'utente, poiché tutti i valori dell'ipercubo non vengono quasi mai utilizzati contemporaneamente. Ad esempio, se si limitano i valori di misurazione del modello di auto in un ipercubo (Fig. 2.9) al marchio "Zhiguli", si ottiene una tabella di vendite bidimensionale di questo marchio di auto da diversi gestori per anno.

L'operazione di rotazione viene utilizzata nella rappresentazione di dati 2D. La sua essenza è cambiare l'ordine delle misurazioni nella presentazione visiva dei dati. Quindi, la "rotazione" della tabella bidimensionale mostrata in Fig. 2.8b porterà a un cambiamento nel suo aspetto in modo tale che il marchio automobilistico sarà sull'asse X e il tempo sarà sull'asse Y.

L'operazione di "rotazione" può essere generalizzata al caso multidimensionale, se è inteso come una procedura per modificare l'ordine delle misurazioni. Nel caso più semplice, può essere una permutazione reciproca di due dimensioni arbitrarie.

Operazioni "aggregazione" (Drill Up) e "dettagliato" (Drill Down) significano, rispettivamente, una transizione verso una presentazione più generale o più dettagliata di informazioni all'utente dall'ipercubo.

Per illustrare il significato dell'operazione di "aggregazione", supponiamo di avere un ipercubo, in cui, oltre alle dimensioni dell'ipercubo mostrato in Fig. 2.9, ci sono anche dimensioni: Dipartimento, Regione, Azienda, Paese. Si noti che in questo caso nell'ipercubo esiste una gerarchia (dal basso verso l'alto) di relazioni tra dimensioni: Manager, Dipartimento, Regione, Azienda, Paese.

Lascia che l'ipercubo descritto definisca con successo nel 2000 il manager Petrov ha venduto le auto Zhiguli e Volga. Quindi, salendo di un livello nella gerarchia, usando l'operazione di "aggregazione", puoi scoprire come appare il rapporto delle vendite degli stessi modelli a livello del dipartimento in cui lavora Petrov.

Il vantaggio principale di un modello di dati multidimensionale è la convenienza e l'efficienza dell'elaborazione analitica di grandi quantità di dati relativi al tempo. Quando si organizza l'elaborazione di dati simili sulla base di un modello relazionale, si verifica un aumento non lineare della complessità delle operazioni a seconda della dimensione del database e un aumento significativo del costo della RAM per l'indicizzazione.

Lo svantaggio del modello di dati multidimensionale è la sua ingombro quando si risolvono i problemi più semplici dell'elaborazione operativa delle informazioni.

Esempi di sistemi che supportano modelli di dati multidimensionali sono Essbase (Arbor Software), Media Multi-matrix (Speedware), Oracle Express Server (Oracle), Cache (InterSystem). Alcuni prodotti software, ad esempio Media / MR (Speedware), consentono di lavorare contemporaneamente con database multidimensionali e relazionali. Nel DBMS Oracle, in cui il modello di dati interno è un modello multidimensionale, sono implementate tre modalità di accesso ai dati: diretta (a livello di nodi di matrice multidimensionale), oggetto e relazione.

2.6. Modello orientato agli oggetti

Nel modello orientato agli oggetti, quando si presentano i dati, è possibile identificare i singoli record del database. Le relazioni vengono stabilite tra i record del database e le loro funzioni di elaborazione utilizzando meccanismi simili a quelli dei linguaggi di programmazione orientati agli oggetti.

Il modello standardizzato orientato agli oggetti è descritto nelle raccomandazioni dello standard ODMG-93 (Object Database Management Group - gruppo di gestione database orientato agli oggetti). Le raccomandazioni ODMG-93 non sono state ancora completamente implementate. Per illustrare le idee chiave, prendere in considerazione un modello in qualche modo semplificato di un database orientato agli oggetti.

Struttura del database orientata agli oggetti può essere rappresentato graficamente come un albero, i cui nodi sono oggetti. Le proprietà degli oggetti sono descritte da alcuni tipo standard (ad esempio una stringa) o un tipo costruito dall'utente (definito come una classe).

Il valore di una proprietà di tipo stringa è una stringa di caratteri. Il valore di una proprietà di tipo classe è un oggetto che è un'istanza della classe corrispondente. Ogni istanza di una classe è considerata un discendente dell'oggetto in cui è definita come proprietà. Un oggetto di istanza di una classe appartiene alla sua classe e ha un unico genitore. Le relazioni generiche nel database formano una gerarchia di oggetti.

Un esempio della struttura logica di un database bibliotecario orientato agli oggetti è mostrato in Fig. 2.10.

Qui, un oggetto di tipo LIBRARY è il genitore per esempio degli oggetti delle classi SUBSCRIBER, DIRECTORY e REFERENCE. Oggetti diversi del tipo BOOK possono avere genitori uguali o diversi. Gli oggetti del tipo BOOK che hanno lo stesso genitore devono differire almeno per il numero di inventario (univoco per ciascuna copia del libro), ma hanno gli stessi valori per la cifra del libro delle proprietà, UDC, titolo e autore.

La struttura logica di un database orientato agli oggetti è esternamente simile alla struttura di un database gerarchico. La principale differenza tra loro è nei metodi di manipolazione dei dati.

Per eseguire azioni sui dati nel modello di database considerato, vengono utilizzate operazioni logiche, rafforzate da meccanismi orientati agli oggetti di incapsulamento, ereditarietà e polimorfismo. Operazioni simili ai comandi SQL possono essere utilizzate in misura limitata (ad esempio, per creare un database).

La creazione e la modifica del database sono accompagnate dalla formazione automatica e dalla successiva regolazione di indici (tabelle di indici) contenenti informazioni per una rapida ricerca dei dati. Consideriamo brevemente i concetti di incapsulamento, eredità e polimorfismo in relazione al modello di database orientato agli oggetti.

incapsulamento limita l'ambito del nome della proprietà ai limiti dell'oggetto in cui è definito. Quindi, se aggiungiamo una proprietà che imposta il numero di telefono dell'autore del libro e ha il nome telefono su un oggetto del tipo DIRECTORY, otterremo le proprietà con lo stesso nome per gli oggetti SUBSCRIBER e DIRECTORY. Il significato di tale proprietà sarà determinato dall'oggetto in cui è incapsulato.

Ereditàviceversa, estende l'ambito della proprietà a tutti i discendenti dell'oggetto. Pertanto, a tutti gli oggetti del tipo BOOK che sono discendenti di un oggetto del tipo DIRECTORY possono essere assegnate le proprietà dell'oggetto genitore: codice libro, UDC, titolo, autore. Se è necessario estendere l'effetto del meccanismo di ereditarietà ad oggetti che non sono direttamente correlati (ad esempio, tra due figli dello stesso genitore), nel loro antenato comune viene definita una proprietà astratta di tipo abs. Pertanto, la definizione del ticket e del numero di proprietà astratte nell'oggetto LIBRARY porta all'eredità di queste proprietà da parte di tutti gli oggetti figlio SUBSCRIBER, BOOK e REFERENCE. Non è un caso che i valori del biglietto di proprietà delle classi ISCRIZIONE e ISSUE mostrati nella figura saranno gli stessi - 00015.

Il polimorfismo nei linguaggi di programmazione orientati agli oggetti implica la capacità dello stesso codice di programma di lavorare con diversi tipi di dati. In altre parole, significa che è consentito avere metodi (procedure o funzioni) con gli stessi nomi in oggetti di diverso tipo. Durante l'esecuzione di un programma a oggetti, gli stessi metodi operano su oggetti diversi a seconda del tipo di argomento. Applicato al nostro database orientato agli oggetti, il polimorfismo significa che gli oggetti della classe BOOK, che hanno genitori diversi dalla classe DIRECTORY, possono avere un diverso set di proprietà. Di conseguenza, i programmi per lavorare con oggetti della classe BOOK possono contenere codice polimorfico: la ricerca in un database orientato agli oggetti consiste nello scoprire la somiglianza tra un oggetto specificato dall'utente e gli oggetti memorizzati nel database. Un oggetto definito dall'utente, chiamato oggetto goal (la proprietà object è di tipo goal), nel caso generale, può rappresentare un sottoinsieme dell'intera gerarchia di oggetti archiviati nel database. L'oggetto di destinazione, nonché il risultato dell'esecuzione della query, possono essere memorizzati nel database stesso. Un esempio di una richiesta per i lettori che hanno ricevuto almeno un libro dalla biblioteca è mostrato in Fig. 2.11.



Figura. 2.11. Frammento di un database con un oggetto target

Il vantaggio principale Il modello di dati orientato agli oggetti rispetto a quello relazionale è la capacità di visualizzare informazioni su relazioni complesse di oggetti. Il modello di dati orientato agli oggetti consente di identificare entrata separata database e definire le funzioni del loro trattamento.

Gli svantaggi del modello orientato agli oggetti sono l'elevata complessità concettuale, l'inconveniente nell'elaborazione dei dati e la bassa velocità delle query.

Negli anni '90, c'erano prototipi sperimentali di sistemi di gestione di database orientati agli oggetti. Attualmente, tali sistemi sono molto diffusi, in particolare i seguenti DBMS includono: POET (software POET), Jasmine (Computer Associates), Versant (Versant Technologies), Q2 (Ardent Software), ODB-Jupiter (centro di ricerca e produzione Inteltek Plus), oltre a Iris, Orion, Postgres.


MODELLO DI DATI RELATIVI

3.1. Definizioni di base

Il modello di dati relazionali è stato proposto da E. Codd nel 1970. Il modello di dati relazionali si basa sul concetto di relazione.

Matematicamente, il rapporto è definito come segue. Sia dato n set D1, D2, ..., Dn. Quindi R è una relazione su questi insiemi se R è l'insieme di tuple ordinate di lunghezza n della forma (d1, d2, ..., dn), dove d1 è un elemento di D1, d2 è un elemento di D2, dn è un elemento di Dn. D1, D2, ..., Dn sono chiamati domini della relazione R. Si noti che questa definizione è equivalente alla definizione del prodotto cartesiano degli insiemi D1, D2, ..., Dn.

Definiamo la relazione dal punto di vista della teoria dell'elaborazione dei dati. Atteggiamento - un sottoinsieme del prodotto cartesiano di uno o più domini. Dominio - l'insieme dei possibili valori per un particolare attributo. Attributo - proprietà di un oggetto, fenomeno o processo. Esempi di attributi: cognome, nome, patronimico, data di nascita. tuple- un elemento di relazione è una mappatura dei nomi degli attributi ai valori presi dai domini corrispondenti. Un insieme finito di tuple costituisce una relazione. Se viene creata una relazione da n domini, ogni tupla ha n componenti.

Spieghiamo queste definizioni con esempi.

Esempio 1. Lascia che ci siano due domini:

D1 \u003d (0,1); D2 \u003d (a, b, c).

Costruiamo il prodotto cartesiano dei domini D1, D2:

D1 x D2 \u003d ((0, a), (0, b), (0, c), (1, a), (1, b), (1, c)).

Come relazione basata sui domini D1, D2, è possibile scegliere, ad esempio, quanto segue:

R \u003d ((0, a), (0, c), (1, b), (1, c)).

La relazione R è composta da quattro tuple, ciascuna tupla contiene due elementi, il primo è scelto dal dominio D1, il secondo dal dominio D2.

Esempio 2 Lascia che ci siano quattro domini:

D1 è un insieme di numeri interi, ad esempio un insieme di numeri di parte (101, 34, 23, 109, 147).

D2 - molte stringhe di caratteri, ad esempio molti nomi di parti (boccola, staffa, staffa, giunto, bullone).

D3 - molte stringhe di caratteri, ad esempio, molti nomi di elaborazione (stampaggio a freddo, fusione di metallo, fusione di plastica, lavorazione).

D4 è un insieme di numeri reali, ad esempio un insieme di pesi delle parti (45.8, 6.9, 123, 69.3, 5.2, 2.34).

Come relazione basata sui domini D1, D2, D3, D4, puoi scegliere, ad esempio, quanto segue:

R \u003d ((34, boccola, stampato in plastica, 69.3), (23, staffa, formata a freddo, 45,8), (101, bullone, lavorato, 5.2)).

La relazione R è composta da tre tuple, ogni tupla contiene quattro elementi.

È conveniente rappresentare la relazione come una tabella, in cui ogni riga è una tupla contenente dati su un oggetto, fenomeno o processo specifico. Ogni colonna della tabella è un dominio contenente i possibili valori di una delle proprietà di un oggetto, processo o fenomeno.

Ad esempio: Dettagli

Le seguenti serie di termini sono equivalenti:

relazione, tabella, file;

tupla, stringa, record:

attributo, elemento colonna, campo.

Viene chiamato l'elenco denominato dei nomi degli attributi di relazione schema di relazione... Esempio di circuito:

Dettagli ( Numero di dettaglio, Nome parte, Tipo di elaborazione, Peso).

Un attributo chiave nello schema delle relazioni è enfatizzato.

Viene chiamato l'insieme di schemi di relazione utilizzati per rappresentare le informazioni schema del database relazionale.

Viene chiamato il numero di colonne nella relazione grado... Viene chiamato il numero corrente di tuple in una relazione energia... Il grado della relazione di solito non cambia dopo la creazione della relazione, ma la cardinalità fluttuerà quando vengono aggiunte nuove tuple e le vecchie tuple vengono rimosse.

Database relazionaleÈ un insieme di relazioni che contiene tutte le informazioni che devono essere archiviate nel database.

Frammento di database di esempio:

Atteggiamento 1. Radioelementi (transistor)

Atteggiamento 2. Magazzino

Ogni relazione ha una chiave. Chiave (chiave primaria, chiave di relazione, attributo chiave) Attributo o gruppo di attributi che identifica in modo univoco una tupla in una relazione. Se una chiave composita (è costituito da due o più attributi), quindi deve essere minimo... Ciò significa che se un attributo arbitrario viene escluso dalla chiave composita, gli attributi rimanenti non saranno sufficienti per identificare in modo univoco le singole tuple. I valori chiave nella relazione (tabella) devono essere univoci, ovvero non devono esserci due o più tuple (record) con lo stesso valore chiave. Se non ci sono campi in una relazione i cui valori sono univoci, viene solitamente inserito un campo numerico aggiuntivo per creare una chiave, contenente i numeri ordinali dei record.

In relazione a "Radioelementi (transistor)" la chiave è Tipo di dispositivo, in relazione a "Magazzino" - Numero di rack, Tipo di dispositivo.

Ci possono essere casi in cui una relazione ha diverse combinazioni di attributi, ognuna delle quali identifica in modo univoco tutte le tuple della relazione. Tutte queste combinazioni di attributi sono chiavi possibili relazioni. Qualsiasi chiave possibile può essere selezionata come primaria.

Le chiavi vengono comunemente utilizzate per i seguenti scopi:

eliminazione di valori duplicati negli attributi chiave;

ordinamento di tuple;

velocizzare il lavoro con le tuple relazionali;

organizzazione di tabelle di collegamento.

Lascia che la relazione R1 abbia un attributo non chiave A, i cui valori sono i valori dell'attributo chiave B di un'altra relazione R2. Quindi si dice che l'attributo A della relazione R1 (attributo B della relazione R2) è chiave esterna... I collegamenti tra le relazioni vengono stabiliti utilizzando chiavi esterne.

Classi di relazione... Le relazioni tra database relazionali sono classificate in due classi in base al contenuto: relazioni oggetto e relazioni connesse.

Relazioni oggettuali archiviare dati su gruppi di oggetti, fenomeni o processi omogenei aventi le stesse caratteristiche. Per quanto riguarda l'oggetto, la chiave è chiamata primaria o semplicemente la chiave della relazione.

Atteggiamento connesso memorizza i dati relativi alle relazioni tra relazioni oggetti. Una relazione connessa contiene le chiavi delle relazioni e dei dati oggetto correlati che caratterizza quantitativamente o qualitativamente la relazione. Le chiavi di relazione sono chiamate chiavi esterne perché sono le chiavi primarie di altre relazioni. Il modello relazionale impone un vincolo alle chiavi esterne chiamato integrità referenziale. Ciò significa che ogni valore di chiave esterna deve avere una tupla di relazione oggetto corrispondente. Senza questo, è possibile che la chiave esterna si riferisca a un oggetto di cui non si sa nulla.

Vediamo un esempio di oggetto e relazioni connesse.

Dettagli Relazione oggetto

Relazione oggetto materiali

Relazione connessa "Processo tecnologico"

Per "Parti", la chiave primaria è il numero di parte. Nella relazione materiale, la chiave primaria è il codice materiale. In relazione al "processo tecnologico" la chiave esterna è il numero di parte, codice materiale. L'attributo "Tasso di consumo di materiale per una parte" è una caratteristica quantitativa della relazione tra una parte e un materiale.

Poiché non tutte le tabelle possono essere associate a una relazione, presentiamo le condizioni, il cui adempimento ci consente di considerare una tabella come una relazione.

1. Tutte le righe della tabella devono essere univoche, ad es. non ci possono essere righe con le stesse chiavi primarie.

2. I nomi delle colonne nella tabella devono essere diversi e i loro valori semplici, ad es. un gruppo di valori in una colonna di una riga non è valido.

3. Tutte le righe di una tabella devono avere la stessa struttura, con i nomi e i tipi di colonna corrispondenti.

4. L'ordine delle righe nella tabella può essere arbitrario.

indicizzazione... Definire una chiave per una tabella significa ordinare automaticamente i record, assicurando che non ci siano valori duplicati nei campi chiave nei record e aumentare la velocità delle ricerche delle tabelle. Per implementare queste funzioni, il DBMS utilizza l'indicizzazione. Indice È un mezzo per accelerare l'operazione di ricerca di record in una tabella e, di conseguenza, altre operazioni che utilizzano la ricerca: estrazione, modifica, ordinamento, ecc. La tabella per cui viene utilizzato l'indice è denominata indicizzata. I campi chiave di una tabella in molti DBMS sono generalmente indicizzati automaticamente. Vengono chiamati gli indici creati per le chiavi indici primari.

A volte vengono chiamati indici creati dall'utente per campi non chiave indici secondari (personalizzati)... L'introduzione di tali indici non modifica la disposizione fisica dei record della tabella, ma influisce sull'ordine in cui i record vengono scansionati.

Il motivo principale dell'accelerazione di varie operazioni su tabelle indicizzate è che la maggior parte del lavoro viene eseguita su piccoli file indice, non sulle tabelle stesse. L'effetto maggiore del miglioramento delle prestazioni di lavoro con le tabelle indicizzate si ottiene per le tabelle di grandi dimensioni. L'indicizzazione richiede poco spazio su disco e sovraccarico della CPU per cambiare gli indici al volo.

Collegamenti tra relazioni (tabelle).In genere, un database è una raccolta di tabelle correlate. Il collegamento delle tabelle offre i seguenti vantaggi:

molti DBMS, quando si collegano le tabelle, controllano automaticamente l'integrità dei dati immessi nel database in conformità con i collegamenti stabiliti, il che aumenta l'affidabilità delle informazioni archiviate nel database;

più facile accesso ai dati. Il collegamento di tabelle per eseguire operazioni come la ricerca, la visualizzazione, la modifica, il recupero e la preparazione di report utilizzando informazioni da diverse tabelle riduce il numero di chiamate esplicite alle tabelle di dati e il numero di manipolazioni in ciascuna di esse.

Esistono diversi tipi di relazioni tra relazioni. Le relazioni collegate spesso interagiscono in modo master e sotto tabella. La tabella principale può anche essere chiamata genitore e subordinato: il figlio. La stessa tabella può essere primaria per una tabella del database e figlio per un'altra.

Relazione uno-a-moltisignifica che un record nella tabella padre può corrispondere a diversi record (incluso uno) nella tabella figlio. È possibile che nella tabella padre siano presenti record per i quali attualmente non vi sono record corrispondenti nella tabella figlio. Esiste anche una rigida relazione uno-a-molti, in cui ogni record nella tabella padre deve corrispondere a un record nella tabella figlio.

La relazione uno-a-molti è la relazione più comune per i database relazionali. Esempio di collegamento: le tabelle "Studenti" e "Esami" possono essere collegate da una relazione "uno-a-molti" dal campo "Numero voti". Questa connessione significherà che un record relativo a uno studente della tabella "Studenti" può essere collegato a diversi record relativi al superamento di esami da parte di un determinato studente nella tabella "Esami".

Comunicazione one-to-one si verifica quando solo un record nella tabella figlio corrisponde a un record nella tabella padre. Questa relazione è rara e significa che le informazioni provenienti da due tabelle potrebbero essere combinate in una sola. La presenza di due tabelle indica il desiderio di dividere le informazioni principali e secondarie in due relazioni. Ad esempio, le informazioni sugli studenti possono essere suddivise in due tabelle "Studenti" e "Informazioni aggiuntive", che saranno collegate da una relazione uno a uno nel campo Numero voto. Una relazione uno a uno comporta più letture necessarie per leggere le informazioni correlate su più tabelle, il che rallenta il recupero delle informazioni desiderate. Una relazione uno a uno può essere rigida o non rigida.

Il terzo tipo di connessione è relazione molti-a-molti... Questo tipo di relazione significa che diversi record di una tabella sono correlati a diversi record di un'altra tabella e viceversa. Ad esempio: potrebbe esserci una relazione molti-a-molti tra i gruppi di apprendimento, le discipline e le tabelle degli insegnanti. Ciò significa che ogni insegnante può insegnare più materie e, allo stesso tempo, più insegnanti possono insegnare la stessa materia.

Alcuni DBMS non supportano relazioni molti-a-molti a livello di integrità referenziale, sebbene consentano l'implementazione implicita nelle tabelle. Si ritiene che il database possa sempre essere ricostruito in modo tale che ogni relazione molti-a-molti venga sostituita con una o più relazioni uno-a-molti.

Garantire l'integrità dei dati... Uno dei concetti fondamentali nella tecnologia dei database è il concetto di integrità. In generale, questo concetto è principalmente legato al fatto che il database riflette modulo informativo qualche oggetto del mondo reale o un insieme di oggetti interconnessi del mondo reale. Nel modello relazionale, gli oggetti del mondo reale sono rappresentati come un insieme di relazioni correlate. Per integrità intendiamo la corrispondenza del modello informativo del dominio, memorizzato nel database, con gli oggetti del mondo reale e le loro interconnessioni in ogni momento del tempo. Qualsiasi modifica del dominio significativa per il modello costruito deve essere riflessa nel database e, allo stesso tempo, deve essere preservata un'interpretazione inequivocabile del modello informativo in termini di dominio.

Il supporto di integrità nel modello di dati relazionali in senso classico comprende 3 aspetti.

Il primo è il supporto integrità strutturale, che viene interpretato come il fatto che un DBMS relazionale dovrebbe consentire il lavoro solo con strutture dati omogenee di tipo "relazione relazionale". In questo caso, il concetto di "relazione relazionale" deve soddisfare tutte le restrizioni imposte nella teoria classica di un database relazionale (nessuna tupla duplicata, la presenza obbligatoria di una chiave primaria, l'assenza della nozione di ordine delle tuple).

Oltre all'integrità strutturale, è necessario considerare il problema dei valori Null non definiti. Un valore indefinito viene interpretato nel modello relazionale come un valore attualmente sconosciuto. Questo valore quando informazioni aggiuntive in qualsiasi momento può essere sostituito con un valore specifico. Quando si confrontano valori , non si applicano le regole di confronto standard: un valore null non viene mai considerato uguale a un altro valore null. Per rilevare l'uguaglianza del valore di alcuni attributi con un valore indefinito, vengono utilizzati predicati standard speciali:

<имя атрибута> È NULL e<имя атрибута> NON È NULL.

Se in una data tupla (in una data riga) l'attributo specificato ha un valore indefinito, allora il predicato IS NULL è TRUE e il predicato IS NOT NULL è FALSE, altrimenti il \u200b\u200bpredicato IS NULL è FALSE e IS NOT NULL è TRUE.

L'introduzione di valori Null ha reso necessario modificare la classica logica a due valori e trasformarla in logica a tre valori.

Il secondo è il supporto integrità linguistica, che consiste nel fatto che un DBMS relazionale deve fornire linguaggi per descrivere e manipolare dati non inferiori allo standard SQL. Non dovrebbero essere disponibili altri strumenti di manipolazione dei dati di basso livello non conformi allo standard.

Terzo è il supporto integrità referenziale (Integrità referenziale dichiarativa, DRI).

Integrità referenzialeÈ una raccolta di relazioni tra singole tabelle nell'intero database. La violazione di almeno una di tali connessioni rende inaffidabili le informazioni nel database. Il DBMS di solito blocca le azioni che violano l'integrità delle relazioni tra le tabelle, ad es. violare l'integrità referenziale. Garantire l'integrità referenziale significa che il DBMS, durante l'aggiornamento del database, garantisce il rispetto delle seguenti regole per le tabelle correlate:

una voce con un valore chiave di collegamento che non esiste nella tabella principale non può essere aggiunta alla tabella subordinata;

non è possibile eliminare un record nella tabella principale a meno che non vengano eliminati i record associati nella tabella subordinata;

la modifica dei valori della chiave di collegamento in un record della tabella principale non è possibile se nella tabella slave sono presenti record associati.

Quando un utente tenta di violare queste condizioni nelle operazioni di aggiunta ed eliminazione di record o di aggiornamento dei dati chiave nelle relative tabelle, il DBMS dovrebbe visualizzare messaggi di errore e non consentire l'esecuzione di tali operazioni.

Per prevenire la perdita di integrità referenziale, viene utilizzato un meccanismo a cascata. Consiste nel garantire le seguenti azioni:

quando si modifica un campo di collegamento in un record della tabella padre, è necessario modificare in modo sincrono i valori dei campi di collegamento nei corrispondenti record della tabella figlio;

quando si elimina un record nella tabella padre, eliminare i record corrispondenti nella tabella figlio.

L'integrità strutturale, linguistica e referenziale non determina la semantica del database, non si riferisce al contenuto del database, quindi viene introdotto il concetto supporto di integrità semantica.

Il supporto semantico può essere fornito in due modi: dichiarativo e procedurale.... Il percorso dichiarativo è associato alla presenza di meccanismi all'interno del DBMS che assicurano la convalida e l'implementazione di una serie di vincoli di regole specificati in modo dichiarativo, che sono spesso chiamati "Regole aziendali" o vincoli di integrità dichiarativa.

Si distinguono i seguenti tipi di vincoli di integrità dichiarativi:

· Vincoli di integrità degli attributi: valore predefinito, impostazione di valori obbligatori o opzionali (Null), impostazione delle condizioni sui valori degli attributi.

Se si specifica un valore predefinito, ogni volta che viene inserita una nuova riga nella relazione, se non ci sono dati nella colonna specificata, a questo attributo viene assegnato il valore predefinito. Ad esempio, quando si inseriscono nuove voci nel campo dell'anno di pubblicazione, è necessario immettere il valore dell'anno corrente. Per MS Access, questa espressione sarà simile a:

Qui NOW () è una funzione che restituisce il valore della data corrente, YEAR (data) è una funzione che restituisce il valore dell'anno per la data specificata come parametro.

Un altro esempio, come condizione sul valore per l'anno di pubblicazione, è necessario specificare un'espressione che controllerà se l'anno di pubblicazione rientra nell'intervallo dal 1960 all'anno corrente. Per MS Access, questa espressione apparirà così:

Tra il 1960 E L'ANNO (ORA ())

In MS DBMS server SQL il valore predefinito viene registrato come "regola aziendale". In questo caso, verrà utilizzata un'espressione, in cui il nome della colonna corrispondente deve essere esplicitamente specificato, ad esempio:

YEAR_PUBL\u003e \u003d 1960 AND YEAR_PUB<= YEAR(GETDATE())

Qui GETDATE () è una funzione di MS SQL Server che restituisce la data corrente, YEAR_PUB è il nome della colonna corrispondente all'anno di pubblicazione.

· Vincoli di integrità specificati dal dominio... Queste restrizioni sono utili se il database contiene più colonne di relazioni diverse che accettano valori dallo stesso insieme di valori validi. Alcuni DBMS consentono di definire domini separati, impostare il tipo di dati per ciascun dominio e impostare di conseguenza le restrizioni sotto forma di regole aziendali per i domini. In questo caso, gli attributi sono assegnati a un determinato dominio. A volte la struttura del dominio è implicita. Ad esempio, in MS SQL Server, invece del concetto di dominio, viene introdotto il concetto di un tipo di dati definito dall'utente, ma il significato di questo tipo di dati è effettivamente equivalente al significato di un dominio. È conveniente impostare una restrizione sul valore a livello di dominio, quindi verrà eseguito automaticamente per tutti gli attributi che prendono valori da questo dominio. Se la restrizione viene modificata, viene sostituita una volta a livello di dominio e tutti gli attributi che assumono valori da questo dominio funzioneranno automaticamente in base alla nuova regola.

· Vincoli di integrità impostati a livello di relazione. Alcune regole semantiche non possono essere tradotte in espressioni che si applicano solo a una colonna. Ad esempio, durante la creazione di una relazione, i lettori richiedono almeno un numero di telefono (casa o lavoro) per raggiungere rapidamente il lettore. Per MS Access o MS SQL Server, l'espressione corrispondente sarà la seguente:

HOME_PHON NON È NULL O WORK_PHON NON È NULL

· Vincoli di integrità specificati a livello di collegamento tra relazioni: impostazione dell'obbligo di comunicazione, principi di cancellazione in cascata e aggiornamento in cascata dei dati, impostazione del supporto per le limitazioni della potenza di comunicazione. Questi tipi di vincoli possono essere espressi specificando se i valori di chiave esterna sono richiesti o meno in relazioni correlate.

I vincoli di integrità dichiarativi si riferiscono a vincoli immediatamente verificabili. Ci sono vincoli di integrità che sono rinviati. Questi vincoli di integrità sono supportati dal meccanismo di transazione e trigger.

Sarebbe errato presumere che nei sistemi di informazione siano utilizzati solo database relazionali. Spesso è possibile trovare implementazioni di database basate su modelli gerarchici, di rete, relazionali e di altro tipo. Tuttavia, la maggior parte dei sistemi di informazione si basa su basi di dati relazionali, la cui base è stata posta da E. Codd alla fine degli anni '60, definendo le regole e le operazioni di base che dovrebbero essere applicate nell'attuazione di tali basi di dati. Molti modelli di database che possono essere trovati nei sistemi di informazione sono, in un modo o nell'altro, basati sui principi dei database relazionali e utilizzano vari strumenti aggiuntivi per migliorare il lavoro con determinati tipi di dati, ad esempio con dati geografici, dati in tempo reale (dati di streaming), dati multidimensionali, ecc.

La base nei database relazionali è un modello di dati relazionale costruito sulla base dell'algebra relazionale, che costituisce le regole di base per lavorare con i dati nei database corrispondenti.

Modello di dati relazionali

La costruzione di un modello di dati relazionali si basa sulla comprensione che qualsiasi set di dati può essere rappresentato sotto forma di relazione, formattato, ma sotto forma di tabella (Fig. 1.12), in cui vengono presentati i dati

attributi e valori all'intersezione dell'attributo corrispondente con il record (tupla).


Il termine "Relazione" indica una serie di dati combinati in una serie di record (tuple) e descritti da un'intestazione contenente una serie di attributi.

Nell'esempio sopra, l'intera serie di valori lavoro e l'intestazione con attributi denominati su cui sono posizionati i valori è chiamata relazione. In termini di logica formale, la relazione in termini generali può essere rappresentata come segue:

R (A, T), i \u003d (1..n) (11)

In questa rappresentazione, A è un attributo che descrive una caratteristica dei dati e T- il tipo di dati a cui devono corrispondere i dati da rappresentare nella relazione. L'esempio sopra è una dichiarazione informale della relazione. Il titolo non specifica i tipi di dati che descrivono le informazioni presentate nel corpo della relazione.

Di solito, il titolo di una relazione, in cui sono indicati i nomi degli attributi e i relativi tipi, viene chiamato schema di relazione e un insieme di schemi di relazione correlati viene chiamato schema di dati. Un'intestazione di relazione contiene tipi o tipi di dati standardizzati derivati \u200b\u200bda tipi standardizzati e l'insieme di valori associati a un attributo particolare di un tipo di dati standard o derivato viene chiamato dominio.

Waters il termine "Dominio" nella teoria dei database significa un insieme ammissibile di valori nominati di un tipo che hanno un certo significato

Da questa definizione segue che il dominio è caratterizzato dalle seguenti proprietà:

  • il dominio porta un certo carico semantico, che si esprime nella comprensione del significato dei dati descritti, che di solito coincide con la comprensione dei dati nell'area tematica;
  • un dominio è definito da un semplice o derivato da un semplice tipo di dati, che consente di utilizzare semplici operazioni logiche sui dati;
  • un dominio può contenere una condizione booleana che identifica un sottoinsieme specifico di dati valido per quel dominio.

Il corpo di una relazione è costruito da un insieme di record, che in termini di algebra relazionale sono chiamati tuple e rappresentano le informazioni che esistono nel dominio all'interno dell'oggetto considerato o gruppo di oggetti correlati.

Pertanto, secondo la definizione di tupla, include tutti i possibili dati che obbediscono alle regole definite dai singoli domini. Inoltre, ogni elemento dei dati tupla corrisponde a un solo dominio e obbedisce a tutte le proprietà definite da questo dominio.

La descrizione della tupla utilizza una serie di proprietà importanti, alcune delle quali sono presentate di seguito:

ogni tupla contiene un solo valore per ciascuno degli attributi che caratterizzano la relazione;

non viene assunto alcun ordinamento per i componenti di una tupla, come gli elementi di un dominio;

ogni sottoinsieme di tuple è rappresentato da una tupla simile.

Combinando domini e tuple, puoi formare una relazione che è generalmente definita come segue;

R [<Заголовок>]{<Список кортежей >}. (1.2)

L'intestazione della relazione è rappresentata da un elenco di attributi separati da virgola. Altrettanto importante è il fatto che il secondo parametro della relazione, se rappresentato correttamente, è indicato con il termine "Corpo", che contiene molte tuple. Ma per semplificare la comunicazione informale e semplificare la presentazione, il termine "Corpo" è sostituito dal termine "Tupla", il che implica che tutte le tuple formano il corpo della relazione. Oltre a comprendere i termini "Tupla", "Dominio" e "Corpo" nella teoria dei database relazionali, esiste un vincolo secondo il quale tutte le tuple della stessa relazione appartengono allo stesso tipo di tupla e quel tipo di tupla deve essere esattamente lo stesso come definito nel titolo della relazione. Pertanto, tutte le regole per la presentazione dei dati definite nell'intestazione si applicano a tutte le tuple della relazione.

Date le definizioni di relazione, tupla e dominio sopra descritte, è possibile formulare le proprietà di base di una relazione. Per un esempio di proprietà della relazione, prendere in considerazione la relazione di informazioni sui dipendenti dell'organizzazione, che include gli attributi delle tuple, ma il nome dell'impiegato, la sua posizione e il salario ufficiale. Questi attributi costituiranno il titolo della relazione, formando i domini per la relazione. Ogni attributo dell'intestazione contiene non solo il nome dell'attributo, ma anche il suo tipo (Fig. 1.13), che determina i possibili tipi di dati memorizzati in termini di presentazione, elaborazione e restrizioni.

Figura. 1.13. Esempio di relazione con i dipendenti

Qualsiasi relazione in un database relazionale ha le seguenti proprietà.

1. Ogni tupla contiene solo un valore del tipo corrispondente per ciascun attributo (la relazione è normalizzata).

A ciascun attributo dell'esempio presentato, all'interno di ciascuna tupla, viene assegnato un solo valore, che può essere visto all'intersezione del dominio selezionato "Nome completo del dipendente" e la tupla con il nome completo "Petrov Petr Petrovich". Il rapporto che corrisponde a questa proprietà è normalizzato, ad es. è in questo caso nella prima forma normale, 1NF.

2. Gli attributi non sono ordinati secondo nessuna regola.

In precedenza era stato definito che i componenti di una tupla non erano ordinati e poiché una tupla deve corrispondere in modo inequivocabile agli attributi di intestazione, anche questi attributi non sono ordinati. È necessario comprendere che una persona, quando rappresenta le strutture di dati, applica sempre determinate regole per ordinare attributi e tuple, ma è importante ricordare che tale ordinamento non è importante e non viene preso in considerazione quando si lavora con database relazionali. Pertanto, i concetti "Primo attributo" o "Secondo attributo" non sono applicabili agli oggetti del modello relazionale e non è neppure possibile discutere il termine "Attributo successivo" o "Attributo precedente".

Questa situazione offre una certa rigidità nel lavorare con i database, migliorando la qualità del codice del programma di elaborazione dei dati, che spesso non è sempre evidente quando si programma con una rigidità inferiore.

3. Le tuple non sono ordinate secondo nessuna regola.

Questa proprietà deriva dal fatto che il corpo della relazione è rappresentato

un insieme che non è ordinato da regole matematiche. Poiché le relazioni relazionali obbediscono alle regole per lavorare con insiemi matematici, viene utilizzato l'apparato matematico per lavorare con insiemi.

Naturalmente, presentando una relazione su carta, una persona proverà a semplificarla in qualche modo per semplificarne l'elaborazione. Tuttavia, questo riflesso della relazione non è una regola ed è solo una rappresentazione della relazione. La relazione stessa rimane non ordinata e presentandola in un diverso ordine di tuple, la relazione stessa non può essere modificata e gli stessi operatori di elaborazione possono essere applicati ad essa come per una relazione con un'altra rappresentazione ordinata. Ciò significa che per l'implementazione in database, una rappresentazione ordinata di una relazione non ha alcun senso, il che significa che qualsiasi relazione in un database non è ordinata.

4. Non ci sono tuple duplicate nella relazione.

Questa proprietà di una relazione deriva dalla comprensione che il corpo di una relazione è rappresentato da un insieme e che qualsiasi insieme, tenendo conto della sua rappresentazione matematica, non contiene duplicati. Ne consegue che, prendendo qualsiasi tupla rappresentata da tutti gli attributi utilizzati nella relazione, sarà impossibile trovare una singola tupla con esattamente gli stessi valori di attributo.

Allo stesso tempo, questa proprietà illustra le differenze tra una relazione e una tabella. Comprendendo che la tabella dei dati è l'implementazione fisica delle relazioni nel database, i record con gli stessi valori possono essere collocati lì, a meno che, naturalmente, tale possibilità non sia fornita a livello della logica del programma per la costruzione del database e la relazione, per definizione, non contenga mai tuple duplicate.

Spesso, quando non è necessario riflettere i valori descritti nella relazione (corpo della relazione), il modello relazionale si limita a specificare solo il titolo della relazione con la prescrizione del nome della relazione stessa, o solo il nome della relazione. Queste viste del modello di dati relazionali sono mappature filtrate utilizzate in strumenti di progettazione di database specializzati come IBM InfoSphere Data Architect (Figura 1.14).


Le informazioni principali contenute nel modello di dati relazionali sono i nomi delle relazioni (entità), gli attributi e i tipi di attributi che descrivono la relazione. Inoltre, il modello relazionale riflette le relazioni tra relazioni (entità), che consentono di visualizzare l'interazione di elementi di corpi di relazioni correlate. Ognuno di questi componenti del modello relazionale ha una serie di caratteristiche ausiliarie che perfezionano.

per la rappresentazione e l'elaborazione di elementi del corpo relazionale. Sebbene queste caratteristiche non siano esplicitamente visualizzate nel modello di dati, vengono prese in considerazione quando si presenta la relazione per intero, tenendo conto della visualizzazione del corpo della relazione.

Il modello di dati presentato nell'esempio utilizza un filtro di visualizzazione che tiene conto della necessità di visualizzare il nome della relazione (entità), la composizione attributtiva di ciascuna relazione e la relazione tra le relazioni. L'assenza di tipi di attributi e altre caratteristiche nella visualizzazione del modello non significa che siano indefiniti o meno. Significa solo che il modello di dati viene presentato per considerare solo i parametri specificati e tutte le altre caratteristiche sono fisse nei componenti nascosti del modello. Ad esempio, un'altra presentazione può essere il caso mostrato in Fig. 1.15.


In questa vista, oltre ai nomi delle relazioni (entità) e degli attributi, vengono visualizzati i tipi di dati che caratterizzano il corpo della relazione, sebbene il corpo stesso non sia rappresentato in questi modelli. Va tenuto presente che il modello di dati (modello di database) in strumenti di modellizzazione specializzati si concentra su un'ulteriore rappresentazione sotto forma di una struttura di database e l'indicazione degli organi di relazione è impraticabile. Per questo motivo, i corpi relazionali di solito non sono mostrati nei modelli di database. Se il modello è costruito specificamente per riflettere le operazioni con le relazioni, nel pieno senso di questo termine, allora tutte le relazioni dovrebbero essere rappresentate con corpi che illustrano i possibili valori che verranno successivamente memorizzati nelle tabelle del database.

Questa divisione introduce spesso un po 'di confusione nella correttezza dell'uso di un particolare modello di dati (modello di database), che richiede una descrizione più accurata del loro uso. Pertanto, il modello di dati sotto forma di relazioni viene utilizzato quando è necessario illustrare possibili operazioni sui dati di relazioni e comprendere la corretta interpretazione nel modello di dominio, rappresentato da oggetti con le loro possibili istanze. Il modello di dati sotto forma di entità e relazioni (modello EL) viene utilizzato per formare un modello di database logico (infologico) senza specificare valori di dati specifici ed è finalizzato a un'ulteriore presentazione sotto forma di una struttura di database. Il modello sotto forma di tabelle e collegamenti è costruito a livello fisico, riflettendo le peculiarità della presentazione e dell'elaborazione dei dati a livello di DBMS. Il risultato è una rappresentazione del modello di dati relazionali in tre versioni principali (Tabella 1.3).

Tabella 13

Opzioni di rappresentazione per modelli di dati relazionali

Tipo di presentazione

Usato

terminologia

Appuntamento

Modello con il riflesso del nome della relazione, composizione attributtiva, connessioni

L'essenza

Tipo di dati

Utilizzato per modellare una struttura di dati logica per la successiva transizione al livello fisico

Modello con intestazione e riflessione del corpo con possibili dati

Atteggiamento

Intestazione

Attributo / Dominio

Tipo di dati

Viene utilizzato per la presentazione con indicazione di possibili valori di dati e applicazione, se necessario, analisi di possibili operazioni su relazioni e dati nelle relazioni

Modello che visualizza le strutture della rappresentazione fisica dei dati nel DBMS

Attributo / 11ole / colonna

Tipo di dati

Viene utilizzato per visualizzare una variante della rappresentazione di una struttura che verrà implementata a livello fisico nel DBMS


Nota. Questa sezione discute le forme di presentazione del modello di database, che si riflette in tre opzioni. Va tenuto presente che la modellazione di database si basa sull'implementazione dei livelli di modellazione e, pertanto, esiste un'interpretazione dei modelli di dati in conformità con questi livelli, che sono rappresentati da altri tipi di modelli relazionali, che verranno discussi in seguito. A questo proposito, non si dovrebbe considerare esaustivo l'elenco delle rappresentazioni dei modelli sopra descritto, rendendosi conto che potrebbero esserci altre rappresentazioni e altri tipi di modelli.

  • Boyko V.V. Savinkov V.M. Progettazione di database di sistemi di informazione.
  • I tipi di dati saranno discussi nei capitoli successivi.
  • Il termine "Normalizzazione" e forme normali saranno discussi nel cap. 2.

Modello di dati relazionali

Il modello relazionale si basa sul concetto set-teorico di una relazione. Nelle discipline matematiche esiste un concetto ʼʼ atteggiamento (Relazione), la cui rappresentazione fisica è tavolo ... Da qui il nome del modello - relazionale .

Per quanto riguarda il database, i concetti "database relazionale" e "database tabulare" sono sinonimi. I database relazionali sono i più diffusi al mondo. Quasi tutti i prodotti di database creati dalla fine degli anni '70 sono relazionali.

Nel 1970, apparvero articoli che discutevano delle possibilità di usare vari modelli di dati tabulari. Il più significativo di questi era un articolo del ricercatore IBM Dr. E. Codd (Codd EF, Un modello relazionale di dati per grandi banche dati condivise. CACM 13: 6, giugno 1970), dove è stato applicato per la prima volta termine "modello di dati relazionali" ... Il progetto System R è stato sviluppato presso l'IBM Research Laboratory. Questo progetto è stato concepito con scopo dimostrare la praticità del modello relazionale. DBMS relazionale si riferisce a DBMS seconda generazione.

obiettivi creazione di un modello di dati relazionali:

1. Fornire un maggiore grado di indipendenza dai dati.

2. Costruire una solida base per affrontare i problemi di coerenza e ridondanza dei dati.

3. Ampliamento delle lingue di gestione dei dati includendo le operazioni sui set.

I sistemi commerciali basati sul modello di dati relazionali iniziarono ad apparire alla fine degli anni '70 e all'inizio degli anni '80. Oggi ci sono diverse centinaia di diversi tipi di DBMS relazionali.

Il modello relazionale è una forma conveniente e più comune di rappresentazione dei dati nel modulo tavoli (relazioni ). Ogni relazione ha nome e consiste in un nome attributi (colonne) di dati. Uno dei vantaggi di base del modello relazionale è il suo uniformità... Tutti i dati sono memorizzati in tabelle in cui ogni riga ha lo stesso formato. Ogni riga nella tabella rappresenta alcuni oggetti del mondo reale o relazioni tra oggetti.

I concetti di base con cui viene definito il modello relazionale sono i seguenti:

1. database relazionale - una serie di relazioni normalizzate;

2. atteggiamento - file, tabella piatta, costituito da colonne e righe; una tabella in cui ogni campo è atomico;

3. dominio - un insieme di valori ammissibili da cui viene preso il valore dell'attributo corrispondente di una determinata relazione. Dal punto di vista della programmazione, dominio - ϶ᴛᴏ tipo di dati;

4. universo - una serie di valori per tutti i campi o una serie di domini;

5. corteo - record, riga della tabella;

6. cardinalità - il numero di righe nella tabella;

7. attributicampi con nome, colonne di tabella;

8. grado di attitudine - il numero di campi (colonne);

9. diagramma delle relazioni - un elenco ordinato di nomi di attributi;

10. schema del database relazionale - una serie di schemi di relazione;

11. chiave primaria - un identificatore univoco con record non ripetitivi - una colonna o un sottoinsieme di colonne che identificano in modo univoco le righe.

Viene chiamata una chiave primaria che include più di una colonna plurale , o combinato , o composito , o super chiave .

Regola di integrità dell'oggetto afferma che la chiave primaria non deve essere completamente o parzialmente vuota.

La relazione tra questi concetti è illustrata in Fig. 4.5.

Nome e cognome Anno di nascita Posizione Dipartimento
1. Ivanov I. I. Testa Dipartimento 22
2. S. S. Sidorov Prof. 22
3. Andreeva G.G. Prof. 22
4. Tsvetkova S. S. docente
5. Kozlov K.K. docente 22
6. Petrov P. P. Arte. Rev. 22
attributi

figura. 4.5. Concetti di base del modello di dati relazionali.

A volte colonne diverse vengono selezionate come chiave primaria in una tabella. Una chiave dedicata è una chiave esplicitamente elencata con lo schema relazionale. Altrimenti, si parla di una chiave implicita, o di una chiave possibile o di una chiave candidata.

12. chiave esterna - ϶ᴛᴏ una colonna o un sottoinsieme di colonne di una tabella che può fungere da chiave primaria per un'altra tabella. La chiave esterna di una tabella è un riferimento alla chiave primaria di un'altra tabella. Poiché lo scopo di costruire un database è quello di archiviare tutti i dati, se possibile, in un'istanza, quindi se un certo attributo è presente in più relazioni, la sua presenza di solito riflette una certa relazione tra le righe di queste relazioni.

Le chiavi esterne implementano le relazioni tra le tabelle del database.

Una chiave esterna, come una chiave primaria, può essere una combinazione di colonne. In pratica, una chiave esterna sarà sempre composita se si riferisce a una chiave primaria composita di un'altra tabella. Il numero di colonne e i relativi tipi di dati nelle chiavi primaria ed esterna devono corrispondere.

Nel caso in cui una tabella sia correlata a diverse altre tabelle, può avere più chiavi esterne.

Ogni tabella relazionale possiede quanto segue proprietà:

Ha un nome ĸᴏᴛᴏᴩᴏᴇ diverso dai nomi di tutte le altre tabelle;

I dati nelle celle della tabella dovrebbero essere strutturalmente indivisibili. È inaccettabile che una cella di tabella contenga più di un'informazione. Per esempio, il numero e la serie del passaporto devono trovarsi in diverse colonne della tabella;

Tutte le colonne nella tabella sono omogenee, ᴛ.ᴇ. tutti gli elementi in una colonna hanno lo stesso tipo (numerico, carattere, ecc.) e lunghezza;

Ogni colonna ha un nome univoco;

Non ci sono righe identiche nella tabella;

L'ordine delle righe e delle colonne deve essere arbitrario, indipendentemente dal loro riordino, la relazione rimarrà la stessa e quindi avrà lo stesso significato.

I concetti di base del modello di dati relazionali sono concetti e tipi. Classificazione e caratteristiche della categoria "Concetti di base del modello di dati relazionali" 2017, 2018.

I fondamenti del modello di dati relazionali furono delineati per la prima volta in un articolo di E. Codd nel 1970. Questo lavoro è servito da stimolo per un gran numero di articoli e libri in cui il modello relazionale è stato ulteriormente sviluppato. L'interpretazione più comune del modello di dati relazionali appartiene a K. Date. Secondo Date, il modello relazionale ha tre parti:

    La parte strutturale

    Parte integrale.

    La parte di manipolazione.

Parte strutturale descrive quali oggetti sono considerati dal modello relazionale. Si ipotizza che l'unica struttura di dati utilizzata nel modello relazionale siano le relazioni normali normalizzate.

Parte integrale descrive i vincoli di un tipo speciale che devono essere soddisfatti per qualsiasi relazione in qualsiasi database relazionale. esso integrità dell'entità e integrità della chiave esterna .

Parte di manipolazione descrive due modi equivalenti per manipolare i dati relazionali - algebra relazionale e calcolo relazionale .

Questo capitolo discute la parte strutturale del modello relazionale.

Tipi di dati

Tutti i dati utilizzati nella programmazione hanno i propri tipi di dati.

Importante! Il modello relazionale richiede i tipi di dati utilizzati per essere semplice.

Per chiarire questa affermazione, considerare quali tipi di dati sono generalmente considerati nella programmazione. In genere, i tipi di dati sono divisi in tre gruppi:

    Tipi di dati semplici.

    Tipi di dati strutturati.

    Tipi di dati di riferimento.

Tipi di dati semplici

Tipi di dati semplici o atomici non hanno una struttura interna. Questo tipo di dati viene chiamato scalari ... I tipi di dati semplici includono i seguenti tipi:

    Logico.

    Corda.

    Numerico.

Vari linguaggi di programmazione possono espandere e perfezionare questo elenco aggiungendo tipi come:

  • Vero.

  • Monetario.

    Enumerable.

    Intervallo.

Naturalmente, il concetto di atomicità è piuttosto relativo. Pertanto, un tipo di dati stringa può essere visualizzato come una matrice di caratteri unidimensionale e un intero tipo di dati come un insieme di bit. L'unica cosa importante è che quando vai a un livello così basso, perdi semantica (significato) dei dati ... Se una stringa che esprime, ad esempio, il cognome di un dipendente, viene scomposta in una matrice di caratteri, il significato di tale stringa nel suo insieme viene perso.

Tipi di dati strutturati

Tipi di dati strutturati sono progettati per definire strutture dati complesse. I tipi di dati strutturati sono costruiti da elementi costituenti chiamati componenti, che a loro volta possono essere strutturati. I seguenti tipi di dati possono essere citati come tipi di dati strutturati:

  • Record (strutture)

Matematicamente, un array è una funzione con ambito limitato. Ad esempio, considera un insieme finito di numeri naturali

chiamato il set di indici. Schermo

da set a set di numeri reali definisce una matrice reale monodimensionale. Il valore di questa funzione per alcuni valori di indice è chiamato elemento array corrispondente a. Le matrici multidimensionali possono essere definite in modo simile.

Un record (o struttura) è una tupla di alcuni prodotti cartesiani di insiemi. In effetti, un record è un insieme ordinato di elementi, ciascuno dei quali appartiene a un tipo. Quindi, la voce è un elemento dell'insieme ... Dichiarando nuovi tipi di record basati su tipi esistenti, l'utente può costruire tipi di dati arbitrariamente complessi.

Ciò che accomuna i tipi di dati strutturati è che avere una struttura internausato da allo stesso livello di astrazionecome i tipi di dati stessi.

Spieghiamo questo come segue. Quando si lavora con array o record, è possibile manipolare l'array o registrare entrambi con un singolo intero (creare, eliminare, copiare interi array o record) e elemento per elemento. Per i tipi di dati strutturati, esistono funzioni speciali - costruttori di tipi, che consentono di creare matrici o record da elementi di tipi più semplici.

Quando si lavora con tipi di dati semplici, come quelli numerici, li manipoliamo come oggetti interi indivisibili. Per "vedere" che un tipo di dati numerico è in realtà complesso (è una raccolta di bit), è necessario passare a un livello inferiore di astrazione. A livello del codice del programma, sembrerà che gli assemblatori inseriscano nel codice in un linguaggio di alto livello o l'uso di speciali operazioni bit a bit.

Tipi di dati di riferimento

Tipo di dati di riferimento (puntatori ) ha lo scopo di fornire la possibilità di puntare ad altri dati. I puntatori sono tipici dei linguaggi procedurali, che hanno il concetto di un'area di memoria per l'archiviazione dei dati. Il tipo di dati di riferimento è progettato per gestire strutture mutevoli complesse, come alberi, grafici, strutture ricorsive.

Tipi di dati utilizzati nel modello relazionale

In realtà, per un modello di dati relazionali, il tipo di dati utilizzati non è importante. Richiede che il tipo di dati sia semplice, devi capirlo le operazioni relazionali non dovrebbero tenere conto della struttura interna dei dati... Naturalmente, devono essere descritte azioni che possono essere eseguite con i dati nel loro insieme, ad esempio è possibile aggiungere dati di tipo numerico, per le stringhe è possibile un'operazione di concatenazione, ecc.

Da questo punto di vista, se consideriamo l'array, ad esempio, nel suo insieme e non utilizziamo operazioni a livello di elemento, l'array può essere considerato un semplice tipo di dati. Inoltre, è possibile creare il proprio tipo di dati arbitrariamente complesso, descrivere possibili azioni con questo tipo di dati e se le operazioni non richiedono la conoscenza della struttura interna dei dati, questo tipo di dati sarà anche semplice dal punto di vista della teoria relazionale. Ad esempio, è possibile creare un nuovo tipo: numeri complessi come record del modulo, dove. È possibile descrivere le funzioni di addizione, moltiplicazione, sottrazione e divisione e tutte le azioni con componenti ed eseguire solo dentroqueste operazioni. Quindi, se nelle azioni con questo tipo si utilizza solooperazioni descritte, la struttura interna non ha importanza e il tipo di dati dall'esterno sembra atomico.

Questo è esattamente il modo in cui alcuni DBMS post-relazionali implementano il lavoro con tipi di dati arbitrariamente complessi creati dagli utenti.

domini

Nel modello di dati relazionali, il concetto di un tipo di dati è strettamente correlato al concetto di dominio, che può essere considerato un perfezionamento di un tipo di dati.

Dominio è un concetto semantico. Un dominio può essere visualizzato come un sottoinsieme dei valori di alcuni tipi di dati che hanno un significato specifico. Il dominio è caratterizzato dalle seguenti proprietà:

    Dominio ha nome unico(all'interno del database).

    Dominio definito su alcuni semplicetipo di dati o su un dominio diverso.

    Il dominio potrebbe averne alcuni condizione logicache ti consente di descrivere un sottoinsieme dei dati valido per un determinato dominio.

    Il dominio ha un certo carico semantico.

Ad esempio, un dominio che ha il significato di "età dei dipendenti" può essere descritto come il seguente sottoinsieme dell'insieme dei numeri naturali:

La differenza tra un dominio e il concetto di un sottoinsieme sta proprio nel fatto che il dominio riflette la semanticadefinito dall'area tematica. Possono esistere diversi domini che coincidono come sottoinsiemi, ma hanno significati diversi. Ad esempio, i domini "Peso parte" e "Quantità disponibile" possono essere descritti in modo simile come un insieme di numeri interi non negativi, ma il significato di questi domini sarà diverso e saranno variodomini.

Il significato principale dei domini è questo i domini limitano i confronti... Non è corretto, da un punto di vista logico, confrontare i valori di domini diversi, anche se hanno lo stesso tipo. Questa è una manifestazione della limitazione semantica dei domini. La query sintatticamente corretta "fornisce un elenco di tutte le parti con un peso parte maggiore della quantità disponibile" non corrisponde al significato dei concetti "quantità" e "peso".

Commento... Il concetto di dominio aiuta correttamente simulareargomento. Quando si lavora con un sistema reale, in linea di principio è possibile una situazione in cui è necessario rispondere alla richiesta di cui sopra. Il sistema darà una risposta, ma probabilmente non avrà senso.

Commento... Non tutti i domini hanno una condizione booleana che limita i possibili valori di dominio. In tal caso, l'insieme dei possibili valori del dominio corrisponde all'insieme dei possibili valori del tipo di dati.

Commento... Non è sempre ovvio come impostare una condizione booleana che limiti i possibili valori di dominio. Sarò grato a qualcuno che mi darà una condizione per un tipo di dati stringa che imposta il dominio "Cognome dipendente". È chiaro che le linee che sono cognomi non devono iniziare con numeri, caratteri di servizio, con un segno morbido, ecc. Ma il cognome "Гггггыыыыый" (s) è accettabile? Perchè no? Ovviamente no! O forse qualcuno per dispetto si chiamerà così. Difficoltà di questo tipo sorgono perché il significato dei fenomeni reali è lungi dall'essere sempre possibile descriverlo formalmente. È solo che, come tutte le persone, comprendiamo intuitivamente cos'è un cognome, ma nessuno può dare una definizione così formale che distingua i cognomi dalle stringhe che non sono cognomi. La via d'uscita da questa situazione è semplice: fare affidamento sulla mente dell'impiegato che inserisce i nomi nel computer.

Relazioni, attributi, tuple relazionali

Definizioni ed esempi

Il concetto fondamentale del modello di dati relazionali è il concetto relazioni ... Nella definizione del concetto di relazione, seguiremo il libro di K. Date.

Definizione 1. Attributo di relazione ce ne sono un paio di tipi<Имя_атрибута: Имя_домена>.

I nomi degli attributi devono essere univoci all'interno della relazione. Spesso, i nomi degli attributi di una relazione sono gli stessi dei nomi di dominio corrispondenti.

Definizione 2. Atteggiamento definito su più domini (non necessariamente diversi) contiene due parti: un'intestazione e un corpo.

Intestazione della relazione contiene un numero fisso di attributi di relazione:

Relazione corporea contiene molte tuple relazionali. Ogni tupla relazionale è un insieme di coppie del modulo<Имя_атрибута: Значение_атрибута>:

tale che il valore dell'attributo appartiene al dominio

La relazione è generalmente scritta come:

o più corto

,

o semplicemente

Viene chiamato il numero di attributi in una relazione grado (o -arietà ) relazioni.

Viene chiamata la cardinalità dell'insieme delle tuple di una relazione energia relazioni.

Ritornando al concetto matematico di relazione introdotto nel capitolo precedente, si possono trarre le seguenti conclusioni:

Conclusione 1... L'intestazione della relazione descrive il prodotto cartesiano dei domini su cui è definita la relazione. L'intestazione è statica, non cambia mentre si lavora con il database. Se la relazione ha cambiato, aggiunto o rimosso gli attributi, il risultato è già altroatteggiamento (anche con lo stesso nome).

Conclusione 2... Il corpo di una relazione è una raccolta di tuple, cioè un sottoinsieme del prodotto cartesiano dei domini. Pertanto, il corpo di una relazione è esso stesso una relazione nel senso matematico della parola. Il corpo della relazione può cambiare mentre si lavora con il database: le tuple possono essere modificate, aggiunte ed eliminate.

Esempio 1 ... Considera la relazione "Dipendenti" definita sui domini "Employee_Number", "Lastname", "Salary", "Department_Number". Perché Poiché tutti i domini sono diversi, è conveniente nominare i nomi degli attributi allo stesso modo dei domini corrispondenti. Assomiglia all'intestazione della relazione.

Un modello di dati è una raccolta di strutture di dati e operazioni per la loro elaborazione. Utilizzando il modello di dati, è possibile visualizzare la struttura degli oggetti e le relazioni stabilite tra di essi. La terminologia dei modelli di dati è caratterizzata dai concetti di "elemento di dati" e "regole vincolanti". Un elemento di dati descrive qualsiasi insieme di dati e le regole di associazione definiscono gli algoritmi di relazione per gli elementi di dati. Ad oggi, sono stati sviluppati molti modelli di dati diversi, ma in pratica ne vengono utilizzati tre principali. Si distinguono modelli di dati gerarchici, di rete e relazionali. Di conseguenza, parlano di DBMS gerarchici, di rete e relazionali.

О Modello di dati gerarchici. I dati organizzati gerarchicamente sono molto comuni nella vita di tutti i giorni. Ad esempio, la struttura di un istituto di istruzione superiore è una struttura gerarchica multilivello. Un database gerarchico (simile ad un albero) è costituito da un insieme ordinato di elementi. In questo modello, gli elementi originali generano altri elementi e questi a loro volta generano i seguenti elementi. Ogni bambino ha un solo genitore.

Organigrammi, elenchi di materiali, sommario di libri, piani di progetto e molte altre raccolte di dati possono essere presentati in modo gerarchico. L'integrità dei collegamenti tra antenati e discendenti viene automaticamente mantenuta. Regola generale: nessun discendente può esistere senza il suo genitore.

Il principale svantaggio di questo modello è la necessità di utilizzare la gerarchia posta sulla base del database durante la progettazione. La necessità di una riorganizzazione dei dati costante (e spesso l'impossibilità di questa riorganizzazione) ha portato alla creazione di un modello più generale: la rete.

Informazioni sul modello di dati di rete. L'approccio in rete all'organizzazione dei dati è un'estensione dell'approccio gerarchico. Questo modello differisce dal modello gerachico in quanto ogni elemento generato può avere più di un elemento padre. ■

Poiché un database di rete può rappresentare direttamente tutti i tipi di relazioni inerenti ai dati dell'organizzazione corrispondente, questi dati possono essere esplorati, esplorati e interrogati in tutti i modi, cioè il modello di rete non è collegato da una sola gerarchia. Tuttavia, al fine di comporre una query in un database di rete, è necessario approfondire la sua struttura (avere a portata di mano uno schema di questo database) e sviluppare un meccanismo per la navigazione nel database, che è un inconveniente significativo di questo modello di database.

Informazioni sul modello di dati relazionali. L'idea alla base di un modello di dati relazionale è quella di rappresentare qualsiasi set di dati come una tabella bidimensionale. Nel suo caso più semplice, un modello relazionale descrive una singola tabella bidimensionale, ma molto spesso questo modello descrive la struttura e le relazioni tra più tabelle diverse.

Modello di dati relazionali

Quindi, lo scopo del sistema informativo è quello di elaborare datidi oggettiil mondo reale, dato connessionitra oggetti. Nella teoria del DB, i dati vengono spesso chiamati attributi eoggetti - entità.Oggetto, attributo e connessione sono concetti fondamentali di I.S.

Un oggetto(o entità) è qualcosa che esiste e distinguibile,cioè, un oggetto può essere chiamato quel "qualcosa" per il quale esiste un nome e un modo per distinguere un oggetto simile da un altro. Ad esempio, ogni scuola è un oggetto. Gli oggetti sono anche una persona, una classe in una scuola, un'azienda, una lega, un composto chimico, ecc. Gli oggetti possono essere non solo oggetti materiali, ma anche concetti più astratti che riflettono il mondo reale. Ad esempio, eventi, regioni, opere d'arte; libri (non come prodotti stampati, ma come opere), spettacoli teatrali, film; norme legali, teorie filosofiche, ecc.

Attributo(o dato)- questo è un indicatore che caratterizza un determinato oggetto e assume per un'istanza specifica dell'oggetto un valore numerico, testuale o altro. Il sistema informativo opera con insiemi di oggetti progettati in relazione a una determinata area tematica, utilizzando specifici valori di attributo(dati) di determinati oggetti. Ad esempio, prendiamo lezioni in una scuola come un insieme di oggetti. Il numero di studenti in una classe è un dato, che assume un valore numerico (una classe ha 28, un'altra ha 32). Il nome della classe è un dato che assume un significato testuale (uno ha 10A, l'altro ha 9B, ecc.).

Lo sviluppo di basi di dati relazionali iniziò alla fine degli anni '60, quando i primi documenti apparvero in discussione; la possibilità di utilizzare nella progettazione di basi di dati i modi usuali e naturali di rappresentare i dati - i cosiddetti modelli datalogical tabulari.

Il fondatore della teoria dei database relazionali è considerato un dipendente IBM, il Dr. E. Codd, che ha pubblicato il 6 (articolo del giugno 1970 Un modello relazionale di dati per banche dati di grandi dimensioni(Modello di dati relazionali per grandi banche dati collettive). Questo articolo ha usato inizialmente il termine "modello di dati relazionali". La teoria dei database relazionali, sviluppata negli anni '70 negli Stati Uniti dal Dr. E. Codd, ha una potente base matematica che descrive le regole per l'organizzazione efficiente dei dati. La base teorica sviluppata da E. Codd divenne la base per lo sviluppo della teoria della progettazione di database.

E. Codd, essendo un matematico per educazione, ha suggerito di utilizzare l'apparato della teoria degli insiemi (unione, intersezione, differenza, prodotto cartesiano) per l'elaborazione dei dati. Ha dimostrato che qualsiasi insieme di dati può essere rappresentato sotto forma di tabelle bidimensionali di un tipo speciale, note in matematica come "relazioni".

relazionalesi considera un tale database in cui tutti i dati sono presentati all'utente sotto forma di tabelle rettangolari di valori di dati e tutte le operazioni sul database sono ridotte alla manipolazione delle tabelle.

La tabella è composta da colonne (campi)e stringhe (record);ha un nome univoco all'interno del database. tavoloriflette tipo di oggettoil mondo reale (essenza),e ciascuno di lei stringa è un oggetto specifico.Ogni colonna in una tabella è una raccolta di valori per un attributo particolare di un oggetto. I valori vengono selezionati dall'insieme di tutti i possibili valori dell'attributo oggetto, che viene chiamato dominio.

Nella sua forma più generale, viene definito un dominio specificando un tipo di dati di base, a cui appartengono gli elementi del dominio, e un'espressione logica arbitraria applicata agli elementi di dati. Se, durante la valutazione di una condizione logica su un elemento di dati, il risultato è "vero", questo elemento appartiene al dominio. Nel caso più semplice, un dominio è definito come un insieme potenziale valido di valori dello stesso tipo. Ad esempio, l'insieme delle date di nascita di tutti i dipendenti costituisce la "data del dominio di nascita", mentre i nomi di tutti i dipendenti costituiscono il "dominio dei nomi dei dipendenti". La data del dominio di nascita ha un tipo di dati per archiviare informazioni sui punti temporali e il dominio del nome del dipendente deve essere un tipo di dati carattere.

Se due valori provengono dallo stesso dominio, è possibile confrontare i due valori. Ad esempio, se due valori provengono dal dominio delle date di nascita, è possibile confrontarli per determinare quale dipendente è più vecchio. Se i valori sono presi da domini diversi, il loro confronto non è consentito, poiché, con ogni probabilità, non ha senso. Ad esempio, dal confronto tra il nome e la data di nascita di un dipendente non verrà fuori nulla di preciso.

Ogni colonna (campo) ha un nome, che di solito è scritto nella parte superiore della tabella. Quando si progettano tabelle all'interno di un DBMS specifico, è possibile selezionare per ciascun campo il suo un tipo,vale a dire, definire un insieme di regole per visualizzarlo, nonché definire quelle operazioni che possono essere eseguite sui dati memorizzati in questo campo. Gli insiemi di tipi possono differire per DBMS diversi.

Il nome del campo deve essere univoco nella tabella, tuttavia tabelle diverse possono avere campi con lo stesso nome. Ogni tabella deve avere almeno un campo; i campi sono disposti nella tabella secondo l'ordine dei loro nomi quando è stato creato. A differenza dei campi, le stringhe non hanno nomi; il loro ordine nella tabella non è definito e il numero è logicamente illimitato.

Dal momento che le righe nella tabella non sono ordinate, è impossibile selezionare una riga in base alla sua posizione: non vi sono "primo", "secondo", "ultimo" tra loro. Ogni tabella ha una o più colonne, i valori in cui identificano in modo univoco ciascuna delle sue righe. Tale colonna (o combinazione di colonne) viene chiamata chiave primaria... Un campo artificiale viene spesso introdotto in record numerici in una tabella. Un tale campo, ad esempio, può essere il suo ordinale, che può garantire l'unicità di ciascun record nella tabella. La chiave deve avere le seguenti proprietà.

Unicità.In qualsiasi momento nel tempo, due diverse tuple della relazione non hanno lo stesso valore per la combinazione degli attributi inclusi nella chiave. Cioè, la tabella non può contenere due righe con lo stesso numero di identificazione o numero di passaporto.

Minimalità.Nessuno degli attributi inclusi nella chiave può essere escluso dalla chiave senza violare l'unicità. Ciò significa che non è necessario creare una chiave che includa sia il numero di passaporto che il numero di identificazione. È sufficiente utilizzare uno di questi attributi per identificare in modo univoco la tupla. Inoltre, non è necessario includere un attributo non univoco nella chiave, ovvero è vietato utilizzare come combinazione una combinazione di un numero di identificazione e il nome di un dipendente. Escludendo il nome dell'impiegato dalla chiave, è ancora possibile identificare in modo univoco ogni riga.

Ogni relazione ha almeno una chiave possibile, poiché la totalità di tutti i suoi attributi soddisfa la condizione di unicità - questo deriva dalla definizione stessa della relazione.

Uno dei possibili tasti viene selezionato casualmente in come chiave primaria.Altre eventuali chiavi vengono prese come chiavi alternative.Ad esempio, se si seleziona un numero di identificazione come chiave primaria, il numero del passaporto sarà una chiave alternativa.

La relazione tra tabelle è un elemento essenziale del modello di dati relazionali. Lei è supportata chiavi esterne.

Quando si descrive un modello di database relazionale, vengono spesso usati termini diversi per lo stesso concetto, a seconda del livello di descrizione (teoria o pratica) e del sistema (Access, SQL Server, dBase). tavolo 2.3 riassume i termini utilizzati.

Tabella 2.3Terminologia del database

Teoria del database ____________ Database relazionali _________ SQL Server __________

Tabella delle relazioni

Riga record tupla

Campo attributo _______________ Colonna

Database relazionali

Database relazionaleè un insieme di relazioni che contiene tutte le informazioni che devono essere archiviate nel database. Cioè, il database rappresenta l'insieme di tabelle necessarie per archiviare tutti i dati. Le tabelle del database relazionale sono logicamente correlate tra loro. I requisiti per la progettazione di un database relazionale possono essere riassunti in poche regole.

О Ogni tabella ha un nome univoco nel database ed è composta da righe dello stesso tipo.

О Ogni tabella è composta da un numero fisso di colonne e valori. Non è possibile memorizzare più di un valore in una colonna di una riga. Ad esempio, se esiste una tabella con informazioni sull'autore, la data di pubblicazione, la diffusione, ecc., La colonna con il nome dell'autore non può contenere più di un cognome. Se il libro è stato scritto da due o più autori, dovrai utilizzare tabelle aggiuntive.

О In nessun momento ci saranno due file nella tabella che si duplicheranno. Le righe devono differire di almeno un valore per poter identificare in modo univoco qualsiasi riga della tabella.

О A ogni colonna viene assegnato un nome univoco all'interno della tabella; viene impostato un tipo di dati specifico in modo che valori omogenei (date, cognomi, numeri di telefono, somme di denaro, ecc.) vengano inseriti in questa colonna.

О Il contenuto informativo completo del database è presentato sotto forma di valori espliciti dei dati stessi e questo metodo di presentazione è l'unico. Ad esempio, la relazione tra le tabelle si basa sui dati memorizzati nelle colonne corrispondenti e non sulla base di eventuali puntatori che definiscono artificialmente le relazioni.

О Durante l'elaborazione dei dati, è possibile fare liberamente riferimento a qualsiasi riga o colonna della tabella. I valori memorizzati nella tabella non impongono alcuna restrizione sull'ordine in cui si accede ai dati. Descrizione della colonna,

LA CAMPANA

C'è chi legge questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam