Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


informatica dispense programmazione, Dispense di Informatica gestionale

informatica dispense programmazione

Tipologia: Dispense

2020/2021

Caricato il 25/07/2023

antoniolobrutto
antoniolobrutto 🇮🇹

1 / 62

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
1
Tecnologie Web T
Accesso Diretto alle Basi di Dati:
Interfacce e Astrazioni
Home Page del corso: http://www-db.deis.unibo.it/courses/TW/
Versione elettronica: 4.01.AccessoDB.pdf
Versione elettronica: 4.01.AccessoDB-2p.pdf
Accesso DB
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e

Anteprima parziale del testo

Scarica informatica dispense programmazione e più Dispense in PDF di Informatica gestionale solo su Docsity!

1

Tecnologie Web T Accesso Diretto alle Basi di Dati: Interfacce e Astrazioni

Home Page del corso: http://www-db.deis.unibo.it/courses/TW/ Versione elettronica: 4.01.AccessoDB.pdf Versione elettronica: 4.01.AccessoDB-2p.pdf

Accesso DB

… un piccolo passo indietro

Services

Business Logic

Business Flows

Presentation

I servizi devono fornire tutte le funzionalità base (API) necessarie per l’implementazione rapida ed efficace della logica di business, dalla gestione della concorrenza al supporto alle transazioni, dall’interfacciamento ai DB al monitoraggio/controllo/gestione delle performance

La logica di business contiene le caratteristiche delle applicazioni e dipende sia dal modello dei dati che, ancora più rilevante, dalle logiche di utilizzo degli stessi

A questo livello vengono implementati i flussi delle diverse conversazioni che interagiscono per comporre una applicazione

Livello di presentazione si occupa della visualizzazione dei risultati generati secondo il percorso definito nel flusso sottostante

Accesso DB

 Modello frequente in applicazioni enterprise

… ancora un piccolo passo indietro

 Come accedere ai dati di un DB? Dal Corso di Sistemi

Informativi T, sappiamo che è possibile mediante

istruzioni SQL eseguite “ interattivamente

Accesso DB

Accesso diretto alle basi di dati (1/2)

