Appunti per Scuola e Università
humanisticheUmanistiche
Appunti e tesine di tutte le materie per gli studenti delle scuole medie riguardanti le materie umanistiche: dall'italiano alla storia riguardanti le materie umanistiche: dall'italiano alla storia 
sceintificheScientifiche
Appunti, analisi, compresione per le scuole medie suddivisi per materie scientifiche, per ognuna troverai appunti, dispense, esercitazioni, tesi e riassunti in download.
tecnicheTecniche
Gli appunti, le tesine e riassunti di tecnica amministrativa, ingegneria tecnico, costruzione. Tutti gli appunti di AppuntiMania.com gratis!
Appunti
informatica
CComputerDatabaseInternetJava
Linux unixReti


AppuntiMania.com » Informatica » Appunti di database » Database & Mysql

Database & Mysql




Visite: 1795Gradito:apreciate 4-stela [ Medio appunti ]
Leggi anche appunti:

Database & Mysql


Database & Mysql La gestione dei dati è da sempre una delle attività più

I Database Relazionali


I Database Relazionali allora cosa sono questi famigerati Database relazionali?

Piccola storia dei database assolutamente incompleta


Piccola storia dei database assolutamente incompleta Probabilmente il più glorioso
immagine di categoria

Scarica gratis Database & Mysql

Database & Mysql

La gestione dei dati è da sempre una delle attività più delicate per qualsiasi organizzazione, la possibilità di memorizzare le informazioni e gestirle in modo efficiente è ormai un bene primario per molte attività- Per questi motivi ogni realtà produttiva, dal piccola ufficio alla gran­de azienda, oggi dispone di un proprio sistema informati­vo, ossia di un insieme di strutture e procedure il cui com­pito è quello di trattare le informazioni necessarie allo svolgimento delle attività.

Database, dati e informazioni


Per capire l'importanza che una gestione efficiente delle informazioni può avere nella nostra vita quotidia­na basti pensare ad alcune delle attività che svolgiamo giornalmente: l'accesso a conti correnti bancari, la consultazione di elenchi o la prenotazione di beni e servizi.

Per definizione un sistema informativo ha il compito dì memorizzare ed organizzare le informazioni indipen­dentemente dallo strumento utilizzato. Qualche anno fa i mezzi utilizzati per registrare dati erano costituiti fondamentalmente da archivi cartacei, come gli schedar! delle biblioteche o gli registri ana-grafici del nostro comune. Naturalmente oggi sarebbe impensabile gestire grandi quantità di informazioni senza il supporto di tecnologie informatiche, per que­sto motivo oramai praticamente qualsiasi sistema in­formativo viene realizzato tramite l'ausilio di sistemi informatici.

Se finora abbiamo utilizzato in modo quasi intercam­biabile i termini dato ed informazione a questo punto si

rende necessaria una precisazione; per le attività che ci interessano abbiamo bisogno di trattare informazioni, ma tramite sistemi informatici queste vengono rappre­sentate per mezzo dei dati.

Per chiarire ulteriormente le differenza tra i due con­cetti riportiamo una delle varie definizioni:

informazione: 'notizia, dato o elemento che con­sente di avere conoscenza più o meno esatta dì fatti, situazioni,modi di essere';

dato: 'ciò che è immediatamente presente alla co­noscenza, prima di ogni elaborazione';

questo evidenzia che le informazioni costituiscono una interpretazione dei dati mediante le conoscenze prece­dentemente acquisite.

Naturalmente mediante l'ausilio di strumenti formali (sia manuali che automatici) è possibile manipolare convenientemente solo i dati e per poter ricostruire le informazioni che intendono rappresentare si ricorre ad una loro organizzazione e correlazione in quelle che vengono definite basi di dati (database). L'informatica, scienza nata con lo scopo dì sviluppare tecnologie per il trattamento automatico delle informa­zioni, ha da sempre dato molta importanza alla rea­lizzazione di strumenti specifici per la gestione di basi di dati, tali software prendono il nome dì DBMS. Con il termine DBMS (Data Base Management System) ci si riferisce a tutti quei sistemi nati specificatamente per la gestione dei dati e che, rispetto altri metodi di memorizzazione, sono in grado di offrire diversi van­taggi:

