domingo, 7 de setembro de 2014

Introdução ao MySQL



Veja neste artigo uma breve apresentação e introdução ao Sistema Gerenciador de Banco de Dados relacional MySQL, um dos mais utilizados atualmente.



Logomarca do MySQL

Introdução

Neste artigo teremos como objetivo conhecer um pouco sobre MySQL, que é um SGBD (Sistema Gerenciador de Banco de Dados) relacional, que utiliza a linguagem SQL (Structured Query Language, ou traduzindo, Linguagem de Consulta Estruturada). MySQL também é multiusuário e multitarefas.
Este SGBD inicialmente foi desenvolvido para trabalhar com projetos de pequeno e médio porte, com a capacidade de suportar por volta de cem milhões de registros em cada tabela, podendo chegar ao tamanho médio de aproximadamente cem megabytes por tabela, entretanto, esses eram os tamanhos recomendados nas primeiras versões. Porém, hoje em dia o MySQL ultrapassa extraordinariamente esses limites e capacidades das versões anteriores.
MySQL é conhecido por ser de fácil utilização, e usado por empresas que trabalham com grandes volumes de dados, tais como, NASA, Bradesco, HP, Sony entre outras grandes empresas de renome. Possui uma interface extremamente simples e é compatível com grande parte dos sistemas operacionais. Podemos dizer que essas são duas das grandes características que fazem o MySQL ser tão utilizado atualmente e estar em constante crescimento.
Mesmo sendo um dos bancos de dados mais utilizando em todo o mundo, MySQL continua em constante desenvolvimento, com atualizações frequentes.

Compatibilidade

MySQL é compatível com a maioria dos sistemas operacionais existentes atualmente no mercado. Pelo fato de ser desenvolvido em C e C++, isso faz com que seja extremamente fácil sua acessibilidade entre os diversos sistemas operacionais. Vejamos alguns desses sistemas.
  • Windows: Compatível com todas as versões
  • Linux: Sendo compatível com as principais versões, como Fedora, Core, Debian, SuSE e RedHat.
  • Unix: Sendo compatível com as versões Solaris, HP-UX, AIX, SCO.
  • FreeBSD.
  • Mac OS X Server.

Licença

O MySQL é de Código Aberto (Open-Source), desenvolvido e distribuído sob as licenças GNU/GLP (General Public Licence, ou traduzindo, Licença Publica Geral), q qual determina o que se pode ou não fazer à ferramenta e demais recursos. Além do programa, o seu código-fonte também é disponibilizado para que qualquer usuário possa edita-lo de forma que atenda suas necessidades.
Os princípios básicos da licença GNU/GLP são:
  • Utilização: Permite que o usuário faça uso do software para qualquer finalidade.
  • Distribuição: Livre distribuição do software entre quaisquer pessoas.
  • Didática: Permite que seu funcionamento seja estudado através de seu código-fonte
  • Colaboração: Possibilita que seu código-fonte seja modificado para evoluir a ferramenta. Como regra seu novo código-fonte tem que permanecer sendo livre segundo essa licença.

Características

  • Portabilidade: Devido o MySQL ter sido desenvolvido em C e C++, tornou-se extremamente fácil a portabilidade entre os diferentes sistemas, plataformas e compiladores. Possui também módulos de interface para múltiplas linguagens, tais como Delphi, Java, Python, PHP, ASP, Ruby e entre outras linguagens mais.
  • Formas de Armazenamento: O MySQL possibilita diversos tipos de tabela para o armazenamento dos dados, tendo em conta que cada tipo tem suas próprias características. Dessa maneira temos a possibilidade de escolhermos o tipo de acordo com cada situação diferente. Enquanto um tipo tem como prioridade a velocidade, outro da prioridade ao volume de dados, entre outras características.
  • Velocidade: Alta velocidade no acesso dos dados em razão de diversos motivos em seu desenvolvimento com tabelas ISAM, que foi substituído pelo novo sistema MyISAM na versão 5 do MySQL, além de utilização de caches em consultas, utilização de indexação BTREE para as tabelas do tipo HEAP, algoritmos de busca, entre outros recursos.
  • Capacidade: O MySQL possui um alto poder de execução e de armazenamento. De acordo com a plataforma em que seja usado, suas tabelas poderão armazenar grandes volumes de dados, o limite ficará por conta somente do tamanho máximo de arquivos que a plataforma que estiver sendo utilizada puder manipular. Já no caso de tabelas do tipo InooDB, onde o armazenamento pode ser realizado em um ou vários arquivos separados, fica possível armazenar volumes de dados equivalentes a TB (Terabytes) de tamanho. E referente a expressões SQL, o MySQL suporta execuções de script SQL com até 61 milhões de tabelas “joins”. E no quesito de velocidade de execução, o MySQL pode ser considerado um dos mais velozes, isso é, se não podemos dizer que é o mais veloz.
    O MySQL, por ser um banco de dados poderoso, tem a capacidade de realizar bilhões de consultas em um único dia em um site e também fazer o processamento de milhões de transações por minuto.
  • SQL: Como já sabemos, o MySQL trabalha com a linguagem SQL (Structured Query Language, ou traduzindo, Linguagem de Consulta Estruturada), sendo extremamente rápido. E isso foi possível devido a SQL ter sido implementada no MySQL através de códigos e funções altamente customizadas pelos seus desenvolvedores. Isso gerou a grande vantagem de velocidade no processamento dos códigos SQL, porém, ao mesmo tempo trouxe um ponto negativo, sendo ele o fato de que com essa customização, nem todos os padrões das versões mais atuais do SQL tenham sido trazidos para o MySQL, porque poderiam prejudicar consideravelmente a velocidade do banco de dados. Entretanto, essa desvantagem não influencia em nada na aplicação.

