Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
Analizziamo nel dettaglio DJI RS 5, l'ultimo arrivato della famiglia Ronin progettato per videomaker solisti e piccoli studi. Tra tracciamento intelligente migliorato e ricarica ultra rapida, scopriamo come questo gimbal eleva la qualità delle produzioni.
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D è la nuova CPU gaming di riferimento grazie alla 3D V-Cache di seconda generazione e frequenze fino a 5,6 GHz. Nei test offre prestazioni superiori a 9800X3D e 7800X3D, confermando la leadership AMD nel gaming su PC.
Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-12-2012, 11:52   #1
LumberJack
Senior Member
 
Iscritto dal: Mar 2006
Città: Sotto il fuoco incrociato degli xeno
Messaggi: 1095
[SQL] Relazioni (2,N)

Salve a tutti.
Sto realizzando un db su una ditta di autotrasporti e ho un dubbio su una relazione fra due entita'.
La prima entita' e' LINEA (con codice identificativo id_linea) e la seconda e' FERMATA (con codice identificativo id_fermata). Ora entrambe sono associate ad una relazione COMPOSTA che vede dalla parte di FERMATA una cardinalita' (1,N), mentre dalla parte di LINEA una cardinalita' (2,N). Questo perche' una LINEA dev'essere composta da almeno due fermate (quella d'inizio e quella di arrivo ed eventualmente da delle fermate intermedie).

Ora il mio schema logico e' il seguente:
LINEA(id_linea,...) FERMATA(id_fermata,...) COMPOSTA(linea, fermata, progressivo).
Con vincolo referenziale (fermata->id_fermata) (linea->id_linea)
e fin qui non ci piove.

Il problema e': quando creo fisicamente le tabelle in sql come faccio con un CONSTRAINT a vincolare il fatto che se non esistono almento due tuple di (linea,fermata,progressivo) con la stessa linea allora quella linea non puo' essere usata come dato?

Grazie in aticipo e spero di essere stato chiaro
LumberJack è offline   Rispondi citando il messaggio o parte di esso
Old 07-12-2012, 11:59   #2
mattxx88
Senior Member
 
Iscritto dal: May 2010
Città: fuffahh!!11! land
Messaggi: 10775
Quote:
Originariamente inviato da LumberJack Guarda i messaggi
Salve a tutti.
Sto realizzando un db su una ditta di autotrasporti e ho un dubbio su una relazione fra due entita'.
La prima entita' e' LINEA (con codice identificativo id_linea) e la seconda e' FERMATA (con codice identificativo id_fermata). Ora entrambe sono associate ad una relazione COMPOSTA che vede dalla parte di FERMATA una cardinalita' (1,N), mentre dalla parte di LINEA una cardinalita' (2,N). Questo perche' una LINEA dev'essere composta da almeno due fermate (quella d'inizio e quella di arrivo ed eventualmente da delle fermate intermedie).

Ora il mio schema logico e' il seguente:
LINEA(id_linea,...) FERMATA(id_fermata,...) COMPOSTA(linea, fermata, progressivo).
Con vincolo referenziale (fermata->id_fermata) (linea->id_linea)
e fin qui non ci piove.

Il problema e': quando creo fisicamente le tabelle in sql come faccio con un CONSTRAINT a vincolare il fatto che se non esistono almento due tuple di (linea,fermata,progressivo) con la stessa linea allora quella linea non puo' essere usata come dato?

Grazie in aticipo e spero di essere stato chiaro
ciao, scusa se disturbo (non me ne intendo di programmazione) mi spiegeresti cos'è un db? (ho una ditta di autotrasporti)
__________________
HwPartialDwnGrade
mattxx88 è offline   Rispondi citando il messaggio o parte di esso
Old 07-12-2012, 12:14   #3
The_ouroboros
Senior Member
 
L'Avatar di The_ouroboros
 
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
Un database che contiene informazioni organizzate in tabelle e lette secondo relazioni stabilite a propri.

Inviato dal mio HUAWEI U8825-1 con Tapatalk 2
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go
The_ouroboros è offline   Rispondi citando il messaggio o parte di esso
Old 07-12-2012, 13:40   #4
LumberJack
Senior Member
 
