1. INTRODUZIONE ALLE BASI DI DATI
|
|
- Ernesto Sacco
- 8 anni fa
- Visualizzazioni
Transcript
1 1.INTRODUZIONEALLEBASIDIDATI 1.1SISTEMAINFORMATIVOESISTEMAINFORMATICODIUN ORGANIZZAZIONE Unsistemainformativoèuninsiemeorganizzatodiprocedureedirisorseumaneemateriali utilizzateperlaraccolta,l archiviazione,l elaborazioneelacomunicazionediinformazioni necessarieadun organizzazionepergestiresialeattivitàoperativechequelledigoverno. Ilsistemainformaticoèilsottoinsiemedelsistemainformativodedicatoallagestione automaticadelleinformazioniechefausodimaterialiditipoinformatico 1.2TREREALTÀCAMPIONEESCENARISIGNIFICATIVI 1.2.1LAREALTÀAZIENDALEESSENZIALE:ARTICOLI,ORDINI,CLIENTI,FATTURE 1.2.2LAREALTÀDELLEPRENOTAZIONIAEREE 1.2.3LAREALTÀDIUNABIBLIOTECA 1.3TERMINOLOGIAECONCETTIESSENSIALISULLEBASIDIDATI 1.3.2DATI,INFORMAZIONIECONOSCENZA Idatirappresentanodeifattidellarealtàinesame.Undatocostituisceinformazionesoloseè ingradodimodificarelaconoscenzadellarealtàdichiloriceve. Interminipiùesplicitii dati sonoindefinitivadellesequenzebinariesuuncertosupporto dimemoria,mentreleinformazionisonolaconoscenzasuifattidellarealtàchepossono essererappresentatidaidati STRUTTURADEIDATI Affinchéidatipossanocostituireinformazione(cioèavereunsignificato)devonoessere corredatidaunachiavediinterpretazione.inparticolaresicercadidareunastrutturaaidati cherendapossibileunalorocorrettainterpretazioneindipendentementedallorovolume. Unodeimodipiùsempliciepiùcomunièquellodistrutturareidatiinunaopiùtabelle ILCONCETTODIMODELLODEIDATI Inprimaapprossimazioneunmodellodeidatièunostrumentolinguisticoingradodi attribuireuna struttura aidati. Esistonotrecategoriedimodellideidati,corrispondentiatrelivellidecrescentidiastrazione suidati:
2 modelliconcettuali(osemantici):vengonoutilizzatenozionidilivellomoltoalto,cioè vicinoalmododipensaredell uomo.ilpiùnotoediffusoèilmodelloer(entity Relationship). modellilogici:vengonoutilizzatenozionidilivellointermedio.inparticolareviene utilizzatalanozionedirecord(registrazione).ilpiùnotoediffusoèilmodello relazionale. modellifisici:vengonoutilizzatenozionitipichedellivellodeifileedellememoriedi massa.piùchedimodellisiparladiorganizzazionifisichedeidati(odimetodidi accesso):sequenziale,sequenzialeconindice,tabellahash,ab + albero,ecc VINCOLIDIINTEGRITÀ Ingenereidatinonpossonoerre liberi,maperrappresentaredavverolarealtàinesame devonosottostareadeivincolidivarianaturachiamativincolidiintegrità.essisidividonoin: univocitàrispettoaunachiave restrizionesuldominiodiunattributo integritàreferenziale vincoliparticolari(quellichenonricadonodelleprecedenticategorie) 1.3.5SCHEMADEIDATIEDDL Unoschemadeidatièunadescrizionedellastrutturadeidatiedeivincolidiintegritàcheessi devonosoddisfre. Perdescrivereunoschemaognimodellodeidatimetteadisposizioneunlinguaggio classificatocomeddl(datadefinitionlanguage) OCCORRENZEDIBASEDIDATI.INTENSIONE/ESTENZIONE Unaoccorrenza(oistanza)dibasedidatiDèuninsiemedidatistrutturatosecondouno schemas,chevienedettointensionedid.inversamentesidicechedèunapossibile estensionedelloschemas. Inparticolarel intensionediuninsiemeditabelleè,letteralmente, ciòchesiintende con quelletabelle CONCETTODIBASEDIDATI Inprimaapprossimazionepotremmodefinireunabasedidaticomeunoggettoingradodi contenereinogniistanteunaparticolareestensionediunoschema(occorrenzadibasedi dati) Bisognaperòtenercontodidiverseesigenzepratichecomel accessoconcorrenteela sicurezzadeidati.
3 1.3.8MANIPOLAZIONEDEIDATIEDML Unmodellodeidatifornisceanchestrumentipermanipolareidati,oltreastrutturarlie vincolarli.permanipolazionediintendel applicazionedioperazionivoltea: estrarreinformazionedallabasedidati modificarelabasedidati Inquestosenso,unabasedidatinonvienepiùvistasemplicementecomeuncontenitore strutturatodeidati,macomeunsistemaingradodipermettereosservazionidelsuostatoedi modificarneilsuostato. Inpratica,piùcheuninsiemedioperazioni,vienespessomessoadisposizionedegliutenti dellabasedidatiundml(datamanipulationlanguage). UnDMLpuòessereunlinguaggiodausarsiautonomamenteoad immersione inun linguaggiodiprogrammazionetradizionale DMLPROCEDURALIENON PROCEDURALI(QUERYLANGUAGES) UnDMLvieneclassificatoproceduraleseperesprimeredelleinterrogazionisullabasedidati sideve,ingenerale,esprimereunaseriedicomandidaeseguirsisuccessivamenteper reperireidatirichiesti.incasocontrariovieneclassificatocomenon procedurale(oquery language) CONDIVISIONEDEIDATI,ACCESSOCONCORRENTEETRANSAZIONI Unanecessitàchesipresentaèquelladiprevederel accessoalsistemainformaticodapiù utenti,doveper utente siintende,nontantoononsolounapersonafisica,quantoun processocheaccedeaidatiinconcorrenzaconaltriprocessi. Lasoluzioneaquestiproblemiconsistenelchiederechelemodificheeleinterrogazioni soggetteadinterrogazioneconcorrentesianoeseguitecometransazioni. Unatransazioneèunasequenzadiazionidiunaprocedurachesiproponedimodificareod osservarelabasedidaticonlaproprietàdiatomicità:ovengonoeseguitedeltuttocome un unicaazioneelementareeindivisibile,ononvengonoeseguiteaffatto:eventualieffetti parzialidevonoquindiessereannullati SICUREZZADEIDATIEAUTORIZZAZIONI Siponeperognibasedidatiilproblemadiproteggereidati,assicurandolanecessaria sicurezzadeidatiattraversounsistemadiautorizzazioni. Ilproprietariohalanecessitàdi: riservareesclusivamentepersécertiusideidatie/odiunaloroparte autorizzareparticolariutentiadeffettuaredeterminatiusideidatiodiunaloroparte Inaltriterminihalanecessitàdidifendersidatretipidiusifraudolentideidati:
4 furtodiinformazioni manomissionedeidati distruzionedeidati Occorrequindicheesistanodeimeccanismiperladifesa,oltreaquellifornitidalsistema operativo.tipicamentesifaràusodiidentificazionedegliutenti,dipasswordeditecnichedi crittografia INTEGRITÀERIPRISTINODEIDATI Ènecessarioinoltreproteggersidamalfunzionamentihardwareosoftwarechepotrebbero fareassumereunostatoinconsistente,cioèunostatoincuiidatinonsonocoerentifraloro. Conl espressioneripristinodeidatisiintendequell attivitàmediantelaqualesiripristinauno stato integro oconsistentedellabasedidati DEFINIZIONEDIBASEDIDATI Unabasedidati(odatabase)èuncontenitoredidaticherispondealmenoaiseguenti requisiti: idatisonoorganizzatiinaccordoadunprecisoschemadiunmodellodeidati idatisonoutilizzabiliperdiverseapplicazioni,eventualmenteinconcorrenzafraloro, dautentiogruppidiutentidiversiinteressaticiascunoasottoinsiemideidatipresenti esisteunaintegrazionedeidati,inmododarendereminimalalororidondanza.non esistecioèunaincontrollataduplicazionedeidatidipendentedalnumeroedaltipo dellaapplicazioni esistonomeccanismiperlasicurezzadeidatichenegarantisconolariservatezzaeli proteggonodaaccessinonautorizzatifraudolentioaccidentali esistonomeccanismiperilripristinodeidatiodiloroinconsistenzeprovocateda guastihardwareosoftware SISTEMIDIGESTIONEDIBASIDIDATI(DBMS)ESOTTOSCHEMI IlDBMS(DataBaseManagementSystem)osistemadigestionedibasididatièuncomplesso dimodulisoftwarecherisolveiproblemipostidalrispettodeirequisitidellabasedidati. Essoconsentedi: definireloschemalogicodellabasedidati,atalepropositovienefornitoilddl(data DefinitionLanguage) accederee/omodificareidatidiunabasedidati,atalepropositovienefornitoildml (DataManipulationLanguage) definiresottoschemicheconsentonoaciascunprogrammatorediun applicazionedi limitarel attenzioneallapartedelloschemachelointeressa definirealcuniparametriqualitativiequantitatividellestrutturefisichedi memorizzazionedellabasedidati,atalescoposiusaunlinguaggiodettodmcl (DeviceMediaControlLanguage)oDSL(DeviceStorageLanguage)
5 1.3.15DIZIONARIODEIDATI Ildizionariodeidaticostituisceunaspeciedibasedidatisullabasedidati.Essocontienein particolaretutteleinformazionisulloschemachepossonoessererichiestedaldbmsatempo diesecuzioneperoperaresuidati.serveinoltreairesponsabilidelsiperladefinizione inizialedelloschemaedeisottoschemieperlaloromanutenzione MODODIOPERAREDIUNDBMS Ognirichiestadioperaresullabasedidati(attraversoilDML)sitraduceinunacomplessa seriedioperazioniabassolivelloperindividuareesattamenteidatirichiestiepergarantire unesitoautorizzato,corretto,edefficiente.
6 1.3.17INDIPENDENZALOGICAEFISICA Lastrutturaatrelivelli(esterno,logico,interno)serveagarantiredueimportantiproprietà perundbms: indipendenzalogica,cioèlapossibilitàdimodificareloschemalogicodiunabasedi datisenzadovermodificareiprogrammiapplicativinoninteressatiallamodifica(e viceversa) indipendenzafisica,cioèlapossibilitàdimodificarel organizzazionefisicadeidati senzadovermodificareiprogrammiapplicativi(eviceversa) CLASSIDIUTENZAEDBA AdunSIbasatosuiDBMSsirivolgonotipicamentequattroclassidiutenti: utentisemplici,sonoglioperatoricheusanoleapplicazioniinterattivecostruitedai programmatoridelleapplicazioni utentisofisticati,utenticheintendonoaccedereainformazionidigovernooriservate programmatoridelleapplicazioni,sonocolorocheusanoildmlpercostruire specificheapplicazioni l amministratoredellabasedidatiodba(databaseadministrator),persona(o gruppodipersone)chepartecipaallaprogettazionedelsistemainformaticoeche assolveaicompitifondamentaliperlamanutenzioneelagestionedelsi
7 2.ILMODELLOCONTETTUALEER Ilmodelloconcettualedeidatipiùutilizzatooggièsenz altroilmodelloentità associazionio ER(EntityRelationship). IlmodelloERsibasasull usodiduetipidiastrazioni:leentitàeleassociazioni(fraentità). 2.1ENTITÀETIPODIUN ENTITÀ Un entitàèunaqualsiasicosaconcretaoastrattadistinguibiledallealtre(es.sole,luna,tizio, Caio,odio,amore,ecc.) Ècompitospecificodelprogettistaconcettualeclassificaretutteleentitàdell universodel discorsoinbasealleproprietàchepresentano.cosìsoleelunasarannoclassificatecome esemplari(oistanze)diastro.questoprocessomentalevoltoaindividuarelesomiglianzedi diverseentitàastraendodallelorospecifichedifferenzeènotoappuntocomeclassificazione. ASTRO,PERSONA,SENTIMENTOsononomiditipidientità,anchesesiusasemplicementeil nomeentità. L introduzionediun entitàeinunoschemaconcettualestaasignificarechenellarealtàpuò esistereuninsiemedientitàdiqueltipo,indicatocomeestensionedie ATTRIBUTIECHIAVI Diognientitàilprogettistadeveindividuareleproprietàrilevanti. Siassumecheogniproprietàpossaessererappresentatadaunattributo,caratterizzatodaun nomeedauntipo.nelmodelloersiescludeperòesplicitamentelapossibilitàcheiltipodiun attributopossaessereiltipodiun entità. Vengonodefiniticomesempliciquegliattributiilcuitipovienerappresentatoconlunghezza fissa(integer,real,money,character,boolean,string,date). Avoltepuòesserecomodofareriferimentoaiseguentiattributistrutturati: attributicomposti,cioèaggregazionidialtriattributi(sempliciostrutturati) attributimultipli,cioèsequenzedilunghezzavariabiledisottoattributidellostesso tipo attributiditipounione,quandoiltipodiunattributopuòessereunoqualsiasitraun insiemefinitodipossibilità Ildominiodiunattributoèl insiemedeipossibilivalorichepuòassumerel attributo. Sipuòconsentirecheunattributosiaopzionaleinvececheobbligatorio:ilsuodominioviene idealmenteestesoconilvalorenullo.
8 Èutiledesignarealcuniattributicomecostanti(oreadonly)quandosivuolechenonpossano subireaggiornamentiunavoltachel entitàvienecreata.fraquestivisonovisonoancegli attributiderivati(dettianchecalcolatiovirtuali)ilcuivaloreèfornitodalcalcolodi un espressionecostruitaconaltriattributidell entità CHIAVEDIUN ENTITÀEDENTITÀDEBOLI Unachiave(oidentificatore)diun entitàèuninsiemediattributicheidentificano univocamenteun entitànelmondoconsiderato.ingeneresipretendechelachiavesianon ridondante,altrimentilachiavesidefiniscesuperchiave. Seesistonopiùchiavisiconvienedichiamarechiaveprimariaquelladecisadalprogettista concettuale. Seunachiavenonesistesidicechesitrattadiun entitàdebole(weakentity)altrimentisi parleràdientitàforte(strongentità) RAPPRESENTAZIONEGRAFICADIUN ENTITÀ NeidiagrammiERleentitàvengonorappresentateconiloronomiracchiusiall internodi rettangoliabordosingoloodirettangoliabordodoppiosesitrattadientitàdeboli. Gliattributi(edeventualmenteillorotipo)vengonotalvoltaracchiusientrocontorniellittici. Siconvieneinoltresisottolinearegliattributicheformanolachiaveprimariaediriportarneil tipo. Seperòloschemaècomplessoe/oleentitàhannomoltiattributisipreferisceriportarequesti ultimiinsedeseparata: entity ASTRO attributes Nome: STRING(20) Diametro: REAL DistanzaDallaTerra: REAL key Nome 2.1.4ATTRIBUTIDIUNAENTITÀEDIPENDENZEFUNZIONALI Nell individuazionedelleentitàenellasceltadegliattributièutileseguiredueprincipi:
9 ogniattributononchiavediuntipodientitàdevedipenderefunzionalmentedatutti gliattributidellachiave(enondaunapartediessi) perognitipodientitànonvisonoattributichedipendonofunzionalmentedaattributi nonchiave Ilrispettodiquestiduesemplicicriterigarantiscequasisempreunacorrettamodellazione dellarealtà. 2.2ASSOCIAZIONI 2.2.1ASSOCIAZIONIBINARIEFRAENTITÀ Un associazione(relationship)binariatradueentitàaebrappresentaunarelazione,insenso matematico,traunpossibileinsiemedientitàditipoaeunpossibileinsiemedientitàditipo B,cioèuninsiemedicoppie(a,b). Dopoaverintrodottoun associazionebinariartradueentitàaeb,lasideveclassificarein: associazioneditipouno a uno(1:1) associazioneditipouno a molti(1:n) associazioneditipomolti a molti(n:m) 2.2.2PARZIALITÀ/TOTALITÀDELLEASSOCIAZIONI Inunarelazionenonèdettochetuttiglielementidell insiemeasianoinrelazionecongli elementidell insiemeb.sidicealloracherèparzialerispettoada(altrimentisidiràtotale rispettoada). Inqualchecasosipossonoporredeilimitiprecisi,noticomevincolidicardinalità,sulnumero dielementidibchepossonoessereassociatiaunelementodia(oviceversa) ATTRIBUTIDELLEASSOCIAZIONI Ancheleassociazionipossonoaveredegliattributichedescrivonoqualcheproprietàdei legami.
10 Primadiintrodurreunattributoinun associazioneconvieneperòchiedersisel attributonon rappresentiinrealtàlachiavediun entità.intalcasosipasseràadassociazioninonbinarie RAPPRESENTAZIONIGRAFICHEDELLEASSOCIAZIONI Leassociazionibinarievengonoconvenzionalmentedisegnatecomerombicheriportanoil loronomeeconduedeisuoiverticicollegatialleentitàcoinvolte.eventualiattributivengono riportaticonlastessatecnicausataperleentità. Nonesisteungeneraleaccordosulmododirappresentaregraficamenteiltipoelaparzialità diunassociazione. Perindicarelaparzialitàsiusainveceuntrattino,semancailtrattinosiintendechela relazioneètotalerispettoaquellaentità.
11 2.2.5ASSOCIAZIONIRICORSIVE Visonodeicasiincuiledueentitàdiun associazionebinariacoincidono.questeassociazioni vengonochiamatericorsive ASSOCIAZIONINONBINARIE IlconcettodiassociazionenelmodelloERnonsilimitaalcasobinario.Ingeneraleleentità coinvoltepossonoesserenconn 2(associazionen arie). PerdeterminareiltipodiunarelazioneternariaRsuA,B,Csiprocedecomesegue: siimmaginiditener fissi unelementobdibeunocdic.selarealtàinesamepretendeche rimangaassociatoununicoelementoasuadiremocheillatoadellarelazionereditipouno altrimenticheèditipomolti. PerdecidereiltipodeglialtriduelatiBeCdellarelazionesiprocedeinmodoanalogo.
12 2.2.7ASSOCIAZIONIEGERARCHIEISA IlmodelloERnellasuaversioneestesa(ExtendedERoEER)comprendeanchestrumentia supportodiquelprocessodiastrazionenotocomegeneralizzazione.talistrumenti consentonodiclassificaregerarchicamenteitipidientità. Lostrumentopiùsempliceèl associazioneisasemplice(dall inglese IS A cioè èun ).Siusa quandosivuolemodellareilfattochenellarealtàuncertoinsiemedientitàrisultaessereun sottoinsiemediunaltro(gerarchiapersottoinsieme). Avoltec èlanecessitàdirappresentareilfattochediversitipidientitàconcorronoaformare untipodientitàpiùgenerale.questavienechiamataassociazioneisaripartita(gerarchiaper generalizzazione). 2.3DOMANDEERISPOSTESULLAPROGGETTAZIONECONCETTUALEER 2.4ESEMPIDIMODELLAZIONEER 2.4.1ILDIAGRAMMAERPERLAMICROREALTÀAZIENZDALE 2.4.2ILDIAGRAMMAERPERLAREALTÀDIUNACOMPAGNIAAEREA 2.4.3ILDIAGRAMMAERPERLAREALTÀDIUNABIBLIOTECA
13 2.5INTEGRAZIONEDISOTTOSCHEMI Quandosiaffrontaunarealtàcomplessa,suddivisibileintantepiùsemplici,puòessere convenienteaffrontareseparatamentelamodellazionedellesingolesottorealtàeintegrare poiisottoschemiottenuti. L integrazionedischeminonèsemplicementela fusione disottoschemi,maunloro adattamentoragionatovoltoaeliminareiconflittieleinconsistenzedivariogenere.
14 3.ILMODELLORELAZIONALE Lasecondaimportantefasedelprogettodiunsistemainformaticoèlaprogettazionelogica. Oggiilmodellologicodeidatipiùdiffusoèilmodellorelazionale.Allabasediquestomodello c èilconcettodi tabella. 3.1RELAZIONIESCHEMIRELAZIONALI 3.1.1RELAZIONIETUPLE Ilmodellorelazionaleprevedeununico,elementaremeccanismodistrutturazionedeidati costituitodalla relazione,intesainsensomatematico. Larelazionerappresentatainfiguraèl insiemediterne: R {(a,b,c ),(a,b,c ),(a,b1,c ),(a,b,c )} UnarelazioneRsuunasequenzadiinsiemi(Domini)D1,D2,,Dn(nonnecessariamente distinti)èunsottoinsiemedelloroprodottocartesiano: R D1 D2 Dn Ilnumeronèdettogradodellarelazione.GliinsiemiD1,D2,,Dnsonodettidominidella relazione.ciascunodiessicoincideconuninsiemedivaloridiuntipoatomico(caratteri, stringe,numeri,ecc.)ocomunquenonstrutturato. Adifferenzadellerelazionimatematiche,nelmodellorelazionaleadognidominiodiuna relazionevieneassociatounnome,dettoattributo(ocampo)dellarelazione,cheloidentifica univocamenterispettoaglialtriattributidellastessarelazione. DaunpuntodivistamatematicoglielementidiunarelazioneRsonodelleennuple(d1,d2,, dn)cond1 D1,d2 D2,d3 D3,meglionotecometuple.
15 Inunarelazionenonvipossonoesseretupleuguali(nonsonoammessiduplicati). Relazionietuplevengonochiamaterispettivamentetabelleerighe. R X Y Z a b c a b c a b c a b c Unabasedidatirelazionalenonèaltrocheuninsiemeditabellecomequellaprecedente CHIAVIDIUNARELAZIONE L unicapossibilitàoffertaalprogettistaèquelladistabilirecheuncertoinsiemedegli attributicostituisceunachiavecandidata(o chiave ). UnachiavecandidatadiunarelazioneRèuninsiemeK {a1,a2,,an}nonvuotodinomidi attributidirchegodedelleseguentidueproprietà: Univocità:dataunaqualsiasiestensionediK,cioèun assegnazionedivalori {v1,v2,,vn}agliattributidik,inogniistanteesistealmassimounatupladirchehatali valoriincorrispondenzadegliattributidik Non rindondanza:laproprietàdiunivocitàvienemenosesitoglieunoquasiasidegli attributidik Inaltreparole,gliattributidiunachiavecandidatasonotuttinecessariesufficientiper individuareunatupladiunarelazioner. Uninsiemediattributichesoddisfaallaproprietàdiunivocità(manonnecessariamentea quelladinon rindondanza)vienedettasuperchiave. IngeneralepossonoesisterepiùchiavicandidateperunrelazioneR.Fraquesteneviene sceltauna,solitamenteconilminornumerodiattributi,chevienedesignatacomechiave primariadir SCHEMIDIRELAZIONE,SCHEMIRELAZIONALIEBASIDIDATIRELAZIONALI L intensionediunarelazioneènotacomeschemadirelazioneedècostituitadalleseguenti informazioni: nomedellarelazione elencodegliattributiconillorotipo insiemedegliattributichecostituisconolachiaveprimaria Questeinformazionivengonospessofornitenelseguentemodo: <nomerelazione>(<attr1>[:tipo1],<attr2>[:tipo2],,<attrn>[:tipon]) conlaconvenzionedisottolinearegliattributichecostituisconolachiaveprimaria.
16 Sipossonooradefinireconprecisioneschemarelazionaleebasedidatirelazionale. Unoschemarelazionaleèuninsiemedischemidirelazione. Unabasedidatirelazionaleèuninsiemedirelazioni(variabilineltempo)lecuioccorrenze(o istanze)sonoestensionidiunoschemarelazionale. 3.2TRASFORMAZIONEDASCHEMAERASCHEMARELAZIONALE(ESTESO) 3.2.1TRASFORMAZIONEDELLEENTITÀEDELLEASSOCIAZIONIUNO A MOLTIEUNO A UNO Dinorma,adognientitàforteAsiassociaunarelazioneA chahaglistessiattributielastessa chiave.vipossonotuttaviaesseredegliulterioriattributidovutialfattoche,seesiste un associazioneuno a moltitraun entitàeeda,siapplicalaregoladiaggiungereada gli attributichiavedell entitàe,abitualmentechiamatichiaveesterna(foreignkey). Perquantoriguardaleentitàdeboliènecessariocheognunadiesse dipenda daunentità forte TRASFORMAZIONEDELLEASSOCIAZIONIMOLTI A MOLTI Leassociazionibinariemolti a moltiandrannorappresentateconappositerelazioniaventi comechiavelechiavidelledueentitàcoinvoltepiùglieventualiattributidell associazione.
17 3.2.3TRASFORMAZIONEDELLEASSOCIAZIONIISA PerquantoriguardaleassociazioniISA,visonoduesoluzionichesipossonoprenderein considerazione. NellaprimasirappresentaPconunarelazioneP distintachehalastessachiavedella relazionechevieneassociataadaegliattributiparticolari. Lasecondasoluzionepresentailvantaggiodirichiedereun unicarelazione,maoccorre riconoscereletuplecherappresentanoelementidip.atalescoposiproponediintrodurreun esplicitoattributobooleanoisp SCHEMIRELAZIONALIESTESIEVINCOLIDIINTEGRITÀREFERENZIALE Facendoriferimentoalruolosvoltodallechiaviesternesipuòproporreunaversionegrafica delloschemarelazionalecheverràchiamataschemarelazionaleesteso. Ognichiaveesternasitraducenellapresenzadiun associazioneuno a molti(ouno a unoin qualchecaso)traduerelazionicheverrannochiamaterispettivamenterelazioneprincipalee relazionecorrelata.leassociazionimolti a moltivengonoinvecerappresentatemedianteue associazioniuno a moltinelmodellorelazionaleesteso. LapresenzadiunachiaveesternaKeinunarelazioneRcorr,cioèdellachiavediun altra relazionermain,stainpraticaaindicarecheèpresenteun associazioneuno a molti(ouno auno)traletupledirmaineletupledircorr.
18 SidicechesussisteunvincolodiintegritàtraunarelazioneRcorr(relazionecorrelata)eduna relazionermain(relazioneprincipale),rispettoadunachiaveesternake,seesolose,perogni tupladircorrilvaloredellachiaveesterna(relativaarmain)èpresentecomechiaveprimariain unatupladirmain. Sipuòanchedirechelachiaveesternainunatupladiunarelazionecorrelataèunriferimento (un puntatore simbolico)adunatuplaesistentedellarelazioneprincipale. Insostanza,imporreilvincolodiintegritàreferenzialesignificapredisporredeicontrolli affinchésia: proibitoinserireunatuplainunarelazionecorrelataconunachiaveesterna inesistentenellacorrispondenterelazioneprincipale proibitomodificareunachiaveesternanellarelazionecorrelatasostituendolaconuna inesistentenellacorrispondenterelazioneprincipale proibitocancellareunatuplainunarelazioneprincipalelacuichiavecomparecome chiaveesternaintuplediunaopiùrelazionicorrelate proibitomodificarelachiaveprimariadiunatupladiunarelazioneprincipaleche comparecomechiaveesternainunaopiùrelazionicorrelate Iltentativodicompiereunaqualsiasidiquesteazionicomportailsollevamentodi un eccezioneilcuisignificatoèappunto violazionedell integritàreferenziale. 3.3ALGEBRARELAZIONALE(INTERROGAZIONIMEDIANTE) Ilmodellorelazionaleèstatointrodottopensandoadunamanipolazionedeidatimolto elegantedalpuntodivistamatematico. Sonostatipropostidueapprocci: approccioalgebrico,incuiilrisultatodiunainterrogazioneèunarelazioneottenuta comevalutazionediun espressionecostituitaconoperatoridiun algebrarelazionale approcciologico,incuiilrisultatodiunainterrogazionevienedescrittacomela relazionechesoddisfaunaformuladilinguaggiologicosullerelazionidellabasedi dati(approccionotocomecalcolorelazionale)
19 Idueapproccisisonodimostratiequivalentidalpuntodivistadellapotenzaespressiva:per ogniinterrogazionefattainunapproccioèpossibiletrovarneunaequivalentenell altro. Diseguitoèpresentatal algebrarelazionale OPERAZIONIPRIMITIVE Unionedirelazioni DetteRedSduerelazionicompatibili,l unionedirconsèlarelazioneottenutadall unione insiemisticadelleduerelazioni: R S {t t R t S} Differenzadirelazioni DetteReSduerelazionicompatibili,ladifferenzafraRedSèlarelazioneottenutadalla differenzainsiemisticadelleduerelazioni: R S {t t R t S} Siosservichel operazionedifferenzapotrebbeessereutilizzatapercostituirel intersezionedi duerelazioni:r S=R (R S) Prodottodirelazioni SianoA1,A2,,An1eB1,B2,,Bn2gliattributi(tuttidiversi)diduerelazioniqualsiasiRedS rispettivamentedim1edm2tuple.sidefinisceprodotto(oprodottocartesiano)traredsla relazioneconattributia1,a2,,an1,b1,b2,,bn2digradon1+n2costituitadallem1 m2 tupleottenute concatenando ognitupladirconognitupladis: R S {t t=rconcs r R s S} Vaprecisatoilconcettodiconcatenazionedituple:dateduetuple(x1,x2,,xn1)e(y1,y2,, yn2)laloroconcatenazioneèlatupla((x1,x2,,xn1,y1,y2,,yn2). Proiezioneiunarelazione Questaoperazioneconsentediselezionaresolodeterminatecolonnedaunatabella.Più precisamente,dataunarelazioneredunsottoinsiemea={a1,a2,,ak}deisuoiattributi,si definisceproiezionedirsualarelazionedigradokchesiottienedarignorandogliattributi (colonne)nonpresentiina. Laproiezionevieneabitualmentedenotatacon: ΠA1,A2, Ak(R) Restrizionediunarelazione L operazionedirestrizione(oselezione)consentediestrarredelletuple(cioèdellerighe)da unarelazionerinbaseaduncertocriteriop: σp(r)
20 IlcriterioPpuòessereespressocomecondizionesempliceocomposta(coniconnettivi and e or).unacondizionesempliceèdellaforma: A operatore_di_confronto B doveaebsononomidiattributidir,oppurecostantioespressioni; operatore_di_confronto èunodeglioperatori=,,>,,<,. Ridenominazionediunattributo Traleoperazioniprimitiveènecessarioconsiderareanchel operazionediridenominazionedi unattributo.lasintassisaràlaseguente: rename A as B in R chehal effettodirestituireunarelazioneidenticaadrconl attributoarinominatocomeb GIUNZIONIDIRELAZIONI Traleoperazioniderivate,quellecherivestonomaggioreutilitàpraticasonoquelledi giunzione(join)checonsentonodicostruireunarelazione,partendodaduerelazioni,sulla basediqualchecriterio. Equigiunzione(equijoin) L equigiunione(equijoin)diduerelazionireds,rispettoadunattributoadiredun attributobdis,èdefinitocomesegue: R A=BS σa=b(r S) VienefattocioèilprofottotraRedSesimantengonosoloquellerigheincuirisultanougualii dueattributiaeb. L equigiunzioneèuncasoparticolarediunaoperazionepiùgeneralechiamataθ joinincuiθè unoperatorediconfronto(<,>,=,ecc.)chevieneapplicatosuidueattributiaeb.asuavolta θ joinèuncasoparticolaredigiunzioneinterna(innerjoin),incuiilcriteriodiselezionedelle tupler Svienestabilitodaunaqualsiasicondizione.Siosservi,daquestopuntodivista,che ilprodottocartesianopuòesserevistocomeuncasoparticolaredigiunzioneinternaincuisi specificalacondizione true. Giunzionenaturale(naturaljoin) SianoRedSduerelazioniesifaccial ipotesichevisiaunsoloattributoaincomune.la giunzionenaturale(naturaljoin)trareds,puòesseredefinitacon: R S Π<tuttigliattributidiRedS>(R (renameaasa ins)) Inaltritermini:sirinominal attributocomuneinunadelleduerelazioni,sifal equijoin rispettoaidueattributiesieliminaunadellecolonnecherisultanouguali. Semi giunzione(semi join) Lasemi giunzione(semi join)diduerelazioniredsècomelagiunzionenaturale,conla differenzachesiproiettanosologliattributidir:
21 R S Π<gliattributidiR>(R S) InaltriterminisipuòdirechevengonorestituiteletuplediRchepartecipanoallagiunzione naturaledireds ASSOCIAZIONITRAENTITÀEALGEBRARELAZIONALE 3.3.4GIUNZIONIESTERNE(OUTER JOIN)EASSOCIAZIONIISA Legiunzioniesterne(outerjoin)sonogiunzioni,nonderivabilidalleoperazioniprimitive,che appaionocomedelleestensionidellagiunzionenaturale.tornanocomodoquandosivogliono uniretabelle preservando,nelrisultato,tutteleinformazionipresentisuunoosuentrambe letabelledipartenza. Siconsideranonormalmente3tipidigiunzioniesterne: L R leftouterjoin: si preservano letupledil L R rightouterjoin: si preservano letupledir L R fullouterjoin: si preservano sialetupledilchedir Legiunzioniesternetornanoutiliquandosivuolerispondereaparticolariinterrogazioniche rappresentanoassociazioniisa. 3.4DIPENDENZEFUNZIONALIEFORMENORMALI Unapproccioingenuoalmodellorelazionale,comequellodiaverepocherelazioni,portaad averedeglischemicherisultanoinefficientineiconfrontidellospaziooccupatoeche presentanospiacevoliinconvenientisulleoperazionidimodificadellabasedidati. Èconsuetudineriferirsiaquestasituazionedicendoche loschemanonènormalizzato.si osservi,tuttavia,cheseloschemaerè buono,leregoleditrasformazionedaschemaera schemarelazionaleportano automaticamente alladefinizionedischeminormalizzati ILFENOMENODELLEANOMALIE Gliinconvenientichesipossonoverificareinrelazioninonnormalizzatesonochiamati anomalie. Alcuneanomaliechesipossonopresentaresonoleseguenti: anomaliaininserimento anomaliaincancellazione anomaliainaggiornamento Leanomalieincancellazioneedaggiornamentosonounadirettaconseguenzadella ridondanzadialcunidati.
22 Èevidentecheall attopraticoènecessarioprogettareunabasedidatirelazionalechesia esentedaanomalie DIPENDENZEFUNZIONALI Lateoriadellebasididatirelazionalifaspessoriferimentoalconcettodidipendenza funzionale: SianoX {X1,X2,,Xk}eY {Y1,Y2,,Yn}dueinsiemidiattributidiunoschemadi relazioner.diremocheydipendefunzionalmentedax(ochexdeterminay)scrivendo: X1,X2,,Xk Y1,Y2,,Yn seesolose,perogniestensionedellarelazionernellarealtàconsiderata,ivaloridegli attributidixdeterminanounivocamenteivaloridegliattributidiy. Inaltritermini,sipuòdirecheseinogniestensionediR,due(opiù)tuplehannoglistessi valoridegliattributix1,x2,,xkalloralestessetupledevonoaverenecessariamenteanchegli stessivaloridiy1,y2,,yn.questaproprietàdeveesseregodutapertuttelepossibili estensionidirnellarelatàconsiderata. Siusadistingueretradipendenzaparzialeedipendenzacompleta(odipendenzapiena)diY dauninsiemediattributix.nelprimocasosignificacheydipendesolodaunsottoinsieme propriox dix.nelsecondosiintendechetalesottoinsiemenonesiste:sedaxsieliminaun qualsiasiattributoessonondeterminapiùunivocamentey FORMENORMALIENORMALIZZAZIONE Lerelazioninonnormalizzatehannoildifettodiessereespostealfenomenodelleanomalie, cioèdinonpossederecerteproprietàrispettoalledipendenzefunzionali.inaltreparole esistonodeglischemidirelazionechenonrisultanoinopportunaforma normale. Lostandard minimo prevedechelerelazionisiamo(almeno)interzaformanormale. Laprimaformanormale(1NF)èquellaincuigliattributisonoditiposemplice. LoschemadirelazioneRèinsecondaformanormale(2NF)quando: Rèinprimaformanormale(1NF) perognipossibilechiavecandidatadirnonesistonoattributinonchiaveche dipendonoparzialmentedallachiave LoschemadirelazioneRèinterzaformanormale(3NF)quando: Rèinsecondaformanormale(2NF) perognipossibilechiavecandidatadirnonesistonoattributinonchiaveche dipendonotransitivamentedallachiave,cioèattraversounachiave intermedia L attivitàchesicompieperarrivareadunoschemainformanormalesichiama normalizzazionedelloschema.essapuòesserecondottamanualmenteoconl aiutodi procedureautomatiche.
23 4.FONDAMENTIDISQL Ilgrandesuccessodelmodellorelazionalesidevesoprattuttoallapossibilitàdiesprimerele interrogazioniinmodonon procedurale.unodeiprimidiquestilinguaggièstatocertamente SQL(StructuredQueryLanguage). SQLnonèsolounlinguaggiodiinterrogazione,maunveroepropriolinguaggioperbasidi dati:sipuòdefinireloschema,delleviste(qualcosadisimileaisottoschemi),alterarelabase didati,definireleautorizzazioni,ecc.. 4.1UNO,CENTO,(DIECIMILA?)SQL Inrealtànonesiste unsql perchéogniproduttoredidbmsproponeunpropriodialetto SQL.QuestosaràpiùomenorispettosodeglistandardANSIchevengonoperiodicamente aggiornatisottolaspintadicontinuenuoveesigenze. MoltidialetticommercialidiSQLsidiscostanosempredipiùdainuovistandardchevengono proposti,accettandolisoloinparteeaggiungendodellepropriefunzionalità.lapartein comunedituttiidialettisqlcoincideingranparteconsql/ SQLDIRETTO:UNABREVEINTRODUZIONE Sonostateprevistediversemodalitàd uso(o bindingstyles )sisql.lemodalitàpiù flessibiliprevedonochesqlvengausato( incorporato )all internodialtrilinguaggidi programmazionediusogenerale. TuttaviaquellapiùnotaèchiamataSQLdiretto(directSQL)eprevedechel utentefornisca interattivamenteun istruzionesqlallavoltaaduninterpretechelaesegueerispondecon opportunevisualizzazioniomessaggi. AgrandilineeleistruzioniSQLsipossonodividerenelleseguenticategorie: istruzioniperladefinizioneolamodificadelloschemarelazionale istruzionidiinterrogazionedellabasedidati(querylanguage stretto ) comandiperlamodificadellabasedidati altricomandi(sicurezza,concorrenza,ecc.) InSQLleistruzionipossonoserviresiaadichiararequalcosa(DDL)siaainterrogareo modificarelabasedati(dml). OccorreinnanzituttoprecisarechenellaterminologiaSQLlerelazionisichiamanotabelle,le tuplesichiamanorigheegliattributisichiamanocolonne. Sidistinguetratabelledibase(lenormalirelazioni,memorizzaterigaperrigasudiscoo altro)eviste(viewedtables)chesonodelletabellevirtualiincuigliattributisonoottenuti sullabasediattributiditabelledibaseodialtreviste.
24 4.3LADICHIARAZIONEDISCHEMIEDIVINCOLIDIINTEGRITÀ Comandidicreazione create table peraggiungereunoschemadirelazione,convincolidiintegrità suchiaviprimarie,chiavicandidateechiaviesterne,nonchéaltri vincoliparticolariall internodellatabella create assertion perdefinireunvincolodiintegritàchecoinvolgepiùtabelle create view perdefinireunavista create domain perdefinireundominio(comesottoinsiemediuntipoesistente) Comandidimodifica/cancellazionedelloschema alter table drop table drop view drop domain peraggiungere/toglierecolonnedaunatabellabase percancellareunatabellabaseeilsuoschema percancellareunavista percancellareundominio 4.3.1ITIPIDISQLELEESPRESSIONI CHARACTER CHARACTER(n) VARCHAR(n) Stringhedicaratteri equivalenteachar(1) stringhedicaratterelungheesattamenten stringhedicaratteridilunghezzavariabiletra1edn Stringhedibit BIT(n) BIT VARYING(n) stringhedibitlungheesattamenten stringhedibitdilunghezzavariabiletra1edn Tipinumericiesatti INTEGER SMALLINT NUMERIC(p,q) NUMERIC(p) DECIMAL(p,q) DECIMAL(p) intero(laprecisioneè implementationdefined ) interopiccolo(laprecisioneè implementationdefined ) numerodipcifredecimalidicuiqdopoilpunto equivalenteanumeric(p,0) numerodialmenopcifredecimalidicuiqdopoilpunto equivalenteadecimal(p,0) Tipinumericiapprossimati FLOAT(p) FLOAT REAL DUBLE PRECISION invirgolamobileconlaprecisionedialmenopcifrebinarie equivalenteafloat(p1)conp1 implementationdefined equivalenteafloat(p2)conp2 implementationdefined equivalenteafloat(p3)conp3 implementationdefined Dateeore(consemplificazioni) DATE TIME TIMESTAMP data ora data+ora
25 4.3.2CONDIZIONIEILVALORENULL Leespressionibooleanesononaturalmentepermesse.Tuttavia,acausadell assenzadeltipo BOOLEAN,vengonoclassificatenelgergoSQLcome condizioni o,piùprecisamente, espressionicondizionali. confrontomedianteunoperatorerelazionale: operando1 oprel1 opreando2 doveoprelèunodeiseiclassicioperatoridiconfronto:<,>,=,<>,<=,>=ounodegli operatorispecialicomelikeealtri predicatodiappartenenzaadunintervallo: operando between operando1 and operando2 deltuttoequivalentea: operando >= operando1 and operando <= operando2 predicatodiappartenenza(ononappartenenza)aduninsieme: operando [not] in ((elenco_valori query_colonna)) dove query_colonna èunatabellaottenutacomerisultatodiuninterrogazione cherestituisceun unicacolonna predicatoditabellavuota(ononvuota): [not] exists (tabella) dovetabellaèsolitamenteilrisultatodiunainterrogazioneconcomandoselect sipuòinoltreutilizzareilpredicato: espressione is [not] null cheèsoddisfatto(ononsoddisfatto)quando espressione vale null ( valore nullo ) LecondizionipossonoessereutilizzateinSQL/92perdisporredelleespressionicondizionali. Lasintassigeneraleèlaseguente: case { when condizione then espressione } else espressione end Siosservichesisfruttal ipotesichelecondizionivenganotestateesattamentenell ordinein cuisonoelencatefinoatrovarequellasoddisfattaofinoaraggiungereelse LACREAZIONEDIDOMINI Esistelapossibilitàdiassegnareunnomeadundominioconilcomando: create domain nome_dominio [as] tipo [check (condizione)].incuisiassumecheivaloridel nome_dominio sianotuttivaloridel tipo specificato chesoddisfanola condizione.nellacondizionesiusalaparolariservata value per riferirsialgenericovalorescalareinquestione.
26 4.3.4ILCOMANDOCREATETABLE Ilcomandodicreazionetabellapermettedicreareunatabellabasevuotaconunoschemadi relazioneealcunitipidivincolidiintegrità. create table tabella-base( colonna (tipo dominio) [not null] {,colonna (tipo dominio) [not null]} {,vincolo} ) Unvincolopuòessereunodeiseguenti: primary key (lista-colonne) perdichiararelachiaveprimaria unique (lista-colonne) perdichiarareunachiavecandidata foreign key (lista-colonne) perdichiarareunachiaveesterna references tabella-base check (condizione) perdichiarareunvincolointernoallatabella 4.3.5LADEFINIZIONEDIVINCOLIPARTICOLATI(ASSERZIONI) Quandosivoglionospecificaredeivincolidiintegritàparticolaridicomplessitàarbitrariache coinvolgonolerighedipiùtabelleochenonpossonoessereespressimedianteglistrumenti giàdescritti,sipuòricorrerealcomando: create assertion nome-vincolo check (condizione) Lacondizionerichiedel usodiuncomando select piùomenocomplessosulletabelle coinvolte.il nome-vincolo servesiacomemessaggiodiriferimentoincasodiviolazione siaperpoterlorimuoveresuccessivamente COMANDIDIMODIFICAEDICANCELLAZIONEDELLOSCHEMA Unavoltacreatounoschemadirelazioneèpossibilemodificarlosuccessivamenteanchecon datigiàcaricatinellabasedidatimedianteilcomandoalter table. aggiungereunacolonna: alter table tabella-base add nome-colonna (tipo dominio) rimuovereunacolonna: alter table tabella-base drop nome-colonna cancellaretuttalatabella: drop table tabella-base rimuovereun asserzione: drop assertion nome-vincolo 4.3.7LACREAZIONEDIVISTE
27 UnavistainSQLèunatabelladefinitainfunzioneditabelledibaseodialtreviste.Idatinon sonoquindieffettivamentememorizzati,mapiuttostoottenutidalletabellebasemedianteun processodi mapping. Ingenerelasintassiè: create view tabella-vista as query dove query èun interrogazionefattaconselect. Percancellareunavistapossiamoricorrerealcomando: drop view tabella-vista 4.4INTERROGAZIONIINSQL:L ISTRUZIONESELECT 4.4.1LAFORMABASEESUAINTERPRETAZIONENELL ALGEBRARELAZIONALE Leinterrogazionipiùfrequentiassumonolaseguenteformabase: select [distinct] espr 1,espr 2,esp 3 from tab 1,tab 2,...,tab n [where condizione] Note: senonsispecificalaparola distinct,larelazionerichiestapotràconteneredelle righeduplicate selaclausola where nonèpresentenonvienefattaalcunarestrizione nellaclausola select èpossibileusareilsimbolo*perspecificare tuttigli attributi,cioèpereliminarel operazionediproiezione.èanchepossibilespecificare l insiemedituttigliattributidiunatabella tab conlanotazione tab.* icasidiomonimiadiattributipossonoessererisolticonlanotazionepuntata (qualificazionedegliattributi): nome_relaz.nome_attributo 4.4.2ESEMPIELEMENTARI(SUUNASOLATABELLA) 4.4.3PARAMETRIZZAZIONEDELLEINTERROGAZIONI InalcunidialettidiSQLèpossibileparametrizzareun interrogazionefacendoprecederela stessadalcomando parameters (altridialettiprevedonoaquestoscopolostrumento delleprocedure). parameters par 1,par 2 select espr 1,espr 2,esp 3 from tab 1,tab 2,...,tab n where espr 1 > par 1 and espr 2 < par 2
28 4.4.4PATTERNMATCHINGSUSTRINGHE:L OPERATORELIKE Unapossibilitàmoltoutileèquelladelconfrontotrastringheper patternmatching. espressione like pattern cheèsoddisfattose espressione èunastringachesiconformaal pattern (o modello)specificato. Inunpatternsispecificanodeicaratteri jolly chehannoloscopodirappresentare particolaricategoriedisottostringhe. % (indicaunaqualsiasistringa) _ (indicaunqualsiasicarattere) 4.4.5INTERROGAZIONISUPIÙTABELLE(MEDIANTEGIUNZIONI) Sipuòfarusodipiùtabellesfruttandoleassociazionifradiesseimplicitamente rappresentateconlatecnicadellechiaviesterne. select tab 1.attrib 1,tab 2.attrib 2,tab 2.attrib 3 from tab 1,tab 2,...,tab n where tab 1.attrib 1 = tab 2.attrib OPZIONIDIORDINAMENTO SQLmetteadisposizioneunacomodaclausolaaggiuntivacheassumelaseguentesintassi: order by attrib 1 [asc desc], attrib 2 [asc desc], attrib n [asc desc] 4.4.7FUNZIONIDIAGGREGAZIONE Visonocontestipraticiincuil informazionerichiestaèditiposintetico(conteggi,minimo, massimo,media,ecc.).atalescoposqlmetteadisposizionedellefunzionidiaggregazione chesiapplicanoadunacolonnadiunatabella. Lasintassiprevistaè: OpAggreg ([distinct]attrib) dove OpAggreg puòessere: count:numerodeglielementi min:valoreminimo max:valoremassimo sum:somma avg:mediaaritmetica Lafunzione count conteggiaancheeventualicampiconvalore null.questinonvengono invecepresiinconsiderazionedatullelealtre.
29 4.4.8IRAGGRUPPAMENTI:LACLAUSOLAGROUPBY Lefunzionidiaggregazionetrovanoapplicazionesoprattuttoincombinazioneconl usodella clausoladiraggruppamentochesipuòinserire(dopolaclausola where,sepresente): group by attrib 1,attrib 2,,attrib n [having condizione-gruppo] Intalcasolerighechesiottengonodopoilprodottodelletabellespecificatenellaclausola from elarestrizioneimpostadall eventualeclausola where,vengono raggruppate (partizionate)secondoilseguentecriterio: duerighestannonellostessogrupposeesolesehannoglistessivaloridegliattributi: attrib 1,attrib 2,,attrib n L eventualeclausola having haloscopodiescludereigruppichenonsoddisfanounacerta condizione-gruppo. Datocheconlaclausola group by ilrisultatoèuninsiemedigruppidirighe,nonsipuò specificarenellaclausola select unaqualsiasilistadiattributidaproiettare,masolo: attributichecompaiononellalista group by chiamateallefunzionidiaggregazionesuglialtriattributi count(*) cioèilnumerodirighechevisononelgruppo Questivincolidevonoessererispettatianchedallaclausola having ANNIDAMENTIDISELECT(SOTTO INTERROGAZIONI) Esistelapossibilitàdiannidarefralorole select,cioèdiintrodurredellesottointerrogazioni(subqueries). Essepossonoinfatticomparire,concertivincoli: comeattributinellaclausola select comeoperandoinun operazionescalare(es.aritmetica,diconfronto)
30 comeargomentichedefinisconouninsieme,nelleclausole where e having,dove uninsiemeèrappresentatodaivaloridiunacolonna comeargomentodelpredicato exists RIDENOMINAZIONEDITABELLE,USODIVARIABILIESELF JOIN Sipuòsfruttarelapossibilitàdicambiarenome(ridenominare)unatabellanellaclausola from comeadunmodoperintrodurrevariabililogicheditipotupla. select X.attrib 1, Y.attrib 1 from tab 1 as X, tab 1 as Y where X.attrib 1 = Y.attrib 1 Inquestocasovienefattaunagiunzionefra tab 1 esestessa(self join)rispettoa attrib L USODIOUTERJOIN(GIUNZIONIESTERNE) Traivaritipidigiunzioneprevisti(giunzionenaturale,equijoin,oaltritipidigiunzione interna)visonolegiunzioniesterne. select espr 1, espr 2 from tab 1 (left right full) outer join tab 2 on cond L effettodiuna left outer join (giunzioneinternasinistra)traduerelazioniaeb (l ordineèimportante)disqlsuunacertacondizione cond èl unionedidueinsiemidi righe: lerighecherisultanodallagiunzioneinternatraaebsullacondizione cond lerighediaesclusedallagiunzione,esteseconvalorinulliperognicampodib 4.5COMANDIPERLAMODIFICADELLABASEDIDATI OgniSQLprevedeuncomandoperciascunodeitretipidimodificachesipossonoeffettuare adunatabelladiunabasedidatirelazionale:inserimentodirighe,aggiornamentodiattributi dirighe,cancellazionedirighe. Perl inserimentovienemessoadisposizioneilcomando: insert into tabella [(elenco-colonne)] sorgente doveelenco colonne,sepresente,siriferisceacolonnedellatabellaspecificata.semanca,si intendechesiassumel elencodituttelecolonnedellatabellanell ordineincuisonostate dichiarate. Nelcasopiùsemplicelasorgenteassumelaforma: values (elenco-espressioni) chehal effettodiinserireunasingolariga.l elenco-espressioni (scalari)deveaverela stessalunghezzadell elenco-colonne eiltipodiogniespressionedeveessere
31 compatibileconiltipodiappartenenzadellacorrispondentecolonna.eventualicampiassenti vengonoinizializzaticon null,oconivalorididefault. Alsolito,l inserimentopuòfalliresesitentadiviolareunodeivincolidiintegritàimpostisulla tabella. L aggiornamentodelletabellepuòavvenireconuncomandochiamato searchedupdate : update tabella set colonna = espressione-scalare {, colonna = espressione-scalare} [where condizione] Lasemanticaèlaseguente:inognirigadella tabella chesoddisfala condizione specificata(eintuttelerighesela condizione vieneomessa)sostituisciognicampo colonna specificatoconlacorrispondente espressione-scalare postaadestradel simbolo=. Nelleespressionisipuòfareriferimentoaivaloridegliattributidellarigacorrente. Lacancellazionedirighedaunatabellaavvieneconuncomandochiamato searcheddelete : delete tabella [where condizione] Siintendechevengonocancellatetuttelerighedella tabella chesoddisfanola condizione specificata(etuttelerighesequestaèomessa). Tutteleoperazionidimodificasullabasedidatipossonoportareallaviolazionedivincolidi integritàequindiessererespinte. SullabasediquestaconsiderazionealcunidialettiSQLprevedonolapossibilitàdidefiniredei trigger,cioèprocedurechevengonoautomaticamenteattivatedopoun operazionedi modificaperintraprenderedelleazionichehannoloscopodimantenereconsistentelabase didati. 4.6PROCEDUREPERMANENTIETRIGGER SQLèstatoconcepitoconl ideadipoteressereutilizzatoinalmenoduemodi:direttoo embedded cioèincorporatoinlinguaggidiprogrammazione.questosièresonecessarioper duemotivi: alcuneinterrogazioninonpossonoesseresvolteinsqldiretto esistelanecessitàdiinterfacciarel ambientechegestiscelabasedidaticonaltri ambienti Loschemadiunabasedidatinonèquindicostituitosolodaschemirelazionalievincolidi integritàparticolari,maanchedaprocedureefunzioniraccolteinmodulidiprogrammazione chefannoparteintegrantedelloschemadellabasedidati. IsottoprogrammicontenutineimodulidiunoschemaSQLsichiamanoprocedure permanenti.
32 Perlalorodefinizionediusalasintassi: create procedure nome-procedura ((in out) :par 1 tipo-parametro, (in out) :par 2 tipo-parametro, (in out) :par n tipo-parametro); declare variable nome-variabile 1 tipo-variabile; declare variable nome-variabile 2 tipo-variabile; begin istruzioni-sql end Perservirsidellaprocedura: call nome-procedura (par 1,par 2,,par n ) Assiemealleprocedurepermanenti,moltidialettiSQLpermettonolapossibilitàdiassociare deitriggeradunatabella.lasintassipercrearlièlaseguente: create trigger nome-trigger for nome-tabella (before after)(insert update delete) begin istruzioni-sql end Untriggerverràinvocatoprima(before)odopo(after)ognioperazionedimodificadel tipospecificatosullatabella nome-tabella. Il nome-trigger servesoloperpoterlorimuovereomodificaresuccessivamente. Ingenereèbeneattenersiallaregoladifareseguireaitriggerdellecosemoltobrevipernon rallentaretroppol operazionedimodifica. Inoltre,nelcorpoèpossibilefareriferimentoaivaloridiuncampo c precedentee successivoallamodificacondellenotazionideltipo: old.c e new.c 4.7LAPROGRAMMAZIONECONICURSORI Tuttiicomandiprecedentementevistisonoditipo setoriented,cioèleoperazioni,sia rispettoaidaticheairisultatisiriferisconoainsiemidirighe. Innessunadiesseperònonesistonoiconcettidi rigacorrente edi cursore usatonei linguaggidimanipolazione recordoriented. Pervenireincontroall esigenzadiprendereinconsiderazionequestapossibilità,sqlha messoadisposizioneparticolaricomandiriservati,cioèchenonpossonoessereinvocati quandosièinmodalitàdiretta. Talicomandifannoriferimentoalconcettodicursoreesiripromettonodifarvedereletabelle comedeicontenitoriattraversabilimediantecursori.
33 UncursoreinSQLèrappresentatodaunpuntatore(oindice)adunarigadiunatabella, chiamatarigacorrente.sidiceanchecheuncursoreèposizionatosullarigarsepuntaalla rigar. L ordinedellerighedeveritenersicasualeamenochelatabellanonsiailrisultatodiuna select conlaclausola order by. LepossibilioperazionichefannoriferimentoaicursoriSQLsonoiseguenti: declare cursor open fetch update posizionata delete posizionata close dichiarauncursoreperunatabella apreuncursore avanzailcursoreecaricaicampicorrentiinvariabili aggiornaicampidellarigacorrente cancellalarigacorrente chiudeilcursore Uncursoredeveprimaesseredichiarato: declare nome-cursore cursor for tabella conilseguentesignificato: nome-cursore èuncursoreabilitatoallavisitadella tabella specificata.sipossonoaprirediversicursorisuunastessatabella. Occorrequindi aprirlo con: open nome-cursore Aquestopuntoilcursoresitrova prima dellaprimariga.perposizionarlosullaprimarigao comunquesullarigasuccessivaaquellacorrente,siusailcomando: fetch nome-cursore into :var 1, :var 2,, :var n cheanchel effettodiassegnareallevariabilispecificateicalorideicampidellarigacorrente. SQLinponechelevariabilidiinterfacciamentoconillinguaggioospitesianoprecedutedai duepunti: :identificatore echesianodichiarateinunaappositasezione.
34 Èpossibileaggiornareunoopiùcampidellarigacorrentemedianteilcomandodi aggiornamentoposizionato( positionedupdate ),unavariantedelcomando update: update tabella set colonna = espressione-scalare {, colonna = espressione-scalare} current of nome-cursore Analogamenteèpossibilecancellarelarigacorrentecon: delete from tabella curren of nome-cursore Infineilcursoredeveessere chiuso con: Lavisualizzazionepotrebbeesserefattaattraversounachiamataesterna,cioèscrittainun linguaggiodiprogrammazionediversodasql. InSQL/92siprevedelapossibilitàdimuovereliberamenteilcursoredichiarando scroll cursor (invecedi cursor). Ilcomando fetch puòalloraassumerelaseguente: fetch nome-selezione from cursore into elenco-variabili dove modo-selezione puòessereunadelleseguenti: next muoveilcursoresullarigasuccessivaaquellacorrente prior muoveilcursoresullarigaprecedenteaquellacorrente first muoveilcursoresullaprimariga last muoveilcursoresull ultimariga absolute n muoveilcursoresull n esimariga relative n muoveilcursore n righedopoquellacorrente(oprimase n <0) Siosserviinfineche,sesiapportanodellemodificheallatabella,glieffettisuicursoriaperti possonoesserepocochiarioindesiderati.inognicasoèbeneattenersi,perquantopossibile, allaregoladinonmodificareunatabellaquandolasistaattraversandoconunoopiùcursori.
35 5.MIGLIORAREL EFFICIENZA:GLIINDICI 5.1METODIDIACCESSOEOTTIMIZZAZIONE OgniDBMSeffettuapreliminarmenteunprocessodiottimizzazioneeditraduzioneinun codicedipiùbassolivello,dettopianod accesso.inultimaistanza,l interrogazioneviene infattitradottainunaseriediaccessiafilerelativitramiteprimitivedelsistemaoperativo. L ottimizzatoresibasasulleseguentiinformazioni: formadell interrogazione statistichesulletabellecoinvoltenell interrogazione metodid accessopermessiaciascunatabellacoinvoltanell interrogazione L AmministratoredellaBasediDatipuòinterveniresuimetodid accessoperrendere accettabiliitempidicerteinterrogazioni PRINCIPALIMETODID ACCESSO Inlineadimassimaimetodid accessoprevistidaidbmsrientranoinunadiquestetre categorie: accessosequenziale,sibasasullapossibilitàdiscandiresequenzialmentelerighedella tabella accessoconindice,sibasasull ideadiusareunastrutturaausiliariachefacciadaindice accessohash,sibasasull ideadiricavarelaposizionedellarigacontenentelachiavek daricercareattraversouncalcolosuibitchelacompongono Imetodid accessovengonoconfrontatirispettoalcasomedioealcasopessimoperiseguenti tipidiinterrogazioni: ricercaindividuale,cioèdiunparticolarevaloredellachiavediricerca ricercaperintervallo,cioèdivaloridellachiavecompresitraduelimiti elencoordinato,cioèsidesideraprodurreunelencodirighediunatabellaordinate secondol ordinediunacertachiavediricerca 5.1.2OTTIMIZZAZIONEDELLEINTERROGAZIONI L operazionefondamentaleepiùcritica,dalpuntodivistadell efficienza,èquelladi giunzione. Gliottimizzatoricercanodi: anticipareprimapossibileleoperazionidiselezione eliminareprimapossibilelecolonnenonnecessarie sostituire,sepossibile,unagiunzioneconunasemi giunzione
SQL (STRUCTURED QUERY LANGUAGE)
SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language DDL Obiettivo: Definire la struttura
DettagliSQL (STRUCTURED QUERY LANGUAGE)
SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language DDL Obiettivo: Definire la struttura
DettagliSQL. Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM 1986 1992: SQL ISO 9075:1992 SQL:1999 SQL:2003
SQL Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM 1986 1992: SQL ISO 9075:1992 SQL:1999 SQL:2003 SQL Il linguaggio SQL è stato originariamente dichiarativo, diventando nel tempo sempre
DettagliStoria. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia:
Corso di Basi di Dati Spaziali Linguaggi: SQL Angelo Montanari Donatella Gubiani Storia Storia: 1974: prima proposta SEQUEL 1981: prime implementazioni 1983: standard di fatto 1986, 1989, 1992 e 1999:
DettagliOR true null false true true true true null true null null false true null false NOT
Il linguaggio SQL è un linguaggio standard per la definizione, manipolazione e interrogazione delle basi di dati relazionali ed ha le seguenti caratteristiche: è dichiarativo; opera su multiset di tuple,
DettagliSQL Sintassi Dei Comandi
SQL Sintassi Dei Comandi Di Roberto Aloi http://prof3ta.homeunix.org prof3ta@email.it Questo fascicolo è stato realizzato esclusivamente a fini divulgativi e per la libera consultazione. E' concessa la
DettagliPROGRAMMA DI CLASSE 5AI
Istituto di Istruzione Superiore Euganeo Istituto tecnico del settore tecnologico Istituto professionale del settore servizi socio-sanitari Istituto professionale del settore industria e artigianato PROGRAMMA
Dettagli----------------------------------------------------------------------------
APPUNTI DI SQL Gli appunti qui forniti vogliono essere un riferimento scritto di alcuni degli argomenti trattati a lezione per gli studenti a cui vengono messi a disposizione. Non viene fornita alcuna
DettagliIl linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.
(Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System
DettagliDUE GRUPPI DI COMANDI
LEZIONE16 SQL DDL PAG. 1 / 9 PROF. ANDREA ZOCCHEDDU LEZIONE16 SQL DDL LINGUAGGIO SQL DATA DESCRIPTION LANGUAGE DUE GRUPPI DI COMANDI I comandi del linguaggio SQL sono divisi in due grandi gruppi che formano
DettagliSQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE
SQL e ACCESS Prof. Salvatore Multazzu (salvatoremultazzu@tiscali.it) Applicazioni Informatiche nella comunicazione Modello relazionale Entità Record o Ennuple Attributi o Campi Tipi Chiavi Primarie (PK)
DettagliIL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI
IL LINGUAGGIO SQL Il linguaggio SQL ( Structured Query Languages) è un linguaggio non procedurale che è diventato uno standard tra i linguaggi per la gestione dei database relazionali. Il linguaggio procedurale
DettagliDefinizione di domini
Definizione di domini Come nei linguaggi ad alto livello (es. C) è possibile definire nuovi domini (tipi di dati) a partire da quelli predefiniti, anche se il costruttore è più limitato. create domain
DettagliDocumentazione SQL. Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema}
Documentazione SQL Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema} Definizione tabella Definizione dominio Specifica di valori
DettagliSQL -DDL. FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza)
26/03/2013 SQL SQL -DDL Esercizio 4.3 Dare le definizioni SQL delle tre tabelle FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza) rappresentando
DettagliBasi di Dati. Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio. Corso di Laurea in Informatica. a.a. 2010-2011
Corso di Laurea in Informatica Basi di Dati a.a. 2010-2011 Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio PROGETTAZIONE FISICA SQL-DDL OBIETTIVO: Rappresentare i dati della realtà di interesse
DettagliSISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini
SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA 3. Panoramica su SQL Prof. Mauro Giacomini Sommario Introduzione Istruzione SELECT Tipi di Join Subquery Comandi DML Creazione delle tabelle Introduzione
DettagliLinguaggio SQL: fondamenti D B M G. Gestione delle tabelle
Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 2007 Politecnico di Torino 1 Creazione
DettagliAzioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati
Azioni Select e join non consentono di modificare il contenuto del DB Azioni desiderate Inserzione di nuovi dati Aggiornamento di dati Cancellazione di dati Aggiunta di un record insert into utenti(nome,tel,codice_u)
DettagliGestione delle tabelle
Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 Creazione di una tabella (1/3) Si utilizza
DettagliEsercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:
Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Si consiglia di creare il data base, inserire i dati nelle tabelle, provare
DettagliMAX, SUM, AVG, COUNT)
INTRODUZIONE A SQL Definizione di tabelle e domini Alcuni vincoli di integrità Struttura base SELECT FROM WHERE Funzioni di aggregazione (MIN, MAX, SUM, AVG, COUNT) Query da più tabelle (FROM R1, Rk) Join
DettagliSQL: definizione schema
Si Clienti(codice,nome,indirizzo,p_iva) scriva il SQL che definisce il seguente schema relazionale Prodotti(codice,nome,descrizione,prezzo) SQL: definizione schema Fatture(codice,cliente,data) RigheFattura(codice,fattura,prodotto,quantità,prezzo)
DettagliSQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:
SQL SQL (pronunciato anche come l inglese sequel: acronimo di Structured Query Language (linguaggio di interrogazione strutturato Linguaggio completo che presenta anche proprietà di: DDL (Data Definition
DettagliBasi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL
Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,
DettagliBasi di Dati Relazionali
Corso di Laurea in Informatica Basi di Dati Relazionali a.a. 2009-2010 Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio Coadiutore: Dott.ssa D. Nicotera PROGETTAZIONE FISICA SQL-DDL OBIETTIVO: Rappresentare
Dettagli********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date;
CREAZIONE STRUTTURA DI UNA TABELLA by Marinsalta Fausto CREATE TABLE Personale Matricola char(5), Cognome char(30), Nome char(20), Codfis char(16) not null, Assunzione date, Filiale smallint, Funzione
DettagliSQL: Concetti Base -Prima Parte-
SQL: Concetti Base -Prima Parte- Atzeni, Ceri, Paraboschi, Torlone Basi Di Dati: Modelli e Linguaggi di Interrogazione, McGraw-Hill Italia Capitolo 4 SQL Structured Query Language Contiene: DDL (Data Definition
DettagliDBMS (Data Base Management System)
Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire
DettagliSQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"
SQL SQL: concetti base originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia il DML ne esistono varie versioni vediamo gli aspetti essenziali,
DettagliDDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione
SQL DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE SQL è più di un semplice linguaggio di interrogazione! Linguaggio di definizione dati (Data-definition language, DDL):! Crea/distrugge/modifica relazioni
DettagliSQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL))
SQL PER LA DEFINIZIONE DI BASI DI DATI 1 SQL non è solo un linguaggio di interrogazione (Query Language), ma Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) CREATE SCHEMA
DettagliSQL PER LA DEFINIZIONE DI BASI DI DATI
SQL PER LA DEFINIZIONE DI BASI DI DATI SQL non è solo un linguaggio di interrogazione (Query Language), ma Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) CREATE SCHEMA
DettagliLinguaggio SQL. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Linguaggio SQL Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni SQL: caratteristiche generali SQL (Structured Query Language) è il linguaggio standard de facto per DBMS relazionali, che
DettagliCorso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2011-2012
Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2011-2012 2012 Docente: Gigliola Vaglini Docente laboratorio: Alessandro Lori 1 Lezione 3 Structured Query Language
DettagliBasi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 2 Raffaella Gentilini 1 / 45 Sommario 1 Il DDL di SQL: Cancellazione ed Aggiornamento di una BD Cancellazione di Schemi, Tabelle, e Domini Aggiornamento di Tabelle
DettagliCorso di Basi di Dati A.A. 2013/2014
Corso di Laurea in Ingegneria Gestionale Sapienza Università di Roma Corso di Basi di Dati A.A. 2013/2014 Tiziana Catarci, Andrea Marrella Ultimo aggiornamento : 29/03/2014 SQL : Structured Query Language
DettagliIstruzioni DML di SQL
Istruzioni DML di SQL Pag. 99 par.4 1 Sintassi: Costrutto: INSERT INTO (Inserimento di dati in tabelle) INSERT INTO [(, ,, )] VALUES (, ,
DettagliCapitolo 4. Soluzione: Soluzione: Create domain STRING as character varying (256) default sconosciuto not null
Capitolo 4 Esercizio 4.1 Ordinare i seguenti domini in base al valore massimo rappresentable, supponendo che integer abbia una rappresentazione a 32 bit e smallint a 16 bit: numeric(12,4), decimal(10),
DettagliLaboratorio di Basi di Dati
Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 1 SQL SQL (Structured Query Language) è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali. Sono stati proposti
DettagliCorso di Laboratorio di Basi di Dati
Corso di Laboratorio di Basi di Dati F1I072 - INF/01 a.a 2009/2010 Pierluigi Pierini Technolabs S.p.a. Pierluigi.Pierini@technolabs.it Università degli Studi di L Aquila Dipartimento di Informatica Technolabs
DettagliCorso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati) Lezione 6 (15 gennaio 2009) Linguaggio SQL: Data Definition Language (DDL) Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof.
DettagliEsercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica
Istituto di Istruzione Superiore Alessandrini - Marino 1 Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica Descrizione Un azienda commerciale che vende prodotti IT (computers,
DettagliBasi di Dati e Sistemi Informativi. Structured Query Language
Basi di Dati e Sistemi Informativi Structured Query Language Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale SQL come DDL e DML SQL non è solo un linguaggio di interrogazione Linguaggio
DettagliEsame di Stato Istituto Tecnico Industriale Soluzione della Seconda Prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico: 2002-2003
Esame di Stato Istituto Tecnico Industriale Soluzione della Seconda Prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico: 2002-2003 Il primo punto richiede l analisi e lo sviluppo del progetto
DettagliSQL - Tipi di dato Il linguaggio SQL
SQL - Tipi di dato Il linguaggio SQL I tipi di dato in SQL:1999 si suddividono in tipi predefiniti tipi strutturati tipi user-defined ci concentreremo sui tipi predefiniti i tipi predefiniti sono suddivisi
DettagliIl linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. SQL - Tipi di dato. SQL - Tipi di dato numerici. SQL - Tipi di dato numerici
Il linguaggio SQL Il linguaggio SQL il linguaggio SQL è un linguaggio per la definizione e la manipolazione dei dati, sviluppato originariamente presso il laboratorio IBM a San Jose (California) è diventato
DettagliIntroduzione a MySQL
Introduzione a MySQL Cinzia Cappiello Alessandro Raffio Politecnico di Milano Prima di iniziare qualche dettaglio su MySQL MySQL è un sistema di gestione di basi di dati relazionali (RDBMS) composto da
DettagliIl linguaggio SQL. Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova. SQL: Structured Query Language
1 Il linguaggio SQL Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova SQL: Structured Query Language 2 Generalita Linguaggio di interrogazione per le basi di dati. Sviluppato presso i
DettagliProva Scritta di Basi di Dati
Prova Scritta di Basi di Dati 4 Giugno 2007 COGNOME: NOME: MATRICOLA: Si prega di risolvere gli esercizi direttamente sui fogli del testo, negli spazi indicati. Usare il foglio protocollo solo per la brutta
DettagliIl linguaggio SQL. ing. Alfredo Cozzi 1
Il linguaggio SQL ing. Alfredo Cozzi 1 Il linguaggio SQL Il linguaggio SQL (Structured Query Language) è nato con l intento di soddisfare alle seguenti richieste nei db relazionali: - definire e creare
DettagliUser Tools: DataBase Manager
Spazio di lavoro Per usare T-SQL Assistant selezionare il link Simple Query e spostare a piacere la piccola finestra dove un menu a tendina mostra i diversi comandi SQL selezionabili, il pulsante Preview
DettagliSQL - Tipi di Dato Tipi numerici Pagina 1
SQL - Tipi di Dato Tipi numerici Pagina 1 SQL - TIPI DI DATO I tipi di dato in SQL:1999 si suddividono in tipi predefiniti tipi strutturati tipi user-defined Ci concentreremo sui tipi predefiniti (i tipi
DettagliBasi di dati e sistemi informativi I
Basi di dati e sistemi informativi I mod. laboratorio Alessandro De Luca Università degli Studi di Napoli Federico II Lezione, 11 marzo 2015 Soluzione 1, creazione CREATE TABLE Impiegato ( Cod NUMBER(4),
DettagliLezione del modulo 7 SQL e database del giorno 04/05/2006 tot. ore 3. Lo Standard SQL
Lezione del modulo 7 SQL e database del giorno 04/05/2006 tot. ore 3 Lo Standard SQL Il linguaggio SQL è un linguaggio non procedurale (o di tipo dichiarativo), divenuto, ormai da tempo, il linguaggio
DettagliINTRODUZIONE AD SQL (CAPITOLO 4) R. Basili a.a. 2011-2012
1 INTRODUZIONE AD SQL (CAPITOLO 4) R. Basili a.a. 2011-2012 SQL Dopo aver eseguito l installazione del DBMS e di uno o più database: Accesso al DBMS Interpretazione di uno script Descrizione dello schema
DettagliLaboratorio di Basi di Dati Introduzione a SQL
Laboratorio di Basi di Dati Introduzione a SQL Pierluigi Pierini Technolabs S.p.a. Pierluigi.Pierini@technolabs.it evoluzione e standards 1970 - E.F. Codd, A Relational Model of Data for Large Shared Data
DettagliSQL Manuale introduttivo
SQL Manuale introduttivo SOMMARIO INTRODUZIONE... 3 TIPI DI DATI... 3 STRINGHE DI CARATTERI... 3 NUMERI... 3 DATA/ORA... 4 COSTANTI STRINGA... 4 COSTANTI NUMERICHE... 4 COSTANTI DATA/ORA... 5 NOTE SULLA
DettagliDATA BASE MANAGEMENT SYSTEM
DATA BASE (1) Problematica gestione dati: oggetti delle elaborazioni, difficili da gestire, memorizzare, reperire, modificare; talvolta ridondanti/incongruenti; non sufficientemente protetti; spesso comuni
DettagliStringhe di caratteri
Domini primitivi In SQL sono disponibili alcune famiglie di domini elementari attraverso le quali è possibile definire i domini di appartenenza dei campi. Stringhe di caratteri CHARACTER [VARYING] [(NumeroCaratteri)]
DettagliIl linguaggio SQL: le basi
Il linguaggio SQL: le basi Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLa-basi.pdf Sistemi Informativi L-A SQL: caratteristiche generali
DettagliLezione 8. Metadati, Viste e Trigger
Lezione 8 Metadati, Viste e Trigger Pag.1 Metadati e catalogo di sistema I metadati sono dati a proposito dei dati (quali tabelle esistono?, quali campi contengono?, quante tuple contengono?, ci sono vincoli
DettagliSQL. Storia e standard
SQL Lorenzo Sarti 2009 Basi di Dati 1 Storia e standard Lorenzo Sarti 2009 Basi di Dati 2 SQL-2 È ricco e complesso e nessun sistema commerciale lo implementa in maniera completa Sono definiti 3 livelli
DettagliSQL. Alcune note sulla definizione dei dati
SQL Alcune note sulla definizione dei dati Domini Domini elementari (predefiniti) Domini definiti dall'utente (riutilizzabili, possono servire per specificare vincoli di dominio propri di una certa applicazione)
DettagliProva Scritta di Basi di Dati
Prova Scritta di Basi di Dati 1 Luglio 2008 COGNOME: NOME: MATRICOLA: Si prega di risolvere gli esercizi direttamente sui fogli del testo, negli spazi indicati. Usare il foglio protocollo solo per la brutta
Dettagli16. IL LINGUAGGIO SQL
16. IL LINGUAGGIO SQL Il linguaggio SQL (Structured Query Language) è un linguaggio non procedurale (in quanto non richiede la descrizione dei passi elementari di elaborazione) o di tipo dichiarativo (in
DettagliCorso Sistemi Informativi Avanzati. Programma 30 set 2015. Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.
Programma 30 set 205 Installazione Macchina Virtuale Introduzione alla BI nelle Aziende Introduzione SQL Macchina Virtuale È un emulazione di un computer su un altro computer Stesso punto di partenza per
DettagliSQL, un linguaggio per la gestione dati: un po di storia. SQL, un linguaggio per la gestione dati: un po di storia
AA 1999/2000 Facolta' di Ingegneria - Corso di Laurea in Ingegneria Informatica Insegnamento di Basi di dati Prof. Maristella Agosti Introduzione a SQL Indice dei contenuti: SQL, un linguaggio per la gestione
DettagliStructured Query Language. Informatica Generale - SQL Versione 1.0, aa 2005-2006 p.1/172
Structured Query Language Informatica Generale - SQL Versione 1.0, aa 2005-2006 p.1/172 Linguaggio SQL (1) Il linguaggio SQL, acronimo di Structured Query Language è un linguaggio per la definizione e
DettagliLaboratorio di Basi di Dati e Web
Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 1 SQL Structured Query Language SQL è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali Il linguaggio
DettagliDomini elementari, 2. Basi di dati. Domini elementari, 4. Domini elementari, 3. Domini definiti dagli utenti. Domini elementari, 5
Domini elementari, Basi di dati Linguaggi di Interrogazione: SQL Prof.Angela Bonifati Bit Valori booleani (vero/falso), singoli o in sequenza (la sequenza può essere di lunghezza variabile) Sintassi: bit
DettagliIl linguaggio SQL: DDL di base
Il linguaggio SQL: DDL di base Sistemi Informativi T Versione elettronica: 04.1.SQL.DDLbase.pdf SQL: caratteristiche generali SQL (Structured Query Language) èil linguaggio standard de facto per DBMS relazionali,
DettagliIl Domino Character Il domino CHARACTER permette di definire attributi che contengono un singolo carattere o stringhe di caratteri di lunghezza
Linguaggio SQL (1) Il linguaggio SQL, acronimo di Structured Query Language è un linguaggio per la definizione e la manipolazione dei dati, sviluppato originariamente presso il laboratorio IBM a San Jose
DettagliM733 ESAME DI STATO DI ISTITUTO TECNICO COMMERCIALE CORSO DI ORDINAMENTO
Seconda prova scritta Ministero dell Istruzione, dell Università e della Ricerca M733 ESAME DI STATO DI ISTITUTO TECNICO COMMERCIALE CORSO DI ORDINAMENTO Indirizzo: PROGRAMMATORI Tema di: INFORMATICA GENERALE
DettagliLA REALIZZAZIONE DI APPLICAZIONI ALCUNE ARCHITETTURE
LA REALIZZAZIONE DI APPLICAZIONI ALCUNE ARCHITETTURE Quattro parti: Gestione dati Client-Server Logica + interfaccia Logica + interfaccia Business rules Sistema di comunicazione Logica applicativa DBMS:
DettagliSQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)
SQL quick reference piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) I tipi dei dati di SQL sono: delimitatori delle costanti: TEXT(n) stringa di caratteri
DettagliDomini elementari in SQL
SQL SQL è un acronimo per Structured Query Language. Fu sviluppato originalmente come linguaggio per il DBMS System R dall IBM Research Laboratory (San Jose, California) nei tardi anni settanta. Al giorno
DettagliSQL. Structured Query Language
Structured Query Language fields seleziona i campi (colonne) da visualizzare table specifica la tabella da cui leggere i dati WHERE condizione seleziona i record (righe) da visualizzare expression è possibile
DettagliLA REALIZZAZIONE DI APPLICAZIONI. Quattro parti: Gestione dati. Business rules. Logica applicativa. Interfaccia utente. Molte possibili architetture
LA REALIZZAZIONE DI APPLICAZIONI Quattro parti: Gestione dati Business rules Logica applicativa Interfaccia utente Molte possibili architetture L approccio tradizionale: uso di un linguaggio PLSQL 1.1
DettagliCorso di Informatica Generale 1 IN1. Linguaggio SQL
Università Roma Tre Facoltà di Scienze M.F.N. di Laurea in Matematica di Informatica Generale 1 Linguaggio SQL Marco (liverani@mat.uniroma3.it) Sommario Prima parte: le basi dati relazionali Basi di dati:
DettagliData management a.a. 2009-2010. Il linguaggio SQL
Data management a.a. 2009-2010 Il linguaggio SQL 1 Modello di database E' un database generico con anagrafica e movimenti di uso molto frequente: per esempio, clienti e fatture, studenti ed esami sostenuti,
DettagliBasi di dati SQL. Standardizzazione di SQL. Linguaggi di Interrogazione: SQL. Prof.Angela Bonifati
Basi di dati Linguaggi di Interrogazione: SQL Prof.Angela Bonifati 1 SQL Il nome stava per Structured Query Language Più che un semplice linguaggio di query: si compone di una parte DDL e di una DML DDL:
DettagliProcedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM
Procedure memorizzate SQL-2003/PSM Procedure memorizzate nel database Programmazione general-purpose Leggere sezione 8.2 di Garcia-Molina et al. Lucidi derivati da quelli di Jeffrey D. Ullman 1 Una estensione
DettagliSi consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema:
BASI DI DATI INGEGNERIA INFORMATICA PROVA PRATICA 10 GIUGNO 2015 SOLUZIONI Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema: PAZIENTECodFiscale, Cognome,
Dettagli1. Schema concettuale della base di dati Lo schema concettuale (o statico) è uno dei due schemi del progetto concettuale di un sistema informativo.
Esame di Stato Istituto Tecnico Industriale Proposta di soluzione della seconda prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico: 2003-2004 1. Schema concettuale della base di dati Lo schema
DettagliNella relazione CINEMA, Nome è chiave secondaria. Nella relazione FILM, CodRegista, e CodProtagonista sono chiavi esterne sulla tabella PERSONE.
Si consideri il seguente schema relazionale, relaivo ad una base di dati per gestire la programmazione cinematografica giornaliera in un certo insieme di cinema: CINEMA(CodC, Nome, Indirizzo, Tel, NSale)
DettagliBasi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL
Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone SQL: il DDL Parti del linguaggio SQL Definizione di basi di dati (Data Definition Language DDL) Linguaggio per modificare
DettagliIl linguaggio SQL. Evoluzione del linguaggio. I linguaggi dentro SQL. I dialeu SQL. U@lizzo di SQL SQL. A. Ferrari 1
Il linguaggio SQL Structured Query Language SQL è un linguaggio di interrogazione per database proge
DettagliTool. Basi di Dati e Sistemi Informativi Prof. Marco Di Felice Dott.sa Sara Zuppiroli A.A. 2012-2013
Tool Basi di Dati e Sistemi Informativi Prof. Marco Di Felice Dott.sa Sara Zuppiroli A.A. 2012-2013 Basi di Dati e Sistemi Informativi () PostgreSQL A.A. 2012-2013 1 / 26 Gli strumenti che vedremo Basi
DettagliBasi di Dati prof. Letizia Tanca
Basi di Dati prof. Letizia Tanca (lucidi tratti dal libro Atzeni-Ceri-Paraboschi-Torlone) AA 2003-04 Linguaggi di interrogazione commerciali per il Modello Relazionale dei Dati: SQL - il DDL Domini I domini
DettagliBasi di Dati. S Q L Lezione 5
Basi di Dati S Q L Lezione 5 Antonio Virdis a.virdis@iet.unipi.it Sommario Gestione eventi Gestione dei privilegi Query Complesse 2 Esercizio 9 (lezione 4) Indicare nome e cognome, spesa e reddito annuali
DettagliSQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)
1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2014/2015 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2014-15.htm dott.ssa Francesca A. Lisi francesca.lisi@uniba.it
DettagliVolumi di riferimento
Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di
DettagliBasi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 9 SETTEMBRE 2015 Tempo: 2h30m
Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 9 SETTEMBRE 2015 Tempo: 2h30m Si consideri il seguente schema di base di dati, che vuole memorizzare informazioni relative a un sito di affitto
DettagliEsprimere in algebra (ottimizzata), calcolo relazionale la seguente query:
Basi di dati: appello 16/02/10 i consideri il seguente schema di base di dati che vuole tenere traccia delle informazioni relative ai partecipanti a gare podistiche in Lombardia CORSA (Codice, Nome, IndirizzoPartenza,
DettagliData base relazionale ed SQL. Modello relazionale dei data base e il linguaggio standard per la loro gestione
Data base relazionale ed SQL Modello relazionale dei data base e il linguaggio standard per la loro gestione Contenuti Modello relazionale Cenni sulla progettazione di un data base Normalizzazione delle
DettagliISTITUTO DI ISTRUZIONE SUPERIORE Cigna Baruffi Garelli
Attività svolta 1. UNITÀ DI APPRENDIMENTO 1: RIPASSO E APPROFONDIMENTO DEGLI ARGOMENTI PRECEDENTI 1.1. Concetti elementari di informatica Algoritmo, Dato, Informazione Campi di applicazione e classificazione
DettagliDomini Numerici Esatti (1) I domini numerici esatti permettono di definire attributi che contenegono valori esatti interi o con parte frazionaria.
Linguaggio SQL (1) Il linguaggio SQL, acronimo di Structured Query Language è un linguaggio per la definizione e la manipolazione dei dati, sviluppato originariamente presso il laboratorio IBM a San Jose
DettagliLinguaggio SQL. Structured Query Language
Linguaggio SQL Structured Query Language Creato negli anni 70 presso IBM Inizialmente solo linguaggio di interrogazione Ora linguaggio di riferimento per DB relazionali Standardizzato grazie al lavoro
DettagliEsercitazione: Il DBMS MySQL
Laurea in Ingegneria Informatica SAPIENZA Università di Roma Insegnamento di Basi di Dati Esercitazione: Il DBMS MySQL Marco Console Aspetti Organizzativi Marco Console Sito: www.dis.uniroma1.it/~console
Dettagli