Treinamento PHP
Módulo 2
PHP Avançado
“Está conosco o Senhor dos Exércitos”
Waelson Negreiros
[email protected]
waelson.com.br
Agenda
MySQL Command Line
 O que é Banco de Dados?
 Projeto de Banco de Dados

MySQL Command Line
MySQL Command Line

O que é?
 Ferramenta
de linha de comando
 Interface via shell
MySQL Command Line

Como acessar?
 No
menu executar digite:
cmd
 Com
o prompt aberto digite:
mysql –u root –p
Assegure-se que os binários do MySQL estejam
no path do DOS
MySQL Command Line
MySQL Command Line

Como proceder?
 Use
o comando “show databases;” para
listar os bancos de dados existentes
 Selecione um banco de dados, para isso use o
comando “use <database>;”
 Para verificar as tabelas digite “show
tables;”
 Faça uma consulta teste, digite: “select *
from <tabela>;”
 Para sair digite “quit”;
MySQL Command Line

Obtendo mais ajuda
 Digite
“help;”
O que é Projeto de Banco?
O que é Projeto de Banco?

Histórico
 Início

da computação:
Dados guardados em arquivos de texto
 Problemas
nesse modelo:
Redundância não-controlada de dados
 Aplicações devem se preocupar com a forma de
armazenamento dos dados

 Início

dos anos 60:
Primeiros bancos de dados
O que é Projeto de Banco?

Bancos de dados são conjuntos de dados
integrados que tem por objetivo atender
a uma comunidade de usuários
 Redundância
controlada
 Dados armazenados de forma mais
consistente
 Gerenciamento facilitado
O que é Projeto de Banco?

O que é um SGDB?
 SGBD:
Sistema Gerenciador de Banco de
Dados
 SGBD
é um software que incorpora as
funções de definição, recuperação e
alteração de dados em um banco de dados
O que é Projeto de Banco?

Exemplos
 MySQL
 Oracle
 SQL
Server
 Postgres
 DB2
 SQLite
O que é Projeto de Banco?

Banco de Dados x SGBD
 Banco
de Dados: um modelo, uma abstração
 SGBD: classe de softwares
O que é Projeto de Banco?

O que é Modelo de Dados?
 Descrição
formal da estrutura de um banco
de dados.
 Exemplos:
Modelos Navegacionais
 Modelo Orientado a Objetos
 Modelo Relacional (mais usado)
 Modelo de Entidades e Relacionamentos
(conceitual)

Projeto de Banco de Dados
Projeto de Banco de Dados

Atividade de modelagem de dados em
vários níveis de abstração

Modelagem Conceitual (projeto conceitual)

Modelagem Lógica (projeto lógico)

Modelagem Física (implementação)
Projeto de Banco de Dados

Modelagem Conceitual
 Abstração
de mais alto nível
 Objetivo:
Representação dos requisitos de
dados do domínio
 Independente
de modelo de banco de dados
Projeto de Banco de Dados

Vantagens da Modelagem Conceitual
 Independente
de detalhes de implementação
em um SGBD
 Facilita
a compreensão da semântica dos
dados de um domínio
 Melhor
compreendido por usuários leigos
Projeto de Banco de Dados

Modelagem Lógica
 Representação
da modelagem conceitual em
um modelo
 Ênfase
 Evitar:
na eficiência de armazenamento
muitas tabelas (e junções); tabelas
sub-utilizadas.
Projeto de Banco de Dados

Modelagem Física
 Esquema
SQL para a modelagem lógica
 Dependente
 Ênfase

de SGBD
na eficiência de acesso
Implementação de consultas, índices,...
Projeto de Banco de Dados

Modelo Entidade-Relacionamento
 Criado
por Peter Chen em 1976
 Padrão
de modelagem conceitual de BD
 Um
esquema conceitual de dados é também
chamado de esquema ER ou diagrama ER
Projeto de Banco de Dados

Conceitos do Modelo ER
 Entidade
Abstração de um fato do mundo real para o qual
se deseja manter seus dados no BD
 Simbologia: retângulo nomeado

Projeto de Banco de Dados

Conceitos do Modelo ER
 Relacionamento
Abstração de uma associação entre (ocorrências
de) entidades
 Simbologia: losango nomeado

Projeto de Banco de Dados

Conceitos do Modelo ER
 Relacionamento
Projeto de Banco de Dados

Conceitos do Modelo ER
 Cardinalidade

Máxima
Quantidade máxima de ocorrências de entidades
que podem estar associadas a uma ocorrência de
outra entidade (1 ou N)
Projeto de Banco de Dados

Conceitos do Modelo ER
 Cardinalidade