Iscritto dal: Mar 2006
Città: Sotto il fuoco incrociato degli xeno
Messaggi: 1095
Hey mattxx88, non ti preoccupare, siamo qui tutti per imparare e confrontarci, inoltre anch'io sono alle prime armi. Per farti un idea di cosa sia un db ti mando alla risposta di The_ouroboros.
Posso farti un esempio semplice:

Ammettiamo, come dici, di avere una ditta di autotrasporti.
Per esempio dei camion che portano materiale in vari posti e vorresti tenerne traccia. L'idea più banale sarebbe quella di scrivere Camion1 ha fatto queste fermate alle ore in data ecc.... L'idea di una base di dati (data base, db o come vuoi chiamarlo) e' quella, appunto, di realizzare informazioni organizzate.
Quindi potresti modellare l'idea un po' cosi': Una entità CAMION con attributi (Id_camion, Nome, ...) dove ... sono altri campi che vuoi specificare. Questa e' una realizzazione concettuale, quindi ancora tutto su carta, ma sai bene che alla fine avrai una tabella CAMION che avrà come colonne gli attributi e come righe le tuple che vuoi inserire, per esempio (1,Volvo 155,...) e conterra' tutti i tipi di camion che vuoi monitorare (L'id_camion e' la chiave primaria, un indice identificativo che distingue ogni tupla dalle altre, non e' possibile avere ridondanza dei dati, in questo caso e' l'indice 1). Bene ora definiamo l'entita' DESTINAZIONE con attributi (id_destinazione, Indirizzo, ...) e' questa rappresenta la tabella contentente tutte le destinazioni che i miei camion possono percorrere. Ora puoi associare le due entita' attraverso un'associazione; la domanda che devi farti e': Un camion in quante destinazioni può andare? N, e al minimo? Boh, zero o una? Beh diciamo zero se vuoi tenere traccia anche dei camion che stanno fermi a casuccia e uno se invece devono per forza andare da qualche parte. Stessa cosa dalla parte opposta: Data una destinazione, quanti camion possono arrivarci? N, e al minimo? Boh, zero o uno? Se e' zero significa che vuoi mantere anche quelle destinazioni che magari ti sei recato con un camion, ma ora non ci vai piu'. Uno, invece, se necessariamente hai una destinazione comperta da almeno un camion. Ammettiamo sia (1,N) da entrambe le parti, questo significa che avrai un altra tabella PERCORRE con attributi (camion, destinazione,data,ora....) dove camion e destinazione data e ora sono chiavi primarie univoche di questa tabella e camion e destinazione fanno rifermento alle tabelle CAMION e DESTINAZIONE. (tiene traccia degli spostamenti).

Bene dopo tutta questo papiro, molto probabilmente avrai gia' finito di scrivere su carta tutti gli spostamenti senza che ti serva un db, ma viene adesso il bello. Un data base, mette a disposizione una serie di interrogazioni. Vorrei sapere per esempio che spostamenti ha fatto il mio camion. Non entrerò in dettaglio, ti dirò solo che con una manciata di milli secondi il tuo computer potrà darti quella lista senza bisogno che tu debba scrivertela a mano. Un po' come quando vuoi vedere l'elenco degli orari del trano, fa tutto lui con la giusta domanda.
LumberJack è offline   Rispondi citando il messaggio o parte di esso
Old 07-12-2012, 13:42   #5
LumberJack
Senior Member
 
Iscritto dal: Mar 2006
Città: Sotto il fuoco incrociato degli xeno
Messaggi: 1095
Il mio problema riformulato con camion e' il seguente: E se il camion dev andare per forza in ameno due destinazioni (2,N). Come faccio a vincolarlo in SQL?
LumberJack è offline   Rispondi citando il messaggio o parte di esso
Old 07-12-2012, 13:59   #6
mattxx88
Senior Member
 
