Aula 04 - Bancos de Dados

Propaganda
Introdução a
Computação
Aula 04 – SGBD – Sistemas
Gerenciadores de Bancos de
Dados
Prof. MSc. Edilberto Silva
[email protected]
http://www.edilms.eti.br
Conceitos Básicos
• DADOS: são fatos em sua forma
primária.
Ex: nome do funcionário, número peças de
um estoque...
• INFORMAÇÃO: conjunto de fatos
organizados de maneira significativa
Ex: com os dados das peças em estoque,
pode-se obter a lista de peças em falta.
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Sistema de Arquivos
Cada aplicação com seu conjunto de dados
CEFET
Descrição dos dados dentro da
Controle Acadêmico
aplicação
Controle Administrativo
Alunos
Turmas
Deptos.
Falta de compartilhamento
Disciplinas
Disciplinas
Turmas
Salas
Redundância de Dados
Professores
Controle Pessoal
Deptos.
Difícil Manutenção
Professores
Funcionários
Dificuldades na segurança dos
dados
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Por que não usar sistemas de
arquivos?
• Sistemas de Arquivos:
– Não disponibilizam linguagem de
consulta
– Esquema de dados é limitado
– Acesso concorrente aos dados por
diversos usuários ou aplicações não
apresenta segurança adequada
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Por que não usar sistemas
de arquivos?
• Sistemas de Arquivos:
– Não permitem o armazenamento de
grandes volumes de dados
– Sistema de backup é ineficiente
– Acesso aos dados é mais complexo
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
O que é um Banco
de Dados?
• Conjunto estruturado de dados de uma
empresa ou aplicação, armazenado em
computador e cuja organização é determinada
por um modelo de dados
• Usados na área comercial e de negócios,
engenharia, medicina, educação, científica,
gestão, etc.
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Sistema de Banco
de Dados
• É um sistema de armazenamento de dados
cujo objetivo global é registrar e manter
informação.
• um sistema de Banco de Dados envolve
quatro componentes maiores: dados,
hardware, software e usuários
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
SGBD - Sistema Gerenciador de
Banco de Dados
• Conjunto de aplicativos cujo principal
objetivo é gerenciar o acesso e a correta
manutenção dos dados armazenados em
um banco de dados.
• Ex: Oracle, SQL Server, DB2, PostGreSql
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
SGBD - Sistema Gerenciador de Banco de
Dados
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Características de um
SGBD...
• Garantir a ACID
– Atomicidade, Consistência
– Isolamento e Durabilidade
• Segurança - criação e manipulação de
dados de maneira amigável e proteção
aos dados quanto aos acessos
indesejáveis ;
• Integridade - garantia da qualidade dos
dados;
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Características de um
SGBD...
• Controle de Concorrência – acesso aos
dados de forma concorrente;
• Recuperação de Paradas e Falhas - no
caso de pane o Banco de Dados possa
ser recuperado de maneira confiável
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Dados
Aluno
Nome
Matrícula
Dhara Magalhães 56743223
Paulo Silva
56743217
Disciplina Nome
Banco de Dados I
Álgebra Linear
Estruturas de Dados
NumDisc
Pré-requisito 015
015
http://www.edilms.eti.br
Número
015
002
009
Turma
001
001
CH
100
67
100
Origem
CDSI
CMAT
CGES
NúmeroPreReq
009
010
Prof. Edilberto Silva - [email protected]
Metadados
• Dados sobre dados
• Permitem a manutenção, representação e
identificação dos dados
• Garantem a consistência e a persistência
das definições das unidades de dados
• Proporcionam aos usuários um
entendimento comum das unidades de
dados
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Metadados
Tabela
n°Colunas Primary Key
Estudante
4
Matrícula
Disciplina
5
Código
Matrícula
3
Nome + Código
• Tabela: Estudante
Coluna
Matricula
Nome
DataNascimento
NumTelefone
http://www.edilms.eti.br
Tipo
Tamanho
Nulo
int
4
N
varchar
50
N
date
8
N
varchar
12
S
Prof. Edilberto Silva - [email protected]
Default
Getdate()
Evolução dos SGBDs
• Os primeiros SGBDs comerciais
surgiram no final dos anos 60
• Evoluíram dos sistemas de arquivos
básicos
• Modelos iniciais:
– Hierárquico ou baseado em árvores
– Redes baseado em grafos
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Vantagens da Utilização de
um SGBD
• Projetado para gerir um grande volume
de dados
– A importância da informação nas
empresas determina o valor do banco
de dados
• Controle de Redundância - garantindo
consistência
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Vantagens da Utilização de
um SGBD
• Restrição de Acesso
• Controle de Integridade
• Compartilhamento dos Dados
• Mecanismos de Backup e Recuperação
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Vantagens da Utilização de
um SGBD
• Metadados organizados num
catálogo/dicionário de dados
• Múltiplas visões de usuário
• Representação de relacionamentos e
estruturas complexas entre dados,
sejam eles convencionais ou não
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Outras vantagens - SGBDs
• Uso de padrões
• Redução do tempo de programação de
aplicações
• Flexibilidade
• Disponibilidade de informação
atualizada para todos os usuários
• Economia da empresa na organização
dos dados
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Classificação Atual dos SGBDs
Modelo de Dados
Rede
Relacional
Hierárquico
Orientado a
Objetos
Objeto-Relacional
SGBD Distribuído
Homogêneos
Heterogêneos
SGBD federados ou
Sistemas Multi-Bases
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Principais SGBDs
• Oracle xx G (Grid computing)
• IBM DB2
• Microsoft SQL Server
• PostgreSQL (Objeto Relacional)
• MySQL
• ADABAS*
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Banco de dados não
convencionais
• XML (eXtensible Markup Language)
• JSON (JavaScript Object Notation)
• SqlLite (for Android/iOS)
• Banco de Dados Multimídia: figuras, vídeos e sons;
• Bancos de Dados Geográficos: mapas dos mais
diversos temas, dados climatológicos, imagens de
satélite...
• Bancos de Dados Datawarehouses e On-Line Analitical
Processing (OLAP): informações de banco de dados
muito grandes para tomada de decisões;
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Exemplo de JSON
{ "firstName": "John",
"lastName": "Smith",
"age": 25,
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": 10021 },
"phoneNumbers": [
{
"type": "home",
"number": "212 555-1234”},
{ "type": "fax",
"number": "646 555-4567"
} ] }
http://www.edilms.eti.br
http://en.wikipedia.org/wiki/JSON
Prof. Edilberto Silva - [email protected]
Modelagem
http://www.macoratti.net/xml.htm
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Modelagem
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Modelos
• Os objetivos dos modelos são:
– Comunicação com clientes
• pode-se mostrar ao cliente, através
de um produto de demonstração,
parte ou todo o comportamento
externo de um sistema
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Modelos
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Modelos
• Os objetivos dos modelos são:
– Visualização:
• permite visualizar idéias antes de tornálas concretas
– Redução da complexidade:
• os modelos reduzem a complexidade
dividindo-a em um pequeno número de
coisas importantes a serem tratadas de
cada vez
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Realidade
ANALISTA
Modelo
Conceitual
Modelo
Lógico
Mini-mundo
http://www.edilms.eti.br
Modelo
Físico
Banco
de Dados
Objetivos da Modelagem Conceitual de Dados
• Representar um ambiente observado
– O significado da informação
• Servir de instrumento para comunicação
• Favorecer o processo de verificação e
validação
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Objetivos da Modelagem Conceitual de Dados
• Capturar aspectos de relacionamento
entre os objetos observados
• Servir de referencial para a geração de
estruturas de dados
• Estabelecer conceitos únicos a partir de
visões diversas
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Modelo Conceitual
• Modelo abstrato que descreve a
estrutura de um BD de forma
independente de um SGBD particular
(restrições impostas por tecnologias,
técnicas
de
implementação
ou
dispositivos físicos)
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Modelo Conceitual
• primeira etapa do projeto de um sistema de
aplicação em banco de dados
• utilizado para entendimento, transmissão,
validação de conceitos, mapeamento do
ambiente, diálogo entre usuários e
desenvolvedores
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Exemplo de Modelo Conceitual
AUTOR
N
escreve
N
LIVRO
INFANTIL
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
ADULTO
Modelo Lógico
• Os objetos, suas características e
relacionamentos têm uma representação de
acordo com as regras de implementação e
limitações impostas por algum tipo de
tecnologia
– Relacional, Orientada a Objetos, ObjetoRelacional
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Modelo Lógico
• Resulta da aplicação de regras
derivação sobre um modelo conceitual
• Nível mais restrito aos desenvolvedores
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
de
Modelo Lógico
• descreve as estruturas que estarão
contidas no banco de dados, de
acordo
com
as
possibilidades
permitidas pela abordagem, sem
considerar
características
de
armazenamento do SGBD
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Modelo Lógico
• é dependente do TIPO/MODELO de dados
particular do SGBD que será usado
– Exemplo: Tabela/Relação -> Modelo
Relacional
Identidade Nome
Telefone
23470981
Eva Andressa
21 23867543
10876457
Juju Salimeni
81 65439878
65438945
Paolla Oliveira
83 2256756
19876589
Paula Fernandes
83 2478976
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Modelo Físico
• partirá do lógico e descreverá as estruturas
físicas de armazenamento de dados
(tamanho de campos, índices, métodos de
acesso do SGBD, etc)
• Linguagens e Notações dependem do SGBD
– Pode ser necessário o conhecimento do
modo físico de implementação das
estruturas de dados
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Instâncias e Esquemas
• Instâncias – conjunto de informações
contidas em determinado banco de dados
em um dado momento
• Esquema – projeto geral do banco de
dados. São alterados com pouca
frequências
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Independência de Dados
• Define-se Independência de Dados
como a imunidade das aplicações a
mudanças na estrutura de
armazenamento ou na estratégia de
acesso
– Física
– Lógica
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Independência de Dados
• Ex.: a forma como os dados estão
organizados na memória secundária e a
forma de se ter acesso a eles podem
ser ditadas pelas necessidades da
aplicação (arquivo armazenado no
formato indexado sequencial)
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Independência de Dados
• Física – modificação no esquema físico
sem alteração da aplicação. Ex.
– Alterações para melhorar desempenho
– a forma como os dados estão organizados
na memória secundária e a forma de se ter
acesso a eles podem ser ditadas pelas
necessidades da aplicação (arquivo
armazenado no formato indexado
sequencial)
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Independência de Dados
• Lógica – modificação no esquema
lógico sem alteração da aplicação. (Ex.
Novo campo, ordem de campos,
tamanho do campo).
• A independência lógica é mais difícil de
ser alcançada. Aplicações
normalmente mais dependentes da
estrutura lógica dos dados do que de
seu acesso)
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Componentes SGBD
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Componentes
• Metadados: informação sobre a estrutura
dos dados
– Esses metadados encontram-se
armazenados e organizados no
“catálogo” do banco
– Num SGBD relacional:
• Nomes das relações (tabelas),
atributos e tipos de dados
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Gerenciador de Armazenamento
• Faz a intermediação entre os pedidos
solicitados (consultas ou alterações) e os
dados armazenados
• Consiste em:
– Gerenc. de buffer: manipula memória
principal
– Gerenc. de arquivos: localiza os
arquivos no disco, alocando os blocos
necessários
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Processador de Consultas
• Transforma uma consulta ou
manipulação de alto nível em uma
sequência de requisições a dados
armazenados
• Traduz essa “sentença” em uma
sequência de pedidos de maneira
otimizada (melhor algoritmo) para o
gerenciador de armazenamento
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Processador de Consultas
• Manipula pedidos de consultas ou
alterações nos dados ou metadados
• Processa linguagens disponíveis para
diferentes tipos de usuários
– Usuário final, programador, DBA
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
O que é uma Transação
• Grupo de operações a serem executadas
de forma agrupada ou sequencialmente
• Unidade de execução
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Gerenciador de Transações
• Responsável pela integridade do
sistema
– Deve garantir que as diversas
consultas em execução não interfiram
umas nas outras e que os dados não
sejam perdidos em caso de falha do
sistema
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Propriedades ACID
• Atomicity: tudo de uma transação é
executado ou nada é.
• Consistency: após completar uma ou mais
transações, o BD satisfaz condições de
consistência
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Propriedades ACID
• Isolation: quando duas ou mais transações
rodam, seus efeitos devem ser exclusivos
• Durability: se a transação foi completada,
seu resultado não deve ser perdido em
caso de falha de sistema
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Normalização
• A normalização é o processo de organizar os dados em um
banco de dados.
• inclui a criação de tabelas e estabelecer relacionamentos entre
essas tabelas de acordo com as regras criadas para proteger os
dados e para tornar o banco de dados mais flexíveis, eliminando
a redundância e dependência inconsistente.
• Dados redundantes desperdiçam espaço em disco e criam
problemas de manutenção.
• Se os dados que existem em mais de um local devem ser
alterados, os dados devem ser alterados da mesma maneira em
todos os locais.
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Formas Normais
• Primeira Forma Normal (1FN) Uma relação está na 1FN
se somente todos os domínios básicos contiverem
somente valores atômicos (não contiver grupos
repetitivos). Para atingir esta forma normal devemos
eliminar os grupos de repetição.
• Segunda Forma Normal (2FN) Uma relação R está na
2FN se e somente se ela estiver na primeira e todos os
atributos não chave forem totalmente dependentes da
chave primária (dependente de toda a chave e não
apenas de parte dela).
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Formas Normais
• Terceira Forma Normal (3FN) Uma relação R está na
3FN se somente estiver na 2FN e todos os atributos não
chave forem dependentes não transitivos da chave
primária (cada atributo for funcionalmente dependente
apenas dos atributos componentes da chave primária ou
se todos os seus atributos não chave forem
independentes entre si).
http://www.edilms.eti.br
Prof. Edilberto Silva - [email protected]
Obrigado!
Edilberto Silva
www.edilms.eti.br
www.edilms.eti.br
Prof. Edilberto Silva
Download