Powered By Blogger

23 ottobre 2008

Join


Il comando join consente di recuperare dati da due o più tabelle in base alle relazioni logiche esistenti tra le tabelle stesse. I join indicano la modalità di utilizzo dei dati di una tabella in Microsoft SQL Server per la selezione di righe in un'altra tabella.

Una condizione di join definisce il modo in cui due tabelle sono correlate in una query in base agli elementi seguenti:

L'impostazione della colonna di ogni tabella da utilizzare per il join. In una condizione di join tipica viene specificata una chiave esterna di una tabella e la chiave associata nell'altra tabella.
L'impostazione dell'operatore logico (ad esempio = o <>) da utilizzare per il confronto dei valori delle colonne.
Gli inner join possono essere specificati nelle clausole FROM e WHERE, mentre gli outer join possono essere specificati solo nella clausola FROM. Le condizioni di join vengono utilizzate insieme alle condizioni di ricerca delle clausole WHERE e HAVING per definire le righe da selezionare nelle tabelle di base a cui viene fatto riferimento nella clausola FROM.

L'impostazione delle condizioni di join nella clausola FROM consente di separare queste condizioni da altre condizioni di ricerca specificate nella clausola WHERE. Corrisponde inoltre al metodo consigliato per l'impostazione dei join. La sintassi ISO semplificata per la definizione di un join nella clausola FROM è la seguente:

FROM first_table join_type second_table [ON (join_condition)]

join_type specifica il tipo di join da eseguire, ovvero inner join, outer join o cross join. join_condition definisce il predicato da valutare per ogni coppia di righe unite in join.

Se in una singola query viene fatto riferimento a più tabelle, nessuno dei riferimenti alle colonne deve presentare ambiguità. Nell'esempio precedente entrambe le tabelle ProductVendor e Vendor includono una colonna denominata VendorID. I nomi di colonna duplicati in due o più tabelle a cui viene fatto riferimento nella query devono essere qualificati con il nome della tabella. Nell'esempio tutti i riferimenti alle colonne Vendor sono qualificati.

Se il nome di una colonna non è duplicato in due o più tabelle utilizzate nella query, non è necessario qualificare i riferimenti con il nome della tabella, come illustrato nell'esempio precedente. Un'istruzione SELECT di questo tipo a volte è di difficile comprensione in quanto non indica la tabella a cui appartiene ogni colonna. La query risulta più leggibile se tutte le colonne sono qualificate con i nomi delle rispettive tabelle. Il grado di leggibilità aumenta ulteriormente se si utilizzano gli alias di tabella, soprattutto quando è necessario qualificare anche i nomi delle tabelle con il nome del database e del proprietario.

Nell'elenco di selezione di un join è possibile fare riferimento a tutte le colonne delle tabelle unite in join o a qualsiasi subset delle colonne. Nell'elenco di selezione non è necessario specificare le colonne di ogni tabella del join. Ad esempio, in un join tra tre tabelle è possibile utilizzare una sola tabella come collegamento tra le altre due e le colonne di tale tabella non devono essere necessariamente incluse nell'elenco di selezione.

Sebbene le condizioni di join includano in genere confronti di uguaglianza (=), è possibile specificare altri operatori di confronto o relazionali e altri predicati. Per ulteriori informazioni, vedere Utilizzo di operatori nelle espressioni e WHERE (Transact-SQL).

Durante l'elaborazione di join in SQL Server, il motore query sceglie il metodo di elaborazione di join più efficiente tra quelli possibili. L'esecuzione fisica di vari join può essere realizzata con molte ottimizzazioni diverse e pertanto non può essere stimata in maniera affidabile.

Non è necessario che alle colonne di una condizione di join sia associato lo stesso nome o lo stesso tipo di dati. Se tuttavia i tipi di dati sono diversi, devono essere compatibili o supportare la conversione implicita in SQL Server. Se non è possibile eseguire la conversione implicita dei tipi di dati, è necessario impostare nella condizione di join la conversione esplicita tramite la funzione CAST. Per ulteriori informazioni sulle conversioni implicite ed esplicite, vedere Conversione del tipo di dati (Motore di database).

