sábado, 30 de novembro de 2013

Modelagem e projeto de banco de dados com o DBDesigner

DBDesigner

DBDesigner é uma ferramenta para projeto de banco de dados que integra a modelagem, projeto, implementação e manutenção em um mesmo ambiente. Desenvolvida pela empresa Fabulous Force Database Tools, atualmente encontra-se na versão 4 e está disponível para download em www.fabforce.net para plataformas Window e Linux (disponibilizada sob a licença GLP).

DBDesigner é direcionada para o desenvolvimento de banco de dados com o SGBD MySQL, portanto, para utilizarmos todas as funcionalidades desta ferramenta, faz-se necessário a instalação prévia do MySQL. Assumiremos aqui que o MySQL já está instalado e ativo em seu computador. Maiores informações sobre o MySQL podem ser encontradas em www.mysql.com.

Ao utilizar a ferramenta DBDesigner, você sempre trabalha com um modelo. Um modelo é uma visualização de uma meta-informação armazenada em uma base de dados (tabelas, relações, índices, etc). Dessa forma é possível definir e armazenar dados em tabelas diretamente no modelo.

Você pode criar e manter muitos modelos conforme a sua necessidade, contendo um número ilimitado de objetos. Quando se fala em objetos estamos nos referindo a tabelas, colunas, índices, relações entre tabelas e anotações, dentre outros.

Projetando o banco de dados

O projeto de um novo banco de dados dá-se em duas fases:

Modelagem conceitual. Nesta fase, é construído um modelo conceitual na forma de um diagrama entidade-relacionamento (DER). Este modelo captura as necessidades da organização em termos de armazenamento de dados de forma independente de implementação.

Projeto lógico. Esta etapa objetiva transformar o modelo conceitual obtido na primeira fase em um modelo lógico. O modelo lógico define como o banco de dados será implementado em um SGBD específico.

Vamos implementar a partir de agora o modelo conceitual de banco de dados da Figura 1 para descrever algumas funcionalidades da ferramenta. O exemplo se baseará no modelo conceitual de uma Locadora de Filmes (retirado do livro do Prof. Dr. Carlos Alberto Heuser, intitulado Projeto de Banco de Dados).



Figura 1. Modelo conceitual de uma locadora.

Começando com o DBDesigner

A interface da ferramenta DBDesigner adota o layout padrão de softwares atualmente utilizados, tornando sua utilização muito fácil e intuitiva. Como pode ser visualizado na Figura 2, existem quatro principais áreas de trabalho:

  • a paleta de ferramentas (Palete Tools): contendo as principais funcionalidades da ferramenta;
  • a paleta de navegação (Palete Navigation & Info): que permite a visualização, zoom e navegação de uma determinada região do modelo;
  • a paleta de tipos de dados (Palete Datatypes): que permite a visualização e definição de vários tipos de dados especificados para os campos das tabelas;
  • a paleta do modelo (Palete Model): que permite a visualização e definição de todos os objetos do modelo (tabelas, índices, relações, etc).



Figura 2. Interface gráfica da ferramenta DBDesigner.

Modelando tabelas e relacionamentos

Tabelas são os componentes centrais no projeto de banco de dados relacionais. Relações conectam diferentes tabelas, cada qual com a sua forma: um-para-um, um-para-muitos, muitos-para-muitos e especializações/generalizações, dentre outras.

Para criar tabelas, selecione o botão Nova Tabela (New Table) e clique na área de desenho. Feito isto, uma nova tabela é inserida e é dado para ela o nome padrão de Table_ seguido do número de ocorrência do objeto.

Dando-se um duplo clique sobre a tabela criada, será apresentada a janela da Figura 3 onde podemos definir, entre outras coisas, o nome da tabela, tipo da tabela, e sobretudo os campos que a compõem.

Definindo os campos da tabela

Para definirmos os campos, basta apenas selecionar Colunm Name (Nome da Coluna) e digitarmos o nome do campo. Em seguida, escolher seu tipo (DataType), definir se o campo será obrigatório ou opcional (NN), auto incrementado (Al), dentre outros.


Figura 3. Janela de edição de tabelas.

Depois de definirmos todas as tabelas conforme nosso modelo conceitual (Figura 1), teremos o resultado apresentado na Figura 4.


Figura 4. Resultado da implementação do modelo conceitual utilizando DBDesigner.

Definindo os relacionamentos

Seguindo nosso exemplo, vamos estabelecer o relacionamento entre as tabelas FITA e CLIENTE. Essa relação foi definida como sendo do tipo um-para-muitos (1,N), ou seja, um CLIENTE pode tomar emprestado muitas fitas e uma fita é emprestada a, obrigatoriamente, um e somente um cliente em um dado momento. Para definir as relações entre as tabelas, selecione o botão apropriado na barra de ferramentas (New 1:n Relation) e clique na tabela CLIENTES, e em seguida na tabela FITA. Note que existem duas opções para definirmos relacionamentos 1:N e 1:1: identificado ou não-identificado. A diferença entre elas é que na opção identificado, a chave estrangeira criada na tabela apropriada será definida, também, como chave primaria. Já na opção não-identificada, a chave estrangeira não será definida como chave primária. Essa definição caberá ao projetista do banco. Veja o resultado destas ações na Figura 5.




Figura 5. Definindo relacionamentos.

Observe que a cardinalidade N é substituída pelo símbolo * (asterisco) (ler Nota 1) junto à tabela CLIENTE e, além disso, é adicionada a chave estrangeira (FK) à tabela FITA referente à tabela CLIENTE. Dessa forma, todo o processo de definição de chaves estrangeiras é automatizado de forma muito simples.

