Escolar Documentos
Profissional Documentos
Cultura Documentos
Ester M. Poegere
PROJETO DE BANCO DE DADOS 2
SUMÁRIO
PERSPECTIVA HISTÓRICA DOS BANCOS DE DADOS 6 MODELO RELACIONAL 50
PRIMEIROS TEMPOS 7 CHAVES 51
DÉCADA DE 70 11 RESTRIÇÕES DE INTEGRIDADE 52
DÉCADA DE 80 13 ESPECIFICAÇÃO RESUMIDA DE UM ESQUEMA RELACIONAL 55
DÉCADA DE 90 14 NORMALIZAÇÃO DE BANCO DE DADOS 55
SITUAÇÃO ATUAL E FUTURO 15
MAPEAMENTO ER → RELACIONAL 58
FUNDAMENTOS E CONCEITOS DE BANCO DE DADOS 18 MAPEAMENTO DE ENTIDADES 59
CENTRO UNIVERSITÁRIO UNIFTEC
A EVOLUÇÃO DO DADO 19 MAPEAMENTO DE RELACIONAMENTOS DO TIPO (N:N) 59
Rua Gustavo Ramos Sehbe n.º 107.
SISTEMA DE GERÊNCIA DE BANCO DE DADOS 20 MAPEAMENTO DE RELACIONAMENTOS DO TIPO (1:N) 62 Caxias do Sul/ RS
POR QUE USAR SGBD? 22 MAPEAMENTO DE RELACIONAMENTOS DO TIPO (1:1) 62
ARQUITETURA DO SGBD 23 MAPEAMENTO DE AUTORRELACIONAMENTOS 63 REITOR
LINGUAGEM PADRÃO DOS SGBD 27 MAPEAMENTO DE RELACIONAMENTOS IDENTIFICADORES 65 Claudino José Meneguzzi Júnior
PRÓ-REITORA ACADÊMICA
MODELAGEM DE DADOS 28 MAPEAMENTO DE GENERALIZAÇÃO/ESPECIALIZAÇÃO 65 Débora Frizzo
PRÓ-REITOR ADMINISTRATIVO
MODELO ENTIDADE-RELACIONAMENTO 34 Altair Ruzzarin
DIRETORA DE EDUCAÇÃO A DISTÂNCIA (NEAD)
CONCEITOS CENTRAIS DO MODELO ER 35 Lígia Futterleib
APRESENTAÇÃO
INTRODUÇÃO
sulta que indexavam os dados, permitindo eficientes1 e eficazes2 de grandes volumes perspectiva histórica, no primeiro capítulo.
buscas limitadas por determinados termos de dados. Banco de dados é uma área de pes-
pré-definidos. A evolução da informática O gmail tem mais de 60 milhões de quisa e desenvolvimento no contexto de
trouxe alternativas para realização do re- usuários, o Google Earth e Google Maps Ciência da Computação. Dessa forma,
gistro e recuperação de dados, trazendo armazenam imagens do mundo todo, es- possui conceitos fundamentais e termino-
eficiência ao processo, apresentando pos- truturas de vias, roteiros, etc. Além disso, logias específicas, que precisam ser conhe-
sibilidades de cruzamentos e permitindo a Google guarda informações de todas as cidos e compreendidos para o adequado
a dedução de novas informações. Inicial- páginas do mundo e recebe mais de 100 uso dessa tecnologia, assim no segundo
mente, os registros informatizados eram milhões de consultas por dia. Estima-se capítulo nos focaremos nesse objetivo.
bastante rudimentares e o potencial de que a Google armazene muitos petabytes
buscas bastante restrito, mas atualmente Para que possamos recuperar infor-
de dados (1 petabyte = 1024 terabytes). mações, elas precisam ser adequadamente
a capacidade dos Sistemas Gerenciadores
de Banco de Dados é muito grande, per- Tudo isso somente é possível com a armazenadas. Assim, surge a necessidade
mitindo o armazenamento e recuperação utilização de SGBD (Sistemas Gerencia- da modelagem de dados que definirá a
dores de Bancos de Dados)! organização dos bancos de dados. Dessa
A história dos Sistemas Gerenciado- forma, no terceiro capítulo, estudaremos
res de Banco de Dados inicia na década de os fundamentos da modelagem entidade-
60 (século XX), nos laboratórios da IBM, -relacionamento (DER), que é conside-
onde faziam pesquisas para automação de rado um dos mais importantes modelos
escritórios, pois já percebiam a impor- de banco de dados. E na sequência, no
tância da informação e o alto custo, em quarto capítulo estudaremos o Modelo
termos de pessoas e espaço, necessário para Relacional. Por último, no quinto capítulo,
gerenciá-la. Desde essa época, até hoje, aprenderemos a transformar um diagrama
muito mudou e juntos analisaremos sua ER e um esquema de dados relacional.
Você já pensou sobre como a Google 1Ser eficiente é uma qualidade que indica a rapidez de realização de Tenho certeza que você irá gos-
armazena e recupera informações? uma atividade, é agilizar os processos para chegar ao objetivo no menor
tempo possível. tar muito de aprender sobre Bancos de
2Ser eficaz é uma qualidade que tem relação com a ideia de efeito,
assim, a partir de uma determinada ação, segue sempre um resultado Dados!
esperado/desejável.
PROJETO DE BANCO DE DADOS 6
PERSPECTIVA
HISTÓRICA DOS
BANCOS DE
DADOS
Você já pensou sobre como armazenamos as
informações que precisamos consultar?
Como foi a evolução deste recurso tão
importante para todos os sistemas?
Para iniciarmos o nosso estudo, é importante conhecer
o início dos bancos de dados, tão importante para as organi-
zações empresariais, como para nós. Vamos compreender a
sua evolução, seus marcos históricos e tecnológicos, além de
entender as suas perspectivas futuras. A história dos bancos
de dados está ligada ao desenvolvimento da ciência da com-
putação, suas transformações tecnológicas e sua inf luência
sobre forma como os profissionais de informática pensam a
estruturação da informação. As práticas, frameworks e usos
PROJETO DE BANCO DE DADOS 7
de bancos de dados, tão pioneiros nos pri- banco de dados. correto. Exemplo: Um arquivo com dados
mórdios, tornaram-se intrínsecos ao modo dos funcionários, onde se tem o endereço.
como as organizações gerenciam os dados. Na década de 1960 foram desenvol- Outro arquivo com dados de voluntários,
vidas pesquisas para automação de escri- onde também se tem o endereço. Agora,
A atual velocidade da produção de tórios, que visavam otimizar os proces- suponha que uma pessoa que é funcioná-
dados é impulsionada pela demanda e sos realizados, organizar as informações rio e também voluntário, teria seus dados
acessibilidade que aumentam, constan- e facilitar o trabalho. Nesse período, os redundantes, repetidos em ambos os ar-
temente, à medida que as bases de dados dados eram organizados em arquivos ge- quivos. Se ela mudar de endereço e este for
se tornam cada vez mais essenciais para renciados pelo sistema operacional, era somente alterado no arquivo de funcioná-
aspectos de nossas vidas diárias. Deve-se uma maneira rudimentar de armazená-los, rios. A partir dessa alteração, como saber
ter em conta, que o volume de dados em mas que oferecia vantagens em relação ao qual o endereço correto, pois seu endereço
muitos períodos excedeu a capacidade de armazenamento físico em papel. Por outro estará diferente em cada um dos arquivos.
processamento (humana e computacional) lado, os sistemas de arquivos apresentavam Esse é um problema grave e denomina-se
e isso sempre impulsionou a busca por al- alguns inconvenientes: inconsistência (a mesma informação com
ternativas mais eficientes, impulsionando valores diferentes em lugares diferentes).
a evolução dos bancos de dados3. Redundâncias e Inconsistências
Dificuldade de Acesso
PRIMEIROS TEMPOS Frequentemente a mesma informa-
ção estava em diversos arquivos (repetida), O acesso ás informações organi-
A IBM (International Business Ma- ou seja, havia redundância. Esta caracte- zadas em arquivos, devem ser feitas pelo
chine) está ligada às origens de muitos rística pode levar a um grave problema sistema (softwares/aplicação) que a gerou,
desenvolvimentos tecnológicos computa- que é a inconsistência, pois com a mesma assim para acessar as informações de um
cionais e não podia ser diferente com os informação repetida em dois ou mais ar- arquivo, também é necessário saber como
quivos, ela poderia ser atualizada em um foi gerada (linguagem de programação e/
3 Herman Hollerith, ao ver a crescente quantidade de dados recolhidos
pelo Censo dos EUA de 1880 (que levou 8 anos para ser tabulada), inventou deles e não ser em outro, assim passa a ter ou sistema) e sua estrutura, caso contrário,
“Hollerith cartões”, classificador e máquinas de tabulação, com o propósito
de tabular dados, representados por buracos nos cartões de perfurados. A
dois (ou mais) valores diferentes, inconsis- na maioria das vezes o acesso fica inviável.
Hollerith’s Tabulating Machine Company foi posteriormente fundida tentes e, muitas vezes, não se sabe qual o
com outras três empresas em International Business Machines (IBM).
PROJETO DE BANCO DE DADOS 8
Falta de Integridade Lógica e Isolamento de atividades que somente são coerentes e que todas as atividades dessa transação
dados corretas, se consideradas como uma uni- precisam ser realizadas, não se pode parar
dade atômica (indivisível), ou seja, todas no meio (por uma falha técnica ou por
as operações da transação devem ser exe- qualquer outro motivo), pois isso com-
Um dos principais objetivos do ar- cutadas, caso contrário o resultado será prometeria a qualidade e consistência das
mazenamento de informações é realizar indesejável. Sistemas que trabalham com informações do sistema, além de reclama-
o cruzamento de diversos dados, identi- arquivos convencionais não possuem ferra- ções dos clientes!
ficando suas relações, porém a organiza- mentas que possam, efetivamente, garantir
ção da informação em arquivos isola as a atomicidade das transações, esse controle Problemas de Acesso Concorrente
informações, pois cada arquivo pode ter deve ser implementado em cada aplicação
sido gerado por sistemas e/ou linguagens pelos programadores, que caso se esque-
diferentes, que normalmente não possuem çam ou não dos testes, adequadamente a As informações dos arquivos de-
meios de intercomunicação, dificultando a implementação poderá compromete-la. vem refletir as atualizações mais recentes.
realização de cruzamentos e reduzindo a Porém, o que ocorre quando mais de um
capacidade de análise dos dados. Arquivos Considere o seguinte exemplo: de- sistema ou pessoa deseja atualizar a mesma
de dados não possuem integridade lógica, seja-se fazer uma transferência bancária, informação ao mesmo tempo? De quem
ou seja, não há relações entre os dados de sacando R$ 100,00 da conta do cliente deve ser a prioridade? Como garantir que
um arquivo com os dados de outro arquivo, A e depositando este valor na conta do a informação fique correta? Ness e caso, o
estão isolados. cliente B. Isso é uma transação e envolve procedimento a ser desenvolvido é sempre
as seguintes atividades: iniciar o processo que for consultada uma informação com
Falta de Atomicidade nas Transações de transferência; consultar o saldo da conta a intenção de alterá-la o seu acesso deve
do cliente A; informar o valor a ser sacado; ficar bloqueado aos outros usuários até que
registrar a retirada da conta do cliente A libere a informação. A responsabilidade
Transações são processos realizados do valor sacado; atualizar o saldo da conta deste controle nos sistemas de arquivos
em sistemas computacionais, com o obje- do cliente A; consultar o saldo da conta convencionais é do programador de cada
tivo de realizar alguma tarefa dentro do do cliente B; registrar p depósito na conta aplicação, que pode estar sujeito a falhas.
contexto de uma aplicação. Normalmente, do cliente B; alterar o saldo na conta do
as transações envolvem um conjunto de cliente B; finalizar a transação. Perceba Agora, suponha que quase no mes-
PROJETO DE BANCO DE DADOS 9
mo instante estão sendo realizadas duas transferências bancárias, portanto duas Portanto, o saldo final das contas é:
transações concorrentes. Considere ainda, os seguintes saldos dos clientes: Cliente A: Cliente A: R$ 0,00; Cliente B: R$ 150,00;
R$ 200,00; Cliente B: R$ 50,00; e Cliente C: R$ 100,00. Assim, hipoteticamente, e Cliente C: R$ 300,00. Assim, novamente
se o banco tivesse apenas esses três clientes o total em depósitos seria R$ 350,00. A hipoteticamente, se o banco tivesse apenas
tabela a seguir exemplifica o problema da execução concorrente destas transações, esses três clientes o total em depósitos,
sendo T0 o tempo inicial e Tx a sequencial temporal de realização das atividades. agora seria R$ 450,00. Perceba que após o
processo, com problemas de concorrência,
Demonstração do Problema de Acesso Concorrente o saldo total de depósitos foi alterado e
Atividade Transação 1: Transação 2: deveria se manter o mesmo! O problema
transferir R$ 100,00 do transferir R$ 200,00 do é que essas duas transações não poderiam
cliente A para o cliente B cliente A para o cliente C ser executadas simultaneamente, visto que
Iniciar o processo de transferência T0 T1 consultam e alteram a mesma informação
que é o saldo do cliente A. Para correta
Consultar o saldo da conta do
cliente A
T2: saldo=R$ 200,00 T3: saldo=R$ 200,00 execução concorrente, a segunda transa-
ção somente poderia ser liberada após o
Informar o valor a ser sacado T4: R$ 100,00 T5: R$ 200,00 término da primeira e neste caso o saldo
Registrar a retirada da conta do consultado já teria sido alterado.
T6: saldo = 200 - 100 T7: saldo = 200 - 200
cliente A do valor sacado
Atualizar o saldo da conta do cliente T8: saldo = 100 (gravar) T9: saldo = 0 (gravar) Problemas de Segurança
A (cliente A) (cliente A)
Consultar o saldo da conta do T10: saldo = 50 T11: saldo = 100
cliente que recebe a transferência (cliente B) (cliente C)
As informações das corporações e
nossas informações pessoais, entre ou-
Registrar o depósito na conta do T12: saldo = 50 + 100 T13: saldo = 100 + 200 tras, muitas vezes não devem ser acessadas
cliente (cliente B) (cliente C)
por pessoas não autorizadas, portanto é
T14: saldo = 150 (gravar) T15: saldo = 300 (gravar) necessário implementar mecanismos que
Alterar o saldo na conta do cliente
(cliente B) (cliente C)
as protejam. Nos primórdios, utilizando
Finalizar a transação T16 T17 arquivos para o armazenamento, pois o
PROJETO DE BANCO DE DADOS 10
controle da segurança também precisava O resultado deste interesse foi o desen- informações sejam relacionadas sem uma
ser implementado pelos programadores volvimento dos dois primeiros modelos origem.
em cada aplicação, porém sem essa, os de dados: modelo em rede (CODASYL
dados ficavam vulneráveis e abertos para - Comitee for Data Systems Language) e A IBM lançou um dos primeiros
acessos indevidos. Portanto, os sistemas de o modelo hierárquico (IMS – Information sistemas de banco de dados no final da
arquivos tinham problemas de segurança. Management System). Eram modelos em década de 60, que foi o IMS (Information
que a estrutura lógica de acesso à infor- Management System). Na mesma época,
mação estava intrinsecamente ligada à or- o comitê da CODASYL lança o sistema
Agora, vamos refletir! ganização física e aos recursos da lingua- de banco de dados em rede integrado a
gem para acesso aos dados. Assim, eram linguagem COBOL 4 .
Arquivos ainda são utilizados? Com utilizados links (ligações) entre os dados/
certeza sim! Você e muitas organizações registros que eram implementados através Esses modelos foram uma evolução
utilizam arquivos de editores de textos, de ponteiros de baixo nível (referência ao em relação a utilização de arquivos para
planilhas eletrônicas, anotações, endereço do dispositivo de armazenamen- gerenciamento de informações, permitiam
imagens/fotos, etc. O gerenciamento to). Qualquer alteração na estrutura dos que os dados que seriam armazenados fos-
destes arquivos apresenta alguns dos dados implicava na reescrita dos programas sem organizados e relacionados, diminuin-
inconvenientes dos arquivos utilizados nos para realização do armazenamento e das do os problemas de acesso aos dados, falta
primórdios dos bancos de dados? consultas, também era necessário conhecer de integridade e isolamento dos mesmos.
toda a estrutura física para todo o desen- Mas ainda era necessário evoluir!
volvimento. A diferença básica entre esses
CODASYL E IMS modelos é a forma como as ligações podem
ser estruturadas. No modelo hierárquico
é necessário ter uma origem da hierarquia
Nesta época, os computadores pro-
e as outras informações são relacionadas 4 COBOL é a sigla de COmmon Business Oriented Language
gressivamente passam a se tornar parte (Linguagem Comum Orientada para os Negócios) é uma linguagem de
abaixo desta, formando a hierarquia, de programação criada com foco para o processamento de banco de dados
do custo das empresas, evidenciando as comerciais, desenvolvida no final da década de 50, integrada a sistemas
onde vem a denominação do modelo. Já, de banco de dados no final da década de 60, tornou-se a linguagem mais
necessidades de ampliação das capacidades
no modelo em rede não há a limitação da utilizada durante as décadas de 70 e 80 para o desenvolvimento de aplicações
de armazenamento e recuperação de dados. comerciais. Ainda foi amplamente utilizada na década de 90 e começou sua
estrutura hierárquica, permitindo que as decadência no início do século XXI. Ainda é possível encontrar aplicações
em uso desenvolvidas em COBOL.
PROJETO DE BANCO DE DADOS 11
Edgar Frank Codd DÉCADA DE 70 R - Relacional), que acabou por dar nome
(23/8/1923 – 18/4/2003) ao Sistema Relacional. Este sistema evo-
lui e finalmente passou a ser chamado de
E.F. Codd foi um matemático in- DB2, o principal e mais conhecido sistema
glês que trabalhava na IBM, que em 1972 de banco de dados da IBM.
publicou um artigo chamado “Relational
Model of Data for Large Shared Data Banks”. Com o System R foi desenvolvida
Esse artigo apresentou os fundamentos uma linguagem conhecida por Structured
do Modelo de Banco de dados Relacio- Query Language6 (SQL) . O Modelo de
nal, baseado na Teoria de Conjuntos5 , Banco de Dados Relacional e os Sistemas
lançando as bases para que informações de Banco de Dados Relacionais tornaram-
interligadas fossem definidas como rela- -se padrão para a indústria de banco de
ções (conjuntos) e adaptando essa teoria dados e é um padrão ISO7 (International
matemática para a área de banco de dados. Organization for Standardization) .
Também apresentou o cálculo e a álgebra
relacional que consistem em conjunto de Sistemas de Banco de Dados Rela-
operações matemáticas para manipulação cionais separam os dados da aplicação da
das informações. sua estrutura de armazenamento e pos-
sibilitam a manipulação das informações
A proposta de Codd era comple- através de uma linguagem de consulta
xa e não foi prontamente aceita e imple- que implementa as operações matemáticas
mentada, mas ele conseguiu que a IBM especificadas no modelo relacional.
permitisse a implantação de um grupo de
pesquisa denominado System R (Sistema O protótipo do System R foi lan-
5 Ramo da matemática, a Teoria dos conjuntos estuda as coleções çado pela IBM, em 1974, que somente
de elementos (conjuntos). A linguagem da teoria dos conjuntos inclui
definições que especificam relações entre elementos e conjuntos, possui
operadores que determinam essas relações (contém e está contido) e pos-
sibilita operações entre conjuntos, tais como: união, intersecção, diferença 4 Linguagem de Consulta Estruturada, hoje também conhecida
e produto cartesiano. Esta teoria inclui a especificações do cálculo e da como Linguagem de Consulta Padrão (Standard Query Language).
álgebra para os conjuntos. 7 Organização Internacional de Padronização.
PROJETO DE BANCO DE DADOS 12
dos, mas ainda havia muito trabalho a ser mas baseados no modelo relacional, inicia- da linguagem SQL, que define que todo
feito em termos de desenvolvimento das ram os estudos que levaram ao desenvol- SGBD Relacional deve utilizar a mesma
ferramentas e superação das limitações vimento de Sistemas de Banco de Dados linguagem a SQL ANSI11 [1986, 1989],
do hardware (principalmente em relação Orientados a Objetos para manipularem assim uma aplicação desenvolvida para
aos dispositivos de armazenamento). Ao informações que não eram passíveis de um banco de dados relacional utilizará a
final dessa década, tem-se as bases para serem modeladas através do Modelo Re- mesma linguagem para manipulação das
o armazenamento e recuperação de dados lacional, tais como aplicações de medicina, informações, tornando as aplicações por-
baseados no modelo relacional, mas as multimídia e física, as quais precisavam táveis12, conferindo certa independência
aplicações ainda não apresentam eficiência de mais flexibilidade para a especificação do SGBD.
adequada e muitos desenvolvedores ainda e gerenciamento de suas informações. Os
preferem utilizar a linguagem COBOL primeiros SGBDOO (Sistemas Gerencia- Nesse período, já se tem diversos
com os sistemas de banco de dados base- dores de Banco de Dados Orientados a SGBDs a disposição, entre eles se pode
ados nos modelos hierárquico e em rede. Objetos) foram: O2 [1988]; Exodus [1986]; destacar os seguintes: DB2; Ingres; Oracle;
e ORION [1986]. Sybase; e Informix.
DÉCADA DE 80
A partir desses estudos, começaram
a surgir Sistemas Gerenciadores de Banco
Nesta década ocorreu um grande de Dados Relacionais, os quais agregavam
desenvolvimento dos bancos de dados e características dos Banco de Dados Orien-
muitas melhorias foram implementadas tados a Objetos: POSTGRES [1986]; e
nos SGBDs, possibilitando que seu uso STARBURST [1988].
comercial fosse ampliando. A ORACLE
lançou o ORACLE 2 e a IBM lançou o A performance e ferramentas de
SQL/DS (que depois tornou-se o DB2), apoio, ao desenvolvimento, são ampla-
utilizado como repositório de dados por mente difundidas no final desta década e
muitas aplicações. se amplia a confiança para o desenvolvi- 11 American National Standards Institute.
mento de aplicações baseadas em banco de 12 Portabilidade de uma aplicação em relação ao Sistema Geren-
ciador de Banco de Dados, indica que esta pode ser desenvolvida para um
Em paralelo com a evolução de siste- dados. Contribui para isso, a padronização SGBD específico e pode ser utilizada em outro, realizando apenas poucos
ajustes.
PROJETO DE BANCO DE DADOS 14
DÉCADA DE 90 Há também muitos avanços na área começam a ser amplamente utilizados Sis-
de banco de dados, alguns relacionados temas de Apoio a Tomada de Decisões,
a estruturação das informações e tipos Sistemas Especialistas, Sistemas para Des-
Nesse período, os Sistemas Ge- de informações que podem ser manipu- coberta de Conhecimento em Bases de
renciadores de Banco de Dados se po- ladas, outros para melhorar a forma de Dados, Mineração de Dados, Sistemas
pularizaram e a maioria das aplicações já processamento das informações ou ainda para gerenciamento de mídias, multimí-
passaram a ser desenvolvidas, utilizando interfaces entre aplicações e para os di- dias e hipermídia, além de aplicações que
essa tecnologia para armazenamento e re- versos tipos de usuários. Assim surgem integram bases de dados de fontes diver-
cuperação de informações. Diversos recur- comercialmente, a partir de pesquisas já sificadas (Datawarehouse). Acrescenta-se
sos e ferramentas foram incorporados aos realizadas, SGBDs paralelos, SGBDs de a isso, os desenvolvimentos de sistemas de
SGBDs disponibilizados comercialmente tempo real, SGBD Orientados e Objetos, banco de dados para gerenciamento de
e as melhorias no hardware e sistemas SGBDs multimídia além de SGBDs para páginas e informações da internet.
operacionais também contribuíram para arquiteturas cliente-servidor, alinhados à
melhoria de sua eficiência. Já, o uso dos evolução dos sistemas operacionais. Os SGBDs chegaram a sua matu-
sistemas baseados nos modelos hierárquico ridade, possuem distribuições comerciais
e em rede passou a se restringir aos siste- Além disso, são funções aplicadas, estáveis e confiáveis, mas ainda existem
mas legados13. que eram, até o momento, baseadas no desafios a serem superados, como por
registro e recuperação de dados ligados à exemplo o crescimento do volume de da-
13 Sistemas Legados são aqueles baseados em tecnologias obsoletas
ou em obsolescência, que já estão em desuso.
área operacional das organizações. Assim, dos.
PROJETO DE BANCO DE DADOS 15
SITUAÇÃO ATUAL E FUTURO escalável de sistemas NoSQL para pro- assim como o telescópio alterou a forma de
cessamento on-line de transações (leitura compreensão do universo e o microscópio
e gravação), enquanto ainda usa o SQL. nos permitiu ver o que parecia invisível.
No século XXI, amplia-se o uso dos Esses bancos de dados incluem ScaleBa- Big Data mudará a forma de como per-
bancos de dados XML14 , que são um tipo se, Clustrix, EnterpriseDB, MemSQL, cebemos o mundo, pois deixamos de ter
de banco de dados estruturado orientado a NuoDB e VoltDB. problemas para coletar dados, não temos
documentos e que permite consultas com mais escassez de dados, contudo, agora,
base em atributos de documentos XML. A história dos SGBDs está ligada a temos abundância de dados. Com isso,
Os bancos de dados XML são utiliza- necessidade de armazenar grandes volumes surge um novo problema, pois temos uma
dos como padrão de interoperabilidade de informações para que possam ser recu- capacidade limitada para lidar com gran-
de dados máquina-a-máquina. Também peradas, de forma eficiente e convenien- des volumes de dados e torna-se cada vez
surgem os bancos de dados NoSQL que, te. Estima-se que em 2020 serão gerados mais difícil filtrar o que nos interessa ou
geralmente, são muito rápidos, não re- mais de 40 zetabytes de dados (mais de 40 não.
querem esquemas de tabela fixa, evitam trilhões de gigabytes), de fontes de dados
operações de junção, armazenando dados diversificadas: sistemas empresariais, sis- O impacto do Big Data supera a
desnormalizados e são projetados para temas de instituições de pesquisa, sistemas invenção da imprensa (1430), que nos pri-
trabalhar com escalonamento horizontal. de monitoramento, dados climáticos, redes meiros 50 anos publicou mais conteúdos
sociais, fotos, etc. Constitui-se ainda um que em toda a história anterior. Desde
É desenvolvido também o NewS- desafio organizar todas essas informações 2010, a cada 2 dias são gerados mais dados
QL, o qual é uma classe de Banco de Da- de maneira a torná-las úteis e significati- do que em toda a história da humanida-
dos Relacionais modernos, que tem como vas, permitindo que sejam correlacionadas de (anterior à internet) e estima-se que a
objetivo fornecer o mesmo desempenho e que possibilitem a tomada de decisões cada 2 anos o volume de informações seja
ou o seu simples acesso, quando forem duplicado.
14 XML (eXtensible Markup Language) é um padrão recomendado
pela da W3C para produzir arquivos com objetivos específicos. A XML
necessárias e relevantes. Esse grande vo-
deriva da SGML (acrônimo de Standard Generalized Markup Language ou lume de informações constitui o Big Data. Assim, muitas pesquisas tem sido
Linguagem Padronizada de Marcação Genérica) e possibilita a descrição de
diversos tipos de dados. O objetivo principal é facilitar o compartilhamento realizadas para trabalhar com o Big Data,
de informações pela internet. O Consórcio World Wide Web (W3C) é
um consórcio internacional no qual organizações filiadas, uma equipe em O Big Data sinaliza o princípio de essas visam a integração de diversas ferra-
tempo integral e o público trabalham juntos para desenvolver padrões para
a Web. (https://www.w3.org/ )
uma grande transformação na sociedade, mentas e desenvolvimento de novas com o
PROJETO DE BANCO DE DADOS 16
FUNDAMENTOS
E CONCEITOS
DE BANCO DE
DADOS
Para conversamos com alguém precisamos
conhecer seu idioma e gírias!
Para trabalhar com Banco de Dados
precisamos conhecer seu vocabulário!
SISTEMA DE GERÊNCIA DE • Construção do Banco de Dados: é dados relacionados e que são gerenciados
BANCO DE DADOS o processo de criação das estruturas por um sistema de gerência de banco de
físicas e configurações do Banco de dados.
Dados.
Os SGBD (Sistemas de Gerência de Dessa forma, o SGBD constitui-se
Banco de Dados ou Sistemas de Gerencia- • Manipulação do Banco de Dados: em um conjunto de softwares especializa-
mento de Banco de Dados) possibilitam são os processos de armazenamen- dos com funções específicas, interligados
a definição, construção e manipulação to de dados (inclusão, alteração e com os programas de aplicações e com o
de bancos de dados para as mais diversas exclusão de dados) e execução de banco de dados. Vamos conhecer alguns
aplicações. consultas e relatórios. destes softwares que fazem parte de um
SGBD ou trabalham em conjunto com ele:
Vamos entender melhor o que isso Vamos aprender a definir Banco de
significa: Dados!! Programas de Aplicação: são pro-
gramas desenvolvidos para as organiza-
• Definição do Banco de Dados: é a Há várias formas de definir o que é ções e usuários com os mais diversos fins:
descrição das estruturas que serão um banco de dados: conjunto de arquivos gestão empresarial, cálculos de impostos,
armazenadas no banco de dados, relacionados, coleção de dados operacio- gestão de estoques, cálculos de custos,
engloba a modelagem conceitual e nais armazenados e usados por sistemas, catalogação de livros, etc.
especificação física dos dados e suas coleção de dados relacionais. Enfim, um
relações. banco de dados é uma estrutura armazena- Gerenciador de Arquivos: software
da em um dispositivo físico composta por especializado em fazer a gestão dos arqui-
PROJETO DE BANCO DE DADOS 21
vos gerenciados pelo SGBD, que englobam Language) é parte da SQL e constitui-se em uma linguagem de definição de dados,
arquivos de dados, arquivos de índices, que é utilizada para criação de estruturas (tabelas, objetos, funções, etc.) no banco
arquivos de dicionários de dados, arquivos de dados.
de recuperação, arquivos de usuários, etc.
Suas principais funções são: alocar espaço Dicionário de Dados: é o componente responsável pelos metadados do banco de
nos dispositivos de armazenamento, criar dados. Os metadados são uma estrutura que possui as informações sobre a estrutura
e gerenciar estruturas de indexação, criar do banco de dados. Metadados são dados que tem as explicações dos dados que serão
e gerenciar estruturas de recuperação em armazenados no banco de dados. Assim os metadados tornam possível transformar
caso de falhas, criar e gerenciar estruturas os dados em informações.
de memória para otimizar o acesso aos
registros dos arquivos. É um dos mais Processador e Otimizador de Consultas: responsável por analisar comandos
importantes módulos de um SGBD e deve de consultas SQL e transformá-las em um plano de execução otimizado, para a efi-
funcionar de forma autônoma em relação ciente recuperação de dados.
aos outros módulos, pois isso permite que
seja atualizado de forma independente, Pré-compilador DML e Compilador DML: converte comandos DML (Da-
visando a otimização de seus processos taManipulation Language) em instruções para manipulação dos dados. A DML
ou adequação a atualizações dos sistemas é parte da linguagem SQL e constitui-se por comandos de manipulação de dados
operacionais. (inclusão, alteração e exclusão).
inacessíveis para outras transações, toda a estrutura do SGBD para utilizá-lo. Assim, por exemplo, um progra-
garantindo a correta execução con- mador de uma aplicação que consulta apenas o nome e o endereço de pessoas
corrente das transações, mantendo armazenadas no Banco de Dados, precisa apenas conhecer essas informações e
a integridade dos dados do banco não precisa saber outros detalhes do esquema de dados e nem precisa saber as
de dados. configurações físicas do SGBD. Esta é uma das grandes vantagens dos SGBD.
• Abstração de Dados: o SGBD for- A figura, a seguir, apresenta a relação entre os níveis.
nece aos usuários uma visão abstrata
dos dados, ou seja, dependendo da
necessidade, cada tipo de usuário
terá acesso as informações que pre-
cisa, sem ser necessário compreender 3 American National Standards Institute, Standards Planning And Requirements Committee
PROJETO DE BANCO DE DADOS 24
por exemplo), definição de novas SGBD para utilizá-los, apenas usam putadores: profissional da área de
regras de integridade e acesso, e as aplicações que lhes fornecem uma informática, responsável pela insta-
isso não implicará em alterações visão abstrata dos dados que contêm lação, configuração e gerenciamento
nos programas de aplicações e vi- apenas as informações que precisam das redes de computadores e siste-
sões já desenvolvidas, com exceção para realização de seu trabalho. mas nela instalados. Logo, o SGBD
daqueles que sejam diretamente é um desses sistemas e portanto é o
afetados pela alteração realizada. • Desenvolvedores de Aplicações: Administrador de Rede junto com o
Essa independência tem peso de são profissionais da área de infor- Administrador de Banco de Dados,
uma obrigatoriedade parcial, ou mática que desenvolvem aplicações, o qual faz as configurações no nível
seja, os SGBD devem cumprir para isso precisam conhecer parte interno (físico) do SGBD, além de
essa regra, mas visto que algumas do esquema conceitual do banco de monitorar questões de performance
aplicações/visões serão afetadas dados, necessários para o desenvol- e realizar procedimentos de segu-
pela alteração, considera-se que a vimento das aplicações e precisam rança.
regra de independência de dados interagir com o Administrador do
lógica é parcialmente cumprida. Banco de Dados para permissões. • Administrador do Banco de Dados
(DBA – Database Administrator):
Assim, percebe-se que é importante • Analistas e Projetistas de Siste- profissional da área de informáti-
entender quais são os principais tipos de mas: são profissionais da área de ca responsável pelo gerenciamento
usuários que utilizam (trabalham com) os informática que analisam e proje- dos Sistemas de Banco de Dados e
Sistemas de Banco de Dados e seus papéis/ tam aplicações, definindo o esquema engloba as seguintes funções: par-
responsabilidades neste contexto: conceitual do banco de dados e suas ticipar da instalação e configura-
restrições de integridade e acesso, ção do SGBD e Bancos de Dados;
• Usuários Finais: são pessoas que estes são passados ao Administrador participar da definição do esquema
utilizam programas de aplicação, do Banco de Dados para que faça conceitual; criar e gerenciar o esque-
especificamente, construídos com as integrações e configurações no ma conceitual no Banco de Dados,
alguma finalidade (administrativa, nível conceitual do SGBD. realizando integração de novas es-
científica, etc.). Esses usuários não truturas quando necessário; criar as
precisam ter conhecimentos sobre • Administrador de Redes de Com- restrições de integridade e restrições
PROJETO DE BANCO DE DADOS 27
de acesso, gerenciando-as; definir e são de dados, além do objetivo principal de conhecimento, mineração de dados e
gerenciar as possíveis visões e seus de uma banco de dados, que é recuperar outros tipos de análises. Embora padro-
modos de acesso; conceder acesso as informações, o que se expressa através nizado pela ANSI e ISO, a SQL possui
aos Bancos de Dados; monitorar a de consultas. muitas variações e extensões produzidas
performance do SGBD e das aplica- pelos fabricantes de SGBDs, mesmo assim
ções que usam os Banco de Dados, A linguagem padrão para trabalhar mantém diversas estruturas comuns, o que
de maneira, a perceber problemas e com os Sistemas Gerenciadores de Banco permite que seja migrada de uma plata-
realizar ou solicitar os ajustes neces- de Dados Relacionais é a SQL (Structured forma para outra sem grandes mudanças
sários. Enfim, o DBA é uma peça Query Language – Linguagem de Con- estruturais.
central em um ambiente que utilize sulta Estruturada). A SQL se originou do
SGBDs. trabalho de E.F. Codd que desenvolveu na O conjunto de comandos da lingua-
IBM a linguagem SEQUEL (Strutucred gem SQL pode ser agrupado conforme
English Query Language - Linguagem a função que possui e assim se define a
LINGUAGEM PADRÃO DOS
de Consulta em Inglês Estruturado). Os estrutura básica dessa linguagem:
SGBD fornecedores de banco de dados relacio-
nais buscaram um método padronizado Linguagem de Definição de Da-
Para trabalhar com os SGBDs para gerenciar os dados dos bancos de dos (DDL – Data Definition Language):
disponíveis, atualmente, tem-se diversas dados relacionais, assim a linguagem SQL Subconjunto de comandos para criação,
interfaces gráficas, mas para o desenvol- tornou-se popular e foi padronizada pelo alteração e remoção de estruturas no Ban-
vimento de aplicações é ainda necessário ANSI (American National Standards Ins- co de Dados, principalmente a estrutura
conhecer a linguagem que permita criar titute) que lançou os padrões para SQL base desse, que são as tabelas. Assim a
e administrar o esquema do banco de da- em 1986, 1989, 1992, 1999, 2003 e 2006. DDL possui comandos para criar, alterar
dos. Além disso, criar e administrar todo Cada um agregando novos elementos que e remover tabelas (CREATE TABLE,
tipo de estruturas, criar e administrar as foram tornando a linguagem mais po- ALTER TABLE E DROP TABLE). Os
restrições de integridade, configurar e ge- derosa e, atualmente, atende ao padrão comandos DDL são diretamente efetiva-
renciar o acesso, criar e gerenciar funções e objeto-relacional, gerencia dados multimí- dos no Banco de Dados, não podem ser
trabalhar com a base de dados, realizando dia e hipermídia e incorpora recursos de desfeitos, apenas podem ser compensados
as operações de inclusão, alteração e exclu- inteligência artificial para gestão de bases pela execução de comando inverso.
PROJETO DE BANCO DE DADOS 28
Linguagem de Manipulação de dos (DTL – Data Transaction Language): serão utilizados para construção da base
Dados (DML – Data Manipulation Lan- Subconjunto de comandos que possibili- de dados do sistema.
guage): Subconjunto de comandos para in- tam o controle de transações e engloba
serir, remover e modificar informações em os seguintes comandos: BEGIN TRAN- Por que é importante MODE-
um esquema de banco de dados (INSERT, SACTION, que define o início de uma LAR?
UPDATE E DELETE). Os comandos transação; COMMIT, que finaliza uma
DML não são diretamente efetivados no transação com sucesso e efetiva todas as A modelagem é uma etapa que faz
Banco de Dados, pois dependem da con- operações realizadas no Banco de Dados; e parte do processo de análise de um sis-
clusão com sucesso da transação em que ROLLBACK, que interrompe uma tran- tema, de forma que quando é realizada a
estão, assim podem ser desfeitos. sação e desfaz todas as operações realizadas interação com os usuários, para compreen-
desde o início da transação. der adequadamente suas necessidades; as
Linguagem de Consulta de Dados informações das quais precisa; as relações
(DQL – Data Query Language) – é a parte entre as informações; as transformações
MODELAGEM DE DADOS
da SQL que é mais utilizada e embora que as informações podem sofrer; as regras
seja formada por apenas um comando de funcionamento das atividades que o
(SELECT) e um dos mais importantes, Saiba que a Modelagem de Dados é usuário realiza; os controles que precisam
permite a extração de dados/informações uma etapa essencial do desenvolvimento ser feitos; os resultados esperados; a forma
do Banco de Dados. de um sistema! de apresentação das informações; as aná-
lises de dados que devem ser realizadas;
Linguagem de Controle de Da- Modelar é um processo que utiliza quais os tipos de usuários que devem ter
dos (DCL – Data Control Language): um modelo de dados para construir um acesso às informações; as restrições de
esquema que explicita as características de
Subconjunto de comandos para controlar acesso a essas informações; enfim entender
informações, funcionamento e compor-
as autorizações de acesso e manipulação todo o contexto para o qual a aplicação
tamento de uma realidade para a cons-
das estruturas do SGBD. Isso é realizado será desenvolvida.
por comando que concedem ou revogam trução de um software. Nesse sentido,
as permissões (GRANT E REVOKE). o esquema de dados é uma abstração da A partir dessa compreensão é pos-
realidade que especifica as propriedades sível construir o esquema de dados e fa-
Linguagem de Transação de Da- dos dados, informações e restrições que zer toda a especificação do sistema, que
PROJETO DE BANCO DE DADOS 29
depois passará para etapas de projeto e • A manutenção do sistema será di- • Modelos conceituais: que permi-
desenvolvimento (programação). Quando fícil. tem a especificação de alto nível
a análise e a modelagem de dados não são do banco de dados, mais próxima
feitas, ou quando ocorrem falhas nesta Para realizar a modelagem de dados do usuário e independe do tipo
etapa diversos problemas podem ocorrer: é necessário utilizar modelos de dados! de SGBD que será utilizado. Os
principais modelos conceituais são:
• O sistema desenvolvido pode não MODELOS DE DADOS modelo entidade-relacionamento; e
atender às necessidades dos usuários; modelo de classes (orientado a ob-
jetos).
• O sistema desenvolvido pode ter O que são modelos de dados??
erros em relação aos requisitos; • Modelos lógicos: dependem da
Os modelos de dados são ferramen- classe de SGBD que será utilizado,
• A base de dados pode não conter tas conceituais que possuem um conjunto mas não de um SGBD específico. O
todas as informações que os usuários de estruturas para especificação de ele- modelo lógico é construído a partir
precisam; mentos de uma realidade, suas relações do modelo conceitual. Os principais
e suas restrições que permitem construir modelos lógicos são: modelo rela-
• A base de dados pode ter relaciona- esquemas de dados. cional; modelo orientado a objetos;
mentos incorretos entre os dados, ou e modelo objeto-relacional.
falta de relações adequadas; Ferramentas conceituais são recursos
textuais ou gráficos, que através de regras • Modelos físicos: descrevem as es-
• A base de dados pode ter regras de orientam o trabalho do analista para a truturas e métodos de acesso de um
integridade incorretas ou inadequa- construção dos esquemas. Assim, para SGBD específico e é construído a
das para o contexto da aplicação; compreender um modelo de dados é ne- partir do modelo lógico. Relaciona-
cessário compreender as suas ferramentas do com a linguagem de programação
• A base de dados pode não ter a fle- conceituais e regras. do SGBD.
xibilidade adequada para a evolução
do sistema desenvolvido; Os modelos de dados podem ser Para construção da base de dados é
classificados em: necessário seguir as seguinte etapas:
PROJETO DE BANCO DE DADOS 30
1. Análise de Requisitos: quando se lhido e toma-se por base o esquema lógico construído na fase anterior.
interage com os usuários e especi-
fica os requisitos do sistema. Isto A tabela a seguir resume, em forma de esquema, as etapas de construção de
é realizado através de entrevistas um banco de dados:
com os usuários, observação do seu
trabalho e análise de documentos. MUNDO REAL Requisitos da aplicação
Interação com os usuários
2. Projeto Conceitual: com base nos Compreensão da aplicação
requisitos é construído o esquema
conceitual do sistema e se utiliza
para isso um modelo conceitual.
Este esquema deve ser validado com MODELO Independente do SGBD
o usuário, visando eliminar dúvidas CONCEITUAL (Especificação mais
e garantindo que atende as expecta- (Modelo próxima dos usuários)
tivas do sistema a ser desenvolvido. Abstrato dos
Dados)
3. Projeto Lógico: realizamos o ma-
peamento do esquema de dados MODELO Dependente do tipo de Modelo Modelo Modelo Objeto
conceitual para um esquema lógico, LÓGICO SGBD mas não de um Relacional Orientado a Relacional
utilizando o modelo lógico da classe (Estrutura dos SGBD específico Objetos
de banco de dados escolhido. Dados) Derivado do Esquema
Conceitual
4. Projeto Físico: fazemos as espe-
MODELO Derivado do Esquema - Estruturas de armazenamento de dados
cificações da base de dados para
FÍSICO Lógico - Índices de acesso
um SGBD específico, definindo a
(Organização Dependente do SGBD - Restrições de integridade e segurança
organização física dos dados que
Física dos escolhido
englobam estruturas, tipos e outros
Dados)
elementos, conforme o SGBD esco-
PROJETO DE BANCO DE DADOS 31
1. Análise de Requisitos: etapa de en- Dessa forma, para o uso regular des-
trevistas e interação com o usuário, se processo precisamos estudar o Modelo
análise dos processos que o usuário Entidade-Relacionamento e o Modelo
realiza e estudo de documentos/re- Relacional.
latórios, visando a compreensão do
sistema a ser desenvolvido e gerando
a especificação dos requisitos.
MODELO
ENTIDADE-
RELACIONAMENTO
Você deve estar se perguntando:
Como construir um modelo conceitual?
O Modelo Entidade-Relacionamento é uma ferramenta
conceitual que permite construir uma abstração do mundo
real através de um esquema de dados conceitual, denomi-
nado diagrama entidade-relacionamento (DER), com as
estruturas fundamentais para construção do banco de dados.
Esse modelo possibilita que informações semânticas sejam
modeladas através de uma técnica diagramática (representação
gráfica). Foi construído com o intuito de ser simples e de que
os diagramas pudessem ser compreendidos pelos usuários,
para que pudessem participar de sua construção e validação.
ALUNO CURSO
INSTITUIÇÃO DE
CONCRETAS CURRÍCULO
ENSINO
DISCIPLINA PRÉDIO
ABSTRATAS MATRÍCULA CURSO PROJETO
SALA PROFESSOR
PROJETO DE BANCO DE DADOS 37
Por exemplo, considere a entidade tar vinculado a uma única ocorrência. Por
Pessoa que pode ter as seguintes proprie- exemplo, uma pessoa pode ser identificada
dades: nome, data de nascimento e email; por seu CPF e não há duas pessoas com o
Atividade: Considere alguns contextos de
assim, uma ocorrência da entidade Pessoa mesmo CPF. Toda a entidade deve ter um
sistemas e Enumere as principais entidades
será descrita por essas propriedades: Nome atributo identificador. A grande maioria
destes.
= Fulano Apelido, Data de Nascimento dos atributos são atributos comuns, ou seja,
= 01/01/1990, email = fulanoapelido@ não tem a responsabilidade de identificar
gmail.com. as ocorrências e podem ter seus valores
repetidos em diferentes ocorrências da
A representação gráfica dos atri- mesma entidade. Por exemplo, a data de
Sugestões de Contextos: gestão de DVDs, butos é feita com um segmento de reta, nascimento, mais de uma pessoa pode ter
controle de gastos, controle de compras, utilizando um pequeno círculo como ter- nascido no mesmo dia e, portanto, terão
etc. minal, junto a esse se coloca o nome do o mesmo valor neste atributo.
atributo.
Os atributos de uma entidade não
ATRIBUTOS ATRIBUTO INDETIFICADOR são, necessariamente, constituídos por
todas as características que objeto possui
MATRÍCULA ATRIBUTO na realidade, mas sim, devem ser o sub-
Os atributos são propriedades asso- conjunto dessas que são relevantes para
ciadas às entidades (ou aos relacionamen- o contexto da aplicação. Por exemplo, ao
tos) usados para descreve-los, ou seja, são Os atributos podem ser classificados pensarmos na entidade Pessoa, se o sistema
as informações relevantes no contexto da em: atributos comuns, ou simplesmente considerado for um sistema acadêmico, as
aplicação e que esta precisa ter. Pode-se, atributos, e atributos identificadores. Os informações relevantes podem ser nome,
também, definir atributos como caracte- atributos identificadores são aqueles que data de nascimento, CPF, email, telefo-
rísticas que são usadas para descrever as permitem diferenciar uma ocorrência da ne, por outro lado, se o contexto for um
ocorrências de uma entidade. entidade das outras ocorrências, ou seja, sistema de uma academia, poderíamos
são um código único para cada ocorrência, acrescentar peso e altura, mas se o con-
cada valor deste atributo, somente pode es- texto for um sistema de relacionamentos
PROJETO DE BANCO DE DADOS 38
poderíamos acrescentar cor dos olhos e cor dos cabelos. A seguir, veja os diagramas Assim, os atributos (características)
ER da entidade Pessoa nestes diferentes contextos de sistemas: não são inerentes à entidade considerada,
mas dependem da aplicação em que a en-
tidade está sendo modelada.
NOME
DATA DE NASCIMENTO
NOME
CPF
DATA DE NASCIMENTO
RELACIONAMENTOS
Contexto de um Sistema de PESO
QUANTIDADE
As tabelas a seguir apresentam alguns exemplos (ocorrências) fictícios para 1 100 30/03/2010 29/03/2012
as entidades, Pessoa e Empresa. Perceba que os atributos identificadores Código
Pessoa e Código Empresa são informações que não podem ter ser valores repetidos
2 100 30/03/2012 29/03/2014
em ocorrências diferentes.
CARDINALIDADE MÍNIMA
Atividade: Considere alguns contextos de
sistemas e Defina os relacionamento entre
as principais entidades. Especifica, se as ocorrências de uma entidade são obrigadas a participar do re-
lacionamento, ou seja, ter relação com no mínimo uma ocorrência da outra entidade,
ou não, nesse caso não precisam participar do relacionamento. Os valores possíveis
para a cardinalidade mínima são:
Sugestões de Contextos: gestão de DVDs,
controle de gastos, controle de compras, • 1 – que indica obrigatoriedade (restrição).
etc.
• 0 – que indica a não obrigatoriedade.
PROJETO DE BANCO DE DADOS 43
CARDINALIDADE MÁXIMA ER apresenta a relação entre pessoas que é obrigada a se relacionar com um curso
fazem cursos. A cardinalidade foi especifi- (cardinalidade mínima = 0), ou seja, po-
cada apenas em uma das extremidades do derão existir pessoas que não tem relação
Especifica a proporção que as ocor- relacionamento, a fim de facilitar a com- com cursos. Além disso, cada pessoa pode
rências de uma entidade podem se relacio- preensão. Foi definida como (1,1), ou seja, se relacionar com no máximo um curso
nar com as ocorrências da outra entidade. cardinalidade mínima = 1, e cardinalidade (cardinalidade máxima = 1), isso é uma
Na prática, indica se uma ocorrência pode máxima = 1. Explicando a interpretação restrição que deverá ser controlada pelo
se relacionar com no máximo uma ocor- desta especificação: cada ocorrência de SGBD. A leitura desse relacionamento é
rência da outra entidade ou se pode se pessoa é obrigada a se relacionar como no a seguinte: uma pessoa não é obrigada a
relacionar com duas ou mais ocorrências. mínimo um curso (cardinalidade míni- fazer um curso e pode fazer no máximo
Os valores possíveis para a cardinalidade ma = 1), isso é uma restrição e deverá ser um curso.
máxima são: garantida pelo SGBD. Além disso, cada
pessoa pode se relacionar com no máximo
(0, 1)
• 1 – que indica a relação com no má- um curso (cardinalidade máxima = 1), isso PESSOA FAZER CURSO
ximo 1 ocorrência (restrição) também é uma restrição que deverá ser
controlada pelo SGBD. A leitura desse
• N – que indica que pode ter relação relacionamento é a seguinte: uma pessoa Exemplo 3: A cardinalidade foi de-
com várias ocorrências é obrigada a fazer exatamente um curso. finida como (1,n), ou seja, cardinalidade
mínima = 1, e cardinalidade máxima =
Na prática, conforme o contexto, n. Explicando a interpretação desta es-
(1, 1)
pode-se ter qualquer combinação de car- PESSOA FAZER CURSO pecificação: cada ocorrência de pessoa é
dinalidades mínimas e máximas. As car- obrigada a se relacionar como no mínimo
dinalidades serão definidas a partir das um curso (cardinalidade mínima = 1), isso
regras da aplicação. Exemplo 2: A cardinalidade foi de- é uma restrição e deverá ser garantida pelo
finida como (0,1), ou seja, cardinalidade SGBD. Além disso, cada pessoa pode se
Vamos analisar alguns exemplos! mínima = 0, e cardinalidade máxima = relacionar com diversos cursos (cardina-
1. Explicando a interpretação desta espe- lidade máxima = n). A leitura deste re-
Exemplo 1: O seguinte diagrama cificação: cada ocorrência de pessoa não lacionamento é a seguinte: uma pessoa é
PROJETO DE BANCO DE DADOS 44
obrigada a fazer no mínimo um curso e se relacionar as informações na aplicação não é obrigada a fazer um curso (cardina-
pode fazer vários cursos. que está sendo modelada. Perceba nesses lidade mínima = 0) e pode fazer diversos
exemplos que a análise é feita, conside- cursos (cardinalidade máxima = n). Já, um
PESSOA FAZER
(1, n) rando a forma como a entidade Pessoa se curso é obrigado a ter no mínimo uma
CURSO
relaciona com a entidade Curso e que as pessoa que o faça (cardinalidade mínima
cardinalidades são especificadas ao lado = 1) e pode ter diversas pessoas que o faça
Exemplo 4: A cardinalidade foi de- da entidade Curso. Agora, é necessário (cardinalidade máxima = n).
finida como (0,n), ou seja, cardinalidade especificar as cardinalidades, considerando
mínima = 0, e cardinalidade máxima = como a entidade Curso se relaciona com PESSOA
(1, n)
FAZER
(0, n)
CURSO
n. Explicando a interpretação desta espe- a entidade Pessoa. As alternativas são as
cificação: cada ocorrência de pessoa não mesmas e sua escolha sempre dependerá
é obrigada a se relacionar com um curso da aplicação. Analise os exemplos a seguir. Já no diagrama ER, a seguir, tem-se
(cardinalidade mínima = 0), ou seja, po- as seguintes especificações: Uma pessoa
derão existir pessoas que não tem relação No diagrama ER, a seguir, tem-se as não é obrigada a fazer um curso (cardina-
com cursos. Além disso, cada pessoa pode seguintes especificações: Uma pessoa deve lidade mínima = 0) e pode fazer diversos
se relacionar com diversos cursos (car- fazer exatamente um curso (cardinalidade cursos (cardinalidade máxima = n). Já, um
dinalidade máxima = n). A leitura deste mínima = 1 e cardinalidade máxima = 1); curso é obrigado a ter no mínimo uma
relacionamento é a seguinte: uma pessoa Já um curso pode não ter pessoas que o pessoa que o faça (cardinalidade mínima
não é obrigada a fazer um curso e pode façam (cardinalidade mínima = 0) e pode = 1) e pode ter diversas pessoas que o faça
fazer vários cursos. ter diversas pessoas que o façam (cardina- (cardinalidade máxima = n).
lidade máxima = n).
(0, n)
PESSOA FAZER CURSO
(0, n) (1, 1)
PESSOA FAZER CURSO Atividade: Complemente a atividade
É importante destacar que todos anterior definindo as cardinalidades dos
esses diagramas podem estar corretos em relacionamentos.
contextos diferentes. Portanto, é necessá- Já no diagrama ER, a seguir, tem-se
rio compreender muito bem como devem as seguintes especificações: Uma pessoa
PROJETO DE BANCO DE DADOS 45
( __, 1) ( __, 1)
Sugestões de Contextos: gestão de DVDs, ENTIDADE A RELACIONAR ENTIDADE B
controle de gastos, controle de compras,
etc.
Relacionamentos (1:N) e (N:1) – um-para-muitos e muitos-para-um: quando
as ocorrências de uma entidade só podem se relacionar com no máximo 1 entidade,
mas essa pode ser relacionar com diversas da primeira.
TIPOS DE RELACIONAMENTOS
( __, 1) ( __, N)
Os relacionamentos são classificados ENTIDADE A RELACIONAR ENTIDADE B
conforme as cardinalidades máximas que
os compõe. Dessa forma, podemos ter os
seguintes tipos de relacionamentos: 1:1
(um-para-um); 1:N (um-para-muitos); N:1
( __, N) ( __, 1)
(muitos-para-um); e N:N (muitos para ENTIDADE A RELACIONAR ENTIDADE B
muitos). Essa classificação será muito im-
portante para o mapeamento do modelo
entidade-relacionamento e para o modelo
relacional. Relacionamentos (N:N) – muitos-para-muitos e muitos-para-um: quando as
ocorrências das entidades que participam do relacionamento podem se relacionar
Relacionamentos (1:1) – um-para- com diversas ocorrências das outras entidades deste.
-um: quando as ocorrências das entidades
que participam do relacionamento somente
( __, N)
podem ser relacionar com uma entidade ENTIDADE A RELACIONAR
( __, N)
ENTIDADE B
relacionada.
PROJETO DE BANCO DE DADOS 46
RELACIONAMENTO IDENTIFICADOR
CÓDIGO LIVRO
(1, 1) (0, N) CÓDIGO EXEMPLAR
TÍTULO
LIVRO TER EXEMPLAR DATA AQUISIÇÃO
PROJETO DE BANCO DE DADOS 48
GENERALIZAÇÃO/ESPECIALIZAÇÃO Considere que precisamos modelar um sistema que gerencie todo tipo de meio
de transporte: carros, caminhões, motos, iates, barcos, helicópteros, aviões, trens, etc.
Algumas propriedades são compartilhadas entre esses meios de transporte: identi-
A generalização e a especialização ficação, tipo, modelo, capacidade de passageiros, etc. Mas outras são específicas da
são formas de associação entre objetos categoria a que pertencem, por exemplo, dos veículos aéreos é necessário saber a au-
(entidades) que pertencem a uma mesma tonomia de voo e a altitude máxima, dos veículos fluviais é necessário saber o calado
categoria, normalmente representando (para que se saiba onde podem navegar). Esses requisitos podem ser observados no
uma hierarquia e que compartilham pro- diagrama, a seguir, que apresenta a entidade MEIO DE TRANSPORTE (entida-
priedades, além de terem, frequentemente, de generalizada) e as entidades especializadas: TRANSPORTE TERRESTRE,
propriedades específicas. Uma entidade TRANSPORTE AÉREO e TRANSPORTE FLUVIAL.
generalizada é definida para especificar
os atributos compartilhados (comuns) às
CÓDIGO MEIO
entidades especializadas, que possuem os CAPACIDADE
atributos próprios (não compartilhados). A MEIO DE TRANSPORTE TIPO
representação gráfica do conceito de gene-
MODELO
ralização/especialização é feita utilizando
um triângulo, no qual sua base organiza as
entidades especializadas e a ponta indica
a entidade generalizada.
TRANSPORTE TRANSPORTE CALADO
ENTIDADE TERRESTRE FLUVIAL
GENERALIZADA
8. O que é um autorrelacionamento?
MODELO
RELACIONAL
Você já deve estar se perguntando, como
funciona esse modelo que é base dos SGBDs!
CHAVE ESTRANGEIRA
CHAVES
Uma chave estrangeira é um cam-
As chaves são estruturas que organizam os processos de manipulação das tuplas po em uma tabela que referencia a chave
das tabelas e de suas relações. Assim, os principais tipos de chave são: chave primária primária de outra tabela.
e chave estrangeira.
No exemplo a seguir: Na tabela
PESSOA a chave primária é o campo
CHAVE PRIMÁRIA
Código Pessoa e ela também tem uma
chave estrangeira, que é o campo Código
A chave primária de uma tabela é um campo ou conjunto de campos, que Cidade que referencia a chave primária da
permitem identificar e diferenciar cada linha (tupla) de uma tabela, dessa forma, tabela CIDADE.
um determinado valor de chave primária somente identifica uma única linha (tupla).
INTEGRIDADE DE IDENTIDADE
lores desse campo nas outras tuplas INTEGRIDADE REFERENCIAL campo, que é chave estrangeira de
(linhas) da tabela, se for diferente uma tupla, antes de efetivar a alte-
a tupla (linha) será alterada, caso ração é verificado se o valor deste
contrário, será informado um erro A integridade referencial é uma re- campo possui correspondência com
e a tupla não será alterada. gra que define que o valor do campo, que algum dos valores do campo, que é
é chave estrangeira em uma tabela, deve chave primária na tabela referen-
Assim, consideremos a seguinte ser um dos valores que são chave primária ciada, se isto for verdadeiro a tupla
tabela de Cidades e as tuplas (linhas) já na tabela referenciada ou deve ter o valor poderá ser alterada, caso contrário
inseridas nela: NULL (vazio), caso os requisitos da apli- será gerado um erro e indicado que
cação permitam. Esta regra tem impacto não há correspondência do valor da
sobre as operações de inclusão, alteração chave estrangeira.
e exclusão de tuplas.
• Exclusão: quando for solicitada a
• Inclusão: quando for inserida uma exclusão de uma tupla em uma ta-
tupla em uma tabela em que um dos bela que é referenciada, por chave
campos é chave estrangeira, antes estrangeira em outra tabela, é veri-
de efetivar a inclusão é verificado ficado se o valor da chave primária
se o valor deste campo possui cor- da tupla a ser excluída é referenciado
Agora, suponhamos que se deseja respondência com algum dos valo-
incluir uma nova tupla (linhas) com as res do campo, que é chave primária
seguintes informações: código cidade = 3 na tabela referenciada, se isto for
e descrição = Farroupilha. Essa nova tupla verdadeiro, a nova tupla poderá ser
não será inserida na tabela, pois não atende incluída, caso contrário será gera-
à restrição de integridade de identidade do um erro e indicado que não há
tentando incluir uma nova tupla com um correspondência do valor da chave
valor de chave primária que já existe na estrangeira.
tabela.
• Alteração: quando for alterado o
PROJETO DE BANCO DE DADOS 54
por algumas das tuplas, onde é chave estrangeira em outra tabela, se for a tupla • Se tentarmos excluir uma tupla da
não será excluída, caso contrário será permitida a exclusão. tabela CIDADE, aquela em que o
Código Cidade = 2. O SGBD de-
Consideremos as seguintes tabelas para compreender a integridade referencial, verá gerar um erro de integridade
onde na tabela PESSOA, a chave primária é o campo Código Pessoa e possui uma referencial, pois o valor dessa chave
chave estrangeira, Código Cidade, que referencia a Tabela CIDADE, que tem como primária é referenciado por pelo me-
chave primária o campo Código Cidade: nos uma tupla na tabela PESSOA
e, portanto, esta tupla não será ex-
cluída.
INTEGRIDADE DE DOMÍNIO
lores incompatíveis, a operação não pode sibilita uma visão resumida, e ao mesmo • Os campos que forem opcionais (que
ser realizada e deve ser informada uma tempo, bastante completa do esquema podem receber o valor nulo) serão
mensagem de erro. relacional. precedidos do símbolo °:
as quais devem ser válidas para todas as especifica que todos os atributos de uma TERCEIRA FORMA NORMAL
tabelas de um banco de dados. Essas re- tabela devem ser atômicos, isso significa
gras visam garantir a correta estruturação que em cada tupla da tabela, cada atri- A terceira forma normal (3FN) es-
do banco de dados, garantindo que seja buto pode receber somente um valor. Se pecifica que as tabelas devem estar livres
íntegro, facilite a realização das operações na tabela existirem atributos que podem de dependências funcionais transitivas.
(inclusão, alteração, exclusão e consultas), receber mais de um valor, eles devem ser Esse tipo de dependência ocorre quan-
amplie a disponibilidade das informações extraídos e em alguns casos dar origens a do campos que não fazem parte da chave
durante a realização dessas operações, além novas tabelas. primária dependem funcionalmente de
de evitar a redundância de dados. outros campos que também não são chave.
SEGUNDA FORMA NORMAL Assim, esses campos também devem ser
O processo de análise da norma- retirados da tabela e se necessário construir
lização de um banco de dados deve ser novas tabelas.
realizado seguindo a sequência das formas A segunda forma normal (2FN)
normais, onde cada forma normal especi- especifica que todos os atributos de uma
fica uma regra que a tabela deve cumprir. tabela devem depender, funcionalmente,
Se a tabela não estiver em conformidade de toda a chave primária da tabela, não
com a regra, deve ser transformada para permitindo que ocorram dependências
que se adeque a ela. O processo de nor- funcionais parciais, ou seja, que algum
malização pode ser aplicado em uma base atributo dependa funcionalmente ape-
de dados relacional que já esteja em uso nas de parte da chave primária da tabela.
com o objetivo de avaliar a sua qualidade A análise dessa regra somente é realiza-
e reestruturá-la, a fim de que atenda as da quando a chave primária da tabela é
regras de normalização. composta por 2 ou mais campos. Quando
algum atributo possui um dependência
PRIMEIRA FORMA NORMAL funcional parcial ele deve ser retirado da
tabela e às vezes é necessária a criação de
nova tabela.
A primeira forma normal (1FN)
FAZENDO UM AUTOESTUDO!
MAPEAMENTO
ER → RELACIONAL
E agora! O que eu faço com esses dois
modelos: entidade-relacionamento e
relacional?
Depois de construir um Diagrama Entidade-Relaciona-
mento (DER), que constitui-se na etapa de projeto conceitual
do banco de dados, pode-se fazer o mapeamento deste para
um esquema conceitual relacional.
Para fazer esse mapeamento, devemos iniciar pelo mapeamento das entidades
e depois mapear o relacionamento:
• #CodigoCurso indica que este campo é uma chave estrangeira que referencia
a tabela CURSO;
Considere o seguinte exemplo, onde um livro pode ter no máximo uma ficha caso, colocar a chave estrangeira na tabela,
cadastral e uma ficha cadastral é de exatamente um livro, ou seja, é um relaciona- que é obrigada a se relacionar com a outra,
mento (1:1). neste exemplo é a FICHACADASTRAL
que deve estar relacionada a no mínimo 1
CÓDIGO LIVRO
e no máximo 1 LIVRO.
TÍTULO
RESUMO (1, 1) (0, 1)
QUANTIDADE PÁGINAS LIVRO RELAÇÃO_1 FICHA
CÓDIGO FICHA
LIVRO (CodigoLivro, Titulo, Re-
CADASTRAL DESCRIÇÃO
sumo, QuantidadePaginas, Edicao, Ano)
EDIÇÃO
ANO
FICHACADASTRAL (Codigo-
Sempre, antes de mapear o relacionamento, é necessário mapear as entidades Ficha, Descricao, #CodigoLivro)
que participam dele:
Perceba que na tabela FICHACA-
LIVRO (CodigoLivro, Titulo, Resumo, QuantidadePaginas, Edicao, Ano) DASTRAL:
• #CodigoLivro indica que este cam-
FICHACADASTRAL (CodigoFicha, Descricao) po é uma chave estrangeira que re-
ferencia a tabela LIVRO.
Para mapear o relacionamento (1:1) temos duas alternativas:
a) Fazer a fusão das tabelas, nesse caso elegendo qual a mais relevante para o MAPEAMENTO DE
sistema e incorporando a outra. Nesse exemplo, a tabela mais relevante é LIVRO, AUTORRELACIONAMENTOS
assim a FICHACADASTRAL sofrerá a fusão e seus campos serão agregados à
tabela LIVRO: Os autorrelacionamentos seguem as
mesmas regras de mapeamento dos rela-
LIVRO (CodigoLivro, Titulo, Resumo, QuantidadePaginas, Edicao, Ano, cionamentos entre duas entidades, a única
CodigoFicha, DescricaoFicha) diferença é que em algumas situações será
necessário dar o nome dos papéis para as
b) A outra alternativa, é tratar o relacionamento como se fosse (N:1) e nesse chaves estrangeiras.
PROJETO DE BANCO DE DADOS 64
Neste diagrama temos um autorrelacionamento do tipo (N:N), ou seja, um Pro- PRODU TOCOM P OSICAO
duto (Composto) não é obrigado a ter componentes e pode ter vários componentes e (#CodigoProdutoComposto, #Codi-
um Produto (Componente), o qual não é obrigado a fazer parte de uma composição, goProdutoComponente)
mas pode fazer parte de diversas composições.
Perceba que na tabela PRODUTO-
CODIGO PRODUTO (0, 1) COMPOSTO COMPOSICAO:
COMPOR
DESCRICAO PRODUTO (0, 1) COMPONENTE
• #CodigoProdutoComposto indica
que este campo é uma chave estran-
O mapeamento desse autorrelacionamento segue a mesma regra de mapea- geira que referencia a tabela PRO-
mento dos relacionamentos do tipo (N:N), ou seja, dará origem a uma nova tabela, DUTO
que deve herdar como chave primária as chaves primárias das tabelas relacionadas.
Começamos mapeando a entidade: • #CodigoProdutoComponente in-
dica que este campo é uma chave
PRODUTO (CodigoProduto, Descricao): estrangeira que referencia a tabela
PRODUTO
Agora, vamos mapear o relacionamento, neste caso criaremos uma nova tabela,
que decidimos chamar de PRODUTOCOMPOSICAO, e nela, devemos herdar as • A chave primária é CodigoPro-
duas chaves primárias das tabelas relacionadas, por se tratar de um autorrelaciona- dutoComposto + CodigoProduto-
mento, a tabela ficaria assim: Componente, é uma chave primária
composta por dois campos.
PRODUTOCOMPOSICAO (#CodigoProduto, #CodigoProduto)
Mas não podemos ter dois campos com o mesmo nome, por isso utilizaremos
os papéis para diferenciá-los:
MAPEAMENTO DE
RELACIONAMENTOS CÓDIGO EMPRÉSTIMO
IDENTIFICADORES DATA EMPRÉSTIMO
DEPENDENTE
(0, N)
POSSUIR
(1, 1)
ASSOCIADO
CÓDIGO USUÁRIO
O relacionamentos identificadores
relacionam uma entidade que depende de ASSOCIADO (CodigoAssociado, Nome, DataNascimento)
outra para existir e ser identificada, por-
tanto, esta entidade dependente (também Depois de mapear a entidade associado, procede-se o mapeamento da entidade
denominada entidade fraca) dará origem DEPENDENTE que deve herdar a chave primária da tabela ASSOCIADO:
a uma nova tabela e deverá herdar a chave
primária da tabela a que está relacionada DEPENDENTE ( #CodigoAssociado, NumeroDependente, Nome)
pelo relacionamento identificar, a esta se
acrescenta o seu atributo identificador, Perceba que na tabela DEPENDENTE:
compondo assim, sua chave primária,
depois se adicionam os outros atributos • #CodigoAssociado indica que este campo é uma chave estrangeira que refe-
como campos. rencia a tabela ASSOCIADO
Neste diagrama, a entidade DE- • A chave primária é CodigoAssociado + NumeroDependente, é uma chave
PENDENTE está ligada a entidade primária composta por dois campos.
ASSOCIADO por um relacionamento
identificador. Assim, para mapear esse
diagrama devemos primeiro mapear a enti-
MAPEAMENTO DE GENERALIZAÇÃO/ESPECIALIZAÇÃO
dade associada e depois mapear a entidade
dependente, através do relacionamento A generalização/especialização especifica uma hierarquia de entidades que
identificador. possui três alternativas de mapeamento. A escolha da alternativa depende do tipo de
informações que são representados por este conceito.
PROJETO DE BANCO DE DADOS 66
Usaremos o mesmo diagrama ER para exemplificar essas alternativas de mapea- a. Todas as entidades da hierarquia
mento, nesse diagrama é apresentada uma hierarquia de generalização/especialização, dão origem às Tabelas: Neste caso,
onde a entidade generalizada é FUNCIONÁRIO que se especializa em ADVOGA- cada uma das entidades que com-
DO e MOTORISTA (entidades especializadas). Vamos analisar esta especificação: a põe a generalização/especialização
organização terá outros funcionários que não são advogados e nem motoristas? Sim, é mapeada em tabelas, conforme
mas não foram modeladas essas outras especializações, pois não possuíam informa- especificado no diagrama ER. Esta
ções próprias, precisando apenas dos dados de FUNCIONÁRIO. Além disso, todo é a forma mais recomendável de
ADVOGADO, neste diagrama, é um FUNCIONÁRIO, e todo MOTORISTA é mapeamento deste conceito. Nes-
um FUNCIONÁRIO. Também podemos considerar que ADVOGADOS podem se caso, as entidades especializadas
ser MOTORISTAS e vice-versa. devem herdar a chave primária da
tabela mapeada a partir da entidade
generalizada.
FUNCIONÁRIO ( CodigoFun-
cionario, Nome, DataNascimento )
ADVOGADO ( CodigoFuncio-
nario, Nome, DataNascimento, OAB,
Especialidade)
REFERÊNCIAS