10. Banco de Dados

Embed Size (px)

Citation preview

  • 8/7/2019 10. Banco de Dados

    1/37

    BANCO DE DADOS

    Sistemas de Computao

  • 8/7/2019 10. Banco de Dados

    2/37

    INTRODUO

    O que voc sabe sobre Banco de Dados?

    Cite alguns exemplos de aplicaes que utilizamBanco de Dados.

    Voc conhece algum Sistema Gerenciador de

    Banco de Dados?

  • 8/7/2019 10. Banco de Dados

    3/37

    CONTEXTO HISTRICO

    Relembrando a programaoy Em programao e no desenvolvimento de sistemas, os

    programas precisam manipular informaesy Qual seria uma primeira forma para tornar as informaes

    persistentes? (Persistente: a informao permanece entre execues do sistema)

    y Um primeira sada seria utilizar arquivos para armazenar asinformaes do sistema

    Para vislumbrarmos melhor este cenrio, vamos imaginar:y Como seria implementar um sistema para gerenciar as Contas

    a Pagar e a Receber de uma empresay Imaginemos que esta implementao deve ser feita por meio

    de Sistemas de Arquivos em uma linguagem qualquer, em Cpor exemplo

    y Este um cenrio tpico usado antigamente

  • 8/7/2019 10. Banco de Dados

    4/37

    CONTEXTO HISTRICO

    Avaliando a alternativa de implementao emarquivosy Quais problemas encontraramos nesta

    implementao?

    Problemas / Desvantagensy Redundncia e inconsistncia dos dadosy Dificuldade de acesso a dadosy Isolamento dos Dadosy Problemas de integridadey Segurana

  • 8/7/2019 10. Banco de Dados

    5/37

    CONTEXTO HISTRICO

    Problemas no armazenamento em arquivosy Redundncia e inconsistncia dos dados

    Vrios pequenos programas/funes implementados pordiferentes programadores

    Grande possibilidade de se tratar os mesmos dados emaplicaes diferentes e com inconsistncia entre eles Exemplo: Vendas tratada em um mdulo de vendas e Contas

    a Receber em outro sem integrao entre eles

    y Dificuldade de acesso a dados Imagine que o gerente da loja precise de um novo relatrio de

    vendas com informaes diferentes de um relatrio j concebido Neste caso, para gerar o relatrio, uma nova rotina, com os

    diversos loops e possivelmente com acesso a arquivosdiferentes, deve ser implementada

    Isso pode demorar muito tempo o que compromete oatendimento demanda do cliente e o custo tambm maior

  • 8/7/2019 10. Banco de Dados

    6/37

    CONTEXTO HISTRICO

    Problemas no armazenamento em arquivosy Isolamento dos dados

    Os dados esto armazenados em arquivos distintos, que nopossuem qualquer tipo de relacionamento direto, e ainda,

    podem conter diferentes formatos para o mesmo dadoy Problemas de integridade

    Como estabelecer regras sobre as informaes no sistema dearquivos?

    Cada regra deve ser codificada no programa. uma

    maneira mais complexa e sujeita a errosy Segurana

    Para implementar segurana, funes especializadas devemser implementadas para garantir que usurios especficosacessem os dados

  • 8/7/2019 10. Banco de Dados

    7/37

    CONTEXTO HISTRICO

    Os problemas citados serviram de motivao paraa criao de um software especializado notratamento de dados

    Atualmente difcil pensarmos em softwares ousistemas, sobretudo os empresariais, sem aexistncia de um sistema de banco de dados

    Pare um pouco e pense?y Quais aplicaes voc utiliza hoje que envolve dados?y Como voc imagina que as informaes manipuladas

    so tratadas pelo sistema?

  • 8/7/2019 10. Banco de Dados

    8/37

    SISTEMA DE ARQUIVOS VERSUS SISTEMAS DEBANCO DE DADOS

  • 8/7/2019 10. Banco de Dados

    9/37

    DEFINIO DE SGBD

    Coleo de programas que permite aos usurioscriar e manter um Banco de Dados

    Sistema de software de propsito geral que

    facilita os processos de definio, construo,manipulao e compartilhamento de banco dedados entre vrios usurios e aplicaesy Definio: especificar os tipos de dados, as estruturas e as

    restriesy

    Construo: processo de armazenar os dados em algumamdia apropriada controlada pelo SGBDy Manipulao: funes de pesquisas, atualizaes e gerao de

    relatriosy Compartilhamento: permite aos mltiplos usurios e

    programas acessar, de forma concorrente, o BD

  • 8/7/2019 10. Banco de Dados

    10/37

    DEFINIO DE SGBD

    O gerenciamento de dados envolvey Definir estruturas para armazenamento de

    informaoy Fornecer mecanismos para a manipulao de

    informaes

    Coleo de Dados + Programas para acesso

  • 8/7/2019 10. Banco de Dados

    11/37

    OBJETIVOS

    Objetivo principaly Fornecer uma maneira de recuperar informaes de banco

    de dados que seja tanto conveniente como eficiente

    Outros Objetivosy Disponibilizar dados integrados para usurios e aplicaes

    atravs de interfaces amigveisy Garantir a privacidade dos dados atravs de medidas de

    segurana como permisses, senhas de acesso e criptografiay Permitir compartilhamento dos dados de forma organizada,

    mediando a comunicao entre aplicaes e banco de dados,administrando acessos concorrentes

    y Possibilitar independncia dos dados e com isso poupar ousurio da necessidade de conhecer detalhes deimplementao interna

  • 8/7/2019 10. Banco de Dados

    12/37

    ESTRUTURA GERAL

    A estrutura geral de um SGBD envolve, emsntesey Mdulo responsvel pelo processamento de consultasy

    Mdulo responsvel pela administrao doarmazenamento de dados

    Relembrando definio:y SGBD = Programa + Dadosy Programa

    Responsvel por receber, processar as consultas e enviar osresultados para o cliente

    y Banco de Dados Onde os dados esto estruturados e armazenados

  • 8/7/2019 10. Banco de Dados

    13/37

    Viso Geral

    de um SGBD

  • 8/7/2019 10. Banco de Dados

    14/37

    SGBD - LINGUAGENS DOS SISTEMAS

    Linguagem de Definio de Dados Um esquema de dados especificado por um

    conjunto de definies expressas por uma

    linguagem especial chamada Linguagem deDefinio de Dados (do ingls Data-DefinitionLanguage DDL)

    O resultado da compilao dosparmetros/comando DDL gera o dicionrio dedados (arquivo de metadados)

  • 8/7/2019 10. Banco de Dados

    15/37

    SGBD - LINGUAGENS DOS SISTEMAS

    Linguagem de Manipulao de Dados: Do ingls Data-Manipulation Language DML

    a linguagem que viabiliza o acesso e amanipulao do dados.

    Podem ser:y Procedurais: o usurio especifica procedimentos para

    recuperar os dados que necessitay No-procedurais: o usurio descreve os dados que

    necessita

    Manipulao de dados = recuperao deinformaes, insero, remoo e alterao dedados no banco de dados

  • 8/7/2019 10. Banco de Dados

    16/37

    ESTRUTURA GERAL

    Processador de Consultasy Compilador DML

    Traduz comandos DML em instrues de baixo nvel,entendidos pelo componente de execuo de consultas. Almdisso, otimiza a solicitao do usurio

    y Pr-compilador para comandos DML inseridos emprogramas de aplicao Convertem comandos DML em chamadas de procedimentos

    normais da linguagem hospedeira. Interage com ocompilador DML de modo a gerar o cdigo apropriado

    y Componentes para tratamento de consultas Executa instrues de baixo nvel geradas pelo compilador

    DML

    y Interpretador DDL Interpreta comandos DDL e registra-os no dicionrio de

    dados

  • 8/7/2019 10. Banco de Dados

    17/37

    ESTRUTURA GERAL

    Gerenciador de Memria/Armazenamentoy Gerenciamento de autorizaes e integridade

    Testa o cumprimento das regras de integridade e apermisso ao usurio no acesso ao dado

    y Gerenciamento de Transaes A manipulao dos dados ocorrem por meio de transaes

    que so gerenciadas por esta parte

    y Gerenciamento de buffer Responsvel pela intermediao de dados do disco para a

    memria principal e pela deciso de quais dados colocar em

    memria auxiliary Gerenciamento de arquivos

    Gerencia a alocao de espao no armazenamento em discoe as estruturas de dados usadas para representar estasinformaes armazenadas em disco

  • 8/7/2019 10. Banco de Dados

    18/37

    ESTRUTURA GERAL

    Armazenamento em Discoy Arquivos de dados

    Armazena os dados. o banco de dados propriamente dito

    y Dicionrio de dados Tambm chamado de catlogo de dados, contm osmetadados, isto , as informaes a respeito dos

    componentes do banco de dados: tabelas, ndices,procedimentos, restries e outros.

    y ndices So estruturas que permitem um acesso mais eficiente aos

    dadosy Dados Estatsticos

    armazena informaes estatsticas relativas aos dadoscontidos no banco de dados. Essas informaes so usadaspelo processador de consultas para seleo de meioseficientes para execuo de consultas

  • 8/7/2019 10. Banco de Dados

    19/37

    USURIOS

    Usurio comum

    y Acessa o SGBD indiretamente, a partir dasaplicaes que utiliza

    y No tem conhecimento algum sobre o banco dedados e as tecnologias envolvidas

    Usurio avanado

    y Tem algum conhecimento das tecnologiasenvolvidas em bancos de dados, sabendo construir

    consultas atravs de aplicaes visuais ou temconhecimento de SQLy Utiliza, alm das aplicaes usuais, front-ends

    para acessar diretamente o SGBD, ou ferramentaspara consultas, como geradores de relatrios

  • 8/7/2019 10. Banco de Dados

    20/37

    USURIOS

    Desenvolvedory Conhece a linguagem de acesso ao SGBD (SQL e seus

    dialetos, na maioria dos casos), e sabe como utiliz-ladentro das aplicaes em desenvolvimento

    y Conhece os mecanismos de acesso aos SGBDs emaplicaes, como APIs e drivers

    y Utiliza front-ends para testar e construir os bancos dedados, bem como testar as queries antes de colocar nosprogramas

  • 8/7/2019 10. Banco de Dados

    21/37

    USURIOS

    Administrador (DBA)y Conhece a linguagem de manipulao de bancos de

    dados, e seu uso a fundoy Conhece ferramentas para anlise de desempenho e

    performance de bancos de dados, e consultasy Utiliza front-ends e, eventualmente, interfaces console

    para acessar diretamente o banco de dadosy Sabe instalar, configurar e manter em funcionamento o

    SGBDy a principal fonte de consulta para fazer otimizao de

    operaes nos BDsy Responsvel pelos backups

  • 8/7/2019 10. Banco de Dados

    22/37

    ARQUITETURA DE SISTEMAS DE BD

    A arquitetura de Sistemas de Banco de Dados influenciada por aspectos de arquitetura decomputador como redes, paralelismo edistribuio

    Da, podem ser identificadas as seguintesarquiteturasy Sistemas Centralizadosy Sistemas Cliente-Servidory Sistemas Paralelosy Sistemas Distribudos

  • 8/7/2019 10. Banco de Dados

    23/37

    ARQUITETURA DE SISTEMAS DE BD

    Sistemas Centralizadosy Em geral, baseados em mainframesy O processamento e a interface com o usurio

    processada no sistema centralizado. A interface

    enviada para um terminal burro onde visualizadapelo usurioy O terminal no realiza nenhum processamento,

    apenas apresenta informaes ao usurio. como sefosse uma extenso do monitor de vdeo plugado emum computador central

    y O sistema gerenciador do banco de dados instaladono sistema central, onde tanto o processamento(back-end) como a interface (front-end) executadaneste computador

  • 8/7/2019 10. Banco de Dados

    24/37

    ARQUITETURA DE SISTEMAS DE BD

    Sistemas Cliente-Servidory Surgiu a partir do advento das redesy Neste caso existe um servidor responsvel pelo

    processamento das consultas e transaes (back-end)y Existe um computador cliente (front-end) responsvel

    por enviar as consultas e mostrar os resultadosobtidos do servidor

    y O computador cliente precisa ter instalado uma parte

    da tecnologia do SGBD responsvel por fazer acomunicao com o servidor

  • 8/7/2019 10. Banco de Dados

    25/37

    ARQUITETURA DE SISTEMAS DE BD

    Sistemas Paralelosy Permite que atividades do SBD sejam realizadas com mais

    rapidez, reduzindo o tempo de resposta das transaesy Vale destacar dois tipos:

    Paralelismo com alguns processadores (granularidade grossa) Paralelismo com vrias unidades de processamento(granularidade fina)

    y Computadores com alguns processadores Permitem que consultas que cheguem ao servidor sejam

    roteadas para cada unidade de processamento A consulta em si no dividida, ela realizada por um nico

    processador O que se consegue distribuir as consultas entre os diversos

    processadores Este o cenrio mais comum de ser encontrado

  • 8/7/2019 10. Banco de Dados

    26/37

    ARQUITETURA DE SISTEMAS DE BD

    Sistemas Paralelosy Computadores com vrias unidades de

    processamento Este um cenrio mais especfico Neste caso as consultas so divididas em pedaos de

    trabalho menores que so paralelizadas entre os diversosprocessadores

    empregado em banco de dados que precisam processargrandes volumes de dados (Terabytes)

  • 8/7/2019 10. Banco de Dados

    27/37

    ARQUITETURA DE SISTEMAS DE BD

    Sistemas Distribudosy Neste caso os dados so distribudos em diversos

    computadores, geralmente separadosgeograficamente

    y Por exemplo, imagine uma rede de lojas em que cadafilial e a matriz apresentem seus bancos de dadoscontendo informaes de catlogo de produtos evendas

  • 8/7/2019 10. Banco de Dados

    28/37

    MODELO DE DADOS

    Um modelo de dados uma coleo de mecanismos paradescrever dados, relaes de dados, semntica de dados erestries de consistncia

    Modelo Conceitual

    y Tipo de modelo onde os conceitos esto perto do modoque os usurios percebem os dados (entidades, atributos,relacionamentos) Modelos ER e UML

    Modelo Fsico

    y Tipo de modelo que descreve como os dados estoorganizados e guardados no computador Formato dos registros, ordem dos registros, caminhos para

    acesso aos dados

  • 8/7/2019 10. Banco de Dados

    29/37

    MODELO DE DADOS

    Em bancos de dados, alguns modelos empregadosso:y Modelo relacionaly Modelo de entidade e relacionamentoy Modelo de dados baseado em objetos

    Antigamente, estudavam-se tambmy Modelo de dados em redey Modelo de dados hierrquicosy Atualmente estes modelos no esto mais em uso

  • 8/7/2019 10. Banco de Dados

    30/37

    MODELO DE DADOS

    Modelo de Dado Relacionaly Utiliza tabelas para representar os dados e as

    relaes entre os dados

    Modelo de entidade e relacionamentoy Empregado para mapear elementos do mundo realem um nvel mais alto

    y Representa os objetos do mundo como entidades esuas relaes

    Modelo de dados baseado em objetosy Uma extenso do modelo de entidade e

    relacionamento que trata aspectos de Orientao aObjetos

  • 8/7/2019 10. Banco de Dados

    31/37

    MODELO CONCEITUAL

    pertence

  • 8/7/2019 10. Banco de Dados

    32/37

    MODELO FSICO

  • 8/7/2019 10. Banco de Dados

    33/37

    EVOLUO EM DIREO AO SGBD

    1950-1960

    Uso de fitas magnticas que foram desenvolvidas paraarmazenamento de dados. As tarefas deprocessamento de dados eram automatizadas com

    dados armazenados em fitas. O processamento consistia em ler dados de um ou

    mais fitas e escrev-los em uma nova fita. Os dadospodiam ser inseridos por decks de carto perfurado eenviados para sada em impressoras.

    As fitas ou decks de carto podiam ser lidas apenassequencialmente, e os tamanhos de dados erammuitos maiores do que a memria principal, logo osprogramas de processamento de dados eramobrigados a processar dados em uma ordem especfica,lendo e mesclando dados e decks de carto.

  • 8/7/2019 10. Banco de Dados

    34/37

    EVOLUO EM DIREO AO SGBD

    1960-1970

    Uso dos discos rgidos no final da dcada de 1960.Permitiam acesso direto aos dados, pondo fim anecessidade de acesso sequencial dos dados.

    Em 1970, surgiu o documento de Edgar Frank Codd(IBM) que definiu o modelo relacional e os mtodosprocedurais de consultar dados no modelo relacional,dando origem aos banco de dados relacionais.

    Inicialmente a IBM no quis investir no modelo de

    Codd, que se juntou a C J Date e fundou umaconsultoria que desenvolveu a idia. A simplicidade do modelo relacional e a possibilidade

    de ocultar completamente os detalhes deimplementao do programador eram tentadoras.

  • 8/7/2019 10. Banco de Dados

    35/37

  • 8/7/2019 10. Banco de Dados

    36/37

    EVOLUO EM DIREO AO SGBD

    1990- 2000

    A linguagem SQL tornou-se padro paraqualquer sistema de banco de dados.

    Muitos fornecedores de banco de dadosintroduziram suporte relacional de objetos a seusbanco de dados.

    Com crescimento da WEB os sistemas de bancode dados foram obrigados em aceitar altas taxasde processamento de transaes, se tornar cadavez mais confiveis e ter disponibilidade 24x7.

    2000 ...

    No perodo inicial vimos o surgimento da XML elinguagem de consulta associada.

  • 8/7/2019 10. Banco de Dados

    37/37

    EXEMPLOS

    Alguns exemplos:y Linha de software livre

    MySQL PostGree

    y Linha comercial Microsoft SQL Server Microsoft Access Oracle IBM DB2 SyBase