Il linguaggio macchina
Il linguaggio macchina o codice macchina è il linguaggio in cui sono scritti i programmi eseguibili per computer. Può venire classificato come linguaggio di programmazione, sebbene quest'ultima espressione sia più spesso riservata per indicare i linguaggi di alto livello con cui si scrivono programmi non direttamente eseguibili, ma che richiedono una traduzione in linguaggio macchina, per esempio per mezzo di un compilatore.
Il linguaggio di programmazione permette di elaborare i dati. I dati sono salvati generalmente o su un archivio tradizionale o su un database.
Archivi tradizionali
Un file (archivio) è una raccolta di record logici. La gestione dei file è un servizio reso dal Sistema
Operativo.
Ogni record logico contiene una sequenza di bit ed è suddiviso in campi. Ogni campo contiene una
differente informazione.
Organizzazioni dei file:
-
Sequenziale: I record sono letti o scritti uno dopo l'altro. Inserimento, cancellazione e modifica di un file sequenziale presentano problemi, in quanto richiedono di norma lo spostamento di tutti i record che seguono il punto di intervento.
-
Ad accesso diretto: L’allocazione dei record in memoria di massa è definita da un algoritmo che genera un indirizzo a partire dal valore assunto da un campo del record detto chiave. Il vantaggio delle strutture ad accesso diretto è la rapidità della ricerca: in assenza di conflitti ogni ricerca richiede una sola operazione di ingresso/uscita.
-
A indice: In queste strutture, come in quelle ad accesso diretto, è il valore di un campo chiave che determina il record a cui accedere. La corrispondenza fra la chiave e l’indirizzo è mantenuta esplicitamente mediante un file ausiliario detto file indice. Su uno stesso archivio è possibile avere diversi file indice relativi a chiavi diverse.
Necessità dei database
Le basi di dati sono sorte alla fine degli anni ’60. Prima i sistemi informativi si basavano sull’uso di files separati.
I programmi applicativi accedevano ai files individualmente, utilizzando procedure del Sistema Operativo.
L’accesso ai files tradizionali comportava una serie di problemi:
-
Ridondanza: informazioni ripetute
-
Incongruenza: le modifiche non sempre vengono apportate in tutti gli archivi dove compaiono le stesse informazioni
-
Inconsistenza: se ad esempio uno stesso articolo si ritrova con marche diverse quale sarà quella giusta?
-
Dipendenza dei programmi dai dati: se cambia il tracciato record o la cartella di un archivio devo cambiare l’applicativo
-
Difficoltà nel gestire l’integrità dei dati: va scritto codice ad hoc nell'applicativo
-
Difficoltà nel gestire la concorrenza: in un file condiviso se due utenti tentano la modifica, si possono generare informazioni non corrette
-
Limitata sicurezza e privatezza: non tutti gli utenti hanno stessi permessi sui dati e la privatezza dei dati è limitata perché gestita solo dal sistema operativo
-
Scarsa protezione dei dati da guasti accidentali
Questi inconvenienti si possono superare se tutti i dati vengono organizzati in una base di dati e gestiti da un DBMS (Data Base Management System).
DATABASE
Una Base Di Dati può essere definita come una collezione di dati strutturati, progettati per essere usati in applicazioni differenti e da differenti utenti. In particolare è un insieme di dati memorizzati senzaridondanza ( la duplicazione dei dati in più archivi) inutili.
A grandi linee, possiamo dire che è una collezione di archivi di dati ben organizzati e ben strutturati, in modo che possano costituire una base di lavoro per utenti diversi con programmi diversi. L'utente del Database può concentrare la sua attenzione sul progetto degli archivi, sulla gestione e sul ritrovamento delle informazioni, senza preoccuparsi dell' organizzazione fisica dei dati sulle memorie di massa. Questo crea una distinzione tra le diverse figure degli utenti del computer: utenti, amministratori.
DIFFERENZA TRA AMMINISTRATORI E UTENTI DEL DB
Amministratore del DB ha il compito di garantire efficienza al cliente, affrontare i problemi e gestire il livello esterno (fornire autorizzazione utente ad accedere i dati parziali). Utente, a differenza dall'amministratore, ha una visione parziale del DB perché ad ogni utente interessa una parte del base di dati.
Gli archivi che costituiscono la base di dati aziendale possono risiedere su un unico computer oppure possono essere distribuiti sulle memorie di massa di computer diversi.
Il DB è organizzato in base ai tre livelli:
-
IL LIVELLO ESTERNO: rappresenta la visione del database da parte dell'utente. Questo rappresenta quella parte che è importante per il singolo utente o per il singolo gruppo di utenti. Solitamente vi è una rappresentazione grafica per ogni classe di utenti che può accedere alla base di dati perché ognuna ha bisogno di una porzione diversa di dati.
-
IL LIVELLO LOGICO: rappresenta la visione complessiva del database dal punto di vista logico indipendentemente dal metodo di salvataggio e strutturazione dei dati. Esiste un solo schema logico per database. È la "cerniera" tra il livello fisico e quello esterno e deve descrivere tutte le entità , gli attributi, le associazioni e i vincoli.
-
IL LIVELLO INTERNO: Coincide con la rappresentazione fisica del database nel computer. La descrizione di questo livello fornisce informazioni su come realizzare concretamente la struttura logica.
II livello fisico e logico, uno dipende dall'altro. Questo tipo di astrazione mi permette di fare modifica senza modificare gli altri livelli.
I MODELLI PER IL DATABASE
ci sono diversi modelli per poter rappresentare la base di dati
-
Modello gerarchico (es. albero)
-
Modello grafo
-
Modello orientato ai oggetti
-
Modello reticolare
-
Modello relazionale
ne approfondiremo qui solo uno:
Creare un modello è un astrazione della realtà ; è una semplificazione della realtà stessa con tutte le caratteristiche.
La Sicurezza nel DB
Il DB deve garantire la consistenza degli archivi, cioè i dati in essi contenuti devono essere significativied essere effettivamente utilizzabili nelle applicazioni dell'azienda. I dati devono quindi essere protettiper impedire perdite accidentali (dovute a cadute del sistema, guasti HW ecc...); La protezione deve riguardare anche gli interventi dolosi sui dati, dovuti ad accessi non autorizzati con operazione dilettura, modifica o cancellazione.
In sostanza SICUREZZA significa impedire che il database venga danneggiato da interventi accidentali o non autorizzati.
DBMS
Il DBMS (Database Management System) è SW che gestisce BASE DI DATI. Una caratteristica del DBMS è di nascondere come è organizzato base di dati.
Un DBMS deve essere in grado di
-
Permettere la creazione di una nuova base di dati.
-
Facilitare gli utenti nell' inserimento, nella cancellazione e variazione dei dati nel DB.
-
Rendere possibile l'estrazione di informazioni dal DB interrogando la base.
-
Facilitare l'accesso (ritrovamento dei dati).
-
Interdipendenza dalla struttura logica dei dati.
-
Interdipendenza dalla struttura fisica dei dati.
-
eliminazione della RIDONDANZA (duplicare i dati in più archivi).
-
Eliminazione della INCONSISTENZA (i dati falsi. In altre parole, quando non si può distinguere quale dato sia vero).
-
Integrità dei dati.
-
Utilizzo da parte dei più utenti.
-
Controllo della concorrenza.
-
Sicurezza dei dati.
IL LINGUAGGIO DEL DB
-
Il DDL (data defination Language) sono delle istruzioni che permettono di creare anche base di dati
-
Il DML (data manipulation Language) permette aggiornamento cioè inserimento, modifica e cancellazione
-
DCL (data control language) è un linguaggio utilizzato per fornire o revocare agli utenti i permessi necessari per poter utilizzare i comandi di DDL e DML, oltre agli stessi comandi DCL (che gli servono a sua volta per poter modificare i permessi su alcuni oggetti).
-
Il Quary Language dati memorizzati nella base di dati





