Topic: Pubblico - Composto da 7 Posts di 3 Utenti.
| 24 Marzo, 2010 18:41 | #1 | ||
|---|---|---|---|
|
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 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 | ||
|---|---|---|---|
|
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 | ||
|---|---|---|---|
|
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 | ||
|---|---|---|---|
|
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 | ||
|---|---|---|---|
|
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…
|
|||
| 05 Giugno, 2010 10:20 | #6 | ||
|---|---|---|---|
|
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 | ||
|---|---|---|---|
|
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