Online Mind Mapping and Brainstorming

Create your own awesome maps

Online Mind Mapping and Brainstorming

Even on the go

with our free apps for iPhone, iPad and Android

Get Started

Already have an account? Log In

Basi di dati - design logico (modello relazionale) by Mind Map: Basi di dati - design logico 
(modello relazionale)
0.0 stars - reviews range from 0 to 5

Basi di dati - design logico (modello relazionale)

panoramica

input

schema concettuale

carico della base di dati

modello logico scelto, relazionale, il più diffuso, slegato da implementazione fisica, value-based, reticolare, gerarchico, ...

fasi

ristrutturazione schema ER, motivi, costrutti non sopportati, attributo multi-valore, attributo composto, generalizzazione specializzazione, ottimizzazioni, basandosi sul carico del database, sotto-fasi, analisi carico del database, analisi ridondanze, rimozione generalizzazioni, rimozione attributi multi-valore, rimozione attributi composti, partitioning/merging di entità e relazioni, selezione primary key

traduzione in uno schema logico

output

schema logico

vincoli d'integrità

documentazione

Vincoli d'integrità (segue)

sono regole per mantenere i dati consistenti

possibili vincoli

domain di un attributo: valori ammessi

unicità dei valori di un attributo

esistenza di valori

integrità referenziale fra dati di differenti tabelle

comportamento del DBMS se vincolo violato

ristrutturazione digramma ER

ridondanze: lasciare o eliminare?

attributi derivati

relazione derivate da altre

pro: accessi più veloci

contro: mantenere dati aggiornati

rimuovere attributi multi-valore

creazione entity set dedicato per ogni attributo multi-valore

rimuovere attributi composti

attributi che compongono l'attributo composto aggiunti direttamente a entity set

rimuovere generalizzazioni

collasso entità figlie nell'entità mare, aggiungere attributo "tipo", valori NULL negli attributi non comuni a entità di partenza

collasso entità madre nelle entità figlie, solo se generalizzazione totale!

sostituzione con relazioni

ev. patitioning o merging di entità e relazioni

separazione o unioni di entity set o relazioni per migliorare efficienza

selezione primary key

schema e istanza

schema relazionale: R=(A1, A2, ...An) dove A1, A2, ... An sono gli attributi

"descrizione di una tabella (senza dati)"

istanza della relazione: valori attuali di una relazione

"una tabella con i suoi dati"

database schema = insieme di schemi relazionali

"tutte le descrizioni delle tabelle (senza dati)"

database instance = dati nel database in un certo istante

"tabelle con dati"

traduzione nel modello logico conversione in tabelle

principio: per ogni entity set e ogni relationship set viene creata una tabella con un nome.

ogni tabella ha colonne con i nomi degli attributi

strong entity set E con n attributi

una tabella con nome E

n colonne, una per ogni attributo

ogni riga rappresenta una entità dell'entity set E

primary key dell entity set diventa primary key della tabella

weak entity set W con n attributi che dipende da strong entity set S. s1, ... sm formano la prinary key di S

una tabella con nome W

n+m colonne, una per ogni attributo di W e per ogni attributo parte della primary key di S

primary key di S più discriminator di W formano primary key della tabella

relationship set R fra entity set A e B a1, ..an formano primary key di A b1..bm formano primary key di B

una tabella con nome R

tabella necessaria se R ha cardinalità N:N

n+m colonne, una per ogni attributo parte della primary key di A e di B

se N:N unione delle primary key di A e B formano primary key della tabella

relationship set R fra entity set A e B cardinalità 1:1 o 1:N o N:1

non è necessaria una tabella

aggiundere attributi che formano primary key del lato "one" al lato "many"

database relazionale

database è composto da tabelle con nome

tabella composta da righe e colonne

colonna = attributo (nome + tipo)

riga = una relazione tra valori

! non confondere con relationship set

riga = tupla, individuo, entità

carico del database

stime partendo da functional requirements

volume di dati

numero di entità x entity set e relazioni x relationship set

>>> tabella dei volumi

storage requirements

quanti byte necessari?

tipo di operazioni e frequenza

interattive (risposta "immediata")

batch (tempi lunghi)

>>> tabella delle operazioni

complessità operazioni

numero entità coinvolte

>>> tabella degli accessi (1 x ogni operazione)