Você está na página 1de 17

Modelagem: Notação IDEF1x , Peter Chan , Pés de Galinha

 
Modelo IDEF1X

 
 
 
Notação Pé-de Galinha
Notação Chen x Pé-de-Galinha
 
 
Fontes (adaptados): 
https://www.relationaldbdesign.com/database-design/module7/idef1x-crowsfoot-chen-model.php
https://docs.oracle.com/cd/F49540_01/DOC/java.815/a64686/05_dev1.htm
http://www.32geeks.com/classes/resources/IDEF1X_Cheat_Sheet.pdf 
 
MODELO RELACIONAL
 O modelo relacional é baseado no princípio de que as informações em uma
base de dados podem ser consideradas como relações matemáticas e que
podem ser representadas, de maneira uniforme, através do uso
de tabelas onde as linhas representam as ocorrências de uma entidade e as
colunas representam os atributos de uma entidade do modelo conceitual.
 O modelo relacional representa o banco de dados como um conjunto de
de relações:
Fonte (adaptado): https://3.bp.blogspot.com/-OAgKpLyKhkA/VjlD3IP4lJI/AAAAAAAAAKY/CwuX9TvGDgU/s1600/a2.png
 

 O Domínio especifica o tipo de atributo (inteiros / reais / conjunto de


cidades...)
 O Atributo (coluna) representa o uso de um domínio dentro de uma relação
 Informalmente, uma relação é uma tabela no modelo relacional.

 
RELAÇÕES (TABELAS)
 "TABELA é um conjunto DESORDENADO de tuplas exclusivas".
 As relações/tabelas são compostas de:
o Linhas (tuplas), Colunas (atributos); e Chaves Primárias e candidatas.

Atenção:

 A ordenação das tuplas é IRRELEVANTE em uma relação (tabela)!


 A ordenação dos atributos é RELEVANTE em uma relação (tabela)!
 

 São relacionadas por meio de Chaves estrangeiras.


 O valor dos campos deve ser atômico:
 Simples (não-divisível); e
 Monovalorado (só possuir um valor).

 
ÁLGEBRA RELACIONAL
 A Álgebra Relacional é um conjunto de operações sobre modelos
relacionais de dados. Estas operações usam uma ou mais relações como
entrada e geram uma relação de saída (que, por sua vez, pode ser
manipulada com outras operações da álgebra relacional).

 
Podem ser agrupadas em duas categorias:
 
1) Operadores de Conjuntos Tradicionais:

 União
 Interseção
 Diferença
 Produto Cartesiano

 
2) Operadores Relacionais

 Seleção
 Projeção
 Junção
 Divisão

Seleção (s)
 é usada para escolher um subconjunto de tuplas (linhas) de uma relação que
satisfaça uma condição de seleção
 Exemplo: s_nome=“Daniel”(cliente)

Projeção (p)
 seleciona alguns atributos (colunas) da tabela enquanto descarta outros.
 Exemplo: p_nome(cliente)

Produto Cartesiano (×)


 Permite-nos combinar informações de duas relações quaisquer, resultando
em uma relação nova com todos os campos combinados.
 Exemplo: (cliente) x (veiculo)
Junção (⋈)
 A operação de junção equivale a uma operação de produto
cartesiano seguida de uma seleção, com a remoção das colunas duplicadas:
 Exemplo: (cliente) ⋈ (veiculo)

União (U)
 A união AUB é uma relação que inclui todas as tuplas que estão em A ou
em B ou tanto em A quanto em B.
 As tuplas duplicadas são eliminadas.
 Exemplo: (clientesA) U(clientesB)

Intersecção (∩)
 A Intersecção A∩C é uma relação que inclui todas as tuplas que estão tanto
em A quanto em C.
 Exemplo: (clientesA) ∩ (clientesC)

Diferença (-)
 Permite encontrar as tuplas que estão em uma relação, mas não em outra
 Exemplo: (clientesA) - (clientesC)

Fonte dos exemplos e leitura complementar (álgebra relacional):https://spaceprogrammer.com/bd/aprendendo-as-principais-operacoes-da-


algebra-relacional/
 
 
VISÕES
 Uma visão pode ser considerada como uma janela para um conjunto de
dados em um Banco de Dados.
 Em um Banco de Dados relacional, uma visão seria uma
