Post on 07-Jun-2015
Uma Visão Geral do Gerenciamento de Bancos de Dados
Claudio J. BiazusE-mail: cbiazus@inf.ufsc.br
Introdução
• Em essência, um sistema de bando de dados é apenas um sistema computacional de armazenamento de registros.
• O banco de dados pode, ele próprio, ser visto como o equivalente eletrônico de um armário de arquivamento.
• Em outras palavras, é um repositório ou recipiente para uma coleção de arquivos de dados computadorizados.
• Os usuários do sistema poderão executar diversas operações sobre tais arquivos – por exemplo:
– Acrescentar novos arquivos, vazios, ao banco de dados;– Inserir novos dados de arquivos existentes;– Buscar dados de arquivos existentes;– Alterar dados em arquivos existentes;– Eliminar dados de arquivos existentes;– Remover arquivos existentes do banco de dados.
Introdução
• A figura 1.1 mostra um banco de dados muito pequeno que contém um único arquivo chamado ADEGA;
• Esse arquivo, por sua vez, contém dados relativos ao conteúdo de uma adega de vinhos.
DEP# VINHO PRODUTOR ANO GARRAFAS PRONTO
2 Chardonnay Buena Vista 1997 1 19993 Chardonnay Geyser Peak 1997 5 19996 Chardonnay Simi 1996 4 1998
12 Joh. Riesling Jekel 1998 1 199921 Fumé Blanc Ch. St. Jean 1997 4 199922 Fumé Blanc Robt. Mondavi 1996 2 199830 Gewurztram. Ch. St. Jean 1998 3 199943 Cab.
SuavignonWindsor 1991 12 2000
Introdução
DEP# VINHO PRODUTOR ANO GARRAFAS PRONTO
45 Cab. Suavignon
Geyser Peak 1994 12 2002
48 Cab. Suavignon
Robt. Mondavi 1993 12 2004
50 Pinot Noir Gary Farrell 1996 3 199951 Pinot Noir Fetzer 1993 3 200052 Pinot Noir Dehlinger 1995 2 199858 Merlot Clos du Bois 1994 9 200064 Zinfandel Cline 1994 9 200372 Zinfandel Rafanelli 1995 2 2003
Introdução
• A figura 1.2 mostra um exemplo de operação de busca sobre esse bando de dados, juntamente com os dados retornados (devolvidos) por essa operação.
• Nota: em todo este livro, mostraremos operações de bancos de dados, nomes de arquivos e itens semelhantes em maiúsculas para maior clareza.
• Na prática, muitas vezes é mais conveniente representar esses itens em minúsculas.
• A maior parte dos sistemas aceita ambas as formas.
Introdução
Busca:SELECT VINHO, DEP#, PRODUTOR FROM ADEGA WHERE PRONTO = 2000;
Resultado (mostrado, por exemplo, na tela do monitor):
VINHO DEP# PRODUTOR
Cab. SauvignonPinot NoirMerlot
435158
WindsorFetzerClos du Bois
Figura 1.2 Exemplo de busca
Introdução
• A figura 1.3 apresenta exemplos de operações de inserção, alteração e exclusão sobre o banco de dados da adega de vinhos.
Inserção de novos dados:INSERT ADEGA ( DEP#, VINHO, PRODUTOR , ANO, GARRAFAS, PRONTO) VALUES (53, ‘Pinot Noir’, ‘Saintsbury’, 1997, 6, 2001);Alteração de dados existentes:UPDATE ADEGASET GARRAFAS = 4WHERE DEP# = 3;Exclusão de dados existentes:DELETE FROM ADEGA WHERE DEP# = 2;
Figura 1.3 Exemplo de inserção, alteração e exclusão
Introdução
Surgem algumas observações importantes desses exemplos:• 1. Por razões óbvias, arquivos computadorizados – como ADEGA na
figura1.1 – com freqüência são chamados tabelas. • 2. AS linhas de uma tabela desse tipo podem ser imaginadas como os
registros do arquivo, e as colunas podem ser vistas como os campos desses registros.
– Neste livro, empregaremos a terminologia de registros e campos quando nos referimos a sistemas de bancos de dados em geral;
– Usaremos a terminologia de linhas e colunas quando mencionarmos especificamente os sistemas relacionais.
• 3. Por questão de simplicidade, fizemos uma suposição tácita no exemplo de que as colunas VINHO e PRODUTOR contêm dados de strings (seqüências) de caracteres e todas as outras colunas contêm dados inteiros.
– Examinaremos essa questão de tipos de dados de colunas nas capítulos 3, 4 e 5.
Introdução
• 4. A coluna DEP# constitui a chave primária para a tabela ADEGA (o que significa que jamais haverá duas linhas da tabela ADEGA contendo o mesmo valor na coluna DEP#).– Com freqüência, usaremos um duplo sublinhado para indicar as
colunas da chave primária, como na figura 1.1.• 5. Os exemplos de operações ou “instruções” nas figuras 1.2 e 1.3 –
SELECT, INSERT, UPDATE, DELETE – são todos expressos em uma linguagem chamada SQL.– A SQL é a linguagem padrão para interação com banco de dados
relacionais e é reconhecida por quase todos os produtos de banco de dados existentes hoje no mercado.
– Nota: O nome “SQL” significa Structured Query Language (Linguagem de consulta estruturada).
Introdução
• 6. Observe que a SQL emprega a palavra-chave UPDATE com o significado específico de “alterar”.– Esse fato pode causar confusão, porque o termo “atualizar” (a
tradução de “update”) também é utilizado para se referir às três operações – INSERT, UPDATE e DELETE – como um grupo.
• 7. Como você provavelmente já sabe, quase todos os sistemas de banco de dados em uso hoje são de fato relacionais.
1.2 O que é um Sistema de Banco de Dados?
• É um sistema computadorizado cujo propósito geral é armazenar informações e permitir ao usuário buscar e atualizar essas informações quando solicitado.
• As informações em questão podem ser qualquer coisa que tenha significado para o indivíduo ou a organização a que o sistema deve servir.
• Ou seja, tudo o que seja necessário para auxiliar no processo geral de tomada de decisões de negócios desse indivíduo ou dessa organização.
• A figura 1.4 é uma representação simplificada de um sistema de banco de dados.
1.2 O que é um Sistema de Banco de Dados?
1.2 O que é um Sistema de Banco de Dados?
• A figura pretende mostrar que um sistema de bando de dados envolve quatro componentes principais:– Dados;– Hardware;– Software;– Usuários.
1.2 O que é um Sistema de Banco de Dados?
DADOS• Os sistemas de bancos de dados estão disponíveis em máquinas que vão
desde micros bem pequenos (PCs portáteis) até os maiores computadores de grande porte.
• Em particular, sistemas em grandes equipamentos (“sistemas grandes”) tendem a ser multiusuários, ao passo que os sistemas de máquinas menores (“sistemas pequenos”) tendem a ser de usuário único (monousuário).
• Um sistema monousuário é um sistema em que no máximo um usuário pode ter acesso ao banco de dados em qualquer instante determinado.
• Um sistema multiusuário é um sistema em que muitos usuários podem obter acesso ao banco de dados ao mesmo tempo.
1.2 O que é um Sistema de Banco de Dados?
DADOS• De modo geral, os dados do banco de dados – pelo menos em um sistema
grande – estarão não apenas integrados, mas compartilhados.• Eles representam uma grande vantagem dos sistemas de banco de dados em
ambientes “grandes”.• A integração de dados, também pode ser significativa em ambientes
“pequenos”.• Primeiro, vamos explicar o que entendemos pelos termos integrado e
compartilhado: • Por integrado queremos dizer que o banco de dados pode ser imaginado
como uma unificação de vários arquivos de dados que de outro modo seriam distintos, sendo eliminada pelo menos em parte qualquer redundância entre esses arquivos.
1.2 O que é um Sistema de Banco de Dados?
DADOS• Por exemplo, um determinado banco de dados poderia conter tanto
um arquivo EMPREGADO, que fornece nomes, endereços, departamentos, salários e outros itens sobre os empregados de uma empresa.
• Quando um arquivo MATRÍCULA representando a participação dos empregados em cursos de treinamento (figura 1.5).
EMPREGADO
MATRÍCULA NOME
NOME
CURSO
ENDEREÇO DEPARTAMENTO
...
... SALÁRIO
Figura 1.5 Os arquivos EMPREGADO e MATRÍCULA
1.2 O que é um Sistema de Banco de Dados?
DADOS• Agora suponha que seja necessário saber em que departamento
trabalha cada aluno matriculado?• Então, é claro que não há necessidade de incluir tal informação
redundante no arquivo MATRÍCULA, pois sempre poderá ser obtida no arquivo EMPREGADO.
1.2 O que é um Sistema de Banco de Dados?
DADOS• Por compartilhado, queremos dizer que porções isoladas de dados do
banco de dados podem ser compartilhadas entre diferentes usuários.• No sentido de que cada um desses usuários pode ter acesso à mesma porção
dos dados, possivelmente para finalidades distintas.• Diferentes usuários podem até estar conseguindo acesso à mesma parte dos
dados no mesmo momento (“acesso concorrente”).• Tal compartilhamento (concorrente ou não) é em parte conseqüência do
fato de que o banco de dados é integrado.• No exemplo citado anteriormente, a informação sobre o departamento no
arquivo EMPREGADO seria compartilhada tipicamente pelo usuários do Departamento de Pessoal e pelos usuários do Departamento de Educação.
• Em outras palavras, um determinado banco de dados será percebido por diferentes usuários de diversos modos.
1.2 O que é um Sistema de Banco de Dados?
HARDWARE• Os componentes de hardware do sistema consistem em:
– Volumes de armazenamento secundário – principalmente discos magnéticos – usados para guardar os dados armazenados;
– Juntamente com os dispositivos de E/S;– Controladores de dispositivos, e;– Canais de E/S.– Processador(es) de hardware e memória principal associada,
usados para fornecer suporte à execução do software do sistema de banco de dados.
1.2 O que é um Sistema de Banco de Dados?
SOFTWARE• Entre o banco de dados físico – isto é, os dados de fato armazenados
– e os usuários do sistema há uma camada de software, conhecida como o gerenciador do banco de dados ou servidor de banco de dados ou ainda, com maior freqüência, sistema de gerenciamento de banco de dados (SGBD).
• Todas as solicitações de acesso ao banco de dados são tratadas pelo SGBD.
• Para acrescentar e remover arquivos (ou tabelas), buscar e atualizar dados em tais arquivos ou tabelas, e assim por diante, são todos recursos fornecidos pelo SGBD.
• Uma função geral fornecida pelo SGBD é portanto de isolar os usuários do banco de dados dos detalhes do nível de hardware.
1.2 O que é um Sistema de Banco de Dados?
SOFTWARE• O SGBD é de longe o componente de software mais importante de
todo o sistema, mas não é o único.• Outros componentes incluem utilitários, ferramentas para
desenvolvimento de aplicações, auxílio em projetos, geradores de relatórios e gerenciadores de transações ou monitor de processamento de transações.
• O termo SGBD também costuma se referir genericamente a algum produto particular de algum fornecedor particular – por exemplo, o produto da IBM “BD2 Universal Database” para OS/390.
1.2 O que é um Sistema de Banco de Dados?
USUÁRIOS• Consideramos três classes de usuários:
– Primeiro, há dos programadores de aplicações, repensáveis pela elaboração de programas aplicativos de banco de dados, em uma linguagem como COBOL, PL/I, C++, Java ou uma outra linguagem de alto nível de “quarta geração”.
– Os programadores obtêm acesso ao banco de dados emitindo a solicitação apropriada – em geral, uma instrução de SQL – ao SGBD.
– Os programadores propriamente ditos podem ser aplicações convencionais batch ou aplicações on-line, cuja finalidade é permitir que um usuário final tenha acesso ao banco de dados a partir de uma estação de trabalho ou um terminal on-line.
1.2 O que é um Sistema de Banco de Dados?
USUÁRIOS– A segunda de usuários é, então, a dos usuários finais, que
interagem com o sistema a partir de terminais ou estações de trabalho on-line.
– Um determinado usuário final pode obter acesso ao banco de dados por meio de uma das aplicações on-line mencionadas no parágrafo anterior, ou pode usar uma interface fornecida como parte integrante do software do sistema de banco de dados.
– A maioria dos sistemas de banco de dados inclui pelo menor uma aplicação interna, em geral um processador de linguagem de consulta, por meio do qual o usuário pode emitir solicitações ao banco de dados, tais como os comandos interativos para SELECT e INSERT para o SGBD.
1.2 O que é um Sistema de Banco de Dados?
USUÁRIOS– A terceira classe de usuários é a classe do administrador de
banco de dados, ou DBA (database administrator) .– A descrição da função do DBA e da função associada de
administrador de dados será adiada para a seção 1.4.
1.3 O que é um Banco de Dados?
Dados Persistentes• Por persistente queremos sugerir intuitivamente que os dados desse
banco de dados diferem em espécie de outros dados mais efêmeros, como:– dados de entrada;– de saída;– instruções de controle;– filas de trabalho;– blocos de controle de software;– resultados intermediários e;– em geral, quaisquer dados que tenham natureza transiente.
1.3 O que é um Banco de Dados?
Dados Persistentes• De modo mais preciso, dizemos que os dados do banco de dados
“persistem” porque, uma vez aceitos pelo SGBD para entrada inicial no banco de dados, eles só podem ser removidos subsequentemente do banco de dados por alguma solicitação explícita ao SGBD.– Um banco de dados é uma coleção de dados persistentes
utilizada pelos sistemas de aplicação de uma determinada empresa.
1.3 O que é um Banco de Dados?
Dados Persistentes• O termo “empresa” é apenas um termo genérico conveniente para
qualquer organização comercial, científica, técnica ou outra organização razoavelmente autônoma.
• Alguns exemplos:– Uma fábrica;– Um banco;– Um hospital;– Uma universidade;– Um departamento governamental.
1.3 O que é um Banco de Dados?
Dados Persistentes• Uma empresa deve necessariamente manter uma grande quantidade
de dados sobre sua operação.• As empresas que acabamos de mencionar incluiriam tipicamente os
seguintes itens entre seus dados persistentes:– Dados sobre o produto;– Dados sobre contas;– Dados sobre pacientes;– Dados sobre alunos;– Dados sobre planejamento.
1.3 O que é um Banco de Dados?
Entidades e Relacionamentos• Consideremos agora o exemplo de uma fábrica (“Know Were Inc.”)
mais detalhadamente.• Uma empresa desejará registrar informações sobre:
– Os projetos em andamento;– As peças usadas nesses projetos;– Os fornecedores que fornecem essas peças;– Os depósitos nos quais essas peças estão armazenadas;– Os empregados que trabalham nesses projetos;– E assim, por diante.
1.3 O que é um Banco de Dados?
Entidades e Relacionamentos• Projetos, peças, fornecedores etc., constituem assim as entidades
básicas sobre as quais a Know Were Inc. precisa registrar informações.
• O termo “entidade” é usado comumente no meio de bancos de dados para indicar qualquer objeto distinguível que deva ser representado na banco de dados.
• Além das entidades básicas propriamente ditas (fornecedores, peças e assim por diante), também haverá relacionamentos ligando essas entidades básicas entre si.
• Tais relacionamentos são representados por losangos e linhas de conexão conforme figura 1.6.
1.3 O que é um Banco de Dados?
Entidades e RelacionamentosFornecedor
Locais
Depósitos Peças
Departamentos
Empregados
Projetos
LD
ALPP
AE
ED
FL AP
FP
FJ
FPJ GLEJPJ
Figura 1.6 Diagrama de entidade e relacionamentos (E/R) para a Know Ware Inc.
1.3 O que é um Banco de Dados?
Entidades e Relacionamentos• Por exemplo, há um relacionamento (“FP”) entre fornecedores e
peças.• Cada fornecedor fornece certas peças e, inversamente, cada peça é
fornecida por certos fornecedores.• De modo semelhante, peças são usadas em projetos e, de forma
recíproca, projetos usam peças (relacionamento PJ).• Peças são armazenadas em depósitos, e depósitos armazenam peças
(relacionamento AP).• Observe que esses relacionamentos são todos bidirecionais – isto é
eles podem ser percorridos em qualquer sentido.
1.3 O que é um Banco de Dados?
Entidades e Relacionamentos• Por exemplo, o relacionamento FP entre fornecedor e peças pode ser
usado para responder às duas questões seguintes:– Dado um fornecedor, obter as peças fornecidas por esse
fornecedor;– Dada uma peça, obter os fornecedores que fornecem essa peça.
• O ponto significativo sobre esse relacionamento é que eles fazem parte dos dados tanto quanto as entidades básicas.
• Portanto, eles devem ser representados no banco de dados exatamente como as entidades básicas.
1.3 O que é um Banco de Dados?
Entidades e Relacionamentos• Notamos de passagem que a figura 1.6 é um exemplo daquilo que se
chama um diagrama de entidade e relacionamento.• A figura 1.6 também ilustra vários outros pontos importantes:
1. Embora a maior parte dos relacionamento nessa figura envolva dois tipos de entidades (relacionamentos binários) – de modo algum se pode dizer que todos os relacionamentos devem necessariamente ser binários.
1.3 O que é um Banco de Dados?
Entidades e Relacionamentos– No exemplo há um relacionamento (“FPJ”) envolvendo três
tipos de entidades (fornecedores, peças e projetos): um relacionamento ternário.
– A interpretação pretendida é a que certos fornecedores fornecem certas peças para certos projetos.
– Observe cuidadosamente que esse relacionamento ternário (“fornecedores fornecem peças a projetos”) não é equivalente, em geral, à combinação dos três relacionamentos binários “fornecedores fornecem peças”, “peças são usadas em projetos” e “projetos são fornecidos por fornecedores”.
1.3 O que é um Banco de Dados?
Entidades e Relacionamentos2. A figura também mostra um relacionamento (PP) envolvendo
apenas um tipo de entidade (peças).– Nesse caso, o relacionamento é que certas peças incluem outras
peças como componentes imediatos.– Por exemplo, um parafuso é um componente de uma dobradiça,
que também é considerada uma peça e pode, por sua vez, ser um componente de alguma peça de nível mais alto como uma tampa.
– Observe que esse relacionamento ainda é binário; ocorre apenas entre os dois tipos de entidades ligados entre si, peças e peças.
1.3 O que é um Banco de Dados?
Entidades e Relacionamentos3. Em geral, um dado conjunto de tipos de entidades poderia estar
interligado em qualquer número de relacionamento distintos.– No exemplo da figura 1.6, há dois relacionamentos distintos
envolvendo projetos e empregados;– Um deles (EJ) representa o fato de que os empregados são
designados para projetos, e– O outro (GJ) representa o fato de que empregados gerenciam
projetos.
1.3 O que é um Banco de Dados?
Propriedades• Conforme indicamos, uma entidade é qualquer objeto sobre o qual
desejamos registrar informações.• Em outras palavras, as entidades – incluídos os relacionamentos –
podem ser consideradas como tendo propriedades, correspondentes às informações que desejamos registrar sobre elas.
• Por exemplo:– Fornecedores têm locais;– Peças têm pesos;– Projetos têm propriedades;– Atributos têm datas iniciais;– E assim por diante ...
1.3 O que é um Banco de Dados?
Dados e modelos de dados• Uma razão pela qual os sistemas de banco de dados relacionais se
tornaram tão dominantes – tanto no meio industrial quanto no mundo acadêmico, é que eles admitem a interpretação precedente de dados e bancos de dados de forma muito direta.
• Sistemas relacionais se baseiam em uma teoria formal chamada modelo relacional de dados, de acordo com o qual: – Os dados são representados por meio de linhas em tabelas, e
essas linhas podem ser interpretadas diretamente como proposições verdadeiras;
– São fornecidos operadores para operações sobre linhas em tabelas, e esses operadores admitem de forma direta o processo de proposições verdadeiras adicionais a partir das proposições dadas.
1.3 O que é um Banco de Dados?
Dados e modelos de dados• Um modelo de dados é uma definição abstrata, autônoma e lógica
dos objetos, operadores e outros elementos que, juntos constituem a máquina abstrata com a qual os usuários interagem.
• Os objetos nos permitem modelar a estrutura de dados.• Os operadores nos permitem modelar seu comportamento.
1.3 O que é um Banco de Dados?
Dados e modelos de dados• Podemos então distinguir de modo útil o modelo de sua
implementação:– Uma implementação de um determinado modelo de dados é
uma representação física sobre uma máquina real dos componentes da máquina abstrata que juntos constituem esse modelo.
• Em resumo: o modelo é aquilo que os usuários têm de conhecer; • a implementação é aquilo que os usuários não precisam conhecer.
***
1.4 Por que Banco de Dados?
• Por que usar um sistema de banco de dados?• Quais são as vantagens?• Até certo ponto, a resposta a essas questões depende do sistema em
questão ser um sistema monousuário ou multiusuário.• As vantagens de um sistema de banco de dados sobre os métodos
tradicionais baseados em papel para manutenção de registros talvez sejam mais fáceis de observar nesses casos.
1.4 Por que Banco de Dados?
• Aqui estão algumas delas:– Densidade: não há necessidade de arquivos de papel,
possivelmente volumosos.– Velocidade: a máquina pode obter e atualizar dados com rapidez
muito maior que o ser humano.– Menor trabalho monótono: grande parte do tédio de manter
arquivos à mão é eliminada.– Atualidade: informações precisas e atualizadas estão disponíveis
a qualquer momento sob consulta.
1.4 Por que Banco de Dados?
• As vantagens anteriores se aplicam com intensidade ainda maior a um ambiente multiusuário, no qual o bando de dados provavelmente será muito maior e mais complexo que no caso do ambiente de usuário único.
• Porém, há uma vantagem adicional predominante em tal ambiente:– O sistema de banco de dados proporciona à empresa o controle
centralizado de seus dados.
1.4 Por que Banco de Dados?
Administração de dados e administração de banco de dados• O controle centralizado implica que haverá na empresa alguma
pessoa que tenha a responsabilidade central pelos dados.• Esta pessoa é o administrador de dados.• Assim, é trabalho do administrador de dados decidir, para começar,
que dados devem ser armazenados no banco de dados, e também estabelecer normas para manter e tratar esses dados, uma vez que eles tenham sido armazenados.
• Exemplo: Quem executa o que!
• Observe cuidadosamente que o administrador de dados é um gerente, e não técnico (embora ele precisa ter algum conhecimento dos recursos de sistemas de banco de dados em um nível técnico).
1.4 Por que Banco de Dados?
Administração de dados e administração de banco de dados• O técnico responsável pela implementação das decisões do
administrador de dados é o administrador de banco de dados – DBA.
• O DBA, diferente do administrador de dados, e portanto um profissional de tecnologia da informação (IT).
• O trabalho do DBA é criar o banco de dados propriamente dito e implementar os controles técnicos necessários para pôr em prática as várias decisões sobre normas tomadas pelo administrador de dados.
• O DBA também é responsável por assegurar que o sistema operará com desempenho adequado e por oferecer uma ampla variedade de outros serviços técnicos.
• Em geral, o DBA terá uma equipe de programadores de sistemas.
1.4 Por que Banco de Dados?
Vantagens da abordagem de banco de dados• Os dados podem ser compartilhados
– O compartilhamento significa não apenas que as aplicações existentes podem compartilhar os dados do banco de dados, mas também que podem ser desenvolvidas novas aplicações para operar sobre os mesmos dados.
1.4 Por que Banco de Dados?
Vantagens da abordagem de banco de dados• A redundância pode ser reduzida
– Em sistemas sem banco de dados, cada aplicação tem seus próprios arquivos particulares.
– Esse fato pode com freqüência levar a uma considerável redundância nos dados armazenados, com desperdício resultante de armazenamento.
– Por exemplo, uma aplicação de pessoal e uma aplicação de registros de educação poderiam ambas ter a posse de um arquivo que incluísse informações departamentais relativas a empregados.
– A propósito, não queremos sugerir que toda redundância possa ou deve necessariamente ser eliminada.
– Porém, queremos sugerir que toda redundância deve ser cuidadosamente controlada.
1.4 Por que Banco de Dados?
Vantagens da abordagem de banco de dados• A inconsistência pode ser evitada (até certo ponto)
– Exemplo: o fato de que o empregado E3 trabalha no departamento D8 – e é apresentado por duas entradas diferentes no banco de dados.
– Vamos supor também que o SGBD não saiba dessa duplicação (redundância).
– Então, haverá necessariamente ocasiões em que as duas entradas não concordarão: isto é, quando uma das duas tiver sido atualizada e a outra não.
– Em tais ocasiões, diz-se que o banco de dados está inconsistente (ou incoerente).
1.4 Por que Banco de Dados?
Vantagens da abordagem de banco de dados• O suporte a transações pode ser fornecido
– Uma transação é uma unidade lógica de trabalho, em geral envolvendo diversas operações de banco de dados.
– O exemplo, padrão envolve a transferência de um quantidade de dinheiro de uma conta A para outra conta B.
– É necessário duas atualizações, uma para retirar o dinheiro da conta A, e outra para depositá-lo na conta B.
– Se o usuário declarar que as duas atualizações são parte da mesma transação, então o sistema poderá efetivamente garantir que ambas serão realizadas ou nenhuma delas.
1.4 Por que Banco de Dados?
Vantagens da abordagem de banco de dados• A integridade pode ser mantida
– O problema da integridade é o problema de assegurar que os dados no banco de dados estão corretos.
– A inconsistência entre duas entradas que deveriam representar o mesmo “fato” é um exemplo de falta de integridade.
– O controle centralizado do B.D. pode ajudar a evitar tais problemas – permitindo ao administrador de dados definir, e ao DBA implementar, restrições de integridade e serem verificadas sempre que for executada alguma operação de atualização.
1.4 Por que Banco de Dados?
Vantagens da abordagem de banco de dados• A segurança pode ser reforçada
– O DBA pode assegurar que o único meio de acesso ao banco de dados seja através de canais apropriados e, em conseqüência, pode definir restrições de segurança ou regras a serem verificadas sempre que houver uma tentativa de acesso a dados confidenciais.
– Podem ser estabelecidas diferentes restrições para cada tipo de acesso (recuperação, inserção, exclusão, etc.).
1.4 Por que Banco de Dados?
Vantagens da abordagem de banco de dados• Requisitos contraditórios podem ser equilibrados
– Conhecendo os requisitos globais da empresa, o DBA – sob a orientação do administrador de dados – pode estruturar o sistema de modo a oferecer um serviço global que seja “o melhor para a empresa”.
– Por exemplo, pode ser escolhida uma organização física para os dados que proporcione acesso rápido par as aplicações mais importantes.
1.4 Por que Banco de Dados?
Vantagens da abordagem de banco de dados• Os padrões podem ser reforçados
– Com o controle central do banco de dados, o DBA pode garantir que todos os padrões aplicáveis serão observados na representação dos dados.
– Os padrões aplicáveis podem incluir qualquer um ou todos os seguintes:
• Padrões departamentais;• Da instalação;• Da empresa;• Nacionais e;• Internacionais.
1.5 Independência de Dados?
• Existem dois tipos de independência de dados:– Física;– Lógica.
• A independência de dados pode ser definida como a imunidade das aplicações a alterações na representação física e na técnica de acesso.
• Vejamos alguns exemplos de tipos de alterações que o DBA pode desejar efetuar.– Começamos por definir três termos: campo armazenamento, registro
armazenamento e arquivo armazenamento.
1.5 Independência de Dados?
P2 Pino Verde 17
P1 Porca Verm. 12
Ocorrência de campos armazenados
Num. da peça
nome pesocor
pesocornomeNum. da peça
Duas ocorrências doregistro “peça”
Banco de dados armazenado
Outros arquivos armazenado
1.5 Independência de Dados?
• Representação de dados numéricos– Um campo numérico poderia ser armazenado por exemplo: binário ou
decimal.– Escala (fixa ou ponto flutuante);– Modo (real ou complexo);– Precisão (número de dígitos).
1.5 Independência de Dados?
• Representação de dados caracteres– Um campo da cadeia caracteres poderia ser armazenado por
exemplo:– ASCII;– EBCDIC.
1.5 Independência de Dados?
• Unidades de dados numéricos– As unidades em um campo podem mudar por exemplo:– Polegadas para centímetros – durante um processo de conversão
para o sistema métrico.
1.5 Independência de Dados?
• Codificação de dados numéricos– Poderia ser desejável representar dados armazenados por valores
codificados por exemplo:– 1 – “Vermelho”;– 2 – “Azul”.
Exercícios
• 1. Mostre os efeitos das seguintes operações de busca em SQL sobre o banco de dados da adega de vinhos da figura 1.1:
– A) SELECT VINHO, PRODUTOR FROM ADEGA WHERE DEP# = 72;– B) SELECT VINHO, PRODUTOR FROM ADEGA WHERE ANO > 1996;– C) SELECT DEP#, VINHO, ANO FROM ADEGA WHERE PRONTO <
1999;– D) SELECT VINHO, DEP# ANO FROM ADEGA WHERE PRODUTOR =
`Robt. Mondavi’ AND GARRAFAS > 6;
Exercícios
• 2. Mostre os efeitos das seguintes operações de atualizações em SQL sobre o bando de dados da adega de vinhos.
– A) INTO ADEGA (DEP#, VINHO, PRODUTOR, ANO, GARRAFAS, PRONTO) VALUES (80, ‘Syrah’, ‘Meridian’, 1994, 12, 1999 );
– B) DELETE FROM ADEGA WHERE PRONTO > 2000;– C) UPDATE ADEGA SET GARRAFAS = 5 WHERE DEP# = 50;– D) UPDADE ADEGA SET GARRAFAS = GARRAFAS + 2 WHERE DEP# =
50;
Exercícios
• 3. Escreve instruções SQL para executar as seguintes operações sobre o banco de dados da adega de vinhos:
– A) Obter o número do depósito, o nome do vinho e o número de garrafas para todos os vinhos da Geyser Peak.
– B) Obter o número do depósito, o nome do vinho correspondentes a todos os vinhos para os quais existem mais de cinco garrafas em estoque.
– C) Obter o número do depósito para todos os vinhos iguais Merlot.– D) Acrescentar três garrafas ao depósito de número 30.– E) Remover todos os vinhos Chardonnay do estoque.– F) Acrescentar uma entrada para uma nova caixa (doze garrafas) de Gary Farrel
Merlot: depósito número 55, ano 1996, pronto em 2001.