Prévia do material em texto
Banco de Dados UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA CAMPUS SÃO LUÍS – BACANGA Professor: Cláudio Aroucha e Luis Claudio Email: claudio.aroucha@ecp.ufma.br claudio.luis@ufma.br 13/03/2019 1 Sumário Objetivos da Disciplina Programa resumido Bibliografia Conceitos básicos Definição de um Banco de Dados Sistemas de Arquivos convencionais Sistema Gerenciador de Bancos de Dados Usuários de um Banco de Dados Modelo de Dados Bibliografia 13/03/2019 2 Objetivos da Disciplina Fazer um estudo aprofundado dos conceitos, processos e técnicas de banco de Dados; Conhecer e aplicar os diferentes modelos de dados utilizados por SGBDs; Descrever os fundamentos do modelo Entidade-Relacionamento e Relacional. Criar e manipular uma base de dados através da linguagem SQL. Aplicar ferramentas e implantar Projetos de Bancos de Dados. 13/03/2019 3 EMENTA Conceitos básicos e terminologia. Evolução histórica. Modelos de dados, Linguagens de Definição e Manipulação de Dados. Sistemas de Gerência de Banco de Dados (SGBDs). Estrutura de um SGBD: níveis conceitual, externo e físico, modelo conceitual e modelo externo. Estudo de um modelo conceitual. Gerenciamento de transações. Controle de concorrência. Recuperação de falhas. Segurança e integridade de dados. 13/03/2019 4 Habilidades e Competências Descrever os modelos e os componentes de Sistemas de Bancos de Dados; Projetar Bancos de Dados, usando técnicas e ferramentas modernas de Projeto de Bancos de Dados Relacionais; Construir e reestruturar bancos de dados relacionais dentro dos padrões de normalização; Conhecer e utilizar teorias e linguagens padronizadas para manipulação e acesso a dados. 13/03/2019 5 Bibliografia Principal DATE, C. J. Introdução a Sistemas de Bancos de Dados - 8 Edição. Campus, 2004. Korth, Henry F.; S. Sudarshan; Silberschatz, Abraham. Sistema de Banco de Dados - 6ª Ed. Campus, 2011. ELMASRI, Ramez; NAVATHE, Sham. Sistemas de Banco de Dados. 6 Ed. São Paulo: Pearson, 2010. 13/03/2019 6 Bibliografia Complementar ROB, P.; CORONEL, C. Sistemas de Bancos de Dados. 8ª Ed. São Paulo: Cengage Learning, 2010. Lightstone, Sam; Nadeau, Tom; Teorey, Toby J. Projeto e Modelagem de Bancos de Dados - 2ª Ed. Campus, 2014 BEIGHLEY, Linn. Use a Cabeça SQL, Alta Books, 2008. 13/03/2019 7 Metodologia Aulas expositivas; Exercícios de fixação; Atividades extra-classe; Material das aulas. 13/03/2019 8 Avaliação Participação em Sala; Resolução das atividades; três avaliações escritas; Trabalho no final da disciplina. 13/03/2019 9 O que é um banco de Dados 13/03/2019 10 10 Conceitos Básicos Sistemas de arquivos convencionais Dados não estão integrados. Cada aplicação trabalha com seu próprio conjunto de arquivos. 13/03/2019 11 11 Conceitos Básicos Problemas da falta de integração de dados Mesmo objeto representado múltiplas vezes. Redundância não controlada de dados. Inconsistência de dados: dados não representam corretamente a realidade. “Redigitação” de informações: trabalho repetitivo que pode levar a erros. 13/03/2019 12 Conceitos Básicos Desvantagens dos sistemas de arquivos convencionais: Redundância de dados – arquivos e programas são criados por diversos programadores; Inconsistência – uma mesma informação, quando duplicada em diversos arquivos, eleva o custo de armazenamento e compromete sua consistência; 13/03/2019 13 Conceitos Básicos Desvantagens dos sistemas de arquivos(cont.): Dificuldade de acesso a dados – não permite acesso e manipulação dos dados de maneira eficaz; Carência de padronização – dados são espelhados em vários arquivos de diferentes formatos; Carência de controle de segurança – resulta no acesso indevido aos dados armazenados. 13/03/2019 14 Conceitos Básicos Vantagens na utilização de Banco de Dados: Pode reduzir a redundância; A inconsistência pode ser evitada (até certo ponto); Permite compartilhar os dados; Pode reforçar os padrões; Pode aplicar restrições de segurança; Pode manter a integridade; 13/03/2019 15 Conceitos Básicos Desenvolvimento de aplicações de BD Arquivos devem ser projetados para atender diferentes aplicações; Dados devem estar corretos - Manutenção de Restrições de integridade; BD acessado concorrentemente por múltiplos usuários – Controle de Concorrência; Nem todo o usuário pode acessar qualquer informação – Controle de Acesso; Dados são de importância vital e não podem ser perdidos – Tolerância a Falhas; 13/03/2019 16 Conceitos Básicos Banco de dados Manual; Informatizado: Programas de aplicação; Sistema de Gerência de Banco de Dados (SGBD) ou Database Management System (DBMS). SGBD – É o conjunto de programas (software) que permite a criação e manutenção de um BD. 13/03/2019 17 Conceitos Básicos Características importantes de um SGBD: Separação entre programas de acesso e dados; Suporte para múltiplas visões de usuário; Compartilhamento de dados e processamento multiusuário (suporte a transações); Armazenamento do BD da sua própria descrição ou esquema (metadados); representação conceitual dos dados através de modelos de dados (abstração). 13/03/2019 18 Conceitos Básicos Exemplo arquivo xml: 13/03/2019 19 Conceitos Básicos Representação simplificada de um SBD: 13/03/2019 20 Conceitos Básicos Banco de Dados Representa o arquivo físico de dados, armazenado em dispositivos periféricos, onde estão armazenados os dados de diversos sistemas, para consulta e atualização pelo usuário. 13/03/2019 21 Conceitos Básicos Solução para evitar a redundância; Compartilhamento de dados; Cada informação armazenada uma única vez. 13/03/2019 22 Definição Banco de dados é conhecido como base de dados, um conjunto de arquivos estruturados de forma a facilitar o acesso a conjuntos de dados. Assim como: “Conjunto de dados integrados que visa a atender um conjunto de aplicações” [Heuser, 2001]. “Sistema de manutenção de registros por computador” [Date, 1990]. “ É uma coleção de dados integrados” [Navathe, 2010]. 13/03/2019 23 Definição Como saber qual disciplina é ministrada pelo professor João? 13/03/2019 24 Sistemas de Arquivos Convencionais Imagine no exemplo anterior se você tivesse três arquivos de texto ou mesmo no Word/Writer para guardar as informações do Aluno, Professor e Disciplina. 13/03/2019 25 Sistemas de Arquivos Convencionais Para descobrir as datas de nascimento de um aluno você teria de ir no primeiro arquivo. Para saber se a disciplina de Banco de Dados existe, teria de ir no terceiro arquivo e quais são os nomes dos Professores acessaria o segundo arquivo. 13/03/2019 26 Sistemas de Arquivos Convencionais Por que não fazer um arquivo que faça a união de todos estes arquivos? Será que daria certo duas ou mais pessoas acessarem ao mesmo tempo este arquivo. Quem controlaria o acesso aos arquivos e evitaria as inconsistências? 13/03/2019 27 Sistema Gerenciador de Bancos de Dados (SGBD) SGBD é o conjunto de programas (software) que permite a criação e manutenção de um BD. é o software responsável pelo gerenciamento (armazenamento e recuperação) dos dados . Sistema de Banco de Dados (SBD) - é um ambiente de hardware e de software composto por dados armazenados em um banco de dados(BD), pelo software de gerência do banco de dados (SGBD) e os programas de aplicação 13/03/2019 28 Sistema Gerenciador de Bancos de Dados (SGBD) Algumas responsabilidades básicas: Criar uma interface amigável para que possamos interagir com o Banco de Dados; Controlar o acesso simultâneo; Permitir que enquanto uma pessoa esteja alterando um dado a outra possa estar manipulando-o. 13/03/2019 29 Sistema Gerenciador de Bancos de Dados (SGBD) Principais características que um SGBD deve prover: Independência de Dados; Restrições de Acesso; Controle de Redundância; Restrições de Integridade; Compartilhamento de Dado; Mecanismos de Backup e Recuperação; Múltiplas Interfaces. 13/03/2019 30 Sistema Gerenciador de Bancos de Dados (SGBD) Independência de Dados A independência dos dados em relação a aplicação representa um avanço no sentido de tornar qualquer modificaçãodas estruturas dos arquivos imperceptível para os programas. Desta forma, as mudanças na organização dos dados não gera qualquer necessidade de alteração dos programas que o manipulam. 13/03/2019 31 Sistema Gerenciador de Bancos de Dados (SGBD) Independência de Dados Exemplo: Inclusão de um novo campo (atributo) em um arquivo (tabela) é feita sem que sejam alterados os programas, pois nos programas não estão definidos as estruturas dos arquivos. 13/03/2019 32 Sistema Gerenciador de Bancos de Dados (SGBD) Restrições de Acesso Um SGBD deve prover controles de segurança e autorização, que são utilizados para criar contas e seus respectivos direitos de acesso quando múltiplos usuários compartilham um banco de dados.” (Navathe,2010). 13/03/2019 33 Sistema Gerenciador de Bancos de Dados (SGBD) Exemplo: O sistema de controle de produção de automóveis, inclui um novo veiculo ao cadastro, enquanto pode ser realizado uma consulta sobre os insumos para a produção do mesmo. 13/03/2019 34 Sistema Gerenciador de Bancos de Dados (SGBD) Controle de redundância “É um conceito representado pelo controle centralizado dos dados compartilhados por diversas aplicações, reduzindo a repetição de dados a um mínimo justificável e aceito apenas por questão de desempenho.” (Cerícola, 1991). 13/03/2019 35 Sistema Gerenciador de Bancos de Dados (SGBD) Problemas da redundância de dados: duplicação de esforço para manter os dados atualizados; desperdício de espaço de armazenamento; possibilidade de inconsistência dos dados. 13/03/2019 36 Sistema Gerenciador de Bancos de Dados (SGBD) Restrições de Integridade A maioria dos SGBD fornecem certas restrições de integridade que devem ser aplicadas aos dados. O SGBD deve ter mecanismos para possibilitar a definição das restrições e assegurar o respeito a estas. Exemplo: definição de um tipo de dado (data type) para cada item de dado. 13/03/2019 37 Sistema Gerenciador de Bancos de Dados (SGBD) Exemplo: Ao definir o tipo de gênero como: masculino e feminino. E em seguida definir o atributo gen como do tipo gênero. O SGBD aceitará apenas os tipos definidos ou seja masculino e feminino como válidos para este atributo. Pergunta: o que aconteceria se o usuário informasse o gênero diferente aos definidos para o atributo gen? 13/03/2019 38 Sistema Gerenciador de Bancos de Dados (SGBD) Compartilhamento de Dados Permite a usuários diferentes o uso simultâneo de um mesmo dado. Exemplo: As informações sobre clientes podem ser acessadas pelo sistema de vendas, de contas a receber e faturamento simultaneamente. 13/03/2019 39 Sistema Gerenciador de Bancos de Dados (SGBD) Exemplo (cont.): A mesma base de dados sobre funcionários pode ser usada simultaneamente pelo sistema de recursos humanos e pelo sistema de vendas. No primeiro caso os dados serão utilizados no processo de pagamento e no segundo no processo de alocação dos vendedores às áreas de atendimento a cliente. 13/03/2019 40 Sistema Gerenciador de Bancos de Dados (SGBD) Mecanismos de Backup e Recuperação Um SGBD deve prover facilidades para recuperação de falhas do hardware ou software. Estes mecanismo evitam que cada aplicação tenha que projetar e desenvolver seus próprios controles contra a perda de dados. 13/03/2019 41 41 Sistema Gerenciador de Bancos de Dados (SGBD) Exemplo: Se a aplicação falha no meio de uma alteração complexa, o mecanismo de recuperação assegura que o banco de dados será restaurado para o estágio que ele se encontrava antes do início da execução do programa. 13/03/2019 42 Sistema Gerenciador de Bancos de Dados (SGBD) Múltiplas Interfaces Linguagens de consulta para usuários casuais; Linguagens de programação para programadores de aplicações; Interfaces gráficas para usuários; Interfaces para administração do banco de dados. 13/03/2019 43 Sistema Gerenciador de Bancos de Dados (SGBD) Benefícios adicionais dos BDs: Potencial para o estabelecimento e o cumprimento de padrões; Flexibilidade de mudanças; Redução no tempo de desenvolvimento de novas aplicações; Disponibilidade de informação atualizada; Economia de escala . 13/03/2019 44 economia de escala - o custo por unidade de trabalho decresce à medida que o tamanho do processador cresce (Lei de Grosch) - facilidade de controle de segurança, integridade e implantação de padrões, além de disponibilidade de dados para a gerência 44 Comparativo SGBD X Sistema de Arquivos 13/03/2019 45 Sistema Gerenciador de Bancos de Dados (SGBD) Bancos de dados não são sempre a solução: Sobrecustos: Alto investimento inicial de hardware, software e treinamentos; “Overhead” de processamento; 13/03/2019 46 Sistema Gerenciador de Bancos de Dados (SGBD) Bancos de dados não são sempre a solução (cont.): Quando NÃO usar bancos de dados: Volume de dados pequeno, aplicações simples, bem definidas; Mudanças não são esperadas; Acessos múltiplos e concorrentes não são necessários. 13/03/2019 47 Sistema Gerenciador de Bancos de Dados (SGBD) SGBD’s disponíveis no mercado: 13/03/2019 48 Usuários de um Banco de Dados Basicamente são quatro os tipos de usuários de sistemas de bancos de dados: Administrador de Banco de Dados (DBA); Projetista de Banco de Dados (DB Designer); Analista/Programador de Aplicação (Analista de Sistemas); Usuários leigos. 13/03/2019 49 Usuários de um Banco de Dados Administrador de Banco de Dados (DBA): Responsável pelos esquemas físico e lógico do BD; Gerencia o controle de acesso aos dados; Monitora a performance do SGBD. 13/03/2019 50 Usuários de um Banco de Dados Projetista de Banco de Dados (DB Designer): Identifica os requisitos da aplicação e com o auxílio do usuário, cria o modelo conceitual do BD; Junto com o DBA, estende e modifica o modelo lógico. 13/03/2019 51 Usuários de um Banco de Dados Analista/Programador de Aplicação (Analista de Sistemas): Define e projeta a informatização da aplicação; Usa os esquemas conceitual e lógico do BD. 13/03/2019 52 Usuários de um Banco de Dados Usuários leigos interagem com o banco de dados por meio das interfaces de aplicações escritas por programadores de aplicações. 13/03/2019 53 Abstração de dados Para administrar a complexidade dos dados 3 níveis foram considerados: 13/03/2019 54 Exercícios de fixação 1) Defina SGBD´s. 2) Cite duas desvantagens do uso de sistemas de arquivos em relação a SGBD´s. 3) Defina uma vantagem de se usar sistemas de arquivos em relação a SGBD. 4) Cite as quatro arquiteturas de banco de dados existentes no mercado. Descreva, em poucas linhas, as características de cada uma delas. 5) Quais são os níveis de abstração proporcionados por um SGBD? 13/03/2019 55 Projeto de Banco de Dados 13/03/2019 56 Projeto de Banco de Dados 13/03/2019 57 Projeto de Banco de dados Projeto Conceitual: 1. Descrição de mais alto nível da estrutura do BD 2. Não contém detalhes de implementação 3. Independente do tipo de SGBD usado 4. Construção de modelos semânticos 5. Ponto de partida do projeto de BD 13/03/2019 58 Projeto de Banco de dados Projeto Lógico: 1.Descrição da estrutura do BD que pode ser processada pelo SGBD. 2. Modelo conceitual mapeado para um modelo lógico de dados. 3. Dependente da classe de modelos de dados utilizada pelo SGBD, mas NÃO do SGBD específico escolhido para a implementação. 4. Futuras alterações no modelo lógico devem ser primeiro efetuadas no MC. 13/03/2019 59 Projeto de Banco de dados Projeto Físico: 1. Mapeamento do modelo lógico em um esquema físico de acordo com o SGBD específico. 2. Descrição da implementação da base de dados. 3. Descreve as estruturas de armazenamento e os métodos de acesso. 4. Exemplos: alocação dinâmica de espaços, clusterização, particionamento físico das tabelas, etc. 13/03/2019 60 60 Projeto de Banco de dados Esquemas 13/03/2019 61 Fonte: página do SlidePlayer¹ 61 Arquitetura ANSI/SPARC Arquitetura de sistema de banco de dados proposta pela ANSI, cujo objetivo é separar o banco de dados físico das aplicações do usuário através de três diferentes níveis de esquemas Esquema interno– Descreve a estrutura física de armazenamento do BD, a organização de arquivos e os métodos de acesso 13/03/2019 62 Arquitetura ANSI/SPARC Esquema conceitual – Descreve a estrutura do BD completo sob o ponto de vista do usuário. Descrições de entidades, atributos, relacionamentos, operações e restrições; Esquema externo – também chamado de visões de usuário; 13/03/2019 63 Arquitetura ANSI/SPARC 13/03/2019 64 Arquitetura ANSI/SPARC Um dos principais objetivos desta arquitetura é propiciar a independência dos dados sob o ponto de vista destes esquemas. Esta independência pode ser classificada como: Independência lógica – flexibilidade para alterar o esquema conceitual Independência física - flexibilidade para alterar o esquema interno 13/03/2019 65 Percepção do Mundo Real Toda realidade é sempre, em princípio, bastante nebulosa e informal. Através da observação podemos extrair desta realidade fatos que nos levam a conhecê-la de uma forma mais organizada; Em um negócio, existem fatos que, observados e modelados, dizem algo a respeito do funcionamento deste negócio. Estes fatos estão ligados diretamente ao funcionamento da realidade, a qual temos interesse em compreender e manter. 13/03/2019 66 Percepção do Mundo Real Para que possamos retratar estes fatos e que os mesmos possam nos levar a futuras decisões e ações, se faz necessário então registrá-los. Este registro é feito através da criação de um MODELO, isto é, algo que nos mostre como as informações estão relacionadas. 13/03/2019 67 Percepção do Mundo Real Ao coletar e relacionar os fatos relevantes, devemos identificar os elementos geradores de informação, as leis que regem esta realidade, bem como as operações que incidem sobre os elementos básicos (dados). O que se quer criar é uma ABSTRAÇÃO da realidade, que seja capaz de registrar os acontecimentos da mesma, de modo que se possa implementar um sistema automatizado que atenda às reais necessidades de informação. 13/03/2019 68 Percepção do Mundo Real (Níveis de Abstração) 13/03/2019 69 Percepção do Mundo Real (Elementos de Abstração) Minimundo: porção específica da realidade, captada pelo analista, objeto de observação detalhada. Caso a análise do minimundo torne-se muito complexa, o analista pode subdividí-lo em pontos menores, chamados de “visões”. 13/03/2019 70 Percepção do Mundo Real (Elementos de Abstração) Banco de Dados: coleção de fatos registrados que refletem certos aspectos de interesse do mundo real. Modelos de Dados: uma coleção de conceitos que são usados para descrever a estrutura de um banco de dados, isto é, dados, relacionamentos, semântica e restrições 13/03/2019 71 Modelo de Dados Importância da Modelagem de Dados: Toda realidade é sempre, em princípio, bastante nebulosa e informal. Para que possamos retratar estes fatos e que os mesmos possam nos levar a futuras decisões e ações, se faz necessário então registrá-los. Este registro é feito através da criação de um modelo. 13/03/2019 72 72 Modelo de Dados Modelar implica em construir modelos, então como fazer isto ? Define-se em 3 etapas: Modelos conceituais (modelos semânticos): descrevem a realidade observada. Exemplos: Modelo E-R , diagrama de classes UML 13/03/2019 73 Modelo conceitual usada como representação de alto nível e considera exclusivamente o ponto de vista do usuário criador dos dados; 73 Modelo de Dados Modelos lógicos (modelos de implementação): nível de abstração inferior ao modelo conceitual. Suportam descrições de dados que possam ser processadas por computador. Podem ser classificados como: modelos lógicos baseados em objetos; modelos lógicos baseados em registros. 13/03/2019 74 Modelo Lógico - O modelo lógico mostra as ligações entre as tabelas de banco de dados. (banco de dados hierárquico , banco de dados relacional ,etc.). 74 Modelo de Dados Modelos Físicos: Descrevem como os dados são armazenados no computador através de informações como tipos de arquivos, formatos e ordenação de registros, caminhos de acesso. Descreve as estruturas físicas de armazenamento de dados, tais como: tamanho dos campos, índices, tipo de preenchimento destes campos, etc... Tem origem no Modelo Lógico e detalha o estudo dos métodos de acesso ao SGBD 13/03/2019 75 Modelo Físico - considera os limites impostos pelo SGBD e requisitos não funcionais dos programas que acessam os dados 75 Modelo de Dados Exemplos de Modelos Lógicos: Modelo de rede - é uma coleção de registros conectados uns aos outros por meio de links(ponteiros); Modelo hierárquico – Baseado na estrutura de árvore; Modelo Relacional - Introduzido por Codd em 1970. A estrutura de dados é uma relação. 13/03/2019 76 76 image1.jpeg image2.png image3.png image4.png image5.png image6.png image7.png image8.png image9.png image10.png image11.emf image12.emf image13.emf image14.emf image15.emf image16.emf image17.png image18.png image19.png