sexta-feira, 19 de setembro de 2014

Novo Site

Olá amigos em breve postarei aqui informações sobre o site que está ainda em desenvolvimento do meu novo empreendimento a NR Information Technology, empresa que atua no seguimento de soluções tecnológicas tais como desenvolvimento de softwares, erp e construção de websites.


Um abraço a todos,



Nilson Ribeiro
Analista de Sistemas.

quarta-feira, 16 de julho de 2014



        Olá boa noite amigos,


             Hoje vou apresentar um trabalho sobre o MYSQL:

                                                 Centro Universitário Módulo
Análise e Desenvolvimento de Sistemas



Nilson D. R. da Silva





Banco de Dados MySQL



Caraguatatuba – SP
05/2014

Centro Universitário Módulo
Análise e Desenvolvimento de Sistemas




Nilson D. R. da Silva






Banco de Dados MySQL
Trabalho apresentado ao Professor ____, pelo aluno Nilson Donizete Ribeiro da Silva  para obtenção de nota parcial na disciplina de Banco de Dados no curso de Tecnologia em Análise e Desenvolvimento de Sistemas em Maio de 2014.







Caraguatatuba – SP
05/2014



Sumário














 

1.   HISTÓRICO DO BANCO DE DADOS MYSQL


            Foi criado na Suécia pelos suecos Allan Larsson e Michael "Monty" Widenius e pelo finlandês: David Axmark, que trabalhavam juntos desde a década de 80, surgiu da necessidade de mecanismos que tornasse possível a conexão de tabelas criadas na linguagem estruturada para consultas “SQL” com fim determinado.
            A empresa TcX usava o UNIREG que possuía muito Overhead, começou a procurar outro banco e optou pelo mSQL que demonstrou não atender as necessidades da empresa, foi quando surgiu a ideia de se unir os dois bancos, o que foi aceito por seus desenvolvedores.
           Originou-se então o MYSQL, um novo banco, reinventado e construído com bases na estrutura do UNIREG e nos utilitários escritos para o mSQL, com desenvolvimento de APIs praticamente idênticas ao mSQL, isto ofereceu grande facilidade de migração aos usuários do mSQL para o novo SGBD.
           Atualmente com mais de 10 milhões de instalações pelo mundo é um dos bancos de dados mais populares, NASA, Friendster, Banco Bradesco, Dataprev, HP, Nokia, Sony, Lufthansa, U.S Army, US. Federal Reserve Bank, Associated Press, Alcatel, Slashdot, Cisco Systems e outros estão entre os usuários do banco de dados MySQL que por ser protegido por uma licença de software livre apresenta baixo custo de implantação, maiores e melhores atualizações, funções mais simples e possibilidade de modificação, mas a fácil integração  ao PHP incluído nos pacotes de hospedagem de sites na internet propiciou o grande sucesso do MYSQL .

1.1.             Suas principais características são:

             
            Facilita a utilização de interfaces gráficas com o MySQL Toolkit que é cedido pela MySQL Inc.                   Quanto a sua Portabilidade o MySQL suporta praticamente qualquer plataforma atual,
            É compatível com diversas linguagens de programação,
            É pouco exigente quanto a recursos de hardware e apresenta excelente estabilidade e desempenho,
            Seu manuseio é de grande facilidade;
            Trata-se de um software livre com base na GPL (Licença Publica Geral)
            Possibilita que sejam utilizados vários mecanismos de armazenamentos, tais como MyISAM, InnoDB, Falcon, BDB, Archive, Federated e CSV.

            Permite o controle transacional;
            Comporta Triggers “gatilhos”;
            Possibilita declarar cursores com rolagem ou não rolagem. O scrollability indica a direção em que o cursor pode se mover.
            A replicação é de fácil configuração;


2     UTILIZAÇÃO DO MYSQL

            Por ter sido desenvolvido em código aberto, funciona em vários sistemas operacionais como por exemplo no Windows, Linux, FreeBSD, BSDI, Solaris, Mac OS X, SunOS, SGI, etc.
          Por seu ótimo desempenho e grande robustez além de ser multitarefa e multiusuário é possível sua utilização em sistemas de produção com alta exigência e ou até mesmo em aplicações sofisticadas em se usando versões (acima da 3.x), que já possuem funcionalidades como Stored procedures, two phase commit, subselectes, foreign Keys entre outras Functions.

