Computer finestre Internet

Stabilire relazioni tra entità. Progettare un modello in ERWin Erwin Esempi

Una relazione è una relazione logica tra entità. Ogni connessione deve essere nominata con un verbo o una frase verbale. Il nome della relazione esprime una sorta di restrizione o regola aziendale e rende il diagramma più facile da leggere. Per impostazione predefinita, il nome del collegamento non viene visualizzato nel diagramma. A livello logico, è possibile stabilire una relazione uno-a-molti identificativa, una relazione molti-a-molti e una relazione uno-a-molti non identificativa. Un collegamento è un concetto di livello logico che corrisponde a una chiave esterna a livello fisico. In ERwin, le relazioni sono rappresentate da cinque informazioni di base:

● tipo di rapporto (identificativo, non identificativo, categoria piena/incompleta, rapporto non specifico);

● entità madre;

● entità figlio (a carico);

● potere comunicativo (cardinalità);

● ammissibilità di valori vuoti (null).

IDEFIX distingue tra entità dipendenti e indipendenti. Il tipo di un'entità è determinato dalla sua relazione con altre entità. Viene stabilita una relazione identificativa tra un'entità indipendente (padre) e dipendente (figlio). L'entità dipendente viene disegnata con un rettangolo arrotondato. Quando viene stabilita una relazione di identificazione, gli attributi della chiave primaria dell'entità padre vengono automaticamente trasferiti alla chiave primaria dell'entità figlio. Questa operazione di aumento degli attributi di un'entità figlio durante la creazione di una relazione è chiamata migrazione degli attributi. Nell'entità figlio, i nuovi attributi sono contrassegnati come chiave esterna - FK.

Quando viene stabilita una relazione non identificativa, il figlio rimane indipendente e gli attributi chiave primari del genitore sono inclusi negli attributi non chiave del figlio. Una relazione non identificativa viene utilizzata per collegare entità indipendenti. Per definire le relazioni ERwin, selezionare il tipo di relazione, quindi utilizzare il mouse per specificare l'entità padre e figlio. Il collegamento identificativo è mostrato come una linea continua; non identificativo - con una linea tratteggiata. Le linee terminano con un punto a lato dell'entità figlio.

Cardinalità - utilizzato per indicare il rapporto tra il numero di istanze dell'entità padre e il numero di istanze del figlio.

Esistono quattro tipi di entità:

· Il caso generale, quando un'istanza di un'entità padre corrisponde a 0, 1 o più istanze di un'entità figlio; non è contrassegnato da alcun simbolo;

· Il simbolo P segnala il caso in cui un'istanza dell'entità genitore corrisponde a 1 o più istanze dell'entità figlio (il valore zero è escluso);

· Il simbolo Z segna il caso in cui un'istanza dell'entità genitore corrisponde a 0 o 1 istanza dell'entità figlia (sono esclusi i valori multipli);

· Un numero denota il caso di una corrispondenza esatta, quando un numero predeterminato di istanze di un'entità figlio corrisponde a un'istanza dell'entità padre.

· L'ammissibilità di valori vuoti (NULL) nelle relazioni non identificative è rappresentata da ERwin come un rombo vuoto sull'arco della relazione dal lato dell'entità genitore.

Il nome della relazione a livello logico è un verbo che collega le entità. Il nome fisico del collegamento (che può differire da quello logico) per ERWIN indica il nome del vincolo o indice. Per visualizzare il nome della relazione, selezionare un'opzione dal menu: Formato / Visualizzazione relazione / Frase verbale.

Alcune entità definiscono un'intera categoria di oggetti dello stesso tipo. In ERwin, in questo caso, viene creata un'entità per definire la categoria e per ogni articolo nella categoria, quindi viene introdotta per loro una relazione di categorizzazione. L'entità padre della categoria è chiamata supertipo e i figli sono chiamati sottotipo.

Ad esempio, l'entità "documento in entrata" può essere una richiesta o un ordine. Il primo e il secondo hanno set di attributi diversi e parzialmente sovrapposti (l'intersezione minima dei sottotipi è la chiave primaria). La parte comune di questi attributi, inclusa la chiave primaria, viene inserita nell'entità supertipo del documento in entrata. Varie parti (ad esempio, dati sul contenuto, mittente) sono collocate in sottotipi di entità.

In un'entità supertipo, viene introdotto un attributo discriminatore per distinguere tra istanze specifiche di un'entità sottotipo.

A seconda che tutte le possibili entità di sottotipo siano incluse nel modello, la relazione categoriale è completa o incompleta.

Figura 1.4 - Un esempio di un insieme incompleto di categorie

Figura 1.5 - Un esempio di un insieme completo di categorie

3. Un'entità può essere un'entità comune in qualsiasi numero di relazioni di categorizzazione.

4. Gli attributi della chiave primaria dell'entità categoria devono corrispondere agli attributi della chiave primaria dell'entità generale.

5. Tutte le istanze della categoria-entità hanno lo stesso valore discriminatore e tutte le istanze di altre categorie devono avere valori discriminatori diversi (vedi Fig. 4 e Fig. 5).

Ruoli.

Il nome del ruolo (nome funzionale) è un sinonimo di un attributo di chiave esterna che indica il ruolo svolto dall'attributo in un'entità figlio. Per impostazione predefinita, nell'elenco degli attributi viene visualizzato solo il nome del ruolo. Per visualizzare il nome completo di un attributo (sia il nome della funzione che il nome del ruolo), selezionare Formato/Visualizzazione entità dal menu contestuale e quindi abilitare l'opzione Nome ruolo/Attributo. Il nome completo viene mostrato come un nome funzionale e un nome di base, separato da un punto. Il nome del ruolo viene impostato nella scheda Nome ruolo della finestra di dialogo Relazione. Questa finestra viene richiamata facendo doppio clic sul collegamento.

È obbligatorio utilizzare i nomi dei ruoli quando due o più attributi di un'entità sono definiti nello stesso ambito, ad es. hanno la stessa gamma di valori, ma significati diversi.

Rappresentazione.

Le viste o, come vengono talvolta chiamate, tabelle temporanee o derivate, sono oggetti di database in cui i dati non vengono archiviati in modo permanente, come in una tabella, ma vengono generati dinamicamente quando si accede alla vista. Una vista non può esistere da sola, ma è definita solo in termini di una o più tabelle. L'utilizzo delle viste consente al progettista del database di fornire a ciascun utente o gruppo di utenti una vista diversa dei dati, affrontando così i problemi di facilità d'uso e sicurezza dei dati.

accordi

Accettiamo alcune convenzioni per brevità della successiva presentazione:

· Fare clic - premendo il tasto sinistro del mouse.