relação virtual derivada a partir de uma ou mais relações do esquema.
 As visões sempre refletem o estado atual dos dados das relações das quais
derivam

 
ÍNDICES
 É um recurso de recuperação de tuplas em uma tabela, permitindo uma
localização mais rápida de um registro quando efetuada uma consulta.

 
CHAVES
 Antes de ficar confuso, preste atenção no seguinte: a Superchave a Chave e
todas suas combinações (Chave Candidata, Chave Primária...) possuem a
mesma finalidade: distinguir uma linha das demais dentro de uma tabela.

 
Veja a partir de questões de outras bancas [aproveite para conferir os comentários
dos professores pelos links]:

 (...) a expressão chave primária identifica um conjunto de um ou mais


atributos que, tomados coletivamente, permitem identificar de maneira
unívoca uma entidade em um conjunto de entidades, que é escolhida pelo
projetista do banco de dados como de significado principal. (CESPE, 2013)
 A chave candidata, conjunto de um ou mais atributos tomados
coletivamente, permite identificar de maneira unívoca uma entidade em
um conjunto de entidades. (CESPE, 2010)
 Superchave é um conjunto de um ou mais atributos que, tomados
coletivamente, nos permite identificar de maneira unívoca uma entidade
em um conjunto de entidades. (Nucepe USEPI, 2015)

 
A diferença entre elas, vai se dar a nível das PROPRIEDADES de cada uma
delas.

 Superchave x Chave


o A grande diferença entre elas é que a irredutibilidade da chave. Em
outras palavras, a chave é uma superchave mínima (irredutível).
o Isso quer dizer o conjunto de atributos da chave não pode ser
reduzido sem comprometer a identificação unívoca da entidade.

 Chave -> Chave Candidata -> Chave primária


o Podemos ter, então, nesse processo de querer identificar uma entidade
no banco de dados, uma ou mais chaves com as propriedades
mencionadas (única, campos obrigatórios e irredutível).
o Em um primeiro momento, todas as chaves são candidatas para
servirem ao seu propósito de identificar de maneira unívoca uma
entidade em um conjunto de entidades.
o Acontece, que o designer de banco de dados escolhe uma, dentre as
candidatas para essa função: ela é chamada de chave primária. As
que restaram, dentre as candidatas, são chamadas de alternativas /
alternadas.
 Chave Estrangeira


o É o mecanismo que permite a implementação de relacionamentos
em um banco de dados relacional.
o Na figura abaixo, perceba o seguinte:

Fonte: https://profrodrigo.leandrofranceschini.com.br/wp-content/uploads/sites/4/2017/02/chaveestrangeira2.png
Na tabela Curso, a chave primária é o atributo CodCurso.

 Na tabela Aluno, a chave primária é o atributo CodAlu (não poderia ser


CodCurso já que vários alunos podem fazer o mesmo curso - lembram da
unicidade?)

 
Então o relacionamento entre eles é feito pelo CodCurso:

 Na entidade Curso é chave primária.


 Na entidade Aluno, é chave estrangeira.

 
RELACIONAMENTOS
 Os relacionamentos de banco de dados são associações entre tabelas que
são criadas para recuperar dados.
 Podemos ter vários tipos de relacionamentos, a depender da cardinalidade:
o 1:1 (relacionamento um para um)
o 1:N (relacionamento um para muitos)
o N:M (relacionamento muitos para muitos)

 
Cardinalidade: número (mínimo, máximo) de ocorrências de entidade associadas
a uma ocorrência da entidade em questão através do relacionamento.
O relacionamento que talvez mais seja cobrado em provas de concursos é o N:M
(muitos para muitos), porque ele é o diferentão: o relacionamento é implementado
por uma tabela de ligação, os dados não são relacionados diretamente às
entidades.
 
Veja abaixo um exemplo:

Fonte: https://support.content.office.net/pt-br/media/948134e3-2c9d-4767-88ff-f8bbd27d5f58.png

 Na tabela Pedidos, a chave primária é o atributo ID do Pedido.


 Na tabela Produtos, a chave primária é o atributo ID

 
