Escolar Documentos
Profissional Documentos
Cultura Documentos
de Banco de Dados
1. INTRODUO 1
DADO 1
INFORMAO 1
CONHECIMENTO 1
BANCO DE DADOS 2
SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS 2
MODELO DE DADOS 2
SISTEMA DE GERENCIAMENTO DE ARQUIVOS 2
MODELO HIERRQUICO 3
MODELO EM REDE 3
MODELO RELACIONAL 3
MODELO ORIENTADO A OBJETOS 4
SISTEMAS OBJETO-RELACIONAIS 4
ABSTRAO DE DADOS 5
NVEL INTERNO 5
NVEL CONCEITUAL 5
NVEL EXTERNO 5
INDEPENDNCIA DE DADOS 5
2. ARQUITETURAS DE SISTEMAS E MODELAGEM DE DADOS 7
ARQUITETURAS DE SISTEMAS 7
SISTEMAS CENTRALIZADOS 7
SISTEMAS CLIENTE-SERVIDOR 7
SISTEMAS PARALELOS 7
SISTEMAS DISTRIBUDOS 7
MODELAGEM DE BANCO DE DADOS 8
LEVANTAMENTO E ANLISE DE REQUISITOS 8
MODELO CONCEITUAL 8
MODELO LGICO 8
MODELO FSICO 8
3. MODELO CONCEITUAL 10
DIAGRAMA ENTIDADE-RELACIONAMENTO 10
MER (MODELO ENTIDADE-RELACIONAMENTO) 10
ENTIDADES 10
ATRIBUTOS 10
ATRIBUTO IDENTIFICADOR OU ATRIBUTO DETERMINANTE 10
CARDINALIDADE 11
INTERPRETAO DO DIAGRAMA ENTIDADE-RELACIONAMENTO 11
DIAGRAMA DE OCORRNCIAS 11
4. GRAUS DE RELACIONAMENTOS 14
RELACIONAMENTO BINRIO 14
RELACIONAMENTO TERNRIO (N-RIO) 14
AUTORRELACIONAMENTO 15
AUTORRELACIONAMENTO 1:1 15
AUTORRELACIONAMENTO 1:N 15
AUTORRELACIONAMENTO N:N 15
5. GENERALIZAO/ESPECIALIZAO, ENTIDADE ASSOCIATIVA 17
GENERALIZAO ESPECIALIZAO 17
ESPECIALIZAO TOTAL 17
ESPECIALIZAO PARCIAL 17
MLTIPLOS NVEIS E HERANA MLTIPLA 18
HERANA DE PROPRIEDADES 18
GENERALIZAO/ESPECIALIZAO EXCLUSIVA 18
GENERALIZAO/ESPECIALIZAO NO EXCLUSIVA 18
ENTIDADE ASSOCIATIVA 19
ATRIBUTOS OPCIONAIS 20
ATRIBUTOS COMPOSTOS 20
ATRIBUTOS MULTIVALORADOS 20
6. ELABORAO DE DIAGRAMAS ENTIDADE RELACIONAMENTO 22
SISTEMA VIDEO LOCADORA 22
SISTEMA ESCOLA 22
SISTEMA EMPRESA 23
7. MODELO RELACIONAL 24
TABELA 24
CHAVE PRIMRIA (PRIMARY KEY) 24
CHAVE NICA (UNIQUE) 25
CHAVE ESTRANGEIRA (FOREIGN KEY) 25
RELACIONAMENTOS 25
RELACIONAMENTO 1:1 25
RELACIONAMENTO 1:N 25
RELACIONAMENTO N:N 26
NOTAO RESUMIDA PARA MODELOS LGICOS RELACIONAIS 26
INTEGRIDADE DE DADOS 26
INTEGRIDADE DE DOMNIO 26
INTEGRIDADE DE ENTIDADE 27
INTEGRIDADE REFERENCIAL 27
CONSTRAINTS (RESTRIES) 27
NOMENCLATURA DE TABELAS E DE CAMPOS 27
TIPOS DE DADOS 28
8. MAPEAMENTO DO MODELO CONCEITUAL PARA O LGICO 30
RELACIONAMENTOS BINRIOS 30
AUTORRELACIONAMENTOS 31
RELACIONAMENTOS TERNRIOS 32
GENERALIZAO/ESPECIALIZAO 32
9. MAPEAMENTO DO MODELO CONCEITUAL PARA O LGICO ESTUDOS DE CASO 33
SISTEMA VIDEO LOCADORA 33
SISTEMA ESCOLA 33
SISTEMA EMPRESA 33
10. NORMALIZAO: CONCEITOS PRELIMINARES 34
NORMALIZAO 34
CHAVES 34
DEPENDNCIA FUNCIONAL (DF) 35
TRANSITIVIDADE 35
DEPENDNCIA FUNCIONAL IRREDUTVEL ESQUERDA 35
DEPENDNCIA MULTIVALORADA (DMV) 36
11. NORMALIZAO: FORMAS NORMAIS 38
1FN (PRIMEIRA FORMA NORMAL) 38
2FN (SEGUNDA FORMA NORMAL) 38
3FN (TERCEIRA FORMA NORMAL) 39
12. LGEBRA RELACIONAL 42
SELEO 42
PROJEO 43
PRODUTO CARTESIANO 43
DIFERENA 43
UNIO 44
INTERSECO 44
JUNO 44
JUNO NATURAL 45
DIVISO 45
OPERADORES 46
13. LGEBRA RELACIONAL - EXERCCIOS 48
14. SQL STRUCTURED QUERY LANGUAGE
MODELAGEM DE BANCO DE DADOS
1 INTRODUO
DADO
Podemos definir dado como uma seqncia de smbolos quantificados ou
quantificveis. Exemplo: texto (as letras so smbolos quantificados). Tambm
so dados: fotos, figuras, sons gravados e animao, pois todos podem ser
quantificados.
Um dado necessariamente uma entidade matemtica e, desta forma, puramente
sinttico. Isto significa que os dados podem ser totalmente descritos atravs de
representaes formais, estruturais. Sendo ainda quantificados ou quantificveis,
eles podem obviamente ser armazenados em um computador e processados por
ele.
INFORMAO
Informao uma abstrao informal (no pode ser formalizada atravs de uma
teoria lgica ou matemtica), que est na mente de algum, representando algo
significativo para essa pessoa.
Se a representao da informao for feita por meio de dados, pode ser
armazenada em um computador. Mas, o que armazenado no computador no a
informao, mas a sua representao em forma de dados.
CONHECIMENTO
Conhecimento pode ser caracterizado como uma abstrao interior, pessoal, de
algo que foi experimentado, vivenciado, por algum.
Nesse sentido, o conhecimento no pode ser descrito; o que se descreve a
informao. Tambm no depende apenas de uma interpretao pessoal, como a
informao, pois requer uma vivncia do objeto do conhecimento.
BANCO DE DADOS:
Um banco de dados pode ser definido como:
Uma coleo de dados integrados que tem por objetivo atender a uma
comunidade de usurios;
Um conjunto de dados persistentes e manipulveis que obedecem a um padro
de armazenamento. Exemplos: lista telefnica, dicionrio, etc.
MODELO DE DADOS
Modelo de dados refere-se descrio formal da estrutura de um banco de dados.
SISTEMAS OBJETO-RELACIONAIS
Fornecedores de bancos de dados relacionais adicionaram a seus produtos
capacidade de incorporar objetos mais complexos (imagem, som e vdeo) alm de
recursos de orientao a objetos. No entanto, isso no os torna sistemas puramente
orientados a objetos, apesar de sua denominao ORDMS Object-Relacional
Database Management System (Sistema de Gerenciamento de Banco de Dados
Objeto-Relacional).
Esses sistemas na realidade implementam uma camada de abstrao de dados em
cima de mtodos relacionais, o que torna possvel a manipulao de dados mais
complexos.
Seguem, portanto, as especificaes da SQL3 que fornecem capacidades
estendidas e de objetos adicionadas ao padro SQL.
Todas as caractersticas relacionais permanecem, ou seja, as tabelas continuam a
existir, porm elas possuem alguns recursos adicionais.
Anteriormente, as tabelas apenas podiam conter valores atmicos em seus
atributos, agora pode-se definir novos tipos de dados e us-los para receber
valores complexos.
Alguns Sistemas de Gerenciamento de Banco de Dados Objeto-Relacionais:
Informix, IBM DB2, Oracle 10g.
ABSTRAO DE DADOS
A arquitetura ANSI/SPARC (American National Standards Institute - Standards
Planning And Requirements Committee) se divide em trs nveis: interno,
conceitual e externo, embora outros nomes tambm sejam utilizados:
INDEPENDNCIA DE DADOS:
a capacidade de modificar a definio dos esquemas em determinado nvel, sem
afetar o esquema do nvel superior:
Independncia de dados fsica: a capacidade de modificar o esquema fsico
sem que, com isso, qualquer programa ou aplicao precise ser reescrito.
Independncia de dados lgica: a capacidade de modificar o esquema lgico
sem que, com isso, qualquer programa ou aplicao precise ser reescrito.
A independncia lgica mais difcil de ser alcanada, uma vez que as aplicaes
so mais fortemente dependentes da estrutura lgica dos dados do que de seu
acesso.
EXERCCIOS
1. Elabore um texto (mais ou menos vinte linhas) discorrendo sobre a importncia dos
registros de dados para uma empresa e para a sociedade em geral.
2. Como voc entende por: informao, dado e conhecimento?
3. O que um banco de dados? O que um SGBD (Sistema Gerenciador de Banco de
Dados)?
4. Cite cinco razes para utilizar-se um banco de dados computadorizado.
5. Fale brevemente sobre os seguintes modelos de banco de dados:
a. hierrquico
b. em rede
c. relacional
6. Quais so os trs nveis de abstrao de dados? Comente brevemente sobre eles.
LEITURA RECOMENDADA:
SISTEMAS CENTRALIZADOS
Sistemas centralizados so aqueles executados em grandes computadores centrais
(mainframes).
Os programas de aplicao e os de interface com os usurios, bem como as
funcionalidades do SGBD (Sistema Gerenciador de Banco de Dados) so todos
processados no sistema central.
Os usurios acessam o sistema central via terminais, sem poder de processamento,
atravs de uma rede de comunicao.
SISTEMAS CLIENTE-SERVIDOR
A estrutura fundamental dos sistemas cliente-servidor consiste de estaes de
trabalho (normalmente PCs) conectadas via rede aos servidores que tm
funcionalidades especficas: servidor de arquivo, de impresso, web, SGBD, etc.
As mquinas clientes (estaes de trabalho) oferecem aos usurios as interfaces
apropriadas para utilizar os servidores, bem como poder de processamento para
executar aplicaes locais.
Sistemas cliente-servidor de trs camadas para aplicaes Web
Possui uma camada intermediria entre o cliente e o servidor de banco de dados.
Essa camada intermediria chamada de servidor de aplicaes ou servidor web e
pode armazenar regras de negcio (procedimentos ou restries) que so usadas
para acessar os dados no servidor de banco de dados.
SISTEMAS PARALELOS
Suprem a demanda de aplicaes que geram consultas em bancos de dados muito
grandes ou que tenham de processar uma quantidade enorme de transaes por
segundo.
Sistemas paralelos imprimem velocidade ao processamento e I/O (input/output)
por meio do uso em paralelo de diversas CPUs e discos. H diversos modelos
arquitetnicos: memria compartilhada, disco compartilhado, etc.
SISTEMAS DISTRIBUDOS
Em um sistema distribudo o banco de dados armazenado em diversos
computadores. Os computadores comunicam-se uns com os outros por intermdio
de redes de alta velocidade ou linhas telefnicas. Eles no compartilham memria
principal ou discos.
Os computadores em um sistema de banco de dados distribudos podem variar,
quanto ao tamanho e funes, desde estaes de trabalho at sistemas de grande
porte (mainframes).
MODELO CONCEITUAL
a prxima etapa do projeto de um sistema de aplicao em banco de dados.
Representa ou descreve a realidade do ambiente do problema, constituindo-se em
uma viso global dos principais dados e relacionamentos, independente das
restries de implementao.
uma descrio em alto nvel (macro definio), mas que tem a preocupao de
capturar e retratar toda a realidade de uma organizao.
O resultado de um modelo conceitual um esquema que representa a realidade
das informaes existentes, assim como as estruturas de dados que representam
estas informaes.
MODELO LGICO
Tem seu incio a partir do modelo conceitual, levando em considerao trs
abordagens principais: Relacional (atualmente o mais utilizado), Hierrquica e
Rede.
O modelo lgico descreve as estruturas que estaro contidas no banco de dados,
mas sem considerar ainda nenhuma caracterstica especfica de SGBD, resultando
em um esquema lgico de dados.
MODELO FSICO
Parte do modelo lgico e descreve as estruturas fsicas de armazenamento de
dados, tais como: tamanhos de campos, ndices, tipos de dados, nomenclaturas,
etc.
Este modelo detalha o estudo dos mtodos de acesso do SGDB, para elaborao
dos ndices de cada informao colocada nos modelos conceitual e lgico.
a etapa final do projeto de banco de dados, na qual ser utilizada a linguagem de
definio de dados (DDL), para a realizao da montagem do mesmo no nvel de
dicionrio de dados.
EXERCCIOS
2. Quais etapas devem ser observadas na modelagem de dados? Explique cada uma
delas.
LEITURA RECOMENDADA:
SIBERSCHATZ, ABRAHAM; KORTH, HENRY F.; SUDARSHAN, S. Sistema de
Banco de Dados. 5 ed. Rio de Janeiro: Elsevier, 2006. (pags. 28-31)
3 MODELO CONCEITUAL
MODELO CONCEITUAL
Descrio do banco de dados de forma independente de implementao em um
SGBD. Registra que dados podem aparecer no banco de dados, mas no registra
como estes dados esto armazenados no SGDB (Sistema Gerenciador de Banco
de Dados).
DIAGRAMA ENTIDADE--RELACIONAMENTO
ENTIDADES
Representam um conjunto de objetos (tudo que perceptvel ou manipulvel) da
realidade modelada sobre os quais deseja-se
deseja se manter informaes no banco de
dados.
ATRIBUTOS
Dados que so associados a cada ocorrncia de uma entidade ou de um
relacionamento.
CARDINALIDADE
Nmero (mnimo,
mnimo, mximo) de ocorrncias de entidade associadas a uma
ocorrncia da entidade em questo atravs do relacionamento.
Cardinalidade mnima
o nmero mnimo de ocorrncias de entidade que so associadas a uma
ocorrncia da mesma (auto-relacionamento)
(auto ou de outra(s) entidade(s)
entidade atravs de
um relacionamento.
A cardinalidade mnima 1 recebe a denominao de associao obrigatria,
j que ela indica que o relacionamento deve obrigatoriamente associar uma
ocorrncia de entidade a outra. A cardinalidade mnima 0 (zero) recebe a
denominao de associao opcional.
Cardinalidade mxima
o nmero mximo de ocorrncias de entidade que so so associadas a uma
ocorrncia da mesma ou de outra entidade atravs de um relacionamento. Apenas
duas cardinalidades mximas so relevantes: a cardinalidade mxima 1 e a
cardinalidade mxima n (muitos).
EXERCCIOS
2. Tomando como base os diagramas a seguir elabore um texto breve (similar aos
apresentados nas questes acima) para explicar cada caso.
a.
b.
c.
LEITURA RECOMENDADA:
HEUSER, CARLOS ALBERTO.
ALBERTO Projeto de Banco de Dados. 6 ed. So Paulo:
Artmed, 2009. (pags. 34-54
54)
DOWNLOAD RECOMENDADO:
RECOMENDADO
BrModelo: Ferramenta freeware voltada para ensino de modelagem em banco de
dados. Desenvolvida
ida por Carlos Henrique Cndido como trabalho de concluso do
curso de ps-graduao
graduao em banco de dados
da (UNVAG-MT e UFSC).
Disponvel em: http://sis4.com/brModelo/download.aspx
4 GRAUS DE RELACIONAMENTOS
GRAUS DE RELACIONAMENTOS
O grau de um relacionamento refere-se
refere se ao nmero de entidades que participam de
um relacionamento. Observe a seguir os diversos graus de relacionamentos:
RELACIONAMENTO BINRIO
Um relacionamento binrio aquele envolve duas ocorrncias de entidade.
Podemos classificar os relacionamentos binrios em:
1:1 (um-para-um):
um): cada ocorrncia de uma entidade relaciona-se
relaciona com uma e
somente uma ocorrncia da outra entidade.
1:N (um-para-muitos):
muitos): uma ocorrncia da entidade
ntidade 1 relaciona-se
relaciona com
muitas ocorrncias da entidade 2, mas cada ocorrncia da entidade 2 somente
pode estar relacionada
relacionad com uma ocorrncia da entidade 1.
N:N (muitos-para
para-muitos): em ambos
mbos os sentidos encontramos um ou mais
relacionamentos de um-para-muitos,, isto , uma ocorrncia da entidade 1
relaciona-se
se com muitas ocorrncias da entidade 2 e vice e versa.
AUTO RELACIONAMENTO
Relacionamento entre ocorrncias de uma mesma entidade.
entidad
AUTO RELACIONAMENTO 1:1
O diagrama abaixo representa a seguinte situao: uma ocorrncia de pessoa
exerce o papel de marido e outra ocorrncia de pessoa exerce o papel de esposa.
EXERCCIOS
GENERALIZAO/ESPECIALIZAO
Atravs deste conceito possvel atribuir propriedades particulares a um
subconjunto das ocorrncias especializadas de uma entidade genrica.
Especializao total: para cada ocorrncia da entidade genrica existe sempre
uma ocorrncia em uma das entidades especializadas.
O exemplo abaixo apresenta
presenta uma especializao total: os clientes de uma empresa
sero apenas pessoas fsicas ou jurdicas.
HERANA DE PROPRIEDADES
Herdar propriedades significa que cada ocorrncia da entidade especializada
possui, alm de suas propriedades (atributos, relacionamentos e
generalizaes/especializaes) tambm as propriedades da ocorrncia
ocorr da
entidade genrica correspondente.
GENERALIZAO/ESPECIALIZAO EXCLUSIVA
Significa que uma ocorrncia de entidade genrica aparece, para cada hierarquia
generalizao/especializao, no mximo uma vez.
GENERALIZAO/ESPECIALIZAO NO EXCLUSIVA
Neste caso, uma ocorrncia da entidade genrica pode aparecer em mltiplas
especializaes.
No exemplo a seguir,
seguir considera-se
se o conjunto de pessoas vinculadas a uma
universidade. Neste caso a especializao no exclusiva, j que a mesma pessoa
pode aparecer
cer em mltiplas especializaes. Uma pessoa pode ser professor de
um curso e ser aluno em outro curso (ps-graduao,
(ps graduao, por exemplo). Por outro
lado, uma pessoa pode acumular o cargo de professor em tempo parcial com o
cargo de funcionrio, ou, at mesmo, ser ser professor de tempo parcial em dois
departamentos diferentes, sendo portanto duas vezes professor.
O principal problema que este tipo de generalizao/especializao apresenta
que neste caso as entidades especializadas no podem herdar o identificador da
entidade genrica. No caso, o identificador de pessoa no seria suficiente para
identificar professor, j que uma pessoa pode ser mltiplas vezes professor.
ENTIDADE ASSOCIATIVA
Um relacionamento
to uma associao entre entidades. Na modelagem Entidade-
Entidade
Relacionamento no foi prevista a possibilidade de associar dois relacionamentos
entre si.
Uma entidade associativa nada mais que a redefinio de um relacionamento,
que passa a ser tratado como se fosse tambm uma entidade.
ATRIBUTOS OPCIONAIS
Atributos opcionais so aqueles que se aplicam apenas a determinadas ocorrncias
de uma entidade, e no a outras. Exemplo: FUNCIONRIO e os registros
profissionais em diferentes entidades de classe: CRM, CREA, OAB, etc.
Atributos opcionais muitas vezes indicam subconjuntos da entidade que devem
ser modelados atravs de especializao.
ATRIBUTOS COMPOSTOS
Chamamos que atributos compostos queles nos quais o contedo formado por
vrios itens menores. Exemplo:
emplo: ENDEREO composto por: nome do
logradouro, nmero, complemento (exemplo: apartamento), bairro, cidade, estado,
etc.
ATRIBUTOS MULTIVALORADOS
Denominamos atributo
tributos multivalorados queles nos quais o contedo formado
por mais de um valor. Exemplo: FUNCIONRIO e DEPENDENTE,
DEPENDENTE este ltimo
como atributo. Para atributos multivalorados recomenda-se
recomenda se a soluo apresentada
na figura a seguir.
EXERCCIOS
SISTEMA ESCOLA
Uma escola de informtica oferece vrios cursos livres com durao entre trinta e
sessenta dias. Cada curso recebe um cdigo identificador.
Professores so contratados para ministrar um ou mais cursos e, portanto
necessrio saber quais cursos cada professor est habilitado a ministrar. Os
professores recebem um nmero de matrcula. A escola deseja manter tambm
registrado o nome, endereo, telefone, email de todos os seus professores.
H vrias turmas para cada curso. Cada turma, identificada por um cdigo, tem
apenas um professor e est alocada em apenas uma sala. Porm, uma sala pode ser
alocada para mais de uma turma em diferentes perodos.
Um aluno pode matricular-se simultaneamente em vrios cursos e, portanto,
pertencer a mais de uma turma. No momento da matrcula o aluno recebe um RA
(vlido para um ou mais cursos). A escola mantm registrado o nome, endereo,
telefone, email, RG e CPF de todos os seus alunos.
SISTEMA EMPRESA
Uma empresa organizada em departamentos. Cada departamento possui um
nome e um cdigo nico e pode ter vrias localidades (cidades). Os projetos
existentes na empresa so, obrigatoriamente, controlados por um departamento, e
cada projeto possui um nome, um cdigo nico e uma nica localizao (cidade),
que pode ser diferente das possveis localidades do departamento que o controla.
Alguns departamentos no possuem projetos sob sua responsabilidade.
No caso dos empregados da empresa armazenado nmero de matricula, nome,
endereo, salrio, sexo e data de nascimento. Quase todos os empregados tm um
outro empregado que o seu supervisor direto, e consequentemente, somente
alguns so supervisores. Em funo da cadeia hierrquica existem empregados
que no possuem supervisores.
A maioria dos empregados so alocados a um departamento, ou seja, pode at
existir um empregado sem departamento, mas todo departamento deve possuir
empregados alocados a ele, alm disso, todo departamento tem um chefe que o
gerencia, a partir de uma data, pois a empresa implementa um sistema de rodzio
na chefia dos departamentos, o rodzio na chefia determina que um empregado s
pode ser chefe de somente um departamento.
Um empregado pode trabalhar em mais de um projeto, mesmo que no seja do seu
departamento, dedicando algumas horas por semana em cada um dos projetos. E,
claro, alguns empregados no esto empenhados em nenhum projeto. Por outro
lado, todo projeto tem pelo menos um ou mais empregados trabalhando nele.
A empresa oferece alguns benefcios sociais aos dependentes dos seus
empregados, caso ele possua. Para tanto, mantido para cada dependente do
empregado o nome do dependente, o sexo, a data de nascimento e o grau de
parentesco.
EXERCCIO
1. Especifique um sistema e elabore o seu respectivo DER (Diagrama Entidade
Relacionamento).
7 MODELO RELACIONAL
TABELA
Estrutura bi-dimensional
dimensional composta por linhas (tuplas) e campos (ou atributos).
RELACIONAMENTOS
Associao estabelecida entre campos comuns de duas tabelas. Dessa forma
permitimos o estabelecimento de correspondncia entre registros de diferentes
tabelas. Os relacionamentos apresentam a seguinte classificao quanto sua
cardinalidade:
Relacionamento um-para-um (1:1)
Cada
ada ocorrncia de uma tabela relaciona-se
se com uma e somente uma ocorrncia
da outra tabela.
Relacionamento um-para-muitos (1:N)
Uma ocorrncia da tabela pai relaciona-se
se com muitas ocorrncias da tabela filho,
mas cada ocorrncia da tabela filho somente pode estar relacionada com uma
ocorrncia da tabela pai.
pai
Relacionamento muitos-para
para-muitos (N:N)
Apresenta em ambos os sentidos um ou mais relacionamentos de um-para-muitos.
um
No modelo relacional no
n possvel efetuar este tipo de relacionamento de forma
direta. Neste caso, deve-se
deve construir uma terceira tabela (tabela de associao ou
tabela de detalhes). Essa tabela deve possuir chave primria composta de dois
campos e as chaves estrangeiras provenientes das duas tabelas originais.
Concluindo, um relacionamento de muitos-para-muitos
muitos deve
eve ser dividido em dois
relacionamentos de um-para-muitos
um com uma terceira tabela.
INTEGRIDADE DE DADOS
Impor a integridade de dados garante a qualidade dos dados em um banco de
dados. Os dados devem refletir corretamente a realidade representada pelo banco
e tambm devem ser consistentes entre si.
INTEGRIDADE DE DOMNIO
O
Zela pelos valores ideais e necessrios
necessrios para um atributo. Para isso definimos
algumas regras de validao por meio de expresses compostas de valores
constantes. Exemplos:
No permitir um estoque negativo
Impedir uma data de nascimento superior data atual
No permitir que o valor de um produto seja negativo
INTEGRIDADE DE ENTIDADE
Tem o objetivo de validar os valores permitidos a partir de valores j inseridos na
prpria entidade. Aps uma auto-consulta a entidade vai permitir ou no a
gravao do novo registro. Exemplos:
No permitir duas pessoas com o mesmo CPF
Impedir a locao uma fita que j est locada
INTEGRIDADE REFERENCIAL
Zela pela consistncia dos registros de uma entidade a partir de valores
provenientes de outras entidades, isto , determinado registro vai depender
diretamente de um registro de outra tabela. Exemplos:
Um registro em uma tabela pai pode ter um ou mais registros em uma tabela
filho.
Um registro em uma tabela filho sempre tem um registro coincidente em uma
tabela pai.
Para a incluso de um registro em uma determinada tabela filho, necessrio
que exista um registro pai coincidente.
Um registro pai s poder ser excludo se no possuir nenhum registro filho.
CONSTRAINTS (RESTRIES)
Observe a seguir as principais constraints ou restries utilizadas nos bancos de
dados relacionais, principalmente durante o processo de criao das tabelas, para
implementar os tipos de integridade anteriormente descritos:
TIPO ARMAZENA
PRIMARY KEY Identifica a chave primria da tabela
FOREIGN KEY Identifica a chave estrangeira
UNIQUE Indica que os valores na coluna no podem ser
repetidos
CHECK Especifica os valores que uma coluna pode assumir
NOT NULL Indica que o campo no pode receber valores nulos
TIPOS DE DADOS
Durante a criao das tabelas do banco de dados necessrio informar
informa que tipo de
dados cada coluna dever armazenar. A tabela a seguir apresenta alguns tipos de
dados compatveis com o Oracle, um dos principais sistemas de gerenciamento de
banco de dados atualmente utilizado:
TIPO ARMAZENA
CHAR Cadeia de caracteres de tamanho fixo
VARCHAR2 Cadeia de caracteres de tamanho varivel
NUMBER Valores numricos (inteiros e ponto
flutuante)
DATE Data e hora (inclusive minutos e segundos)
EXERCCIOS
1. O que um banco de dados relacional?
2. O que uma tabela no contexto dos bancos de dados relacionais?
3. Explique o que voc entende por cada um dos seguintes termos:
a. Chave primria
b. Chave nica
c. Chave estrangeira
4. O que so relacionamentos? Como podemos classific-los quanto cardinalidade?
5. Que soluo deve ser adotada no modelo relacional para relacionamentos com
cardinalidade N:N (muitos para muitos)?
6. O que voc entende por:
a. Integridade de domnio
b. Integridade de entidade
c. Integridade referencial
7. Explique o que h de errado nos casos apresentados a seguir:
a.
b.
c.
a.
b.
RELACIONAMENTOS BINRIOS
Cardinalidade mxima 1:1
AUTO-RELACIONAMENTOS
RELACIONAMENTOS
Cardinalidade mxima 1:1
RELACIONAMENTOS TERNRIOS
TERNRIO
GENERALIZAO/ESPECIALIZAO
EXERCCIOS
NORMALIZAO
Conceito introduzido em 1970 por Edgard F. Codd.
Processo matemtico formal com fundamento na teoria dos conjuntos.
O processo de normalizao aplica uma srie de regras sobre as tabelas de um
banco de dados para verificar se estas foram corretamente projetadas.
Os objetivos principais da normalizao de tabelas so os seguintes:
Garantir a integridade dos dados, evitando que informaes sem sentido
sejam inseridas.
Organizar e dividir as tabelas da forma mais eficiente possvel, diminuindo a
redundncia e permitindo a evoluo do banco de dados.
So seis as formas normais mais utilizadas:
1FN 1 Forma Normal
2FN 2 Forma Normal
3FN 3 Forma Normal
FNBC Forma Normal de Boyce e Codd
4FN 4 Forma Normal
5FN 5 Forma Normal
Nota: As trs primeiras formas normais atendem maioria dos casos de
normalizao.
Uma forma normal engloba todas as anteriores, isto , para que uma tabela esteja
na 2FN, ela obrigatoriamente deve estar na 1FN e assim por diante.
Normalmente aps a aplicao das regras de normalizao, algumas tabelas
acabam sendo divididas em duas ou mais tabelas. Este processo colabora
significativamente para a estabilidade do modelo de dados e reduz
consideravelmente as necessidades de manuteno.
CHAVES
Chave candidata: Atributo ou conjunto de atributos que so nicos para cada
registro. Para cada tabela podemos ter uma ou vrias chaves desse tipo. Exemplo:
codigo e cpf.
Chave primria: Entre as chaves candidatas, escolhemos uma para ser o
identificador principal da tabela. Este atributo passa a ser chamado de chave
primria (PK Primary Key).
Chaves alternativas: So as chaves candidatas que no foram definidas como
chave primria.
Chave estrangeira: o atributo ou conjunto de atributos que faz a ligao com a
chave primria de outra tabela.
CIDADE ESTADO
Campinas So Paulo
Natal Rio Grande do Norte
Niteri Rio de Janeiro
Tabela 10.1 Dependncia Funcional
TRANSITIVIDADE
Se um atributo X determina Y e se Y determina Z, podemos dizer que X
determina Z de forma transitiva, isto , existe uma dependncia funcional
transitiva de X para Z.
cidade estado
estado pas
cidade pas (cidade determina pas de forma transitiva)
CPF DEPENDENTE
Antonio Santos
111222333-00 Beatriz Santos
Claudio Santos
Tabela 10.5 Dependncia Multivalorada
EXERCCIOS
PROJETO PROJETO
NR_PROJ 001 NR_PROJ 002
NOME_PROJ Alfa NOME_PROJ Beta
LOCAL_PROJ So Paulo LOCAL_PROJ Jundia
ID_FUNC NOME_FUNC CARGO VL_HORA ID_FUNC NOME_FUNC CARGO VL_HORA
101 Antonio Analista Pleno 35,00 102 Beatriz Analista Pleno 35,00
102 Beatriz Analista Pleno 35,00 103 Claudio Analista Senior 35,00
103 Claudio Analista Senior 50,00 104 Daniela Analista Senior 50,00
PROJETO_FUNCIONARIO
NR_PROJ ID_FUNC NOME_FUNC CARGO VL_HORA
001 101 Antonio Analista Pleno 35,00
001 102 Beatriz Analista Pleno 35,00
001 103 Claudio Analista Senior 50,00
002 102 Beatriz Analista Pleno 35,00
002 103 Claudio Analista Senior 50,00
002 104 Daniela Analista Senior 50,00
PROJETO
NR_PROJ NOME_PROJ LOCAL_PROJ
001 Alfa So Paulo
002 Beta Jundia
Portanto, toda tabela que est na Primeira Forma Normal e que possui Chave
Primria SIMPLES (formada por uma coluna) j est na Segunda Forma Normal.
Analisando a tabela PROJETO_FUNCIONARIO nota-se que as colunas (ou
atributos) NOME_FUNC, CARGO e VL_HORA dependem apenas de uma parte
da Chave Primria, ou seja, do ID_FUNC. Portanto ao aplicarmos a 2FN
(Segunda Forma Normal) teremos:
FUNCIONARIO
ID_FUNC NOME_FUNC CARGO VL_HORA
101 Antonio Analista Pleno 35,00
102 Beatriz Analista Pleno 35,00
103 Claudio Analista Senior 50,00
104 Daniela Analista Senior 50,00
PROJETO_FUNCIONARIO
NR_PROJ ID_FUNC
001 101
001 102
001 103
002 102
002 103
002 104
CARGO_SALARIO
CARGO VL_HORA
Analista Pleno 35,00
Analista Senior 50,00
FUNCIONARIO
ID_FUNC NOME_FUNC CARGO
101 Antonio Analista Pleno
102 Beatriz Analista Pleno
103 Claudio Analista Senior
104 Daniela Analista Senior
Observe a seguir quais foram as tabelas geradas aps a aplicao das trs
primeiras Formas Normais (FN1, FN2 e FN3) e compare com a tabela controle de
projeto anteriormente apresentada.
PROJETO
NR_PROJ NOME_PROJ LOCAL_PROJ
001 Alfa So Paulo
002 Beta Jundia
FUNCIONARIO
ID_FUNC NOME_FUNC CARGO
101 Antonio Analista Pleno
102 Beatriz Analista Pleno
103 Claudio Analista Senior
104 Daniela Analista Senior
PROJETO_FUNCIONARIO
NR_PROJ ID_FUNC
001 101
001 102
001 103
002 102
002 103
002 104
CARGO_SALARIO
CARGO VL_HORA
Analista Pleno 35,00
Analista Senior 50,00
EXERCCIOS
1. Explique quando uma tabela esta em conformidade com cada uma das seguintes
Formas Normais:
a. 1FN (Primeira Forma Normal)
b. 2FN (Segunda Forma Normal)
c. 3 FN (Terceira Forma Normal)
PEDIDOS
NR_PEDIDO DATA_PEDIDO ID_CLIENTE NOME_CLIENTE COD_PROD NOME_PROD QUANT VL_UNIT
P-31 Caderno 2 15,00
001 10/01/2011 1003 Ernesto P-42 Caneta 1 3,00
P-67 Lpis 5 1,00
P-42 Caneta 2 3,00
002 11/01/2011 1007 Fabiana P-67 Lpis 3 1,00
P-85 Lapiseira 1 5,00
DEPARTAMENTOS
COD_DEPT LOCAL ID_GERENTE NOME_GERENTE TIPO_FONE COD_AREA NR_FONE
Residencial 12 5555-1234
1011 So Paulo 35215 Geraldo Comercial 11 5555-4321
Celular 11 5555-9876
Residencial 21 5555-5678
1021 Rio de Janeiro 47360 Horacia Comercial 22 5555-3659
Celular 21 5555-2345
CURSOS
COD_CURSO NOME_CURSO COD_TURMA NR_SALA COD_DISC NOME_DISC ID_PROF NOME_PROF
3523 Algoritmos 105 Ildemar
1005_3A3 230 5282 Banco de Dados 118 Joselia
1005 TADS 8346 Empreendedorismo 126 Kleudir
3523 Algoritmos 133 Lucimar
1005_3B3 231 5282 Banco de Dados 118 Joselia
8346 Empreendedorismo 126 Kleudir
4639 Clculo 133 Lucimar
1250_4A1 380 6395 Lgica Digital 142 Marcelo
9578 Redes de Dados 158 Nilmara
1250 FEGAIRC
4639 Clculo 133 Lucimar
1250_4B1 381 6395 Lgica Digital 165 Osvaldo
9578 Redes de Dados 158 Nilmara
12 LGEBRA RELACIONAL
CARACTERSTICAS
Constituda de cinco operadores fundamentais:
Seleo (sigma)
Projeo (pi)
Produto cartesiano X
Diferena
Unio
SELEO
Produz uma nova relao apenas com as tuplas (linhas) da primeira relao (tabela) que
satisfazem a uma determinada condio (tambm chamada de predicado).
R (A=a1)(R)
A B A B
a1 b1 a1 b1
a2 b2
PROJEO
Produz uma nova relao com apenas alguns atributos da primeira relao, removendo
as tuplas duplicadas.
R
(B)(R)
A B B
a1 b1 b1
a2 b2 b2
PRODUTO CARTESIANO
Produz uma nova relao com todas as possveis tuplas resultantes da combinao de
duas tuplas, uma de cada relao envolvida na operao.
R (R X S)
A B A B C D
a1 b1 a1 b1 c2 d2
a2 b2 a1 b1 c3 d3
a2 b2 c2 d2
S
a2 b2 c3 d3
C D
c2 d2
c3 d3
DIFERENA
Produz uma nova relao com todas as tuplas da primeira relao que no aparecem na
segunda relao.
As duas relaes devem ter o mesmo nmero de atributos (colunas) e mesmos domnios
para as colunas correspondentes.
R (R - S)
A B A B
a1 b1 a1 b1
a2 b2
A B
a2 b2
a3 b3
UNIO
Produz uma nova relao composta por todas as tuplas da primeira relao seguidas por
todas as tuplas da segunda relao. Tuplas comuns s duas relaes aparecero apenas
uma vez no resultado.
As duas relaes devem ter o mesmo nmero de atributos (colunas) e mesmos domnios
para as colunas correspondentes.
R (R S)
A B A B
a1 b1 a1 b1
a2 b2 a2 b2
a3 b3
S
A B
a2 b2
a3 b3
INTERSECO
Produz uma nova relao com a interseco das tuplas da primeira relao com as tuplas
da segunda, ou seja, apenas com as tuplas que aparecem nas duas relaes.
As duas relaes devem ter o mesmo nmero de atributos e mesmos domnios para as
colunas correspondentes.
R
(R S)
A B A B
a1 b1 a2 b2
a2 b2
A B
a2 b2
a3 b3
JUNO
Produz uma nova relao com as tuplas resultantes da combinao de duas tuplas, uma
de cada relao envolvida na operao que satisfazem a uma determinada condio.
R R X S [B = C]
A B A B C D
a1 b1 a1 b1 b1 d3
a2 b2 a2 b2 b2 d2
C D
b2 d2
b1 d3
JUNO NATURAL
Juno na qual h uma igualdade predefinida entre os atributos de mesmo nome
presentes na primeira e na segunda relao (atributos de juno). Estes atributos s
aparecem uma vez no resultado.
R R*S
A B A B D
a1 b1 a1 b1 d3
a2 b2 a2 b2 d2
C D
b2 d2
b1 d3
DIVISO
Produz uma relao S contendo todas as tuplas de A (dividendo) que aparecem em R
(mediador) com todas as tuplas de B (divisor).
A R B S
A A B B A
a1 a1 b1 b1 a1
a2 a1 b2 a2
a3 a1 b3
a4 a1 b4
B S
a5 a2 b1
a2 b2 B A
a3 b2 b2 a1
a4 b2 b4 a4
a4 b4
B S
B A
b1 a1
b2
b3
b4
OPERADORES
Os seguintes operadores so utilizados na lgebra relacional:
OPERADORES DE COMPARAO
OPERADOR DESCRIO
= igual
< menor
<= menor ou igual
> maior
>= maior ou igual
<> ou diferente
OPERADORES LGICOS
OPERADOR DESCRIO
e (and)
ou (or)
no (not)
OPERADOR DE ATRIBUIO
OPERADOR DESCRIO
"recebe"
SOFTWARE RECOMENDADO
WinRDBI (Windows Relational DataBase Interpreter)
http://www.eas.asu.edu/~winrdbi/
Arizona State University
Relational Algebra
EXERCCIOS
1. Associe as operaes da lgebra relacional com as suas respectivas descries:
OPERAO DESCRIO