· Clic destro - premendo il tasto destro del mouse.

Doppio clic - due clic consecutivi sul pulsante del mouse

· Seleziona - sposta il cursore sull'oggetto corrispondente (elemento del diagramma, voce di menu, icona) e fai clic con il tasto sinistro del mouse.

Trascina - seleziona un oggetto e, senza rilasciare il pulsante del mouse, sposta il cursore v un'altra posizione.

· Un record di tipo File/Apri significa che è necessario selezionare la voce di menu File, quindi dal menu che si apre, la voce Apri.

ERwin Desktop

Nella fig. 1 mostra il desktop del software ERwin di Logic Works.

Fig. 1- Scrivania Erwin.

Nella Figura 1, i numeri indicano:

1- menù principale;

2- barra degli strumenti;

3- un set di strumenti speciali;

4- pannello di caratteri e colori;

5- campo grafico.

Diamo un'occhiata più da vicino ai componenti del desktop.

Il menu principale contiene i comandi generali. Nota che la maggior parte di questi comandi sono duplicati dalle icone della barra degli strumenti o dalle voci di menu che compaiono facendo clic con il pulsante destro del mouse. Pertanto, ci concentreremo ora sui comandi relativi alla vista generale del desktop. L'elemento Finestra ha le seguenti sottovoci:

Barra degli strumenti - barra degli strumenti;

Barra degli strumenti carattere e colore - pannello di caratteri e colori;

Barra di stato - barra di stato;

ERwin Toolbox è un insieme di strumenti speciali.

Se uno degli elementi elencati non è selezionato, l'elemento corrispondente non viene visualizzato sul desktop. Le voci Opzione/Mostra menu di visualizzazione e Opzione/Mostra menu dell'editor aggiungono ulteriore 1gosh al menu principale; tu: Display e Editor.

La barra degli strumenti contiene i seguenti gruppi di icone:

Lavorare con i file:

Crea un nuovo diagramma;

Aprire un diagramma esistente;

Invia lo schema per la stampa.

Nota che queste icone sono duplicate dai comandi della voce del menu principale File.



Livelli di presentazione del modello:

livello di entità;

Livello di attributo;

Livello di descrizione;

Livello fisico (se si fa clic su questa icona, durante la dimostrazione, i loro tipi sono indicati a livello di attributo).

Questi strumenti sono duplicati dalla voce di menu Visualizza. Contiene livelli di presentazione aggiuntivi: Livello chiave primaria - vengono visualizzate solo le chiavi primarie, Livello ordine fisico - gli attributi non sono divisi in chiave e non chiave.

Ridimensionamento:

Diminuire;

Aumento;

Nessun ingrandimento;

Il più piccolo (un'ulteriore riduzione porterà all'illeggibilità del diagramma);

Visualizza parte (dopo aver scelto questo strumento, selezionare sul campo di lavoro il frammento che si desidera visualizzare).

Tutte le azioni di questo gruppo sono duplicate dalla voce Visualizza / / Zoom.

Lavorare con il server:

Genera uno script per il server;

Connettiti al server;

Seleziona un server.

Un set di strumenti speciali include tutte le icone necessarie per costruire graficamente lo schema dei dati. Si compone dei seguenti strumenti:

Selezione dell'oggetto;

Manipolazione degli attributi;

Ente indipendente;

Entità dipendente;

categorizzazione completa;

categorizzazione incompleta;

Relazione identificativa uno-a-molti;

Relazione non identificativa "ode ai molti";

relazione molti a molti;

Etichetta di testo.

PROGETTAZIONE CONCEPT

Creazione di entità

Le entità nel diagramma concettuale possono essere dipendenti e indipendenti. Nel diagramma, qualsiasi entità è rappresentata da un rettangolo. Sopra c'è il nome dell'entità. Il rettangolo è diviso in due parti: quella superiore è l'area della chiave primaria; fondo - area di altri attributi. Quando si costruisce un'entità, il rettangolo è inizialmente vuoto e il nome ha la forma E / n (ad esempio, E / 1, E / 2, ecc.).

Per costruire un'entità indipendente, è necessario fare clic sull'icona corrispondente dal set di strumenti speciali, quindi fare clic sul campo del diagramma nel punto in cui dovrebbe trovarsi l'entità creata. Per creare un'entità dipendente, seleziona lo strumento Entità dipendente e fai clic sul campo del grafico. Nota che il rettangolo che rappresenta tale entità ha gli angoli arrotondati. Quando si costruisce un diagramma, non è praticamente necessario specificare direttamente le entità dipendenti, poiché ERwin converte le entità regolari in entità dipendenti durante l'organizzazione delle relazioni o la divisione in categorie.

Se il progettista non è soddisfatto della posizione dell'entità sul campo, seleziona l'icona "Point to Object" dal set di strumenti speciali e trascina l'entità in una nuova posizione. Per eliminare l'entità selezionata, usa il tasto Canc sulla tastiera. Puoi modificare la dimensione del rettangolo che rappresenta l'entità selezionando la voce Opzione / Dimensione entità nel menu principale. La voce di menu Opzione/Layout viene utilizzata per organizzare la posizione delle entità sul campo.

Definiamo ora il nome dell'entità ei suoi attributi caratteristici. Per fare ciò, usa la voce Entità-Attributo dal menu di scelta rapida. Nel campo Nome entità dell'editor aperto, inserisci il nome dell'entità. Utilizzando l'opzione, è possibile modificare la dipendenza dell'entità. Il campo di modifica Chiave primaria serve per inserire i nomi degli attributi che compongono la chiave primaria. Il campo Attributi non chiave contiene attributi non chiave. Nota che in entrambi i casi, il tasto Invio sulla tastiera viene utilizzato per separare gli attributi l'uno dall'altro. Nella fig. 2 mostra un esempio di entità indipendente.

Riso. 2 - Ente indipendente

Per aggiungere una descrizione estesa di un'entità (Definizione) e una vista generale di tutte le entità, utilizzare il Report/Browser entità.

ERwin offre la possibilità di manipolare i singoli attributi. Per fare ciò, seleziona l'icona Attributi di manipolazione. In questa modalità puoi:

· Rimuovi attributo. Per fare ciò, seleziona un singolo attributo e premi Elimina sulla tastiera.

· Spostare l'attributo all'interno dell'entità. Per fare ciò, selezionare l'attributo e, senza rilasciare il pulsante del mouse, spostarlo nella posizione desiderata. Nota che in questo modo puoi spostare gli attributi sia all'interno delle aree chiave e non chiave, sia tra di esse.

· Sposta attributi tra entità. La tecnica per questa azione è simile alla precedente. Se si preme il tasto Ctrl durante lo spostamento di un attributo, verrà copiato su un'altra entità.