2.1 Os principais tipos de dados:

            INT: com ou sem sinal,
            REAL: oferece precisão em uma extensa faixa de valores flutuantes,                                                             CHAR: caractere de tamanho fixo,
            TEXT: caractere de tamanho variável,
            DATE: para data padrão e,                   
            TIME: para padrão de horas = hh:mm:ss.

2.2       Os principais comandos:

            CREATE DATABASE,
            DROP DATABASE,
            CREATE TABLE,
            DROP TABLE,
            ALTER TABLE,
            INSERT,
            SELECT,
            DELETE,
            UPDATE,
            Operadores Aritméticos (+=, -=, *=, /=),
            Operadores Lógicos (NOT, =!; OR, =||; AND, =&&),

2.3       Comparação

            Igualdade = =                                                                                                     
            Diferença < > ou ! =
            Menor ou igual <= =
            Menor que < =
            Maior ou igual >= =
            Maior que > =

2.4       Outros comandos

            mysql_connect -> Para abrir a conexão com o banco de dados MySQL
            mysql_close-> Para fechar a conexão com o banco de dados MySQL
            mysql_field_table ->Retornará o nome da tabela à qual o campo pertence.

3      MERCADO DE TRABALHO


            O Mercado de Trabalho para o profissional de DATA-BASES MYSQL é bastante promissor, porém é também muito dinâmico, conclusão a que se chega ao realizar uma pesquisa para DBA MYSQL com variados níveis de conhecimentos em Sites na internet retornou o seguinte resultado: 480 vagas em 429 oportunidades.    

4      CONCLUSÃO

             O MYSQL é um SGBD fruto resultante da compilação do que de melhor existia no UNIREG e no mSQL com implementações que o tornaram muito        robusto e excelentemente funcional, qualificado como software livre, permite seu uso que é compatível com muitas plataformas GNU sem custo algum, já em plataformas Windows é necessário adquirir uma licença.
            Por ser software livre e ter alta compatibilidade com a linguagem PHP muito usada nos sites de internet, atingiu um sucesso muito grande em um curto espaço de tempo tornando-se muito difundido e utilizado, contribuiu para isso também o fato de ser fácil de usar e requerer poucos recursos de Hardware.

5      REFERÊNCIAS BIBLIOGRÁFICAS

            MYSQL: The world’s most popular open source database,
            Wikipédia, a enciclopédia livre,
            Pt.wikipedia.org/
            Fórum Devmedia
            www.devmedia.com.br/

sexta-feira, 13 de junho de 2014

Stored Procedures



           Nessa minha primeira postagem sobre tecnologia da informação vou apresentar um trabalho sobre as Stored Procedures, eis o modelo do trabalho que foi apresentado:

Centro Universitário Módulo
Martim de Sá
Analise e Desenvolvimento de Sistemas




Banco de Dados Stored Procedures








Nilson Donizete Ribeiro da Silva












Caraguatatuba
2014


Nilson Donizete Ribeiro da Silva







Banco de Dados Stored Procedures




Trabalho apresentado como exigência para obtenção de conceito em Banco de Dados no curso de Analise e Desenvolvimento de Sistemas do Centro Universitário Módulo.
Professor especialista: Henrique Nunweiler Angelim Silva.












Caraguatatuba
2014
RESUMO



   Stored Procedure é procedimento que visa facilitar o trabalho junto ao SGBD, tornando mais rápidas as consultas e alterações.
   Quando utilizamos SP em nosso projeto, os procedimento de dados ficará centralizado no BD e os de aplicação na aplicação.
   Poderemos fazer também o tratamento de dados na camada de BD, tornando a aplicação mais limpa, só chamando o SP, assim o procedimento de analise, work-flow é feito no próprio BD.

Palavras-chave: SP, usp.


ABSTRACT



  Stored Procedure is procedure to facilitate the work with the DBMS, by speeding up queries and updates.
    When we use SP in our project, the data will be centralized procedure in the database and the application in the application.
    We may also make the processing of data in the BD layer, making the cleanest implementation, only calling the SP, so the procedure of analysis, work-flow is done in the database itself.

Keywords: SP,USP.


SUMÁRIO




1 INTRODUÇÃO


