Problemi algebra relazionale

di il
45 risposte

45 Risposte - Pagina 3

  • Re: Problemi algebra relazionale

    03/11/2024 - palladino.al ha scritto:


    1. Selezione seleziona tramite la condizione un qualcosa all'interno della selezione

    2. Proiezione proietta alcuni campi della tabella

    3. Sottrazione elimina dall'insieme quello che è in comune

    4. Prodotto cartesiano visualizza tutte le colonne e tuple presenti

    5. Join naturale visualizza più relazione collegata fra loro tramite l attributo in comune

    6. Theta join collega le relazioni no in maniera naturale ma tramite un collegamento esplicito delle due colonne che hanno nome diverso ma hanno in comune qualcosa

    Il supermercato, ma che dico supermercato, l'hypermercato dei strafalcioni.

    @palladino, onestamente, le risposte che hai dato sono sinonimo di non aver studiato NULLA.

    1. della RELAZIONE, NON della ‘selezione’, ma CHE COSA seleziona? 
      le magliette per l'inverno, le formiche sul davanzale?
    2. che cosa vuol dire? la frase non ha senso nemmeno in Italiano. Campi di patate?
    3. da UN INSIEME soltanto? Quale comune? Quello di San Canzian d'Isonzo?
    4. ma proprio per niente, e VISUALIZZA un par de ciuffoli
    5. mooooooooolto alla lontana, di sicuro NON VISUALIZZA un bel nulla, e poi come sono collegate? tangenziale? strada di campagna? corso d'acqua? 
    6. mooooooooolto alla lontana, questa volta il comune e' quello di Abbiategrasso?

    .

    Ma NON SOLO, non hai letto NEMMENO i link che ti sono stati suggeriti.

    .

    Non posso farti un corso di algebra relazionale in un post, ma, per la pupattola…

    1. relazione: INSIEME di TUPLE, dove ogni posizione della tupla ha un nome, un tipo ed un  valore (nome: stringa->"palladino", cognome:stringa->"al", dataDiNascita:data->"1999/12/31"). Ogni elemento della tupla si chiama ‘attributo’
    2. la rappresentazione di una relazione e' in forma TABELLARE, a righe e colonne, dove le colonne hanno un nome ed un tipo e le righe sono le tuple contenenti solo i valori, nello STESSO ORDINE indicato dalle colonne
    3. poiche' una relazione e' un INSIEME, ci sono gli operatori, unione, intersezione differenza tra relazioni aventi tuple dello STESSO TIPO (colonne con lo stesso nome E tipo)
    4. Selezione: estrazione di un SOTTOINSIEME della relazione usando un ‘predicato’ (funzione che ritorna vero/falso) applicato ad una tupla ALLA VOLTA. Estrae SOLO le tuple in cui il predicato e' vero
    5. Proiezione: selezione SOLO gli attributi specificati dalla relazione (solo alcune colonne)
    6. Rinomina: cambia il nome degli attributi/colonne MA NON il tipo 
    7. prodotto cartesiano: a partire da due (o piu) relazione, crea una nuova relazione contenente TUTTI gli attributi della prima seguiti da TUTTI gli attributi della seconda. Quindi i valori sono composti in questo modi:
      1. prendi la PRIMA tupla della prima relazione e la concateni con la PRIMA tupla della seconda relazione
      2. prendi la PRIMA tupla della prima relazione e la concateni con la SECONDA tupla della seconda relazione
      3. prendi la PRIMA tupla della prima relazione e la concateni con l'ULTIMA tupla della seconda relazione
      4. prendi la SECONDA tupla della prima relazione e la concateni con la PRIMA tupla della seconda relazione
      5. prendi l'ULTIMA tupla della prima relazione e la concateni con l'ULTIMA tupla della seconda relazione
    8. i vari tipi di join si possono TUTTI pensare come una selezione applicata al prodotto cartesiano. E' innefficiente implementarlo in questo modo, ma al momento non e' un problema
    9. join naturale: date due relazione aventi un attributo in comune (STESSO nome e STESSO tipo).
      1. poiche' le due relazione hanno un attributo in comune (con lo stesso nome e lo stesso tipo) ed una volta concatenate non ci sarebbe modo per indicare quale dei due attributi considerare (hanno lo stesso nome), usi l'opetatore ‘rinomina' per rinominare l'attributo nella prima relazione in ‘r1.att’, e quello della seconda relazione in ‘r2.att’
      2. calcoli il prodotto cartesiano delle due telazione
      3. ora applichi la selezione usando il predicato ‘r1.att=r2.att’, cioe' selezioni SOLO le tuple che hanno lo stesso valore negli attributi ‘r1.att’ e ‘r2.att’

    .

    E' OVVIO, che non posso mettermi qui a scrivere quello che' abbondantemente scritto in QUALUNQUE libro di testo!

    E uno lo dovrebbe STUDIARE, NON cincischiare sui social!

    E che ci sono dettagli che non ho descritto (cosa succede se due tuple hanno attributi con lo stesso nome  e stesso tipo? o stesso nome e tipo diverso? o nome diverso e stesso tipo?, o se selezioni un attributo che non esiste? o un attributo non ha un valore? …)

    .

    E poi vi imbippate perche' vi si dice: STUDIATE!  ???

    Ma io vi metterei a pane ed acqua, e ci aggiungerei pure le frustate ;-)

    E poi vi lamentate perche' quando andate a lavorare vi mettono a fare lavori ‘stupidini’! Pulizia dei bagni, altro che!

    ;-)

  • Re: Problemi algebra relazionale

    Forse la parola “tabella” lo mette in crisi… 

    La tabella è un insieme di dati organizzato in colonne e righe. Un insieme!

    Unione: a{1,2,…,0}+b{a, b, …, z} in matematica AUB {1,2,3,4,5,6,7,8,9,0,a,b,c,…,z}

    Continua con gli altri…

    N.b. valgono le leggi sugli insiemi per cui ogni insieme contiene l'insieme vuoto…

    In sql select * from insieme where id=0 con id >0 ottieni un record vuoto.

  • Re: Problemi algebra relazionale

    04/11/2024 - migliorabile ha scritto:


    03/11/2024 - palladino.al ha scritto:


    1. Selezione seleziona tramite la condizione un qualcosa all'interno della selezione

    2. Proiezione proietta alcuni campi della tabella

    3. Sottrazione elimina dall'insieme quello che è in comune

    4. Prodotto cartesiano visualizza tutte le colonne e tuple presenti

    5. Join naturale visualizza più relazione collegata fra loro tramite l attributo in comune

    6. Theta join collega le relazioni no in maniera naturale ma tramite un collegamento esplicito delle due colonne che hanno nome diverso ma hanno in comune qualcosa

    Il supermercato, ma che dico supermercato, l'hypermercato dei strafalcioni.

    @palladino, onestamente, le risposte che hai dato sono sinonimo di non aver studiato NULLA.

    1. della RELAZIONE, NON della ‘selezione’, ma CHE COSA seleziona? 
      le magliette per l'inverno, le formiche sul davanzale?
    2. che cosa vuol dire? la frase non ha senso nemmeno in Italiano. Campi di patate?
    3. da UN INSIEME soltanto? Quale comune? Quello di San Canzian d'Isonzo?
    4. ma proprio per niente, e VISUALIZZA un par de ciuffoli
    5. mooooooooolto alla lontana, di sicuro NON VISUALIZZA un bel nulla, e poi come sono collegate? tangenziale? strada di campagna? corso d'acqua? 
    6. mooooooooolto alla lontana, questa volta il comune e' quello di Abbiategrasso?

    .

    Ma NON SOLO, non hai letto NEMMENO i link che ti sono stati suggeriti.

    .

    Non posso farti un corso di algebra relazionale in un post, ma, per la pupattola…

    1. relazione: INSIEME di TUPLE, dove ogni posizione della tupla ha un nome, un tipo ed un  valore (nome: stringa->"palladino", cognome:stringa->"al", dataDiNascita:data->"1999/12/31"). Ogni elemento della tupla si chiama ‘attributo’
    2. la rappresentazione di una relazione e' in forma TABELLARE, a righe e colonne, dove le colonne hanno un nome ed un tipo e le righe sono le tuple contenenti solo i valori, nello STESSO ORDINE indicato dalle colonne
    3. poiche' una relazione e' un INSIEME, ci sono gli operatori, unione, intersezione differenza tra relazioni aventi tuple dello STESSO TIPO (colonne con lo stesso nome E tipo)
    4. Selezione: estrazione di un SOTTOINSIEME della relazione usando un ‘predicato’ (funzione che ritorna vero/falso) applicato ad una tupla ALLA VOLTA. Estrae SOLO le tuple in cui il predicato e' vero
    5. Proiezione: selezione SOLO gli attributi specificati dalla relazione (solo alcune colonne)
    6. Rinomina: cambia il nome degli attributi/colonne MA NON il tipo 
    7. prodotto cartesiano: a partire da due (o piu) relazione, crea una nuova relazione contenente TUTTI gli attributi della prima seguiti da TUTTI gli attributi della seconda. Quindi i valori sono composti in questo modi:
      1. prendi la PRIMA tupla della prima relazione e la concateni con la PRIMA tupla della seconda relazione
      2. prendi la PRIMA tupla della prima relazione e la concateni con la SECONDA tupla della seconda relazione
      3. prendi la PRIMA tupla della prima relazione e la concateni con l'ULTIMA tupla della seconda relazione
      4. prendi la SECONDA tupla della prima relazione e la concateni con la PRIMA tupla della seconda relazione
      5. prendi l'ULTIMA tupla della prima relazione e la concateni con l'ULTIMA tupla della seconda relazione
    8. i vari tipi di join si possono TUTTI pensare come una selezione applicata al prodotto cartesiano. E' innefficiente implementarlo in questo modo, ma al momento non e' un problema
    9. join naturale: date due relazione aventi un attributo in comune (STESSO nome e STESSO tipo).
      1. poiche' le due relazione hanno un attributo in comune (con lo stesso nome e lo stesso tipo) ed una volta concatenate non ci sarebbe modo per indicare quale dei due attributi considerare (hanno lo stesso nome), usi l'opetatore ‘rinomina' per rinominare l'attributo nella prima relazione in ‘r1.att’, e quello della seconda relazione in ‘r2.att’
      2. calcoli il prodotto cartesiano delle due telazione
      3. ora applichi la selezione usando il predicato ‘r1.att=r2.att’, cioe' selezioni SOLO le tuple che hanno lo stesso valore negli attributi ‘r1.att’ e ‘r2.att’

    .

    E' OVVIO, che non posso mettermi qui a scrivere quello che' abbondantemente scritto in QUALUNQUE libro di testo!

    E uno lo dovrebbe STUDIARE, NON cincischiare sui social!

    E che ci sono dettagli che non ho descritto (cosa succede se due tuple hanno attributi con lo stesso nome  e stesso tipo? o stesso nome e tipo diverso? o nome diverso e stesso tipo?, o se selezioni un attributo che non esiste? o un attributo non ha un valore? …)

    .

    E poi vi imbippate perche' vi si dice: STUDIATE!  ???

    Ma io vi metterei a pane ed acqua, e ci aggiungerei pure le frustate ;-)

    E poi vi lamentate perche' quando andate a lavorare vi mettono a fare lavori ‘stupidini’! Pulizia dei bagni, altro che!

    ;-)

    Ma io non capisco perchè il nostro settore prevale la conoscenza tacita (vai un forum di fisica e ti aiutano)
    Ho sbagliato i termini? ti faccio vedere i miei appunti e poi vediamo chi non ha studiato. Non vuoi supportare, passi al successivo thread ma ripeto non capisco tutto questo accanimento

  • Re: Problemi algebra relazionale

    04/11/2024 - sihsandrea ha scritto:


    Forse la parola “tabella” lo mette in crisi… 

    La tabella è un insieme di dati organizzato in colonne e righe. Un insieme!

    Unione: a{1,2,…,0}+b{a, b, …, z} in matematica AUB {1,2,3,4,5,6,7,8,9,0,a,b,c,…,z}

    Continua con gli altri…

    N.b. valgono le leggi sugli insiemi per cui ogni insieme contiene l'insieme vuoto…

    In sql select * from insieme where id=0 con id >0 ottieni un record vuoto.

    Beh si perchè a differenza dei linguaggi di programmazione, il contattore parte da 1 e no da 0

  • Re: Problemi algebra relazionale

    Quindi?

    N > 0 esiste? È un insieme?

    Se consideri che q appartiene a n U 0< n <1  non è matematica? Non è un insieme?

    Traduci quello che sai sugli insiemi (simboli) con sql…

    Es. Dato x{triangolo isoscele, triangolo scaleno, triangolo rettangolo}

    Estrapola l'insieme dei triangoli isosceli:

    Select isosceli from x

    Ottieni un triangolo equilatero che è anche isoscele, un triangolo rettangolo con i cateti uguali e un triangolo isoscele con due lati uguali.

    Cerca di capire, lavorando con la simbologia degli insiemi a quali comandi sql corrispondono.

    Ti ho fatto l'esempio di A unuto a B che sarebbe

    Select campo1 from tabella A

    Union

    Select campo1 from tabella B

    Secondo me ti sottovaluti… devi solo associare ai simboli i comandi sql.

  • Re: Problemi algebra relazionale

    04/11/2024 - sihsandrea ha scritto:


    Quindi?

    N > 0 esiste? È un insieme?

    Se consideri che q appartiene a n U 0< n <1  non è matematica? Non è un insieme?

    Traduci quello che sai sugli insiemi (simboli) con sql…

    Es. Dato x{triangolo isoscele, triangolo scaleno, triangolo rettangolo}

    Estrapola l'insieme dei triangoli isosceli:

    Select isosceli from x

    Ottieni un triangolo equilatero che è anche isoscele, un triangolo rettangolo con i cateti uguali e un triangolo isoscele con due lati uguali.

    Cerca di capire, lavorando con la simbologia degli insiemi a quali comandi sql corrispondono.

    Ti ho fatto l'esempio di A unuto a B che sarebbe

    Select campo1 from tabella A

    Union

    Select campo1 from tabella B

    Secondo me ti sottovaluti… devi solo associare ai simboli i comandi sql.

    ok, sei l'unico che mi stai cercando di spiegare bene la questione
    Paradossalmente la where è una selezione, la select è una proiezione? 

  • Re: Problemi algebra relazionale

    Si, leggi il secondo link che ti ha mandato migliorabile.

    Qui non si fa lezione, se hai dubbi esponi il dubbio e ricevi una risposta.

    Studia i link, non hai bisogno di altro.

  • Re: Problemi algebra relazionale

    04/11/2024 - sihsandrea ha scritto:


    Si, leggi il secondo link che ti ha mandato migliorabile.

    Qui non si fa lezione, se hai dubbi esponi il dubbio e ricevi una risposta.

    Studia i link, non hai bisogno di altro.

    ma io ora vorrei concentrarmi sull'algebra e no su sql, magari faccio qualche esercizio e lo mando

  • Re: Problemi algebra relazionale

    @palladino, NON E' accanimento, e' "presa per i fondelli".  Invece di ‘protestare’, HAI LETTO i link che ti sono stati passati? Le risposte che ti sono state date? Le hai capite? Ti sei messo lì a studiare parola per parola quello che ti è stato detto? 

    Guarda che la conoscenza NON si trasferisce in automatico dal forum al tuo cervello. 

  • Re: Problemi algebra relazionale

    04/11/2024 - palladino.al ha scritto:


    Beh si perchè a differenza dei linguaggi di programmazione, il contattore parte da 1 e no da 0

    I linguaggi di programmazione che conosci TU, NON in generale. Fortran (che e' abbondantemente piu' vecchio di te e di me) usa indici che partono da 1.

  • Re: Problemi algebra relazionale

    04/11/2024 - palladino.al ha scritto:


    Ma io non capisco perchè il nostro settore prevale la conoscenza tacita (vai un forum di fisica e ti aiutano)
    Ho sbagliato i termini? ti faccio vedere i miei appunti e poi vediamo chi non ha studiato. Non vuoi supportare, passi al successivo thread ma ripeto non capisco tutto questo accanimento

    @palladino.al se ti arriva una critica costruttiva, anche “brusca”, da parte di gente più esperta di te come @migliorabile e @sihsandrea, bisogna accettarla

    perché in confronto a persone che lavorano tutti i giorni su queste cose, noi studenti non siamo nessuno per contraddirli

    almeno così è come la penso io

    avere modo di ricevere risposte da gente che lavora tutti i giorni in questo settore è un privilegio e non è affatto una cosa scontata perché potrebbero tranquillamente voltarsi dall'altra parte, passare al thread successivo e lasciarti li nel tuo caos, invece ti hanno dato risorse per arrivare a comprendere il problema.

  • Re: Problemi algebra relazionale

    04/11/2024 - LucaDev ha scritto:


    04/11/2024 - palladino.al ha scritto:


    Ma io non capisco perchè il nostro settore prevale la conoscenza tacita (vai un forum di fisica e ti aiutano)
    Ho sbagliato i termini? ti faccio vedere i miei appunti e poi vediamo chi non ha studiato. Non vuoi supportare, passi al successivo thread ma ripeto non capisco tutto questo accanimento

    @palladino.al se ti arriva una critica costruttiva, anche “brusca”, da parte di gente più esperta di te come @migliorabile e @sihsandrea, bisogna accettarla

    perché in confronto a persone che lavorano tutti i giorni su queste cose, noi studenti non siamo nessuno per contraddirli

    almeno così è come la penso io

    avere modo di ricevere risposte da gente che lavora tutti i giorni in questo settore è un privilegio e non è affatto una cosa scontata perché potrebbero tranquillamente voltarsi dall'altra parte, passare al thread successivo e lasciarti li nel tuo caos, invece ti hanno dato risorse per arrivare a comprendere il problema.

    me mi è sembrato un modo per dire che me la devo sbattere da solo mentre ho chiesto solo come ci si inizia a queste cose

  • Re: Problemi algebra relazionale

    04/11/2024 - migliorabile ha scritto:


    04/11/2024 - palladino.al ha scritto:


    Beh si perchè a differenza dei linguaggi di programmazione, il contattore parte da 1 e no da 0

    I linguaggi di programmazione che conosci TU, NON in generale. Fortran (che e' abbondantemente piu' vecchio di te e di me) usa indici che partono da 1.

    non ho mai programmato, parlo del c e java almeno dal punto di vista universitario.

  • Re: Problemi algebra relazionale

    27/10/2024 - palladino.al ha scritto:


    Ciao a tutti, leggndo un po sul forum ho nottato che non sono io l'unico ad avere problemi nella compressione dell'argomento.

    Ho capito cosa e come si usano le varie cose ma sto avendo probemi nella logica.

    Faccio un esempio: ho questo schema: 

    Film(CodiceFilm, Titolo, Regista, Anno, CostoNoleggio) 
    Artisti(CodiceAttore,Cognome, Nome, Sesso, DataNascita, Nazionalità) 
    Interpretazioni(CodiceFilm,CodiceAttore, Personaggio)

    I punti sono: 

    1. i titoli dei film nei quali Henry Fonda sia stato interprete;  qui devo selezionare gli artisti che hanno quel nome (?)

    secondo me ti sei perso, oltre che alla parola tabella, alla sigla sql…

    a scuola ti dicevano: dato un insieme di figure geometriche estrarre l'insieme dei triangoli scaleni e l'isieme dei prismi… e tu scrivevi in linguaggio matematico A{triangolo, quadrato, rettangolo, cerchio, bla bla} e su questo ottenevi A'{triangolo scaleno, triangolo rettangolo scaleno} e A''{0}

    come detto da te “sto avendo problemi nella logica” 

    nessuno ti ha chiesto sql (credo)

    hai fatto uno schema: dato l'isieme dei film e dato l'insieme degli attori estrarre i film dove fonda ha recitato.

    ed è proprio quell'insieme che hai chiamato interpretazioni formato da tuple film - attore e in questo insieme devi estrarre le tuple dove figura fonda come attore.

    tradotto alla spicciola select film, attore from interpretazioni where attore=fonda

    tradotto da sql all'italiano: preleva i titoli dei film e i rispettivi attori (lo stesso film ha piu' attori) dove come attore c'e' fonda. se tra i film a disposizione non ha recitato fonda ottieni l'insieme vuoto altrimenti ottieni quello che ti è stato chiesto.

    mi sembra di essere ben lungi da enunciati sql. al momento ti stanno istruendo sulla logica.

    se sbaglio mi corrigerete…

  • Re: Problemi algebra relazionale

    04/11/2024 - sihsandrea ha scritto:


    a scuola ti dicevano: dato un insieme di figure geometriche estrarre l'insieme dei triangoli scaleni e l'isieme dei prismi… e tu scrivevi in linguaggio matematico A{triangolo, quadrato, rettangolo, cerchio, bla bla} e su questo ottenevi A'{triangolo scaleno, triangolo rettangolo scaleno} e A''{0}

    il problema che qui mi sono perso o non ti ho capito perchè non ho mai sentito questo esempio

Devi accedere o registrarti per scrivere nel forum
45 risposte