Costruire collegamenti

Consideriamo la costruzione di relazioni uno-a-molti. Per fare ciò, seleziona l'icona appropriata dal set di strumenti speciali, quindi fai clic successivamente sul genitore e sul figlio. Un collegamento identificativo è mostrato con una linea continua e un punto nero nel rettangolo che rappresenta il bambino. Questa relazione è caratterizzata dal trasferimento della chiave primaria del genitore all'identificatore del bambino. Nella fig. 3 raffigura una relazione di identificazione uno-a-molti.

figura 3. - Identificazione del collegamento

Una relazione non identificativa si costruisce in modo simile. È raffigurato con una linea tratteggiata e un diamante accanto al rettangolo principale. Tale rombo significa che l'esistenza del genitore è facoltativa, ad es. il campo della chiave esterna può essere null. La costruzione di una relazione non identificativa in ERwin è caratterizzata dal trasferimento della chiave primaria del genitore agli attributi figlio non chiave. La Figura 4 mostra una relazione non identificativa.

Riso. 4. - Connessione non identificativa

Come notato, la progettazione di una relazione molti a molti si traduce in una nuova entità. Un esempio di costruzione di una relazione di questo tipo tra le entità prima e seconda è mostrato in Fig. 5.

Riso. 5. - Relazione molti a molti

Puoi visualizzare e modificare la descrizione di una relazione utilizzando l'elemento Relazione dal menu di scelta rapida di una relazione. La finestra che si apre indica:

· Nome del collegamento (campo Frase verbale).

· Tipo di relazione: identificazione o non identificazione.

· Cardinalità. ERwin permette di definire i seguenti tipi di link.

1. Zero, uno o più. La presenza di tale cardinalità non introduce ulteriori designazioni nel diagramma.

2. Uno o più. Tali relazioni sono indicate dalla lettera P accanto al rettangolo che rappresenta il bambino.

3. Zero o uno. La cardinalità è indicata dalla lettera Z.

4. Dato. In questo caso, il campo Esatto deve contenere un numero di cardinalità. Tale relazione è indicata da un numero nel rettangolo che rappresenta il bambino.

· Possibilità di esistenza di valori Null (switch Nulls).

· Il ruolo della chiave esterna. In questo caso, il nome del ruolo viene registrato nel campo Nome ruolo. In questo caso, il campo Chiave esterna dell'editor contiene la costruzione<имя роли>.<имя первичного ключа родителя>.

Se il diagramma non mostra i nomi o la cardinalità della connessione, è necessario posizionare i puntatori di fronte alle voci Display / Verb Phrase e Display / Cardinality.

Per eliminare un collegamento, selezionare l'icona "Punta all'oggetto", fare clic sul collegamento corrispondente e premere Elimina sulla tastiera.

La divisione delle entità in categorie in ERwin è mostrata in modo simile alla Fig. 6.

Riso. 6 - Classificazione completa

Per creare categorie, devi fare quanto segue:

Descrivere completamente l'entità principale;

Crea entità di categoria;

Seleziona un'icona per la categorizzazione completa o incompleta da una serie di strumenti speciali;

Fare clic sull'entità principale;

Clicca su una delle categorie;

Per costruire ogni categoria successiva, fai clic sul segno della categoria e quindi sull'entità corrispondente.

Per rimuovere la connessione di una delle categorie con l'entità principale, selezionare il ramo corrispondente e premere Elimina sulla tastiera. Se desideri eliminare l'intera categorizzazione, punta al simbolo della categoria e premi Elimina.

PROGETTAZIONE LOGICA

La progettazione logica inizia con la scelta di un modello di dati. Tutti i DBMS con cui lavora ERwin sono relazionali, questo determina la scelta del modello dati.

Per selezionare un DBMS specifico, fare clic sull'icona Seleziona server. Nella finestra che si apre, posiziona il puntatore di fronte al DBMS selezionato, imposta la versione se necessario. Inoltre, è necessario selezionare le caratteristiche dei campi della tabella (tipo e possibilità di valore zero) per impostazione predefinita.

Un passo importante nella progettazione logica è definire una strategia per mantenere l'integrità delle informazioni. Per impostare la strategia predefinita per i diversi tipi di collegamenti, fare clic sul pulsante Integrità referenziale predefinita nella finestra di selezione del DBMS. ERwin offre tre tipi di strategie:

1. Limitare - vietare. Si caratterizza per il divieto di azioni con soggetti collegati.

2. Cascata - cascata. Tale strategia consiste nell'eseguire operazioni a cascata su entità correlate.

3. Imposta Nullo - zero. Questa strategia consiste nell'impostare il valore del campo su Null.

Dopo aver scelto un DBMS, iniziamo a descrivere i dati nei suoi termini. Per fare ciò, seleziona dal menu che si apre facendo clic destro sull'entità, la voce<имя выбранной СУБД>Schema della banca dati. Nella finestra che si apre, puoi specificare i nomi delle tabelle e dei loro campi, nonché le caratteristiche di questi campi.

In pratica, spesso accade che non tutte le relazioni di qualsiasi tipo siano determinate dalle stesse strategie per il mantenimento dei vincoli di integrità. Per modificare le strategie per un collegamento specifico, utilizzare l'elemento Integrità referenziale dal menu di scelta rapida di un collegamento. Se non ci sono informazioni sulla strategia selezionata nel diagramma, posizionare il puntatore accanto a Integrità display / referendum.

Per creare uno script per il DBMS selezionato, fare clic sull'icona "Genera script per server". Allo stesso tempo, ERwin costruisce lo schema del database secondo determinate tabelle. Se il DBMS selezionato supporta la scrittura di trigger, vengono creati in base alle strategie scelte per supportare i vincoli di integrità.

PROGETTAZIONE FISICA

In questa fase della progettazione, aggiungeremo ulteriori indici al circuito risultante. Per fare questo, usa l'oggetto<имя СУБД>Indice del menu che compare cliccando con il tasto destro su un'entità. Nella finestra che si apre, fai clic sul pulsante Nuovo per creare un nuovo indice, quindi specifica un attributo per esso facendo clic sull'immagine visiva di questo attributo. Si noti che ora sul diagramma generale gli attributi con cui sono costruiti gli indici sono contrassegnati dalle lettere AK. Ciò significa che sono chiavi alternative.

ESERCIZIO

1. Creare uno schema concettuale del database per l'ente di certificazione utilizzando ERwin. Di seguito la descrizione dell'area tematica.

