CEFET.PHB - PI Plano de Ensino Banco de Dados Prof. Jefferson Silva Sistema de Banco de Dados Objetivos Vantagens e Desvantagens Conceitos básicos de BD e de SGBD Abstração de Dados Linguagem de Definição de Dados - DDL Linguagem de Manipulação de Dados DML Estudo de Caso Plano de Ensino DBA Administrador de Banco de Dados Visão geral Modelos de Banco de Dados Modelo Conceitual Modelo Lógico Modelo Físico Abordagens Abordagem Hierárquica Abordagem em Rede Abordagem Relacional Abordagem Relacional Tabelas Atributos Tuplas Chave Primária PK Chave Estrangeira FK Domínios Plano de Ensino Plano de Ensino - Conteúdo Regras de Integridade Restrições de domínio Integridade referencial Dependência funcional Plano de Ensino - Conteúdo Modelagem de Dados Modelo Entidade-Relacionamento Relacionamento Um para Um 1:1 Relacionamento Um para Muitos 1:N Relacionamento Muitos para Muitos M:N
Plano de Ensino - Conteúdo Plano de Ensino - Bibliografia Normalização Primeira Forma Normal 1FN Segunda Forma Normal 2FN Terceira Forma Normal 3FN SQL Introdução Conceitos básicos necessários DDL DML Date, C. J. Introdução a Sistemas de Banco de Dados. Rio de Janeiro, Campus, 2000. Korth. Sistema de Banco de Dados. São Paulo, Makron Books, 2001. Heuser, C. A. Projeto de Banco de Dados. Porto Alegre, Sagra Luzzatto, 2001. Chen, Peter. Gerenciando Banco de Dados a abordagem entidade relacionamento para projeto lógico. Editora Érica. Kern, Vinicius M. Banco de Dados Relacionais. Editora Érica. O que é Banco de Dados? Definições - Banco de Dados Conceitos Básicos - BD Coleção de dados que estão relacionados; Sistema que registra e mantém dados baseados em computador; Sistema computadorizado de armazenamento de registros, cujo objetivo é de armazenar informações e permitir ao usuário buscar e atualizar essas informações quando solicitado; O banco de dados pode ser comparado a um armário de arquivamento, ou seja, um recipiente para uma coleção de arquivos de dados computadorizados. Um dado pode ser definido como sendo o valor do campo quando é armazenado no Banco de Dados; Ex.: Jose, Arroz, 28, R$ 450,00... Tabela Lógica: Representam as estruturas de armazenamento de dados (arquivos) dos sistemas. Aluno Nome RA Idade Carlos 25478 25 Maria 12568 28
Conceitos Básicos - BD Registro: coleção de itens de dados ex.: um registro de funcionários um registro é dividido em vários campos: - um campo pode ser um nome, um numero ou uma combinação de caracteres; Arquivo/Tabela/Entidade: Coleção de registros Conceitos Básicos - BD Informação pode ser definida como sendo o Valor que este campo representa para as atividades da empresa. Ex.: Resposta a uma consulta. Quantos são os alunos do curso de S.I. que estudam na segunda série? Um Banco de Dados representará sempre aspectos do Mundo Real. A forma mais comum de interação Usuário e Banco de Dados, dá-se através de sistemas específicos que por sua vez acessam o volume de informações geralmente através da linguagem SQL. Conceitos Básicos - BD Sistema de Banco de Dados Os Administradores de Banco de Dados (DBA) são responsáveis pelo controle ao acesso aos dados e pela coordenação da utilização do BD. Já os Projetistas de Banco de Dados (DBP) são analistas que identificam os dados a serem armazenados em um Banco de Dados e pela forma como estes serão representados. Os Analistas e Programadores de desenvolvimento, criam sistemas que acessam os dados da forma necessária ao Usuário Final, que é aquele que interage diretamente com o Banco de Dados. Projetados para gerenciar grandes quantidades de informação Proporcionar ao usuário uma visão abstrata dos dados sistema esconde certos detalhes de como os dados são armazenados ou mantidos Sistema Gerenciador do banco de dados - SGBD Sistema Gerenciador de Banco de Dados Database Management System DBMS Banco de Dados (BD) = Coleção de dados interrelacionados DBMS/SGBD = Módulo que proporciona a interface entre dados armazenados no banco de dados e os programas de aplicação e consultas submetidas ao sistema retirar e armazenar informações no BD Aplicação 1 Aplicação 2 Aplicação 3 SGBD Banco de Dados X Banco de Dados Y Banco de Dados Z
Definições - SGBD Sistema Gerenciador de Banco de Dados É o software responsável pelo gerenciamento (armazenamento e recuperação) dos dados no Banco de Dados. Coleção de dados inter-relacionados em um conjunto de programa para acessá-los. Coleção de programas que capacite o usuário a criar e manter um BD. A integração entre BD físico e os usuários se dá através de um software, o SGBD. Gerenciamento de banco de dados envolve: definição de estruturas para o armazenamento da informação provisão de mecanismos para a manipulação da informação Segurança das informações armazenadas a despeito de quedas do sistema ou tentativa de acesso não autorizado Garantia da integridade e Controle de concorrência se dados forem compartilhados por diversos usuários, o sistema deve impedir possíveis resultados diferentes. Exemplo Sem uso de SGBD Sistemas de Arquivos Sistemas Gerenciador de Arquivos Empresa bancária mantém informações de clientes e contas em arquivos permanentes do sistema contém programas que permitem a manipulação dos dados programa para creditar ou debitar uma conta programa para acrescentar nova conta programa para recuperar o saldo programa para gerar extratos Credito/Debito Inclusão de Conta Saldo Arquivo 1 Arquivo 2 Arquivo 3 Sistemas de Arquivos Exemplo programas escritos em respostas às necessidades novos programas são adicionados na medida em que as necessidades aparecem podem ser criados novos arquivos permanentes como podem ser programadores diferentes arquivos podem ser de formatos diferentes linguagens de programação podem ser diferentes isto éum sistema de processamento de arquivos Redundância de dados e inconsistência uma vez que os arquivos e programas são criados por diferentes programadores mesma informação pode estar duplicada em diversos arquivos (ex. endereço do cliente) leva a maior custo de armazenamento leva a potencial inconsistência de dados
Dificuldade do acesso a dados exemplo: saber o nome dos clientes com CEP 87510-060 usualmente não há um programa específico teria que manualmente selecionar na lista de clientes ou solicitar a criação de um programa não interessante pois novas condições podem surgir não permite retirar dados de maneira eficaz e conveniente Isolamento dos dados dados são espalhados em vários arquivos de diferentes formatos é difícil escrever novos programas para retirada conveniente dos dados Múltiplos usuários pode resultar em dados inconsistente considere uma conta com R$ 500,00 se dois clientes fazem um saque ao mesmo tempo (R$ 50,00 e 100,00) pode levar a um saldo inconsistente (450 ou 400) supervisão deve ser mantida no sistema Problemas de segurança nem todo usuário deve ser autorizado a acessar todos os dados caixa deveria acessar dados dos correntistas departamento pessoal deveria acessar os dados dos funcionários como os programas são adicionados ao sistema de forma aleatória é difícil garantir segurança Problemas de integridade valores armazenados devem satisfazer certos tipos de restrições de consistência exemplo: saldo de uma conta nunca deve estar abaixo de um valor pré-especificado restrições devem ser garantidas pelo sistema pode ser conseguida colocando código apropriado nos diversos programas mas quando novas restrições são inseridas fica difícil alterar os programas para garanti-la mais complicado se restrições envolvem diversos dados de diferentes arquivos Conduziu ao desenvolvimento de sistemas gerenciadores de banco de dados Exemplos de operações que podem ser realizadas pelos usuários do sistema de banco de dados Acrescentar novos arquivos, vazios; Inserir novos dados em arquivos existentes; Buscar dados de arquivos existentes; Alterar dados em arquivos existentes; Eliminar dados de arquivos existentes; Remover arquivos existentes no banco de dados.
Numero 2 3 10 Exemplo de Banco de Dados Arquivo ADEGA Vinho Sangue de Boi Vinho branco Vinho tinto Produtor João da Silva Buena Vista Joaquim Ano 1997 1996 1998 Garrafas 5 3 12 Pronto 2000 2001 2000 Exemplo de busca: Select VINHO, NUMERO,PRODUTOR From ADEGA Where PRONTO = 2000; Resultado: Vinho Numero Produtor Sangue de Boi 2 João da Silva Vinho tinto 10 Joaquim