Fonte: http://technet.microsoft.com/it-it/library/ms191517.aspx

Formalizzazione dei concetti statistici di base


Matrice dei dati
consiste in un insieme rettangolare di numeri dove in riga si hanno i casi, in colonna le variabili, ed in ogni cella (derivante dall’incrocio tra riga e colonna) un dato, e cioè il valore assunto da una particolare variabile su un particolare caso.

Unità (statistica)
è l’unità elementare su cui vengono osservati i caratteri oggetti di studio.

Carattere
può assumere modalità differenti in corrispondenza delle diverse unità statistiche del collettivo. Le modalità del carattere devono essere esaustive e non sovrapposte. Con il termine esaustive si intende che le modalità elencate devono rappresentare tutti i possibili modi di manifestarsi del carattere. Le modalità si definiscono non sovrapposte se ad ogni unità si può associare una sola modalità.

Tabella
è un archivio che include dati relativi a un certo argomento, strutturato in record. Contiene i dati immessi dall’utente come sequenza di record, che possono essere modificati, visualizzati e stampati dall’utente seguendo certi criteri e ordinati secondo uno o più indici.

Campo
è l’elemento base di un record di una tabella di un database. Come una cella di un foglio elettronico, contiene uno dei dati elementari di cui è composto un record. Un campo ha diversi attributi che lo caratterizzano; i principali sono il nome, il tipo e la dimensione.

Tabelle di contingenza
sono tabelle utilizzate in statistica per rappresentare e analizzare le relazioni tra due o più variabili. Le tabelle di contingenza sono tabelle realizzate per rappresentare la distribuzione di frequenza di due variabili congiunte di tipo quantitativo discreto o qualitativo.

CMS