L'ente di certificazione è accreditato per rilasciare certificati per determinate tipologie di prodotti. Ogni tipo di prodotto è descritto da un codice (secondo il classificatore), nome del tipo (ad esempio latticini) e tipo (ad esempio latte). Possono esistere diversi documenti normativi per ogni tipo di prodotto e l'effetto di ciascun documento normativo si applica a diversi tipi di prodotti. Un documento normativo è caratterizzato dal suo livello (GOST, OST, ecc.), Numero e nome.

Il certificato viene rilasciato solo per un tipo di prodotto e solo per un cliente. Lo stesso cliente può contattare più volte l'organismo di certificazione, pertanto è necessario memorizzare le informazioni sui clienti (codice dell'organizzazione, nome, indirizzo e numero di telefono).

Il cliente può rivolgersi all'ente di certificazione con uno dei due tipi di domanda di certificazione: domanda o dichiarazione. A seconda di ciò, vengono redatte varie tipologie di documentazione interna e vengono memorizzate varie informazioni (Tabella 1).

Tabella 1

In questo caso, la numerazione delle domande e delle dichiarazioni è continua. Ciò significa che se c'è una domanda con un numero, allora non dovrebbe esserci una dichiarazione sotto questo numero.

L'organismo di certificazione conserva le informazioni sui propri dipendenti (codice anagrafico, cognome, carica e indirizzo). Inoltre, è necessario sapere che tipo di lavoro e su quale dichiarazione ha eseguito il dipendente. Il lavoro svolto sulla domanda può essere di quattro tipi: compilare una domanda, prendere una decisione sulla domanda, decidere sull'emissione di un certificato, emettere un certificato. Per la stessa applicazione, diversi tipi di lavoro possono essere eseguiti da dipendenti diversi. Nel diagramma concettuale, deve esserci una divisione in categorie. Inoltre, devono essere utilizzati ruoli chiave esterni.

2. Convertire lo schema concettuale in tabelle del DBMS selezionato utilizzando ERwin. Crea trigger.

3. Creare tre utenti per il database con i seguenti diritti:

1) "Rapporti" - il diritto di leggere tutte le informazioni (non ci sono altri diritti);

2) "Elenchi" - tutti i diritti alle informazioni su dipendenti, clienti, prodotti e documenti normativi;

3) "Documentazione" - tutti i diritti alle informazioni sulla documentazione interna dell'organismo di certificazione e dei clienti; il diritto di leggere sui dati di prodotto e normativi.

La relazione dovrebbe contenere:

Stampa del diagramma concettuale da ERwin;

Giustificazione della scelta delle strategie a supporto dei vincoli di integrità della base;

La struttura delle tabelle e dei trigger;

Descrizione delle modalità di creazione degli utenti del database.

DOMANDE DI CONTROLLO

1. Quali tipi di relazioni possono esistere nell'area disciplinare?

2. Come rimuovere una relazione molti a molti dallo schema del database?

3. Qual è la differenza tra link identificativi e non identificativi?

4. Quando diventa necessario descrivere i ruoli delle chiavi esterne?

5. Come puoi giustificare la selezione delle categorie?

6. Qual è la differenza tra categorizzazione completa e incompleta?

7. Che tipo di strategie per mantenere i vincoli di integrità sono state utilizzate in laboratorio?


Bibliografia

1. Data KJ Introduzione ai sistemi di database - Libro di testo. indennità: Tradotto dall'inglese. - 6a ed. - M. e altri: Williams, 2000 .-- 846 p.

2. Robinson S. Microsoft Access 2000: libro di testo. corso: per. dall'inglese - SPB .: Pietro, 2001 .-- 511 p.

3. Kuznetsov S.D. Nozioni di base sulle banche dati: Corso di lezioni: Libro di testo. manual.M .: Internet un-t Inform. tecnologie, 2005.-484 p.

4. Hoffman V.E., Khomonenko d.C. Lavorare con i database in Delphi. San Pietroburgo: Dhv, 2002.-656 p.

5. Maklakov S.V. Bpwin ed Erwin. Casi-strumenti per lo sviluppo di sistemi informativi.-M.: Dialogue-Mifi, 2003.-254p.

6. Malykhina M.P. Banche dati: basi, progettazione, utilizzo: libro di testo. manuale per le università.-2a ed.-SPB.: BHV-Petersburg, 2006.-517 p.

Diamo un'occhiata al ciclo di sviluppo usando l'esempio fornito nell'articolo di Codd.
Ricordiamo brevemente l'aspetto sostanziale del problema. I dipendenti sono tenuti a verbale. Per ogni dipendente vengono memorizzate le informazioni sui figli e l'elenco delle posizioni ricoperte da questo dipendente. Per i posti, le informazioni sono memorizzate sugli stipendi dei posti stabiliti.
Innanzitutto, creiamo il livello logico del modello. Per fare ciò, impostare la modalità di visualizzazione per le entità (Display / Entity Level). Utilizzando la barra degli strumenti, creare le entità "dipendente", "figli", "storia lavorativa", "storia salariale". Chiameremo le entità in russo.
Dopo aver selezionato ciascuna entità, impostane una descrizione dettagliata in russo nell'editor "Definizione entità". Questa descrizione apparirà nei report ERwin e può essere visualizzata in un diagramma.
Indichiamo le relazioni tra le entità. Ad esempio, "dipendente" è associato all'identità "genitore" con l'entità "figli". La descrizione della relazione viene inserita nell'editor/editor delle relazioni.
Il risultato del lavoro è visualizzato sul diagramma ERwin (Fig. 2).

Riso. 2. Diagramma a livello di entità

Passiamo ora alla modalità di impostazione degli attributi (Display/Atribute Level). Nell'editor "Entità / Attributo", imposta i nomi degli attributi chiave e non chiave in russo. Si noti che l'attributo della chiave del numero del dipendente non è specificato manualmente per l'entità figlio figlio. ERwin fornisce la sua migrazione dall'entità madre. Lo stesso accade con altre entità figlio.
Per l'attributo "nome" dell'entità "dipendente", indicheremo che si tratta di una chiave alternativa (assumeremo che tutti i dipendenti abbiano nomi/cognomi univoci). Per fare ciò, dopo il nome dell'attributo, posizionare il puntatore AK1 tra parentesi.
Il risultato del lavoro viene visualizzato sul diagramma ERwin (Fig. 3) in notazione IDEF1X.

Riso. 3. Diagramma del livello degli attributi nella notazione IDEF1X

La vista dello stesso diagramma nella notazione IE (Information Engineering) è mostrata nella Figura 4.

Riso. 4. Diagramma del livello degli attributi nella notazione IE

