Banco de Dados
Profa. dArrochella Mestre em Gesto de Conhecimento e Tecnologia da Informao
Banco de Dados
Objetivo Geral:
Ensinar e capacitar o aluno sobre as teorias e tcnicas de criao e manipulao de bancos de dados automatizados, por meio de aulas expositivas e prtica de exerccios em laboratrio utilizando ferramentas de Sistema Gerenciador de Bases de Dados.
Banco de Dados
Objetivos Especficos:
Conduzir o estudante, ao longo do curso, a: Revisar fundamentos de Banco de Dados e Modelagem; Revisar conceitos de Normalizao de Dados; Explorar conceitos de objetivos de Bancos de Dados Relacionais; Recomendar melhores prticas aos profissionais AD Administrador de Dados e DBA Administrador de Banco de Dados; Praticar exemplos e estudos de caso como exerccios prticos em laboratrio de informtica utilizando uma ferramenta de software (SGBD); Explorar conceitos avanados de manipulao, manuteno, segurana e gerncia de transaes em Banco de Dados.
Banco de Dados
Contedo programtico:
Organizao de arquivos Modelagem de Dados Regras de integridade Sistema gerenciador de banco de dados (SGBD) Modelo relacional de banco de dados
Banco de Dados
Referncias Bibliogrficas:
Bsicas: SILBERCHATZ, Abraham e. Sistema de Banco de Dados. So Paulo: Makron Books, 1999. MACHADO, Felipe. ABREU, Maurcio. Projeto de Banco de Dados. 8 ed. rica.So Paulo, 1996 Complementares: DATE, C.J. Introduo a Sistemas de Banco de Dados. Rio de Janeiro: Edgard Blucher, 1999 CHEN, Peter, Modelagem de Dados. Ed. Makon Books, 1990; RAMALHO, Jos Antnio Alves. SQL A Linguagem dos Bancos de Dados. So Paulo. Ed. Berkeley , 1999. CERCOLA, Osvaldo Vicente. Banco de dados relacional e distribudo. Rio de Janeiro: LTC, 1991. KERN, Vincius. Banco de dados relacional. Rio de Janeiro: LTC, 1991. KORTH, Henry F. Sistema de banco de dados. So Paulo: Makron, 1989. SALEMI, Joe. Banco de dados cliente/servidor. Rio de Janeiro: Infobook, 1993.
Banco de Dados
Banco de Dados
Imagine voc chegando Portaria do seu Clube, h alguns anos e aquele Porteiro conhecido seu estava de folga. Voc esqueceu a carteirinha e com sua carteira de identidade o Porteiro tentar Verificar sua situao junto Secretaria do Clube.
Banco de Dados
De que forma deveriam ser encontradas as fichas?
Banco de Dados
Conceitos:
Banco de Dados: uma coleo de dados inter-relacionados, representando informaes sobre um domnio especfico. Exemplos: * lista telefnica, * controle de acervo de uma biblioteca, * reserva de hotel, * sistema de recursos humanos de uma empresa,...
Banco de Dados
Conceitos:
Sistema Gerenciador de Banco de Dados(SGBD): um software para facilitar a manipulao das informaes dos bancos de dados e o desenvolvimento de programas aplicativos. Exemplos: * Access, * Oracle, * DB2, * SQL, ...
Banco de Dados
Conceitos:
dados - fatos que podem ser armazenados
exemplos: nomes, telefones, endereos (rua, bairro,cidade) coleo de dados inter-relacionados logicamente
Banco de Dados
Histrico: Dcada de 60: Indexados sequencias: ISAM (Indexed Sequencial Access Method) Dcada de 70: Bancos de dados hierrquicos e em rede
Ofereciam as seguintes funcionalidades adicionais: Identificadores de registros com acesso estruturado atravs de redes de registros Acesso a vrios arquivos indexados simultaneamente compondo uma base de dados nica Proteo restries de acesso a pessoas ou programas autorizados Transaes reconstruo, concorrncia e consistncia
Banco de Dados
Histrico: Dcada de 80: Bancos de dados Relacionais
Ofereciam as seguintes funcionalidades adicionais: Linguagem de consulta com operaes de manipulao de dados e ferramentas para desenvolvimento de aplicaes Independncia de dados
Banco de Dados
Histrico: Dcada de 90: Banco de dados orientado a Objetos Atualmente: Bancos de dados XML nativo Bancos de dados on-line que permitem disponibilizar servios via web Bancos de dados puro JAVA Banco de dados especficos para aplicaes real-time
Banco de Dados
Histrico: Linguagem padro para manipulao de banco de dados: SQL Structured Query Language
Disco
Banco de Dados
Voltemos ao nosso Clube: Imaginem que ele fez uma Lista com todos os Scios do Clube e os nomes dos dependentes de cada scio. Como ele fazia para .... - encontrar um dependente? - atualizar o pagamento das mensalidades? - excluir um scio e seus dependentes?
Banco de Dados
e quando um scio vem pagar as mensalidades atrasadas?
-
Localiza o scio na lista Atualiza sua situao Localiza sua ficha no arquivo Informa pagamento das mensalidades Identifica cada um de seus dependentes Localiza os dependentes na lista e Atualiza os dependentes
Banco de Dados
Servios rotineiros: - o refazimento da lista feito mensalmente aps o pagamento das mensalidades - Listagem de aniversrios para envio de correspondncias - Listagem dos dependentes ordenados por data de aniversrio para verificao de maioridade - Listagem dos inadimplentes - ...
Banco de Dados
Agora imaginem que nosso Clube tenha 10.000 Associados.
Banco de Dados
Problemas encontrados no bando de dados do nosso Clube: - Inconsistncia e redundncia de dados
a mesma informao est repetida em vrios lugares
Isolamento de dados
como os dados esto dispersos em vrios arquivos, e estes arquivos podem possuir diversos formatos, difcil escrever novas aplicaes para recuperao apropriada
Problemas de integridade
pela prpria redundncia
Banco de Dados
Por estes problemas, especialistas vem trabalhando desde os anos 60, em novas tcnicas para montagem de banco de dados.
A idia chegar de forma fcil e segura a um modelo interno de nosso escopo a partir da viso do mundo real.
Isso chamamos de abstrao da informao.
Banco de Dados
ABSTRAO DA INFORMAO: Definio: Habilidade mental que permite aos seres humanos visualizarem os problemas do mundo real com vrios graus de detalhe, dependendo do contexto do problema.
J. Rumbaugh et al., Editora Campus, 1997 Livro: Modelagem e Projetos baseado em objetos
Banco de Dados
Tipos de Banco de Dados:
-
Modelo de Dados
Objetivos de um Modelo de Dados:
-
Representar o ambiente observado Servir de instrumento para comunicao Documentar e Normalizar Fornecer Processos de Validao
Modelo de Dados
Caractersticas dos Modelos
-
CONCEITUAL: viso geral do negcio, facilita entendimento entre usurios e desenvolvedores, s possui entidades e os atributos principais e pode conter relacionamentos n:n LGICO: deriva do Modelo Conceitual e visa representao do negcio, possui entidades associativas em lugar de relacionamentos n:n, define chaves primrias das entidades, normalizado at 3. Forma Normal, adequao aos padres de nomenclatura e j deve ter as entidades e atributos documentados. FSICO: elaborado a partir do Modelo Lgico, pode variar conforme o SGBD escolhido, pode variar com base na anlise de acesso aos dados, visando atender aos requisitos de performance, pode ter tabelas somente fsicas.
Modelo de Dados
Etapas para Construo do Modelo
-
MODELO CONCEITUAL representa as regras de negcio sem limitaes tecnolgicas ou de implementao. Mais adequado para o envolvimento do usurio. MODELO LGICO Leva em considerao limites impostos por algum tipo de tecnologia de banco de dados. MODELO FSICO Leva em considerao limites impostos por um SGBD e pelos requisitos no funcionais dos programas que acessam os dados.
Modelo de Dados
Conceitos:
Relacionamento:
associao entre instncias de Entidades, devido regra de negcios. Normalmente ocorre entre instncias de duas Entidades, podendo ocorrer entre Instncias da mesma Entidade (auto-relacionamento) ou entre trs ou mais Entidades.
Relacionamentos
conceito:
associao entre entidades. representam os vnculos que existem entre as entidades no mundo real. so representados por losangos.
Exemplo: no sistema de controle acadmico da Faculdade o relacionamento MATRICULA, vincula um ALUNO a uma DISCIPLINA.
Relacionamentos
conceitos
Grau
Func
Pr-Req
Lotao
Depto
Grau 2
Grau 1
Relacionamentos
conceitos
Classe
identifica
1:N
N:N
1 Func
Participa
1 Projeto
Classe 1:1
Classe 1:1
1 Func Utiliza
1 Carro
1 Func
Participa
N Projeto
N Func
Participa
1 Projeto
Classe 1:N
1 Cliente Aluga
N
Vdeo Gone with the Wind
Terminator
Terminator II
Cerveny
Denton
Cretaceous Park
Sandlot Son of Flubber
N Func
Participa
N Projeto
Classe N:N
Modelo de Dados
Conceitos:
Cardinalidade:
indica quantas ocorrncias de uma Entidade participam no mnimo (Cardinalidade mnima) e no mximo (Cardinalidade Mxima) de um Relacionamento.
Modelo de Dados
Conceitos:
Normalizao:
conjunto de regras que visa minimizar as anomalias de modificao dos dados e dar maior flexibilidade em sua utilizao.
- Instncia cada elemento da Entidade. Pode tambm ser chamada de Ocorrncia Modelo Lgico
Exemplos: Registro, Linha ou Tupla Modelo Fsico
- Relacionamentos Vnculos ou associaes entre Entidades. - Atributo Tudo que se pode relacionar como sendo prprio da Entidade
Exemplos: Cdigo do Produto (Entidade Produto) Nome do Cliente
Banco de Dados
Entidade: conjunto de objetos sobre os quais preciso armazenar informaes teis. conjunto de vrios elementos (mais que 1). conjuntos de elementos distinguveis que aceitam um cdigo para diferenci-los. seus atributos NO dependem de outras entidades. conjuntos qualificativos (ex. grau de instruo). Ex de possveis Entidades: pessoas, locais, objetos, documentos, etc.
Entidade
representao
Funcionrios Produtos
Notas Fiscais
Cargos
srie
cdigo
descrio
pr-requisitos
Atributos
conceito
informaes teis a respeito de uma entidade ou relacionamento. os atributos de uma entidade permanecem constantes para todos os seus relacionamentos. os atributos de uma entidade so independentes de todas as demais entidades.
Atributos tipos
determinante: seu valor representa um elemento da entidade. seu valor nico para a entidade. deve ser sublinhado. composto necessita ser dividido em sub-atributos, para que seu significado seja melhor compreendido. multivalorado pode assumir mais do que um valor para cada entidade, diferenciado com um (*).
Atributos representao
Funcionrios Produtos
Notas Fiscais
Cargos
srie
cdigo
descrio
pr-requisitos
Caso 2 Funcionrios
telefone
matricula
*DDD *n *descrio
Entidades Fracas
Dependem de uma entidade forte A Entidade Fraca representada por:
Entidades Fracas
Dependncia de Existncia
Func
1
Pertence
N
Dependente
Entidades Fracas
Dependncia de Identificador
Contribuinte
1
Faz
N
Declarao IR
Relacionamentos Totalidade
Uma Entidade dita TOTAL num relacionamento, quando TODOS os seus elementos participam deste relacionamentos.
Atributos de Relacionamento
um elemento da 1 entidade, e observa-se o valor do atributo para cada mudana de elemento na 2 entidade. se o valor do atributo mudar, ento ele no pode pertencer a 1 entidade. se o atributo no pertence as entidades envolvidas, e relevante no contexto do relacionamento, ento ele atributo do relacionamento.
Atributos de Relacionamento
Produtos
Fornecedores
Atributos de Relacionamento
PRECO, QUANTIDADE e PRAZO, no podem pertencer a PRODUTOS, pois se fosse assim TODOS os FORNECEDORES deveriam praticar o mesmo preo.
N
Vende
Produtos
Fornecedores
*Condies Preo
Quant Prazo
Atributos de Relacionamento
PRECO, QUANTIDADE e PRAZO, no podem pertencer a FORNECEDORES, pois se fosse assim TODOS os PRODUTOS de um fornecedor teriam o mesmo preo.
Produtos
N
Vende
Fornecedores
*Condies
Preo
Quant
Prazo
Atributos de Relacionamento
No pertencendo nem a PRODUTOS ou a FORNECEDORES, e sento relevante no relacionamento VENDA, so atributos do relacionamento
Produtos
N
Vende
Fornecedores
*Condies
Preo
Quant
Prazo
Atributos de Relacionamento
A quem pertence os ATRIBUTOS: DATA ADMISSO e DATA LOTAO?
N 1
Pertence
Funcionario
Departamento
Auto-Relacionamentos
Auto-Relacionamentos
Jordan Mike
Rieta
Colleen Sean Jody
Walt
Andrew Larry Whitney Barb John
Func
Casado com
Func
Auto-Relacionamento
Num Auto-Relacionamento necessrio saber o PAPEL que cada elemento do conjunto de entidade est representando.
1
mulher
Casdo com Peas
N
compe Componentes
Funcionario
marido
composta
quantidade
Relacionamentos Mltiplos
MRP
N Pedidos Compra
Relacionamentos Mltiplos
Um PROF em uma DISCIPLINA esto associados a quantos ALUNOS?
Aluno N
PDA
Agregaes
Um AGREGADO tratado como sendo uma ENTIDADE composta por um NICO RELACIONAMENTO. Serve para que RELACIONAMENTOS MLTIPLOS sejam decompostos.
Agregaes
O relacionamento MRP no permite que uma REQUISIO seja atendida quando o MATERIAL est no estoque:
Materiais N N Requisies
MRP
N Pedidos Compra
Agregaes
Soluo:
Decompor MRP em 2 relacionamentos:
1) MATERIAIS - REQUISIO 2) PEDIDO e o relacionamento 1. Materiais
N Item Req N
Requisies
Agregado
N
Item Pedido N
Pedidos Compra
Agregaes
Exemplo: Como conseqncia da ALOCAO de um FUNCIONRIO num PROJETO, ele pode necessitar que uma MQUINA.
N Alocado N
Funcionario
Projeto
N
Utiliza 1
Mquina
ISA
Motoristas
Secretrias
Engenheiros
Os Atributos NOME, DATA ADMISSO, RG, so Atributos de FUNCIONRIOS. O Atributo IDIOMAS, s til para SECRETRIAS. Os Atributos HABILITAO, ACIDENTES so exclusivos dos MOTORISTAS
Atributos (campos)
Atributo: Elemento de dado que contm informao que descreve uma entidade
Funcionrio
Endereo
Cidade
Estado
Atributo Monovalorado: assume um nico valor para cada elemento do conjunto-entidade Ex.: Nome Atributo Composto: formado por um ou mais sub-atributos Ex.: Endereo
Func
RG nome data admisso
ISA
Motoristas
Secretrias
Engenheiros
habilitao * acidentes
* Idiomas
CREA
ISA
N
N Motoristas
Secretrias
Engenheiros
Participa
habilitao * acidentes
* Idiomas
CREA
Atributos Globais
Esto associados a uma Entidade ou a um Relacionamento. Seu valor CONSTANTE para todo o conjunto ao qual pertence.
Exemplo: numa biblioteca considere que a MULTA por dia de atraso de um exemplar seja constante.
Atributo Global
Livro
cdigo nome
multa
Atributo Global
Tipos de Arquivos
Um arquivo convencional, seja seqencial, seqencial-indexado, direto ou indexado, normalmente constitudo por um conjunto de registros lineares que no possuem informaes de relao entre si.
valor de chave identifica um conjunto de valores de atributos, e com este, forma um registro fsico.
Caracterstica do arquivo indexado A existncia de um ou mais ndices, cada um em correspondncia a um atributo do arquivo.
Acesso Sequencial
Como o nome mesmo diz, o acesso (leitura ou gravao) de um arquivo na ordem fsica de gravao dos registros. Podemos ler e/ou gravar arquivos organizados seqenciais, indexado seqencial, indexado e direto.
Modelo de Dados
Conceitos:
CHAVE
Chave Primria: atributo ou grupamento de atributos que tem a propriedade de identificar unicamente uma ocorrncia da Entidade. Outro Nome: PK
Chave Estrangeira: a Chave Primria de uma Entidade que aparece em outra em virtude de um relacionamento. Na outra entidade ela chama-se Chave Estrangeira ou FK.
Modelo de Dados
Conceitos: 1. Forma Normal: eliminao dos grupos de repetio 2. Forma Normal: no h dependncia parcial em relao Chave Primria 3. Forma Normal: os atributos que no fazem parte da chave primria devem ser independentes entre si.
Projeto de Chaves
Chave: um conjunto de um ou mais atributos que, tomados coletivamente, permite-nos identificar unicamente uma entidade no conjunto-entidade
Integridade de Entidade: Nenhum atributo que participe da chave de um conjunto-entidade deve aceitar valores nulos
Aspectos Relevantes
A questo fundamental do projeto de chaves reduzir ao mximo os efeitos de redundncia A alterao dos valores de campos constituintes da chave primria ou a remoo de uma entidade de um conjunto- entidade pode ocasionar problemas de integridade referencial
Modelo de Dados
As entidades so nomeadas e so compostas por atributos. Seus relacionamentos tambm tm nomes e podem ou no conter atributos. Para que um objeto seja uma entidade, ele precisa ser necessrio para nosso escopo, ter atributos e um identificador nico. Esse identificador que chamamos de chave.
Banco de Dados
Vamos voltar ao nosso exemplo do clube. Entidade chamada Scio Atributos nome do scio, data de associao, data de nascimento, endereo, etc.
Banco de Dados
Mas h tambm atributos que recorrem, ou seja, que aparecem, ou podem aparecer, mais de uma vez. Os dados dos dependentes se repetem nas fichas dos scios. E os Dependentes, como podemos inser-los?
Banco de Dados
1 Scio tem
Dependente
Banco de Dados
Exemplo:
N Scio participa
Atividade
Banco de Dados
que vai resultar em:
1
Scio participa N Scio / Atividade
pertence
1
Atividade
Banco de Dados
Scio
1
N Dependente
N N Atividade
1 N Pagamento
Banco de Dados
H atributos que recorrem, ou seja, que aparecem, ou podem aparecer, mais de uma vez. Os dados dos dependentes se repetem nas fichas dos scios. Sendo assim, como podemos inserir os Dependentes e os Pagamentos feitos pelos Scios ?
Banco de Dados
Vamos voltar ao nosso exemplo do clube.
Entidade Scio Atributos nome do scio, data de associao, data de nascimento, endereo, telefone, local de trabalho do Scio Entidade Dependente Atributos nome do dependente, data de nascimento, sexo, etc. Entidade Pagamentos Atributos data de pagamento, valor recebido, etc.,
Banco de Dados
Entidade Scio Key matrcula Atributos nome do scio, data de associao, data de nascimento, endereo, telefone, local de trabalho do Scio Entidade Dependente Key matricula scio + n dependente Atributos nome do dependente, SUPERCHAVE data de nascimento, sexo, etc. Entidade Pagamentos Key matricula scio + data pagamento Atributos data de pagamento, SUPERCHAVE valor recebido, etc.,
Criando um Modelo
Banco de Dados
Tipos de Banco de Dados:
-
Por modelo:
Relacional - Objeto - Relacional-objeto (ou relacional estendido) - Rede - Hierrquico - XML
-
O Modelo de Rede
Os dados so representados por colees de registros e os relacionamentos por elos.
Jos
Filgueiras Campinas
900
55
556
4.000
Joo
Laranjeiras Campinas
647
5.366
Antnio Yp
Campinas
801 10.533
O Modelo Hierrquico
Os dados e relacionamentos so representados por registros e ligaes, respectivamente. Os registros so organizados como colees arbitrrias de rvores.
Jos
Filgueiras
Campinas
Antnio Yp
Campinas
556
900 55
4.000
647
801
10.533
O Modelo Relacional
Tabela Cliente (dados) cd-cliente nome rua
015 021 037 Jos Joo Antnio Figueiras Laranjeiras Ip
cidade
Campinas Campinas So Paulo
Modelo Relacional (continuao) Tanto os dados quanto os relacionamentos so representados por tabelas. Possui fundamento matemtico slido. Prescinde de estruturas de ndice eficientes e hardware adequado para alcanar desempenho vivel em situaes prticas. 0 Banco de Dados no Nvel Conceitual (modelo ER)
rua
saldo
nome
cidade
nmero
Cliente
Possui
conta
ATRIBUTO CHAVE TIPO ENTIDADE FRACA ATRIBUTO MULTI VALORADO TIPO RELACIONAMENTO
E1
E2
E1
E2
(min, max)
E1
Modelo de Dados
programas
Bancos de dados
SGBD
Princpios Bsicos:
Atomicidade Consistncia Isolamento Durabilidade
- Redundncia Controlada
- Dados compartilhados - Concorrncia
- Reconstruo (utilitrios)
Manipulao de dados
recuperao da informao armazenada, insero de novas informaes, excluso de informaes, modificao de dados armazenados.
Mdulo de programa que fornece a interface entre os dados de baixo nvel armazenados num banco de dados e os programas aplicativos ou as solicitaes submetidas ao sistema.
Software que manipula todos os acessos ao banco de dados; proporciona a interface de usurio ao sistema de banco de dados.
interao com o sistema de arquivos do sistema operacional, cumprimento da integridade, cumprimento da segurana, cpias de segurana (backup) e recuperao, controle de concorrncia
Administrador do SGBD
definio da estrutura de armazenamento e a estratgia (ou mtodo) de acesso, concesso de autorizao para acesso a dados, definio de controles de integridade, definio de estratgias para cpia de segurana e recuperao, monitoramento do desempenho, execuo de rotinas de desempenho, modificao da organizao fsica.
programadores de aplicativos
APIs para aplicativos
usurios sofisticados
consultas
processador de consultas
compilador DDL
gerenciador de arquivos
arquivos de dados
dicionrio de dados
. Relao - tabela . Tupla - linha da tabela . Atributo - coluna da tabela . Domnio - valores possveis para um atributo . Chave primria da relao - conjunto de atributos que identificam unicamente cada linha da tabela . Grau da relao - nmero de colunas da tabela . Cardinalidade da relao - nmero de ocorrncias na relao