O relacionamento é N:M já que um Pedido pode conter vários Produtos e os
Produtos podem estar em vários Pedidos.
Então o relacionamento entre eles é feito pela tabela de interligação Detalhes do
Pedido:

 Só poderemos identificar de forma única um relacionamento (Pedidos-


Produtos) se soubermos o ID do Produto e o ID do Pedido.

 
AS REGRAS DE CODD
Foram criadas para definir o que é necessário para que um SGBD seja considerado
relacional:
#1: as regras para informações
“Todas as informações em um banco de dados relacional são representadas
explicitamente no nível lófico e exatamente de uma maneira - por valores em
tabelas”.
#2: a regra de acesso garantido
“Cada e todos os dados (valor atômico) em um banco de dados relacional têm a
garantia de serem logicamente acessíveis pela reclassificação de uma combinação
de nomes de tabelas, valor de chave primária e nome de coluna”.
#3: tratamento sistemático de valores nulos
“Valores nulos (distintos da string de caracteres vazia ou de uma string de
caracteres em branco ou de qualquer outro número) são suportados
completamente em um SGBD relacional para representar de maneira sistemática
as informações ausentes, independentemente do tipo de dados”.
#4: Catálogo online dinâmico baseado no modelo relacional 
“A descrição da base de dados é representada no nível lógico da mesma maneira
que os dados comuns, de modo que os usuários autorizados podem aplicar a sua
interrogação a mesma linguagem relacional que se aplicam aos dados regulares.”
#5: A regra da sublinguagem de dados abrangentes
“Um sistema relacional pode suportar vários idiomas e vários modos de uso do
terminal (por exemplo, o modo de preencher as lacunas). No entanto, deve haver
pelo menos uma linguagem cujas declarações sejam expressas, por alguma sintaxe
bem definida, como cadeias de caracteres e que seja abrangente no suporte de
todos os seguintes itens:

1.
o Definição de dados.
o Definição da visualização.
o Manipulação de dados (interativa e por programa).
o Restrições de integridade.
o Autorização.
o Limites da transação (início, confirmação e reversão).”

#6: A regra da visualização atualização


“Todas as visualizações que são teoricamente atualizáveis também são
atualizáveis pelo sistema.”
#7: Inserção, atualização e exclusão de alto nível
“A capacidade de lidar com uma relação de base ou uma relação derivada como
um único operando se aplica não apenas à recuperação de dados, mas também à
inserção, atualização e exclusão de dados.”
#8: Independência de dados físicos
“Atividades de programas e atividades de terminais permanecem logicamente
intactos sempre que alguma alteração ocorrer na representação de
armazenamento ou métodos de acesso.”
#9: Independência lógica de dados
“Programas de aplicações e as atividades de terminais permanecem logicamente
intactos quando são feitas alterações de qualquer tipo as tabelas básicas que
preservam informações que teoricamente permitem a estabilização dos dados.”
#10: Independência de integridade
“Restrições de integridade específicas para um banco de dados relacional em
particular devem ser definidas na sublinguagem de dados relacionais passíveis de
serem armazenadas no catálogo, não nos programas de aplicação.”
#11: Independência de distribuição
“Um SGBD relacional tem independência de distribuição”
#12: A regra de não subversão
“Se um sistema relacional tiver uma linguagem de baixo nível (um registro único
por vez), essa linguagem de baixo nível não pode ser utilizada para subverter ou
contornar as regras de integridade e restrições expressas na linguagem relacional
de nível superior (múltiplos registros de cada vez)”.
 
 
NORMALIZAÇÃO
 Não caia na pegadinha: se a questão indicar que a normalização tem o
objetivo de melhorar a performance do banco de dados, marque errado!
 A normalização é utilizada para evitar as anomalias
de EXCLUSÃO, ATUALIZAÇÃO e INSERÇÃO de dados!
 Para isso, é feita a minimização de redundâncias a partir das Formas
Normais de normalização.

Fonte (adaptado): https://static.wixstatic.com/media/02c009_d13ef81f7b2546429be11c5a9df1136e.png
 
Primeira Forma Normal (1FN) [palavras-chave: atômico, indivisível]

 É parte da definição formal de uma relação.


 Todos os atributos de uma relação devem ter seus valores definidos sobre
domínios atômicos ou indivisíveis.
 Em outras palavras, os campos de uma tabela não devem ser compostos ou
multivalorados

 
Segunda Forma Normal (2FN) [palavras-chave: (in)dependência parcial]

 “Uma relação encontra-se na 2FN se e somente se estiver em 1FN e NÃO


