Tecniche di programmazione

13
Tecniche di programmazione

description

Tecniche di programmazione. Linguaggi per basi di dati. Un altro contributo all’efficacia: disponibilità di vari linguaggi e interfacce linguaggi testuali interattivi ( SQL ) comandi (SQL) immersi in un linguaggio ospite (Pascal, Java, C ...) - PowerPoint PPT Presentation

Transcript of Tecniche di programmazione

Page 1: Tecniche di programmazione

Tecniche di programmazione

Page 2: Tecniche di programmazione

21 April 2023 - slide 2Le nuove tecnologie Software

Linguaggi per basi di dati Un altro contributo all’efficacia: disponibilità di vari linguaggi e interfacce

linguaggi testuali interattivi (SQL) comandi (SQL) immersi in un linguaggio ospite (Pascal, Java, C ...) comandi (SQL) immersi in un linguaggio ad hoc, con anche altre

funzionalità (p.es. per grafici o stampe strutturate) con interfacce amichevoli (senza linguaggio testuale)

Page 3: Tecniche di programmazione

21 April 2023 - slide 3Le nuove tecnologie Software

SQL, un linguaggio interattivo "Trovare i corsi tenuti in aule a piano terra"

Nome PianoEdificio

OMIDS1 Terra

PincherleG Primo

OMIN3 Terra

Aule

RossiBasi di dati DS3

BruniReti N3

NeriSistemi N3

BruniControlli G

Corsi

AulaDocenteCorso

Page 4: Tecniche di programmazione

21 April 2023 - slide 4Le nuove tecnologie Software

SQL, un linguaggio interattivo

SELECT Corso, Aula, PianoFROM Aule, CorsiWHERE Nome = AulaAND Piano = "Terra"

Corso Aula

Reti N3

Sistemi N3

Piano

Terra

Terra

Page 5: Tecniche di programmazione

21 April 2023 - slide 5Le nuove tecnologie Software

TECNICHE DI PROGRAMMAZIONE

Tecniche di programmazione di tipo EMBEDDED Statico Dinamico

Tecniche di programmazione in Client-Server e multi tier via API

API proprietarie (dbLib,… API standard (ODBC, JDBC, OLEdb, DAO, ADO, ADO.NET,…)

Page 6: Tecniche di programmazione

21 April 2023 - slide 6Le nuove tecnologie Software

Embedded SQL: staticoFonte Codice

Linguaggio + SQL

Precompiler

Codice sorgente

‘Stripped’

Data Base Requeste

Module

Compiler Bind

DBMS

Library

Ooject

Code

Linker

EXE

Application

Plan

App Plan

Data Base

Page 7: Tecniche di programmazione

21 April 2023 - slide 7Le nuove tecnologie Software

Emberdded SQl: statico e dinamico

SQL Statement

Parse

Validazione

Ottimizzazione

Genera app. plan

Esecuzione

Forma binaria

SQL STATICO

Precomp.

Bind

Esecuzione

SQL DINAMICO

Execute Imm

Prepare

Esecuzione

Page 8: Tecniche di programmazione

21 April 2023 - slide 8Le nuove tecnologie Software

SQL immerso in linguaggio ospitewrite('nome della citta''?'); readln(citta); EXEC SQL DECLARE P CURSOR FOR SELECT NOME, REDDITO FROM PERSONE WHERE CITTA = :citta ;EXEC SQL OPEN P ; EXEC SQL FETCH P INTO :nome, :reddito ; while SQLCODE = 0 do begin write('nome della persona:', nome, 'aumento?'); readln(aumento); EXEC SQL UPDATE PERSONE

SET REDDITO = REDDITO + :aumento WHERE CURRENT OF P EXEC SQL FETCH P INTO :nome, :reddito end;EXEC SQL CLOSE CURSOR P

Page 9: Tecniche di programmazione

21 April 2023 - slide 9Le nuove tecnologie Software

SQL in linguaggio ad hoc (Oracle PL/SQL)

declare Stip number;begin select Stipendio into Stip from Impiegato where Matricola = '575488' for update of Stipendio; if Stip > 30 then update Impiegato set Stipendio = Stipendio * 1.1

where Matricola = '575488'; else update Impiegato set Stipendio = Stipendio * 1.15

where Matricola = '575488'; end if; commit; exception when no_data_found then insert into Errori values('Matricola inesistente',sysdate); end;

Page 10: Tecniche di programmazione

21 April 2023 - slide 10Le nuove tecnologie Software

Interazione non testuale (Access)

Page 11: Tecniche di programmazione

21 April 2023 - slide 11Le nuove tecnologie Software

Suggerimenti programmazione su motore

Uso dei COST OPTIMIZER per il motore: risolve il problema dell’indicizzazione.Usare lo SHOW QUERY EXECUTION PLAN che indica come sono eseguite fisicamente le query.Nelle select pesano molto le clausole IN e OR e le LIKE (tipo ‘%AB’) piuttosto che (‘AB%’).Pesano poco le clausole = e BETWEEN.Non inserire dialogo con l’utente in processi transazionali MAI. Se serve almeno con timer.Usare uno snapshot e poi far partire il transazionale oppure utilizzare data set disconnessiAttenzione all’ordine delle INSERT (deadlock).

Page 12: Tecniche di programmazione

21 April 2023 - slide 12Le nuove tecnologie Software

Deadlock

Processo A Begin transaction Insert tblA … (ok) Select

Insert tblB …(wait) Commit

Processo B Begin transaction

Insert tblB … (ok) Select

Insert tblA … (wait) Commit

Page 13: Tecniche di programmazione

21 April 2023 - slide 13Le nuove tecnologie Software

Tempi indicativi di risposta applicazioni

Per il caso di in line transactions: 5 sec max (medio 2 sec)Per il caso di uso normale 30 sec max (medio 10 sec)Per il caso di record scan: 1-2 min max.