30
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 Objetivo: Apresentar os principais conceitos do nível lógico de um sistema gerenciador de banco de dados (SGBD) através da linguagem SQL

Embed Size (px)

Citation preview

Page 1: 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

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.

Page 2: 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

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)

Page 3: 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

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

Page 4: 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

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.

Page 5: 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

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.

Page 6: 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

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

Page 7: 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

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)

Page 8: 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

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

Page 9: 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

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.

Page 10: 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

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

Page 11: 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

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.

Page 12: 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

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.

Page 13: 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

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

Page 14: 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

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.

Page 15: 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

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.

Page 16: 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

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.

Page 17: 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

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.

Page 18: 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

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

Page 19: 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

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

Page 20: 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

Estruturas de Armazenamento de um Sistema de Banco de

DadosRede Hieráquico

Relacional Objeto

Service

Attribute

Class

Service

Attribute

Class

Service

Attribute

Class

Page 21: 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

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>

Page 22: 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

Principais Tipos de Arquitetura de um SGBD

Arquitetura SGBD CentralizadaArquitetura Cliente/Servidor de 2 CamadasArquitetura Cliente/Servidor de 3 Camadas

Page 23: 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

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

Page 24: 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

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

Page 25: 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

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

Page 26: 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

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

Page 27: 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

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

Page 28: 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

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.

Page 29: 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

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.

Page 30: 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

Alguns Utilitários para Sistema de Banco de

Dados

Carregamento (Loading)BackupReorganização de ArquivosMonitoramento de Desempenho