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
Top Related