Consigli creazione DB | Progettazione di DataBase Relazionali

Topic: Pubblico - Composto da 7 Posts di 3 Utenti.

24 Marzo, 2010 18:41 #1
Titan89
Utente

Titan89
Registrato: Mar, 2010
Posts: 6
Offline

Salve foro, stò svolgendo un progetto che mi è stato assegnato per la creazione di un DB che gestisca un social network orientato alla catalogazione di libri. Le specifiche impongono delle caratteristiche:

Utenti Al social network si iscrivono degli utenti. Ogni utente deve fornire alcune informazioni obbligatorie (indirizzo di posta elettronica, nome di login, password), e alcune informazioni opzionali (dati anagrafici, autori preferiti, sito web, immagine, etc.). Si supponga che la registrazione al sito sia gratuita, ma sia possibile anche sottoscrivere un account a pagamento che offre servizi aggiuntivi. Per gli account a pagamento sarà necessario memorizzare alcuni dati aggiuntivi (scadenza dell’account, modalità di pagamento preferita).

Libri Gli utenti memorizzano informazioni su i libri posseduti (e non). Per ogni libro si memorizzino le seguenti informazioni: Titolo, Autore primario, Eventuali autori aggiuntivi, Una valutazione del libro, espressa con un punteggio numerico, Anno e luogo di pubblicazione, Lingua in cui è scritto, Lingua in cui è stato scritto il libro, Codice ISBN, La data di acquisto, Un’immagine della copertina. L’utente può anche memorizzare data di inizio e fine lettura. Si suppone che un libro possa essere letto più di una volta.

Opere Ogni libro in realtà non è altro che un’istanza di un concetto più astratto, il concetto di opera. Infatti, diversi libri posseduti da diversi utenti possono essere niente altro che edizioni diverse della stessa opera. Si strutturi il database in maniera che siano memorizzate anche le opere. Per l’opera si intendono memorizzare le seguenti informazioni: Titolo originale, Anno di prima pubblicazione, Nomi dei personaggi, Luoghi importanti menzionati nel’opera, Premi vinti. Per ogni premio memorizzare anche l’anno (ad esempio Pulitzer, 1998), Serie di cui il libro fa parte (ad esempio “La città di vetro” è il primo omanzo della cosiddetta “Trilogia di New York”).

Autori Ogni opera è scritta da uno o più autori. Di ogni autore si intendono memorizzare le seguenti informazioni: Nome canonico (ovvero il nome con cui l’autore è più conosciuto, ad esempio Italo Calvino), Nome proprio (se differisce dal nome canonico, ad esempio Vamba è lo pseudonimo di Luigi Bertelli), Eventuali pseudonimi, Data di nascita e morte, Genere (maschile, femminile), Nazionalità, Premi ottenuti (ad esempio Nobel per la letteratura nel 2004), Lavori svolti (scrittore, politico, etc.). Si supponga che un autora possa svolgere diversi lavori, Zero o più foto dell’autore.

Recensioni e raccomandazioni Ogni utente può recensire uno dei libri che ha aggiunto. La recensione sarà in formato testuale e sarà composta in una certa lingua. Inoltre, ogni utente può effettuare delle raccomandazioni. Una raccomandazione suggerisce un libro ai lettori di un altro libro, ed è corredata da una motivazione (opzionale). Ad esempio si potrebbe raccomandare ai lettori di “Se questo è un uomo” di leggere anche “La tregua”.

Tag e collezioni Ogni utente può contrassegnare un libro da uno o più tag. I libri di ogni utente possono essere organizzati in collezioni. Ogni collezione ha un nome (ad esempio “Libri da leggere”). Un libro può far parte di più collezioni.

Mi viene richiesto di progettare uno schema ER della base di dati,comprensivo di: (a)Nomi di entità e relazioni (b) Elenco di attributi di entità e relazioni (c) Identificatori primari delle entità (d) Cardinalità delle relazioni (e) Eventuali generalizzazioni

Produrre lo schema ER derivante dalla traduzione delle eventuali generalizzazioni.

Individuare le eventuali ridondanze presenti all’interno dello schema ER. Compilare la tavola dei volumi che contenga il numero di istanze per ciascuna entità e relazione presente nello schema ER.

Ho iniziato a fare una bozza dello schema ER però prima di continuare le altre fasi vorrei dei consigli da parte vostra sulla correttezza dello schema e magari se c’è qualche suggerimento per andare avanti

Schema E-R

Mi sà che il progetto verrà alpliato quindi ci terremo in contatto per qualche mese…

Ultima modifica 11 Luglio, 2010 01:16 di Titan89

24 Marzo, 2010 21:05 #2
g2d
Moderatore

g2d
Registrato: Jul, 2008
Posts: 957
Offline
Segui g2d su Twitter!

Ciao user:”Titan89”,

Com’è precisa la tua spiegazione, mi ricorda tanto i compiti dell’esame si Basi di dati, che bei tempi.