Dando um duplo clique sobre a relação, podemos verificar suas propriedades, conforme mostra a Figura 6.




Figura 6. Janela de edição do relacionamento.

Nota 1. Configurando a notação utilizada.

Podemos escolher entre várias notações na ferramenta DBDesigner. Para isso, vá ao menu Display | Notation e escolha a notação desejada. Escolhendo, por exemplo, a notação Crows Foot (notação de James Martin sob a ótica de engenharia de informação, também conhecida como “pé-de-galinha”), todo o modelo será redefino. Veja o resultado dessa escolha na Figura 7. Observe que a cardinalidade N foi substituída pelo símbolo apropriado que ficou junto à tabela FITA.


Figura 7. Notação.

Depois de definirmos todos os relacionamentos, teremos o modelo apresentado na Figura 8.


Figura 8. Resultado da modelagem.

Perceba que quando temos um relacionamento de muitos-para-muitos (N:M), a ferramenta cria automaticamente uma tabela para implementar esse tipo de relação. Esse caso pode ser verificado na relação da tabela FILME com a tabela ATOR.

Leia mais em: devmedia

Tutorial básico - Banco de dados Mysql

O programa de instalação é facilmente encontrado neste link:

http://www.mysql.com/downloads/mysql/

PASSO A PASSO – INSTALAÇÃO:

Após a instalação normal do programa, abre uma tela para a configuração. A partir daí, siga os passos abaixo:


1. Escolha a opção de configuração detalhada.

2. Selecione Developer Machine.


3. Selecione Banco de Dados Multifuncional


4. Selecione o disco local C: e selecione DATA
(certifique-se que o disco local C: não esteja protegido contra gravação)


5. Selecione a opção OLAP para determinar o número de conexões.


6. Habilite a porta 3309 e a conexão TCP.


7. Selecione o padrão de linguagem (Standart)


8. Habilite as 2 opções de instalação dos serviços.


9. Coloque a senha de administração.


10. Espere a finalização da instalação.

Após terminar a instalação, acesse o painel de controle.

Menu Iniciar -> Programas -> MySql -> MySql Command Line
(Coloque sua senha cadastrada)

PASSOS PARA A CRIAÇÃO DE UM BANCO DE DADOS SIMPLES:

Todo banco de dados necessita de uma tabela, que é o local onde armazenamos as informações cadastradas.

1.Para criar uma tabela, digite:

create database amigos;

NÃO SE ESQUEÇA DO ; (PONTO E VÍRGULA)


2. Vamos visualizar quais as tabelas existentes, digite:
show databases;

3. Para cadastrar algo em sua tabela, temos que selecionar a tabela desejada. Para isso digite:
use amigos;

4. Vamos criar uma tabela com os seguinte campos:
CÓDIGO, NOME e TELEFONE.

Digite a seguinte sequência:

create table cad1 (
cod int(5) not null,
nome varchar(4) not null,
telefone varchar(40),
primary key(cod) );

* A opção INT em COD é para determinar que o campo será em números inteiros.
* A opção Varchar em Nome é para determinar que o campo será composto por caracteres.
* A linha Primary Key é para determinar que o campo COD será a chave primária da tabela.

5. Para cadastrar as pessoas na tabela terá que digitar:

Insert into cad1 values (1,’danilo’,’2341-1010’);

Cada cadastro terá que ter seus campos separados por vírgula e somente a chave primária será sem aspas, como visto acima.

6. Para visualizar os cadastros você deve digitar:
Select * from cad1;


Basta seguir os passos direitinho e não esquecer de colocar o ";"

quinta-feira, 28 de novembro de 2013

Exemplo de conexão com banco de dados Mysql utilizando o PHP

<?php
header("Content-Type: text/html; charset=ISO-8859-1",true) ;
 $host = "127.0.0.1";
$usuario = "root";
$senha = "123456";
$db = "pontoeletronico";
mysql_connect($host, $usuario, $senha);
 mysql_select_db($db);
$sql = "select codigo, nome from funcionario order by nome";
$qr = mysql_query($sql);
 ?>

<html >
     <head>
           <title>Exemplo de Conexão PHP ao Banco de dados Mysql</title>
</head>
<body>
<form name="form" id="form" method="POST" action="retorno.php">
                 <strong>USUÁRIO:</strong><br />
                 <select name="usuario" id="jumpMenu">
<?php
while($row = mysql_fetch_array($qr)) {
        echo "<option name='codigo' value='".$row['codigo']."'>".$row['nome']."</option>"; }
?>
                 </select><br />
                <input type="Submit" name="Submit" id= "go_button" value="Gravar"  />
           </form>
</body>
</html>

segunda-feira, 25 de novembro de 2013

Trabalhando com Horário de Verão com PHP

Nesse primeiro post mostro como devemos tratar o horário de verão no PHP para que não tenhamos problemas na inserção de dados no Banco de Dados.

Podemos definir  no inicio do código a "Time zone" que usaremos, nesse caso estou usando o horário do nordeste onde não é afetado pelo horário de verão
<?php
date_default_timezone_set("America/Recife");

... ?>

Lista de Timezones Suportados

Apresentação do Blog

Este blog foi criado para compartilhar conhecimentos tanto da área de informática quanto na área de administração de empresas.

Boa leitura!

Jefferson Diego
Bacharel em Administração de Empresas - CRA: 04616


"Um dia sem rir é um dia desperdiçado." (Charles Chaplin)