Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Désiré NGuessan 1 Projeto de Banco de Dados – Etapa 1 – Modelagem Conceitual NGUESSAN.DESIRE@POLI.USP.BR 1 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 2 Modelagem Conceitual D O objetivo NÃO É: Descrever a estrutura do armazenamento do banco de dados. I Requisitos de um modelo conceitual: - clareza (facilidade de compreensão) - exatidão (formal) C O objetivo É: Representar a semântica da informação, independente de considerações de eficiência. 2 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 3 Análise de Requisitos O Projeto Conceitual inicia a partir da especificação dos requisitos e resulta em uma descrição em alto nível da estrutura do banco de dados, independente do Sistema de Gerenciamento de Banco de Dados (SGBD) adotado para implementá-lo. O propósito do projeto conceitual é descrever o conteúdo de informação do banco de dados ao invés das estruturas de armazenamento que serão necessárias para gerenciar essa informação 3 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 4 Análise de Requisitos Um esquema conceitual é uma descrição em alto nível da estrutura do banco de dados Um modelo conceitual é usado para descrever os esquemas conceituais. Como modelos conceituais temos por ex. Modelo Entidade-Relacionamento, Modelo Orientado a Objeto e suas derivações como OMT-G e o modelo OMT 4 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 5 Análise de Requisitos Requisitos dos Dados Entrada: Universo de Discurso (UdD) “realidade”da organização Informaçao a ser tratada com todas suas propriedades, restrições Processo Coleta e análise Entrevistas, documentos, formulários Resultado Descrição “aproximativa”, ling. natural 5 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 6 Modelagem Conceitual Abordagem: E-R Introduzido por Peter Chen no artigo: The Entity-Relationship Model - Toward a Unified View of Data, Transactions on Database Systems, 1(1), March 1976. O modelo ER é uma técnica de modelagem conceitual com representação gráfica utilizada durante a fase de projeto conceitual para entendimento do mundo real. 6 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 7 Modelagem Conceitual Abordagem: E-R Padrão para a modelagem conceitual de Sistema de Banco de Dados Principais Características: Utilização de poucos conceitos Excelente representação gráfica Facilidade de compreensão Elementos Básicos Entidade Atributo Relacionamento Cardinalidade 7 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 8 Modelagem Conceitual Abordagem: E-R Descrição conceitual do BD de forma independente de implementação de um SGBD Registra que dados podem aparecer no BD não registra como os mesmos estarão armazenados no SGBD 8 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 9 Modelagem Conceitual Abordagem: E-R Técnica mais conhecida: Abordagem Entidade-Relacionamento (ER) Uso do DER (Diagrama ER) Modelo Conceitual = modelo de dados abstrato 9 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 10 Abordagem: E-R Elementos Básicos: Entidade Conjunto de objetos (concreto ou abstrato) do mundo real que possuem características comuns. 10 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 11 Abordagem: E-R Elementos Básicos: Entidade Notação: PESSOA CIDADE Entidades PESSOA DEPARTAMENTO 11 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 12 Abordagem: E-R Elementos Básicos: Entidade Notação de ocorrência: Tarso Alberto Ana Pessoa Porto Alegre São Paulo Belo Horizonte Cidade Ocorrências da entidade 12 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 13 Abordagem: E-R Elementos Básicos: Relacionamento É a representação de uma associação entre duas ou mais entidades 13 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 14 Abordagem: E-R Elementos Básicos: Relacionamento - Notação: PESSOA CIDADE Residência Tarso Alberto Ana Porto Alegre São Paulo Belo Horizonte 14 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 15 Abordagem: E-R Elementos Básicos: Diagrama de Ocorrências de entidades e relacionamentos são representados: Ocorrências de entidades (círculo vazado) Ocorrência de relacionamento (círculo preto) 15 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 16 Abordagem: E-R Elementos Básicos: Diagrama de Ocorrências de entidades e relacionamentos são representados: entidade FUNCIONÁRIO relacionamento LOTAÇÃO entidade DEPARTAMENTO f1 f2 f3 f4 f5 d1 d2 d3 f1,d1 f3,d1 f4,d2 f5,d3 16 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 17 Abordagem: E-R Elementos Básicos: Relacionamento Auto-Relacionamento Relacionamento entre ocorrências de uma mesma entidade Cada entidade tem um papel função que uma instância da entidade cumpre dentro de uma instância do relacionamento 17 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 18 Abordagem: E-R Elementos Básicos: Relacionamento PESSOA CASAMENTO marido esposa 18 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 19 Abordagem: E-R Elementos Básicos: Diagrama de Ocorrência p1 p2 p3 p4 p5 p1,p2 p4,p5 marido esposa esposa marido 19 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 20 Abordagem: E-R Elementos Básicos: Cardinalidade Cardinalidade (mínima, máxima) de entidade em relacionamento: número (mínimo, máximo) de ocorrências de entidade associadas a uma ocorrência da entidade em questão através do relacionamento Cardinalidade (multiplicidade) de mapeamento 20 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 21 Abordagem: E-R Elementos Básicos: Cardinalidade Funcionário Departamento Lotação n 1 Onde: n = muitos = 5 ou 10 ou 350... Ocorrência de Funcionário pode estar associada no máximo a 1 ocorrência de Departamento 21 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 22 Abordagem: E-R Elementos Básicos: Relacionamentos Binários Relacionamento cujas ocorrências contém duas ocorrências de entidade Classificação n:n (muitos-para-muitos) 1:n (um-para-muitos) 1:1 (um-para-um) 22 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 23 Abordagem: E-R Elementos Básicos: Relacionamentos Binários Relacionamentos 1:1 (um-para-um) Pessoa casamento marido esposa 1 1 Cardinalidades máximas expressam que PESSOA pode possuir no máximo 1 marido e que PESSOA pode possuir no máximo 1 esposa 23 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 24 Abordagem: E-R Elementos Básicos: Relacionamentos Binários Relacionamentos 1:n (um-para-muitos) Aluno Curso Inscrição n 1 Empregado Supervisão supervisor supervisionado 1 n 24 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 25 Abordagem: E-R Elementos Básicos: Um aluno pode estar inscrito em no máximo 1 curso mas um curso pode ter diversos alunos Um empregado supervisor pode supervisionar no máximo n empregados, mas um empregado não supervisor pode ser supervisionado por 1 único supervisor 25 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 26 Abordagem: E-R Elementos Básicos: Relacionamentos Binários Relacionamentos n:n (muitos-para-muitos) Produto Composição composto componente n n Médico Paciente Consulta n n 26 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 27 Exercício: Desenhar um diagrama ER que contemple as seguintes regras: Cada cidade deve ter uma ou mais ruas. Cada rua deve estar em uma cidade. Cada rua deve ter um ou mais prédios. Cada prédio deve estar em uma rua. Cada prédio pode ter um ou mais apartamentos. Cada apartamento deve estar em um prédio. Cada rua deve estar localizada em um bairro. Cada bairro pode ter uma ou mais ruas. Abordagem Entidade-Relacionamento Désiré NGuessan 28 Cidade Cidade-Rua Apartamento Bairro Rua Prédio 1 n Rua-Predio 1 n Predio-Apto n 1 Rua-Bairro n 1 Désiré NGuessan 29 Modelagem Conceitual Estudo de caso 1: Administradora de imóveis. - A administradora trabalha tanto com administração de condomínios, quanto com a administração de aluguéis. - Uma entrevista com o gerente da administradora resultou nas seguintes informações: - A administradora administra condomínios formados por unidades condominiais. - Cada unidade condominial é de propriedade de uma ou mais pessoas. Uma pessoa pode possuir diversas unidades. - Cada unidade pode ser alugada para no máximo uma pessoa. Uma pessoa pode alugar diversas unidades. Désiré NGuessan 30 Condomínio Cond-Unid Inquilino Unidade Proprietário 1 n Unid-Proprietário n n Inquilino-Unid n 1 Désiré NGuessan 31 Abordagem: E-R Elementos Básicos: Atributos A cada entidade (ou relacionamento) podem estar associados um ou mais atributos que representam suas propriedades elementares. Definem os valores que são associados às ocorrências das entidades a partir de determinados domínios 31 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 32 Abordagem: E-R Elementos Básicos: Atributos PESSOA Nome Data de Nascimento 32 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 33 Abordagem: E-R Elementos Básicos: Atributos (continuação...) Um atributo deve ser associado a um relacionamento quando não for possível associá-lo a uma entidade Classificação (<p1, c1>) = 10 PILOTO CIRCUITO Corrida Classificação 33 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 34 Abordagem: E-R Elementos Básicos: Atributos (continuação...) Um atributo deve ser associado a um relacionamento quando não for possível associá-lo a uma entidade consulta (<m1, p1>) = 20/8 MÉDICO PACIENTE consulta Data/hora 34 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 35 Abordagem: E-R Elementos Básicos: Atributos (continuação...) Nome (1,1) FUNCIONÁRIO Sobrenome (1,n) Telefone (0,n) (1,1) atributo monovalorado e obrigatório (0,1) atributo monovalorado e opcional(idade) (1,n) atributo multivalorado e obrigatório (0,n) atributo multivalorado e opcional 35 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 36 Abordagem: E-R Elementos Básicos: Atributos (continuação...) Atributo identificador Um identificador é um atributo ou (menor) grupo de atributos que determina univocamente uma entidade. Toda entidade deve possuir um identificador, podendo este ser simples ou composto, além de interno ou externo. 36 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 37 Abordagem: E-R Elementos Básicos: Atributos (continuação...) FUNCIONÁRIO Matrícula Nome Atributo identificador simples 37 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 38 Abordagem: E-R Elementos Básicos: Atributos (continuação...) Prateleira Capacidade Numero do corredor Numero da prateleira Identificador composto por vários atributos 38 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 39 Abordagem: E-R Elementos Básicos: Generalização/Especialização Permite atribuir propriedades particulares a um subconjunto das ocorrências (especializadas) de uma entidade genérica É associada a idéia de Herança de propriedades 39 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 40 Abordagem: E-R Elementos Básicos: Generalização/Especialização Tipo de organizaçao Filial Pessoa Física Cliente 1 n Pessoa. Jurídica O cliente é dividido em dois subconjuntos cada um com propriedades próprias CNPJ Nome Codigo CPF Sexo 40 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 41 Abordagem: E-R Elementos Básicos: Generalização/Especialização Parcial Total 41 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 42 Abordagem: E-R Elementos Básicos: Generalização/Especialização Total Pessoa Física Cliente Pessoa. Jurídica Indica que Todo cliente é pessoa física ou pessoa jurídica t 42 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 43 Abordagem: E-R Elementos Básicos: Generalização/Especialização Parcial Motorista Funcionário Secretária Indica que nem todo funcionário é motorista ou secretária p 43 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 44 Construindo o Modelos E-R: Considerações a serem observadas: Um modelo ER é formal Diferentes leitores de um mesmo modelo ER devem entender exatamente a mesma coisa de DER: Envolvidos na confecção e uso de DER devem ser treinados. Muitas vezes usado informalmente para reunir idéias e, usuários finais concordam e aprovam sem entender efetivamente o que foi modelado. 44 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 45 Construindo o Modelos E-R: ER tem poder de expressão limitado: Não representa todas as restrições (de integridade) e propriedades que um BD deseja : Pessoa casamento marido esposa 1 1 45 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 46 Construindo o Modelos E-R: Estratégias de Modelagem: Processo incriminável com seqüência de passos Gradativamente o modelo vai sendo enriquecido Fontes de informações: Partindo de descrições de dados existentes Sistemas existentes Partindo do conhecimento de pessoas Novos sistemas 46 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 47 Construindo o Modelos E-R: Partindo de descrições de dados existentes: Para este caso aplica-se a estratégia bottom-up: de baixo para cima: Primeiro são identificados os atributos; Os atributos são agregados em entidades As entidades são relacionadas e generalizadas 47 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 48 Construindo o Modelos E-R: Partindo do conhecimento de pessoas: Para este caso aplica-se: Estratégia descendente (Top-down): de cima para baixo Estratégia (Inside-out) 48 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 49 Construindo o Modelos E-R: Estratégia descendente (Top-down): de cima para baixo: Modelagem Superficial – DER pouco detalhado na seguinte seqüência: Enumeração de entidades Identificação de relacionamentos e hierarquias de generalização/especialização entre as entidades para cada relacionamento identificar a cardinalidade máxima Determinação dos atributos de entidades e relacionamento Determinação dos identificadores de entidades e relacionamentos Modelagem Detalhada 49 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 50 Construindo o Modelos E-R: Estratégia (Inside-out): de dentro para fora: O processo inicia com a identificação de uma entidade particularmente importante no modelo, e que supõe-se, estará relacionada a muitas outras entidades A partir daí, são procurados atributos, entidades relacionadas generalizações e especializações da entidade em foco E assim recursivamente até obter-se o modelo completo 50 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 51 51 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 52 codigotipo tamanho 1 n n n 1 1 n 1 n 1 1 n 1 n 1 n 1 n n 1 LOCAÇAO VEICULO CAMIONETA CARGA TIPO VEICULO AUTOMOVEL CAMIONETA DE PASS. REVISAO RESERVA MOTORISTA CLIENTE FILIAL P FISICA P JURIDICA passageiro porta capacidade cor motor placa chassi data numhoras codigo 52 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 53 53 Désiré NGuessan 54 Projeto de Banco de Dados – Etapa 2 – Projeto Lógico: Abordagem Relacional NGUESSAN.DESIRE@POLI.USP.BR 54 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 55 Especificação de BD relacional A especificação de um banco de dados relacional (chamada de esquema do banco de dados) deve conter no mínimo a definição dos Seguintes: Tabelas que formam o banco de dados Colunas que as tabelas possuem Restrições de integridade 55 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 56 Exemplo de Esquema Emp(CodigoEmp,Nome,CodigoDepto,CategFuncional,CIC) CodigoDepto referência Dept Dept (CodigoDepto,Nome) Chave Estrangeira Chave Primaria 56 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 57 Vantagens: Entidades e relacionamentos são representados através de Tabelas Trabalha com relações e não com registros Evita a declaração de ligações e conectores no nível conceitual 57 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 58 Vantagens: Simetria completa nas consultas Não há problemas de redundância Não há a necessidade de se preverem conectores (ligações adicionais) na consulta Linguagens completas para manipulação de dados (fundamentação matemática) Não são fortemente acopladas a uma LP Linguagens de mais alto nível, se comparadas com uma LP procedural tradicional 58 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 59 Mapeamento ER em Relacional Objetivos: Obter um BD que: Tenha bom desempenho nas instruções de consulta e alteração de dados Simplifique o desenvolvimento e manutenção de aplicações Princípios: Evitar junções Diminuir o número de chaves Evitar campos opcionais 59 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 60 Mapeamento ER em Relacional Fase de Preparação: Substituir alguns relacionamentos por chaves estrangeiras Encontrar/substituir identificadores “Normalizar” entidades 60 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 61 Mapeamento ER em Relacional Fase de Mapeamento transformar entidades e relacionamentos em relações (Tabelas) 61 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 62 Preparação Eliminação de identificadores externos: Eliminar o Relacionamento, substituindo-o por uma nova versão da Entidade que contém somente identificadores internos Incluir como atributo(s) da nova versão da entidade o(s) atributo(s) identificador(es) da entidade que participava externamente da identificação; Criar novo identificador na nova Entidade, composto dos atributos internos identificadores originais, mais os novos atributos. 62 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 63 Preparação Eliminação de Atributos Multivalorados: Como Alternativas Criar uma nova Entidade, relacionada à entidade original Identificação da nova Entidade pode ser o próprio atributo, ou um identificador externo Substituir por n atributos fixos, desde que se saiba e possa limitar o valor de “n”atributos. 63 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 64 Preparação Eliminação de Atributos Multivalorados: CI Nome Dependentes (0,n) Telefones(0,3) CI Num Nome Fone1 Fone2 Fone3 Depend Nome 64 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 65 Mapeamento de Entidade CI Num Nome Fone1 Fone2 Fone3 Depend Nome Func (CI, Nome, Fone1, Fone2, Fone3) Depend (CI, Num, Nome) 65 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 66 Mapeamento de Relacionamento Relacionamento sao Implementadas usando chaves estrangeiras: Identificadores das entidades participantes Três Técnicas Tabela Própria Aconselhado para cardinalidades máximas N:M Colunas Adicionais em Tabela de Entidade aconselhado para cardinalidades máximas 1:1 e 1:N Fusão de Tabelas de Entidades aconselhado para alguns casos de cardinalidades máximas 1:1 66 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 67 Mapeamento de Relacionamento Tabela Própria: Transformar o relacionamento em tabela contendo: Atributos identificadores das entidades participantes da relação Definí-las como chaves estrangeiras Atributos do relacionamento, se existirem Identificação Relacionamento é identificado por entidades participantes? Composição dos identificadores das Entidades Relacionamento é identificado por composição das entidades participantes e atributos do relacionamento? Composição dos identificadores das entidades e destes atributos 67 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 68 Mapeamento de Relacionamento Tabela Própria: Engenheiro CodE Nome Projeto Funcao Titulo CodP n n Engenheiro (CodE,Nome) Projeto (CodP, Titulo) EP (CodE, CodP,funcao) CodE referencia Engenheiro CodP referencia Projeto EP 68 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 69 Mapeamento de Relacionamento Adição de Colunas: Cada entidade é mapeada em uma tabela distinta identificador = identificador da entidade alterações de identificador por razões de desempenho Em uma das tabelas é incluído um ou mais atributos, correspondentes aos atributos que compõem a chave primária da outra tabela, e defini-los como chave estrangeira Casos recomendados todos os casos 1:N casos 1:1 • (0-1):(0-1) • (0-1):(1-1) 69 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 70 Mapeamento de Relacionamento Adição de Colunas - (1,n) Departamento CodD Nome Empregado Data Nome CodE 1 n Departamento (CodD Nome) Empregado (CodE, Nome, CodD,Data) CodD referencia Departamento D_E 70 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 71 Mapeamento de Relacionamento Adição de Colunas – (1,1) Homem RG Nome Mulher Data Nome RG 0,1 0,1 Homem (RG, Nome) Mulher (RGM, Nome, RGH, ,Data, regime) RGH referencia Homem H_M Regime 71 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 72 Mapeamento de Relacionamento Fusão de Tabelas de Entidades: Criação de uma única tabela, contendo todos os atributos das duas Entidades identificador = identificador de uma das entidades escolha arbitrária Caso recomendado caso (1-1) : (1-1) Cardinalidade Minima de ambas as entidades é 1 72 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 73 Mapeamento de Relacionamento Fusão de Tabelas – (1,1):(1,1) Conferência Cod Nome Comissao End 1,1 1,1 Conferência (Cod, Nome,Data, End) Organizacao Data 73 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 74 Mapeamento de Generalização Há duas alternativas principais: Usa de uma tabela para cada entidade participante Uso de uma única tabela para toda hierarquia de Generalização/Especialização 74 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 75 Mapeamento de Generalização Cliente Cod Nome PJuridica Tipo Cliente (Cod, Nome) PFisica( Cod, CPF, Sexo) PJuridica( Cod, CGC, Tipo) Uma Tabela Para Cada Entidade CGC PFisica Sexo CPF 75 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 76 Mapeamento de Generalização Cliente Cod Nome PJuridica Tipo Cliente (Cod, Tipo Nome, CPF, Sexo, CGC, TipoPJ) Uma Única Tabela CGC PFisica Sexo CPF 76 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 77 Emp (CodigoEmp,Tipo,Nome,CIC,CodigoDepto,CartHabil, CREA,CodigoRamo) CodigoDepto Referencia Depto CodiRamo Referencia Ramo Depto (CodigoDepto,Nome) Ramo(CodigoRamo,Nome) ProcessTexto(CodigoProc, Nome) Dominio(CodigoEmp, CodigoProc) CodigoEmp referencia Emp CodigoProc referencia ProcessTexto Projeto (CodigoPro, Nome) Participação (CodigoEmp, CodigoProj) CodigoEmp referencia Emp CodigoProj referencia Projeto Esquema Relacional Correspondente 77 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 78 Projeto de Banco de Dados – Etapa 2 – Projeto Lógico NGUESSAN.DESIRE@POLI.USP.BR 78 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 79 Modelo Relacional Criado por Edgar Codd (1970) Lab. Pesquisa IBM/San Jose - Califórnia Utilizado em empresas a partir de 1987 Objetivos Independência de dados Reduzir inconsistências 79 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 80 Modelo Relacional São conjuntos de dados vistos segundo um conjunto de tabelas - as operações sobre as mesmas são feitas por linguagens que manipulam a álgebra relacional, não sendo procedurais (ou seja, manipulando conjuntos de uma só vez). 80 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 81 Modelo Relacional Abordagem Relacional: Abordagem de modelagem de dados usada nos Sistemas de Gerência de Banco de Dados do tipo relacional Modelagem em nível lógico e não conceitual 81 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 82 Modelo Relacional Características do Modelo: Aspectos Estruturais: dados do BD em tabelas Aspectos de Integridade: tabelas satisfazem restrições Aspectos de Manipulação: operadores de manipulação derivam tabelas de outras tabelas 82 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 83 Modelo Relacional Aspectos Estruturais: Tabela/Relação Atributos Chaves Domínio 83 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 84 Modelo Relacional Relação: Uma relação R sobre uma coleção de conjuntos D1, D2, . . ., Dn é um subconjunto do produto cartesiano D1 X D2 X . . . X Dn. Exemplo: Relação NomeCliente - Nro. Conta 84 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 85 Modelo Relacional Relação: João Paulo Maria Marta 100 200 300 NomeCliente NroConta 85 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 86 Modelo Relacional Tabelas Representação usual de uma relação Cada qual designada por um nome único Composta por: linhas (tuplas) Uma linha numa tabela representa um relacionamento entre conjunto de valores colunas (atributos) Relacionadas através de Chaves estrangeiras 86 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 87 Modelo Relacional Tabelas Cardinalidade da relação: número de tuplas da tabela Grau da relação: número de colunas da tabela O número de conjuntos sobre o qual a relação (tabela) está definida. unária, binária, ..., n- ária 87 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 88 Modelo Relacional Atributo Representa o uso de um domínio dentro de uma relação Vários atributos podem pertencer a um mesmo dominio Em uma tabela, representa a descrição (cabeçalho) das colunas Exemplo: relação Clientes 88 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 89 Modelo Relacional Estrutura de DB Relacional Num Nome Status Cidade C1 Santo devedor Sao Paulo C2 Souza Com credito Campinas C3 Silva Com credito Campinas C4 Soares Inativo São Paulo Nome de Atributo Tuplas Cardinalidade Grau Valor do atributo 89 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 90 Terminologia Profissional Acadêmico Tabela Relação Linha ou Registro Tupla Coluna ou Campo Atributo Valor do Campo Valor do atributo Identificador exclusivo Chave Primaria Conjunto de Valores Validos Domínio 90 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 91 Modelo Relacional Chave Conceito usado para especificar restrições de integridade básicas de um SGBD relacional permite a identificação de tuplas em uma tabela permite o estabelecimento de relacionamentos entre tabelas 91 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 92 Modelo Relacional Chave Três tipos: Chave primária Chave alternativa Chave estrangeira 92 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 93 Modelo Relacional Chave Primaria: Uma chave primária é uma coluna ou uma combinação de colunas cujos valores distinguem uma linha das demais dentro de uma tabela Identifica univocamente uma tupla 93 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 94 Chave Primaria: CodEmp NoDepen Nome Tipo DataNasc C1 01 Santo filho 12/01/87 C1 02 Maria filha 20/12/98 C3 01 Silva esposa 04/05/68 C4 01 Soares filho 06/10/90 Dependente Chave Primaria 94 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 95 Modelo Relacional Chave Estrangeira: Uma coluna ou uma combinação de colunas, cujos valores aparecem necessariamente na chave primária de uma tabela Mecanismo que permite a implementação de relacionamentos em um banco de dados relacional 95 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 96 Chave Estrangeira : CodEmp Nome CodDpto Categoria Cic E1 Santo D1 344334 E2 Maria D2 C5 565565 E3 Silva D2 C5 787877 E4 Soares D1 C2 990909 CodDpto NomeDpto D1 compras D2 engenharia D3 vendas CodigoDepto em EMP é uma chave estrangeira em relação a tabela DEPTO DEPTO EMP 96 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 97 Projeto de Banco de Dados Linguagem - SQL NGUESSAN.DESIRE@POLI.USP.BR 97 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 98 SQL SQL (Structured Query Language) é uma linguagem comercial de definição e manipulação de dados relacionais Inicialmente chamada de SEQUEL origem: Sistema R (IBM) Structured Query Language Padrão de fato para bancos de dados relacionais Ex.: Oracle, SQL/Server, DB2, Sybase, Ingres, etc. 1986: padrão ANSI (SQL1) Modificado em 89 outros padrões: SQL2 (92), SQL3 (99) 98 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 99 Componentes do SQL DDL (Data Definition Language) criação, atualização e remoção de relações e índices visões, etc DML (Data Manipulation Language) consultas inserção, atualização e remoção de tuplas controle de transações embutida vs interativa DCL (Data Control Language) segurança integridade 99 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 100 Componentes do SQL SQL DDL – Criando Tabelas CREATE TABLE <nome-tabela> (<nome-atributo> <tipo> [NOT NULL [PRIMARY KEY]] [,<nome- atributo > <tipo> [NOT NULL [UNIQUE]]]... ) 100 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 101 Componentes do SQL SQL DDL – Criando Tabelas CREATE TABLE Cliente1 ( CodCliente int NOT NULL, Nome varchar(50), CPF varchar(11) NULL, DataCadastro datetime NOT NULL DEFAULT (getdate()), Cidade varchar(20) NULL, UF char(2) NULL, País varchar(20) DEFAULT ('Brasil') ) NULL ou NOT NULL, indicando se esta permite valores nulos ou não. Character Varying (x) [VARCHAR] – armazena exatamente o número de caracteres digitados 101 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 102 Componentes do SQL SQL DDL – Removendo Tabelas DROP TABLE <nome-tabela> Drop Table Cliente1 102 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 103 Componentes do SQL SQL DDL – Alterando Tabelas ALTER TABLE [banco_dados.[owner.]]nome_tabela { [ALTER COLUMN nome_coluna {novo_tipo_de_dados [(precisão[, escala])] | ADD {nome_coluna dados_coluna | [WITH CHECK | WITH NOCHECK]} 103 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 104 Componentes do SQL SQL DDL – Alterando Tabelas ALTER TABLE [banco_dados.[owner.]]nome_tabela { [ALTER COLUMN nome_coluna {novo_tipo_de_dados [(precisão[, escala])] | ADD {nome_coluna dados_coluna | [WITH CHECK | WITH NOCHECK]} 104 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 105 Componentes do SQL SQL DDL – Alterando Tabelas ALTER TABLE Cliente ADD ender varchar(50) NULL ALTER TABLE Cliente ALTER COLUMN CIDADE VARCHAR (25) 105 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 106 Componentes do SQL SQL DDL – Alterando Tabelas ALTER TABLE Cliente ADD ender varchar(50) NULL ALTER TABLE Cliente ALTER COLUMN CIDADE VARCHAR (25) 106 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 107 DML Data Manipulation Language Inserindo Linhas O comando INSERT insere linhas em uma tabela. A forma mais simples do comando INSERT insere somente uma linha , dados os valores. Sintaxe INSERT [INTO] nome_tabela (colunas) VALUES (valores) 107 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 108 DML Data Manipulation Language Inserindo Linhas O comando INSERT insere linhas em uma tabela. A forma mais simples do comando INSERT insere somente uma linha , dados os valores. Sintaxe INSERT [INTO] nome_tabela (colunas) VALUES (valores) Onde: nome_tabela é o nome da tabela que deseja incluir os dados. colunas são os nomes das colunas da tabela que deseja acrescentar os dados. valores são os conteúdos de cada coluna. 108 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 109 DML Data Manipulation Language Exemplos INSERT into Funcionario values (1, 'Primeiro Funcionário', 2, 122, 234.23, '01/01/1998', '01/01/1998', 'M') INSERT into Funcionario (CodFuncionario, Nome, CodDepartamento, Sexo,Salario, DataAdmissao) values (2, 'Segundo Funcionário', 1, 'F', 4360.00, '01/01/1996') Nesse caso, os nomes das colunas que serão inseridas são especificados entre parênteses após o nome da tabela. A ordem não precisa ser a mesma das colunas na tabela. Mas a ordem dos valores em VALUES corresponde à ordem dos nomes de colunas informados. 109 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 110 DML Data Manipulation Language Exemplos insert INTO Vehiculo (placa,chassi,motor,cor,codigotipo,codigofilial) values ('dav002', '00000102','00000303','prata','P2', 'SP18 ‘ ) 110 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 111 insert INTO Vehiculo (placa,chassi,motor,cor,codigotipo,codigofilial) values ('dav002', '00000102','00000303','prata','P2', 'SP18 ‘ ) 111 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 112 DML Data Manipulation Language Excluindo Linhas O comando DELETE exclui permanentemente uma ou mais linhas de uma tabela, baseado em alguma condição. Sintaxe DELETE FROM nome_tabela WHERE condicao Onde: nome_tabela é o nome da tabela que deseja excluir os dados. condicao é condição para selecionar as dados que deseja excluir. 112 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 113 DML Data Manipulation Language Excluindo Linhas Exemplo DELETE from CopiaCliente where Codigo = 2 Note que a exclusão não pode ser desfeita. Para excluir todas as linhas de uma tabela, existe a opção. comando DELETE sem condição WHERE: DELETE from CopiaCliente 113 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 114 delete from vehiculo where placa ='dav0001' 114 Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 115 SQL DML Data Manipulation Language Consulta simples O comando SELECT recupera dados de uma ou mais tabelas. A sua sintaxe mais simples pode ser resumida da forma: Sintaxe Geral: SELECT <atributos> [INTO <nova_tabela>] FROM <relações> [WHERE <condições>] [ORDER BY <atributos-ordenacao> [descending]] [GROUP BY <formato-agrupamento> [HAVING <condicoes>]] Désiré NGuessan 116 SQL DML Data Manipulation Language Consulta simples (continuação) onde A lista_de_colunas especifica quais colunas serão retornadas como resultado, separadas por vírgulas ou um asterisco (*) que indica todas as colunas da tabela. A cláusula FROM, com uma lista_de_tabelas, especifica quais tabelas serão consultadas. A cláusula WHERE especifica condições que devem ser satisfeitas pelas linhas das tabelas. O comando Select pode ser utilizado para mostrar o conteúdo de variáveis, valores iterais, etc... Désiré NGuessan 117 SQL DML Data Manipulation Language Consulta simples (continuação) Cláusula Where condições operadores lógicos (AND, OR, NOT), parênteses, operadores comparadores (<, >, <>, = , etc) constantes, atributos, operadores aritméticos between (>= and <=) LIKE % : substitui cadeias de caracteres _ : substitui caracteres subconsultas Désiré NGuessan 118 SQL DML Data Manipulation Language Consulta simples (continuação) Cláusula order by condições ordenação das tuplas resultado em função de um ou mais atributos opcional ORDER BY<atr> [<ord>] [,<atr> [<ord>] ...] <atr> ::= atributo <ord> ::= ASC (default) DESC Ex.: Select * from Compradores order by Nome DESC Désiré NGuessan 119 SQL DML Désiré NGuessan 120 SQL DML Funções Matemáticas ABS(valor) retorna o valor absoluto (sem sinal) de um item. POWER(valor,p) retorna o valor elevado à potência p. ROUND(valor,n) arredonda o valor para n casas decimais. SQRT (valor) retorna a raiz quadrada do valor especificado. PI valor constante 3.141592563589793 Por exemplo, para arredondar o valor do preço de cada livro para duas casas decimais, pode ser feito o seguinte: Select price Preço , ROUND(price, 1) "Preço com 1 casa decimal", title Título from titles Désiré NGuessan 121 SQL DML Désiré NGuessan 122 SQL DML Funções de Manipulação de String ASCII(caractere) retorna o código ASCII de um caractere. CHAR(inteiro) retorna o caractere, dado o seu código ASCII LOWER(expr) converte para minúsculas UPPER(expr) converte para maiúsculas LTRIM(expr) retira espaços à esquerda RTRIM(expr) retira espaços à direita REPLICATE(expr, n) repete uma expressão n vezes Désiré NGuessan 123 SQL DML Funções de Manipulação de String SUBSTRING(expr,início,tamanho) extrai uma parte de uma string desde início e com tamanho caracteres RIGHT(expr,n) retorna n caracteres à direita da string REVERSE(expr) inverte uma string CHARINDEX('caractere', expr) retorna a posição de um caractere dentro da string SPACE(n) retorna uma string com n espaços Désiré NGuessan 124 Selecione todos os departamentos cujo orçamento mensal seja maior que 100000. Apresente o Nome de tal departamento e seu orçamento anual, que será obtido multiplicando-se o orçamento mensal por 12. SELECT DEPNOME, DEPORCA * 12 FROM DEPT WHERE DEPORCA > 100000; Désiré NGuessan 125 Apresente todos os salários existentes na empresa, porém omita eventuais duplicidades. Resp: A cláusula Distinct elimina duplicidades, significando que somente relações distintas serão apresentadas como resultado de uma pesquisa. SELECT DISTINCT EMPSERV FROM EMP; Désiré NGuessan 126 Apresente os nomes e funções da cada funcionário contidos na tabela empresa, porém classificados alfabeticamente (A..Z) e depois alfabeticamente invertido (Z..A). Resp: A cláusula Order By modificará a ordem de apresentação do resultado da pesquisa (ascendente ou descendente). SELECT EMPNOME, EMPSERV FROM EMP ORDER BY EMPNOME; SELECT EMPNOME, EMPSERV FROM EMP ORDER BY EMPPNOME DESC; Désiré NGuessan 127 SELECT EMPNOME, EMPSALA FROM EMP WHERE EMPSALA BETWEEN 500 AND 1000; SELECT EMPNOME, DEPNUME FROM EMP WHERE DEPNUME IN (10,30); SELECT EMPNOME, EMPSERV FROM EMP WHERE EMPNOME LIKE 'F%'; SELECT EMPNOME, EMPSERV FROM EMP WHERE EMPCOMI IS NULL; O símbolo "%" pode ser usado para construir a pesquisa ("%" = qualquer sequência de nenhum até vários caracteres). Désiré NGuessan 128 Operadores Negativos Operador Descrição <> diferente not nome_coluna = diferente da coluna not nome_coluna > não maior que not between não entre dois valores informados not in não existente numa dada lista de valores not like diferente do padrao de caracteres informado is not null não é um valor nulo Désiré NGuessan 129 Operadores Negativos Operador Descrição <> diferente not nome_coluna = diferente da coluna not nome_coluna > não maior que not between não entre dois valores informados not in não existente numa dada lista de valores not like diferente do padrao de caracteres informado is not null não é um valor nulo
Compartilhar