Dato che i nomi degli attributi e delle entità sono stati da noi impostati in russo, per andare al livello fisico del modello, bisognerebbe assegnare loro identificatori di tabelle, colonne e vincoli che soddisfino le regole del DBMS di destinazione (di solito questo significa il uso di lettere latine, numeri e alcuni caratteri speciali).
Nell'editor "Schema database", specificare il nome della tabella corrispondente per ogni entità. Quindi, nell'editor "Definizione attributi", impostare i nomi delle colonne della tabella corrispondenti agli attributi delle entità. ERwin migra anche i nomi delle colonne nelle tabelle subordinate qui.
A questo punto, puoi anche utilizzare l'editor "Attributi estesi" per definire gli attributi estesi di PowerBuilder (formato di visualizzazione, maschera di modifica, regole di controllo, allineamento, titoli e commenti).
L'editor Relationship Definitions specifica il nome fisico della relazione che corrisponde al nome del vincolo che ERwin crea nel database.
Ora tutto è pronto per creare il database ed è necessario selezionare il DBMS di destinazione (se non è stato fatto prima). Scegliamo, ad esempio, Sybase System 10.
Nell'editor dello schema del database SYBASE, impostiamo i tipi di dati per le colonne della tabella.
La finestra di dialogo in cui è selezionato il tipo di dati è mostrata in Fig. 5.

Riso. 5. Determinazione del modello fisico

Ora puoi passare alla creazione del database. Per questo viene eseguito il comando "Generazione schema Sybase". ERwin creerà un pacchetto di istruzioni SQL per la generazione di database. La Figura 6 mostra la finestra di dialogo per la selezione dei parametri per la generazione di un pacchetto per la generazione di un database. La figura mostra che è possibile impostare un filtro (generazione di non tutte le tabelle), visualizzare (anteprima), stampare, salvare in un file (report) e generare (generare) un pacchetto di istruzioni SQL.

Riso. 6. Selezione dei parametri per la generazione del database

Funzionalità avanzate di ERwin

LAVORO DI LABORATORIO N. 3. Modellazione di database con Erwin

scopo del lavoro- acquisizione da parte degli studenti di abilità pratiche nella creazione di modelli di dati logici e fisici utilizzando CASE - strumenti di sviluppo di sistemi informativi.

Informazioni di base

ERwin supporta la modellazione di database in avanti e all'indietro. Nella modellazione diretta, lo schema del database viene descritto direttamente utilizzando un diagramma entità-relazione. Le entità nel diagramma sono rappresentate da rettangoli. Ogni rettangolo può avere attributi visivi diversi. Ad ogni entità deve essere assegnato un nome univoco. I nomi delle entità devono essere al singolare. Ciò è determinato dal fatto che il sistema opera sempre su istanze separate dell'entità. In questo caso, le singole istanze di un'entità sono considerate come oggetti e le entità come una classe di oggetti. Se le entità sono state descritte durante la modellazione in BPwin, possono essere semplicemente importate in ERwin. Un esempio di diagramma con entità create è mostrato in figura.

Figura 4 - Un esempio di diagramma con entità create

Costruzione di modelli in ERwin

