Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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:
Á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)
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)
Í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 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.
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.
Então o relacionamento entre eles é feito pelo CodCurso:
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
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:
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).”
Fonte (adaptado): https://static.wixstatic.com/media/02c009_d13ef81f7b2546429be11c5a9df1136e.png
Primeira Forma Normal (1FN) [palavras-chave: atômico, indivisível]
Segunda Forma Normal (2FN) [palavras-chave: (in)dependência parcial]
Terceira Forma Normal (3FN) [palavras-chave: independência transitiva]
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)
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
o Axioma de aumento
o Axioma de transitividade
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
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.