CursoSQL Firebird RafaelGoulart

Download CursoSQL Firebird RafaelGoulart

Post on 23-Aug-2014

200 views

Category:

Documents

59 download

TRANSCRIPT

<p>CursoSQLPorRafaelGoulart Verso1.0maio/2006</p> <p>ndiceIntroduo.............................................................................................................................................3 OrganizaodoCurso......................................................................................................................3 Agradecimentos...............................................................................................................................3 RefernciasUtilizadas.................................................................................................................3 ConceitosGeraisdeSQL.....................................................................................................................5 OqueSQL....................................................................................................................................5 SGDBSistemadeGerenciamentodeBancodeDados.................................................................5 BancosdeDadosRelacionais..........................................................................................................6 Tabelas.........................................................................................................................................6 Registros(outupla).....................................................................................................................6 Colunas(AtributosouCampos)..................................................................................................6 Domnio(TiposdeDados)..........................................................................................................7 Chave...........................................................................................................................................7 ndices.........................................................................................................................................7 Relacionamentos.........................................................................................................................7 ALinguagemSQLTiposdePalavrasChave................................................................................8 DDL(DataDefinitionLanguage)LinguagemdeDefiniodeDados....................................8 DML(DataManipulationLanguage)LinguagemdeManipulaodeDados.........................8 DCL(DataControlLanguage)LinguagemdeControledeDados..........................................9 SQLemFIREBIRDIntroduo.......................................................................................................10 HistriadoFIREBIRD..................................................................................................................10 ObtendoeInstalandoFIREBIRDeFerramentas...........................................................................10 IBOConsolecomandosbsicos...................................................................................................10 RegistrandoumServidor...........................................................................................................10 RegistrandoumServidorLocal(localhost)...............................................................................11 RegistrandoumServidorRemoto.............................................................................................12 Criando/RegistrandoumBancodeDadosnoServidor.................................................................12 CriandoumBancodeDadosnoServidor.................................................................................14 RegistrandoumBancodeDadosnoServidor..........................................................................15 TeladeAcessoaoBanco................................................................................................................16 ManutenodeUsurios................................................................................................................17 ManutenodeTabelas..................................................................................................................18 ExecutandocomandosSQL...........................................................................................................21 SQLBsico.........................................................................................................................................23 Algunspadresdesintaxe.............................................................................................................23 SQLDDLBsico(ManipulandoObjetosdoBD)..............................................................................24 CriandoumBancodeDados(CREATEDATABASE).................................................................24 ConectandoaumBancodeDados(CONNECT)..........................................................................24 CriandoTabelas(CREATETABLE).............................................................................................24 TiposdeDados(DomniosPadro)doFIREBIRD..................................................................25 SintaxeCREATETABLE(CriarTabela).................................................................................25 Opescomunsparacamposnacriaodetabelas.............................................................26 Criandochavesprimrias(PKPrimaryKey).........................................................................26</p> <p>Criandochavesestrangeiras(FKForeingKey)......................................................................26 ChavesPrimriasAutonumeradas.............................................................................................27 AlterandoTABELAS(ALTERTABLE).......................................................................................28 ExcluindoTABELAS,BANCOSeoutrosobjetos........................................................................29 SQLDMLBsico(ManipulandoDados)...........................................................................................29 InserindoDados(INSERT)...........................................................................................................29 SelecionandoDados(SELECT)....................................................................................................30 Sintaxebsica............................................................................................................................31 Condies..................................................................................................................................31 Filtrandodados.....................................................................................................................31 RelacionandoTabelas...........................................................................................................33 Ordenao(ORDERBY)..........................................................................................................34 Camposcalculados,concatenaoefunes............................................................................34 Agrupamento(GROUPeHAVING).........................................................................................34 AtualizandoDados(UPDATE)......................................................................................................34 ExcluindoDados(DELETE).........................................................................................................36 SQLDCLBsico(ManipulandoUsuriosePermisses)..................................................................38 TiposdePrivilgios.......................................................................................................................38 Permitindoacesso..........................................................................................................................38 Revogandoacesso..........................................................................................................................38 Exemplo01DEVA...........................................................................................................................39 DiagramadeClassesUML............................................................................................................39 CriaodasTabelasdoBancodeDados(DDL)...........................................................................40 InserodeDadosnastabelas.......................................................................................................43</p> <p>IntroduoEstecursoteveinspiraonanecessidadedarumabaseparameuscolegasdoCursode AdministraocomHabilitaoemAnlisedeSistemas,daFASBFaculdadeSoFranciscode Barreiras,emBarreiras/BA. TemosadisciplinadeAnlisedeProjetoseSistemaseadisciplinaLinguagemdeProgramao, masnenhumadisciplinaespecficadeBancodeDados.Ento,comoapoiodosprofessoresde ambasasdisciplinas,eutilizandocomobaseanlisesemUMLfeitasemsaladeaula,epara posteriordesenvolvimentoemDelphidobancocriado,elaboreiestepequenocursobsicodeSQL. OintuitoinicialutilizaroFIREBIRD(sucessorsoftwarelivredoINTERBASE)comobaseparao curso,comaintenodesergenricoosuficienteparaqueoconhecimentopossaserutilizadoem outrosbancos.Entretanto,numsegundomomento,eleterumaversoemMySQL,equemsabe meempolgoefaotambmpraPostgres... Emcomplementoaosconhecimentosadquiridos,utilizaremosanlisesfeitasemUMLemsalade aula,construindoasbasesdeexemploatravsdelas. Acreditoemretribuiroconhecimentoqueadquiricomtantossoftwaresedocumentaeslivres atravsdestapequenacolaborao.Tambmutilizareifontesexternas,principalmentepara informaeshistricas,poisnotemsentidoreinventararoda...</p> <p>OrganizaodoCursoIniciamenteaintenoeraterdoisnveis,bsicoeintermedirio.Maspercebiqueofocoseria melhorseabordasseapenasonvelbsicoeocursofossemultibanco.Porisso,aintenoter umcontedobsicocomumaexplicaodetalhada,facilitandooentendimentodosnovatos,e deixaraprofundamentosparaoutromomento.Istoincluicomandosdecriaoealteraodetabelas (DDL),manipulaoealteraodedados(DML)econtroledeusurioseacesso(DCL). Algunsrecursosnoseroabordados,asaber:domains,storedprocedures,triggers,exceptions, udfs,views,porseremtpicosavanadosemuitoespecficosdecadabanco.Triggerssero utilizadasapenasnobancoFirebirdparaalcanarresultadossemelhantesaodeoutrosbancosem autonumerao. OSQLutilizadoprocurarseromaisgenricopossvel,ouseja,nosedeternosrecursos especficosdecadabanco.Lembre,estenoumcursodeFirebird,MySQLouPostgres,masum cursodeSQL.Apenasseroidentificadasalgumaspeculiaridadesdecadabancoparautilizar recursosdeusocorriqueiro.</p> <p>AgradecimentosEmprimeirolugaragradeoaoProfessorFbioCallegari,quemuitoincentivouestetrabalho cedendosuasaulaseacompanhandomeutrabalho,etambmProfessorAlexandreMonge,que trabalhousuasaulasparaconstruodosexemplosqueseroconstrudosnestecurso. Eclaro,minhaturmaquemeaturou. RefernciasUtilizadas WikipediaAenciclopdialivre VriostrechossobreSQL,histriadosbancoseconceitosforamretiradosdaWikipedia.Em</p> <p>especial: </p> <p> SQL UML BancosdeDadosRelacional SistemasdeGerenciamentodeBancodeDados </p> <p>Vriasapostilasforamconsultadas,eduasfontesbsicasforam:SQLMagazineClubDelphi Infelizmentemuitasdelasnopossuemrefernciaaautoria,possivelmenteporseremcpiasde outrosautoresdesrrespeitandoafonte.Nosocitadasaqui,masencontrandoalgumtrechoque conheaedequesaibaoautor,entreemcontatocomigoparaadevidareferncia. Agradeoespecialmentesapostilasdosseguintesautores: </p> <p> ApostiladeBancodeDadoseSQLProf.JorgeSurian&amp;Prof.LuizNicochelli BancodeDadosProf.RenatoFileto ApostiladeFirebird1.0Autor:AndersonHaertelRodrigues&amp;Colaborao:MarcusBoi Firebird1.5QuickStartGuide (emingls) PostgreSQLBR ManualdeRefernciadoMysql4.1 DiaEditordeDiagramas ParacriaodediagramasdeclassesUML Gimp Paraeditarasimagensutilizadas.</p> <p>Eclaro,adocumentaodosprpriosbancos,encontradaem: </p> <p>Ferramentasutilizadasparacriaodestecurso </p> <p>ConceitosGeraisdeSQLOqueSQLOtextodestetpicofoiextradodaWikipdia,aenciclopdialivre StructuredQueryLanguage,ouLinguagemdeConsultaEstruturadaouSQL,uma linguagemdepesquisadeclarativaparabancodedadosrelacional(basesdedadosrelacionais). MuitasdascaractersticasoriginaisdoSQLforaminspiradasnalgebrarelacional. SQLnormalmentepronunciadoemportuguscomoessequele,pormsuapronciacorreta deveriasesquel,doinglssequel,oualgumacoisaquesegueoutracoisa.SQLuma brincadeiracomonomedaprimeiralinguagemdeconsultaQUEL. EmboraoSQLtenhasidooriginalmentecriadopelaIBM,rapidamentesurgiramvriosdialectos desenvolvidosporoutrosprodutores.Essaexpansolevounecessidadedesercriadoeadaptado umpadroparaalinguagem.EstatarefafoirealizadapelaAmericanNationalStandardsInstitute (ANSI)em1986eISOem1987. OSQLfoirevistoem1992eaestaversofoidadoonomedeSQL92.Foirevistonovamenteem 1999e2003parasetornarSQL:1999(SQL3)eSQL:2003,respectivamente.OSQL:1999usa expressesregularesdeemparelhamento,queriesrecursivasegatilhos(triggers).Tambmfoifeita umaadiocontroversadetiposnoescaladosealgumascaractersticasdeorientaoaobjeto.O SQL:2003introduzcaractersticasrelacionadasaoXML,sequnciaspadronizadasecolunascom valoresdeautogeneralizao(inclusivecolunasidentidade). Talcomoditoanteriormente,oSQL,emborapadronizadopelaANSIeISO,possuimuitas variaeseextensesproduzidospelosdiferentesfabricantesdesistemasgerenciadoresdebasesde dados.Tipicamentealinguagempodesermigradadeplataformaparaplataformasemmudanas estruturaisprincipais. Outraaproximaopermitirparacdigodeidiomaprocessualserembutidoeinteragircomo bancodedados.Porexemplo,oOracleeoutrosincluemJavanabasededados,enquantoo PostgreSQLpermitequefunessejamescritasemPerl,Tcl,ouC,entreoutraslinguagens.</p> <p>SGDBSistemadeGerenciamentodeBancodeDadosDeumaformabeeeemsimplificada,SGDBumsoftwareresponsvelpelogerenciamento (armazenamentoerecuperao)dosdadosnoBancodeDados.Mas...existemuitadiscussosobre oquepodeserconsideradoSGDBousimplesmenteumGAGerenciadordeArquivos. Nodoescopodestecursoentrarnestasdiscusses.Vocpodeencontrarmaisdetalhamento tericoevisessobreesteassuntonestasduasreferncias: </p> <p> ApostiladeBancodeDadoseSQLProf.JorgeSurian&amp;Prof.LuizNicochelli BancodeDadosProf.RenatoFileto </p> <p>Oqueseriainteressanteconsiderarqueadependerarefernciaedoautor,oMSAccesspodeou noserconsideradoumSGDB,assimcomooMySQL,poisnenhumdosdoispossuitodasas caractersticasbsicasdeumSGDB.Mas...oMySQL,emsuaverso5.0ospossui,eemverso anteriorespossuavriasdestascaractersticasatravsdemotoresadicionaiscomooINNODB.Jo MSAccess,quemuitosautorescolocamcomoSGDB,nopossuiumservidordedicado,sendoseus arquivosmanipuladosdiretamentepelosclientesatravsdabibliotecaJET...Ouseja,muita</p> <p>discusso. IMHOEmminhahumildeopinioapesardepossuirmuitosrecursosinteressantes,oMSAccess nopodesercomparadoaoMySQL,mastambmnopodesercomparadoaoDbase...Eentendo tambmquehojeofocoestmuitomaisnaampladisseminaodoMySQLeseufocoem desempenho,oqueincomodabancosmaiscompletosOracle,Interbase/Firebird,Postgres,DB2, Ingress,Progress,queperdemmercadoparaumconcorrenteincompleto. fatoqueoPostgreseoFirebird,apenascitandoopeslivres,somaiscompletosecomplexos queoMySQL,eatporistomenospopularesentreprogramadoresnovos.Mastmsuafora.</p> <p>BancosdeDadosRelacionaisExistemvriosmodelosdebancosdedadostaisquais:</p> <p>ModeloOrientadoaoRegistroModeloRelaciona...</p>