banco de dados i objetivo: apresentar os principais conceitos do nível lógico de um sistema...
TRANSCRIPT
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/index.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 dadosDificuldade de acesso a dadosIsolamento de dadosProblemas de integridadeProblemas de atomicidadeAnomalias de acesso concorrenteProblemas 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/
auto- administraçã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 LÓGICO
NÍVEL FÍSICO
VIEW 1 VIEW 2 VIEW N
NÍVEL DE VIEW
Engenharia de Software, Modelo de Dados e Banco de
Dados
Fase de Análise
Fase de Projeto
Fase deImplementação
Engenharia de Software Modelo de Dados Notações/Tecnologias
Modelo Conceitual
Modelo Lógico
Modelo Físico
DER
ModeloRelacional,
Modelo Orientadoa Objetos, etc.
Tabelas no Oracle, Classes em
Java, etc.
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
Usuários/Programadores
Programas deAplicações/
Consultas (Queries)
SOFTWARE SGBD
Processamento deConsultas
Gerenciador deAcesso aos Dados
Armazenados
Definição de DadosArmazenados(Metadados)
Banco de DadosArmazenados
Arquitetura Geral de um Sistema de Banco de Dados
Usuários leigos(caixas, agentes,usuários da Web)
Programadores deAplicação
UsuáriosAvançados(Analistas)
Administrador deBanco de Dados
Interfaces deAplicação
Programas deAplicação
Ferramentas deConsulta
Ferramentas deAdministração
Código de objetodo programa de
aplicação
Compilador elinkeditor
Consultas deDML
Interpretadorde DDL
Compilador eorganizador de DML
Mecanismo deavaliação de consulta
Processador de Consulta
Gerenciador de Armazenamento
Gerenciador deBuffer
Gerenciador deArquivos
Gerenciador deAutorização e Integridade
Gerenciador deTransação
Dados
ÍndicesDicionáriode Dados
DadosEstatísticos
Disco de Armazenamento
usa escreve usa usa
Estruturas de Armazenamento de um Sistema de Banco de
DadosRede Hieráquico
Relacional Objeto
Service
Attribute
Class
Service
Attribute
Class
Service
Attribute
Class
Estruturas de Armazenamento de um Sistema de Banco de
DadosObjeto/Relacional XML
Service
Attribute
Class
Service
Attribute
Class
<?xml version="1.0" encoding="ISO-8859-1"?><Cliente> <Registro> <Nome/> <Cidade/> <Estado/> </Registro></Cliente>
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 CentralizadaArquitetura Cliente/Servidor de 2 CamadasArquitetura Cliente/Servidor de 3 Camadas
Arquitetura SGBD Centralizada
Mainframe
Banco de Dados Editores de Texto
Cliente
Permissão
Programas de AplicaçãoRede
Monitor de Vídeo
Monitor de Vídeo
Arquitetura Cliente/Servidor de 2 Camadas
Cliente
Permissão
Programas de AplicaçãoEditores de Texto
Computador Pessoal (PC)
Banco de Dados
Servidor de Banco de Dados
Rede
Arquitetura Cliente/Servidor de 3 Camadas
Browser
ComputadorPessoal (PC)
Banco de Dados
Servidor de Bancode Dados
Rede
Servidor de Aplicação
Service
Class
Service
Class
Service
Class
Rede
Exemplos de Tecnologias em Banco de Dados
Banco de Dados ParalelosBanco de de Dados DistribuídosBanco de Dados MultimídiaBanco de Dados TextuaisBanco de Dados TemporaisBanco de Dados DedutivosBanco de Dados Móveis
Principais Usuários de um Banco de Dados
Administradores de banco de dados (DBA)Projetistas de banco de dadosAnalistas de sistemas e programadores de aplicaçõesUsuário final
Características dos usuários de um Sistema de Banco de
DadosUsuá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)BackupReorganização de ArquivosMonitoramento de Desempenho