Un Content management system (CMS), letteralmente "Sistema di gestione dei contenuti" è un software che si installa su un server web per la gestione automatizzata di siti web tramite pannello di controllo protetto da password.
Esistono CMS specializzati, cioè appositamente progettati per un tipo preciso di contenuti (un'enciclopedia on-line, un blog, un forum, ecc.) e CMS generici, che tendono ad essere più flessibili per consentire la pubblicazione di diversi tipi di contenuti.
Tecnicamente un CMS è un'applicazione lato server, divisa in due parti: la sezione di amministrazione (back end), che serve ad organizzare e supervisionare la produzione dei contenuti, e la sezione applicativa (front end), che l'utente web usa per fruire i contenuti e le applicazioni del sito.
I CMS possono essere programmati in vari linguaggi tra cui più comunemente in PHP e ASP; il tipo di linguaggio adoperato è indifferente a livello di funzionalità. I CMS in PHP vengono utilizzati per piattaforme Linux, i CMS in ASP vengono utilizzati su piattaforme Windows.

Esistono moltissimi tipi di CSM, ma i più usati sono:
Drupal
Joomla
Plone
Xoops
Mambo
OpenCMS
Wordpress

Fonte: http://it.wikipedia.org/wiki/Content_management_system

L'SQL


L'SQL (Structured Query Language) è un linguaggio non procedurale utilizzato nella gestione dei database relazionali. Rispetto ad altri linguaggi di programmazione per database è molto semplice per quanto riguarda: concisione dei comandi; visione tabellare dei dati; facilità istruzioni; il che fa aumentare il suo sviluppo nelle applicazioni di carattere gestionale. Esso permette all'utente di: definire la struttura delle relazioni del database (FUNZIONE DDL); modificare i contenuti del database, con operazioni di inserimento, modifica e cancellazione (FUNZIONE DML); gestire il controllo degli accessi (FUNZIONE DML); interrogare la base di dati (FUNZIONE QUERY LANGUAGE).

Attraverso l’impiego del linguaggio SQL si possono effettuare in particolare tre operazione di gestione:

1- estrazione delle informazioni (attraverso l’istruzione Select)

2- inserimento di dati (con l’impiego dell'istruzione Insert)

3- modifica dei dati (attraverso l'istruzione Update)

Le select


Il linguaggio per la manipolazione dei dati impiega quattro istruzioni fondamentali: SELECT, INSERT, UPDATE e DELETE.
In particolare l'istruzione SELECT serve per estrarre informazioni dal database e la sua sintassi è la seguente:
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY

La clausola FROM è seguita dalla lista di tabelle, separate da virgole, che vengono usate nell'istruzione SELECT.
WHERE serve per specificare le restrizioni o condizioni che devono essere soddisfatte dalle tuple per far parte della tabella risultate.
Con la clausola GROUP BY si possono raggruppare le tuple per valori omogenei degli attributi specificati nella lista degli attributi.
HAVING è l'equivalente del WHERE applicata ai gruppi di tuple, quindi, deve far riferimento agli attributi di GROUP BY.
ORDER BY serve per ordinare le tuple risultati dall'interrogazione in base alla lista degli attributi.

Aggregate functions


Le aggregate functions forniscono informazioni statistiche relative ad un
set di records (domain). Per esempio, e` possibile utilizzare una aggregate
function per contare il numero di records di un recordset, oppure calcolare
il valore medio dei valori di un particolare campo.
Le domain aggregate functions sono:
- DAvg
- DCount
- DLookup
- DMin, DMax
- DStDev, DStDevP
- DSum
- DVar, DVarP

Queste funzioni sono estensioni Access-specific dell'expression evaluation
engine usato dal Jet e non sono disponibili negli altri prodotti. Il fatto
che possano funzionare da Visual Basic non implica che siano supportate.
Infatti il loro funzionamento e` del tutto aleatorio ed imprevedibile, ad
esempio si riesce ad utilizzare queste funzioni da Visual Basic se
casualmente e` caricato in memoria l'Access expression service.

Fonte: http://support.microsoft.com/kb/639768/it

Multidimensional cube, slice & dice, roll up, drill down e filtering


Multidimensional cube
L'ipercubo informativo è una raccolta di dati di cui si conoscono più dimensioni di analisi. Ogni componente di un dato è rappresentata su una dimensione spaziale del cubo.

Le tecniche note nella visualizzazione dei report sono:

- Slice & dice --> permette di selezionare e ristrutturare i dati riducendone le dimensioni e consentendone una più efficace visualizzazione

- Drill down --> consente di aumentare il livello di dettaglio dei dati

- Roll up --> permette di aumentare il livello di aggregazione dei dati

- Pivot --> per orientare il piano

- Filtering --> utile per migliorare la funzione di ricerca e, quindi, per selezionare una parte dei dati in modo da dare una migliore risposta

Struttura di un record: elementi strutturali e teorici


Una struttura dati è un'entità usata per organizzare un insieme di dati all'interno della memoria del computer, ed eventualmente per memorizzarli in una memoria di massa.
Il record è un oggetto di un database stutturato di dati che contiene un insieme di campi o elementi, ciascuno dei quali possiede nome e tipo propri. I record devono molto alle tradizionali schede cartacee delle biblioteche, da cui riprendono in gran parte la struttura.È una struttura dati eterogenea, contenente una combinazione di elementi di diverso tipo, ad esempio un intero, un numero in virgola mobile e un carattere testuale. Gli elementi di un record sono detti anche campi, e sono identificati da un nome.Una struttura dati è un'entità usata per organizzare un insieme di dati all'interno della memoria del computer, ed eventualmente per memorizzarli in una memoria di massa.

Fonte: http://it.wikipedia.org/wiki/Pagina_principale

11 ottobre 2008

Elementi teorici e strutturali del report: Dimensioni, Misure, Aggregazione, funzioni di aggregazione


Un modello di report consiste in un livello di metadati sovrapposto a un database fisico che identifica entità, campi e ruoli aziendali. Dopo la loro pubblicazione, questi modelli consentono agli utenti, che non conoscono le strutture dei database e che non comprendono o non scrivono query, di sviluppare report. I modelli sono costituiti da entità, ovvero set di elementi di report correlati raggruppati con un nome descrittivo, da relazioni predefinite tra tali entità aziendali e da calcoli predefiniti. I modelli vengono definiti utilizzando un linguaggio XML denominato Semantic Model Definition Language (SMDL). L'estensione dei file dei modelli di report è smdl.

Le principali caratteristiche di un report sono:
- Dimensioni, che costituiscono il numero di variabili che vengono prese in considerazione;
- Misure, che, a differenza delle precedenti, identificano le operazioni che possono essere realizzate sulle suddette variabili;
- Aggregazioni e funzioni di aggregazione, in cui le prime danno una visione congiunta dei dati, mentre le seconde consentono di eseguire varie operazioni(min, max, sum, avg, etc.) su una serie di valori.

Principali prodotti software per l'archiviazione delle informazioni (DBMS)


In informatica, un Database Management System (DBMS) è un sistema software progettato per consentire la creazione e manipolazione efficiente di database solitamente da parte di più utenti. I DBMS svolgono un ruolo fondamentale in numerose applicazioni informatiche, dalla contabilità, la gestione delle risorse umane e la finanza fino a contesti tecnici come la gestione di rete o la telefonia.
Se in passato i DBMS erano diffusi principalmente presso le grandi aziende e istituzioni (che potevano permettersi l'impegno economico derivante dall'acquisto delle grandi infrastrutture hardware necessarie per realizzare un sistema di database efficiente), oggi il loro utilizzo è diffuso praticamente in ogni contesto. L'espressione applicazione enterprise, che nel gergo informatico si riferisce ad applicazioni legate al business delle aziende che le utilizzano, implica quasi "per definizione" la presenza di una o più basi di dati amministrate da uno o più DBMS.

I principali prodotti software per l'archiviazione delle informazioni (DBMS) sono:

Software proprietario
-4th Dimension
-ADABAS (Software AG)
-AskSam
-DB2 (IBM)
-DATAllegro
-Caché (InterSystems)
-FileMaker Pro (FileMaker, Inc., in precedenza Apple)
-FrontBase
-IMS/DB (IBM)
-Informix (IBM)
-Ingres (Computer Associates)
-Microsoft SQL Server (Microsoft)
-Microsoft Access (Microsoft)
-Mimer SQL (Mimer AB)
-mSQL
-Netezza
-Oracle (Oracle Corporation)
-Ovrimos
-Progress RDBMS (Progress Software Corporation)
-SESAM
-SQL Anywhere Studio
-Sybase SQL Server
-Teradata (NCR Corporation)
-TimesTen (TimesTen, Inc.)

Open source o free software
-Berkeley DB (Sleepycat Software)
-Dataman
-DBM
-Drizzle
-Emdros
-Firebird SQL (The FirebirdSQL Foundation)
-GigaBASE
-HSQL Database Engine
-HyperNetDatabase
-MaxDB (prima SAP DB e Adabas)
-Metakit
-MySQL (MySQL AB)
-Ozone
-PicoSQL (un Dbms italiano)
-PostgreSQL (in precedenza Postgres) (PostgreSQL Global Development Group)
-SQLite (di pubblico dominio)
-tdbengine
-ZODB

9 ottobre 2008

Vantaggi per creatori o fruitori di informazioni


Esistono diversi modi di accedere come fruitori alle più svariate informazioni, ma anche molte possibilità di distribuire, mettere a disposizione la nostra conoscenza, come creatori di informazioni, agli altri utenti di internet.

Dal punto di vista dei cretori dell'informazione, possiamo evidenziarne alcuni, come il poter accedere al nostro blog o sito personale, per modificare o aggiungere contenuti, da qualunque postazione, anche dall'estero, basta che abbiamo un computer collegato alla rete. Inoltre, dal punto di vista del creatore del blog e dei suoi contenuti, c'è la possibilità che chiunque possa leggerli.

Dal punto di vista dei fruitori delle informazioni, avremo una serie di vantaggi: la riduzione del tempo che s'impiega per accedere alle informazioni, un aggiornamento di queste in tempo reale. L'interazione diretta e quindi molto più economica, ci permette di poter confrontare le varie notizie a disposizione, effettuare un controllo incrociato, cercare di approfondire diversi punti di vista contemporaneamente, selezionare la parte che più ci interessa. Questo mette in evidenza il fatto che cercare l'informazione in internet sia anche una forma di fruizione attiva, di scelta di forma e contenuti, contrastando la manipolazione. Il grande limite che possiamo riscontrare è l'acceddibilità dei siti e la loro fruibilità.

Accessibilità sul web


L'accessibilità, in informatica, è la capacità di un dispositivo, di un servizio o di una risorsa d'essere fruibile con facilità da una qualsiasi categoria d'utente.
Il termine è comunemente associato alla possibilità anche per persone con ridotta o impedita capacità sensoriale, motoria, o psichica (ovvero affette da disabilità sia temporanea, sia stabile), di fruire dei sistemi informatici e delle risorse software a disposizione. Il termine ha trovato largo uso anche nel settore di Internet col medesimo significato.

Requisiti fondamentali:

-Nel web, un sito web accessibile facilita l'accesso ad individui con ogni tipo di disabilità, ma anche ad individui non affetti da patologie. Più nello specifico:
Utilizza un codice semanticamente corretto, logico e validato secondo i parametri del W3C;
-Utilizza testi chiari, fluenti e facilmente comprensibili;
-Utilizza testo alternativo per ogni tipo di contenuto multimediale;
-Sfrutta titoli e link che siano sensati anche al di fuori del loro contesto;
-Ha una disposizione coerente e lineare dei contenuti e dell'interfaccia grafica
-Dovrebbe essere compatibile col maggior numero di browser e configurazioni software e utilizzare colori standard e ad alto contrasto fra di loro;
-L'applicazione corretta dei criteri di accessibilità deve permettere la lettura delle pagine web da parte di software detti screenreader, specifici per ipovedenti o non vedenti.

Formato ideale di software


Quale deve essere il formato idele di un software? Se ad esempio lo si dovesse presentare sotto forma di brief, come andrebbe strutturato?
Personalmente, ritengo che una presentazione in Powerpoint aiuterebbe, magari proponendo una copia delle varie pagine, in base alle funzioni, con le relative spiegazioni a margine. Per quanto riguarda invece il mero aspetto, credo che sarebbe opportuno posizionare il logo in un angolo, magari in basso a sinistra, in posizione ben visibile ma discreta, magari affiancato dal nome dell'azienda ideatrice.
In quanto alle informazioni sulle funzionalità e sull'utilizzo, è bene che esse siano suddivise per argomento, e magari capoversate nel brief, in modo che per ognuna sia possibile individuare delle parole chiave, o delle brevi frasi, che saranno poi spiegate approfonditamente nel rispettivo capoverso.

Termini informatici e statistici a confronto


I report statistici sono degli elaborati in cui vengono sintetizzati e rappresentati dei dati iniziali attraverso il supporto di software.
I DATI iniziali sono conservati in archivi informatici chiamati DBMS (data base management sistem) e all’interno dei DBMS sono organizzati nei database in tabelle.
A sua volta una tabella è organizzata in righe e colonne, le righe rappresentano i RECORD ossia le entità individuali (in statistica UNITA’) mentre le colonne i CAMPI ossia gli attributi (in statistica VARIABILI o CARATTERI).
Nei database le informazioni sono distribuite in più tabelle per evitare la ripetizione dei dati (in statistica NORMALIZZAZIONE), le tabelle sono poi collegate tra loro da relazioni, in particolare queste relazioni avvengono tra campi chiave; chiave che può essere primaria ( in questo caso abbiamo una relazione a uno) o secondaria (in questo caso abbiamo una relazione a molti).
Tutto questo sistema descrive un insieme di tabelle in relazione (in statistica MATRICE DEI DATI).
Un esempio di report statistico sono le tabelle di associazione o tabelle di contingenza, Le tabelle di contingenza sono tabelle utilizzate in statistica per rappresentare e analizzare le relazioni tra due o più variabili. In esse si riportano le frequenze congiunte delle variabili. Il caso più semplice è quello delle tabelle tetracoriche, in cui ciascuna delle due variabili assume solo due possibili valori.
I risultati contenuti all’interno della tabella di contingenza vengono chiamati MISURE mentre la DIMENSIONE della tabella è data dai lati della tabella.

Tabelle di contingenza


Le tabelle di contingenza sono tabelle utilizzate in statistica per rappresentare e analizzare le relazioni tra due o più variabili. In esse si riportano le frequenze congiunte delle variabili. Il caso più semplice è quello delle tabelle tetracoriche, in cui ciascuna delle due variabili assume solo due possibili valori, ad esempio: Dove, tra le 100 persone esaminate, 30 presentano capelli biondi, 40 occhi chiari e soltanto 21 hanno capelli biondi e occhi chiari. Da questi dati è possibile ricavare i dati restanti della tabella. Utilizzando le tabelle di contingenza e operando specifici calcoli su di esse, si può arrivare a determinare la dipendenza o indipendenza tra le due variabili considerate, in base al valore assunto dall’indice di contingenza quadratico . Come già detto sopra le tabella di contingenza, o tabelle a doppia entrata, sono tabelle realizzate per rappresentare la distribuzione di frequenza di sue variabili congiunte di tipo quantitativo discreto o qualitativo. Indicando con X e Y i due caratteri e rispettivamente con (i = 1,2,…,h) e (j=1,2,…,k) le modalità rilevate per i due caratteri, ad ogni coppia (, ) si fa corrispondere nella tabella la sua frequenza associata , cioè il numero di elementi, tra gli n della popolazione, che possiedono contemporaneamente la modalità di di X e di Y.

8 ottobre 2008

Il software come complemento alla mente umana


Il termine software è una vocabolo creato a partire da due termini della lingua inglese, soft (morbido) e ware (manufatto, oggetto) e sta ad indicare un programma o un insieme di programmi in grado di funzionare su un elaboratore.
Dal 1950 l'analogia tra l'hardware ed il corpo umano e quella tra il software e la mente umana si è fatta molto forte, dal momento che Turing (noto matematico britannico) ha sostenuto che il progresso tecnologico sarebbe riuscito a creare entro il 2000 delle macchine intelligenti, in grado di pensare autonomamente per la risoluzione dei problemi.

Normalizzazione del database


La normalizzazione è un procedimento volto all'eliminazione della ridondanza e del rischio di inconsistenza dal database. Esistono vari livelli di normalizzazione (forme normali) che certificano la qualità dello schema del database.

Questo processo si fonda su un semplice criterio:
se una relazione presenta più concetti tra loro indipendenti, la si decompone in relazioni più piccole, una per ogni concetto.
Questo tipo di processo non è, purtroppo, sempre applicabile in tutte le tabelle, dato che in alcuni casi potrebbe comportare una perdita d'informazioni.

Alcuni concetti importanti riguardanti la normalizzazione:

Ridondanze --> Caratteristica di ciò che è ridondante. Aggiunta di parole non necessarie alla comprensione di una frase.

Anomalie --> si verificano quando ci sono irregolarità di dati.

La dipendenza funzionale--> è un particolare vincolo di integrità per il modello relazionale che descrive legami di tipo funzionale tra gli attributi di una relazione. Quando un attributo a determina un altro attributo b, cioè quando il valore di un attributo è unico, cioè sempre lo stesso ogni volta che compare in una tupla l'attributo da cui dipende, possiamo dire che esiste una dipendenza funzionale tra a e b. In maniera più precisa possiamo dire che, per ogni elemento del dominio del primo attributo che compare nella relazione, esiste una funzione che associa ad esso un unico elemento del dominio del secondo attributo.

Decomposizione di una relazione--> una decomposizione dovrebbe sempre soddisfare due proprietà:
-la decomposizione senza perdita, che garantisce la ricostruzione delle informazioni originarie
-la conservazione delle dipendenze, che garantisce il mantenimento dei vincoli di integrità originari.

Per "decomposizione senza perdita" si intende l'atto della manipolazione di una relazione R volta ad ottenere (eventualmente) due o più relazioni (ad esempio R1 e R2) che oltre a conservare le dipendenze funzionali verificano anche la seguente condizione: R = R1joinR2

Teorema: Sia data una relazione R(X), con X insieme degli attributi di R, e due sottoinsiemi A, B di X tali che A unito B coincide con X; siano inoltre R1 e R2 due relazioni rispettivamente su A e su B. Allora è condizione sufficiente affinché la decomposizione su A e B sia senza perdita se, detto C l'insieme intersezione tra A e B, è superchiave per R1(A) o R2(B).


Forme Normali

Prima Forma Normale
Definizione: Si dice che una base dati è in 1NF (prima forma normale) se vale la seguente relazione per ogni relazione contenuta nella base dati: una relazione è in 1NF se e solo se:
-non presenta gruppi di attributi che si ripetono (ossia ciascun attributo è definito su un dominio con valori atomici).
-esiste una chiave primaria (ossia esiste un insieme di attributi, che identifica in modo univoco ogni tupla della relazione)

Seconda Forma Normale
Definizione: Una base dati è invece in 2NF (seconda forma normale) quando è in 1NF e per ogni tabella tutti i campi non chiave dipendono funzionalmente dall'intera chiave primaria e non da una parte di essa.

Come esempio supponiamo di avere una tabella con gli esami sostenuti dagli studenti universitari. I campi di interesse potrebbero quindi essere i seguenti:

"Codice corso di laurea"
"Codice esame"
"Matricola studente"
"Voto conseguito"
"Data superamento"
La tabella avrà quindi la seguente intestazione

id_corso_laurea id_esame id_studente voto data

La superchiave è rappresentata dalla tripla evidenziata, ossia da:

"Codice corso di laurea"
"Codice esame"
"Matricola studente"
Essa infatti risulta essere l'insieme di chiavi minimale per poter identificare in modo univoco le tuple (i record) della tabella.

I campi "Voto conseguito" e "Data superamento", invece, sono campi non chiave, e fanno riferimento all'intera superchiave.


Terza Forma Normale
Definizione: Una base dati è in 3NF (terza forma normale) se è in 2NF e per ogni dipendenza funzionale è vera una delle seguenti condizioni:

X è una superchiave della relazione
Y è membro di una chiave della relazione
Teorema: Ogni relazione può essere portata in 3NF.


Forma Normale di Boyce e Codd
Definizione: Una relazione R è in forma normale di Boyce e Codd (BCNF) se e solo se per ogni dipendenza funzionale (non banale) , X è una superchiave per R.

Dato un insieme di relazioni, non è possibile garantire sempre il raggiungimento della BCNF; in particolare il mancato raggiungimento di questo obiettivo è indice che la base dati è affetta da un'anomalia di cancellazione (ossia è possibile perdere dati a seguito di un'operazione di cancellazione).

Es: Facciamo un esempio molto banale, se abbiamo uno schema relazionale
Mettiamolo in forma canonica.

Calcoliamo le chiavi: A, B e C non stanno a destra di nessuna dipendenza, quindi appartengono a tutte le chiavi.
La chiusura di ABC è ABCDE quindi ABC è una chiave.
Ora, visto che una chiave è una superchiave minimale (ovvero una superchiave con tutti attributi essenziali per derivare ogni attributo del sistema) lo schema relazionale è in BCNF


Quarta Forma Normale
Una base dati è detta invece essere in 4NF quando per ogni relazione di dipendenza funzionale molti a molti X Y, X sia una superchiave.


Quinta Forma Normale
Infine, una base dati si dice in 5NF se e solo se:
è in 4NF;
ogni relazione di dipendenza è implicata dalle chiavi candidate.


Limiti di 4NF e 5NF

La quarta e quinta forma normale, in realtà, raramente vengono utilizzate, in quanto ad un incremento di rigore nell'eliminazione della ridondanza corrisponde un degrado delle prestazioni (query di selezione o, peggio, modifica dei dati, richiedono molto più tempo per l'esecuzione).

3 ottobre 2008

Differenza tra conoscenza, informazione e dati


-La conoscenza è la consapevolezza e la comprensione di fatti, verità o informazioni ottenuti attraverso l'esperienza o l'apprendimento (a posteriori), ovvero tramite l'introspezione (a priori). E' l'autocoscienza del possesso di informazioni connesse tra di loro, le quali, prese singolarmente, hanno un valore e un'utilità inferiori.
-L’informazione fa riferimento ai dati selezionati e organizzati per essere comunicati.
-I dati sono materiale “grezzo” dell’informazione, che descrivono semplicemente eventi o situazioni. L'elaborazione dei dati può portare alla conoscenza di una informazione.

Principali canali di comunicazione sociale


La comunicazione non è soltanto un processo di trasmissione di informazioni. In italiano, comunicazione ha il significato semantico di "far conoscere", "render noto". In tedesco, il termine Mitteilung mantiene la radice latina mettere in comune, condividere. La comunicazione è un processo costituito da un soggetto che ha intenzione di far sì che il ricevente pensi o faccia qualcosa.
I principali canali di comunicazione sono:

-videoconferenze (basta avere una WebCam e un microfono attraverso i quali è possibile effettuare delle conversazioni con altri utenti che sono in possesso di tali strumenti);

-newsgroup (sono delle bacheche elettroniche dedicate ad uno specifico argomento. I membri possono accedere e leggere o rispondere ai mess
aggi pubblicati);

-posta elettronica (Si tratta di uno strumento che permette ad ogni utente di inviare un messaggio ad un qualsiasi destinatario, che potrà leggerlo nel momento in cui accederà alla propria casella di posta elettronica. I messaggi inviati non sono esclusivamente di tipo testuale, è possibile allegare o includere direttamente nel corpo della mail immagini, suoni o filmati);

-mailing list (consistono nello scambio di informazioni tra un gruppo predefinito di persone che solitamente condividono uno stesso interesse);

-MUD (Gli utenti non si limitano a comunicare tra loro in un ambiente virtuale, ma hanno delle regole e degli scopi ben precisi e devono fare attenzione ai vari ostacoli e pericoli che incontrano nel loro percorso);

-ICQ (Una volta installato il programma ed inserita la lista dei propri contatti (le e-mail e i nomi delle persone che possiedono lo stesso software), ICQ avverte quando gli altri utenti sono collegati. A quel punto è possibile aprire una finestra a parte ed iniziare la discussione in tempo reale);

-IRC (In Internet consiste in uno spazio virtuale composto da stanze o canali. Nel momento dell'ingresso agli utenti può essere chiesto di scegliere un nickname, dopo di che può iniziare la conversazione con gli altri membri);

-Chat 3D (sono un’evoluzione di quelle tipiche. La conversazione avviene in un ambiente tridimensionale in cui i partecipanti sono rappresentati da personaggi o Avatar che attraverso il mouse o la tastiera possono muoversi, incontrarsi e interagire con gli altri).

Software per la creazione di homepage


Al giorno d'oggi è molto semplice costruire una homepage, a differenza del passato quando era necessario conoscere il linguaggio HTML. Questo grazie ai tanti server che offrono delle applicazioni attraverso le quali risulta semplice per chiunque creare un sito.

Gli strumenti software utilizzati per la creazione di homepage sono:
Frontpage;
Dreamweaver;
Easywebeditor;
Visual web developer;
Visual studio.