Banco de Dados I

Propaganda
Sistemas da Informação
Apresentação (mini-currículo)
• Formação Acadêmica
Banco de Dados I
–
–
–
–
Mestrando em Ciência da Computação (UFSC/ ) – Créditos Concluídos.
Bacharel em Ciência da Computação (UNISUL/00)
Especialista em Metodologia da Educação Superior (ESUCRI/05)
MBA em Gerenciamento de Banco de Dados (UNESC/05)
• Experiência Profissional
– Universidade do Sul de Santa Catarina - UNISUL
•
•
•
•
Edson Thizon
([email protected])
Programador: 4 anos
Analista de Sistemas: 7 anos
Professor de disciplinas de graduação à distância: 2 anos
Analista de Negócios (Financeiro): 4 anos
– Escola Superior de Criciúma – ESUCRI
2008
• Professor de disciplinas de graduação: 5 anos
Disciplina Banco de Dados
• Porque abordar a disciplina Banco de Dados
nos cursos da área de computação e
informática?
• Conteúdo X outras disciplinas
• 2 semestres (profundidade/prática)
Conceitos
• Dados
Fatos conhecidos que podem ser registrados e que
possuem significado implícito
• Banco de dados (BD)
Banco de Dados é um sistema computadorizado cuja a
• Necessidades da sociedade / empresas:
finalidade geral é armazenar informações e permitir que os
usuários busquem e atualizem essas informações quando as
• armazenar grandes quantidades de dados;
solicitar. [DATE, 2003]
• acessar as informações armazenadas de maneira eficiente;
Inglês: database
Cont...
• Sistema de banco de dados são projetados para gerir
Cont...
• A
importância
da
informação
na
maioria
das
grandes volumes de informações. O gerenciamento de
organizações tem determinado o desenvolvimento de
informações implica a definição das
um grande conjunto de conceitos e técnicas para a
estruturas de
armazenamento das informações e a definição de
administração eficaz desses dados.
mecanismos para a manipulação dessas informações.
Ainda, um sistema de banco de dados deve garantir a
segurança das informações armazenadas contra eventuais
problemas com o sistema, além de impedir tentativas de
acesso não autorizadas. [SILBERSCHATZ, 1999]
1
SGBD
• Um SGBD, Sistema Gerenciador de
Banco de Dados, é constituído por um
conjunto de programas que possibilita que
usuários criem e mantenham um banco
de dados.
Objetivo de um SGBD
Proporcionar
um
ambiente
tanto
conveniente quanto eficiente para a
recuperação e armazenamento das
informações do banco de dados.
Inglês: "database management system"
(DBMS)
Porque utilizar SGBD?
Problemas da falta de integração de dados
• Mesmo objeto da realidade é múltiplas vezes
representado na base de dados
Exemplo - dados de um produto em uma indústria
• Redundância não controlada de dados
– Não há gerência automática da redundância
Processamento de dados sem Banco de Dados
• Dados de diferentes aplicações não estão
integrados
• Dados estão projetados para atender uma
aplicação específica
Problemas da falta de integração de dados
• Redundância leva a:
– inconsistência dos dados
• Dados não representam corretamente a realidade
– redigitação de informações
• trabalho repetitivo que pode levar a erros
– dificuldade de extração de informações
• dados projetados para atender aplicações específicas
geram
• dificuldades para o cruzamento de informações
• Dados pouco confiáveis e de baixa
disponibilidade
2
Exemplo
1.
Considere um sistema de poupança bancária
Problemas utilizando sistema de
processamento de arquivos?
sem Banco de Dados...
2.
Informações sobre clientes e contas em
arquivos permanentes;
3.
Programas de aplicações para manipular os
arquivos:
debitar ou creditar numa conta;
adicionar uma nova conta;
fazer o balanço de uma conta e gerar extratos mensais.
4.
• Registros são armazenados em diversos
arquivos
• Diversos Programas de aplicação são escritos
para extrair e gravar dados
Atualizações no sistema implicam em novos
arquivos e novos programas.
Desvantagens do
Processamento de arquivos
• Inconsistência e redundância de dados
Processamento de dados com Banco de Dados
• Cada informação armazenada uma única vez
• eventual redundância controlada pelo sistema
em computador e invisível
• Dificuldade de acesso aos dados
• Isolamento de dados
• Problema de integridade
• Problema de atomicidade
• Anomalias no acesso concorrente
• Problemas de segurança
Problemas no desenvolvimento de
aplicações de Banco de Dados (1)
• Arquivos devem ser projetados para atender
diferentes necessidades
– Estruturas de dados complexas
• Banco de dados é acessado por múltiplos
programas
– Múltiplas equipes de desenvolvimento podem estar
envolvidas
– Definição da estrutura da base de dados
• deve ser mantida de forma centralizada
• deve estar disponível para múltiplos usuários
Problemas no desenvolvimento de
aplicações de Banco de Dados (2)
• Dados deve estar corretos
– Programas devem garantir a manutenção de restrições
de integridade
– Restrição de Integridade: regras que estabelece
quando uma base de dados está correta
• Exemplo: um aluno não pode possuir duas aprovações da
mesma disciplina em seu histórico 01/6
• Banco de dados é acessado
concorrentemente por múltiplos usuários
– Programas devem implementar controle de acesso
concorrente
(programação complexa e de difícil depuração)
3
Problemas no desenvolvimento de
aplicações de Banco de Dados (3)
Sistema Gerenciador de Banco de Dados
(SGBD)
• Nem todo usuário pode acessar qualquer
informação
– Programas devem implementar controle de acesso
• Dados são de importância vital e não podem
ser perdidos
– Mecanismos simples como cópias de “backup” não
são suficientes
• Após falha BD deve ser recuperado rapidamente
• Transações confirmadas ao usuário não podem ser
reprocessadas
– Programas devem implementar mecanismos de
tolerância a falhas
Dados e Modelo de Dados
• SGBD oferece um ambiente auto-contido
• Banco de dados = dados + descrição
dos dados
– Modelo de dados = descrição dos dados
– Esquema da base de dados = texto ou gráfico
que especifica o modelo de dados
– Dicionário de dados = conjunto de arquivos
que armazena o modelo de dados
SGBD – Independência de Dados
• Oferece abstração de dados
– Aplicações "vêem" dados de forma abstrata,
independente de detalhes físicos de
implementação (fatores de bloco, localização
no meio de armazenamento, existência de
índices e caminhos de acesso)
– Aumenta independência de dados
SGBD – Independência de Dados
• SGBD oferece isolamento das aplicações em
relação aos dados
– Independência de dados
– Independência de (aplicações em relação aos) dados
significa que uma alteração no modelo de dados afeta
“pouco” as aplicações
– Exemplo de sistema com pouca independência:
• Modificação no esquema exige recompilação de todos
programas
• As aplicações não contém descrições dos
dados. Com isso a base de dados pode ser
alterada sem que as aplicações sejam afetadas.
SGBD – aspectos operacionais
• Oferece controle de segurança
– Que usuário pode realizar que operação sobre que
dado
• Implementa tolerância a falhas
– Recuperação em caso de falhas transparente ao
usuários
• Oferece controle de acesso concorrente
– Múltiplos usuários podem acessar e atualizar o banco
de dados simultaneamente
4
Modelo de Dados
Níveis de Modelo de Dados (1)
• Modelo conceitual
Sob a estrutura do Banco de dados está o
modelo de dados: Um conjunto de ferramentas
conceituais usadas para descrição de dados,
relacionamentos entre dados, semântica de
dados e regras de consistência.
Níveis de Modelo de Dados (2)
• Modelo lógico
– Descrição da base de dados como vista pelos
usuários do SGBD
(programadores, usuários que tem acesso ao
BD diretamente).
– Dependente de SGBD.
– Não contém detalhes físicos de implementação
(índices, etc.): SGBD oferece abstração de
dados, independência de dados.
Níveis de independência de
dados
– Descrição mais abstrata da base de dados.
– Não contém detalhes de implementação.
– Independente de tipo de SGBD usado.
– Ponto de partida do projeto da base de dados.
Níveis de Modelo de Dados (3)
• Modelo físico (interno)
– Descrição da base de dados como
armazenada internamente (ajuste de
performance).
– Tendência em produtos modernos é cada vez
mais esconder o modelo físico.
Alguns Modelos de Banco
de Dados
• Independência a nível lógico
– Modelo lógico pode ser modificado sem que os
programas tenham que ser modificados (oferecida até
um certo ponto nos produtos no mercado).
– Em alguns casos recompilação é requerida.
• Independência a nível físico
– Parâmetros físicos podem ser alterados (p.ex.:
existência de índice) sem que as aplicações tenham
que ser modificadas.
– Oferecida pelos produtos modernos.
• Modelo Relacional
• Modelo de Rede
• Modelo Hierárquico
• Modelo Orientado a Objetos
5
Modelo Relacional
Modelo Rede
Modelo Hierárquico
Linguagens de BD
Um sistema de banco de dados
proporciona dois tipos de linguagens: Uma
específica para esquema e outra para
expressar consultas e atualizações.
1. DDL - “data definition language”
2. DML - “data manipulation language”
Linguagens de Definição de
Dados - DDL
• Definição de Dados e Armazenamento
O Resultado da compilação dos parâmetros
DDL’s é armazenado em um conjunto de tabelas
que constituem um arquivo especial, chamado
dicionário de dados. Um dicionário de dados é um
Metadado. Em um SGBD esse arquivo é
consultado antes que o dado real.
Linguagem de
Manipulação dos Dados - DML
• Recuperação das informações armazenadas no
B.D
• Inserção de novas informações no Banco de Dados
• A remoção de informações do B.D
• A modificação das informações do B. D
6
Funções envolvidas em SGBD (1)
Funções envolvidas em SGBD (2)
• DBA - “database administrator”
• Analista
– Responsável pelos modelos lógico e físico.
– Coordena acesso (senhas, etc.).
– Monitora performance e sintoniza base de dados
(modelo físico).
• Projetista de base de dados
– Constrói modelo conceitual de uma parte da base de
dados, com intervenção do usuário. Junto com o DBA
integra novas partes a base de dados global
– Define e projeta aplicações sobre a base de dados.
Usa modelo conceitual e lógico existentes, não define
dados da base de dados.
• Programador
– Constrói aplicações usando os modelos conceitual e
lógico existentes
• Usuários finais (“end-user”)
– Usuários que acessam a base de dados diretamente
através de linguagens especiais
Sistema de Banco de Dados
.
Usuários Programador
Programas aplicativos
Interface do
aplicativo
Usuários sofisticados
Programas
aplicativos
Consultas
Pré-compilador da
linguagem de
manipulação de dados
Código objeto
de programas
aplicativos
Processador de
consultas
Gerenciador de
banco de dados
Gerenciador de
Arquivos
Disco de armazenamento
Arquivo de
dados
Admnistrador de
banco de dados
Esquema de
banco de dados
Compilador de
DDL
Sistema
gerenciador de
banco de dados
Referências Bibliográficas
• KORTH, Henry F. & SILBERSCHATZ,
Abraham. Sistemas de Bancos de Dados,
São Paulo. Ed. Makron Books, 1999.
• HEUSER, Carlos Alberto. Projeto de
Banco de Dados. 4ª Edição. Ed. Sagra,
2001.
Dicionário de
Dados
7
Download