Modelagem de dados Aula 01 - Introdução Roteiro • • • • Apresentação Introdução Sistemas de Banco de Dados Exercícios Apresentação Objetivo Capacitar o aluno para realização de projeto e implementação de soluções utilizando banco de dados e suas abordagens. Programa CRONOGRAMA DATA (DIA/MÊS) CONTEÚDOS CURRICULARES OU EIXOS TEMÁTICOS CARGA HORÁRIA 13/02/09 20/02/09 27/02/09 9 horas HABILIDADES E COMPETÊNCIAS ESPECÍFICAS Leitura de ementa e plano de Ensino, definição de métodos de trabalho, sistema de avaliações e motivações; Introdução aos SGBDs. Arquitetura. Conceitos introdutórios à Dicionário de dados. Exemplos de modelagem de dados. BDs. Demonstrações práticas. Modelos de Banco de Dados: modelo relacional, estrutura, restrições de integridade. Apresentação Álgebra relacional. Realização de trabalhos. Integridade semântica. Visões. Preparação de ambiente CASE. Projeto de banco de dados relacional: etapas de análise. Avaliação de trabalhos elaborados pelo corpo discente, realização de demonstrações e exercícios práticos. 06/03/09 13/03/09 20/03/09 27/03/09 12 horas 03/04/09 1,5 horas Avaliação NPI/1º Bimestre. Avaliação de conhecimento. Avaliação de trabalhos elaborados pelo corpo discente, realização de demonstrações e exercícios práticos. 03/04/09 10/04/09 17/04/09 24/04/09 12 horas 01/05/09 Modelo conceitual Aplicações práticas Não haverá aulas 08/05/09 15/05/09 22/05/09 9 horas 29/05/09 1,5 horas Modelo lógico Normalização Aplicações práticas. Projeto individual de banco de dados. Avaliação NPII/2º Bimestre. Avaliação de trabalhos elaborados pelo corpo discente, realização de demonstrações e exercícios práticos. Avaliação de conhecimento. Apresentação Estratégias de trabalho • Aulas expositivas e recursos audiovisuais. • Demonstrações em laboratório utilizando ferramentas CASE. Formas de avaliação • Participação nas atividades • Questionários • Avaliação de trabalhos • Provas bimestrais Apresentação Bibliografia • DATE, C. J. Introdução a Sistemas de Banco de Dados. 8ª edição. Editora Campus. 2004. • SILBERSCHATZ, A. KORTH, H. SUDARSHAN, S. Sistemas de banco de dados. Porto Alegre: Sagra-Luzzato, 2000. Introdução • Em essência, um sistema de bancos de dados é apenas um sistema computadorizado de armazenamento de registros. • Pode ser visto como um equivalente a um armário de arquivamento. • Em outras palavras, é um repositório ou recipiente para uma coleção de arquivos de dados computadorizados. Introdução • Diversas operações podem ser realizadas: – Acrescentar novos arquivos, vazios, ao banco de dados; – Inserir novos dados em arquivos existentes; – Buscar dados de arquivos existentes; – Alterar dados em arquivos existentes. – Eliminar dados de arquivos existentes. – Remover arquivos existentes do banco de dados. Introdução Colunas são chamadas de campos A coluna DEP# é uma primária!de Linhas chave são chamadas Arquivo de exemplo: registros DEP# VINHO PRODUTOR ANO GARRAFAS PRONTO 2 Chardonnay Buena Vista 1997 1 1999 3 Chardonnay Geyser Peak 1997 5 1999 6 Chardonnay Simi 1996 4 1998 12 Joh. Riesling Jekel 1998 1 1999 21 Fumé Blanc Ch. St. Jean 1997 4 1999 22 Fumé Blanc Robt. Mondavi 1996 2 1998 30 Gewurztraminer Ch. St. Jean 1998 3 1999 43 Cab. Sauvignon Windsor 1991 12 2000 45 Cab. Sauvignon Geyser Peak 2002 48 Cab. Sauvignon Robt. Mondavi Arquivos 12 computadorizados são 1993 12 chamados de tabelas 50 Pinot Noir Gary Farreli 1996 1999 1994 Arquivo ADEGA 3 2004 Introdução • Exemplo de busca: A SQL é a linguagem padrão para interação com bancos de dados relacionais e é reconhecida por quase todos os produtos de bancos de Instrução SQL dados existentes hoje no mercado. SELECT VINHO, DEP#, PRODUTOR FROM ADEGA WHERE PRONTO = 2000 DEP# VINHO VINHO Cab. 2 Sauvignon Chardonnay DEP# PRODUTOR PRODUTOR 43 ANO GARRAFAS PRONTO Buena Windsor Vista 1997 1 1999 21 Fumé Blanc Ch. St. Jean 1997 4 1999 22 Fumé Blanc Robt. Mondavi 1996 2 1998 30 Gewurztraminer Ch. St. Jean 1998 3 1999 43 Cab. Sauvignon Sauvignon Windsor Windsor 1991 12 2000 45 Cab. Sauvignon Geyser Peak 1994 12 2002 48 Cab. Sauvignon Robt. Mondavi 1993 12 2004 50 Pinot Noir Gary Farreli 1996 3 1999 Introdução • Exemplo de inserção de dados: INSERT INTO ADEGA (DEP#, VINHO, PRODUTOR, ANO, GARRAFAS, PRONTO) VALUES(53, ‘Pinot Noir’, ‘Saintsbury’, 1997, 6, 2001) DEP# VINHO PRODUTOR ANO GARRAFAS PRONTO 2 Chardonnay Buena Vista 1997 1 1999 3 Chardonnay Geyser Peak 1997 5 1999 6 Chardonnay Simi 1996 4 1998 12 Joh. Riesling Jekel 1998 1 1999 21 Fumé Blanc Ch. St. Jean 1997 4 1999 22 Fumé Blanc Robt. Mondavi 1996 2 1998 30 Gewurztraminer Ch. St. Jean 1998 3 1999 53 Pinot Noir Saintsbury 1997 6 2001 Introdução A SQL emprega a palavra-chave UPDATE como “alterar” e não “atualizar”. Atualização de uma tabela envolve a inserção, alteração e exclusão de registros. • Exemplo de alteração de dados: UPDATE ADEGA SET GARRAFAS = 4 WHERE DEP# = 3 DEP# VINHO PRODUTOR ANO GARRAFAS PRONTO 2 Chardonnay Buena Vista 1997 1 1999 3 Chardonnay Geyser Peak 1997 5 4 1999 6 Chardonnay Simi 1996 4 1998 12 Joh. Riesling Jekel 1998 1 1999 21 Fumé Blanc Ch. St. Jean 1997 4 1999 22 Fumé Blanc Robt. Mondavi 1996 2 1998 30 Gewurztraminer Ch. St. Jean 1998 3 1999 Introdução • Exemplo de exclusão de dados: DELETE FROM ADEGA WHERE DEP# = 2 DEP# VINHO PRODUTOR ANO GARRAFAS PRONTO 2 3 Chardonnay Buena Vista Geyser Peak 1997 1 5 1999 3 6 Chardonnay Geyser Peak Simi 1997 1996 5 4 1999 1998 12 6 Chardonnay Joh. Riesling Simi Jekel 1996 1998 4 1 1998 1999 12 21 Joh. Riesling Fumé Blanc Jekel Ch. St. Jean 1998 1997 1 4 1999 21 22 Fumé Blanc Ch. St.Mondavi Robt. Jean 1997 1996 4 2 1999 1998 22 30 Fumé Blanc Gewurztraminer Robt. Ch. St.Mondavi Jean 1996 1998 2 3 1998 1999 30 Gewurztraminer Ch. St. Jean 1998 3 1999 Introdução • Devemos considerar que: – Os arquivos computadorizados são chamados de conjunto de entidades ou tabelas. – As linhas das tabelas são chamadas de entidades, tupla ou registros. – As colunas são chamadas de atributos ou campos. arquivos (armário) conjunto de entidades tabelas linhas entidades registros colunas atributos campos • Desta forma, um ou mais tabelas formam o banco de dados! Sistemas de Banco de Dados • O que são sistemas de banco de dados? “É um sistema computadorizado cujo propósito geral é armazenar dados e permitir ao usuário buscar e atualizar esses dados quando solicitado. “ Adaptado de Date • “Um Sistema Gerenciador de Base de Dados (SGBD) é uma coleção de programas que permitem aos usuários criarem e manipularem uma base de dados. Um SGBD é, assim, um sistema de software de propósito geral que facilita o processo de definir, construir e manipular bases de dados de diversas aplicações”. Takai Sistemas de Banco de Dados • Exemplo de um SGDB Sistemas de Banco de Dados • Definir uma base de dados envolve a especificação de tipos de dados a serem armazenados na base de dados. • Construir uma base de dados é o processo de armazenar os dados em algum meio que seja controlado pelo SGBD. • Manipular uma base de dados indica a utilização de funções como a de consulta, para recuperar dados específicos, modificação da base de dados para refletir mudanças no domínio da aplicação (inserções, atualizações e remoções), e geração de relatórios. Sistemas de Banco de Dados Consultas do usuário ou programas SGDB Software para processar consultas Software para acessar base de dados Base de dados Sistema de Banco de Dados Sistemas de Banco de Dados • Qual a diferença entre dados e informações? Epitácio Pessoa 1865 Rio de Janeiro Juscelino Kubitschek 1888 Santa Catarina Gal Osório 1808 Rio de Janeiro Beaurepaire Rohan 4400 João Pessoa Sistemas de Banco de Dados • Componentes principais de banco de dados – – – – Dados Hardware Software Usuários Programas de Aplicação Usuários finais Sistema de Gerenciamento de Banco de Dados Dados • Os sistemas de banco de dados estão disponíveis em máquinas que vão desde micros bem pequenos até os maiores computadores de grande porte. • Sistemas grandes tendem a ser multiusuários e sistemas pequenos tendem a ser monousuários. Sistema monousuário: banco de dados de catálogo telefônico de um celular Sistema multiusuário: banco de dados de catálogo telefônico de empresa de telefonia fixa ou terceirizadas Hardware • Componentes de hardware do sistema: – Volumes de armazenamento secundário: discos rígidos, unidades de fita, pen drivers, DVDs etc.; – Processadores e memória principal. Software • Entre o banco de dados físico e o usuário existe uma camada de software conhecida como gerenciador de banco de dados, servidor de banco de dados ou SGDB. • A função principal de um SGDB é isolar os usuários do banco de dados dos detalhes de nível de hardware. • O SGDB é o componente de software mais importante de todo o sistema. Usuários • Existem três classes: – Programadores de aplicação: elaboram programas aplicativos de banco de dados em linguagens como C/C++, Java, PL/I, COBOL etc.; – Usuários finais: interagem com o sistema a partir de terminais ou estações de trabalho. A maioria dos sistemas de bancos de dados inclui pelo menos uma aplicação interna, em geral um processador de linguagem de consulta, por meio do qual o usuário pode emitir solicitações ao banco de dados, tais como SELECT e INSERT da SQL; – Administrador de Dados (DA) e Administrador de Banco de Dados (DBA). Exercícios 1. Explique com suas palavras, quais são as vantagens de se usar um sistema de banco de dados? 2. Mostre os efeitos das seguintes operações de busca em SQL sobre o banco de dados da adega de vinhos da Figura 1: a) SELECT VINHO, PRODUTOR FROM ADEGA WHERE DEP# = 43 b) SELECT VINHO, PRODUTOR FROM ADEGA WHERE ANO > 1996 c) SELECT DEP#, VINHO, ANO FROM ADEGA WHERE PRONTO < 1999 d) SELECT VINHO, DEP#, ANO FROM ADEGA WHERE PRODUTOR = ‘Robt. Mondavi’ AND GARRAFAS > 6 Exercícios 3. Mostre os efeitos das seguintes operações de atualização em SQL sobre o banco de dados da adega de vinhos na Figura 1: a) INSERT INTO ADEGA ( DEP#, VINHO, PRODUTOR, ANO, GARRAFAS, PRONTO VALUES ( 80, ‘Syrah’, ‘Meridian’, 1994, 12, 1999) b) DELETE FROM ADEGA WHERE PRONTO > 2000 c) UPDATE ADEGA SET GARRAFAS = 5 WHERE DEP# = 50 d) UPDATE ADEGA SET GARRAFAS = GARRAFAS + 2 WHERE DEP# = 50 Exercícios 4. Escreva instruções SQL para executar as seguintes operações sobre o banco de dados da adega de vinhos: a) Obter o número do depósito, o nome do vinho e o número de garrafas para todos os vinhos da Geyser Peak. b) Obter o número do depósito e o nome do vinho correspondentes a todos os vinhos para os quais existem mais de cinco garrafas em estoque. c) Obter o número do depósito para todos os vinhos tintos. d) Acrescentar três garrafas ao depósito de número 30. e) Remover todos os vinhos Chardonnay do estoque. f) Acrescentar uma entrada para uma nova caixa (doze garrafas) de Gary Farrel Merlot: depósito número 55, ano 1996, pronto em 2001. ADEGA DEP# VINHO PRODUTOR ANO GARRAFAS PRONTO 2 Chardonnay Buena Vista 1997 1 1999 3 Chardonnay Geyser Peak 1997 5 1999 6 Chardonnay Simi 1996 4 1998 12 Joh. Riesling Jekel 1998 1 1999 21 Fumé Blanc Ch. St. Jean 1997 4 1999 22 Fumé Blanc Robt. Mondavi 1996 2 1998 30 Gewurztraminer Ch. St. Jean 1998 3 1999 43 Cab. Sauvignon Windsor 1991 12 2000 45 Cab. Sauvignon Geyser Peak 1994 12 2002 48 Cab. Sauvignon Robt. Mondavi 1993 12 2004 50 Pinot Noir Gary Farreli 1996 3 1999 Arquivo ADEGA Referências Bibliográficas [1] TAKAI, O.K. Introdução a Banco de Dados. DCC-IME-USP. 2005. Disponível em www.4shared.com [2] DATE, C. J. Introdução a Sistemas de Banco de Dados. 8ª edição. Editora Campus. 2004.