Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros [email protected] waelson.com.br “Está...

48
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros [email protected] waelson.com.br “Está conosco o Senhor dos Exércitos”

Transcript of Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros [email protected] waelson.com.br “Está...

Page 1: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Treinamento PHP

Módulo 2PHP Avançado

Waelson [email protected]

waelson.com.br“Está conosco o Senhor dos Exércitos”

Page 2: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Agenda

MySQL Command Line O que é Banco de Dados? Projeto de Banco de Dados

Page 3: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

MySQL Command Line

Page 4: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

MySQL Command Line

O que é?Ferramenta de linha de comando Interface via shell

Page 5: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

MySQL Command Line

Como acessar?No menu executar digite:

cmdCom o prompt aberto digite:

mysql –u root –p

Assegure-se que os binários do MySQL estejamno path do DOS

Page 6: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

MySQL Command Line

Page 7: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

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”;

Page 8: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

MySQL Command Line

Obtendo mais ajudaDigite “help;”

Page 9: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

O que é Projeto de Banco?

Page 10: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

O que é Projeto de Banco?

Histórico Início da computação:

Dados guardados em arquivos de textoProblemas 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

Page 11: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

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 controladaDados armazenados de forma mais

consistenteGerenciamento facilitado

Page 12: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

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

Page 13: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

O que é Projeto de Banco?

ExemplosMySQLOracleSQL ServerPostgresDB2SQLite

Page 14: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

O que é Projeto de Banco?

Banco de Dados x SGBDBanco de Dados: um modelo, uma abstraçãoSGBD: classe de softwares

Page 15: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

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)

Page 16: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados

Page 17: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

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)

Page 18: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados

Modelagem ConceitualAbstração de mais alto nível

Objetivo: Representação dos requisitos de dados do domínio

Independente de modelo de banco de dados

Page 19: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

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

Page 20: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados

Modelagem LógicaRepresentação da modelagem

conceitual em um modelo

Ênfase na eficiência de armazenamento

Evitar: muitas tabelas (e junções); tabelas sub-utilizadas.

Page 21: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados

Modelagem FísicaEsquema SQL para a modelagem lógica

Dependente de SGBD

Ênfase na eficiência de acesso Implementação de consultas, índices,...

Page 22: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados

Modelo Entidade-RelacionamentoCriado 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

Page 23: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados

Conceitos do Modelo EREntidade

Abstração de um fato do mundo real para o qual se deseja manter seus dados no BD

Simbologia: retângulo nomeado

Page 24: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados

Conceitos do Modelo ERRelacionamento

Abstração de uma associação entre (ocorrências de) entidades

Simbologia: losango nomeado

Page 25: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados

Conceitos do Modelo ERRelacionamento

Page 26: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados

Conceitos do Modelo ERCardinalidade Máxima

Quantidade máxima de ocorrências de entidades que podem estar associadas a uma ocorrência de outra entidade (1 ou N)

Page 27: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados

Conceitos do Modelo ERCardinalidade Máxima

Page 28: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados

Conceitos do Modelo ERCardinalidade Mínima

Indica se a participação das ocorrências de entidades no relacionamento é obrigatória ou opcional

Page 29: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados

Conceitos do Modelo ERCardinalidade Mínima

Page 30: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados

Conceitos do Modelo ERAuto-Relacionamento

Representa uma associação entre ocorrências de uma mesma entidade

Exige a identificação de papéis

Page 31: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados

Conceitos do Modelo ERAuto-Relacionamento

Page 32: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

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

Page 33: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados Conceitos do Modelo ER

Atributo Abstração de uma propriedade de uma

entidade ou de um relacionamento

Page 34: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados Conceitos do Modelo ER

Classificação de Atributos obrigatórios X opcionais monovalorados X multivalorados simples X compostos

Page 35: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

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

Page 36: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

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

Page 37: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

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

Page 38: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

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

Page 39: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados Conceitos do Modelo ER

Restrições de Domínio

Page 40: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

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.

Page 41: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

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.

Page 42: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

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)

Page 43: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados Modelagem Conceitual

Relacionamento “um-para um”

Page 44: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados Modelagem Conceitual

Relacionamento “um-para-muitos”

Page 45: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados Modelagem Conceitual

Relacionamento “muitos-para-muitos”

Page 46: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados Modelagem Conceitual

Auto-Relacionamento “um-para-muitos”

Page 47: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Projeto de Banco de Dados Modelagem Conceitual

Auto-Relacionamento “muitos-para-muitos”

Page 48: Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson@gmail.com waelson.com.br “Está conosco o Senhor dos Exércitos”

Bibliografia Melo, Tiago. Projeto de Banco de Dados, 2009 MySQL Dev, www.mysql.org IMasters, http://imasters.uol.com.br