Máxima
Projeto de Banco de Dados

Conceitos do Modelo ER
 Cardinalidade

Mínima
Indica se a participação das ocorrências de
entidades no relacionamento é obrigatória ou
opcional
Projeto de Banco de Dados

Conceitos do Modelo ER
 Cardinalidade
Mínima
Projeto de Banco de Dados

Conceitos do Modelo ER
 Auto-Relacionamento
Representa uma associação entre ocorrências de
uma mesma entidade
 Exige a identificação de papéis

Projeto de Banco de Dados

Conceitos do Modelo ER
 Auto-Relacionamento
Projeto de Banco de Dados

Conceitos do Modelo ER
 Relacionamento
“N”-ário
Abstração de uma associação entre “N”
(ocorrências de) entidades
 Exemplo: relacionamento ternário

Projeto de Banco de Dados

Conceitos do Modelo ER
 Atributo

Abstração de uma propriedade de uma entidade
ou de um relacionamento
Projeto de Banco de Dados

Conceitos do Modelo ER
 Classificação
de Atributos
obrigatórios X opcionais
 monovalorados X multivalorados
 simples X compostos

Projeto de Banco de Dados

Conceitos do Modelo ER
 Identificação
de Entidades
Atributos identificadores distinguem ocorrências
de uma entidade umas das outras.
 Garantem o acesso individualizado a uma
ocorrência de entidade no BD

Projeto de Banco de Dados

Conceitos do Modelo ER
 Identificação

de Relacionamentos
Um relacionamento é identificado implicitamente
pelo conjunto de identificadores das ocorrências
de entidades que participam dele
Projeto de Banco de Dados

Conceitos do Modelo ER
 Identificação

de Relacionamentos
Atributos identificadores adicionais podem ser
necessários para definir a identificação de um
relacionamento
Projeto de Banco de Dados

Conceitos do Modelo ER
 Restrições
de Domínio
O modelo ER não é capaz de expressar todas as
RIs de um domínio de aplicação
 Uma documentação em anexo pode ser necessária

Projeto de Banco de Dados

Conceitos do Modelo ER
 Restrições
de Domínio
Exercício I

Administradora de Imóvel
Uma entrevista com o gerente da administradora
resultou nas seguintes informações:
 A administradora administra condomínios formados
por unidades condominiais (lotes);
 Cada unidade condominial é de propriedade de uma
ou mais pessoas. Uma pessoa pode possuir diversas
unidades;
 Cada unidade pode estar alugada para no máximo
uma pessoa. Uma pessoa pode alugar diversas
unidades.
Defina os atributos que julgares necessário.
Exercício II

Administradora de Imóvel
Em uma clínica trabalham médicos e existem pacientes
internados. Cada médico é identificado pelo seu CRM, possui
um nome e recebe um salário na clínica. Um médico tem
formação em diversas especialidades (ortopedia,
traumatologia, etc), mas só exerce uma delas na clínica. Para
todo paciente internado na clínica são cadastrados alguns
dados pessoais: nome, RG, CPF, endereço, telefone(s) para
contato e data do nascimento. Um paciente tem sempre um
determinado médico como responsável (com um horário de
visita diário predeterminado), porém vários outros médicos
podem participar do seu tratamento. Pacientes estão sempre
internados em quartos individuais, que são identificados por um
número e ficam em um andar da clínica.
Defina os atributos que julgares necessário.
Projeto de Banco de Dados

Modelagem Lógica
 Conceitos

Chave-Primária:


Conjunto mínimo de um ou mais atributos e
relacionamentos cujos valores servem para distinguir
uma ocorrência da entidade das demais ocorrência da
entidade das demais ocorrências da mesma entidade
Chave-Estrangeria

conjunto de um ou mais atributos e relacionamentos
cujos valores aprecem necessariamente em outra
entidade como chave-primária (Primary Key)
Projeto de Banco de Dados

Modelagem Conceitual
 Relacionamento
“um-para um”
Projeto de Banco de Dados

Modelagem Conceitual
 Relacionamento
“um-para-muitos”
Projeto de Banco de Dados

Modelagem Conceitual
 Relacionamento
“muitos-para-muitos”
Projeto de Banco de Dados

Modelagem Conceitual
 Auto-Relacionamento
“um-para-muitos”
Projeto de Banco de Dados

Modelagem Conceitual
 Auto-Relacionamento
“muitos-para-muitos”
Bibliografia



Melo, Tiago. Projeto de Banco de Dados, 2009
MySQL Dev, www.mysql.org
IMasters, http://imasters.uol.com.br
Download

Módulo 2 - Waelson Negreiros