Apresentação fb

  • View
    346

  • Download
    5

Embed Size (px)

Text of Apresentação fb

  • 1. Apresentao FIREBIRD Rodrigo Ribeiro Gonalves

2. Origem Firebird Em 1980, Jim Starkey Analista da Digital Equipment Corp, teve a idia de um sistema que gerenciasse melhor a concorrncia transacional... 3. Groton Systems Com amigos e uma outra empresa chamada APOLLO Systems, fundou a Groton Systems em 1984. A Grotom Systems desenvolveu um software que se denominaria INTERBASE... 4. Ashton Tate De 1986 a 1991, a Grotom entra em crise e comea a ser comprada por uma empresa chamada Ashton Tate, detentora do dBase. 5. DBASE e CLIPPER DBASE fez muito suce$$o nos anos 80 com o Clipper 6. Borland Em 1992, a Ashton Tate passar por dificuldades .... E acaba sendo comprada pela Borland Corporation, desenvolvedora do Delphi e C++ Builder. 7. Ano 2000... No ano 2000, a Borland decide tornar o Interbase um projeto Open Source sob a licena Mozilla Public License.... E seis meses depois muda de idia! 8. Mas foi tarde demais... O tempo que o cdigo ficou disponvel, foi suficiente para que um fork do projeto fosse criado... 9. Nasceu ento, Firebird SQL 10. Firebird SQL Open Source Multi-plataforma ACID Mantido pela Firebird Foundation 11. Problemas... Poucas atualizaes, no tem uma empresa forte patrocinando No tem suporte a dados geogrficos (GIS), clustering, backups parciais, entre algumas funcionalidades que j existem em outros bancos mais atuais... 12. Verses 2001 Firebird 1.0.0 2002 Firebird 2.0.0 2012 Firebird 2.5.2 13. QUEM USA??? 14. Prefeitura Municipal de Praga Repblica TCheca QUEM USA? 15. MOSCOW INTERBANK CURRENCY EXCHANGE 16. STAR AIRLINES 17. CASO DE USO.... Sistema Analtico para o Hospital Municipal de Moscow City Hospital 18. Hospital Municipal de Moscow 700 Leitos 400 funcionrios 20 INTERNAES/DIA 19. Hospital Municipal de Moscow O PROBLEMA At 2008 um sistema legado que atendia as necessidades de entrada de dados e relatrios bsicos. MASSS..... NO TINHA FUNES ANALTICAS!!!! 20. HOSPITAL DE MOSCOW - PROBLEMA Haviam relatrios importantes que requeriam anlises e estruturas de dados mais complexas das que eram usadas at o momento. 21. CUSTOS DO ORACLE... ORACLE custaria U$ 15.000 (2002) por servidor mais taxas altas de suporte vitalcias (enquanto a empresa usasse o SGBD). 22. REQUISITOS TCNICOS COMPLEXIDADE dos algortimos de anlise mdica, implicava que os dados fossem armazenados em tabelas desnormalizadas, com leitura e escrita dos dados a serem inseridos dentro das TRIGGERS. 23. REQUISITOS TCNICOS Isto no pode ser feito no ORACLE, que chama isso de DATA MUTATION. Isto foraria o uso de operaes assncronas 24. O FIREBIRD atende todos os requisitos.... Firebird 2.0 foi usado no novo sistema Atualmente o Banco de dados tem 2 GB com crescimento de 50 mb por ms H um planejamento de controle de farmcias vinculadas ao Hospital H planejamento de migrao para o FB 2.5 25. Outros diferenciais que influenciaram na escolha... As procedures retornam DATASETS sem necessidade de tabelas temporrias possvel gerar excees dentro de procedures e triggers 26. A ESCOLHA DA TECNOLOGIA EST RELACIONADA AO DESAFIO ... Mas as vezes, outros intere$$es esto no caminho.... 27. OUTROS CASES INTERESSANTES.... http://www.firebirdsql.org/en/case-studies-catalog/ 28. INSTALAO 29. Download http://www.firebirdsq l.org/en/firebird-2-5- 2-upd1/. 30. Instalao 31. Instalao 32. Instalao 33. Instalao 34. Classic ou Super Server Diferena o modo de processamento: Classic usa um processo separado para cada conexo, e o super usa um nico processo, e por este motivo gerencia melhor os recursos do servidor.... 35. Instalao 36. Instalao 37. Instalao 38. Softwares gerenciadores do FB Firebird no tem uma interface oficial de acesso... Existem produtos gratuitos e pagos desenvolvidos por empresas independentes. 39. DESTAQUE PARA IBExpert (EUR 55) 40. O turbo admin Gratuito, OPEN SOURCE.... Disponvel no SOURCEFORGE.NET 41. Usando o Turbo Admin 42. Data e hora atual... 43. Criando um banco de dados 44. Estrutura de um Banco de dados Firebird composta apenas por um arquivo com terminao .FDB ou .IDB (arquivos originados do Interbase) 45. Registrando 46. Conexo com o banco de dados Diferente de outros SGDBs, uma conexo no Firebird realizada referenciando um ARQUIVO, atravs do listener do Firebird. possvel acessar apenas o arquivo FDB, sem ter um servidor instalado, usando apenas a DLL Dgs32.dll ou fbclient.dll 47. Acessando o banco de dados 48. Funcionalidades do Firebird 49. Tipos de dados no Firebird algumas diferenas SQL SERVER: DATE, DATETIME e SMALLDATETIME no existem...apenas TIMESTAMP BIT s pode ser simulado com CHAR(1) 50. Criando uma tabela no FB CREATE TABLE Clientes( Nome varchar(100), Endereco varchar(100), Telefone varchar(25), Email varchar(100), DataNascimento timestamp, Codigo int, CEP varchar(10), VALOR NUMERIC(18,2) ) 51. Criando um campo auto-incremento No existe a propriedade auto- increment no Firebird, para fazer esta funcionalidade necessrio usar os generators 52. Criando um Generator CREATE GENERATOR gen_t1_id; SET GENERATOR gen_t1_id TO 0; 53. Criando uma Trigger que referencia o Generator set term !! ; CREATE TRIGGER T1_BI FOR Clientes ACTIVE BEFORE INSERT POSITION 0 AS BEGIN if (NEW.codigo is NULL) then NEW.codigo = GEN_ID(GEN_T1_ID, 1); END!! set term ; !! 54. EXEMPLO DE READ/WRITE EM TRIGGERS FIREBIRD create trigger biu_parts for parts before insert or update as begin /* conditional code when inserting: */ if (inserting and new.id is null) then new.id = gen_id(gen_partrec_id, 1); new.partname_upper = upper(new.partname); end 55. CRIAR UMA EXCEO Create Exception ExErroProc 'Erro ao executar procedure'; 56. Executando um Insert Insert into Clientes(Codigo, Nome, email) values (null,'Rodrigo Ribeiro','rodrigo@hotmail.com') 57. Update update clientes set email='rodrigo@ig.com.br' where codigo=1 58. Criar uma procedure create procedure AlteraValor(a integer,b numeric(18,2)) returns (c int) as begin update clientes set valor=:b where codigo=:a; End 59. Executar a procedure execute procedure AlteraValor(1,10); 60. CRIANDO EXCEES CREATE EXCEPTION ExErroProc 'Erro ao executar procedure'; 61. Usando EXCEES create procedure Atualiza(a integer) returns (c int) as begin if (:a = 0) then exception ExErroProc; End; EXECUTE PROCEDURE Atualiza(0); 62. Criando uma tabela com CHAVE PRIMRIA CREATE TABLE tbcategories ( code int , description varchar(150) , PRIMARY KEY (code) ) 63. Criando uma CHAVE ESTRANGEIRA CREATE TABLE tbproducts ( code int , description varchar(150) , salevalue decimal(18,2) , active int, category int REFERENCES tbcategories, PRIMARY KEY (code) ) 64. Paliativo...usar procedure para retornar uma informao... CREATE PROCEDURE SEARCH_CLIENTE( COD INT) RETURNS ( NAME VARCHAR(150)) AS BEGIN select NOME from CLIENTES where CODIGO = :COD INTO :NAME; END 65. DECLARE VARIABLE NAME VARCHAR(150) EXECUTE PROCEDURE SEARCH_CLIENTE(1) RETURNING_VALUES :NAME; 66. BACKUP 67. Backup e Restore O arquivo pode ter qualquer terminao No h retro- compatibilidade entre verses 68. Restore 69. OBRIGADO!