Buscar

BANCO_DE_DADOS_ALEXANDRE_WAGNER_INTRODUCAO_OFICIAL

Prévia do material em texto

Estrutura de Dados e Sistemas Estrutura de Dados e Sistemas 
de Integraçãode Integração
IntroduçãoIntrodução
Prof. Alexandre Wagner C. FariaProf. Alexandre Wagner C. Faria
Material adaptado do Livro: Sistema de Banco de Dados (Silberschatz, Korth, Sudarshan), Prof. Ronaldo C.M. Correia, Vania Bogorny
Conteúdo Programático
Introdução
� 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.acessar esses dados.
� A coleção de dados, normalmente chamada de
banco de dados, contém informações relevantes a
uma empresa, uma faculdade, um centro de
pesquisa, entes do governo, etc...
Introdução
� O principal objetivo de um DBMS é fornecer uma maneira
de recuperar informações de banco de dados que seja tanto
conveniente quanto eficiente.
� Como as informações são muito importantes na maioria� Como as informações são muito importantes na maioria
das organizações, os científicas da computação e
desenvolvedores de banco de dados desenvolveram um
grande grupo de conceitos e técnicas para gerenciar dados.
� Estes conceitos e técnicas que formam o foco deste curso
Aplicações do sistema de banco de 
dados
� Banco: Para informações de clientes, contas,
empréstimos e transações bancarias;
� Linhas aéreas: para reservas e informações de� Linhas aéreas: para reservas e informações de
horários. As linhas aéreas foram as primeiras a
usar bancos de dados de maneira geograficamente
distribuídas;
� Universidades: Para informações de alunos,
registros de cursos, notas, etc...
Aplicações do sistema de banco de 
dados
� Transações de cartão de crédito: para compras com
cartão de crédito e geração de controle das faturas;
� Telecomunicações: Para manter registro de� Telecomunicações: Para manter registro de
chamadas realizadas, gerar cobranças, manter
saldos, etc..
� Finanças: Para armazenar informações sobre
valores mobiliários, vendas e compras de
instrumentos financeiros, operações com ações,
etc...
Aplicações do sistema de banco de 
dados
� Vendas: para informações de clientes, produtos,
vendedores, etc...
� Industria: Para gerenciamento de cadeia de� Industria: Para gerenciamento de cadeia de
suprimentos para controlar a produção de itens nas
fabricas, estoques de itens em armazéns e lojas,
alem de pedidos de itens
� Recursos Humanos: para informações sobre
funcionários, salários, descontos em folha de
pagamento, benefícios e geração de contracheques.
Finalidade dos sistemas de banco de 
dados
� Os sistemas de banco de dados surgiram em
resposta aos métodos mais antigos de
gerenciamento computadorizado de dadosgerenciamento computadorizado de dados
comerciais.
� Uma forma utilizada anteriormente de manter as 
informações e gerenciá-las, era armazená-las em 
arquivos em um computador; 
Finalidade dos sistemas de banco de 
dados
� Porém, manter informações organizacionais em um 
sistema de processamento de arquivos apresenta 
diversas desvantagens:
Redundância e inconsistência dos dados:�Redundância e inconsistência dos dados:
�Dificuldade de acesso a dados;
�Isolamento de dados; 
�Problemas de integrigade; 
�Problemas de “atomicidade”; 
�Anomalias de acesso concorrente; 
�Problemas de segurança;
Abstração dos dados
� Para que o sistema seja funcional, ele precisa
recuperar dados de maneira eficiente;
� Como muitos usuários de sistema de banco de� Como muitos usuários de sistema de banco de
dados não são treinados em computador, os
desenvolvedores ocultam a complexidade dos
usuários, sob vários níveis de abstração, para
simplificar as interações do usuários com o
sistema:
Abstração dos dados
� Nível físico:
� O nível de abstração mais baixo descreve como os
dados são realmente armazenados.
O nível físico descreve em detalhes estrutura de dados� O nível físico descreve em detalhes estrutura de dados
complexas de baixo nível.
� Nível Lógico:
�O próximo nível de abstração mais alto descreve que 
dados estão armazenados no banco de dados e que 
relações lógicas existem entre eles. 
Abstração dos dados
� Nível de visualização. 
�O nível de abstração mais alto descreve apenas parte 
do banco de dados. do banco de dados. 
�O nível “view” existe para simplificar sua interação 
com o sistema. O sistema pode fornecer muitas visões 
para o mesmo banco de dados. 
View of Data
An architecture for a database system 
Instancias e esquemas
� Os bancos de dados mudam com o tempo, a medida
que as informações são inseridas e excluídas.
� A coleção das informações armazenadas no banco
de dados em um determinado momento é umade dados em um determinado momento é uma
instância do banco de dados.
� O projeto geral do banco de dados é o esquema do
banco de dados.
� Os esquemas raramente -ou nunca– são
modificados
Instancias e esquemas
� Os sistemas de banco de dados possuem vários
esquemas, particionados de acordo com os níveis
de abstração.de abstração.
� O esquema físico descreve o projeto de banco de
dados no nível físico, enquanto o esquema lógico
descreve o projeto de banco de dados no nível
lógico.
Modelos de dados
� Apoiando a estrutura de um banco de dados está o
modelo de dados;
�Uma coleção de ferramentas conceituais para�Uma coleção de ferramentas conceituais para
descrever dados, relações de dados, semântica de
dados e restrição de consistência.
� Um modelo de dados oferece uma maneira de
descrever o projeto de um banco de dados no
nível lógico, físico e de view
Modelos de dados
� Existem vários modelos de dados diferentes. Os
modelos de dados podem ser classificados em
quatro categorias diferentes:
�Modelo relacional: O modelo relacional usa uma
coleção de tabelas para representar os dados e as
relações entre elas;
�Modelo de entidade/relacionamento: O modelo de
entidade/relacionamento E/R . È baseado em uma
percepção de um mundo real que consiste em uma
coleção de objetos básicos, chamados entidades e as
relações entre essas coisas.
Modelos de dados
�Modelo de dados baseado em objeto. O modelo de
dados orientado a objeto é outro modelo que tem
recebido cada vez mais atenção. Ele pode ser visto
como uma extensão do modelo E/R. Com noções decomo uma extensão do modelo E/R. Com noções de
encapsulamento, métodos (funções).
�Modelo de dados semi-estruturados. O modelo de
dados semi-estruturado permite a especificação dos
dados em que itens de dados individuais do mesmo tipo
possam ter diferentes conjuntos de atributos
Linguagens de banco de dados
� Um sistema de banco de dados fornece uma
linguagem de definição de dados para especificar o
esquema de banco de dados em uma linguagem deesquema de banco de dados em uma linguagem de
manipulação de dados.
� Na prática, as linguagens de definição de dados e
de manipulação de dados não são duas linguagens
separadas, mas simplesmente formam partes de
uma única linguagem de banco de dados, com SQL
Linguagens de manipulação de 
dados (DML)
� Linguagem para acessar e manipular os dados organizados pelo modelo de 
dados apropriado
� A DML também é conhecida como linguagem de consulta
� Duas classes de linguagem
© Korth • Silberschatz • Sundarshan
Duas classes de linguagem
� Procedurais – usuário especifica que dados são necessários e como obter 
esses dados
� Declarativas (não procedurais) – usuário especifica que dados são 
necessários sem especificar como obter esses dados
� SQL é a linguagem de consulta mais utilizada
Data Manipulation Language (DML)
� Os tipos de dados são:
�Recuperação de informações armazenadas no banco 
de dados; de dados; 
�Inserção de novas informação no banco de dados; 
�Exclusão de informações do banco de dados; 
�Modificação de informações armazenadas nobanco de 
dados; 
Linguagem de definição de dados 
(DDL)
� Notação de especificação para definir o esquema de banco de dados 
� Exemplo:
� create table conta ( número_conta char(10), saldo integer)
� O compilador DDL gera um conjunto de tabelas armazenado em um dicionário de dados
� O dicionário de dados contém metadados (ou seja, dados sobre os dados)
© Korth • Silberschatz • Sundarshan
� Esquema de banco de dados 
� Linguagem de armazenamento e definição de dados 
� Especifica a estrutura de armazenamento e os métodos de acesso usados
� Restrições de integridade
� Registros de domínio 
� Integridade referencial (restrição de referências na SQL)
� Afirmações
� Autorização
Data Definition Language (DDL)
� Specification notation for defining the database schema
Example: create table account (
account-number char(10),
balance integer)
� DDL compiler generates a set of tables stored in a data dictionary
� Data dictionary contains metadata (i.e., data about data)
Database schema � Database schema 
� Data storage and definition language 
� Specifies the storage structure and access methods used
� Integrity constraints
� Domain constraints
� Referential integrity (references constraint in SQL)
� Assertions
� Authorization
Conceitos BásicosConceitos Básicos
SQL (Structured Query Language)SQL (Structured Query Language)
SELECT SELECT Recuperação de dadosRecuperação de dados
INSERT INSERT 
UPDATE UPDATE DML (Data Manipulation Language)DML (Data Manipulation Language)UPDATE UPDATE DML (Data Manipulation Language)DML (Data Manipulation Language)
DELETEDELETE
CREATECREATE
ALTER DDL (Data Definition Language)ALTER DDL (Data Definition Language)
DROPDROP
GRANTGRANT
DENYDENY DCL (Data Control Language)DCL (Data Control Language)
REVOKEREVOKE
Banco de dados relacionais
� Este tipo de banco de dados é baseada no modelo
relacional e usa um conjunto de tabelas para
representar os dados e as relações entre eles.representar os dados e as relações entre eles.
� A maioria dos sistemas de banco de dados
relacionais utiliza a linguagem SQL.
Tabelas
� Cada tabela possui várias colunas e cada coluna 
possui um nome único.
� A próxima figura apresenta um banco de dados � A próxima figura apresenta um banco de dados 
relacional de exemplo, constituído de 3 tabelas:
�A primeira mostra detalhes dos clientes do banco; 
�A segunda mostra as contas; 
�E a terceira mostra que contas pertencem a que 
clientes; 
Relational Model
� Example of tabular data in the relational 
model Attributes
A Sample Relational Database
Analisando as tabelas
� A primeira tabela, cliente, mostra, por exemplo, que o cliente
identificado pelo id_cliente 192-83-7465 é chamado Johnson e mora
na rua Alma, n°12, em palo alto.
� A segunda tabela, conta, mostra, por exemplo, que a conta A-101
possui um saldo de $500 e a conta A-201possui um saldo de $900;possui um saldo de $500 e a conta A-201possui um saldo de $900;
� A terceira tabela mostra que contas pertencem a que clientes. Por
exemplo, o número da conta A-101 pertence ao cliente cujo id-
cliente é 192-83-7465, a saber, Johnson e os clientes Johnson e os
clientes 192-83-7468 e 019-28-3746 (smith) compartilham o numero
de conta A-201 – Eles podem ser sócios...
SQL
� SQL: linguagem não procedural amplamente usada
� Exemplo: encontre o nome do cliente com id_cliente 192-83-7465
select cliente.nome_cliente
from cliente
where cliente.id_cliente = ‘192-83-7465’
� Exemplo: encontre os saldos de todas as contas pertencentes ao cliente com id_cliente 192-
83-7465
select conta.saldo
© Korth • Silberschatz • Sundarshan
select conta.saldo
from depositante, conta
where depositante.id_cliente = ‘192-83-7465’ and
depositante.número_conta = conta.número_conta
� Os programas de aplicação geralmente acessam banco de dados através de
� Extensões de linguagem para permitir SQL embutida
� Interface de programa de aplicação (por exemplo, ODBC/JDBC), que permite que consultas 
SQL sejam enviadas a um banco de dados.
Projeto de banco de dados
O processo de projetar a estrutura geral do banco de dados.
� Projeto lógico – Decidir sobre o esquema de banco de dados. O projeto de
banco de dados exige encontrar uma “boa” coleção de esquemas de
relação.
© Korth • Silberschatz • Sundarshan
relação.
� Decisão empresarial – Que atributos devemos registrar no banco de dados?
� Decisão de ciência da computação – Que esquemas de relação devemos ter e
como os atributos devem ser distribuídos entre os vários esquemas de relação?
� Projeto físico – Decidir sobre o layout físico do banco de dados.
O modelo entidade- relacionamento
� Modela uma empresa como uma coleção de entidades e relacionamentos
� Entidade: uma “coisa” ou “objeto” na empresa que é distinguível dos outros 
objetos 
� Descrito por um conjunto de atributos
� Relacionamento: uma associação entre várias entidades
© Korth • Silberschatz • Sundarshan
� Representado graficamente por um diagrama entidade-relacionamento:
Modelos de dados relacionais de objeto
� Estendem o modelo de dados relacional incluindo orientação a
objeto e construções para lidar com tipos de dados inseridos.
� Permitem que atributos de tuplas tenham tipos complexos,
incluindo valores não atômicos como relações aninhadas.
© Korth • Silberschatz • Sundarshan
� Preservam as fundações relacionais, em especial o acesso
declarativo aos dados, enquanto estendem a capacidade de
modelagem.
� Fornecem compatibilidade com linguagens relacionais
posteriores existentes.
XML: Extensible Markup Language
� Definida pelo WWW Consortium (W3C)
� Originalmente criada como uma linguagem de marcação de
documento, não como uma linguagem de banco de dados
� A capacidade de especificar novas tags e criar estruturas de tag
aninhadas tornaram a XML uma excelente maneira de trocar dados,
© Korth • Silberschatz • Sundarshan
aninhadas tornaram a XML uma excelente maneira de trocar dados,
não apenas documentos.
� A XML se tornou a base para todos os formatos de intercâmbio de
dados da nova geração.
� Uma ampla variedade de ferramentas está disponível para análise,
navegação e consulta de dados/documentos XML.
Gerenciamento de armazenamento
� Gerenciador de armazenamento é um módulo de programa que fornece a
interface entre os dados de baixo nível armazenados no banco de dados e os
programas de aplicação e consultas submetidos ao sistema.
� O gerenciador de armazenamento é responsável pelas seguintes tarefas:
� Interagir com o gerenciador de arquivos
Armazenar, recuperar e atualizar dados eficientemente.
© Korth • Silberschatz • Sundarshan
� Armazenar, recuperar e atualizar dados eficientemente.
� Problemas:
� Acesso ao armazenamento
� Organização de arquivos
� Indexação e hashing
Processamento de consulta 
1. Análise e tradução
2. Otimização 
3. Avaliação 
© Korth • Silberschatz • Sundarshan
Processamento de consulta (cont.)
� Maneiras alternativas de avaliar uma consulta dada
� Expressões equivalentes
� Diferentes algoritmos para cada operação
� A diferença de custo entre um bom e um mau método de 
avaliar uma consulta pode ser enorme
© Korth • Silberschatz • Sundarshan
avaliar uma consulta pode ser enorme
� Necessidade de estimar o custo das operações
� Depende profundamente das informações sobre relações 
que o banco de dados precisa manter
� Necessidade de estimar estatísticas para resultados 
intermediários para calcular custo de expressões 
complexas
Gerenciamento de transação
� Uma transação é um conjunto de operações que realiza 
uma única função lógica em uma aplicação de banco de 
dados.
� O componente de gerenciamento de transação garante que 
o banco de dados permaneceem um estado consistente 
(correto) apesar de falhas do sistema (por exemplo, 
© Korth • Silberschatz • Sundarshan
(correto) apesar de falhas do sistema (por exemplo, 
interrupções de energia e falhas do sistema operacional) e 
falhas de transação.
� O O O O gerenciador de controle de concorrência controla a 
interação entre as transações concorrentes para assegurar 
a consistência do banco de dados.
Arquitetura do banco de dados
A arquitetura de um sistema de banco de dados é bastante
influenciada pelo sistema de computador subjacente em que o
sistema de banco de dados é executado:
Centralizado
© Korth • Silberschatz • Sundarshan
�Centralizado
�Cliente-servidor 
� Paralelo (multiprocessador)
�Distribuído
Usuários de banco de dados
Os usuários são diferenciados pela forma como esperam interagir com o
Sistema
� Programadores de aplicação – interagem com o sistema através de 
chamadas de DML 
Usuários avançados — interagem com o sistema formulando suas 
© Korth • Silberschatz • Sundarshan
� Usuários avançados — interagem com o sistema formulando suas 
requisições em uma linguagem de consulta de banco de dados
� Usuários especializados — interagem com o sistema escrevendo 
aplicações de banco de dados especializadas que não se encaixam na 
estrutura de processamento de dados tradicional
� Usuários leigos — interagem com o sistema chamando um dos programas 
de aplicação previamente escritos
Exemplos, pessoas acessando bancos de dados através da
Web, caixas bancários, equipe de contabilidade
Administrador de banco de dados
� Coordena todas as atividades do sistema de banco de dados; o 
administrador de banco de dados tem um bom conhecimento 
dos recursos e necessidades de informação da empresa.
� As responsabilidades do administrador de banco de dados 
incluem:
Definição de esquema
© Korth • Silberschatz • Sundarshan
� Definição de esquema
� 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 ao banco de dados
� Especificar restrições de integridade
� Agir como ligação com os usuários
� Monitorar o desempenho e responder a mudanças em requisições
Estrutura geral do sistema
© Korth • Silberschatz • Sundarshan
História dos sistemas de banco de dados 
� Década de 1950 e início da década de 1960:
� Processamento de dados usando fitas magnéticas para armazenamento 
� Fitas fornecem apenas acesso seqüencial 
� Cartões perfurados para entrada
� Final da década de 1960 e década de 1970:
Discos rígidos permitem acesso direto aos dados
© Korth • Silberschatz • Sundarshan
� Discos rígidos permitem acesso direto aos dados
� Modelos de dados de rede e hierárquico em largo uso
� Ted Codd define o modelo de dados relacional
� Ganharia o ACM Turing Award por este trabalho
� IBM Research inicia o protótipo do System
� UC Berkeley inicia o protótipo do Ingres
� Processamento de transação de alto desempenho (para a época)
História (cont.)
� Década de 1980:
� Protótipos relacionais de pesquisa evoluem para sistemas comerciais
� SQL se torna o padrão do setor
� Sistemas de banco de dados paralelos e distribuídos 
� Sistemas de banco de dados orientados a objeto 
� Década de 1990:
© Korth • Silberschatz • Sundarshan
� Década de 1990:
� Grandes aplicações de suporte a decisão e exploração de dados 
� Grandes data warehouses de vários terabytes
� Surgimento do comércio Web 
� Década de 2000:
� Padrões XML e XQuery
� Administração de banco de dados automatizada
Final do Capítulo 1
© Korth • Silberschatz • Sundarshan
Final do Capítulo 1

Continue navegando