Title: Prof. Jose Fernando Rodrigues Junior
1SCC0141 - Bancos de Dados e Suas Aplicações
- Prof. Jose Fernando Rodrigues Junior
- Material original Elaine Parros Machado de Sousa
- Introdução
2Tópicos da aula
- Evolução dos Sistemas de Informação
- Conceitos Básicos
- SGBDs
- Histórico
3Evolução dos Sistemas de Informação
- Sistemas de Informação baseados em gerenciamento
de arquivos - programas e arquivos orientados a cada unidade
organizacional - rotinas específicas para tarefas específicas
- dados armazenados em disco, usando uma
determinada estrutura de dados
4(No Transcript)
5PROBLEMA?????
6REDUNDÂNCIA
7REDUNDÂNCIA INCONSISTÊNCIA
Aplicação de Produção
Aplicação de Vendas
Arquivos de Dados de Produção
Arquivos de Dados de Vendas
8Consistência de Dados
- Dados em estado inconsistente
-
- informações incorretas ou contraditórias são
fornecidas aos usuários
9Consistência de Dados
- Consistência é estado ou caráter do que é
coerente, do que tem solidez, veracidade,
credibilidade, estabilidade, realidade. - Consistência se determinada informação é
replicada (redundância), seu valor é sempre o
mesmo
10SIs baseados em arquivos
- Problemas?
- Redundância e inconsistência de dados
- Dificuldade de acesso aos dados
- Isolamento de dados
- Anomalias no acesso concorrente
- Segurança
11Além disso...
- SIs baseados em arquivos ? dados gravados em
disco usando ESTRUTURAS DE DADOS - Acesso requer conhecimento destas estruturas ?
DEPENDÊNCIA DE DADOS.
12Dependência dos Dados
- Vários programas compartilhando os mesmos dados ?
todos devem conhecer e manipular as mesmas
estruturas - E se houver uma alteração na estrutura de dados?
TODOS OS PROGRAMAS TERÃO QUE SER ALTERADOS
13Independência dos Dados
- Como tornar os programas INDEPENDENTES da
estrutura de dados?
14Independência dos Dados
Sistema de Gerenciamento de Bases (ou Banco) de
Dados SGBD
15Independência dos Dados
Conceitos de abstração e interface
Sistema de Gerenciamento de Bases (ou Banco) de
Dados SGBD
16SGBD
- Sistema de Gerenciamento de Bases de Dados
- conjunto de dados
- base (banco) de dados
- conjunto de programas para acesso e manipulação
dos dados
17SGBD
- Sistema de propósito geral
- armazenar grandes volumes de dados
- permitir busca e atualização dos dados
- eficiência
- Manutenção de um conjunto lógico e organizado de
dados - completamente autônomo em relação às aplicações
18Aplicação
Aplicação
Aplicação
SGBD
Esquema - Definição da base de dados
Instância Base de dados
19SGBDs
- Requisitos Fundamentais
- Segurança
- Física (mais comum no passado)
- Lógica
- Usernames e passwords
- Perfis de usuário
20SGBDs
- Requisitos Fundamentais (cont)
- Integridade
- consistência
- validade
Restrições de Integridade!!!
21SGBDs
- Requisitos Fundamentais (cont)
- Integridade - se contem apenas dados válidos, que
não contradizem a realidade que estão a
representar. - Restrições de integridade, que definem o que é
válido e o que não é válido. Exemplos - um funcionário não pode pertencer a mais do que
um departamento - o preço de venda de um produto deverá ser
superior ao seu custo. - a referência de cada produto deve ser única
22SGBDs
- Requisitos Fundamentais (cont)
- Recuperação / Tolerância a falhas
- Transações atômicas
- unidades lógicas de trabalho, em geral envolvendo
várias operações - Registros de Log
- Backup
- Controle da concorrência
- gerenciamento de transações concorrentes
23Por que usar SGBDs?
- Vantagens
- armazenamento persistente de dados e estruturas
de dados - INDEPENDÊNCIA DE DADOS
- CONSISTÊNCIA DE DADOS
- ABSTRAÇÃO E INTERFACE
- acesso compartilhado (multiusuário e concorrente)
à informação - distribuição de informações
24Por que usar SGBDs?
- Vantagens
- reduz complexidade das aplicações
- segurança
- controle de acesso aos dados
- backup
- utilização de padrões
25Por que usar SGBDs?
- Desvantagens
- Custo financeiro
- Um sistema a mais a ser aprendido e gerenciado
26Componentes de um SGBD
Banco de Dados
SGBD
Processador de Consultas
Gerenciador de Armazenamento
Dados e Metadados
- Os componentes funcionais do SGBD
- componentes de processamento de consultas
- componentes de gerenciamento de armazenamento
27Componentes de um SGBD
- Conceitos importantes
- Pragmatismo primeiro modelagem (documentada),
seguida de definição e instanciação, e só depois
o uso - Modelagem modelo entidade/relacionamento
- Definição SQL, subconjunto DDL
- Instanciação SQL, subconjuntos DDL/DML
- Uso SQL, subconjunto DML
28Componentes de um SGBD
- Conceitos importantes
- SQL - Data Definition Language (DDL)
- conjunto de comandos para definição do esquema da
base de dados - Exemplos em linguagem SQL
- create table
- alter table
- drop table
- Compilador/Interpretador DDL
29Componentes de um SGBD
- Conceitos importantes (cont.)
- Metadados
- Dicionário de Dados
- banco de dados do sistema
- armazena descrição do esquema
- armazena metadados
- armazena restrições de segurança e integridade
- outras denominações catálogo de dados, diretório
de dados
30Componentes de um SGBD
- Conceitos importantes (cont.)
- SQL - Data Manipulation Language (DML)
- recuperação (consulta)
- inserção
- remoção
- modificação
- DML viabiliza manipulação dos dados de maneira
compatível com o modelo de dados
31Componentes de um SGBD
- Conceitos importantes (cont.)
- Data Manipulation Language (DML)
- Exemplos em linguagem SQL
- insert
- select
- delete
- update
- ...
32Componentes de um SGBD
- Conceitos importantes (cont.)
- Procedural vs Declarativo
- Procedural exige especificação de quais dados
são necessários, e como obtê-los - requer uma sequência específica de operações a
serem executadas - ex. linguagens de programação como C e Pascal, e
a linguagem de projeto de bancos de dados álgebra
relacional - Não-Procedural (Declarativo) exige apenas
especificação de quais dados são necessários, e
não de como obtê-los - ex SQL
- A interface dos bancos de dados é definida pela
linguagem declarativa SQL (DDL DML)
33Programadores de aplicações
Usuários Sofisticados
DBAs
Usuários Finais
Interfaces de aplicação
Aplicações
Consulta (Query)
Esquema de BD
SGBD
Pré-compilador de Comandos DML ? DML embutido no
.exe
Programas de Aplicações em Código Objeto
Compilador DML
Interpretador DDL
Componente de avaliação e execução de consultas
Processador de Consultas
Gerenciador de Buffer
Gerenciador de Transações
Gerenciador de Arquivos
Gerenciador de Armazenamento
34SGBD
Pré-compilador de Comandos DML
Programas de Aplicações em Código Objeto
Compilador DML
Interpretador DDL
Componente de execução de consultas
Processador de Consultas
Gerenciador de Buffer
Gerenciador de Transações
Gerenciador de Arquivos
Gerenciador de Armazenamento
Índices
Dados Estatísticos
Dicionário de Dados
Silbesrchats
Arquivos de Dados
35Cronologia
- Década de 1950
- Primeiros computadores.
- Programação em linguagem de máquina
- Surgimento de Sistemas Operacionais e Linguagens
de Programação - Sistemas de arquivos com acesso aleatório (não
seqüencial) - 1959 Sistema RAMAC (IBM)
36Cronologia
- Década de 1960
- CODASYL consórcio da indústria ? COBOL
- Conceituação de SGBD e modelos de dados
- Primeiro SGBD comercialmente disponível - Modelo
Hierárquico - IMS IBM
- Integração com a linguagem COBOL
- Ainda em uso corrente
37Cronologia
- Década de 1970
- Proposta do Modelo Relacional
- Surgimento de protótipos de SGBDR
- INGRES (UC Berkeley)
- Sistema R (IBM)
- Proposta do Modelo Entidade-Relacionamento (MER)
38Cronologia
- Década de 1980
- Primeiro SGBDR de grande porte disponível
- DB2 IBM
- Surge SQL vinculada ao Sistema R
- SQL torna-se padrão
- Modelos Orientados a Objetos
39Cronologia
- Década de 1990 em diante
- SGBDs orientados a objetos
- O2
- ObjectStore
- Objectivity/DB
- Jasmine
-
- SGBDs objeto-relacionais
- Oracle8, Oracle9, Oracle10g, Oracle 11g
- PostGreSQL
- Informix
40Sugestão de leitura
- Capítulos introdutórios dos livros citados na
bibliografia básica da disciplina