Creazione schema E-R: entità o associazione?

giovi8823

Nuovo Utente
28 Ago 2009
13
0
0
Salve ragazzi,
Ho un piccolo problema.
Allora devo creare uno schema e-r avendo a disposizione questo codice sql:

CREATE TABLE Libro (
isbn integer PRIMARY KEY,
titolo varchar(150) NOT NULL,
id_ed integer NOT NULL,
anno integer NOT NULL,
prezzo numeric(6,2) NOT NULL CHECK(prezzo > 0),
num_pag integer NOT NULL CHECK(num_pag > 0),
FOREIGN KEY (id_ed) REFERENCES Editore(ID)
);


CREATE TABLE Acquisto (
id integer PRIMARY KEY,
id_cl integer NOT NULL,
isbn integer NOT NULL,
FOREIGN KEY (id_cl) REFERENCES Cliente(id),
FOREIGN KEY(isbn) REFERENCES Libro(isbn)
);

CREATE TABLE Cliente (
id integer PRIMARY KEY,
nome varchar(100) NOT NULL,
cognome varchar(100) NOT NULL,
anno_nascita integer CHECK (anno_nascita >= 1880),
residenza varchar(100) NOT NULL
);


Ovviamente esistono altre tabelle ma il mio problema è su queste due.
Allora sono nell atroce dubbio se Acquisto sia un ENTITA' oppure una semplice relazione.
All'inizio pensavo ad una relazione ma non capisco perchè esiste un codice univoco che ID dentro acquisto che mi porta a pensare che sia un antità autonoma e i due campi "isbn" e "id_cl" sono messi come chiavi esterne..
Posso aggiungere che so anche che ogni acquisto possiede un codice unico e che un acquisto puo possedere solo un cliente e un oggetto comprato.

Cosa ne pensate voi è un entità o una semplice relazione che collega CLIENTE con LIBRO??

grazie a tutti!!!
 

giovi8823

Nuovo Utente
28 Ago 2009
13
0
0
cioè te dici che é un relazione/associazione (N,N) tra libro e cliente???

Mi puoi spiegrae che c'entra e come mai c'hanno messo una chiave in piu in ACQUISTO (che è ID) e hanno messo le due chiai come chiavi esterne??

Programmatore puoi spiegarmi meglio ti prego non ci capisco piu nulla...sto impazzendo...ufffffffa

ciao grazie mille
 

programmatore