affidabilità: in quanto è il sistema ad occuparsi della salvaguardia dei dati, e di attivare particolari funzioni di ripristino dei dati in caso di malfunzio-namenti hardware o software;

privatezza: il sistema è in grado di garantire che l'accesso e la modifica dei dati possa essere ef­fettuato solo dagli utenti abilitati;

condivisione: i dati possono essere utilizzati dagli utenti che ne hanno necessità, questo permette di centralizzare le informazioni ed evitare ridondanze dei dati;

efficienza: i sistemi di gestione dì database sono strumenti altamente ottimizzati, al loro interno sono implementati algoritmi molto sofisticati per permettere un rapido accesso ai dati;


Ma uno dei vantaggi più rilevanti, introdotti dai DBMS rispetto ad altri metodi di memorizzazione, il più sem­plice dei quali è rappresentato dai file, è senza dubbio l'indipendenza dei dati, resa possibile dalla struttura­zione a livelli dei DBMS.

Grazie a questa proprietà, gli utenti possono accedere ai dati contenuti nel database utilizzando un alto livello di astrazione, senza cioè dover conoscere come i dati sono organizzati all'interno del database, né tanto me­no la loro collocazione fisica sui supporti di memoriz­zazione.

L'accesso ai dati avviene solo tramite interazione con il DBMS attraverso opportuni linguaggi

Database relazionali

Nel corso degli anni sono stati sviluppati diversi modelli per la gestione di basi di dati, ma quello che ha avuto il maggior successo si basa sul modello relazionale, introdotto da E.F. Codd nel 1970. Il modello relazionale utilizza il concetto intuitivo di tabella, un formalismo che consente dì memorizzare re­cord a struttura fissa. In genere un database è formato da diverse tabelle, che vengono poi messe in relazione in modo da ricostruire le informazioni che è necessario rappresentare.

