BANCO DE DADOS 1. Alguns exemplos de utilização:
Depósitos ou retiradas bancárias;
Reserva de hotel ou vôo;
Catálogo de biblioteca on-line;
Compras on-line.
Este tipo de interação ocorre através de Aplicações de banco de dados, onde a maioria das informações armazenadas podem ser textuais ou numéricas.
Atualmente também podem ser armazenados: imagens, áudio e vídeo. São os chamados Banco de Dados Multimídia.
Um banco de dados também pode ser utilizado por Sistemas de Informações Geográficas (GIS) que podem armazenar e analisar mapas, dados sobre clima e imagens de satélites.
Sistemas de Datawarehousing e processamento analítico on-line (On-line Analytical Processing – OLAP) também utilizam Banco de dados , onde é possível extrair e analisar informações comerciais que auxiliam na tomada de decisão.
2. O que é um banco de dados?
Coleção de dados relacionados. Um banco de dados tem alguma fonte de derivação do dado e algum grau de interação com o mundo real e um público que interage com seu conteúdo. Para que um banco de dados seja preciso e confiável ele precisa ser um reflexo do mundo real podendo ter qualquer tamanho e complexidade.
Conforme Heuser(1998), é um conjunto integrado que atende à uma comunidade de usuários.
3. Alguns conceitos
SGBD: Database Management System. Trata-se de uma coleção de
programas que permite aos usuários criarem e manterem um banco de dados. É um sistema de software de uso geral que facilita o processo de : definição, construção, manipulação e compartilhamento do banco de dados. Surgiram na década de 70 para facilitar a programação de aplicações de banco de dados já que os primeiros sistema existentes no mercado eram caros e difíceis de se
Figura 1 - Sistema de Gerenciamento de Banco de dados
Definição de um banco de dados: Envolve a especificação de tipos e
estruturas assim como restrições dos dados a serem armazenados. A definição ou informação descritiva do banco de dados também é armazenada na forma de um catálogo ou dicionário, chamado de metadados.
Contrução: Processo de armazenamento dos dados em algum meio controlado pelo SGBD.
Manipulação: Inclui funções como consulta ao banco de dados para recuperar dados específicos, atualização e inserção de dados.
Compartilhamento: De um banco de dados. Permite que diversos usuários e programas acessem-o simultaneamente.
Proteção e manutenção: Existe a proteção do sistema contra defeitos ou falhas de hardware ou software e proteção de segurança contra acesso não autorizado ou malicioso. Um banco de dados de grande porte pode ter um ciclo de vida de muitos anos, de modo que o SGBD precisa ser capaz de manter o sistema, permitindo sua evolução à medida que os requisitos mudam com o tempo.
4. Natureza de autodescrição de um Sistema de Banco de Dados Seu sistema contém além do próprio banco de dados uma definição ou
descrição de sua estrutura que é armazenada no catálogo que possui informações sobre cada arquivo, tipo e formato de armazenamento de cada ítem de dados e diversas restrições sobre estes dados. Estas informações são chamadas de metadados e descrevem a estrutura do banco de dados principal. O catálogo é utilizado pelo software de SGBD e também pelos usuários do banco de dados que precisam de informações sobre o banco de dados.
5. Atores
Administradores de banco de dados (DBA): É responsável por autorizar o acesso ao banco de dados, coordenar e monitorar seu uso, adquirir recursos de software e hardware conforme a necessidade da empresa. Também é
responsável por problemas como falhas na segurança e demora no tempo de resposta do sistema. Em grande organizações, ele é auxiliado por uma equipe que executa estas funções
Projetistas de banco de dados: São responsáveis por identificar os dados a serem armazenados e escolher estruturas apropriadas para representar e armazenar esses dados. Essas tarefas são realizadas principalmente antes que o banco de dados esteja realmente implementado e populado com os dados.
Usuários finais: São pessoas cujas funções exigem acesso ao banco de dados para consultas e atualizações e geração de relatórios. O banco de dados existe para atender os usuários finais.
6. Exemplo de um banco de dados ALUNO NOME NUMERO_ALUNO TIPO_ALU NO CURSO Silva 17 1 CC Braga 8 2 CC DISCIPLINA NOME_DISCIPLINA NR_DISCIPLINA CREDITO S DEPARTAM ENTO Introdução à ciência da computação CC1310 4 CC Estrutura de dados CC3320 4 CC
Matemática discreta MAT2410 3 MAT
Banco de dados CC3380 3 CC
HISTORICO_ESCO LAR NUMERO_ALUNO IDENTIFICACAO_TUR MA NOTA 17 112 B 17 119 C 8 85 A 8 92 A 8 102 B 8 135 A
PROJETO DE BANCO DE DADOS 1. Compartilhamento de dados
Considere o exemplo abaixo:
Figura 2 - Sistemas isolados - Fonte: Heuser(1998)
Vendas: Esta função concentra as atividades da indústria relativas ao contato com os clientes, como fornecimento de cotações de preços, vendas, e
informações sobre disponibilidade de produtos.
Produção: Esta função concentra as atividades da indústria relativas à
produção propriamente dita, como planejamento da produção e controle do que foi produzido.
Compras Esta função concentra as atividades da indústria relativas à aquisição dos insumos necessários à produção, como cotações de preços junto a fornecedores, compras e acompanhamento do fornecimento. Se cada uma das funções acima for informatizada de forma separada, sem considerar a informatização das demais funções, pode ocorrer que, para cada uma das funções, seja criado um arquivo separado de produtos (HEUSER, 1998) o que leva a redundância de dados que ocorre quando uma informação é representada várias vezes em um sistema.
2. Problemas ocorridos com a redundância:
Redigitação: A mesma informação é digitada várias vezes exigindo um trabalho desnecessário e resultando em erros de transcrição de dados.
Inconsistência de dados: A sincronia entre as informações de um banco de dados é de responsabilidade do usuário, uma informação que é
modificada em um módulo e não é refletida em outro pode acarretar em uma inconsistência de daods.
A solução para evitar esta redundância é o compartilhamento dos dados onde cada informação é armazenada uma única vez podendo ser acessada por vários sistemas.
Figura 3 - Dados compartilhados - Fonte: Heuser(1998)
3. Modelo de Banco de dados
Trata-se da descrição dos tipos de informações qie estão armazenadas em um banco de dados. Para construir um modelo de dados, utiliza-se a linguagem de modelagem de dados que pode ser gráfica ou textual. Em um projeto de banco de dados são utilizados dois níveis de abstração de modelo de dados: conceitual e lógico.
Modelo Conceitual: Descrição do banco de dados de forma independente da implementação em um SGBD. O modelo conceitual registra que dados devem aparecer no banco, mas não como estes dados são armazenados. A técnica utilizada na modelagem conceitual é a abordagem Entidade relacionamento(ER), onde o modelo conceitual é representado através do diagrama de entidade/relacionamento.
Figura 4 - Diagrama Entidade / Relacionamento - Fonte: Heuser(1998)
Modelo Lógico: Descrição de um banco de dados no nível de abstração visto pelo usuário do SGBD. O modelo lógico é dependente do tipo particular de SGBD que está sendo usado. É o modelo de dados que representa a estrutura de dados de um banco de dados conforme visto pelo usuário de SGBD.
Figura 5 - Modelo Lógico
MODELAGEM CONCEITUAL
A Modelagem Conceitual tem por objetivo obter uma descrição abstrata, independente de implementação em computador, dos dados que serão armazenados no banco de dados. É representada através da abordagem entidade/relacionamento criada por Peter Chen onde são abordados os seguintes conceitos: Entidade,
Relacionamento,Atributos, generalização/Especialização e entidade Associativa. 1. Entidade
Representa no modelo conceitual, um conjunto de objetos da realidade moderada. Neste modelo interessam somente os objetos sobre os quais se deseja manter
informações.Uma entidade pode representar tanto objetos concretos da realidade (uma pessoa ou um automóvel) quanto objetos abstratos (departamento ou endereço). Representação Gráfica é um Retângulo (o nome da identidade fica dentro do
retângulo)
Uma entidade é um conjunto de objetos (COISA, TUDO O QUE É PERCEPTÍVEL OU MANIPULÁVEL).
Ocorrência ou Instância da Entidade: Referência a um objeto em particular
2. Relacionamento
Conjunto de Associações entre entidades. Em um DER, um relacionamento é representado através de um losango, ligado por linhas aos retângulos das
entidades que participam do relacionamento.
Exemplo de ocorrência neste caso: JOAO (pessoa) está lotada na TI (departamento).
Este modelo expressa que o BD mantém informações sobre:
um conjunto de objetos classificados como pessoas (relacionamento PESSOA)
um conjunto de objetos classificados como departamentos (relacionamento DEPARTAMENTO)
um conjuntos de associações, que ligam um departamento a uma pessoa. (relacionamento LOTAÇÃO).
Departamento: d1, d2, d3
Pessoa: P1,p2,p3,p4,p5,p6,p7,p8
Relacionamento lotação: p1,d1, p2,d1,p4,d2, p5, d3
Um departamento pode conter várias pessoas mas uma pessoa só pode estar lotada em um departamento.
3. Auto-Relacionamento
Um relacionamento não precisa necessariamente estar associado à entidades diferentes, podendo ocorrer o auto-relacionamento onde existem ocorrências na mesma entidade. Neste casoo é necessário um conceito adicional : o papel da entidade no relacionamento.
Uma entidade possui um relacionamento com ela própria. Isto quer dizer que temos pessoas que assumem papel de marido outras de esposa.
4. Cardinalidade de Relacionamentos
É uma propriedade importante de um relacionamento pois define quantas ocorrências de uma entidade podem estar associadas a uma determinada ocorrência através do relacionamento. Existem duas cardinalidades: Mínima e Máxima.
Exemplos: departamento no relacionamento lotação: só podemos ter um empregado por departamento(cardinalidade mínima).
Um departamento possui cardinalidade máxima = 120 , isto quer dizer que um departamento pode ter até 120 empregados
Estes relacionamentos são chamados de relacionamentos binários pois envolvem 2 entidades, podem ser:
N:n – muitos para muitos 1:n – (um para muitos) 1:1 - (um para um)
1- Pessoa (entidade), casamento (relacionamento)
2- Empregado(entidade), alocação(relacionamento), Mesa(entidade)
1- Aluno(entidade), inscrição(relacionamento), curso(entidade)
2- Empregado (entidade), possui(relacionamento), dependentes(entidade) 3- Empregado(entidade),supervisão(relacionamento), empregado(entidade)
Relacionamento n:n (muitos para muitos)
1- Engenheiro(entidade), alocação(relacionamento), projeto(entidade)
Relacionamento 0:n
Nenhum ou muitos cursos podem possuir nenhuma ou muitas disciplinas 5. Atributos
Informações associadas a ocorrências de entidades ou de relacionamentos.
Dado que é associado a cada ocorrência de uma entidade ou de um
relacionamento.
Na prática, atributos não são representados graficamente, para não
sobrecarregar os diagramas, já que muitas vezes entidades possuem um
grande número de atributos. Prefere-se usar uma representação textual que
aparece separadamente do diagrama ER.No caso de ser usado um software
para construção de modelos ER, o próprio software encarrega-se do
armazenamento da lista de atributos de cada entidade em um dicionário de
dados.
No exemplo acima, para cada ocorrência de projeto é associado
exatamente um nome, código e tipo.
Cardinalidade dos atributos: No exemplo acima , o nome e o código
são obrigatórios. Possuem cardinalidade mínima: 1, pois cada entidade
possui no mínimo um valor associado. São mono-valorados, pois a
cardinalidade máxima também é um, só pode possuir um valor . Já no
exemplo:
Nome e código também possuem cardinalidade mínima e máxima = 1. Já o
atributo telefone é um atributo opcional.(cardinalidade mínima 0 e cardinalidade
máxima = n, pois pode possuir vários telefones).
Os relacionamentos também podem possuir atributos conforme o exemplo
abaixo:
Neste exemplo a entidade engenheiro possui atributos: código e nome, e esta
entidade pode possuir nenhuma ou muitas “ATUAÇÃO”(Relacionamento) onde
possui uma função (que é o atributo do relacionamento ATUAÇÃO) e pode
estar relacionado a nenhum ou muitos projetos que possuem código e título
como atributos.
No exemplo abaixo:
Uma única financeira pode financiar nenhuma ou muitas vendas que
possuem um número de parcelas e taxa de juros.
O identificador neste exemplo é o código, isto quer dizer que cada
pessoa pode ter um único código, já os campos nome e endereço,
podem ser associados para mais de uma pessoa.
IDENTIFICADORES COMPOSTOS
Exemplo: almoxarifado de uma empresa de ferragens. Os produtos ficam
armazenados em prateleiras dispostas em armários organizados em
corredores. Os corredores são numerados seqüencialmente e as prateleiras
são numeradas seqüencialmente dentro de cada corredor, para identificar uma
prateleira é necessário conhecer seu número e o número do corredor em que
se encontra.
IDENTIFICADORES DE RELACIONAMENTOS
Um exemplo é o relacionamento CONSULTA entre entidades de
MÉDICO e de PACIENTE. Entre um determinado médico e um determinado
paciente podem haver diversas consultas. Neste caso, é necessário algo que
distinga uma consulta entre um médico e seu paciente das demais consultas
entre este médico e este paciente. A diferenciação dá-se através de atributos
identificadores de relacionamento. No caso do relacionamento CONSULTA o
atributo identificador do relacionamento pode ser data/hora.
GENERALIZAÇÃO/ESPECIALIZAÇÃO
Através deste conceito é possível atribuir propriedades particulares a um
subconjunto das ocorrências (especializadas) de uma entidade genérica. O
símbolo para representar generalização/especialização é um triângulo
isósceles. Associada ao conceito de generalização/especialização está a idéia
deherança de propriedades. Herdar propriedades significa que cada ocorrência
da entidade especializada possui, além de suas próprias propriedades
(atributos, relacionamentos e generalizações/especializações), também as
propriedades da ocorrência da entidade genérica correspondente.
ENTIDADE ASSOCIATIVA
Em alguns casos, é necessário que associemos uma entidade com a
ocorrência de um relacionamento. O modelo de entidades e relacionamentos
não permite relacionamentos entre relacionamentos, somente entre entidades.
A idéia da entidade associativa é tratar um relacionamento como se ele fosse
uma entidade. Observe o modelo abaixo:
Como não podemos fazer isso diretamente, indicamos que o relacionamento
consulta é uma entidade associativa, através de um
retângulo
em volta do
relacionamento.
ESQUEMAS GRÁFICOS E TEXTUAIS
Entidades: (1,1) EMPREGADO
(0,n) DEPENDENTE
ABORDAGEM RELACIONAL - Composição de um Banco de Dados
Relacional
1. Tabelas:
Uma tabela é um conjunto não ordenado de linhas (tuplas, na terminologia
acadêmica). Cada linha é composta por uma série de campos (valor de
atributo, na terminologia acadêmica).Cada campo é identificado por nome de
campo (nome de atributo, na terminologia acadêmica). O conjunto de campos
das linhas de uma tabela que possuem o mesmo nome formam uma coluna.
2. Chaves
O conceito básico para estabelecer relações entre linhas de tabelas de um
banco de dados relacional é o da chave.
• Chave Primária: Uma chave primária é uma coluna ou uma combinação
de colunas cujos valores distinguem uma linha das demais dentro de
uma tabela.
• Chave Estrangeira: 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 um banco de dados
relacional.
conjunto de valores é chamado de domínio da coluna ou domínio do campo.
Além disso, deve ser especificado se os campos da coluna podem estar
vazios (“null” em inglês) ou não. Estar vazio indica que o campo não recebeu
nenhum valor de seu domínio
4. Integridade
• Integridade de Domínio: (número inteiro, número real, alfanumérico de
tamanho definido,data, …)
• Integridade de Vazio: Através deste tipo de restrição de integridade é
especificado se os campos de uma coluna podem ou não ser vazios
• Integridade de chave: Trata-se da restrição que define que os valores
da chave primária e alternativa devem ser únicos.
• Integridade Referencial: É a restrição que define que os valores dos
campos que aparecem em uma chave estrangeira devem aparecer na
chave primária da tabela referenciada.
NORMALIZAÇÃO
Consiste em definir o formato lógico adequado para as estruturas de
dados identificados no projeto lógico do sistema, com o objetivo de minimizar o
espaço utilizado pelos dados e garantir a integridade e confiabilidade das
informações.
É feita, através da análise dos dados que compõem as estruturas
utilizando o conceito chamado “Formas Normais (FN)”.
Para realizar a normalização dos dados, é primordial que seja definido
um campo chave para a estrutura, campo este que permite identificar os
demais campos da estrutura.
• Exemplo:
Arquivo de Notas Fiscais (Num. NF, Série, Data Emissão, Cod Cliente, Nome
Cliente, Endereço Cliente, CGC Cliente, Relação das mercadorias vendidas
(onde para cada mercadoria temos: Cod Mercadoria, Descrição Mercadoria,
Quantidade Vendida, Preço de Venda, Total da Venda desta mercadoria) e
Total Geral da Nota)
Neste exemplo, existem várias mercadorias em um única Nota Fiscal,
sendo portanto elementos repetitivos que deverão ser retirados.
Como eliminar os elementos repetidos:
Estrutura na primeira forma normal (1FN)
• Arquivo de Notas Fiscais (Num. NF, Série, Data Emissão, Cod Cliente,
Nome Cliente, Endereço Cliente, CGC Cliente, Total Geral da Nota)
• Arquivo de Vendas (Num. NF, Cod Mercadoria, Descrição Mercadoria,
Quantidade Vendida, Preço de Venda, Total da Venda desta
mercadoria)
Já a segunda forma normal ou 2 FN: Consiste em retirar das estruturas que
possuem chaves compostas (campo chave sendo formado por mais de um
campo), os elementos que são funcionalmente dependente de parte da chave.
A Terceira Forma Normal ou 3FN: Consiste em retirar das estruturas os
campos que são funcionalmente dependentes de outros campos que não são
chaves. Podemos afirmar que uma estrutura está na 3FN, se ela estiver na
2FN e não possuir campos dependentes de outros campos não chaves.
Após a normalização a estrutura das tabelas no banco de dados possuirá o
seguinte formato:
• Arquivo de Notas Fiscais (Num. NF, Série, Data Emissão, Cod Cliente
e Total Geral da Nota)
• Arquivo de Vendas (Num. NF, Cod Mercadoria, Quantidade Vendida e
Total da Venda desta mercadoria)
• Arquivo de Mercadorias (Cod Mercadoria, Descrição Mercadoria,
Preço de Venda)
• Arquivo de Clientes (Cod Cliente, Nome Cliente, Endereço Cliente e
CGC Cliente)
Título Autor Ed. Cidade ANO Projeto de Banco de Dados HEUSER, Carlos Alberto Sagra-Luzzatto Porto Alegre 2004 Sistema de Banco de Dados SILBERSCHATZ, Abraham; Korth, Henry F. ; Sudarshan, S. Elsevier Rio de Janeiro 2006 Projeto e modelagem de banco de dados Teorey, Toby J. ; Lightstone, Sam; Nadeau, Tom Elsevier Rio de Janeiro 2007 Sistemas de Armazenamento de Dados
GALEOTE, Sidney São
Paulo Oracle 10g database SERSON, Roberto Rubinstein São Paulo Introdução a Sistemas de Bancos de Dados
DATE, C.J. Campus Rio de
Janeiro 2003 Otimizando a Performance de Bancos de Dados Relacionais MAYER, Roberto Carlos
Axcel Books Rio de
Janeiro 2001 Análise Relacional de Sistemas MACHADO, Felipe Ney Rodrigues São Paulo Projeto de Banco de
Dados: uma visão prática MACHADO, Felipe Nery Rodrigues São Paulo Aprenda em 24 horas SQL PLEW, Ronald R.; Stephens, Ryan K Rio de Janeiro Banco de Dados para a WEB SILBA, Luciano Carlos da São Paulo