Ao desenvolvermos aplicações para acessarem banco de dados é necessário executarmos rotinas simples ou complexas de manipulação desses dados. As vezes é necessário utilizarmos várias instruções na linguagem em sequência para obter o resultado esperado.
Conforme a rotina a ser executada, pode requerer várias consultas e atualizações na base, e isto demanda um maior consumo de recursos pela aplicação, em se tratando de aplicações web uma maior quantidade de informações que precisam trafegar pela rede e de requisições ao servidor aumenta em muito essa demanda.
Demanda essa que pode ser atenuada transferindo parte do processamento direto para o banco de dados, isto em se considerando que as máquinas servidoras geralmente têm configurações de hardware mais robustas, porém o “Stored Procedures” (ou Procedimentos Armazenados, em português) faz-se necessário e torna -se extremamente útil.






2 STORED PROCEDURES

2 STORED PROCEDURES
São rotinas definidas no banco de dados, identificadas por um nome pelo qual podem ser chamadas. Esse tipo de procedimento pode executar uma série de instruções, receber parâmetros e retornar valores. Quando desenvolvemos aplicações para acessarem banco de dados é comum executarmos rotinas simples ou complexas de manipulação desses dados a partir da linguagem/ferramenta utilizada. Para isso, utilizamos várias instruções em sequência para obter o resultado esperado.
Dependendo da rotina a ser executada, pode haver várias consultas e atualizações na base, o que acarretara um maior consumo de recursos pela aplicação. E no caso de aplicações web, é maior a quantidade de informações que precisam trafegar pela rede e de requisições ao servidor.
Uma forma de atenuar esse consumo de recursos diretamente pela aplicação, é uma boa prática transferir parte do processamento direto para o banco de dados já que se Considera que as máquinas servidoras geralmente têm configurações de hardware mais robustas.
É para isso que usamos as “Stored Procedures” (ou Procedimentos Armazenados, em português).
Quanto as suas principais características podemos destacar:
       
2.1Desempenho.
É mais rápido que command sql, pois o procedimento de caminho fica registrado no BD (Banco de dados) e assim quando se executa a stored procedure o BD não precisa mapear o caminho.
2.2 Manutenção.
Quando tenho uma SP (stored procedure) que retorne só o campo nome de uma lista de produtos e quero inserir o codigo do produto junto com o nome, atraves de uma procedure eu concateno o codigo do produto no nome dele, e prontamente, onde se exibia o nome do produto agora será exibido o codigo + nome.
2.3 Organização.
Quando utilizamos SP em nosso projeto, os procedimento de dados ficará centralizado no BD e os de aplicação na aplicação.
2.4 Tratamento de dados.
Poderemos fazer também o tratamento de dados na camada de BD, tornando a aplicação mais limpa, só chamando o SP, assim o procedimento de analise, work-flow é feito no próprio BD.

2.5 Camada BD.
Quando for necessário fazer manutenções não será necessário mexer na aplicação, bastando para tanto alterar a SP e ja estará tudo resolvido.
Dentre as varias razões para se usar um SP, a mais presente é que se trata de  uma prática ja utilizada em grandes softwares e pode se utilizar um SP para fazer um procedimento de Select, Insert, Delete e/ou Update, podendo inclusive ter um select e um insert na mesma SP. 


3 CRIANDO O STORED PROCEDURE

/* Para se criar uma procedure é importante que se mantenha uma semântica, Ex. uspInserirTelefone para uma procedure que insere telefone,
onde estiver abreviado  usp, leia-se "user stored procedure" */
. /*Nílson*/
CREATE PROCEDURE uspInserirTelefoneTipo
      @IDTelefoneTipo INT,
      @DesTelefoneTipo VARCHAR(30)
AS
BEGIN
INSERT INTO tblTelefoneTipo
      (
      IDTelefoneTipo,
      DescTelefoneTipo
      )
VALUES
      (
      @IDTelefoneTipo,
      @DescTelefoneTipo
      )
END;