Uno dei fattori principali che ha contribuito alla diffusione del modello relazionale, oltre che la semplicita' con la quale si creano i collegamenti tra i dati che ci interessano, è stata la disponibilità di un lin­guaggio standard per le interazioni con il DBMS rela­zionale IRDBMS, Relatìonal DBMS). Il linguaggio in questione è 'SQL (Structured Ouery Languagef ed è sta­to originariamente sviluppato da IBM per il suo siste­ma relazionale System R. Successivamente il linguag­gio è stato adottato da altri sistemi software e nel 1986 è stato standardizzato dall'ANSI (American National Standard^ Instituteì, diventando cosi il linguaggio uni­versale per l'interazione con i DBMS.

MySQL

MySQL (www.rnysql.com ) è uno dei database server più conosciuti nel mondo Linux e dell'OpenSource in genere. Per la rappresentazione dei dati utilizza il modello rela­zionale, anche se, volendo essere precisi, non potreb­be essere considerato un RDMBS in quanlo non sup­porta alcune delle caratteristiche definite da Codd. Questo non vuoi dire che non si possa pensare a My­SQL come ad un sistema in grado di gestire database complessi e corposi. Nel caso in cui dovessimo realiz­zare delle applicazioni più 'critiche' sarà possibile in­cludere delle funzionalità, come il supporto per le transazioni e le foreign keys, non presenti nelle installa­zioni di default.

MySQL utilizza il paradigma client/server, che in pratica si traduce nel suddividere le entità coinvolte nell'uti-lizzo dei dati in due categorie: il server rappresenta un processo specializzato che rimane sempre in esecuzio­ne nel sistema (daemon) e che ha il compito di ma­nipolare i dati; mentre i client sono rappresentati dalle applicazioni che utilizzano i dati, ma che non possono manipolarli direttamente.

L'idea fondamentale alla base dei sistemi client/server è che i client non accedono direttamente ai supporti di memorizzazione dei dati, ma si limitano ad effettuare delle richiesta al server che le eseguirà e ne restituirà i risultati.

Questo, tra gli altri vantaggi, permette di imple­mentare nel server sofisticate funzioni di manipolazio­ne dei dati, senza incrementare la complessità dei client, e di definire precise politiche di accesso ai data­base.

Tra i pregi di MySQL figurano certamente la velocità, la disponibilità per qualsiasi piattaforma, l'enorme nu­mero di applicazioni disponibili e ovviamente la possi­bilità di essere utilizzato gratuitamente. Proprio per questi motivi, MySQL, viene incluso in qualsiasi distribuzione Linux, ma se non dovesse esse­re presente nel vostro sistema vediamo insieme quali sono i passi da seguire per installarlo. Per la nostra prova utilizzeremo i sorgenti, per poi compilarli in modo da scegliere solo i componenti a noi necessari.

Naturalmente il primo passo da compiere sarà quello di collegarci all'homepage di MySQL (https://www.mysql.com) e prelevare i sorgenti seguendo il link 'Down­load'; al momento in cui scrivo sono disponibili la versione 3.23.49 (stabile) e la versione 4.0.1 (sviluppo). Preleviamo l'ultima versione stabile disponibile, preci­samente il file chiamato mysql-3.23.49.tar.gz e decom­primiamolo tramite il comando:

tar -zxf mysql-3.23.49.tar.gz

Quindi spostiamoci nella directory appena creata ed iniziamo la fase di configurazione dei sorgenti:

./configure --prefix-/usr/local/mysql --without-debug --without-bench

con questo indichiamo che intendiamo installare il si­stema nella directory /usr/local/mysql, che non voglia­mo includere le informazioni necessarie al debug e che non vogliamo compilare la suite di benchmark. Le impostazioni di default andranno bene per la maggior parte delle applicazioni, comunque, per avere una lista di tutte le opzioni disponibili, possiamo utilizzare il comando:

./configure --help  | less

Una volta terminata la fase di configurazione, passia­mo alla compilazione vera e propria tramite il coman­do:

make

programmi appena

e successivamente installiamo creati:

make install

dopo aver installato i binar! dovremo spostarci nella directory di installazione (/usr/local/mysql) e settare i permessi per le varie directory.

Per motivi di sicurezza vi consiglio di non far eseguire il daemon con i permessi di root, ma di creare apposi­tamente un nuovo gruppo ed un nuovo utente. La soluzione più semplice è quella di creare il gruppo e l'utente mysql, in modo da utilizzare le impostazioni di default già presenti nei file di avvio di MySQL. I comandi da eseguire sono:

groupadd mysql

useradd -g mysql  mysql

per definire i permessi di accesso alle directory della struttura di MySQL eseguiamo i comandi:

chown -R root /usr/local/mysql

chown -R mysql /usr/1ocal/mysql/var

chgrp -R mysql /usr/local/mysql

a questo punto possiamo inizializzare le tabelle conte­nenti i permessi di accesso al DBMS, per farlo utilizzia­mo lo script:

./bin/mysql_install_db

Ultimata questa fase, se tutto è andato per il verso giusto, siamo pronti ad utilizzare il nostro nuovo DBMS, che possiamo avviare con il comando:

./bin/safe_mysqld &

Gestione degli accessi

Prima di vedere come utilizzare il database per memorizzare e manipolare i dati, dovremmo avere ben chiare le idee riguardo i metodi utilizzati da MySQL per la gestione degli accessi.

MySQL, per garantire la riservatezza dei dati contenuti nei database, utilizza un sistema di ACL (Access Control List), in modo che sia possibile specificare, per ogni utente, esattamente le operazioni che gli è consentito svolgere. L'autenticazione è gestita attraverso 3 tabel­le: user, db e host.

Il primo controllo che viene svolto dal DBMS, non appena riceve un tentativo di connessione, consiste nel verificare il nome dell'utente e IP di provenienza. In questo modo è possibile diversificare gli utenti (ed i relativi permessi) anche in base all'host di provenienza e non solo mediante la classica coppia username/password.

In pratica i dati contenuti nella tabella user servono a definire i permessi globali che vengono assegnati ai vari utenti, che comunque possono essere ristretti, in relazione ai diversi database, mediante informazioni aggiuntive contenute nelle altre tabelle. Nella tabella user, per ogni utente da configurare, an­dranno specificati gli host di provenienza, lo username, la password e le operazioni che gli è consentito svolgere (select, insert, update,).

Vediamo in dettaglio le informazioni che è possibile specificare:

host: indica i nomi degli host o gli IP autorizzati alla connessione, può contenere le wildcard '%' e '_'. La prima viene utilizzata per indicare zero o più Decorrenze di caratteri qualsiasi, la seconda per indicare l'occorrenza di un singolo carattere. Inoltre, nelle ultime versioni di MySQL, è possibile specificare anche una coppia IP/netmask, in modo da garantire l'accesso a tutti gli host di una sottorete. La mancanza di valori per questo campo, indica che le informazioni circa l'host di provenien­za dovranno essere verificate attraverso la tabella host.

user: indica i nomi degli utenti autorizzati alla con­nessione. In questo campo non sono accettate le wildcard, e se il campo viene lasciato vuoto il si­stema accetterà le richieste provenienti da qualsiasi utente.

password: contiene le password, in formato codi­ficato, degli utenti autorizzati. Se questo campo non viene riempito, il sistema accetterà gli utenti che si collegheranno senza specificare la password, ma impedirà l'accesso a coloro i quali ne forniranno una.

select_priv,, file_priv: campi booleani, accettano i valori 'Y' o 'N', vengono utilizzati per indicare quali operazioni gli utenti possono richiedere al DBMS.

Una volta che l'utente è stato riconosciuto dal sistema viene attivata la seconda fase di autenticazione, quella che stabilisce quali operazioni l'utente può svolgere e su quali database. In questa fase le tabelle coinvolte sono: db e host. In particolare nella tabella db sono contenuti i campi:

host: il cui significato è analogo all'omonimo campo della tabella user, ma limitatamente al database specificato dal campo db;

db: indica il nome del database al quale le informazioni di autorizzazione si riferiscono. Possono essere utilizzate le wildcard '%'e '.'(con lo stesso significato visto precedentemente), mentre se il campo viene lasciato vuoto le impostazioni verranno applicate a qualsiasi databa­se;

user: il cui significato è analogo all'omonimo campo della tabella user, ma limitatamente al database specificato dal campo db;

select_priv, . grant_priv: sono dei campi booleani, accettano i valori 'Y' o 'N', utilizzati per indicare quali operazioni gli utenti possono svolgere sul database specificato dal campo db;

La tabella host contiene i campi:

host: il cui significato è simile all'omonimo campo della tabella db, infatti in questo caso un campo vuoto indica qualsiasi host;

db: il cui significato è analogo all'omonimo campo della tabella db;

select priv, . grant priv: i cui significati sono analoghi agli omonimi della tabella user, ma limita­tamente al database specificato dal campo db;

Conclusioni

Abbiamo visto quali siano le funzioni di un DBMS, soffermandoci in particolare su MySQL, probabilmente il database più utilizzato nella comunità OpenSource. Le sue caratteristiche di snel­lezza, semplicità ed efficienza lo rendono uno stru­mento ideale per la maggior parte di applicazioni di gestione di database.




Scarica gratis Database & Mysql
Appunti su:



Scarica 100% gratis e , tesine, riassunti



Registrati ora

Password dimenticata?
  • Appunti superiori
  • In questa sezione troverai sunti esame, dispense, appunti universitari, esercitazioni e tesi, suddivisi per le principali facoltà.
  • Università
  • Appunti, dispense, esercitazioni, riassunti direttamente dalla tua aula Universitaria
  • all'Informatica
  • Introduzione all'Informatica, Information and Comunication Tecnology, componenti del computer, software, hardware ...