Conclusão

Neste artigo concluímos que o MySQL é um excelente banco de dados para ser utilizado em aplicações que trabalham com grandes volumes de dados, além de ser compatível com diversos sistemas operacionais e que vem em constante evolução ao decorrer de cada nova versão lançada. Espero que o tema tenha sido do agrado e compreensão de todos os leitores. Fiquem à vontade para deixar suas opiniões, criticas, duvidas e sugestões.
Um grande abraço a todos e até mais.

quarta-feira, 3 de setembro de 2014

Av2 - Tec. Analise e Desenv. Sist. - Bancos de Dados II

1) Ao tratarmos de recuperação e atomicidade, dentro das falhas possíveis, podemos afirmar que:

Alternativas:
  • a) Falha de disco é considerada um problema de hardware, onde geralmente é necessária a intervenção de um técnico. Alternativa assinalada
  • b) Existem 4 modalidades de falha possível (sem informação nenhuma, com todas as informações, com perda de informação e sem perda de informação).
  • c) A falha provocada por hardware é resolvida analisando o programa e corrigindo o problema.
  • d) Falha com perda de informação é resultado do SGBD incompatível com o sistema operacional do servidor.
2) Quanto aos tipos de falha possíveis, podemos afirmar que:

Alternativas:
  • a) Uma falha de construção do SGBD pode ser recuperada pela Sistema Operacional do servidor de banco de dados.
  • b) Um erro de sistema não significa que o aplicativo esteja errado, se executar novamente poderá não mais apresentar o erro. Alternativa assinalada
  • c) Erros lógicos devem obrigatoriamente ser tratados pelo fabricante do SGBD.
  • d) Um erro no check byte de verificação compromete a consistência do banco de dados.
3) O gráfico do estado da transação nos permite interpretar e acompanhar cada estado possível da transação, dentro deste cenário, podemos afirmar que:

Alternativas:
  • a) Uma transação falhada pode ser parcialmente compromissada se o erro for detectado a tempo.
  • b) Uma transação falhada pode ser compromissada.
  • c) Uma transação ativa pode ser parcialmente compromissada ou falhada. Alternativa assinalada
  • d) Uma transação abortada pode ser parcialmente compromissada depois de tratado o erro.
4) O Escalonamento de transações permite afirmar que:

Alternativas:
  • a) No escalonamento serial, as transações são processadas no dia seguinte.
  • b) No escalonamento não serial, o banco de dados interage com o sistema operacional.
  • c) O escalonamento serial utiliza portas USB 3.0.
  • d) O escalonamento de transações permite representar a ordem cronológica das transações. Alternativa assinalada
5) Quando os SGBDs precisam controlar os acessos aos dados gravados no banco, são utilizados protocolos de bloqueio neste auxilio, então podemos afirmar que:

Alternativas:
  • a) Protocolo de bloqueio de tres fases tem a fase de crescimento, a fase de amadurecimento e a fase de encolhimento.
  • b) Protocolo de bloqueio de duas fases tem a fase start e a fase finish.
  • c) Protocolo de bloqueio baseado em marcado de tempo usa duas variáveis internas chamadas w-timestamp e r-timestamp. Alternativa assinalada
  • d) Protocolo de bloqueio seqüencial tem a fase apropriativa e a fase transacional.
SEQUÊNCIA

1 - A
2 - B
3 - C
4 - D
5 - C

100% correta.

Av1 - Tec. Analise e Desenv. Sist. - Bancos de Dados II

1) Dentro do conceito de transações, aparecem as propriedades ACID onde cada propriedade demonstra uma característica essencial para o banco de dados.
A capacidade de garantir a execução total e completa da transação é representada por qual propriedade?

Alternativas:
  • a) Integridade
    Alternativa assinalada
  • b) Consistência
  • c) Atomicidade
  • d) Durabilidade
2) Para encerrar uma transação podemos utilizar o comando Commit, esta ação desencadeia as seguintes consequências no banco de dados:

