Apostila de Banco de Dados
Apostila de Banco de Dados
Apostila de Banco de Dados
Por exemplo, considere a coleção de palavras deste texto como sendo dados relacionados e, portanto, constitui um
banco de dados. Entretanto, o uso comum do termo ‘banco de dados’ é usualmente mais restrito
O conceito de banco de dados esta muito presente em nosso dia-a-dia e faz parte de nossa vida. Banco de dados
(BD) desempenha um papel crítico em muitas áreas onde computadores são utilizados
O BD está presente em muitas áreas diferentes (negócios, engenharia, educação, medicina, etc). Um arranjo
aleatório de dados não pode ser considerado um banco de dados
Segundo Korth (Autor de livros de BD), um banco de dados “é uma coleção de dados inter-relacionados,
representando informações sobre um domínio específico”, ou seja, sempre que for possível agrupar informações que
se relacionam e tratam de um mesmo assunto, posso dizer que tenho um banco de dados.
Podemos exemplificar situações clássicas como uma lista telefônica, um catálogo de CDs ou um sistema de controle
de RH de uma empresa.
Já um sistema de gerenciamento de banco de dados (SGBD) é um software que possui recursos capazes de
manipular as informações do banco de dados e interagir com o usuário. Exemplos de SGBDs são: Oracle, SQL Server,
DB2, PostgreSQL, MySQL, o próprio Access ou Paradox, entre outros.
Por último, temos que conceituar um sistema de banco de dados como o conjunto de quatro componentes básicos:
dados, hardware, software e usuários. Date (Autor de Livros de BD) conceituou que “sistema de bancos de dados
pode ser considerado como uma sala de arquivos eletrônica”. A Figura 1 ilustra os componentes de um sistema de
banco de dados.
Os objetivos de um sistema de banco de dados são o de isolar o usuário dos detalhes internos do banco de dados
(promover a abstração de dados) e promover a independência dos dados em relação às aplicações, ou seja, tornar
independente da aplicação, a estratégia de acesso e a forma de armazenamento.
EEEP Amélia Figueiredo de Lavor Fund. de Banco de Dados Professor: Arley Rodrigues 2
O sistema de banco de dados deve garantir uma visão totalmente abstrata do banco de dados para o usuário, ou
seja, para o usuário do banco de dados pouco importa qual unidade de armazenamento está sendo usada para
guardar seus dados, contanto que os mesmos estejam disponíveis no momento necessário.
• Nível de visão do usuário: as partes do banco de dados que o usuário tem acesso de acordo com a
necessidade individual de cada usuário ou grupo de usuários;
• Nível conceitual: define quais os dados que estão armazenados e qual o relacionamento entre eles;
• Nível físico: é o nível mais baixo de abstração, em que define efetivamente de que maneira os dados estão
armazenados.
Todo bom sistema de banco de dados deve apresentar um projeto, que visa a organização das informações e
utilização de técnicas para que o futuro sistema obtenha boa performance e também facilite infinitamente as
manutenções que venham a acontecer.
• Modelagem conceitual;
• Projeto lógico.
Estas duas etapas se referem a um sistema de banco de dados ainda não implementado, ou seja, que ainda não
exista, um novo projeto. Para os casos em que o banco de dados já exista, mas é um sistema legado, por exemplo, ou
um sistema muito antigo sem documentação, o processo de projeto de banco de dados se dará através da utilização
de uma técnica chamada de Engenharia Reversa, que será visto em outra oportunidade.
É a descrição do BD de maneira independente ao SGBD, ou seja, define quais os dados que aparecerão no BD, mas
sem se importar com a implementação que se dará ao BD. Desta forma, há uma abstração em nível de SGBD.
Uma das técnicas mais utilizadas dentre os profissionais da área é a abordagem entidade-relacionamento (ER), onde
o modelo é representado graficamente através do diagrama entidade-relacionamento (DER) (Figura 3).
EEEP Amélia Figueiredo de Lavor Fund. de Banco de Dados Professor: Arley Rodrigues 3
O modelo acima, entre outras coisas, nos traz informações sobre Alunos e Turmas. Para cada Aluno, será
armazenado seu número de matrícula, seu nome e endereço, enquanto para cada turma, teremos a informação de
seu código, a sala utilizada e o período.
Descreve o BD no nível do SGBD, ou seja, depende do tipo particular de SGBD que será usado. Não podemos
confundir com o Software que será usado. O tipo de SGBD que o modelo lógico trata é se o mesmo é relacional,
orientado a objetos, hierárquico, etc.
Abordaremos o SGBD relacional, por serem os mais difundidos. Nele, os dados são organizados em tabelas (Quadro
1).
Aluno
mat_aluno nome endereco
1 Cecília Ortiz Rezende Rua dos Ipês, 37
2 Abílio José Dias Avenida Presidente Jânio Quadros, 357
3 Renata Oliveira Franco Rua Nove de Julho, 45
Turma
cod_turma sala periodo
1 8 Manhã
2 5 Noite
O modelo lógico do BD relacional deve definir quais as tabelas e o nome das colunas que compõem estas tabelas.
Para o nosso exemplo, poderíamos definir nosso modelo lógico conforme o seguinte:
É importante salientar que os detalhes internos de armazenamento, por exemplo, não são descritos no modelo
lógico, pois estas informações fazem parte do modelo físico, que nada mais é que a tradução do modelo lógico para a
linguagem do software escolhido para implementar o sistema.
EEEP Amélia Figueiredo de Lavor Fund. de Banco de Dados Professor: Arley Rodrigues 4
O grande objetivo de um sistema de BD é oferecer uma visão “abstrata” dos dados aos usuários. Os detalhes
referentes a forma como estes dados estão armazenados e mantidos não interessa aos usuários, mas a
disponibilidade eficiente destes dados é que são fundamentais
O conceito de abstração está associado à característica de se observar somente os aspectos de interesse, sem se
preocupar com maiores detalhes envolvidos.
No contexto de abstração de dados um banco de dados pode ser visto sem se considerar a forma como os dados
estão armazenados fisicamente.
Exemplo:
Um programador de aplicação não precisa se importar com aspectos físicos de armazenamento dos dados
Carlos 30756687 43
Paula 57321489 20
EEEP Amélia Figueiredo de Lavor Fund. de Banco de Dados Professor: Arley Rodrigues 5
• Ele possui um grupo de usuários e algumas aplicações pré-concebidas, as quais esses usuários estão
interessados
Um banco de dados representa algum aspecto do mundo real e a alteração neste mundo real tem que ser refletida
no banco de dados.
Em um grande banco de dados com muitos (ou milhões) de usuários e com restrições de acesso podem-se identificar
alguns perfis de pessoas que interagem com o banco de dados
• Analista de Sistemas
• Programador de Aplicações
• Usuário (final)
É o supervisor do banco de dados, responsável pela autorização de acesso ao banco, monitoramento e coordenação
do uso. Está envolvido com os aspectos físicos do banco de dados (estruturas de armazenamento, métodos de
acesso, etc).
Projetista do Banco
São responsáveis pela identificação dos dados e a elaboração de estruturas apropriadas para armazená-los.
Compreender os requisitos necessários aos grupos de usuários do banco de dados antes de sua implementação.
Analista de Sistemas
Determina os requisitos dos usuários e desenvolvem especificações que atendam estes requisitos.
Programadores
Usuário (final)
Um banco de dados existe para a utilização do usuário final, onde normalmente o seu trabalho requer consultas e
atualizações. A maioria dos usuários utiliza programas voltados ao desempenho profissional, utilizando-os em seu
dia-a-dia.
• O catálogo do sistema (metadados) contém definições da estrutura de cada arquivo, o tipo e formato de
armazenamento de cada item de dados, e várias restrições dos dados
• Este catálogo é usado pelo SGBD e ocasionalmente por algum usuário do BD (não é específico, mas geral,
atendendo as diversas necessidades de arquivos diferentes)
– Duplicação de esforços
• Compartilhamento de Dados
• Facilidade na definição da visão do usuário, especificando uma porção do BD que tem interesse particular de
um grupo de usuários
• Restrição de acesso não autorizado: Possui um sistema de segurança garantindo o acesso específico a cada
usuário (personalizado para grupos ou individual), garantindo assim segurança no acesso ao BD, diferentes
permissões de operação no BD, proteção de contas pessoais (ou grupo) por senhas, segurança no uso do
próprio SGBD como nas criações de novas contas
• Fornecimento de múltiplas interfaces (visões): Diversos níveis de conhecimento entre os usuários, onde o BD
deve oferecer vários tipos de acesso aos dados
• Forçar restrições de integridade: armazenamento de vários tipos de dados (inteiro, real, lógico),
relacionamentos entre os dados, obrigatoriedade ou não de informação do dado (nulo ou não nulo),
unicidade do dado (chave primária), dificultar a ocorrência de erros,
• Facilidade e controle do BD no caso de falha do hardware ou do software chegando a fazer uma recuperação
da situação anteriormente encontrada, evitando duplicidade e dados inconsistentes
• Tempo de desenvolvimento reduzido – projetar e implementar uma nova aplicação é mais rápido em um BD
existente do que se ele não existisse ou fosse feito sobre a abordagem tradicional de arquivos
• Disponibilidade de informação atualizada – torna o BD disponível para todos os usuários (que tenham
permissão de acesso) devido ao controle de concorrência e recuperação do SGBD
• Encapsulamento (abstração) no acesso aos dados – o usuário não tem necessidade de saber como os dados
são armazenados, isto é função do DBA (Administrador do Banco de Dados)
• Modelo de dados conceitual ou de auto-nível - fornece conceitos que são próximos da percepção dos
usuários a respeito dos dados (logicamente)
• Modelo de dados de implementação - Utilizado em SGBDs comerciais, sendo o mais popular denominado
Modelo Relacional (MR)
Exemplo:
EEEP Amélia Figueiredo de Lavor Fund. de Banco de Dados Professor: Arley Rodrigues 9
SISTEMAS ISOLADOS
Problema:
redundância de dados
Compartilhamento de dados
3.1.1 Definição
Consiste em mapear o mundo real do sistema em um modelo gráfico que irá representar o modelo e o
relacionamento existente entre os dados.
O MER é um modelo de dados conceitual de alto-nível, ou seja, seus conceitos foram projetados para serem
compreensíveis a usuários, descartando detalhes de como os dados são armazenados. Atualmente, o MER é usado
principalmente durante o processo de projeto da base de dados. Existem expectativas para que uma classe de
SGBD’s baseados diretamente no MER esteja disponível no futuro.
3.1.2 Entidade
Identifica o objeto de interesse do sistema e tem "vida" própria, ou seja, a representação abstrata de um objeto do
mundo real sobre o qual desejamos guardar informações. Uma Entidade é algo da realidade sendo modelada e deve
ser identificada de modo único.
- Operações do sistema;
- Saídas do sistema;
- Cargos de direção
3.1.4 Atributo
Informações que desejamos guardar sobre a instância de entidade. Exemplo: Nome do aluno, Número da turma,
Endereço do fornecedor, Sexo do funcionário, etc.
Exemplo:
- Entidade
- Relacionamento
- Atributo
Relacionamento - Representa a associação entre os elementos do conjunto de um entidade com outra entidade ou
com a mesma entidade (auto-relacionamento).
Exemplo:
- Banco de Dados - Elemento do conjunto de valores do atributo Nome da disciplina da entidade Disciplina;
ALUNO
DISCIPLINA
MATRICULAD
- casado - Ligação entre um homem e uma mulher, sendo que um homem pode ser casado com uma e
apenas uma mulher, assim como uma mulher pode ser casada com um e apenas um homem.
HOMEM 1 1 MULHER
CASAMENTO
EMPREGADOS N 1 DEPARTAMENTO
LOTAÇÃO
3.3.5 Relacionamento N : M
O Antônio está matriculado na disciplina Banco de Dados, onde:
- Banco de Dados - Elemento do conjunto de valores do atributo Nome da Disciplina da entidade Disciplina.
- matriculado - Ligação existente entre um aluno e uma disciplina, onde um aluno pode estar matriculado em
várias disciplinas e cada disciplina pode ter vários alunos matriculados.
ALUNOS N M DISCIPLINA
MATRICULA
EEEP Amélia Figueiredo de Lavor Fund. de Banco de Dados Professor: Arley Rodrigues 12
3.4 ATRIBUTOS
O Atributo descreve uma determinada característica relevante da entidade em uma dada abstração. Por exemplo, os
atributos de um cliente para uma aplicação financeira seriam nome, cpf, data de nascimento e rendimento mensal,
etc. Já um cliente para uma aplicação médica seria descrito pelos atributos nome, tipo sanguíneo, fator RH,
sensibilidades a medicamento, etc. Todas as entidades do mesmo tipo possuem os mesmos atributos, mas com
valores distintos. Atributos e valores descrevem as instâncias de uma entidade. O conjunto de valores possíveis para
um atributo é chamado domínio. O domínio do número do empréstimo, por exemplo, seria todo o conjunto de
números inteiros positivos
Composto
Pode ser referenciado hora no todo, hora na parte.
Ex.: Endereço, composto por rua, numero, cidade, cep
Nome, composto por prenome e sobrenome
Mono-valorado
Para toda instância um atributo possui um conjunto unitário de valores
Ex.: O número do empréstimo de uma entidade específica refere-se apenas a um número de empréstimo
Multivalorado
Pode existir instâncias em que um atributo possua um conjunto de valores para uma única entidade
Por exemplo, o atributo nome_dependente da entidade empregado pode possuir nenhum nome, um nome ou mais
Nulo
O valor é não-aplicável ou desconhecido
Por exemplo, um atributo data_desligamento de uma entidade paciente
Derivado
Pode ser obtido de outros atributos
Ex.: Um atributo número_empréstimos, representando os empréstimos tomados por um cliente pode ser obtido
pela contagem das entidades empréstimo associadas a esse cliente
EEEP Amélia Figueiredo de Lavor Fund. de Banco de Dados Professor: Arley Rodrigues 13
FUNCIONÁRIO N M PROJETO
TRABALHA
HORAS
FORNECEDOR N N MATERIAIS
COMERCIALIZA
N
PROJETOS
UTILIZAM
MATERIAIS
FORNECEDORES
1
UTILIZADO N
PROJETOS
PROFESSOR DISCIPLINA
LECIONA
N N
N
ALUNO N
CURSA
CLIENTES PRODUTOS
N
1
VENDA
1
VENDEDORES
Obs. Para que haja uma venda, tem que haver um cliente, um produto e um vendedor.
Composição de um banco de dados relacional. Um banco de dados relacional é composto por tabelas ou relações. A
terminologia tabela é mais comum nos produtos comerciais e na prática, enquanto a terminologia relação foi
utilizada na literatura inicial sobre a abordagem relacional.
EEEP Amélia Figueiredo de Lavor Fund. de Banco de Dados Professor: Arley Rodrigues 15
3.6.1 Tabelas
Uma tabela é um conjunto não ordenado de linhas (tuplas, na linguagem acadêmica). Cada linha é composta por
uma série de campos (valor de atributo, na linguagem acadêmica).
Cada campo é identificado por um nome de campo (nome de atributo, na linguagem acadêmica). Um conjunto de
campos homônimos de todas as linhas de uma tabela é uma coluna.
Comparando tabelas de um banco de dados relacional com um arquivo convencional, observamos as seguintes
diferenças:
· As linhas de uma tabela não têm ordenação. A ordem de recuperação é arbitrariamente estabelecida pelo banco de
dados.
· Os valores de campo de uma tabela são atômicos e monovalorados;
·As linguagens de consulta a bases de dados relacionais permitem o acesso por quaisquer critérios envolvendo os
campos de uma ou mais linhas. Não há necessidade de especificar caminhos de acesso.
3.6.2 Chaves
Chaves são um conceito básico que permitem identificar linhas e estabelecer relações entre linhas e tabelas de um
banco de dados relacional. Em um banco de dados relacional, há pelo menos três tipos de chaves a serem
consideradas: chaves primárias, chaves estrangeiras e chaves alternativas.
As chaves primárias são uma coluna (ou um conjunto delas) dentro de uma tabela que distinguem uma linha das
demais. As chaves primárias podem ser compostas por mais de uma coluna, entretanto, devem sempre respeitar o
princípio da minimalidade. Uma chave é mínima quando todas as suas colunas forem efetivamente necessárias para
garantir o requisito da unicidade de valores da chave.
Na abordagem relacional, ao contrário dos sistemas convencionais de arquivos, por exemplo, uma chave não é um
índice ou qualquer outra estrutura de acesso. As chaves fazem apenas a restrições de integridade, ou seja, regras
que devem ser obedecidas em todos o estados válidos do BD.
Uma chave estrangeira é uma coluna ou uma combinação de colunas cujos valores aparecem necessariamente na
chave primária de uma tabela. A chave estrangeira é o mecanismo que permite a implementação de
relacionamentos em bancos de dados relacionais.
A existência de chaves estrangeiras impõe restrições que devem ser garantidas ao executar diversas operações de
alterações no banco de dados.
EEEP Amélia Figueiredo de Lavor Fund. de Banco de Dados Professor: Arley Rodrigues 16
III. Exclusão de uma linha da tabela que contém a chave primária referenciada pela chave estrangeira;
Deve ser garantido que na coluna da chave estrangeira não apareça o valor da chave primária que será excluída.
Uma ocorrência de relacionamento diferencia-se das demais ocorrências do mesmo relacionamento pelas
ocorrências de entidades que dele participam. Há casos nos quais entre as mesmas ocorrências de entidade podem
existir diversas ocorrências de relacionamento. Para diferenciar as ocorrências é necessário o uso de uma chave
primária para o relacionamento, identificando unicamente cada relacionamento.
EEEP Amélia Figueiredo de Lavor Fund. de Banco de Dados Professor: Arley Rodrigues 17
Um dos objetivos primordiais de um SGBD é a integridade de dados. Dizer que os dados de um banco são íntegros
significa dizer que eles refletem corretamente a realidade apresentada pelo banco de dados e são consistentes entre
si. Uma restrição de integridade é uma regra de consistência de dados mantida pelo próprio SGBD. Na abordagem
relacional, as restrições de integridade são abordadas nas seguintes categorias:
1. Integridade de Domínio
Um valor designado para um campo deve estar dentro do domínio previsto para aquele campo.
2. Integridade de Vazio
Através desta restrição de integridade é possível determinar se um campo pode conter valores nulos. Os campos que
compõem a chave primária devem ser diferentes de vazio.
3. Integridade de Chave
Restrição que determina que os valores de chaves primárias e alternativas devem ser únicos.
4. Integridade Referencial
É a restrição que define que valores dos campos que aparecem em uma chave estrangeira devem estar presentes na
coluna da chave primária da tabela referenciada.
As restrições acima relatadas são garantidas automaticamente por um SGBD relacional e o programador não precisa
se preocupar em escrevê-las através de programação.
Restrições semânticas geram outras restrições de integridade que, estas sim, devem ser garantidas através da
codificação.
EEEP Amélia Figueiredo de Lavor Fund. de Banco de Dados Professor: Arley Rodrigues 18
Conteúdo
1. INTRODUÇÃO AO BANCO DE DADOS ____________________________________________________ 1
1.1 Conceitos Básicos _________________________________________________________________________ 1
1.2 Abstração de dados _______________________________________________________________________ 2
1.3 Projeto de banco de dados __________________________________________________________________ 2
1.4 Modelo conceitual ________________________________________________________________________ 2
1.5 Modelo Lógico ____________________________________________________________________________ 3
1.6 Histórico Evolutivo de Banco de Dados ________________________________________________________ 4
1.7 Abstração de Dados _______________________________________________________________________ 4
1.8 Dados e Informações ______________________________________________________________________ 4
1.9 PROPRIEDADES IMPLÍCITAS DE BANCO DE DADOS _______________________________________________ 5
1.10 ARQUITETURA DE BANCO DE DADOS ________________________________________________________ 5
1.10.1 Visão Externa____________________________________________________________________________________ 5
1.10.2 Visão Conceitual _________________________________________________________________________________ 5
1.10.3 Visão Interna ____________________________________________________________________________________ 5