È anche possibile (ed è di gran lunga l’accesso a DB più tipico) inserire istruzioni SQL direttamente nel codice di un’applicazione scritta in un linguaggio di programmazione “ospite” (ad es. C, C++, Java, C#)  Esempio Java - JDBC:

System.out.println("Retrieve some data from the database.."); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM EMPLOYEE"); // display the result set while (rs.next()) { String number = rs.getString(1); String name = rs.getString(2); System.out.print(" empno= " + number); System.out.print(" firstname= " + name); System.out.print("\n"); } rs.close(); stmt.close();

Accesso DB

SQL Embedded

 L’incastonamento prevede di introdurre direttamente

nel programma sorgente le istruzioni SQL distinguendole dalle normali istruzioni tramite un opportuno separatore  Lo standard SQL prevede che il codice SQL sia preceduto dalla stringa exec sql e termini con il carattere ';’  Preprocessore che espande i comandi SQL  Cursori: strumento che permette a un programma di accedere alle righe di una tabella una alla volta; viene definito su una generica interrogazione  SQL dinamico : permette all’applicazione di definire al momento dell’esecuzione le interrogazioni SQL da effettuare sulla base di dati  Valore dei parametri (per istruzioni con struttura predefinita)  Forma delle interrogazioni Accesso DB

Call Level Interface

 Mette direttamente a disposizione del programmatore

una libreria di funzioni che permettono di interagire

con un DBMS

 Rispetto a SQL Embedded, CLI rappresenta uno

strumento più flessibile e meglio integrato con il

linguaggio di programmazione

 anche se occorre gestire esplicitamente aspetti che con SQL Embedded sono demandati direttamente al preprocessore

Accesso DB

Soluzioni CLI

 Piattaforma software Microsoft  ODBC (Object DataBase Connectivity ): interfaccia standard che permette di accedere a DB in qualunque contesto, realizzando interoperabilità con diverse combinazioniDBMS- Piattaforma-Reti  OLE DB (Object Linking and Embedding for DataBases): soluzione proprietaria Microsoft che permette ad applicazioni Windows di accedere a sorgenti dati generiche, non solo relazionali ma anche a una vasta tipologia di archivi dati, quali caselle di posta elettronica; basata sul modello a oggetti COM  ADO(ActiveX Data Object): interfaccia proprietaria Microsoft di alto livello ai sevizi offerti da OLE DB basata su una interfaccia “record(tupla) - oriented”

 JDBC

Soluzione per l’accesso ai dati in Java sviluppata da Sun Microsystem; controparte di ODBC per Java

Accesso DB

11

Diverse soluzioni a confronto

Nome Descrizione Pro :) Contro :( SQL Embedded

Le istruzione SQL sono introdotte direttamente all’interno del listato programma, distinte da un separatore (exec sql ;)

Cursori per gestire risultati composti da più tuple; SQL dinamico per ottenere flessibilità

Necessità di un preprocessore e di unsupporto “DBMS-piattaforma- linguaggio-compilatore”

OLE DB/ ADO

Soluzione proprietaria Microsoft che consente, grazie all’uso di driver specifici, di interfacciare il linguaggio di programmazionecon il DBMS

Integrato in Windows; Driver offerti dai maggioriproduttori di DBMS; Interfacciamento con altri tipi di dato (documenti,mailbox, ecc.)

Dialetto SQL ristretto; Proprietario; Utilizzato solo su linguag-gi e su piattaforme Microsoft

JDBC Interfaccia fra il mondo Java ed idiversi DBMS. Utilizza dei driver specifici ma offre anche un ponte con ODBC (non è vero l’inverso)

Java, multipiattaforma,codice aperto; Disponibile per qualsiasiDBMS grazie anche al ponte ODBC

Come ODBC richiede ladisponibilità di un driver offerto dal DBMS

Accesso DB

Architettura ODBC

Application

ODBC Driver Manager

ODBC Driver (DBMS/OS/network)

Data Source

Accesso DB

JDBC

 API Java standard definita da Sun Microsystems nel 1996  Sun assicura che JDBC NON è acronimo di Java Database Connectivity … ma è un semplice marchio registrato!!   Rappresenta la controparte Java di ODBC

 Permette di accedere ai database (locali e remoti ) in

modo uniforme

 Garantisce accesso ai database in modo

indipendente dalla piattaforma

 I driver JDBC sono collezioni di classi Java che

implementano metodi definiti dalle specifiche JDBC  Le classi Java che realizzano funzionalità JDBC sono contenute nei package  java.sql : classi fondamentali  javax.sql : estensioni Accesso DB

Storia di JDBC

 Prima distribuzione (jdbc.sql)

 JDBC fa parte del pacchetto software JDK a partire dalla versione 1.1 (pakage java.sql)

 Con Java 2, è stato introdotto JDBC 2.0:

 Migliorate le funzionalità e i tipi di dato disponibili  Offerto come package opzionale per funzionalità estese

 Java SE 7 include JDBC 4.

Accesso DB

Architettura JDBC

Accesso DB

Java Application

JDBC Driver Manager

JDBC/Native Bridge

DBMS

Native Driver (DBMS specific)

JDBC/ODBC Bridge

ODBC Driver

All Java JDBC/Net Bridge

All Java JDBC Driver

Network Server

utilizza le interfacce java.sql e javax.sql

implementano java.sql e, in alcuni casi javax.sql

data source

Type 2 Type 1 Type 4 Type 3

Driver JDBC

 JDBC è un insieme di interfacce; per usare un’interfaccia è necessario fornire un’implementazione per tutti i metodi che la compongono

 L’ insieme delle classi Java che implementano le

interfacce JDBC rappresentano un modulo software

chiamato driver JDBC  Ogni DBMS ha il proprio driver rilasciato dal produttore o sviluppato da terze parti  Sono i driver che realizzano la vera comunicazione con il DB

Accesso DB

Tipi di driver (1/3)

 Sono di quattro tipi e possono essere suddivisi in due categorie:  2-tier: client colloquiano direttamente con DB  3-tier: client comunicano con un middle-tier che accede al DB

Accesso DB