BachareladoemSistemas de Informação
Banco de Dados I
Ivone PenqueMatsunoYugoshi [email protected]
Conceitos Básicos
2
Motivação
•Necessidadede:
•armazenargrandes quantidadesde dados
•acessarinformaçõesde maneiraeficiente e segura
•O que é umBanco de Dados (BD)?
•Dados sãofatos que podemser gravados e que possuemumsignificado implícito.
Por exemplo:
•Nomes, telefonese endereçosde pessoasconhecidas
•UmBD é umacoleçãode dados relacionados
•Uso do termo banco de dados é emgeralmaisrestrito, conforme será visto neste
curso
3
Motivação
•Operaçõesbancárias
•Compras por intermédioda Web
•Dados sobre produtos/compras emsupermercados
•Dados multimídia
•Informaçõesgeográficas
•Recuperaçãode informaçõesnawww
•Mineraçãode dados
•Etc
4
Histórico e Evolução dos BD
•No início da computação, programas tinham o único objetivo de
armazenar e manipular dados.
•Esses programas gravavam seus dados em disco, segundo estruturas
próprias.
•Programas que não conhecessem a estrutura dos dados não podiam
utilizar os dados.
Estrutura dos dados
Arquivo
5
Histórico e Evolução dos BD
•Se vários programas precisassem compartilhar os dados de um mesmo
arquivo, todos os programas teriam que conhecer e manipular as
mesmas estruturas.
Estrutura dos dados
Arquivo
Estrutura dos dados
6
Histórico e Evolução dos BD
•Se algum programa precisasse realizar alguma mudança na estrutura de
dados,
•Todos os programas que acessam esse mesmo arquivo tinham que ser
alterados, mesmo que a alteração ocorresse em dados não
manipulados pelos programas.
•Isso gerava um grande problema:
•Garantir a unicidade das estruturas de dados entre os diversos
programas devido à existência de redundâncias.
7
Histórico e Evolução dos BD
•Para evitar esse problema, colocou-se um sistema intermediário:
•Que conhece a estrutura de dados do arquivo.
•Fornece apenas dados que cada programa precisa.
•Armazena adequadamente os dados de cada programa.
Arquivo
8
Histórico e Evolução dos BD
•Agora, com esse sistema intermediário:
•Os programas "verão" apenas os dados que lhes interessam.
•Os programas não precisam conhecer os detalhes de como seus dados
estão gravados fisicamente.
•Os programas não precisarão ser modificados se a estrutura de dados
que utilizam não for modificada.
•As alterações ficam concentradas nesse sistema intermediário.
9
Histórico e Evolução dos BD
•Com o tempo, esse sistema intermediário passou a gerenciar vários
arquivos.
•A essa coleção de arquivos foi dado o nome de Banco de Dados e o
sistema intermediário recebeu o nome de Sistema Gerenciador de Banco
de Dados (SGBD).
Arquivo
Arquivo
Arquivo
S
G
B
D
10
Histórico e Evolução dos BD
•Com o tempo, surgiram padrões para descrever as estruturas de dados:
os modelos de dados.
•A descrição do banco de dados, segundo um modelo de dados é
chamada de meta dados.
BD
Meta
Dados
SGBDDados
11
Banco de Dados -Definição
É uma coleção de dados coerente e logicamente relacionados com
algum significado associado.
É projetado, construído e populado com dados que atendem a um
propósito e audiência específicos.
Representa algum aspecto do mundo real, chamado de minimundo.
12
SGBD
•Sistemas Gerenciadores de Banco de Dados são FERRAMENTAS para
proporcionar um ambiente integradoque possibilita o
ARMAZENAMENTO e RECUPERAÇÃO das informações de forma
eficiente e segura
•O SGBD é responsável em fazer o tratamento
13
ACID
•Um SGBD deve garantir a integridade das transações em um banco de
dados mantendo as seguintes propriedades (ACID):
•Atomicidade: Essa propriedade garante que todas as transações sejam
atômicas (indivisíveis), ou seja, que as transações sejam executadas em
sua totalidade. Se ocorrer algum erro, todas as operações que compõem
a transação serão descartadas.
•Consistência: A execução de uma transação deve levar o banco de dados
de um estado consistente para outro estado de consistência, ou seja,
toda transação deve respeitar as regras de integridade dos dados (tipo de
dado, chave primária etc).
14
ACID
•Isolamento: éum recurso do banco que tem como objetivo evitar que,
em um sistema multiusuário, transações em paralelo interfiram umas nas
outras.
•Durabilidade: significa que os efeitos de uma transação são permanentes,
podendo ser desfeitos somente como resultado de uma transação
posterior e bem-sucedida.
15
Por que utilizar um SGBD
Quando usar SGBD Quando não Usar SGBD
Controle redundância
Controle consistência e
integridade
Acesso multiusuário
Compartilhamento de dados
Controle acesso e segurança
Controle de recuperação e
restauração
Consultas eficientes
Dados e aplicações simples e
estáveis
Requisitos de tempo-real não
puderem ser atendidos
16
Vantagens de utilizar o SGBD
•Potencial para obrigar a Padronização
•Flexibilidade
•Redução do Tempo de Desenvolvimento de Aplicações
•Disponibilidade de Informações Atualizadas
•Economia de Escala
17
Componentes do SGBD
•Interface
•Processamento
•Armazenamento Físico
18
Arquivos Dicionário de Dados
Índices Estatísticas
Gerenciador de Memória
Processador de Consultas
Aplicação
Consulta
em SQL
Consulta
em SQL. . .
Armazenamento
Físico
Processamento
Interface
19
Arquitetura
O objetivo da arquitetura de um SGBD, também chamada de arquitetura de
esquemas, é separar as aplicações do usuário do BD físico. É dividida em três níveis:
Nível Interno.
Nível Externo.
Nível Conceitual.
A arquitetura de três esquemas estrutura a construção de bancos de dados de forma a
garantir:
Separação dos programas e dados
Suporte a múltiplas visões
Uso do catálogo para armazenar a estrutura do banco
A ideia é construir modelos em diferentes níveis de abstração, partindo da visão do
usuário e chegando à visão da máquina
20
Arquitetura
•Nível externo
•Descreve a parte do banco de dados em que cada usuário tem interesse
•Logo, há várias visões externas possíveis
•Nível conceitual
•Possui um esquema conceitual, que descreve a estrutura de todo o banco de
dados em alto nível para a comunidade de usuários
•Nível interno
•Possui um esquema interno, que descreve a estrutura de armazenamento físico
dos dados
21
Visão 1 Visão 2 Visão N
...
Esquema conceitual
NÍVEL EXTERNO
NÍVEL CONCEITUAL
Esquema interno
NÍVEL INTERNO
Mapeamento
externo/conceitual
Mapeamento
conceitual / interno
22
Modelo Conceitual
•É uma representação com alto nível de abstração
•Modela de forma mais natural os fatos do mundo real, suas
propriedades e seus relacionamentos
•Independente do BD utilizado
•Preocupação com a semântica(significado) da aplicação
•No curso, veremos o modelo entidade-relacionamento
23
Modelo lógico
•Representa os dados em alguma estrutura (lógica) de armazenamento de
dados
•Também chamados de modelos de banco de dados
•Dependente do banco de dados
•No curso, veremos o modelo relacional, utilizado na grande maioria
dos SGBD’smodernos
•Apóiam:
•na especificação dos dados do modelo (DDL)
•dados, seus domínios e restrições
•na especificação de como manipular os dados (DML)
24
Modelo Físico
•Possuem foco na:
•Indexação e estrutura de arquivos
•Transações e controle de concorrência
•Otimização
•Recuperação em casos de falhas
•Mecanismos de proteção (segurança)
•Partição e agrupamento de dados
25
Independência dos dados
•É a habilidade de modificar a definição de um esquema em um nível sem
afetar a definição de esquema num nível mais alto, mudando apenas o
mapeamento entre os dois níveis.
•Existem dois níveis de independência de dados:
•Independência física
•Independência lógica.
26
Independência Lógica
•Consiste na capacidade de alterar o esquema conceitual sem ter que
alterar os esquemas externos e programas de aplicação.
•Exemplo: podemos alterar o esquema conceitual do BD adicionando um
campo em determinada tabela, assim as visões que não se referem a
esta tabela não serão afetadas.
•A independência lógica de dados é mais difícil de ser alcançada do que
a independência física, pois os programas são bastante dependentes da
estrutura lógica dos dados que eles acessam.
27
Atividades envolvidas na criação de um banco de dados
•O banco de dados não existe isoladamente (e nem é construído dessa
forma)
•Seu projeto e implementação normalmente fazem parte de um processo
mais amplo, que envolve a construção do software que será a interface
final dos usuários com o banco de dados
•Esse processo é denominado ciclo de vida de software, ou modelo de
processo de software
28
Atividades envolvidas na criação de um banco de dados
•O início do processo de desenvolvimento se dá com o levantamento e
compreensão das necessidades do usuário, de forma a traduzi-las em um
conjunto de requisitos de software
•Parte desses requisitos definem que dados devem ser armazenados e
quais os relacionamentos entre eles ➔requisitos de dados
•Outra parte desses requisitos definem como esses dados serão
processados ou, em outras palavras, o que o software deverá fazer ➔
requisitos funcionais
29
Levantamento e
análise de requisitos
Projeto conceitualAnálise funcional
Projeto lógico
Projeto das funcionalidades
Projeto físico
MINIMUNDO
(domínio da
aplicação)
Requisitos funcionais Requisitos de dados
Esquema conceitual
Esquema lógico
Especificação das transações (alto nível)
BD
Implementação
Independen te do SGBD
Dependente
do SGBD
30
Projeto de um Banco de Dados
análise de
requisitos
projeto
conceitual
mapeamento
para modelo
projetofísico
conjunto de
necessidades
esquema
conceitual
esquema em
linguagemde
implementação
Modelo Entidade
Relacionamento
(MER)
Mapeamento
MER para o
Modelo
Relacional
Modelo Relacional
dependentedo SGBDindependentedo SGBD
31
Usuáriosdo BD
•Administrador do BD (DatabaseAdministrator–DBA)
•coordenae monitora o uso do BD (segurança, tempo de respostaruim, etc)
•autoriza o acessoaoBD
•ajusta projetofísico quandonecessário
•adquiresoftware e hardware necessários
•Projetistado BD
•identificar os dados a seremarmazenadosno BD
escolheras estruturasapropriadaspara representar e armazenaressesdados
•levantar necessidadesdos usuários(requisitos)
32
Usuáriosdo BD
•Programador de aplicações
•escreveos programas aplicativos
•realiza requisiçõesaoSGBD
•UsuárioFinal
•manipula o BD atravésde
•linguagensde consulta
•programas previamente desenvolvidos
•tipos de usuários
•Leigos(operador de terminal) X sofisticados (estatísticose engenheiros)
•Casuais(gerentes) X frequentes(caixasde bancos)
33
Formas de interaçãodo Profissionalcomo SGBD
•Desenvolvedores/Programadores–usamasestruturaseosdados
armazenadosparacodificarosaplicativosdeumaorganização
•Projetistas–realizamamodelagemdedadosdosaplicativosemantémo
modelodedadosdaorganizaçãoatualizado
•AdministradoresdeDados–ControlamoSGBDdeumaorganização
•FabricantedeSGBD–codificamo“coreenginedoSGBD”eosutilitários
associados
34
Formas de interaçãodo Profissionalcomo SGBD
•Desenvolvedores/Programadores–usamasestruturaseosdados
armazenadosparacodificarosaplicativosdeumaorganização
•Projetistas–realizamamodelagemdedadosdosaplicativosemantém
omodelodedadosdaorganizaçãoatualizado
•AdministradoresdeDados–ControlamoSGBDdeumaorganização
•FabricantedeSGBD–codificamo“coreenginedoSGBD”eosutilitários
associados