Iscritto dal: May 2010
Città: fuffahh!!11! land
Messaggi: 10775
ah ok, però bisogna vedere che parco macchine deve gestire sta cosa (io con 50 mezzi a memoria ancora me la cavo) e poi, il camion fa sempre le solite fermate?
forse non ho capito bene che tipo di lavoro fate voi, ma io i miei per tenerli d'occhio ho dei sistemi gps con integrato un sistema "report" so in una determinata data dove è stato, che ordini ha avuto (perche gli mandiamo gli ordini tramite un display installato nel mezzo), che fermate e per quanto tempo è stato fermo ecc ecc. sto data base che vuoi fare non riesco a capire se si basa su eventi passati, o eventuali (futuri)
__________________
HwPartialDwnGrade
mattxx88 è offline   Rispondi citando il messaggio o parte di esso
Old 07-12-2012, 14:14   #7
LumberJack
Senior Member
 
Iscritto dal: Mar 2006
Città: Sotto il fuoco incrociato degli xeno
Messaggi: 1095
Quote:
Originariamente inviato da mattxx88 Guarda i messaggi
ah ok, però bisogna vedere che parco macchine deve gestire sta cosa (io con 50 mezzi a memoria ancora me la cavo) e poi, il camion fa sempre le solite fermate?
forse non ho capito bene che tipo di lavoro fate voi, ma io i miei per tenerli d'occhio ho dei sistemi gps con integrato un sistema "report" so in una determinata data dove è stato, che ordini ha avuto (perche gli mandiamo gli ordini tramite un display installato nel mezzo), che fermate e per quanto tempo è stato fermo ecc ecc. sto data base che vuoi fare non riesco a capire se si basa su eventi passati, o eventuali (futuri)
Puoi decidere tu facendo degli aggiornamenti su quali fermate deve fare il tuo mezzo. Diciamo che il gps e' il mezzo con cui fai le rilevazioni e il sistema ti da il report della giornata o piu giornate di quel camion, inoltre puoi aggiornare le destinazioni come hai detto tu. Si diciamo che sei già apposto e non ti servirebbe un db, dato che solitamente vengono usati per archiviare (quindi eventi passati o già pianificati). Il tuo sistema fa già tutto, ma potresti sbizzarirti quanto vuoi. Per esempio crei una entità DIPENDENTE, un entità REPORT-GPS e le associ. Potresti sapere in un determinato giorno chi ha guidato il camion e che fermate a fatto e in quali ore. Tutto bello registrato se qualcuno dovesse fare il furbetto e te ne accorgi dopo

PS: L'esempio della ditta autotrasporti e solo uno dei tanti. Prendi per esempio un negozio di prodotti alimentari. Vorresti tenere traccia dei prezzi dei prodotti, della quantità in magazzino di un prodotto oppure quanti pezzi di un prodotto sono stati comprati in un determinato giorno. Le possibilità sono infinite, ma con un buon db modellato, puoi tener traccia di tutto e di più. Per fare bilanci, statistiche ecc..

Ultima modifica di LumberJack : 07-12-2012 alle 14:18.
LumberJack è offline   Rispondi citando il messaggio o parte di esso
Old 07-12-2012, 14:32   #8
mattxx88
Senior Member
 
Iscritto dal: May 2010
Città: fuffahh!!11! land
Messaggi: 10775
Quote:
Originariamente inviato da LumberJack Guarda i messaggi
Puoi decidere tu facendo degli aggiornamenti su quali fermate deve fare il tuo mezzo. Diciamo che il gps e' il mezzo con cui fai le rilevazioni e il sistema ti da il report della giornata o piu giornate di quel camion, inoltre puoi aggiornare le destinazioni come hai detto tu. Si diciamo che sei già apposto e non ti servirebbe un db, dato che solitamente vengono usati per archiviare (quindi eventi passati o già pianificati). Il tuo sistema fa già tutto, ma potresti sbizzarirti quanto vuoi. Per esempio crei una entità DIPENDENTE, un entità REPORT-GPS e le associ. Potresti sapere in un determinato giorno chi ha guidato il camion e che fermate a fatto e in quali ore. Tutto bello registrato se qualcuno dovesse fare il furbetto e te ne accorgi dopo

PS: L'esempio della ditta autotrasporti e solo uno dei tanti. Prendi per esempio un negozio di prodotti alimentari. Vorresti tenere traccia dei prezzi dei prodotti, della quantità in magazzino di un prodotto oppure quanti pezzi di un prodotto sono stati comprati in un determinato giorno. Le possibilità sono infinite, ma con un buon db modellato, puoi tener traccia di tutto e di più. Per fare bilanci, statistiche ecc..
Arrivano cmq a intralciarti/farsi i cazzi loro gli autisti fidati..

