LÓGICA DE PROGRAMAÇÃO

Propaganda
Banco de Dados I
Objetivo:
Apresentar os principais conceitos do nível lógico de um sistema
gerenciador de banco de dados (SGBD) através da linguagem SQL e de
modelos relacionais para gerenciamento de dados.
Banco de Dados I
Conteúdo Programático
1. Introdução a banco de dados
2. Arquitetura de um SGBD
3. Modelo de redes, hierárquico e relacional
4. Modelo relacional
4.1 Algebra relacional
4.2 Cálculo relacional
4.3 Operações da algebra relacional
5. SQL
5.1 Linguagem de definição de dados (DDL)
5.2 Linguagem de manipulação de dados (DML)
5.3 Linguagem de controle de dados (DCL)
Banco de Dados I
Conteúdo Programático (Continuação)
6. Projeto de banco de dados
6.1 Modelo Conceitual
6.2 Modelo Lógico
6.3 Modelo Físico
7. Modelo Entidade-Relacionamento (MER)
8. Mapeamento MER para modelo relacional
9. Normalização
10. SQL Avançada
Banco de Dados I
BIBLIOGRAFIA BÁSICA:
1. DATE, C. J. Introdução a Sistemas de Banco de Dados. 8. ed.
Rio de Janeiro: Campus, 2004.
2. SILBERSCHATZ, A.; KORTH, H. F; SUDARSHAN, S. Sistema de
Banco de Dados. 5ª Edição. Rio de Janeiro: Editora Campus, 2006.
3. MACHADO, Felipe Nery Rodrigues. Banco de Dados: Projeto e
Implementação. São Paulo: Editora Érica, 2004.
Banco de Dados I
BIBLIOGRAFIA COMPLEMENTAR:
1. ELMASRI, Ramez; NAVATHE, Shamkant. Sistemas de banco de
Dados – Fundamentos e Aplicações. 4ª. Edição. Editora
Addison-Wesley, 2005.
2. PATRICK, John J. SQL fundamentos. São Paulo: Berkeley Brasil, 2002.
3. HEUSER, Carlos Alberto. Projeto de Banco de Dados – Série Livros
Didáticos UFRGS. Editora Sagra-Luzzato, 2001.
Banco de Dados I
Ferramentas Freeware Utilizadas:
Oracle 10g Express Edition
http://www.oracle.com/technology/products/database/xe/ind
ex.html
Freeware Edition of Toad for Oracle
http://www.toadsoft.com/lic_agree.html
Conceitos de Banco de Dados
“Um sistema de gerenciamento de banco de dados (DBMS) é
uma coleção de dados inter-relacionados e um conjunto de
programas para acessar esses dados.” (SILBERSCHATZ, 2006)
“Um sistema gerenciador de banco de dados (SGBD) é uma
coleção de programas que permite ao usuário criar e manter
um banco de dados.” (ELMASRI, 2005)
Desvantagens dos Sistemas
de Arquivos
Redundância e inconsistência dos dados
Dificuldade de acesso a dados
Isolamento de dados
Problemas de integridade
Problemas de atomicidade
Anomalias de acesso concorrente
Problemas de segurança
Histórico dos Bancos de Dados
Década de 50 e início da década de 1960
- As fitas magnéticas e os decks de cartão foram
desenvolvidos para armazenamento de dados.
Final da década de 1960 e década de 1970
- O uso dos discos rígidos foi difundido no final da década
de 60.
- Difusão dos banco de dados em rede e hieráquicos.
- Em 1970, Codd define o modelo realcional dando origem
aos bancos de dados relacionais.
Histórico dos Bancos de Dados
Década de 80
- Evolução dos bancos de dados relacionais.
- Pesquisas sobre banco de dados paralelos e distribuídos.
- Trabalhos iniciais sobre banco de dados orientado a
objetos.
Início da década de 1990
- Evolução da linguagem SQL para aplicações de suporte a
decisão.
- Fornecedores de banco de dados introduzem os conceitos
de banco de dados paralelos em seu produtos.
- Fornecedores de banco de dados também começaram a
acrescentar o suporte ao modelo objeto/relacional aos seus
banco de dados
Histórico dos Bancos de Dados
Final da década de 90
- Crescimento explosivo da world Wide Web.
- Investimento dos banco de dados em altas taxas de
processamento de transações e com níveis de
confiabilidade muito altas.
Início da década de 2000
- Surgimento dos bancos de dados XML e de suas linguagens de
consulta XML: XPath e XQuery.
- Crescimento das técnicas de computação auntonômica/ autoadministração para reduzir os esforços de administração dos
sistemas de banco de dados.
Níveis de Abstração Utilizados
pelos Banco de Dados
Nível Físico - É o nível de abstração mais baixo e que
descreve como os dados são realmente armazenados.
Nível Lógico - É o nível de abstração intermediário e que
descreve que dados estão armazenados no banco de dados e
que relações existem entre eles.
Nível de View - É o nível de abstração mais alto e que
permite a visualização de todas ou apenas algumas partes do
banco de dados.
Níveis de Abstração Utilizados
pelos Banco de Dados
NÍVEL DE VIEW
VIEW 1
VIEW 2
NÍVEL LÓGICO
NÍVEL FÍSICO
VIEW N
Engenharia de Software, Modelo
de Dados e Banco de Dados
Engenharia de Software
Modelo de Dados
Notações/Tecnologias
Modelo Conceitual
DER
Fase de Projeto
Modelo Lógico
Modelo
Relacional,
Modelo Orientado
a Objetos, etc.
Fase de
Implementação
Modelo Físico
Tabelas no Oracle
, Classes em
Java, etc.
Fase de Análise
Classificação da Linguagem de
Banco de Dados
Linguagem de Manipulação de Dados (DML) - Linguagem
utilizada para leitura e armazenamento de dados.
Linguagem de Definição de Dados (DDL) - Linguagem
utilizada para definir a estrutura de armazenamento dos dados,
também chamada de dicionário de dados ou metadados.
Linguagem de Controle de Dados (DCL) - Linguagem
utilizada para controle de sessão, transação, além do controle do
próprio sistema de banco de dados.
Linguagem de Manipulação de
Dados (DML)
Existem basicamente 2 tipos de DML:
1. DMLs procedurais - Requerem que um usuário especifique que
dados são necessários e como obtê-los.
2. DMLs declarativas - Requerem que um usuário especifique
que dados são são necessários sem especificar como obtê-los.
Linguagem de Definição de Dados
(DDL)
A DDL também define propriedades adicionais ao dados,
como:
1. Restrições de Domínio - São as restrições relativas aos tipos do
dados.
2. Integridade Referencial - São as retrições relativas às
associações entre duas ou mais entidades.
3. Assertivas - São as restrições relativas às condições impostas
para uma atribuição de valor sobre um determinado atributo.
4. Autorização - São as retrições de acesso para leitura, escrita e
exclusão sobre determinados dados.
Arquitetura Simplificada de um
Sistema de Banco de Dados
Programas de
Aplicações/
Consultas (Queries)
Usuários/Programadores
SOFTWARE SGBD
Processamento de
Consultas
Gerenciador de
Acesso aos Dados
Armazenados
Definição de Dados
Armazenados
(Metadados)
Banco de Dados
Armazenados
Arquitetura Geral de um Sistema
de Banco de Dados
Usuários leigos
(caixas, agentes,
usuários da Web)
Programadores de
Aplicação
Usuários
Avançados
(Analistas)
escreve
usa
usa
Interfaces de
Aplicação
Administrador de
Banco de Dados
usa
Programas de
Aplicação
Ferramentas de
Consulta
Ferramentas de
Administração
Compilador e
linkeditor
Consultas de
DML
Interpretador
de DDL
Código de objeto
do programa de
aplicação
Compilador e
organizador de DML
Mecanismo de
avaliação de consulta
Gerenciador de
Buffer
Gerenciador de
Arquivos
Processador de Consulta
Gerenciador de
Autorização e Integridade
Gerenciador de
Transação
Gerenciador de Armazenamento
Índices
Dados
Dicionário
de Dados
Dados
Estatísticos
Disco de Armazenamento
Estruturas de Armazenamento de
um Sistema de Banco de Dados
Rede
Hieráquico
Relacional
Objeto
Class
Class
Attribute
Attribute
Service
Service
Class
Attribute
Service
Estruturas de Armazenamento de
um Sistema de Banco de Dados
XML
Objeto/Relacional
Class
Attribute
Service
Class
Attribute
<?xml version="1.0" encoding="ISO-8859-1"?>
<Cliente>
<Registro>
<Nome/>
<Cidade/>
<Estado/>
</Registro>
</Cliente>
Service
Relacional/XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<Cliente>
<Registro>
<Nome/>
<Cidade/>
<Estado/>
</Registro>
</Cliente>
<?xml version="1.0" encoding="ISO-8859-1"?>
<Cliente>
<Registro>
<Nome/>
<Cidade/>
<Estado/>
</Registro>
</Cliente>
Principais Tipos de Arquitetura
de um SGBD
Arquitetura SGBD Centralizada
Arquitetura Cliente/Servidor de 2 Camadas
Arquitetura Cliente/Servidor de 3 Camadas
Arquitetura SGBD Centralizada
Arquitetura Cliente/Servidor de 2
Camadas
Arquitetura Cliente/Servidor de 3
Camadas
Exemplos de Tecnologias em
Banco de Dados
Banco
Banco
Banco
Banco
Banco
Banco
Banco
de
de
de
de
de
de
de
Dados Paralelos
de Dados Distribuídos
Dados Multimídia
Dados Textuais
Dados Temporais
Dados Dedutivos
Dados Móveis
Principais Usuários de um
Banco de Dados
Administradores de banco de dados (DBA)
Projetistas de banco de dados
Analistas de sistemas e programadores de aplicações
Usuário final
Características dos usuários de um
Sistema de Banco de Dados
Usuários Leigos - São usuários não avançados que
interagem com o sistema chamando um dos programas de
aplicação previamente escritos.
Programadores de Aplicação - São profissionais de
computação que escrevem programas de aplicação.
Usuários Avançados - Interagem com o sistema de banco
de dados sem escrever programas.
Usuários Especializados - São usuários avançados que
escrevem aplicações de banco de dados que não se encaixam
na estrutura de processamento de dados tradicional.
Administrador de Banco de Dados (DBA) - É o
profissional responsável pelo controle central dos dados e
pelos programas que acessam os próprios dados.
Funções de um Administrador de
Banco de Dados
Estrutura de armazenamento e definição de método de
acesso.
Modificação de esquema e de organização física.
Concessão de autorização para acesso a dados.
Manutenção de rotinas como backups, gerenciamento de
espaço em disco e monitoração de tarefas executadas no
próprio banco de dados.
Definição de Esquema.
Alguns Utilitários para Sistema
de Banco de Dados
Carregamento (Loading)
Backup
Reorganização de Arquivos
Monitoramento de Desempenho
Download