Alternativas:
  • a) As operações desta transação e das outras transações concorrentes que envolvem o comando select em todas as tabelas são executadas simultaneamente.
  • b) As operações desta transação que envolvem atualização de dados no banco de dados são confirmadas (insert, update e delete).
    Alternativa assinalada
  • c) As operações de todas as transações que estão em andamento no banco de dados são Comitadas (confirmadas) em conjunto gerando o multiplo-commit.
  • d) As operações de todas as outras transações são suspensas até que um próximo comando Commit seja executado.
3) Quando tratamos de independência de transação, podemos afirmar que:

Alternativas:
  • a) A independência de transação garante que cada transação seja executada uma de cada vez, montando uma fila paralela de acordo com a quantidade de núcleos do processador do servidor de banco de dados.
  • b) A independência de transação foi conseguida somente depois que os processadores passaram a tratar 32 bits.
  • c) A independência de transação garante que um programa possa acessar dois bancos de dados diferentes ao mesmo tempo.
  • d) A independência de transação garante que podemos executar dois programas diferentes no mesmo banco de dados que uma transação não vai atrapalhar a outra transação, desde que o acesso seja em dados diferentes.
    Alternativa assinalada
4) O SGBD utiliza este recurso para registrar todas as transações e operações que são realizadas dentro do banco de dados, assim quando o SGBD necessitar destas informações para um processo de recuperação de banco de dados, estas informações estarão disponíveis. Este recurso é conhecido como:

Alternativas:
  • a) LOG do banco de dados.
    Alternativa assinalada
  • b) BLOG do banco de dados.
  • c) JOURNAL do banco de dados.
  • d) REGISTER do banco de dados.
5) Quando tratamos de Escalonamento de tarefas, podemos afirmar que:

Alternativas:
  • a) O Escalonamento de tarefas é uma situação onde o programa que recebe o erro é aquele que foi escolhido pelo Sistema Operacional para ser abortado.
  • b) O Escalonamento de tarefas é um problema que o SGBD não consegue tratar.
  • c) O Escalonamento de tarefas representa a ordem cronológica dos acontecimentos no banco de dados.
    Alternativa assinalada
  • d) O Escalonamento de tarefas é uma situação onde três programas desejam o mesmo dado.



SEQUÊNCIA

1 - A
2 - B
3 - D
4 - A
5 - C

100% correta.

segunda-feira, 1 de setembro de 2014

MySql Error 1005: Can’t create table (errno: 150)

Vira e meche entre uma modelagem e outra eu me deparo com o seguinte erro “Error 1005: Can’t create table (errno: 150)” enquanto estou trabalhando com uma Foreign Key.
Isso quer dizer que tem algo errado (lógico) do qual esteja impedindo a criação de sua nova Foreign Key, segue abaixo os erros mais comuns:
  • Os dois campos relacionados da Foreign Key não tem o mesmo tipo ou tamanho. Por exemplo, se um campo é INT(10) o campo da chave precisa ser INT(10) também, se for colocado INT(11) ou TINYINY já não serve. Você deve verificar esses dados usando a query “SHOW CREATE TABLE tblname;”. Também confirme se ambos os campos são ‘signed’ ou ‘unsigned’. Conclusão, os campos devem ser EXATAMENTE o mesmo!
  • O campo do qual você deseja se referenciar em outra tabela não tem um índice (index) ou não é uma chave primária (primary key). Se um dos campos que você deseja criar a relação não for uma “primary key”, você deve criar um índice para ela.
  • O nome da Foreign Key já existe em alguma chave. Confira se o nome de sua Foreign Key é única no seu banco de dados. Simplesmente adicione alguns caracteres aleatórios no fim do nome de sua key para testar essa condição.
  • Uma ou ambas as tabelas são MyISAM. Para utilizar Foreign Key ambas as tabelas devem usar InnoDB. Normalmente quando ambas as tabelas são MyISAM o MySQL não apresenta nenhuma mensagem de erro, simplesmente não cria a chave.
  • Você pode ter especificado “CASCADE ON DELETE SET NULL”, enquanto o campo é “NOT NULL”, esse é o erro mais comum.
  • Se o seu script está funcionando perfeitamente em um server, mas não em outro, verifique o collate ou charset, eles podem dar problemas caso sejam diferentes.
  • Você pode ter um valor default (ex. default=0) na sua coluna Foreign Key.
  • O nome de sua Foreign Key excede o limite de no máximo 64 caracteres.
Bem.. eu acredito que a maioria dos erros sejam causados por esses motivos acima, caso você tenha passado por esse problema e a causa tenha sido diferente, colabore.
Boa Sorte!
Texto retirado do site http://diariodecodigos.info
Todos os créditos para http://diariodecodigos.info

Portfolio Individual - Curso Superior de ADS - VI Semestre

SISTEMA DE ENSINO PRESENCIAL CONECTADO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS WANDERLEY NUNES CRISTO PRO...