Utente Attivo
21 Ago 2009
111
0
0
programmatore.altervista.org
cioè te dici che é un relazione/associazione (N,N) tra libro e cliente???
Esattamente.
Mi puoi spiegrae che c'entra e come mai c'hanno messo una chiave in piu in ACQUISTO (che è ID) e hanno messo le due chiai come chiavi esterne??
E' la normale traduzione di una relazione molti a molti, dato che nessuno dei 2 campi può essere chiave perché avranno duplicati entrambi nella tabella 'acquisto'.
Anche se acquisto avesse avuto degli argomenti (es. data di acquisto), sarebbe stata associazione comunque (la data sarebbe stato attributo dell'associazione).
Comunque se anziché pensarlo così:
CLIENTE -(1,n)----<>----(1,n)-LIBRO
la pensi:
CLIENTE -(1,n)----<>----(1,1)--ACQUISTO--(1,1)---<>---(1,n)-LIBRO
non è sbagliato. Nel secondo caso faresti prima a tradurre lo schema e/r se acquisto avesse anche degli attributi ('data' nell'esempio che ti avevo fatto io).
Quindi se è relazione o entità dipende dalle 2 versioni di e/r che stai pensando. Non è sbagliato pensarla come relazione (nel secondo caso).
Se volessi essere pignolo, ti direi che è un'associazione perché le tue entità sono LIBRO e CLIENTE e sono legati fra di loro da un ACQUISTO.
 

giovi8823

Nuovo Utente
28 Ago 2009
13
0
0
Ok te intendi dire che le due chiavi non formano un codice univoco e quindi è stato opportuno mettere un ID per creare l'unicità??? Quindi non vuol dire nulla se le dichiara esterne con references???



Quindi io faccio lo schema e-r mettendo la relazione ACQUISTO tra Libro e cliente. Forse è la meglio cosa xchè inizialmente avevo messo come mi hai suggerito nel secondo passo ma forse è piu facile mettere una sola relazione... altrimenti ne vengono ulteriori.

Ti allego come dovrebbe venire lo schema E_R dimmi se è corretto.
 

Allegati

  • doc3.doc
    24 KB · Visite: 407

programmatore

Utente Attivo
21 Ago 2009
111
0
0
programmatore.altervista.org
Quindi non vuol dire nulla se le dichiara esterne con references???
Mi sfugge un nesso... non ho capito il tuo dubbio... ti dico cosa penso, scusandomi in anticipo per la schiettezza.
Secondo me questo è un esercizio di scuola, non hai studiato e io te l'ho risolto. Se questo è vero non hai avuto rispetto del mio tempo oltre a non aver neanche letto la teoria sugli e/r né la sintassi dell'sql. Se non è così voglio proprio sapere che motivo avresti per passare da un db (così stupido) al suo schema e/r (dato che il passaggio natuale è in senso contrario). Se per assurdo fosse per lavoro, ti consiglierei di cambiarlo o di crearti delle basi.

Detto questo, a beneficiio di qualche altro scolaro miope (cioè che vede solo i problemi che ha davanti al naso e non quelli che gli si presenteranno in futuro con la propria svogliatezza), sì meglio 1 associazione per non crearne altre 2 fittizie, nello schema e/r hai copiato male mettendo un '!' anziché un '1', per il resto è come l'avevo disegnato io in ascii-art :D
 

giovi8823

Nuovo Utente
28 Ago 2009
13
0
0
Si sono esercizi... ma non come pensi te per consegnare dalle vacanze. Sono esercizi in preparazione degli esami. Sai, NON si nasce IMPARATI e bisgona partire quasi da zero se non se ne sa molto. Lo so sono eseercizi stupidi.
Io ho iniziato da zero e sto esercitamdomi. Adesso avevo questo grosso dubbio e non sapevo come risolverlo e SOPRATTUTTO volevo chiarirlo nelle mia mente .

Scusa se ho portato via il tuo tempo

ciao ciao grazie cmq!
 

ciosa

Nuovo Utente
16 Dic 2009
1
0
0
esercizio importantissimo da risolvere HELP

Salve, sono una ragazza che frequenta l’ultimo anno della scuola serale e che questa sera deve esporre un problema di informatica. Questo è il testo del problema:

L’ ITIS Lagrange di Milano, istituto in cui sono presenti gli indirizzi Elettronica(E), Meccanica(M) e Informatica(I), decide di far costruire un database contenenti le informazioni anagrafiche di tutti i suoi studenti (Matricola, Cognome, Nome, Sesso, Data di nascita, Indirizzo, CAP, Città, Telefono) e in particolare dei diplomati (indirizzo di studio, Voto di maturità (numero compreso tra 60 e 100), Anno (anno di conseguimento della maturità come numero di 4 cifre)).
Disegnare il modello E/R con i versi delle associazioni. Utilizzando le regole di derivazione costruire il modello relazionale e dopo creare le relazioni con il comando CREATE TABLE.
Successivamente si desidera ottenere:
1. elenco completo degli studenti;
2. voti conseguiti dai diplomati ordinati per matricola;
3. cognome, nome e voto di ogni studente diplomato, con voto compreso tra 60 e 80;
4. elenco dei diplomati i cui cognome comincia con la lettera A, ordinati per cognome e nome;
5. dati completi di tutte le ragazze nate dopo il 31/12/1985, residenti a Legnago o Milano;
6. cognome e nome di tutti i diplomati in Informatica nell’anno 2002 con voto da 80 in poi.


Ecco questo è il mio problema che questa sera dovrò esporre, io ho provato a farlo ma non’ è che ce ne sia venuta fuori, soprattutto nella creazione del modello E/R. Vorrei per cortesia una mano, e vorrei vedere come dovrebbe essere risolto per confrontarlo con il lavoro fatto da me e trovare gli errori. Se cortesemente lei mi potesse inviare lo svolgimento di questo problema le sarei davvero grata. Purtroppo io posseggo un portatile senza stampante e quindi non posso mandare e farle vedere il lavoro fatto da me sul problema sopra elencato, però le posso dire che mi sono bloccata già in partenza sul modello E/R.
Aspetto con ansia una sua e-mail, e la ringrazio già ora per il suo tempo che mi dedicherà.
Saluti Alessia.
 
Discussioni simili
Autore Titolo Forum Risposte Data
S Visualizza l'errore di creazione in MSSQL Database 4
M [Cerco][Gratuito] Artista/designer per creazione grafica gioco di società Offerte e Richieste di Lavoro e/o Collaborazione 0
N Creazione sito web senza Partita IVA (Era: mettersi in regola) Leggi, Normative e Fisco 1
F NetBeans problema creazione progetto Java Windows e Software 0
A Creazione cookie e gestione accessi PHP 0
D Creazione sito e-commerce WP CMS (Content Management System) 0
A Consiglio per creazione sito web CMS (Content Management System) 1
S CREAZIONE DI SITO PER CORSI DI FORMAZIONE WordPress 3
spider81man Creazione di un UNICA tabella da più file .CSV PHP 1
M Creazione menu a tendina Javascript 3
S Download di un file in automatico dopo la sua creazione PHP 2
G creazione menu a tendina e invio a pagina php PHP 1
M Problemi con creazione maschere Presentati al Forum 1
F Creazione script Tv Presentati al Forum 1
W Creazione Cartella Classic ASP 2
A recuperare data creazione di un file PHP 6
D Neofita. Creazione applicativo prenotazione automezzi Offerte e Richieste di Lavoro e/o Collaborazione 12
L Aiuto creazione menu mancante WordPress 0
E Creazione URL per chat whatsapp WordPress 0
L Creazione di 2 o più record PHP 6
W Creazione di una griglia HTML e CSS 1
E Creazione di un sito di news PHP 16
S Scelta software/cms per creazione sito Webdesign e Grafica 6
E Creazione gestionale timesheet partendo da foglio excel Offerte e Richieste di Lavoro e/o Collaborazione 0
M Creazione notifica sonora Javascript 1
R Creazione sito eccomerce privato. Offerte e Richieste di Lavoro e/o Collaborazione 2
I Creazione programmino JAVA Offerte e Richieste di Lavoro e/o Collaborazione 0
D Difficile creazione excel di dati di grandi dimensioni Classic ASP 2
I creazione stile css HTML e CSS 3
A [Offro][retribuito] Creazione siti web/ web app (Django) Offerte e Richieste di Lavoro e/o Collaborazione 2
Stefano Migotto Creazione di un div con php o js PHP 9
G [OFFRO][RETRIBUITO] Creazione siti web e loghi professionali Offerte e Richieste di Lavoro e/o Collaborazione 0
D Creazione sito Offerte e Richieste di Lavoro e/o Collaborazione 0
D CREAZIONE E GESTIONE SITO E-COMMERCE Offerte e Richieste di Lavoro e/o Collaborazione 2
C [WordPress] Retribuzione creazione Sito Web vetrina Discussioni Varie 3
I [Javascript] Creazione di una piccola libreria e integrazione in angular Javascript 2
S [OFFRO] Creazione di programmi per la modifica automatizzata di testi Offerte e Richieste di Lavoro e/o Collaborazione 0
T [php] problema creazione query select-where PHP 5
Daniele_Carrara [PHP] Creazione Carrello PHP 1
G Creazione Landing Page Offerte e Richieste di Lavoro e/o Collaborazione 2
P [HTML] Creazione pagina web da dove iniziare HTML e CSS 2
L Creazione form html HTML e CSS 3
Monital [PHP]Far riconoscere stringa o numerico epr creazione campo tabella PHP 6
W [PHP] Creazione classe PDO PHP 4
K [PHP] Creazione di Calendario con orario PHP 4
V [CREO] Creazione profilo INSTAGRAM ad hoc per SVILUPPO MARKETING aziendale Offerte e Richieste di Lavoro e/o Collaborazione 0
Store creazione campo search in php PHP 1
Store creazione barra search sito web Presentati al Forum 3
C Creazione di una funzione per il filtraggio dei campi di un db Presentati al Forum 0
F Info aws ed ec2 per creazione sito vendita orodotti digitali Server Dedicati e VPS 0

Discussioni simili