A grandi linee il modello mi sembra ben schematizzare le esigenze di progetto, starei attento all’entità Collezione, riflettendo un pò di più sulle specifiche per capire bene se deve avere qualche legame diretto con l’entità Libro.

Magari qualche altro utente del forum riesce a notare a volo qualche altro punto critico.

Una curiosità conosci Anobii ? http://www.anobii.com/ penso che realizzi proprio quello che stai sviluppando

Tienici aggiornati

Saluti user:”algweb”


Un tempo ero algweb ora sono g2d

31 Marzo, 2010 11:24 #3
Titan89
Utente

Titan89
Registrato: Mar, 2010
Posts: 6
Offline

Grazie algweb della pronta risposta, dei consigli e della disponibilità…

Ora avrei una perplessità a riguardo delle entità:

Recensione, Raccomandazione, Tag e Collezione

è preferibile che sia relazionate sia con Utente che con Libro?

Così sarebbe anche più semplice fare eventuali interrogazioni a riguardo dell’utente che ha fatto più recensioni o il libro più recensito…

Ultima modifica 11 Luglio, 2010 01:16 di Titan89

31 Marzo, 2010 20:00 #4
g2d
Moderatore

g2d
Registrato: Jul, 2008
Posts: 957
Offline
Segui g2d su Twitter!

Ciao user:”Titan89”,

Due consigli che ti possono guidare.

Dal modello ER, come ben sai si devono ricavare le tabelle.

Crea le tue tabelle e prova a scrivere le query di cui parli, e magari anche tutte le query di cui l’applicazione necessita.

Così facendo ti accorgerai subito se il modello rappresentava bene i tuoi, dati.

Fammi sapere

Saluti user:”algweb”


Un tempo ero algweb ora sono g2d

05 Giugno, 2010 10:15 #5
Titan89
Utente

Titan89
Registrato: Mar, 2010
Posts: 6
Offline

Riprendo la discussione ormai ferma a due mesi fà dato che no ho dato molto tempo a DBe sql negli ultimi tempi…

Sono andato avanti nella progetto ormai sono quasi alla fine però ho ancora delle difficoltà…

Lo schema E-R ormai è pronto ho fatto le varie analisi delle generalizzazioni, delle ridondanze, sistemato cardinalità ecc ecc ecc… ora il mio problema stà nella traduzione in modello relazionale, ho provato a farne una bozza però non sono sicuro della sua correttezza: chiedo aiuto a voi magari postandovi lo schema e la traduzione fatta da me chissà riesca a venirne a capo…

Questo è il link per lo schema E-R e questa è la mia traduzione…

  • AUTORE
  • ISBN">CATALOGA
  • COLLEZIONE
  • COMPARE
  • CONSIGLIA
  • CONTRASSEGNA 2(UserID, Mail, Nome)
  • CONTRASSEGNA
  • CRITICA
  • DATI WEB, Data di Nascita, UserID, Mail">ANAGRAFICI
  • ISBN">EDITORIA
  • EVENTO
  • GRUPPO
  • ISBN">IDENTIFICA
  • ISCRIVE
  • LAVORO
  • LEGGE
  • ISBN">LETTO
  • LETTURA
  • ISBN, Voto, Data di acquisto,Titolo O.">LIBRO
  • MEMORIZZA
  • NAZIONALITÀ(Stato)
  • OCCUPAZIONE
  • OPERA
  • ORGANIZZA
  • PARTECIPA
  • PERSONAGGIO
  • POSSIEDE
  • PREMIO
  • PREMIUM
  • ISBN">PROPONE
  • RACCOMANDAZIONE
  • RECENSIONE
  • ISBN">SCRIVE
  • TAG
  • UTENTE
05 Giugno, 2010 10:20 #6
Titan89
Utente

Titan89
Registrato: Mar, 2010
Posts: 6
Offline

Ho consegnato qualche tempo fà il progetto completandolo in tutte le sue parti e ringraziando algweb  e root per aver collaborato, posto l'intero db che ho chiamato DBOOK con tutta la documentazione annessa

http://uploading.com/files/231d985d/Progetto%2BD-BOOK.pdf/

Grazie ancora

Ultima modifica 22 Luglio, 2010 09:19 di Titan89

06 Giugno, 2010 21:12 #7
root
Amministratore

root
Registrato: Jul, 2008
Posts: 60
Offline

Ciao Titan89

grazie per essere ritornato su MySQL Italia

Grazie per la segnalazione del BUG, grandi novità sono in arrivo.

Posso chiederti una rappresentazione del modello relazionale più leggibile, magari puoi usare la solita convenzione delle parentesi Tabella(campo1,campo2,campochiave).

Mi sono riletto tutto il topic, non ricordavo i dettagli del progetto, beh prima che mi dai il modello posso subito suggerirti subito una cosa.

Prova a scrivere tutte le query di cui hai bisogno. Se riesci senza troppi problemi a fare le estrazioni di cui hai bisogno, significa che sei sulla strada giusta.

Faccci sapere

saluti root

Condividi su:

Loggati o Registrati per replicare