BANCO DE DADOS Prof. Marcelo West [email protected] Nov/2015 Objetivos • Introduzir a tecnologia de Bancos de Dados e seus principais conceitos • Apresentar os Sistemas Gerenciadores de Bancos de Dados e suas características • Conceituar Banco de Dados, indicando os seus principais componentes básicos. • Mostrar a importância e o significado de um SGBD dentro de um Sistema de Banco de Dados 2 Conceitos Iniciais Dados X Informação 500 O paraíso fica a 500 km. A pessoa mais gorda do mundo pesa 500 kg. 3 Dados Dados: são fatos ou observações sem tratamento, normalmente sobre fenômenos físicos ou transações de negócios. Mais especificamente, os dados são medidas objetivas dos atributos (características) de entidades como pessoas, lugares, coisas e eventos. 4 Informações Informações: • São dados processados que foram colocados em um contexto significativo e útil para um usuário final. • Os dados são submetidos a um processo de “valor adicionado” (processamento de dados ou processamento de informação). • É o dado trabalhado que permite ao executivo tomar decisões. 5 Os sistemas de informação manipulam informações Geram 6 Valor dos Dados • Valor para os objetivos da empresa • Custo para obtenção e manutenção • Desvantagens para a organização em não possuí-los ou não poder obtê-lo imediatamente • É preciso organizar e manter os dados de uma organização tendo em vista sua utilização por múltiplos usuários 7 Conceitos Iniciais Mini-mundo ou Universo do Discurso − Uma abstração do mundo real, onde consideramos apenas as propriedades dos objetos que nos interessam para fins de processamento computacional. − Exemplo: cadastro de clientes: “cpf”, “nome”, “endereço”, “telefone”, “e-mail” 8 O que é um Banco de Dados? 9 O que é um Banco de Dados Definião de [Elmasri & Navathe, 2000] • Um banco de dados é uma coleção de dados relacionados, representando algum aspecto do mundo real (mini-mundo ou universo de discurso) • Logicamente coerente, com algum significado • Projetado, construído e gerado (“povoado”) para uma aplicação específica BD 10 O que é um Banco de Dados? Uma coleção compartilhada de dados interrelacionados, projetados para atender as necessidades dos múltiplos tipos de usuários. isto é Uma coleção de dados da qual, múltiplos usuários com visões diferentes utilizam em suas aplicações 11 O que é um Banco de Dados? É uma coleção de dados operacionais armazenados usados pelas diversas aplicações de uma organização. (Date, 1985) Um conjunto de arquivos relacionados entre si. (Chu,1983) É uma coleção de dados relacionados. (Navathe, 2000) 12 Exemplos de Bancos de Dados • Uma vídeo locadora que armazena os dados de seus clientes • Seus dados referentes a uma conta bancária • Cadastro de alunos do IFNMG • Possivelmente você já é autor de um mini banco de dados (Mala direta do Word) • “Minha mãe vende bolo e ela tem um caderninho com a lista dos clientes a serem visitados” 13 Exemplos de Bancos de Dados 14 Mais conceitos • SGBD (Sistema Gerenciador de Banco de Dados) − Software que auxilia a criação e manutenção dos dados em um sistema de banco de dados − Exemplos: MySQL, Firebird, Oracle Database, PostgreSQL, entre outros. 15 Mais conceitos • Gerenciador de Banco de Dados − Conjunto de programas (software) para gerenciar (criando, modificando e usando) um banco de dados e garantir a integridade e segurança dos dados − Exemplos: IBOConsole, IBExpert, MySQL Workbench, entre outros. 16 Mais conceitos • Sistema de Banco de dados − É o conjunto formado pelos aplicativos, SGDB e por todos os dados manipulados por este. − Algumas vantagens de usar um sistema de BD: • Rapidez na manipulação e acesso no acesso à informação; • Redução do esforço humano; • Disponibilização no tempo necessário; • Redução de redundância e de inconsistência de informações; • Compartilhamento de dados; • Redução de problemas de integridade. 17 Sistema de Banco de Dados 18 Consolidando Conceitos Responda rápido: • • • • Qual diferença entre Dados e Informação? O que é Banco de Dados? O que é o SGBD? O que é um Sistema de Banco de Dados? 19 Resposta 01 Qual a diferença entre Dados e Informação? − Dados: fatos ou informações sem tratamento. − Informações: dados processados que foram colocados em um contexto significativo e útil para um usuário final. 20 Respostas 02 e 03 O que é Banco de Dados? Uma coleção compartilhada de dados interrelacionados, projetados para atender as necessidades dos múltiplos tipos de usuário O que é o SGBD? (Sistema Gerenciador de Banco de Dados) Software que auxilia a criação e manutenção dos dados em um sistema de banco de dados 21 Resposta 04 O que é um Sistema de Banco de Dados? − É o conjunto formado pelos aplicativos, SGDB e por todos os dados manipulados por este. − é um sistema de manutenção de registros por computador envolvendo quatro componentes principais , sendo eles: dados, hardware, software e usuários. 22 Evolução dos Sistemas de Banco de Dados • Aplicações tradicionais (processamento de arquivos): − orientadas a programas; − Pesquisa sequencial; − Arquivos de dados sem padronização. • Aplicações com SGBD: − orientadas a dados e processos; − Pesquisas otimizadas (com uso de índices); − Aumento da padronização. 23 Processamento de arquivos típico 24 Aplicações com Banco de dados 25 Usuários de um Sistema de Banco de Dados Usuários Profissionais de BD • Usuários finais: casuais, leigos e especialistas • Analistas de Sistema • Programadores de Sistema • Projetista de Banco de Dados (Analista de Dados) • DBA – Administrador de Banco de Dados 26 Principais Características do SGBD • Integridade − Dados corretos • Consistência ou Compartilhamento de Dados − Dados em um único local • Segurança ou Restrição de Acesso − Níveis de acesso: • Leitura • Leitura e gravação • Somente Gravação 27 Principais Características do SGBD • Restauração ou Tolerância a Falhas − Facilidade de recuperar de falhas de hardware e software • Não Redundância ou Controle de Redundância − Como os dados estão centralizados é possível eliminar (ou reduzir) a redundância • Padronização dos Dados − Dados padronizados. Ex.: sexo “M” ou “masc”? 28 Reflexão Quando devemos utilizar Sistemas de Gerenciamento de Banco de Dados (SGBD)? 29 Considerações • Custos: − do próprio software; − para implantação; − de manutenção; − de treinamentos; − da possível sobrecarga no ambiente. 30 Quando utilizar BD? • Existência de um conjunto de dados estruturados que a organização necessite compartilhar entre diversos usuários • Quando necessitar de um software que auxilie o gerenciamento deste processo • Diversidade de usuários desejando sempre a mesma informação • Banco de dados como base ao sistema de informação da organização 31 Quando NÃO utilizar BD? • Aplicações simples e bem definidas onde não se espera mudanças • Aplicações de tempo real • Aplicações em que não há necessidade do compartilhamento entre múltiplos usuários 32 Quando NÃO utilizar BD? •Motivo Investimento inicial alto¹ Generalidade na definição e manipulação dos dados² Custo adicional para prover outras facilidades funcionais (manutenção de segurança, controle de concorrência, recuperação de falhas, etc.) 33 Benefícios do uso de SGBD’s • Definição pelo dicionário de dados • Manutenção da Integridade dos dados • Acelerar o processo de desenvolvimento de aplicações • Manutenção da Padronização • Economia de espaço (compressão) • Facilita a eliminação de redundâncias • Recuperação de informações não programadas 34 O Discurso do Controle Centralizado • Redundância reduzida • Inconsistência pode ser evitada • Manutenção da integridade • Compartilhamento de dados • Padronização e segurança 35 Alguns outros conceitos • Esquema do banco de dados é a concepção global do banco de dados (arquivos/files) nos aspectos físicos e lógicos. • Sub-Esquema é a visão do esquema global para atendimento às necessidades específicas de uma aplicação ou de um usuário (VIEW) é a coleção de informações armazenadas no banco de dados em um • Instância particular instante. 36 Independência de Dados • Física: É a capacidade de se modificar o esquema físico sem precisar alterar a programação de acesso. • Lógica: É a capacidade de se modificar o esquema conceitual sem alterar a programação de acesso. 37 Arquitetura de um banco de dados Arquitetura de Três Esquemas ou de Três Níveis Proposta para suportar a independência dos dados e possibilitar múltiplas visões dos dados 38 Arquitetura de um banco de dados Arquitetura de Três Esquemas ou de Três Níveis Nível externo, visão do usuário, userview, Esquema externo e/ou Sub-esquema: descreve parte de um banco de dados para determinado grupo ou determinada aplicação 39 Arquitetura de um banco de dados Arquitetura de Três Esquemas ou de Três Níveis Nível conceitual, comunidade de visões, visão lógica geral, esquema conceitual: descreve quais dados estão armazenados e as relações que existem entre eles 40 Arquitetura de um banco de dados Arquitetura de Três Esquemas ou de Três Níveis Nível interno, visão física, esquema interno ou nível físico: descreve como os dados estão realmente armazenados 41 Arquitetura de um banco de dados A cada nível um esquema: View ou userview, Esquema conceitual, Esquema físico 42 Resumindo: O que é um SGBD? Um conjunto de programas que permite: • Definição de dados • Definição da ligação entre os dados • Proteção dos dados (back-up, restore, backout, recuperação de blocos, passwords, etc...) • Geração de relatórios • Controle físico dos arquivos (espaço, número de registros, layout, última atualização) • Controle de performance • Funções de criação, modificação e eliminação de informações • E outras (depende do SGBD) 43 Componentes de um SGBD • Gerenciador de arquivos • Gerenciador de banco de dados • Processador de consultas • Pré-compilador DML • Compilador DDL • Arquivo de dados • Dicionário de dados • Índices 44 Componentes de um SGBD • Gerenciador de arquivos − Gerencia a alocação do espaço necessário para a armazenagem do arquivo no disco e as estruturas de dados utilizadas para representar a informação armazenada. 45 Componentes de um SGBD • Gerenciador de banco de dados − Fornece a interface entre os dados armazenados, os programas de aplicação e as solicitações submetidas ao sistema. 46 Componentes de um SGBD • Principais tarefas do Gerenciador de banco de dados − Interage com o Gerenciador de Arquivos; − Segurança; − Integridade; − Cópias de segurança e recuperação; − Controle de concorrência. 47 Componentes de um SGBD • Processador de consultas − Traduz comandos numa linguagem de consulta em instruções de baixo nível de tal forma que o Gerenciador do Banco de Dados entenda 48 Componentes de um SGBD • Pré-compilador DML − Converte comandos DML embutidos em um aplicativo para chamadas de procedimento normal na linguagem hospedeira. Interage com o Processador de Consultas para gerar o código apropriado 49 Componentes de um SGBD • Compilador DDL − Converte comandos DDL em um conjunto de tabelas contendo METADADOS (dados acerca dos dados) que são armazenados em um Catálogo de Dados 50 Componentes de um SGBD • Arquivos de dados − Conjunto de arquivos ou os dados propriamente ditos • Dicionário de dados − Metadados ou dados sobre dados 51 Funcionamento de um SGBD • O programa de aplicação chama o SGBD para ler um registro lógico fornecendo critérios de pesquisa • O SGBD verifica se o que o usuário quer ler existe e se ele tem autorização para isso • O SGBD verifica na visão lógica (esquema conceitual) qual(is) o(s) tipo(s) de dado(s) lógicos necessários 52 Funcionamento de um SGBD • O SGBD examina a descrição física e determina qual(is) registro(s) físico(s) será(ão) lido(s) • O SGBD emite uma ordem ao sistema operacional instituindo a ler o(s) registro(s) solicitado(s). • O sistema operacional interage com o meio físico onde os dados estão armazenados. 53 Funcionamento de um SGBD • Os dados são transmitidos para um buffer do SGBD. • Comparando o sub-esquema e o esquema, o SGBD deriva dos dados do buffer o registro lógico solicitado. • O SGBD transfere os dados para o programa de aplicação. 54 Funcionamento de um SGBD • SGBD fornece um código de status ao programa, informando o resultado da operação, inclusive indicação de erros. • Finalmente, o programa de aplicação reassume o controle e pode operar com os dados na área de comunicação. 55 Atividade em Dupla • Modelo de dados (tipo de banco de dados): − Para qual tipo de aplicação é usado cada um dos modelos?; quais as vantagens e desvantagens de cada modelo? Modelo de dados relacional; Modelo de dados hierárquico; Modelo de dados orientado a objetos; Modelo de dados em redes. 56 FIM 57