Questions
ayuda
option
My Daypo

ERASED TEST, YOU MAY BE INTERESTED ONSistemi di elaborazione delle informazioni

COMMENTS STATISTICS RECORDS
TAKE THE TEST
Title of test:
Sistemi di elaborazione delle informazioni

Description:
multiple

Author:
Claire93
(Other tests from this author)

Creation Date:
20/05/2022

Category:
Others

Number of questions: 220
Share the Test:
Facebook
Twitter
Whatsapp
Share the Test:
Facebook
Twitter
Whatsapp
Last comments
No comments about this test.
Content:
La sicurezza nei sistemi informatici si occupa di: creare un collegamento tra programmi presenti in memoria centrale preservare le risorse del sistema da accessi non autorizzati aumentare la velocità di processato del pc gestire i file sul disco .
In un attacco di tipo "man in the middle": l'attaccante ruba le coordinate bancarie dell'utente attaccato l'attaccante installa un malware sul sistema attaccato l'attaccante altera la comunicazione tra due parti che credono di essere in comunicazione diretta tra loro l'attaccante invia un elevato numero di messaggi al sistema attaccato .
Il termine attacco DOS (Denial-of-service) indica: un attacco informatico che mira a rendere inutilizzabile una specifica macchina o una rete, rendendola inaccessibile agli utenti per cui è stata realizzata un attacco informatico realizzato con sistemi unix-based la capacità da parte dell'attaccante di modificare i file audio presenti sul dispositivo dell'attaccato un attacco informatico che mira a rubare le credenziali di accesso di un utente .
Con il termine compromissione di integrità si intende: la distruzione non autorizzata di dati e il sabotaggio di siti web il blocco dell'utilizzo legittimo del sistema la lettura non autorizzata di dati e il furto di informazioni la modifica non autorizzata di dati e la modifica del codice sorgente .
Per protezione fisica di un sistema si intende: l'installazione di un programma antivirus su tutte le macchine del sistema l'adozione di un firewall di ultima generazione protezione dei luoghi che ospitano le macchine del sistema l'uso di password molto lunghe per tutti gli utenti .
I quattro livelli del modello di sicurezza sono: shell, interprete, virtual machine, usb hub applicazione, sistema operativo (SO), rete, fisico utente, applicazione, middleware, kernel browser, firewall, sistema operativo (SO), CPU .
La crittografia può essere utilizzata per prevenire attacchi a livello: di applicazione di sistema operativo di rete fisico .
Il "fattore umano" nell'ambito dei sistemi di sicurezza informatici riguarda: l'uso di un programma antivirus "user-friendly" la capacità del sistema di aumentare il numero di utenti i comportamenti degli utenti umani che possano mettere, volontariamente o involontariamente, il sistema in pericolo il numero di iscritti ad una mailing ist aziendale .
Il Phishing consiste nel: inserire pubblicità a pagamento nei siti web disinstallare inavvertitamente i programmi di gestione dell'email sul proprio pc contraffare e-mail o pagine web rendendole simili a quelle autentiche per spingere gli utenti tratti in inganno a comunicare informazioni confidenziali distruggere tutti i dati presenti su un pc infettato con un virus .
Un elemento di dubbio per identificare una email di Phishing è il seguente: presenza di testo inviato all'interno dell'e-mail come immagine invio da parte di un conoscente mancanza di allegati lunghezza del testo superiore a tre righe .
Il Cavallo di Troia: e' un tipo di attacco DoS e' uno scanner di vulnerabilità di rete e' un malware che agisce in modo malevolo che non esegue semplicemente la sua funzione dichiarata e' un tipo di attacco code injection .
Il trojan mule: e' un tipo di attacco code injection e' uno scanner di vulnerabilità di rete permette all'utente di difendersi da attacchi DDoS e' una variante classica del cavallo di troia che emula una procedura di login .
Un programma che emula la procedura di accesso alla sessione di lavoro sottrandendo nome utente e password: e' un tipo di attacco code injection e' un tipo di attacco DoS e' un ramsomware e' un trojan mule .
Un tipo di attacco in grado di crittografare le informazioni presenti sul computer di destinazione e renderle inaccessibili al proprietario: e' un ramsomware prevede che la rete non sia vulnerabile e' uno spyware e' un tipo di attacco code injection .
Una trap door progettata per attivarsi solo al verificarsi di uno specifico insieme di condizioni logiche: e' molto facile da rilevare e' impossibile da realizzare e' detta logic bomb fa parte dei worm .
Il principio del minimo privilegio: non e' utile a prevenire attacchi e' una variante di port scanning prevede che a un utente vengano concessi i livelli minimi di accesso dei quali ha bisogno per svolgere le proprie mansioni consente agli utenti di avere i permessi di amministratore .
Per quanto riguarda le minacce relative al sistema e alla rete, i rischi per la sicurezza: aumentano se il sistema e' connesso alla rete aumentano se si attua il principio di minimo privilegio diminuiscono se si è connessi in rete non sono molto rilevanti .
Gli attacchi DDoS: non rappresentano un vero e proprio attacco sono effettuati indirettamente tramite una rete bot spesso ampiamente diffusa; da qui il termine "distributed" sono simili alla scansione delle porte hanno origine da un'unica fonte .
Un utente malintenzionato che rimane passivo intercettando il traffico di rete: non sta effettuando un vero e proprio attacco si definisce man-in-the-middle sta compiendo un attacco spoofing sta compiendo un attacco sniffing .
La scansione delle porte: non si può definire come un vero e proprio attacco ma come un mezzo impiegato da utenti malevoli per sondare le vulnerabilità di un sistema e' un tipo di attacco non troppo pericoloso e' effettuata indirettamente tramite una rete bot spesso ampiamente diffusa e' un tipo di attacco code injection .
L'utilizzo degli IP di rete: e' sempre affidabile e' il metodo più sicuro per inviare e ricevere messaggi assicura da solo una comunicazione sicura permette di risalire al mittente e al destinatario di messaggi.
I due principali algoritmi di cifratura sono la cifratura simmetrica e la cifratura asimmetrica. La cifratura simmetrica: utilizza una chiave privata comune a mittente e destinatario utilizza due chiavi private differenti utilizza una sola chiave pubblica prevede una chiave pubblica e una privata .
La cifratura simmetrica e la cifratura asimmetrica sono due algoritmi di cifratura. La cifratura asimmetrica: utilizza una chiave privata comune a mittente e destinatario utilizza due diverse chiavi (chiave pubblica e privata) e ad ogni attore coinvolto nella comunicazione è associata una coppia di chiavi può evitare che si verifichi un attacco di interposizione presenta il problema di distribuzione delle chiavi .
In quale delle seguenti situazioni il sistema operativo può determinare con certezza il mittente e il destinatario: in una rete di calcolatori in un calcolatore isolato in un sistema di calcolatori complesso sempre .
In un sistema crittografico il ricevitore del messaggio: se ha la chiave k utile alla decifratura otterrà il messaggio originale se ha una sua chiave privata decifrerà comunque il plaintext se ha la chiave k utile alla decifratura sa con certezza chi è il mittente del messaggio conosce con certezza il mittente .
In un algoritmo di autenticazione che utilizza chiavi simmetriche: viene sostituita la cifratura il meccanismo di autenticazione non si deve sapere chi sia il mittente È essenziale che non sia possibile derivare k dai testi cifrati si garantisce l'insieme dei ricevitori .
In un attacco di interposizione: si usa il metodo più sicuro per inviare e ricevere messaggi se il ricevitore ha una chiave privata la sua conoscenza non rappresenta un problema si garantisce l'insieme dei ricevitori l'intruso si interpone nella comunicazione e trasmette la propria chiave pubblica illegittima (che fa coppia con la sua chiave privata) .
Le tecniche di cifratura: servono per creare un ciphertext, ossia un testo cifrato servono per capire chi è k servono per decifrare un messaggio rendono chiaro il plaintext .
La crittografia si può implementare: nei vari livelli del modello OSI solo nel livello Application layer solo per scopi non maligni solo nel livello Transport Layer .
Il tema relativo all'implementazione della crittografia si inquadra facendo riferimento al progetto di una rete di comunicazione. In una rete di comunicazione: la comunicazione fra strati avviene attraverso uno specifico protocollo non è molto utile eseguire il back-up delle macchine se si implementa il modello OSI non si possono verificare attacchi informatici le comunicazioni tra gli strati sono casuali .
Un importante problema di sicurezza per i sistemi operativi è l'autenticazione degli utenti. Essa è basata: esclusivamente sui token esclusivamente sulle password su password e token su oggetti, conoscenze e attributi fisici .
Il token è un dispositivo elettronico portatile, alimentato a batteria con autonomia dell'ordine di qualche anno. Esso è utilizzato: per generare un codice numerico temporaneo per immagazzinare un PIN fisso per contenere una password fissa ha un numero seriale che è anche il PIN .
Un importante problema di sicurezza per i sistemi operativi è l'autenticazione degli utenti. Essa può essere, ad esempio, basata sulla lettura dell'impronta digitale che rientra: nella categoria dei token tra le tecniche crittografiche tra gli oggetti posseduti dall'utente tra gli attributi fisici posseduti dall'utente.
Indicare quale tra queste affermazioni è vera: gli elementi su cui è basata l'autenticazione degli utenti sono esclusivamente la password e il token una parola molto difficile, ma di senso compiuto, usata come password, è molto difficile da "indovinare" le tecniche biometriche sono più affidabili nel verificare l'identità di un utente rispetto agli altri metodi un token è un dispositivo elettronico portatile che comunica in qualche modo con il server di autenticazione .
Per indovinare la password possono essere usate diverse tecniche. Tra queste lo shoulder surfing: si basa sulle informazioni che coinvolgono l'utente, conosciute dall'utente malizioso consiste nella cosiddetta sorveglianza elettronica e' un attacco dizionario e' la sorveglianza visiva, ad esempio un intruso può sbirciare sopra la spalla dell'utente .
Utilizzando la funzione f detta hash la password x si trasforma in f(x) detta password cifrata: data f(x) è comunque molto facile riottenere x la password cifrata così ottenuta non è mai possibile da decifrare se x non è una parola presente nei dizionari è comunque possibile indovinare la password con un attacco dizionario se x è una parola del dizionario è possibile indovinare la password con un attacco dizionario .
Si definisce One Time Password: una password casuale monouso creata in un certo istante di tempo una password fissa accoppiata a un PIN dell'utente una sola password fissa valida sempre una password cifrata .
La password OTP: si utilizza in genere quando si preferisce non inserire la propria password, ad esempio, sul PC di un Internet point si utilizza perché non si ricorda la propria password si può usare se si pensa che la password del sistema non sia cifrata in modo sicuro e' comoda per l'utente che può usarla sul proprio PC di casa ad ogni accesso .
I criteri per la scelta di una frase di accesso robusta sono: e' sufficiente che sia una frase molto lunga ma facile da intuire deve essere lunga, non contenere parole o frasi reperibili in un dizionario, facile da ricordare, difficile da intuire, contenere caratteri e numeri e' sufficiente che sia una frase molto lunga ma facile da ricordare e' sufficiente che sia una frase molto lunga .
Indicare tra queste la migliore passphrase: nulla si Crea nulla si Distrugge tutto si trasforma! nulla s1 Crea Nulla s1 D1strugge Tutt0 s1 Trasf0rma! nullasicreanullasidistruggetuttositrasforma nulla si crea nulla si distrugge tutto si trasforma .
Lo scopo della steganografia: impedisce a un ascoltatore di accedere al contenuto del canale di comunicazione e' quello di decrittare un messaggio e' quello di rendere nascosta la presenza di un osservatore in un canale di comunicazione e' celare l'esistenza stessa della comunicazione .
La steganografia e' l'arte di nascondere un messaggio segreto in un contenitore all'apparenza normalissimo, inoltre: utilizza un canale pubblico come veicolo per lo scambio di messaggi che devono rimanere riservati impedisce a un ascoltatore non autorizzato di accedere al contenuto del canale e' utile a decifrare i messaggi serve per cifrare i messaggi in chiaro .
Quali tra le seguenti tecniche può essere utilizzata per inserire messaggi segreti all'interno di un cover object all'apparenza innocuo: firma digitale di documenti testuali modifica di bit di codifica all'interno di immagini digitali cifratura dell'immagine inserimento di user name e password in siti web .
La griglia di Cardano, o griglia cardanica, e' un metodo per la scrittura di messaggi segreti inventato dal matematico italiano Girolamo Cardano nel 1550: consiste in fogli di materiale rigido, nei quali vengono ritagliati dei fori rettangolari in modo regolare consiste in fogli di materiale rigido, nei quali vengono ritagliati dei fori rettangolari ad intervalli irregolari. Appoggiando la griglia su un foglio di carta bianca, il messaggio segreto va scritto nei buchi, dove ciascun buco può contenere una o più lettere consiste nel tatuare delle griglie in modo da nascondere un messaggio segreto sul corpo sono delle griglie su tavolette di legno ricoperte di cera, sulle quali venivano incisi dei messaggi segreti .
Quali tra le seguenti può essere considerata una tecnica steganografica applicata in opere d'arte: utilizzo di figure mitologiche tra i personaggi raffigurati inserimento di un particolare difficilmente visibile all'occhio dell'osservatore applicazione di diverse tecniche pittoriche utilizzo di colori ad olio .
Il problema del prigioniero e' un modello che mira semplicemente a spiegare i concetti della Steganografia: Alice e Bob sono due prigionieri che devono escogitare un piano per poter fuggire. Essi si scambiano dei messaggi attraverso il guardiano Wendy. Se Wendy scopre che i due si stanno scambiando dei messaggi, il piano fallirà Alice e Bob sono due prigionieri che devono escogitare un piano per poter fuggire. Essi si scambiano dei messaggi attraverso il guardiano Wendy. Wendy può scoprire che i due si stanno scambiando messaggi perché il piano comunque non fallirà concerne la decifrazione del plaintext mette in evidenza come realizzare il sistema steganografico in pratica .
L'oggetto che sarà usato come contenitore per l'inserimento del messaggio: e' il cover object o cover medium si definisce stego object o stego medium dipende dalla chiave k e' il messaggio segreto .
L'oggetto risultato dell'algoritmo di steganografia, cioe' dopo che sono state effettuate operazioni su di esso, che contiene (trasporta) al suo interno il messaggio: dipende dalla chiave k e' il messaggio segreto e' il cover object o cover medium si definisce stego object o stego medium .
Un buon sistema steganografico: rendere nascosto un canale di comunicazione da un eventuale ascoltatore non autorizzato combinare steganografia e crittografia, soluzione e' nota come Principio di Kerckhoffs impedisce a un ascoltatore non autorizzato di accedere al contenuto del canale si basa solo sulla steganografia secondo il Principio di Kerckhoffs .
Uno stego object all'apparenza innocuo: prevede la cifratura dell'immagine può essere la firma digitale di documenti testuali consiste nell'inserimento di user name e password in siti web può essere costituito da un tatuaggio che nasconde un messaggio segreto .
A differenza della sicurezza che misura la fiducia nel fatto che l'integrità di un sistema e dei suoi dati siano preservati, la protezione: concerne il meccanismo per il controllo dell'accesso alle risorse di un sistema informatico riguarda la corretta memorizzazione dei dati su supporti di memoria secondaria e' il meccanismo di scheduling dei processi nella CPU e' relativa al mancato controllo sulla coerenza dei dati su un DB .
Possiamo distinguere in due grandi categorie di controllo di accesso alle risorse: Directional Access Control e Merge Access Control Discretionary Access Control e Mandatory Access Control Controllo di accesso a utente singolo e multiutente Role Based Access Control e Matrix Based System.
I vantaggi di un modello di accesso DAC sono: la flessibilità in termini di specifiche delle politiche di accesso e il fatto di essere supportato da tutti i SO e i DBMS il fatto che non e' facilmente soggetto ad attacchi informatici, come ad esempio il Cavallo di troia il criterio di riservatezza dei dati e il controllo del flusso delle informazioni il meccanismo di classificazione multilivello gerarchica .
Il modello HRU ha introdotto alcuni concetti importanti quali la nozione di sistemi di autorizzazione e la nozione di sicurezza. Esso: non consente agli utenti di scrivere a un livello classficato come Confidential non consente agli utenti di concedere l'autorizzazione ad accedere ai propri oggetti ad altri utenti a propria discrezione consente agli utenti di concedere l'autorizzazione ad accedere ai propri oggetti ad altri utenti a propria discrezione si basa su uno schema gerarchico multilivello .
Consideriamo i comandi del modello HRU, siano s1,...,sm i soggetti e gli o1,...,om gli oggetti che compaiono nella lista dei parametri: un soggetto s può creare un nuovo file f un soggetto s non può creare un nuovo file f un soggetto s non può creare un nuovo file f ed abilitare la lettura e la scrittura sul file un soggetto s non può creare un nuovo file f ed esserne il proprietario .
Il modello Harrison-Ruzzo-Ullman (HRU): e' un modello che può essere classificato Mandatory Access Control (MAC) e' un modello che può essere classificato Discretionary Access Control (DAC) combina elementi di DAC e MAC e' un sistema di sicurezza .
Il modello Bell-Lapadula e' un modello che specifica un tipo di controllo d'accesso alle risorse in base ai soggetti e alla classificazione degli oggetti. Inoltre: e' un modello di protezione definito multilivello combina elementi di DAC e MAC consente agli utenti di concedere l'autorizzazione ad accedere ai propri oggetti ad altri utenti in modo discrezionale e' un modello che può essere classificato Discretionary Access Control .
Il modello Bell-LaPadula si concentra su riservatezza di dati e accesso a informazioni classificate. In particolare, ai soggetti: non e' mai data la possibilità di scrittura su file sono assegnati i clearance levels (livelli di autorizzazione) sono assegnati sensitivity levels sono assegnati livelli di confidenzialità .
Se consideriamo informazioni al livello di sicurezza "Top-secret" nel modello BLP: le informazioni possono essere scritte in files di livello Unclassified le informazioni non possono essere scritte in files di livello Unclassified le informazioni possono essere scritte in files di livello Confidential le informazioni possono essere scritte in ogni livello .
Un sistema informativo è costituito da: software denominato DBMS dati e informazioni di una organizzazione hardware dei PC aziendali memorie non volatili .
Una base di dati è una collezione di dati: che viene mantenuta in memoria di massa, quindi in maniera non volatile e permanente che viene mantenuta in una memoria volatile che viene integrata nella RAM che costituisce il SO.
Il DBMS è un software progettato per: gestire e utilizzare gli indirizzi IP ottimizzare le performance del processore grafico del calcolatore gestire e utilizzare le connessioni di rete dell'elaboratore gestire e utilizzare grandi collezione di dati .
Il Data Base Management System o sistema di gestione di basi di dati: può essere visto come uno strato software che si interpone fra l'utente ed i dati veri e propri può essere visto come uno strato software allo stesso livello dei dati e' un software che serve a utilizzare in modo ottimale le connessioni di rete dell'elaboratore costituisce il sistema operativo .
Un sistema di gestione di basi di dati deve essere affidabile, cioè: utilizzare le risorse di spazio e tempo del sistema in modo non necessariamente efficiente rendere produttive le attività dei suoi utilizzatori non deve garantire un controllo sugli accessi resistente a malfunzionamenti hardware e software .
Il Data Base Management System (DBMS) è: un sistema di gestione di basi di dati basato su un modello dei dati descritto da una collezione di costrutti un sistema di gestione di basi di dati basato su file system una memoria non permanente un blocco hardware del SO .
In un sistema informatico, per archivio tradizionale s'intende uno o più file di archivio, in cui: i dati vengono gestiti per mezzo del DBMS DBMS è l'unico responsabile della gestione dei file i dati vengono gestiti direttamente dal software DBMS i dati vengono gestiti direttamente dal software dell'applicazione utilizzatrice .
Consideriamo la consistenza e l'integrità dei dati. Queste: permettono che copie dello stesso possano essere diverse sono vantaggi propri degli archivi tradizionali sono vantaggi del DBMS devono essere garantite dal SO .
Tra i vantaggi dei DBMS troviamo l'affidabilità dei dati, ossia: il fatto che i DBMS offrano meccanismi per la protezione dei dati da malfunzionamenti il fatto che i dati devono essere autenticati la standardizzazione dei dati la facilità di utilizzo dei dati .
I DBMS e File System sono due modalità che possono essere adoperate per gestire, archiviare, recuperare e manipolare i dati: sono esclusivamente sistemi di gestione dei dispositivi I/O non ci sono casi in cui è meglio usare il file system invece che il DBSM sono due sistemi di archivio tradizionali sono due sistemi equivalenti .
Il modello relazionale si basa sul concetto matematico di relazione, ma con alcune differenze. L'elemento principale per la descrizione dei dati in questo modello è: la stringa la tabella l'attributo il dominio dei dati .
Il costrutto di base per la descrizione dei dati nel modello relazionale è la relazione, che consiste: in un vettore colonna in un insieme di istruzioni in uno schema relazionale e una istanza della relazione in un vettore riga .
La relazione intesa secondo il modello relazionale dei dati: non ha alcuna similarità con la relaziona matematica non prevede l'uso di tabelle presenta alcune differenze significative rispetto alla relazione matematica È identica alla relazione matematica.
Si consideri la relazione nella sua accezione matematica. Il prodotto cartesiano di n insiemi I1 × I2 ×…× In è: l'insieme di tutte le ennuple (o tuple) ordinate (i1, i2,…, in) tali che i1 ∈ I1, i2 ∈ I2,…, in ∈ In un sottoinsieme delle tuple ordinate (i1, i2,…, in) tali che i1 ∈ I1, i2 ∈ I2,…, in ∈ In l'insieme di tutte le ennuple non ordinate un valore non significativo .
Una relazione nel modello relazionale si può rappresentare come una tabella in cui i nomi degli attributi: sono i valori degli attributi sono riportati nell'ultima colonna sono usati come intestazioni delle colonne sono riportati nella prima colonna .
In una relazione del modello relazionale si ha che: i nomi degli attributi sono uguali tra loro le tuple (righe) sono uguali tra loro i valori di ciascuna colonna appartengono allo stesso dominio i valori di ciascuna colonna non appartengono allo stesso dominio .
Una istanza di base di dati su uno schema di base di dati è: un insieme di istanze di relazione, una istanza per ogni schema di relazione dello schema della base di dati un vettore riga un insieme di schemi un campo di valori .
Nella modello relazionale i dati disponibili potrebbero non permettere di ottemperare esattamente al formato previsto. Se ad esempio l'informazione è incompleta: e' opportuno inserire 0000 nel record corrispondente si adotta la tecnica del valore nullo (NULL) e' consigliato inserisce 9999 e' meglio inserire uno zero .
Nel modello relazionale la tecnica del valore nullo (NULL): denota l'assenza di un valore del dominio denota la presenza di una tipo double denota la presenza di una stringa inserisce uno zero nella stringa .
L'utilizzo di NULL è necessario quando non esiste, non è noto o non si conosce l'esistenza di un valore del dominio. I DBMS: distinguono tra i tre casi considerano solo il caso di non esistenza del valore considerano solo il caso in cui il valore è senza informazione non fanno alcuna distinzione tra le diverse situazioni di necessità per l'uso del valore nullo .
Un vincolo di integrità (VI) è una condizione che si esprime a livello di schema e che si intende debba essere soddisfatta da tutte le istanze della base di dati. Prendendo ad esempio i valori dell'attributo intero 'Età' di una tabella 'Persona': sarebbe un errore associare ad 'Età' un valore negativo sarebbe un errore associare ad 'Età' un valore positivo non ci sono condizioni inammissibili e' possibile inserire la stringa "meno_dieci" .
L'operatore AND serve a concatenare tra loro due espressioni Booleane a e b. Se a ha valore TRUE e B ha valore FALSE, l'espressione a AND b ha valore: FALSE TRUE 1 non ha valore .
I vincoli di tupla sono vincoli di integrità: che si applicano a una e una sola colonna della tabella che si riferiscono a un singolo attributo interrelazionali intrarelazionali .
Un vincolo di tupla che coinvolge un solo attributo si dice: vincolo di chiave vincolo di dominio vincolo di riga NULL .
Consideriamo il vincolo in una tabella "Impiegato" per cui nessuna coppia di tuple possa avere lo stesso codice fiscale (CF). Esso è un vincolo di chiave della relazione, cioè: specifica che ci possano essere due ennuple con lo stesso valore sull'attributo CF un insieme non vuoto di attributi che identificano univocamente i domini di una relazione indica che ci possano essere tre tuple con lo stesso valore sull'attributo CF e' un insieme non vuoto di attributi che identificano univocamente le tuple di una relazione .
Quale tra queste asserzioni potrebbe definire un vincolo di chiave in un ipotetico Database: non ci possono essere studenti con lo stesso nome e cognome non ci possono essere due impiegati con lo stesso codice fiscale ci possono essere due impiegati con lo stesso codice fiscale ci possono essere due studenti con la stessa matricola .
Considerando il concetto di chiave in uno schema di relazione R, sia r una istanza di R: una chiave per r è una superchiave minimale r potrebbe non contenere una chiave una superchiave per r è sempre una chiave r può contenere ennuple uguali fra loro .
Nello schema Studenti(matricola, cognome, nome, corso, data_di_nascita) una chiave può essere: matricola nome corso data_di_nascita.
La presenza del valore NULL nelle chiavi deve essere limitata: inserendo in tutte le superchiavi almeno un valore NULL scegliendo per ogni relazione una chiave su cui non siano ammessi valori nulli consentendo valori NULL per tutti gli attributi di tutte le relazioni ammettendo valori NULL solo sulla chiave primaria .
Un vincolo di chiave primaria è un'asserzione che specifica che un insieme di attributi formano la chiave primaria della relazione: nel DB si ammette per tale insieme che almeno un attributo possa presentare valori NULL tale insieme di attributi non è una chiave per la relazione sono ammessi più vincoli di chiave primaria per la relazione tale insieme di attributi forma una chiave per la relazione .
Il vincolo di integrità referenziale è un vincolo interrelazionale. Quando siamo in presenza di questo vincolo si ha che: considerando le informazioni contenute in relazioni diverse, queste sono correlate per mezzo di valori comuni considerando le informazioni contenute in relazioni diverse, queste non sono correlate tra di loro due tabelle devono avere lo stesso numero di tuple due colonne della stessa tabella hanno lo stesso nome attributo .
Quale tra le seguenti affermazioni definisce correttamente la chiave esterna: e' una sequenza di valori diversi rispetto a tutte le colonne di una tabella correlata e' una tupla o una combinazione di tuple i cui valori corrispondono a una chiave primaria in una tabella diversa e' una colonna i cui valori corrispondono a una tupla in una tabella diversa e' una colonna o una combinazione di colonne i cui valori corrispondono a una chiave primaria in una tabella diversa .
L'integrità referenziale viene rispettata quando per ogni valore non nullo della chiave esterna, esiste un valore corrispondente della chiave primaria nella tabella associata. Si ha che: la chiave primaria può contenere il valore NULL la chiave esterna fa parte della tabella referenziante la chiave esterna fa parte della tabella referenziata il vincolo di integrità referenziale non corrisponde al vincolo di chiave esterna .
Consideriamo il vincolo di foreign key (FK). Esso è rispettato se: per ogni valore non nullo della chiave esterna, esiste un valore corrispondente della chiave primaria nella tabella associata per ogni valore non nullo della chiave esterna, non esiste un valore corrispondente della chiave primaria nella tabella associata e' verificato il vincolo di dominio e' verificato il vincolo di tupla .
Consideriamo il vincolo di foreign key (FK). E' possibile asserire che: il valore NULL contenuto in un attributo coinvolto in un vincolo di chiave esterna costituisce violazione del vincolo il valore NULL contenuto in un attributo coinvolto in un vincolo di chiave esterna non costituisce violazione del vincolo e' ammesso il valore NULL nella chiave primaria chiave primaria e chiave esterna devono necessariamente avere lo stesso numero di righe .
I valori NULL non possono apparire in un campo di chiave primaria. Ciò significa che essi possono apparire: nella colonna relativa alla superchiave minimale della tabella referenziata nella chiave primaria nella relazione referenziata nella relazione referenziante .
Sia ordini una relazione referenziante con un vincolo di FK su clienti (relazione referenziata). Si ha che: i valori NULL della FK di ordini devono trovarsi nella chiave di clienti i valori non NULL della FK di ordini devono trovarsi nella chiave di clienti studenti può non avere una chiave primaria ordini può contenere il valore NULL nella chiave primaria .
Un vincolo di inclusione fra una serie non vuota A di n attributi di una relazione R1 ed una serie B di n attributi di una relazione R2 impone che ogni combinazione di valori su A presenti in R1 compaia come combinazione di valori su B in R2: l'insieme di attributi in B formano una chiave per R2 e' un vincolo tra tuple esso è una generalizzazione del vincolo di chiave esterna l'insieme di attributi in B formano una chiave primaria per R2 .
Consideriamo l'istanza r della relazione R. Se un vincolo generale non è soddifatto: il DBMS dovrebbe comunque permettere di inserire il valore non corretto r non ha una chiave primaria r è una istanza legale r è una istanza non legale .
I sistemi di DB relazionali supportano vincoli generali in due forme: vincoli di tabella e asserzioni. Le asserzioni coinvolgono: un singolo dominio diverse tabelle e sono controllate ogni volta che una di queste tabelle viene modificata solo le FK una singola tabella .
Con riferimento ai linguaggi di interrogazione associati al modello relazionale, il data definition language (DDL): non riguarda lo schema della base di dati e' un linguaggio di programmazione ad oggetti agisce sullo schema della base di dati permette di modificare direttamente i dati .
Con riferimento ai linguaggi di interrogazione associati al modello relazionale, il data manipulation language (DML): e' un linguaggio di programmazione ad oggetti non riguarda la modifica e l'inserimento dei dati agisce sullo schema della base di dati permette di modificare direttamente i dati .
I linguaggi di interrogazione per basi di dati relazionali possono essere classificati in dichiarativi e procedurali. In particolare i linguaggi dichiarativi: dichiarano le proprietà del risultato senza fare riferimento alle procedure da eseguire per generare il risultato stesso (indicano che cosa) specificano come è stato raggiunto il risultato specificano le modalità di generazione del risultato (indicano come) indicano tutti i passi da fare per raggiungere il risultato .
L'algebra relazionale è un linguaggio formale di tipo algebrico i cui operandi sono relazioni. In particolare: e' un linguaggio procedurale, in cui cioè le operazioni complesse vengono specificate descrivendo il procedimento da seguire per ottenere la soluzione e' un linguaggio misto, procedurale e dichiarativo e' un linguaggio per i calcoli con numeri reali e' un linguaggio dichiarativo .
Consideriamo l'operatore unione tra due istanze di relazione R e S. Affinché l'unione possa essere eseguita R e S devono avere: un numero di attributi diverso lo stesso numero di tuple gli stessi nomi degli attributi lo stesso numero di attributi .
Consideriamo l'operatore intersezione tra due istanze di relazione R e S. Il risultato contiene: tutte le tuple (prese una sola volta) presenti contemporaneamente in R e S tutte le tuple presenti in R, ma non in S tutte le tuple presenti in R oppure in S la concatenazione delle tuple r che appartengono a R e s appartenenti a S .
La differenza tra due relazioni R e S è indicata con R - S e contiene tutte le tuple che sono presenti in R ma che non esistono in S. Inoltre: R - S contiene la concatenazione delle tuple r che appartengono a R e s appartenenti a S R e S non devono essere compatibili rispetto all'unione R e S devono essere compatibili rispetto all'unione la differenza è un operatore unario .
Si consideri il prodotto cartesiano. Se due relazioni hanno degli attributi con nomi identici, allora: la soluzione ottimale è lasciare i nomi originali non è possibile eseguire il prodotto cartesiano tali attributi sono individuabili dal numero di riga della tupla per prassi, i nomi degli attributi possono essere indicati tra parentesi: possiamo riferirci a loro per mezzo della posizione .
Consideriamo l'operatore di ridenominazione. Esso: È un operatore unario e' un operatore binario varia i valori delle tuple non cambia lo schema .
L'operatore di ridenominazione indicato con la lettera greca ρ ("ro"): non cambia lo schema È un operatore binari varia i valori delle tuple cambia lo schema del risultato, lasciando invariati i valori delle tuple .
L'operatore di selezione σ consente di selezionare un sottoinsieme delle tuple di una relazione r, applicando a ciascuna di esse una data condizione. L'istanza di relazione risultante dalla selezione: contiene le tuple di r che rendono falsa tale condizione contiene le tuple di r che rendono vera tale condizione contiene le colonne di r che rendono falsa tale condizione contiene le colonne di r che rendono vera tale condizione .
Si consideri l'operatore di selezione. Esso è: un operatore che permette di manipolare i dati di due relazioni un operatore binario che permette di manipolare i dati di due colonne un operatore binario che permette di manipolare i dati di una singola colonna un operatore unario che permette di manipolare i dati di una singola relazione .
La condizione di selezione si applica a ciascuna tupla dell'istanza di relazione: coinvolgendo tutte le tuple dell'istanza di relazione singolarmente, quindi non può coinvolgere più di una tupla coinvolgendo più di una tupla coinvolgendo due colonne.
L'operatore di proiezione "proietta" le colonne di una relazione. Il simbolo è π al cui pedice viene indicata la lista degli attributi che costituiscono la nuova relazione. Tale lista: È un sottoinsieme degli attributi della relazione originale È un sottoinsieme dei valori degli attributi della relazione originale contiene tutti gli attributi dell'istanza di partenza identifica le tuple .
Si consideri l'operatore proiezione. I campi di interesse: coinvolgono due relazioni diverse non sono presenti nella istanza risultante contengono sempre la chiave primaria sono indicati nella lista degli attributi, mentre gli altri campi sono "proiettati fuori" .
Il risultato dell'operazione di proiezione: ha cardinalità maggiore dell'operando contiene sempre lo stesso numero di ennuple contiene al più tante ennuple quante ne ha l'operando contiene un numero di tuple maggiore dell'operando .
Si consideri l'operatore proiezione. Se la lista di attributi è una superchiave della relazione r, allora, la relazione risultante: ha lo stesso numero di tuple presenti in r ha un numero di tuple minore di r ha un numero di tuple maggiore di r ha lo stesso numero di colonne presenti in r .
Si consideri una lista di attributi dell'operatore proiezione che sia una superchiave di una relazione r, allora, la relazione risultante: ha sempre lo stesso numero di colonne presenti in r ha un numero di righe minore di r ha sempre lo stesso grado di r ha la stessa cardinalità di r .
Se si combinano selezione e proiezione possono essere estratte interessanti informazioni: da una sola relazione da due tabelle da due istanze di relazione da una relazione, applicando sempre prima la proiezione e poi la selezione .
La selezione e la proiezione: permettono di ottenere informazioni importanti da una sola relazione permettono di ottenere informazioni importanti da più relazioni combinate, correlano informazioni presenti in relazioni diverse sono operatori binari .
Si consideri l'operatore join naturale dell'algebra relazionale tra due istanze di relazione R1 e R2, il risultato R è una relazione che: esegue anche un filtraggio, perché le tuple che non hanno un dato legame semantico con l'altra relazione non vengono considerate è un risultato poco significativo rispetto a gli operatori di base ha sempre lo stesso numero di attributi di R1 ha sempre lo stesso grado di R1 .
Si applichi l'operatore join naturale dell'algebra relazionale a due relazioni R1 e R2. Il risultato contiene: tutte le coppie formate da una tupla di R1 e da una tupla di R2 per cui, per gli attributi con stesso nome, il valore è diverso tutte le coppie formate da una tupla di R1 e da una tupla di R2 per cui, per gli attributi con stesso nome, il valore è uguale tutte le coppie formate da una tupla di R1 e da una tupla di R2 per cui, per gli attributi con nome diverso il valore è uguale solo gli attributi di R1 che sono anche in R2 .
Il join naturale gode delle seguenti proprietà: è un operatore binario, commutativo e associativo è associativo, ma non commutativo è commutativo, ma non associativo è monadico .
Si consideri l'operatore join naturale dell'algebra relazionale applicato a due relazioni R1 e R2 non vuote. Se R1 e R2 hanno attributi con lo stesso nome, ma i valori sono tutti diversi, il risultato del join naturale ha lo stesso numero di ennuple del prodotto cartesiano tra R1 e R2 è vuoto ha cardinalità pari a R2 ha cardinalità pari a R1 .
La condizione nel theta-join deve essere soddisfatta: tra attributi di relazioni diverse di tipo (string, real, boolean) diverso tra attributi della stessa relazione di tipo (string, real, boolean) diverso tra attributi di relazioni diverse che non hanno lo stesso nome tra attributi della stessa relazione che non hanno lo stesso nome .
Il theta-join genera le coppie di una tupla di R1 e di una tupla di R2 che soddisfano una certa condizione. Esso è un operatore: binario, date due relazioni R1 e R2 genera una nuova relazione R3 che ha come schema tutti gli attributi di R1 e tutti quelli di R2 binario, date due relazioni R1 e R2 genera una nuova relazione R3 che ha come schema lo schema di R2 binario, date due relazioni R1 e R2 genera una nuova relazione R3 che ha come schema lo schema di R1 monadico .
Si consideri il theta-join. Esiste un caso particolare dove l'operatore di confronto 'theta' è: confronta domini della stessa istanza di relazione un operatore che opera su domini diversi l'operatore diverso l'operatore uguale = e si chiama equi-join .
L'operazione (R1'semi-join' R2) crea un legame tra le tuple della relazione R1 e della relazione R2 e: restituisce nel risultato lo schema di R1 restituisce nel risultato lo schema di R1 e di R2 restituisce nel risultato le tuple di R2 restituisce nel risultato lo schema di R2 .
L'operazione (R1 'semi-join' R2) restituisce l'informazione rilevante della prima relazione del join. In particolare: nel caso ci siano duplicati, questi si mantengono il risultato contiene tutte le tuple di R2 per cui è vera una condizione c sullo schema del join viene fatta una proiezione su tutti gli attributi dello schema di R2 sullo schema del join viene fatta una proiezione su tutti gli attributi dello schema di R1 .
Il semi-join tra due istanze di relazione R1 e R2 (R1 'semi-join' R2): genera una relazione con lo stesso stesso schema di R2 è un operatore monadico non gode della proprietà commutativa gode della proprietà commutativa .
L'operazione "R1 left outer-join R2" genera le coppie di tuple formate da una tupla di R1 e una di R2 per cui è vera una data condizione c e inoltre: nessuna altra tupla le tuple di R1 e R2 che non sono correlate mediante la condizione c riempite con valori NULL per i rispettivi attributi una tupla di R1 che non è correlata mediante la condizione c a tuple di R2 completata mediante valori NULL per tutti gli attributi di R2 una tupla di R2 che non è correlata mediante la condizione c a tuple di R1 completata mediante valori NULL per tutti gli attributi di R1 .
L'operazione "R1 right outer-join R2" genera le coppie di tuple formate da una tupla di R1 e una di R2 per cui è vera una data condizione c e inoltre: una tupla di R1 che non è correlata mediante la condizione c a tuple di R2 completata mediante valori NULL per tutti gli attributi di R2 una tupla di R2 che non è correlata mediante la condizione c a tuple di R1 completata mediante valori NULL per tutti gli attributi di R1 le tuple di R1 e R2 che non sono correlate mediante la condizione c riempite con valori NULL per i rispettivi attributi nessuna altra tupla .
L'operazione "R1 full outer-join R2" genera le coppie di tuple formate da una tupla di R1 e una di R2 per cui è vera una data condizione c'è inoltre: le tuple di R1 e R2 che non sono correlate mediante la condizione c riempite con valori NULL per i rispettivi attributi una tupla di R1 che non è correlata mediante la condizione c a tuple di R2 completata mediante valori NULL per tutti gli attributi di R1 una tupla di R2 che non è correlata mediante la condizione c a tuple di R1 completata mediante valori NULL per tutti gli attributi di R1 nessuna altra tupla .
Si consideri l'operatore anti-join tra due istanze di relazione R1 e R2, esso seleziona: gli attributi di R2 le tuple di R1 e R2 che contengono valori NULL le tuple di R1 e R2 legate semanticamente da una condizione c le tuple di R1 semanticamente non legate da una condizione c alle tuple di R2 anti join quindi NON legate.
Si consideri l'operatore anti-join tra due istanze di relazione R1 e R2, il suo simbolo è: un bow-tie un bow-tie aperto a sinistra un bow-tie aperto a destra un bow-tie negato aperto a destra .
Si consideri l'operatore anti-join tra due istanze di relazione R1 e R2, esso: gode delle proprietà commutativa e associativa non gode né della proprietà commutativa né della proprietà associativa gode della proprietà associativa gode della proprietà commutativa .
Si consideri l'operatore anti-join tra due istanze di relazione R1 e R2, esso: semplifica alcune operazioni, che richiederebbero altrimenti più operatori (es. differenza, proiezione, join naturale) gode della proprietà commutativa gode delle proprietà commutativa e associativa seleziona le tuple di R1 e di R2 che contengono valori NULL .
Si supponga di voler trovare i giocatori presenti nella istanza di relazione R1 di Giocatori Presenti, che hanno giocato in tutte le gare del campionato, riportate nella istanza di relazione R2 delle Gare Giocate. Il problema si risolve facilmente ricorrendo a: l'operatore full outer-join l'operatore anti-join l'operatore di divisione l'operatore proiezione .
Si consideri l'operatore divisione tra due istanze di relazione R1 e R2, esso: non gode delle proprietà commutativa e associativa gode delle proprietà commutativa e associativa gode della proprietà commutativa gode della proprietà associativa .
Si consideri l'operatore divisione tra due istanze di relazione R1 e R2, esso è un operatore derivato cioè: si basa sul concetto di derivata di funzione È un operatore unario È un operatore di base dell'algebra relazionale È esprimibile tramite gli altri operatori dell'algebra relazionale .
Lo Structured Query Language (SQL) è un linguaggio strutturato di interrogazione: completamente procedurale dichiarativo interamente imperativo interamente orientato agli oggetti .
La modalità di invio dei dati al DBMS tramite SQL può essere: sia interattiva che compilata esclusivamente compilata esclusivamente batch esclusivamente interattiva .
Il linguaggio SQL viene adottato come standard per la prima volta: nel 1977 con il nome SEQUEL/2 nel 1975 con il nome SEQUEL-XRM nel 1986 dall'ANSI nel 1974 dai laboratori IBM Research .
Il Data Definition Language (DDL) è una parte del linguaggio SQL che permette di: dare a un utente la possibilità o il privilegio di vedere alcune parti delle tabelle creare, modificare o eliminare gli oggetti in un database ovvero agire sullo schema del DB definire le strutture dati accessorie per recuperare efficientemente i dati leggere e modificare i valori delle tabelle di una base di dati .
Il Data Manipulation Language (DML) è il linguaggio di manipolazione dei dati, esso consente: di definire le strutture dati accessorie per recuperare efficientemente i dati di dare a un utente la possibilità o il privilegio di vedere alcune parti delle tabelle di creare, modificare o eliminare gli oggetti in un database ovvero agire sullo schema del DB di leggere e modificare i valori delle tabelle di una base di dati .
Il Data Control Language (DCL) consente: di definire le strutture dati accessorie per recuperare efficientemente i dati di dare a un utente la possibilità o il privilegio di vedere alcune parti delle tabelle di leggere e modificare i valori delle tabelle di una base di dati di creare, modificare o eliminare gli oggetti in un database ovvero agire sullo schema del DB .
Le viste sono tabelle derivate da altre tabelle della base di dati. La creazione di una vista avviene con l'istruzione: COMMIT ALTER VIEW DROP VIEW CREATE VIEW .
Si consideri la forma base di una interrogazione SQL. Essa deve contenere necessariamente: una istruzione SELECT e una clausola FROM la clausola WHERE la clausola FROM, anche da sola la clausola DISTINCT .
L'istruzione SELECT corrisponde all'operatore dell'algebra relazionale: join divisione selezione proiezione, ma non elimina eventuali duplicati .
L'istruzione SELECT DISTINCT corrisponde all'operatore dell'algebra relazionale: proiezione divisione selezione join .
Si consideri la tabella U(uid: integer, unome: string) che contiene id utente e nome utente. Se si volessero ottenere da U solo i valori dell'attributo uid, in SQL dovremmo scrivere: SELECT uid FROM U; SELECT u, unome FROM U SELECT unome FROM U; SELECT U FROM uid, unome;.
Nel linguaggio SQL per rimuovere i duplicati si utilizza la parola chiave: DELETE SELECT che agisce come la proiezione e quindi elimina i duplicati DISTINCT dopo la clausola WHERE DISTINCT dopo la SELECT .
La eliminazione dei duplicati in SQL: deve essere eseguita sulle chiavi primarie si deve eseguire solo se necessario perché ha un costo in termini di risorse si deve effettuare sempre e' implicita nella SELECT .
Nel linguaggio SQL la clausola WHERE specifica le condizioni di selezione. Queste si applicano: confrontando righe diverse della tabella solo alla colonna indicata dalla SELECT singolarmente ad ogni tupla della tabella presente nella clausola FROM alle colonne della tabella presente nella clausola FROM .
Nel linguaggio SQL la clausola WHERE specifica le condizioni di selezione. In particolare: e' possibile anche fare una ricerca testuale (stringhe) non si possono usare operatori di confronto non è possibile gestire valori NULL non è possibile fare una ricerca testuale (stringhe) .
La parola chiave SELECT del linguaggio SQL corrisponde, nell'algebra relazionale, a: una intersezione una proiezione una proiezione, ma senza eliminazione dei duplicati una selezione .
Si consideri la clausola FROM nel linguaggio SQL. Supponendo che contenga due tabelle A e B, allora: non ci possono essere nella WHERE quattro condizioni di join non ci possono essere nella WHERE tre condizioni di join nella WHERE è possibile ci siano zero condizioni di join nella WHERE sarà presente almeno una condizione di join .
Si consideri il linguaggio SQL. Se si hanno più condizioni di selezione nella clausola WHERE, allora: va scritto in SQL l'ordine di esecuzione delle condizioni non bisogna indicare come eseguire le condizioni, il sistema eseguirà prima la condizione più "economica" in termini di risorse di calcolo il sistema esegue sempre le condizioni nell'ordine scritto va indicato al sistema l'ordine di esecuzione delle condizioni da eseguire .
Si consideri la clausola WHERE del inguaggio SQL così definita: WHERE Utenti.uid = UC.uid AND UC.cid = Corsi.cid AND Corsi.cnome = 'nomecorso': nella clausola FROM ci possono essere due tabelle nella clausola FROM ci può essere una sola tabella nella clausola FROM ci devono essere tre tabelle: Utenti, Corsi, e UC nella clausola SELECT ci saranno le tre tabelle Utenti, Corsi, e UC .
Si consideri una interrogazione SQL base. Se si hanno N tabelle nella clausola FROM ed è presente la clausola WHERE: avremo almeno N-1 condizioni nella clausola WHERE si possono avere N-2 condizioni nella clausola WHERE si può avere una condizione anche su un'altra tabella, diversa dalle N tabelle della FROM, ma dichiarata nella SELECT ci possono essere 0 condizioni nella WHERE .
Si consideri la tabella U(uid: integer, unome: string) che contiene id utente e nome utente all'interno di un database utenti. Per visualizzare lo schema della tabella U si utilizza l'istruzione SQL: DELETE U; DESCRIBE U; SELECT U; UPDATE U; .
L'istruzione SQL create table si usa per: creare una tabella di un DB creare una tupla di una tabella di un DB aggiornare una tabella di un DB modificare una tabella di un DB .
Si consideri un campo di una tabella definito in SQL come PRIMARY KEY. Esso: può contenere due righe uguali contiene valori NULL può contenere valori NULL non può contenere valori NULL .
Se un attributo di una tabella è definito in SQL come tipo varchar(4) esso: contiene un numero di caratteri variabile, ma comunque strettamente maggiore di 4 contiene esattamente 4 caratteri, sempre contiene un numero di caratteri variabile fino a 4 occuperà in memoria 4 MB .
Per inserire dei valori in una tabella U si deve usare l'istruzione SQL: INSERT INTO U VALUES; INSERT VALUES; UPDATE VALUES; CREATE VALUES; .
Si consideri la tabella U di un database. In SQL, per selezionare tutte le tuple della tabella U si utilizza: SELECT U FROM U; SELECT * FROM U; SELECT varchar FROM U; SELECT char FROM U; .
In SQL, per visualizzare tutti i dati inseriti in una tabella U si utilizza: SELECT * FROM U; SELECT *; DESCRIBE U; ALTER U; .
Se si volesse estrarre attributo1 e attributo2 da una tabella A, eliminando eventuali duplicati, in SQL si scriverebbe: SELECT A FROM attributo1, attributo2, A; SELECT DISTINCT attributo1, attributo 2 FROM A; SELECT attributo1, attributo 2 FROM A; SELECT *A; .
Si consideri una interrogazione SQL base. Se si hanno N tabelle nella clausola FROM ed è presente la clausola WHERE: si possono avere N-2 condizioni nella clausola WHERE si puo avere una condizione anche su un'altra tabella, diversa dalle N tabelle della FROM, ma dichiarata nella SELECT avremo almeno N-1 condizioni nella clausola WHERE ci possono essere 0 condizioni nella WHERE .
Si consideri la clausola WHERE del inguaggio SQL così definita: WHERE Utenti.uid = UC.uid AND UC.cid = Corsi.cid AND Corsi.cnome = 'nomecorso': nella clausola FROM ci possono essere due tabelle nella clausola FROM ci può essere una sola tabella nella clausola SELECT ci saranno le tre tabelle Utenti, Corsi, e UC nella clausola FROM ci devono essere tre tabelle: Utenti, Corsi, e UC.
Il committente è una delle diverse figure professionali coinvolte nella progettazione del software. Esso: e' colui che ha una necessità informatica da risolvere asserisce come risolvere il problema mantiene e aggiorna il sistema dichiara cosa serve per risolvere il problema .
L'analista è una delle diverse figure professionali coinvolte nella progettazione del software. Esso: e' colui che ha una necessità informatica da risolvere dichiara cosa serve per risolvere il problema asserisce come risolvere il problema utilizza il sistema .
La progettazione del software coinvolge diverse professionalità. La figura che asserisce come risolvere il problema è: il committente l'analista il progettista il manutentore .
Nell'ambito della progettazione del software, la classificazione delle applicazioni rispetto al flusso di controllo include i sistemi sequenziali. Un esempio di questo tipo di sistemi sono: i video giochi un risolutore di sistemi di equazioni il sistema di navigazione autonoma di un aereo i moderni sistemi operativi .
Nell'ambito della progettazione del software, la classificazione delle applicazioni rispetto al flusso di controllo include i sistemi concorrenti. Un esempio di questo tipo di sistemi sono: smartphone un risolutore di sistemi di equazioni qualunque applicazione con un unico flusso di controllo sistema operativo anni 80 .
Nell'ambito della progettazione del software, la classificazione delle applicazioni rispetto agli elementi di interesse primario include le applicazioni orientate alla gestione dei dati. Esempi di tale tipo di applicazioni sono: i sistemi ABS i DBMS i sistemi operativi per robot le applicazioni per il calcolo matematico come, ad esempio, Matlab.
Nell'ambito della progettazione del software, la classificazione delle applicazioni rispetto agli elementi di interesse primario include le applicazioni orientate al controllo. Esempi di tale tipo di applicazioni sono: i sistemi ABS i DBMS i risolutori di sistemi di equazioni le applicazioni per il calcolo matematico come, ad esempio, Matlab .
Il ciclo di vita del software definisce come sviluppare il software. Il primo passo da eseguire è: lo schema concettuale lo studio di fattibilità il progetto e la realizzazione la verifica .
La fase di verifica nel ciclo di vita del software riguarda le attività per: controllare che il programma svolga correttamente, completamente ed efficientemente il compito per cui è stato sviluppato pianificare le attività e le risorse del progetto stabilire come l'applicazione dovrà realizzare le sue funzioni stabilire cosa l'applicazione dovrà fare .
Il software può essere sviluppato seguendo differenti paradigmi. Tra essi, il modello a cascata o a spirale. Tra i due: il modello a cascata prevede diverse versioni del programma (alfa, beta etc.) il modello a cascata si è rivelato la strategia vincente il modello a spirale è stato abbandonato perché più costoso il modello a spirale si è rivelato la strategia vincente .
La qualità del software è un importante aspetto in ambito di progettazione del software. Esse si dividono in: astratte e modulari formali e non formali interne e non visibili esterne ed interne .
Le qualità del software si dividono in esterne e interne. Le qualità esterne: includono la modularizzazione sono visibili agli utenti del sistema includono il tempo di collaudo riguardano gli sviluppatori del software .
Tra i diversi fattori che condizionano le qualità esterne del software si trova: la leggibilità la comprensibilità la correttezza la verificabilità .
Tra i diversi fattori che condizionano le qualità interne del software si trova: la robustezza l'usabilità l'estendibilità la modularità .
In ambito di progettazione del software, la modularità concerne: l'organizzazione del software in parti specificate, unità o moduli, che interagiscono tra loro individualmente la possibilità di verificare che il software funzioni e che gli obiettivi proposti siano stati conseguiti la completezza della documentazione la facilità di operare su diverse piattaforme .
Le qualità del software possono essere in contrasto l'una con l'altra. Per esempio sono in contrasto: modularità e leggibilità usabilità e sicurezza completezza ed efficacia della documentazione comprensibilità e leggibilità .
Al fine di bilanciare le qualità del software in contrasto tra loro si deve considerare: la tendenza corrente nello sviluppo di applicazioni del software il modello a spirale il ciclo di vita del software il modello a cascata .
Nello sviluppo del software il principio di rigore e formalità riguarda: l'approccio rigoroso che individua una soluzione tecnica deterministicamente corretta l'affrontare separatamente i diversi aspetti per dominare la complessità l'identificare aspetti fondamentali ed ignorare i dettagli irrilevanti la realizzazione della separazione degli interessi in due fasi .
Nello sviluppo del software il principio di modularità concerne: l'anticipazione del cambiamento il costruire, nella pratica, unità software "piccole e ben fatte" l'identificare aspetti fondamentali e ignorare i dettagli irrilevanti la traduzione delle esigenze in una soluzione tecnica deterministicamente corretta .
Nella progettazione del software, considerare una soluzione che sia il più generale possibile si identifica nel principio di: astrazione incrementalità modularità generalità .
La modularizzazione e' un aspetto molto importante nella progettazione del software (SW); essa rappresenta il principio secondo cui il SW: deve essere progettato per step e' efficiente può essere strutturato in moduli prevede che l'utente che usa i moduli debba conoscerne tutte le parti interne .
La modularizzazione e' un aspetto molto importante nella progettazione del software. Una delle caratteristiche di un modulo e' che questi deve possedere: parti interne scorrelate tra loro parti interne sempre visibili e note agli utenti nessun interfacciamento verso l'esterno relazioni strutturali con altri moduli definite tramite interfaccia .
In un modulo, i meccanismi di accesso alle funzionalità del modulo stesso sono meccanismi che regolano: come accedere alle funzionalità del modulo e come questi accede agli altri moduli le interazioni tra le parti nascoste del modulo le interazioni tra le parti interne del modulo gli accessi degli utenti alle informazioni nascoste .
Uno dei dogmi della modularità e' il principio di unitarietà, secondo cui un modulo deve: scambiare con altri moduli la maggiore quantità di informazione possibile avere una unità concettuale ben definita e incorporare tutti gli aspetti relativi a tale unità concettuale comunicare con il massimo numero di moduli possibile comunicare le informazioni nascoste .
L'interfaccia tra un modulo e l'altro deve essere chiara e ridotta. Questo significa che ci deve essere: bassa coesione basso accoppiamento interfacciamento non esplicito alto accoppiamento .
Nella progettazione del software quando si parla di "information hiding" si intende che: anche le informazioni essenziali devono essere nascoste anche le informazioni inessenziali devono essere visibili le informazioni inessenziali devono essere nascoste, cioe' non tutte le informazioni devono essere accessibili ci deve essere sempre alto accoppiamento tra i moduli .
Tra i principi per la modularità possiamo annoverare: l'alto accoppiamento l'alta coesione l'interfacciamento non esplicito la bassa coesione interna .
La modularizzazione prevede che un modulo presenti elementi fortemente coesi, cioe': con alto accoppiamento che ci sia un'alta disomogeneità delle funzionalità che ci sia un'alta variabilità delle funzionalità che le varie funzionalità, messe a disposizione da un singolo modulo, siano strettamente correlate tra di loro .
Una buona modularizzazione implica un basso accoppiamento tra i moduli; ciò e' correlato: al fatto che una modifica di un modulo non comporti grandi modifiche ad un altro modulo alla corretta implementazione dell'information hiding all'efficienza alla riusabilità .
Una buona modularizzazione e' un aspetto molto importante nella progettazione del software (SW); una delle conseguenze e' che: rilevare eventuali errori nel software sia più complesso rilevare eventuali errori nel software sia più semplice progetto, competenze, e lavoro non possano essere distribuiti si ottenga certamente un miglioramento dell'efficienza del programma .
In un linguaggio di programmazione orientato agli oggetti (object oriented): il focus è sugli oggetti, in modo da creare più facilmente modelli basati sul mondo reale il focus è sulle operazioni e' sconsigliabile utilizzare le classi le funzioni vengono messe al primo posto e gli oggetti sono secondari .
In un linguaggio di programmazione orientato agli oggetti (object oriented), gli oggetti: rendono più complessa la progettazione del SW rispetto ad altri paradigmi di programmazione permettono di modellare più facilmente il mondo reale sono di secondaria importanza non possono interagire tra loro .
Il C è un linguaggio di programmazione imperativo di natura procedurale. Diversamente dai programmi OO (object oriented), i programmi scritti in C: sono composti da espressioni matematiche e da istruzioni hanno un forte focus sugli oggetti e quindi sulle classi si basano sull'utilizzo di tabelle e operatori relazionali vengono sviluppati considerando gli oggetti e poi le classi .
Si consideri la programmazione orientata agli oggetti (object oriented). Una "classe" è un concetto astratto per definire: oggetti attributi paradigmi funzioni.
Nella programmazione orientata agli oggetti (object oriented) le strutture dati di una classe sono dette: attributi istanze oggetti metodi .
Si consideri la programmazione orientata agli oggetti (object oriented). Una classe è: una istanza un attributo un concetto astratto la rappresentazione di un singolo, specifico oggetto .
I principi fondamentali della programmazione orientata agli oggetti (object oriented) sono l'incapsulamento, l'astrazione, l'ereditarietà e il polimorfismo. In particolare, l'incapsulamento ha lo scopo: di far sì che uno stesso oggetto assuma più forme di nascondere i dettagli di implementazione interna di definire un legame di dipendenza di tipo gerarchico tra classi diverse di dare accesso allo stato e ai comportamenti di un oggetto solo attraverso un sottoinsieme di elementi pubblici .
Tra i principi fondamentali della programmazione orientata agli oggetti (object oriented) vi è l'astrazione. Essa consiste nel: definire un legame di dipendenza di tipo gerarchico tra classi diverse far sì che uno stesso oggetto assuma più forme nascondere i dettagli di implementazione interna dare accesso allo stato e ai comportamenti di un oggetto solo attraverso un sottoinsieme di elementi pubblici .
Tra i principi fondamentali della programmazione orientata agli oggetti (object oriented) vi è l'ereditarietà. Essa consiste nel: definire un legame di dipendenza di tipo gerarchico tra classi diverse dare accesso allo stato e ai comportamenti di un oggetto solo attraverso un sottoinsieme di elementi pubblici nascondere i dettagli di implementazione interna far sì che uno stesso oggetto assuma più forme .
Tra i principi fondamentali della programmazione orientata agli oggetti (object oriented) vi è il polimorfismo. Esso consiste nel: definire un legame di dipendenza di tipo gerarchico tra classi diverse dare accesso allo stato e ai comportamenti di un oggetto attraverso un sottoinsieme di elementi pubblici far sì che uno stesso oggetto assuma più forme nascondere i dettagli di implementazione interna .
La relazione che intercorre tra intelligenza artificiale, il machine learning e il deep learning può essere espressa tramite la simbologia della teoria degli insiemi: all'interno del deep learning si colloca l'intelligenza artificiale all'interno del machine learning si colloca l'intelligenza artificiale all'interno del deep learning si colloca il machine learning all'interno dell'intelligenza artificiale si colloca il machine learning .
I primi lavori scientifici sull'intelligenza artificiale risalgono al 1950 circa. Essi hanno avuto risultati interessanti come la realizzazione di: sistemi in grado di tagliare l'erba autonomamente programmi in grado di giocare a scacchi sistemi di miglioramento per le immagini digitali sistemi in grado di afferrare tramite una mano di un robot una matita .
Lo studio dell'intelligenza artificiale ha portato alla seguente conclusione: e' possibile realizzare sistemi intelligenti e adattivi semplicemente tramite una lista di condizioni if-else prendere una penna rossa da un astuccio con tante penne colorate è un problema molto semplice per un robot i problemi più semplici per un umano sono i più facili da risolvere per l'intelligenza artificiale non tutti i problemi che un essere umano si trova ad affrontare ogni giorno possono essere facilmente rappresentati tramite un insieme predefinito di regole .
Il meccanismo di funzionamento del machine learning è basato sui dati. In particolare, il paradigma del machine learning prevede: come input le formule matematiche e le risposte e come output i dati come input i dati e le regole e come output le risposte come input i dati e le risposte attese e come output le regole che consentono di connettere i dati alle risposte attese come input le regole e le risposte e come output i dati .
Un meccanismo di funzionamento del machine learning è basato sull'apprendimento supervisionato. Esistono anche altre modalità di apprendimento, tra cui l'apprendimento: semi-supervisionato e di rinforzo ultra-supervisionato e mega-supervisionato intrarevisionato e con regole robotizzato e esponenziale .
Con le tecniche di apprendimento mediante machine learning: vengono generate delle regole che, se applicate ad uno specifico insieme di dati, forniscono i risultati desiderati viene ricreato fisicamente il cervello umano e' possibile costruire macchine in grado di compiere perfettamente qualunque operazione umana i sistemi imparano a ragionare come un essere umano .
algoritmo di machine learning riesce a creare un modello predittivo in grado di ottenere buoni risultati su nuovi dati (diversi dai dati di training). Questo è possibile se: i dati di training sono stati scelti in modo da rispecchiare la distribuzione statistica dei casi reali i nuovi dati e i dati di training non sono correlabili tra loro i nuovi dati hanno proprietà statistiche completamente differenti dai dati di training i nuovi dati hanno proprietà statistiche molto diverse dai dati di training .
Il deep learning è una particolare branca del machine learning in cui il modello statistico viene imparato gerarchicamente, cioè: si ha un solo layer di apprendimento si ha un solo strato centralizzato di apprendimento si hanno più strati di apprendimento concatenati l'unico layer di apprendimento è nascosto.
La parola deep (profondo) sta ad indicare la "lunga" catena di rappresentazioni che vengono create in un sistema di apprendimento automatico. Il numero di layer che contribuiscono alla creazione del modello indicano: il grado del modello la profondità della rete i bit usati nel modello i byte usati nel modello .
Nel deep learning, le rappresentazioni vengono apprese tramite l'uso di reti neurali, grazie al fatto che: tecniche matematiche permettono di creare una rappresentazione accurata del problema derivata dai dati il funzionamento delle reti neurali è in tutto e per tutto identico ai meccanismi cognitivi del cervello umano deep learning e meccanismi cognitivi del cervello umano sono la stessa cosa il deep learning consente alla macchina di pensare come un cervello umano .
La descrizione del modello Harrison-Ruzzo-Ullman (HRU) si basa su: un set di soggetti S; un set di oggetti O; un set di diritti di accesso R; una matrice degli accessi M un set di soggetti S; un set di oggetti O; un set di file F; una matrice D diagonale un set di soggetti S; un set di test T; un set di file F; una matrice di accesso M un set di test T; un set di file F; una matrice D diagonale .
Report abuse Consent Terms of use