/*outro modelo usando o delimeter e excluíndo procedure já existente*/
--DELIMETER $$
      DROP PROCEDURE IF EXISTS CadastrarFuncionario $$ /*para excluir a procedure já existente*/
      CREATE PROCEDURE CadastrarFuncionario(uspnome varchar(34), uspsobrenome varchar(68), uspqtdfilhos Tinyint, uspsalario float)
      main: BEGIN
      if(uspnome'')then
                  Select 'O campo nome não pode estar vazio' as msg, 'erro de Cadastro' as msg;
                  leave main;
      end if;

      if Length(uspnome'<4 span="" then="">
                  Select 'O campo nome não pode ter menos de 4 letras' as msg, 'erro de Cadastro' as msg;
                  leave main;
      end if;

      if(uspsobrenome'')then
                  Select 'O campo sobrenome não pode estar vazio'as msg, 'erro de Cadastro' as msg;
                  leave main;
                 
      end if;
                  insert into Funcionario (nome, sobrenome, qtdfilhos, salario)values(uspnome, uspsobrenome, uspqtdfilhos, uspsalario);

                  Select 'Funcionario cadastrado com sucesso' as msg;

      END $$
      --DELIMETER;

  Aqui um SP bem básico, mas com parâmetros para inserir Funcionário
CREATE PROCEDURE uspInserirFuncionario
@nome varchar(130),
@Endereço varchar(120),
@cpf decimal(11,0).

AS
BEGIN
SELECT * FROM Funcionario
END

/*Observe que “uspInserirFuncionario” foi o nome que eu criei para a procedure, pode ser qualquer nome, o importante é usar um nome semântico. Por exemplo, uma procedure que faz o login, use o nome “sp_login”, ou “sp_faz_login”, note que é mais interessante sem underline já que SQL usa o _underline em suas bibliotecas  .*/
Aqui neste exemplo apresento um Select com parametros:
CREATE PROCEDURE uspVeiculos
      @id int
      AS
      BEGIN
      SELECT * FROM Veículos WHERE id=@id
      END
      Já este exemplo é um Select com multiplos parametros:
      CREATE PROCEDURE uspVeiculos
      @cor varchar(100),
      @placa varchar(100)
      AS
      BEGIN
      SELECT * FROM Veiculos WHERE cor=@cor and placa=@placa
      END

Este exemplo é um  Insert com multiplos parametros:
CREATE PROCEDURE uspVeiculos
@cor varchar(85),
@placa varchar(65),
@marca varchar(185)
AS
BEGIN
INSERT INTO Veiculos(marca, placa, cor)
VALUES(@marca,@placa,@cor)
END
Pode se fazer  também um update com multiplos parametros:
CREATE PROCEDURE uspVeiculos
@cor varchar(85),
@placa varchar(65),
@marca varchar(185)
AS
BEGIN
UPDATE carro SET cor=@cor, marca=@marca WHERE placa=@placa
END
 Neste exemplo usei um Select e Insert:
CREATE PROCEDURE uspVeiculos
@placa varchar(85)
AS
BEGIN
SELECT * FROM carro WHERE placa=@placa
INSERT INTO log_placa_pesquisada(placa)
VALUES(@placa)
END




4 ALTERANDO UMA STORED PROCEDURE

Por vezes quando criamos uma Stored Procedure, notamos que se faz necessário ajustá-las por algum motivo, um parâmetro ou uma simples virgula, note que não é necessário excluir, deletar ou aplicar drop procedure, basta clicar duas vezes sobre o CREATE e Digitar ALTER, para alterar a procedure e assim fazer quantas alterações  forem necessárias como no exemplo a seguir:
Primeiro Criando a Procedure,
CREATE PROCEDURE uspInserirTelefoneTipo
      @IDTelefoneTipo INT,
      @DesTelefoneTipo VARCHAR(30)
AS
BEGIN
INSERT INTO tblTelefoneTipo
      (
      IDTelefoneTipo,
      DescTelefoneTipo
      )
VALUES
      (
      @IDTelefoneTipo,
      @DescTelefoneTipo
      )
END;

Depois Alterando a Procedure,
ALTER PROCEDURE uspInserirTelefoneTipo
      @IDTelefoneTipo INT,
      @DesTelefoneTipo VARCHAR(30)
AS
BEGIN
INSERT INTO tblTelefoneTipo
      (
      IDTelefoneTipo,
      DescTelefoneTipo
      )
VALUES
      (
      @IDTelefoneTipo,
      @DescTelefoneTipo
      )
END;




5 CONCLUSÃO

Apresentei aqui o que vi sobre o que é e como funciona uma Stored Procedures, entendi que em geral essas premissas vale (para qualquer banco) e principalmente como trabalhar com essa estrutura no banco de dados MYSQL usando diversos parâmetros e declarando variáveis, porém é bom salientar que o código de um procedimento pode conter inúmeras linhas e serem muito mais complexos, eu apresentei exemplos simples e básicos.