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