ad ogni modo, molto interessante come cosa, hai un bel lavoro da fare a posteriori cmq! mi sono sempre chiesto se qui dentro qualcuno facesse un lavoro come il mio fine ot cmq, grazie per le spiegazioni!
__________________
HwPartialDwnGrade
mattxx88 è offline   Rispondi citando il messaggio o parte di esso
Old 07-12-2012, 14:58   #9
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Il problema e': quando creo fisicamente le tabelle in sql come faccio con un CONSTRAINT a vincolare il fatto che se non esistono almento due tuple di (linea,fermata,progressivo) con la stessa linea allora quella linea non puo' essere usata come dato?
@LumberJack: http://stackoverflow.com/questions/1...straint-in-sql
Di solito queste logiche sono lato applicazione, oppure puoi usare una stored procedure.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 07-12-2012, 15:39   #10
LumberJack
Senior Member
 
Iscritto dal: Mar 2006
Città: Sotto il fuoco incrociato degli xeno
Messaggi: 1095
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
@LumberJack: http://stackoverflow.com/questions/1...straint-in-sql
Di solito queste logiche sono lato applicazione, oppure puoi usare una stored procedure.
Yeah! Grazie mille!
LumberJack è offline   Rispondi citando il messaggio o parte di esso
Old 08-12-2012, 01:47   #11
british
Member
 
L'Avatar di british
 
Iscritto dal: Sep 2008
Città: Milano
Messaggi: 126
Quote:
Originariamente inviato da LumberJack Guarda i messaggi
Salve a tutti.
Sto realizzando un db su una ditta di autotrasporti e ho un dubbio su una relazione fra due entita'.
La prima entita' e' LINEA (con codice identificativo id_linea) e la seconda e' FERMATA (con codice identificativo id_fermata). Ora entrambe sono associate ad una relazione COMPOSTA che vede dalla parte di FERMATA una cardinalita' (1,N), mentre dalla parte di LINEA una cardinalita' (2,N). Questo perche' una LINEA dev'essere composta da almeno due fermate (quella d'inizio e quella di arrivo ed eventualmente da delle fermate intermedie).

Ora il mio schema logico e' il seguente:
LINEA(id_linea,...) FERMATA(id_fermata,...) COMPOSTA(linea, fermata, progressivo).
Con vincolo referenziale (fermata->id_fermata) (linea->id_linea)
e fin qui non ci piove.

Il problema e': quando creo fisicamente le tabelle in sql come faccio con un CONSTRAINT a vincolare il fatto che se non esistono almento due tuple di (linea,fermata,progressivo) con la stessa linea allora quella linea non puo' essere usata come dato?

Grazie in aticipo e spero di essere stato chiaro
Il modello logico delle tabelle dovrebbe essere il più possibile aderente al modello concettuale (E-R), addirittura dovrebbe essere da esso derivabile meccanicamente.
Quello che puoi fare è scorporare la relazione "Composta" in tre relazioni, tutte con cardinalità 1,N dal lato dell'entità "Fermata":
relazione "Capolinea A" con cardinalità 1,1 dal lato dell'entità "Linea"
relazione "Capolinea B" con cardinalità 1,1 dal lato dell'entità "Linea"
relazione "Fermate intermedie" con cardinalità 0,N dal lato dell'entità "Linea"

ciao!
british è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
Fotovoltaico, ultimi giorni per comunica...
Clawdbot, Moltbot, OpenClaw: tre nomi in...
Apple accelera sull'intelligenza artific...
Memoria, chip e packaging in un solo imp...
Portatile gaming top di gamma in offerta...
Guida dopo uso di droghe, mazzata della ...
Monitor gaming Fast IPS e 200 Hz a prezz...
Open Gaming Collective: nasce la maxi al...
Amazon: scoperto un elevato volume di ma...
Windows 11 verso una nuova dock: Microso...
Robot aspirapolvere come top di gamma a ...
Kioxia e Sandisk estendono la joint vent...
Auricolari true wireless in super sconto...
TV Mini LED e Neo QLED in offerta su Ama...
Via il gas russo, ma l'Europa è d...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:04.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v