CONTÉM dependências parciais.”
 Dependência Parcial: ocorre quando um atributo não-chave depende
apenas de uma parte de uma chave primária composta.

 
Terceira Forma Normal (3FN) [palavras-chave: independência transitiva]

 “Uma relação está em 3FN se e somente se estiver  em 2FN e nenhum


atributo NÃO-PRIMO (isto é, que  não seja membro de uma chave) for 
transitivamente dependente da chave primária.”

 Exemplo-clássico de tabela que não está na 3FN!

Fonte: https://upload.wikimedia.org/wikipedia/commons/d/d6/3ª_Forma_Normal.png
 
A 1FN, 2FN e 3FN são as que mais aparecem em provas de concurso. As
demais, geralmente é suficiente saber suas definições e palavras-chave:
 
FNBC (Boyce-Codd)

 “Uma relação está em FNBC se para toda dependência funcional  X ? Z,


X é uma superchave.”

 
Quarta Forma Normal (4FN) [palavras-chave: (in)dependência
multivalorada]

 “Uma relação está em 4ª Forma Normal (4FN) se, e somente se, estiver na
3FN e NÃO contiver  dependências multivaloradas.”

 
Quinta Forma Normal (5FN) [palavras-chave: (in)dependência de junção]
 “Uma relação R está na 5FN , também chamada de FORMA
NORMALIZADA DE PROJEÇÃO-JUNÇÃO (PJ/NF) se, e somente se,
toda dependência de junção em R for consequência de chaves candidatas
de R.”

 
AXIOMAS DE ARMSTRONG
 

o Axioma de reflexividade 

Se    for um conjunto de atributos e    um subconjunto de   , então


se    mantém   .

Se,     então,    esta propriedade é uma propriedade trivial.

o Axioma de aumento 

se    mantém e   é um atributo definido,


então   também é válido.

Ou seja, adicionar atributos nas dependências, não altera as dependências


básicas.
Se   , então,    para qualquer   .

o Axioma de transitividade

O mesmo que a regra transitiva em álgebra, se    é válido


e   válido, então   também é válido.

   é chamado como    funcionalmente que determina   .


 Se   e   então 
 
Regras Secundárias:

1. União - 
se    mantém e   mantém, então   é.
Se   e   então 
2. Composição - 
Se   e for   válido, então   é válido.
3. Decomposição - 
Se   mantém em seguida,   e   espera.
Se    então   e 
4. Pseudo-transitividade - 
se    segura e    segura, então   segura.
Se   e   então   .
Referência: Fundamentals of Database Systems 
 
ARQUITETURA DE TRÊS ESQUEMAS
Conceitos relevantes

 Esquema é a “descrição formal da estrutura de um banco de dados”


(Heuser, 2004)
 “O conjunto de informações contidas em determinado banco de dados,em
um dado momento, é chamado instância do banco de dados”
(SILBERSCHATZ; KORTH;SUDARSHAN,1999,p.6).

A arquitetura de três esquemas ( arquitetura ANSI/SPARC ), é uma arquitetura


para sistemas de banco de dados e tem
o objetivo de separar as aplicações do usuário do banco de dados físico.

É organizada em três níveis:

 Nível Externo ou Visão: cada esquema externo descreve a parte do banco


de dados que um dado grupo de usuários tem interesse e oculta o restante
do banco de dados desse grupo.
 Nível Conceitual: descreve a estrutura global do banco de dados como um
todo, mas não fornece detalhes do modo como os dados estão fisicamente
armazenados.
 Nível Interno: descreve a estrutura de armazenamento físico do banco de
dados, utiliza um modelo de dados e descreve detalhadamente os dados
armazenados e os caminhos de acesso ao banco de dados.

 
INDEPENDÊNCIA DE DADOS
É a capacidade de mudar o esquema em um nível do sistema de banco de
dados sem que ocorram alterações do esquema no próximo nível mais alto.
(1) Independência LÓGICA de dados é a capacidade de alterar o esquema
conceitual sem ter de alterar os esquemas externos ou programas de aplicação.
(2) Independência FÍSICA de dados é a capacidade de alterar o esquema
interno sem ter de alterar o esquema conceitual.

Você também pode gostar