Ci sono due possibili punti di vista sul modello informativo e, di conseguenza, due livelli del modello. Il primo è il livello logico (punto di vista dell'utente) significa una visualizzazione diretta di fatti dalla vita reale. Ad esempio, persone, tavoli, reparti, cani e computer sono oggetti reali. Sono denominati in linguaggio naturale, con eventuali separatori di parole (spazi, virgole, ecc.). A livello fisico del modello, si considera l'utilizzo di un DBMS specifico, si determinano i tipi di dati (ad esempio un numero intero o reale), si determinano gli indici per le tabelle.

ERwin offre la possibilità di creare e gestire questi due diversi livelli di presentazione di un unico diagramma (modello), oltre ad avere molte opzioni di visualizzazione ad ogni livello. Il termine "Logic Layer" in ERwin segue il modello concettuale.

Fasi di costruzione di un modello informativo.

  • definizione di entità;
  • definire le dipendenze tra le entità;
  • impostazione chiavi primarie e alternative;
  • definire gli attributi dell'entità;
  • portare il modello al livello richiesto di forma normale;
  • passaggio alla descrizione fisica del modello: assegnazione delle corrispondenze nome entità - nome tabella, attributo entità - attributo tabella;
  • impostare trigger, procedure e vincoli;
  • generazione di banche dati.

Erwin crea una rappresentazione visiva (modello dati) per il problema da risolvere. Questa vista può essere utilizzata per l'analisi dettagliata, il perfezionamento e la diffusione della documentazione richiesta durante il ciclo di sviluppo. Tuttavia, ERwin è lungi dall'essere solo uno strumento di disegno. ERwin crea automaticamente il database (tabelle, indici, stored procedure, trigger per l'integrità referenziale e altri oggetti necessari per gestire i dati).

Creazione di entità.

Per aggiungere un'entità al modello, è necessario fare clic sul pulsante dell'entità sulla barra degli strumenti (Erwin Toolbox), quindi nel punto del diagramma in cui si desidera posizionare la nuova entità. Facendo clic con il pulsante destro del mouse su un'entità e scegliendo Editor entità dal menu a comparsa, è possibile aprire la finestra di dialogo Editor entità, che definisce il nome, la descrizione e i commenti dell'entità.

Ogni entità deve essere completamente definita utilizzando una descrizione testuale nella scheda Definizione. Queste definizioni sono utili sia a livello logico, in quanto permettono di capire di che tipo di oggetto si tratta, sia a livello fisico, in quanto possono essere esportate come parte dello schema e utilizzate in un vero e proprio database ( CREA COMMENTO su entity_name). Le schede Nota, Nota2, Nota3, UDP (Proprietà definite dall'utente) vengono utilizzate per aggiungere ulteriori commenti e definizioni all'entità.

Nella scheda Icona di ogni entità è possibile associare un'immagine che verrà visualizzata nella modalità di visualizzazione del modello a livello di icona e un'immagine che verrà visualizzata a tutti gli altri livelli.

La scheda UDP della finestra di dialogo Editor entità viene utilizzata per definire le proprietà definite dall'utente (Proprietà definite dall'utente). Quando si fa clic sul pulsante di questa scheda, viene richiamata la finestra di dialogo Editor proprietà definite dall'utente (chiamata anche dal menu Modifica / UDP). In esso, è necessario specificare il tipo di oggetto per il quale viene avviato UDP (diagramma nel suo insieme, entità, attributo, ecc.) e il tipo di dati. Per aggiungere una nuova proprietà, fare clic sul pulsante nella tabella e inserire il nome, il tipo di dati, il valore predefinito e la definizione.

Creazione di attributi.

Il passaggio successivo nella creazione di un modello consiste nell'impostare gli attributi per ciascuna entità. Quando si specifica il tipo di attributo, è possibile utilizzare i domini. Un dominio è un tipo astratto definito dall'utente assegnato a qualsiasi tipo di dati fisici. Inoltre, ogni dominio può avere i propri valori predefiniti e regole per la convalida dei dati di input. ERwin offre la possibilità di documentare tutti i passaggi coinvolti nella creazione dei propri tipi di dati. Utilizzando il concetto di dominio, il database è portabile su diverse piattaforme hardware.

Figura 5 - Creazione di un nuovo dominio Figura 6 - Specificare le proprietà del nuovo dominio

Figura 7 - Il valore predefinito per il nuovo dominio

Figura 8 - Utilizzo di un dominio per indicare un tipo di dati a un attributo.

Per descrivere gli attributi, fare clic con il pulsante destro del mouse sull'entità e selezionare Editor attributi dal menu che appare. Verrà visualizzata la finestra di dialogo Editor attributi.

Se si fa clic sul pulsante Nuovo, nella finestra di dialogo Nuovo attributo che appare, è possibile specificare il nome dell'attributo, il nome della colonna ad esso corrispondente nel modello fisico e il dominio. Il dominio dell'attributo verrà utilizzato durante la definizione del tipo di colonna a livello di modello fisico.

Per gli attributi della chiave primaria nella scheda Generale dell'Editor attributi, è necessario inserire un segno di spunta nella casella di selezione Chiave primaria.
Le schede Definizione, Nota e UDP hanno la stessa funzionalità di quando si definisce un'entità, ma a livello di attributo.

Per una migliore chiarezza del diagramma, ogni attributo può essere associato a un'icona. Questo può essere fatto utilizzando l'elenco di selezione delle icone nella scheda Generale.

È molto importante dare all'attributo il nome corretto. Gli attributi dovrebbero essere nominati al singolare e avere un chiaro significato semantico.

Secondo la sintassi IDEF1X, il nome dell'attributo deve essere univoco all'interno del modello (non solo all'interno dell'entità!). Per impostazione predefinita, quando si tenta di inserire un nome di attributo esistente, ERwin lo rinomina. Ad esempio, se l'attributo Comment esiste già nel modello, un altro attributo (in un'entità diversa) sarà denominato Comment / 2, quindi Comment / 3 e così via.
Quando si trasferiscono attributi all'interno e tra entità, è possibile utilizzare la tecnica di trascinamento della selezione selezionando il pulsante nella tavolozza degli strumenti.

Per creare una nuova relazione, selezionare una relazione identificativa o non identificativa nella casella degli strumenti (ERwin Toolbox), fare clic prima sull'entità padre e poi sull'entità figlio.
Nella tavolozza degli strumenti, un pulsante corrisponde a una relazione di identificazione, un pulsante di relazione molti a molti e un pulsante corrisponde a una relazione non identificativa. Per modificare le proprietà di una relazione, fare clic con il pulsante destro del mouse sulla relazione e selezionare Editor relazioni dal menu contestuale.

Nella scheda Generale della finestra di dialogo che appare, è possibile impostare la cardinalità, il nome e il tipo di connessione.

Potere di comunicazione (Cardinalità)- serve per indicare il rapporto tra il numero di istanze dell'ente genitore e il numero di istanze del figlio.
Esistono quattro tipi di potere:

· Il caso generale, quando un'istanza dell'entità genitore corrisponde a 0, 1, o più istanze dell'entità figlio, non è contrassegnato da alcun simbolo;

· Il simbolo P segnala il caso in cui un'istanza dell'entità genitore corrisponde a 1 o più istanze dell'entità figlio (il valore zero è escluso);

· Il simbolo Z segna il caso in cui un'istanza dell'entità genitore corrisponde a 0 o 1 istanza dell'entità figlia (sono esclusi i valori multipli);

· Un numero indica il caso in cui un'istanza dell'entità genitore corrisponde a un numero predeterminato di istanze dell'entità figlio.

Per impostazione predefinita, il simbolo per la potenza di comunicazione non è mostrato nel diagramma. Per visualizzare il nome, seguire il menu contestuale che appare se si fa clic con il pulsante destro del mouse su un punto del diagramma non occupato da oggetti del modello, selezionare la voce Opzioni di visualizzazione/Relazione e quindi abilitare l'opzione Cardinalità.

Tipo di collegamento (identificazione/non identificazione).

IDEF1X distingue tra entità dipendenti e indipendenti. Il tipo di un'entità è determinato dalla sua relazione con altre entità. Viene stabilita una relazione identificativa tra le entità indipendenti (estremità padre della relazione) e dipendenti (estremità figlio della relazione). Quando viene disegnata una relazione di identificazione, ERwin convertirà automaticamente la relazione figlio in una dipendente. L'entità dipendente viene disegnata con un rettangolo arrotondato.

Un'istanza di un'entità dipendente viene definita solo tramite una relazione con l'entità padre. Quando viene stabilita una relazione di identificazione, gli attributi della chiave primaria dell'entità padre vengono automaticamente trasferiti alla chiave primaria dell'entità figlio. Questa operazione di aumento degli attributi di un'entità figlio durante la creazione di una relazione è chiamata migrazione degli attributi. Nell'entità figlio, i nuovi attributi sono contrassegnati come chiavi esterne - (FK).

Quando viene stabilita una relazione non identificativa, il figlio rimane indipendente, mentre gli attributi chiave primari del genitore vengono migrati ai componenti non chiave del figlio. Una relazione non identificativa viene utilizzata per collegare entità indipendenti.

Un collegamento identificativo è mostrato nel diagramma come una linea continua con un punto in grassetto all'estremità figlio del collegamento e uno non identificativo - tratteggiato.

Per una relazione non identificativa, è possibile specificare obbligatoria (Null nella scheda Generale della finestra di dialogo Editor relazioni). Nel caso di una relazione obbligatoria (No Nulls), quando si genera uno schema di database, l'attributo della chiave esterna riceverà il segno NOT NULL, nonostante il fatto che la chiave esterna non sia inclusa nella chiave primaria dell'entità figlio. Nel caso di una relazione facoltativa (Nulls Allowed), la chiave esterna può essere NULL. Una relazione facoltativa non identificativa è contrassegnata da un diamante trasparente sul lato dell'entità madre

Nome collegamento (frase verbale)- una frase che caratterizza la relazione tra entità genitore e entità figlio. Per una relazione uno-a-molti identificativa o non identificativa è sufficiente specificare un nome che caratterizzi la relazione da genitore a figlio (Parent-to-Child). Per una relazione molti-a-molti, è necessario specificare sia i nomi Genitore-Figlio che Figlio-Genitore. Per visualizzare il nome, seguire il menu contestuale che appare se si fa clic con il pulsante destro del mouse su un punto del diagramma non occupato da oggetti del modello, selezionare Opzioni di visualizzazione/Relazione e quindi abilitare l'opzione Frase verbale.

Nome del ruolo o nome funzionale (Rolename)è un sinonimo per un attributo di chiave esterna che indica il ruolo di un attributo in un'entità figlio. È possibile impostare il nome del ruolo nella scheda Nome ruolo/Azioni RI della finestra di dialogo Editor relazioni.

Creazione di chiavi.

Ogni istanza di entità deve essere univoca e distinta dagli altri attributi.

Chiave primariaè un attributo o un gruppo di attributi che identifica in modo univoco un'istanza di entità. Gli attributi della chiave primaria nel diagramma non richiedono una designazione speciale: questi sono gli attributi che si trovano nell'elenco degli attributi sopra la linea orizzontale. Quando si aggiunge un nuovo attributo nella finestra di dialogo Editor attributi, per renderlo un attributo di chiave primaria, è necessario abilitare la casella di controllo Chiave primaria nella parte inferiore della scheda Generale. Nel diagramma, l'attributo chiave può essere aggiunto alla chiave primaria utilizzando la modalità di trasferimento degli attributi (pulsante nella tavolozza degli strumenti).

Un'entità può contenere diversi attributi o set di attributi che pretendono di essere la chiave primaria. Tali candidati sono chiamati potenziali chiavi (chiave candidata).

Le chiavi possono essere complesse, ad es. contenente più attributi. Le chiavi primarie complesse non richiedono notazioni speciali: sono un elenco di attributi sopra la linea orizzontale. Quando si sceglie una chiave primaria, si dovrebbe dare la preferenza a chiavi più semplici, ad es. chiavi con meno attributi.

Molte entità hanno solo una chiave potenziale. Questa chiave diventa primaria. Alcune entità possono avere più di una chiave possibile. Quindi uno di questi diventa primario e il resto - chiavi alternative.

Chiave alternativaè una potenziale chiave che non è diventata la primaria.

Ad ogni chiave è associato un indice, il cui nome viene anch'esso assegnato automaticamente. Se lo si desidera, i nomi delle chiavi e degli indici possono essere modificati manualmente.

Nel diagramma, gli attributi chiave alternativi sono indicati come (Akn.m.), dove n è il numero ordinale della chiave, m è il numero ordinale dell'attributo nella chiave. Quando la chiave alternativa contiene più attributi, (Akn.m.) viene posizionato dopo ciascuno.

Chiave esterna vengono creati automaticamente quando una relazione connette le entità: le relazioni formano un riferimento agli attributi della chiave primaria in un'entità figlio e questi attributi formano una chiave esterna in un'entità figlio (migrazione della chiave). Gli attributi della chiave esterna sono identificati con un (FK) dopo il loro nome.

Un'entità dipendente può avere la stessa chiave da più entità padre. Un'entità può anche ricevere la stessa chiave esterna più volte dallo stesso genitore attraverso diverse relazioni. Quando ERwin rileva uno di questi eventi, riconosce che i due attributi sono gli stessi e inserisce gli attributi della chiave esterna nell'entità dipendente solo una volta. Questa combinazione o amalgama di attributi identici è chiamata unificazione.

Ci sono momenti in cui l'unificazione è indesiderabile. Ad esempio, quando due attributi hanno lo stesso nome, ma in realtà hanno un significato diverso, ed è necessario che questa differenza si rifletta nel diagramma. In questo caso, è necessario utilizzare i nomi dei ruoli chiave esterna.

Le relazioni nel diagramma sono rappresentate da linee che vanno da un'entità (tabella) a un'altra. Ad ogni collegamento viene assegnato un nome univoco. Le tabelle collegate sono divise in tabelle padre e figlio. Le tabelle padre vengono visualizzate come rettangoli con angoli a destra, le tabelle figlio vengono visualizzate con angoli arrotondati.

Dopo aver specificato tutti gli attributi del formato dati, è necessario trasformare il modello logico creato in uno fisico. Per questo è necessario Utensili Selezionare Deriva nuovo modello, dove come selezionare Database di destinazione ODBC / Generico(per l'uso in MySQL DBMS) vedere la Figura 9. Il nostro modello (vedere la Figura 4) verrà convertito nel modulo vedere la Figura 11.

Figura 9 - Conversione di un modello logico in uno fisico

Figura 10 - Modello fisico che indica il formato dei dati.

Figura 11 - Generazione del codice SQL

Esercizio

1. Costruire un diagramma con le entità date (modellazione diretta) per una determinata area disciplinare.

2. Impostare gli attributi per ogni entità definita. Utilizzare i domini durante l'impostazione degli attributi.

3. Immettere le relazioni tra le entità. Assegna ai link nomi univoci.

4. Utilizzando DBMS MYSQL, decidere di generare direttamente il database per le informazioni proiettate.

5. Il report dovrebbe contenere un modello concettuale e un database fisico nel DBMS MYSQL.

Domande di controllo

1. Qual è la differenza tra i livelli logico e fisico della presentazione dei modelli di dati utilizzando ERwin?

2. Qual è la differenza tra i modelli di dati presentati sotto forma di diagramma entità-relazione, basato su chiavi, e sotto forma di modello completo di attributi?

3. Quali sono le componenti principali dei modelli di dati presentati secondo la metodologia IDEF1X?


L'elenco dei tipi di dati supportati dal DBMS deve essere verificato con il produttore

Abbiamo bisogno della nozione di anomalia - una mancata corrispondenza tra i vincoli di integrità degli schemi di dati concettuali e logici (oltre che fisici). L'obiettivo della normalizzazione è esattamente l'eliminazione delle anomalie che compaiono all'accensione, all'aggiornamento e alla cancellazione dei dati.

Le quattro prime forme normali (più precisamente la prima, la seconda, la terza e Boyes-Codd) sono riunite in un unico gruppo perché le loro definizioni si basano sul concetto classico di funzione data su un diagramma di relazione e sul teorema di Heath.

Altre due forme normali (quarta e quinta) usano modificata dipendenze funzionali... L'ultimo forma normale- domain-key - segna un ritorno alle origini - un approccio logico alla teoria relazionale.

Verrà consigliato un modo pratico per ottenere lo schema della base nelle prime quattro forme normali, fornendo quasi sempre la versione finale dello schema. La correttezza di questa costruzione dovrà essere verificata con metodi formali, ovvero sono necessarie sia tecniche euristiche che la teoria della normalizzazione.

Discutiamo prima il metodo accettato di presentare il materiale sulla normalizzazione. Procederemo, naturalmente, dalla teoria della normalizzazione, sviluppata nell'ambito del modello relazionale dei dati. L'esperienza ha mostrato, tuttavia, che con una presentazione del genere, i principianti hanno difficoltà a cogliere il concetto essenziale di anomalia, definito come una caratteristica della "erroneità" della mappatura del modello di business concettuale al modello di database. Ecco perchè

utilizzeremo la mappatura del modello relazionale al modello entità-relazione già noto e nel modello ER studieremo la normalizzazione. Ciò porterà alla semantica necessaria per affrontare le anomalie.

Ripensiamo alle relazioni tra le relazioni, alle relazioni di unione e alle chiavi esterne.

5.1 Relazioni e chiavi esterne

I capitoli precedenti hanno esplorato i concetti di entità connettenti e le relazioni tra di esse. Li distingueremo chiaramente. Il concetto di connessione non è di natura algebrica, poiché le connessioni sono attive. Nelle implementazioni, i collegamenti impostano la struttura della base, lavorano con la manipolazione dei dati e con le modifiche allo schema. La connessione è un concetto algebrico. Il significato dei dati ottenuti durante la connessione è completamente sulla coscienza dello sviluppatore. Il significato della connessione è fissato rigidamente dal business modellato.

La semantica dei link è abbastanza sviluppata. Oltre alla cardinalità delle estremità, vengono utilizzate proprietà come proprietà obbligatorie e identificabili. Non puoi esprimerli direttamente nel modello relazionale (non esistono parole del genere). Pertanto, le prime forme normali verranno considerate nell'ambito del modello "ente-relazione".

Le relazioni tra relazioni / entità sia nel modello relazionale che nei diagrammi ER sono formate da un vincolo di integrità referenziale chiamato "Chiave straniera" (FK in breve).

Per non creare una falsa idea della povertà del modello relazionale come impossibilità di realizzare qualcosa, ricordiamo che in esso la relazione n:m è rappresentata attraverso due relazioni 1:n, che relazioni complesse possono essere modellate in modi diversi. Anche gli aggregati possono essere in qualche modo rappresentati introducendo entità che ne descrivono la composizione. Tali modelli possono essere efficacemente implementati in un programma, ma, molto probabilmente, saranno scomodi per l'uomo. Le possibilità di modellare le strutture dati nell'ambito del modello relazionale sono piuttosto ampie, ma, ovviamente, non illimitate.

Discutiamo un approccio generale all'analisi delle strutture, che verrà analizzato ulteriormente sull'esempio di due entità correlate "Dipendente" e "Dipartimento", illustrate nella Figura 5.1. A sinistra una variante con un collegamento identificativo, a destra con uno non identificativo.


Riso. 5.1. Esempio di relazioni uno-a-molti

Voglio ricordarvi ancora una volta che abbiamo convenuto di considerare gli esempi così come sono descritti nel testo, e non come accade o può essere nella vita. Questa limitazione è necessaria affinché l'informazione sia percepita da tutti e sempre allo stesso modo.

In entrambe le versioni dello schema, ogni dipendente è assegnato a uno dei reparti. Abbiamo una relazione ("a-molti" dal lato della relazione "Dipendente"). In relazione a "Dipendente", non è possibile selezionare un numero di reparto deptno che non esiste nell'elenco dei reparti (l'entità "Reparto"). Un reparto non può avere uno, uno, due o più dipendenti.

Abbiamo notato a proposito di un esempio simile (Sezione 2.2.7) che si forma una situazione paradossale. Il direttore è assegnato a un determinato dipartimento e il capo di questo dipartimento è subordinato al direttore e allo stesso tempo sarà il suo capo. Ma forse i reparti sono centri di costo, e lo stipendio del direttore è stato deciso di essere addebitato alle spese di uno dei reparti. Nei nostri tutorial, non dovresti occuparti di tali dettagli, a meno che, ovviamente, non sia indicato il contrario. Dovresti abituarti, tra le altre cose, a pensare al lato commerciale fin dall'inizio, ma quando risolvi i problemi educativi, non dovresti espandere le attività per analizzare le possibili opzioni.

Qual è la differenza tra i diagrammi in Figura 5.1? Una connessione identificativa ti fa pensare a un dipendente principalmente come un dipendente di reparto. Una relazione non identificativa significa che l'appartenenza a un dipartimento è contrassegnata come qualcosa di secondario.

5.2 Tipi di comunicazione. Link identificativi e non identificativi, obbligatori e facoltativi

I tipi di collegamento identificati e non identificativi (vedi Figura 5.1) non appartengono alla teoria dei database relazionali, ma allo standard di modellazione IDEF1X, su cui si basa ERwin (alias AllFusion Data Modeller).

Se una chiave esterna crea un'entità dipendente (debole), viene passata al gruppo di attributi che costituisce la chiave primaria di questa entità. In questo caso si forma un collegamento identificativo. È sempre richiesto.

Una relazione non identificativa viene utilizzata per connettere due entità forti. Passa la chiave nell'area degli attributi non chiave.

Per una relazione non identificativa, è possibile specificare l'obbligazione (l'intera relazione, non la sua fine). Se la relazione è richiesta (in ERwin, questa è l'impostazione della funzionalità No Nulls), gli attributi della chiave esterna riceveranno la funzionalità NOT NULL, il che significa che non sono consentiti valori non definiti. Per una relazione facoltativa (flag Null consentiti), la chiave esterna può essere NULL.

Dopo aver acquisito familiarità con il linguaggio SQL in "The SQL Language" utilizzando l'ingegneria diretta, sarà possibile generare uno script SQL che crei un frammento dello schema del database. Ma anche ora, se hai già almeno un po' di familiarità con SQL, vai su Strumenti> Forward Engineer / Generazione di schemi, quindi fai clic sul pulsante Anteprima per visualizzare il testo generato.

Perché useremo un modello entità-relazione più complesso quando consideriamo la normalizzazione, piuttosto che limitarci all'approccio classico nel quadro del modello relazionale? Dopotutto, l'aggiunta dei concetti di entità forti e deboli, relazioni identificative, relazioni obbligatorie e facoltative non identificative, complica significativamente la semantica del modello di dati.

L'introduzione dei cinque concetti di livello superiore sopra elencati fornisce un linguaggio che riflette meglio le specifiche dell'attività e quindi è più comprensibile per lo sviluppatore. Ciò consentirà di ottenere rapidamente e senza trasformazioni formali lo schema iniziale della base relazionale in forma quasi completa (più avanti esprimeremo più precisamente questa idea: "nella terza forma normale o forma normale di Boyce-Codd").