Buscar

Semana 8 - Material de Revisão - Banco de Dados - COM300_rev

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Olá, estudante! 
Nesta revisão serão abordados os seguintes temas: 
1. Projeto Conceitual: Modelo Entidade-Relacionamento 
2. Projeto Lógico: Modelo Relacional 
3. Normalização 
4. MySQL Workbench 
 
Projeto Conceitual: Modelo Entidade-
Relacionamento 
 
Modelo Entidade-Relacionamento (MER): é um modelo de dados utilizado na 
fase de projeto conceitual do Banco de Dados. 
Entidade: é algo do mundo real que possui uma existência própria. Cada 
Entidade tem propriedades particulares que são chamadas de atributos. 
Tipos de entidade (retângulo no diagrama entidade-relacionamento) são os que 
têm a mesma "estrutura". Os tipos de entidade se escrevem com maiúscula no 
singular no DER (diagrama entidade-relacionamento). Um tipo de entidade 
define uma coleção, ou conjunto de entidades, que tem os mesmos atributos. 
Atributo: é uma propriedade que descreve uma entidade. A Figura 1 apresenta 
os atributos do tipo de entidade Funcionário: ident, nome, endereço, salário e 
dt_nasc, que é a data de nascimento. 
 
 
 
Figura 1: Atributos do tipo de entidade Funcionário. 
 
Instância: a coleção de todas as entidades de um tipo de entidade (elipses). 
 
Na Figura 2 temos o tipo de entidade FUNCIONÁRIO com os atributos nome e 
salário. 
As entidades individuais func1 e func2. 
 
 
Figura 2. Conceitos de tipo de entidade, entidade e instância. 
 
Atributo-chave: todo tipo de entidade deve ter um atributo-chave, que pode ser 
simples ou composto, e os valores devem ser distintos. Por exemplo, o CPF é o 
atributo-chave para o tipo de entidade FUNCIONÁRIO, não pode ser o atributo 
nome porque pode ter o mesmo nome para mais de um funcionário ou entidade, 
e isso viola a restrição de unicidade que proíbe que duas entidades, em um 
mesmo conjunto entidade, tenham os mesmos valores no seu atributo-chave. 
Atributos-chave são sinalizados com sublinhado. 
A Figura 3 apresenta o tipo de entidade Carro. Neste exemplo tem dois atributos 
cujos valores são distintos (Registro e Cod_veiculo) para cada entidade 
individual no conjunto, eles estão sublinhados indicando que são atributos-
chave, cada um por si só. Depois, no modelo lógico, só será eleito um deles 
como chave. O atributo-chave Registro é também composto por subpartes: 
Estado e Número, isso significa que é necessária uma combinação de atributos 
para poder ser única. É o caso do RG, que, por não ser único, necessita da 
indicação do estado para poder compor um valor único para cada pessoa. 
Atributo multivalorado: o atributo Cor, da Figura 3, está destacado com linha 
dupla indicando que ele é multivalorado, isto é, atributos que podem ter um 
conjunto de valores. Exemplo: Cor={verde, branco, azul}. 
 
Figura 3. Carro com dois atributos-chave, Registro e Cod_veiculo (atributos-
chave por separado) e um atributo multivalorado (Cor). 
 
Tipo de relacionamento: um tipo relacionamento R entre n entidades, E1, E2,..., 
En, define um conjunto de associações – ou um conjunto relacionamento – entre 
entidades desses tipos de entidade. A Figura 4 apresenta três tipos de 
relacionamentos: FORNECE, USA e PODE FORNECER, ambos são binários ou 
de grau 2, que significa que associa dois tipos de entidades. 
 
 
 
Figura 4. Tipos de relacionamento: FORNECE, USA e PODE 
FORNECER. 
 
 
 
Restrições 
Os tipos de relacionamento costumam ter certas restrições que limitam as 
combinações de entidades que podem participar no conjunto de relacionamentos 
correspondentes e que depende do minimundo. A Figura 5 apresenta a regra da 
empresa onde cada funcionário precisa trabalhar exatamente em um 
departamento. Isso é uma restrição do esquema. 
 
Figura 5: Associação entre uma ou mais entidades dos tipos de entidade 
EMPREGADO e DEPARTAMENTO. 
Existem as seguintes restrições sobre tipos de relacionamento: 
1. Razão de cardinalidade: especifica a quantidade de instâncias (máxima) 
de relacionamentos que uma entidade pode participar: uma para um (1:1) 
um para muitos (1:N ou N:1), e muitos para muitos (N:N ou M:N). 
2. Participação: especifica se a existência de uma entidade depende de ela 
estar relacionada com outra entidade através de um relacionamento. 
Sendo que ela é total quando ela é obrigatória (dependência existencial) 
e é apresentada com linha dupla no DER. A participação parcial ela é 
opcional e é apresentada no DER com linha simples. 
3. Restrição estrutural, chamada de min max: define o mínimo e o máximo 
que uma entidade pode participar de um relacionamento. 
 
Tipo de Entidade Fraca 
São tipos de entidades que não têm atributos-chaves. Segundo Elmasri e 
Navathe (2003, p. 64), um tipo de entidade pode não ter chave, nesse caso ela 
é chamada de tipo de entidade fraca. Um tipo de entidade fraca pode ter uma 
chave parcial. A Figura 6 apresenta a modelagem de uma biblioteca com tipo de 
entidade Livro, com os dados do Livro, mas na biblioteca o que são emprestados 
são os exemplares do livro. O tipo de entidade fraca exemplar não tem chave 
por si só, ela tem que ser identificada através da associação com outro tipo de 
entidade, que neste caso é o Livro, chamada de tipo de entidade proprietário 
da identificação, e o tipo de relacionamento entre elas é tipo de 
relacionamento de identificação (repare que ele é um losango com linha 
dupla). Um tipo de entidade fraca sempre tem participação total (obrigatória, linha 
dupla) com respeito ao seu tipo de relacionamento de identificação (no exemplo, 
TEM), uma vez que não é possível identificar uma entidade fraca sem o 
correspondente tipo de entidade proprietária (LIVRO). A chave parcial do tipo de 
entidade fraca é sequência. 
 
Figura 6. Tipo de entidade fraca Exemplar. 
 
Projeto Lógico: Modelo Relacional 
 
O modelo relacional é um modelo de dados lógico utilizado para desenvolver 
projetos lógicos de bancos de dados. Os SGBDs que utilizam o modelo relacional 
são denominados SGBDs Relacionais. 
É o modelo de dados que representa um banco de dados como uma coleção de 
relações. Uma relação remete a uma tabela de valores, na qual cada linha 
representa uma coleção de valores (colunas) relacionados. 
 
Mapear o modelo conceitual para o modelo lógico relacional 
 
O mapeamento do modelo conceitual para o modelo lógico relacional é feito 
seguindo em uma série de passos descritos a seguir. 
• Passo 1: 
• Para cada tipo de entidade normal E no DER (empregado na Figura 
7), crie uma relação R que inclua todos os atributos simples de E. 
• Inclua também os atributos simples dos atributos compostos. 
• Escolha um dos atributos-chave de E como a chave primária de R. 
• Se a chave escolhida é composta, então o conjunto de atributos 
simples que o compõem formarão a chave primária de R. 
 
 
Figura 7. Tipo de entidade Empregado. 
Assim, a relação EMPREGADO é criada seguindo o passo 1. 
 
EMPREGADO(Nss, Pnome, Mnome, Snome, Sexo, Endereço, DataNasc, 
Salário) 
 
 
• Passo 2: 
• Para cada tipo de entidade fraca W do DER (DEPENDENTE na 
Figura 8) com o tipo de relacionamento de identificação E, crie uma 
relação R e inclua todos os atributos simples (ou os atributos 
simples de atributos compostos) de W como atributos de R. 
• Além disso, inclua como a chave estrangeira de R a chave primária 
da relação que corresponde ao tipo de entidade proprietário da 
identificação. 
• A chave primária de R é a combinação da chave primária do tipo 
de entidade proprietário da identificação e a chave parcial do tipo 
de entidade fraca W. 
 
 
 
 
 
 
 
 
 
 
Figura 8. Tipo de entidade fraca Dependente. 
Assim a relação DEPENDENTE é criada seguindo o passo 2. 
DEPENDENTE(NssEmpregado, Nome, Sexo, DataNsc, TipoRelação) 
Em que NssEmpregado é chave estrangeira para a relação Empregado. 
 
• Passo 3: 
• Para cada tipo de relacionamento binário 1:1, R, do DER, 
identifique as relações S e T que correspondem aos tipos de 
entidade que participam da relação R. 
• Escolhauma das relações, por exemplo S, e inclua como chave 
estrangeira de S a chave primária de T. 
• É melhor escolher o tipo de entidade com participação total (linha 
dupla no DER) em R como sendo a relação S. Na figura 9, S foi 
escolhida como sendo DEPARTAMENTO ela tem participação 
total no tipo de relacionamento GERENCIA. 
• Inclua todos os atributos simples (ou os atributos simples de 
atributos compostos) do tipo de relacionamento 1:1, R, como 
atributos de S. 
 
 
Figura 9. Relacionamento binário 1:1. 
 
Assim, a relação DEPARTAMENTO é completa seguindo o passo 3. 
 
DEPARTAMENTO (Nome, Número, Número_de_empregados,NSSEmpregado, 
Data_inicio_gerencia) 
NSSEmpregado é chave estrangeira da Relação de Empregado, Data início 
gerencia é atributo do relacionamento GERENCIA que é colocado na relação 
DEPARTAMENTO. 
Note que o atributo multivalorado Localização não é colocado ainda na relação, 
porque ele será mapeado no passo 6. 
 
• Passo 4: 
• Para cada tipo de relacionamento binário regular 1:N, R, identificar 
a relação S que representa o tipo de entidade que participa do lado 
N (muitos) de R. 
• Inclua como chave estrangeira de S a chave primária de T que 
representa o outro tipo de entidade que participa em R; isso porque 
cada entidade do lado 1 está relacionada a mais de uma entidade 
no lado N. 
• Na Figura 10, S será escolhido como sendo a relação Empregado 
e T será escolhido como sendo a relação Departamento. Assim, a 
relação EMPREGADO deverá ter a chave estrangeira de 
DEPARTAMENTO. 
• Inclua também quaisquer atributos simples (ou atributos simples de 
atributos compostos) do tipo de relacionamento 1:N como atributos 
de S. No caso da Figura 10, não tem atributos no tipo de 
relacionamento. 
 
 
Figura 10. Relacionamento binário N:1. 
 
Assim, a relação EMPREGADO é completada seguindo o passo 4. 
EMPREGADO(Nss, Pnome, Mnome, Snome, Sexo, Endereço, 
DataNasc,Salário, Nome_Departamento) 
 
NomeDepertamento é chave estrangeira que mapeia o tipo de relacionamento: 
TRABALHA_PARA. 
Passo 5: 
• Para cada tipo de relacionamento binário M:N, R, crie uma nova 
relação S para representar R. 
• Inclua como chave estrangeira de S as chaves primárias das 
relações que representam os tipos de entidade participantes; sua 
combinação irá formar a chave primária de S. 
• Inclua também qualquer atributo simples do tipo de relacionamento 
M:N (ou atributos simples dos atributos compostos) como atributos 
de S. 
 
 
Figura 11. Relacionamento binário N:N ou N:M. 
Assim, seguindo o mapeamento da Figura 11 e considerando já ter a relação 
Projeto, a relação Trabalha_em é criada seguindo o passo 5. 
 
PROJETO(Número, Nome, Localização) 
TRABALHA_EM(NssEmpregado,NúmeroProjeto, Horas) 
NssEmpregado é chave estrangeira para Empregado e NúmeroProjeto é chave 
estrangeira para Projeto. O atributo horas que é do tipo de relacionamento e é 
incluído na relação TRABALHA_EM. 
 
• Passo 6: 
• Para cada atributo A multivalorado, crie uma nova relação R que 
inclua o atributo A e a chave primária, K, da relação que representa 
o tipo de entidade ou o tipo de relacionamento que tem A como 
atributo. 
• A chave primária de R é a combinação de A e K. 
• A Figura 12 apresenta o atributo multivalorado Localização. 
• Se o atributo multivalorado é composto, inclua os atributos simples 
que o compõem. 
 
 
Figura 12. Atributo multivalorado Localização. 
Assim, a relação LOCALIZAÇÃO é criada seguindo o passo 6. 
LOCALIZAÇÃO(DNome, DLocalização) 
 
Normalização 
Primeira Forma Normal 
 
A primeira forma normal proíbe que relações tenham: 
• Atributos compostos 
• Atributos multivalorados 
• Relações aninhadas 
 
O único valor permitido pela 1FN (Forma Normal) é o valor atômico. 
O esquema da tabela DEPTO não está na 1FN por ter o atributo Localizações 
que é multivalorado (Figura 13). 
 
 
 
 
 
Figura 13. Exemplo de relação que não está na 1FN. 
 
Normalizando, é criada duas relações (veja o passo 6 do mapeamento conceitual 
para lógico). A Figura 14 apresenta as duas relações que já estão na 1FN: 
DEPTO_B e DEPTO_LOCS desmembrando o atributo multivalorado. 
 
 
 
 
 
 
 
 
 
 
 
Figura 14. Processo de normalização da relação que não está na 1FN para duas 
relações em 1FN. 
 
 
Segunda Forma Normal 
 
 
Na segunda forma normal, se a relação só tem um atributo-chave, ela já está na 
segunda forma normal. Se a chave é composta por mais atributos, a relação R 
está na 2FN se também estiver na 1FN e todos os atributos não primos A de R 
forem totalmente dependentes da chave primária. 
 
Na Figura 15, a relação FUNC_PROJ não está na 2FN, ela tem dois atributos 
que compõem a chave e existem atributos que dependem de parte da chave, e 
não de toda a chave, por exemplo o atributo fuc_nome, que depende de parte 
da chave que é func_ident. 
 
 
 
 
 
Figura 15. Relação FUNC_PROJ não está na 2FN. 
 
Na relação FUNC_PROJ existem três dependências funcionais: 
DF1 func__ident e proj_numero determinam juntos as horas. 
DF2 func_ident determina func_nome. 
DF3 proj_numero determina proj_nome e proj_localização. 
 
Então não está na 2FN. 
Normaliza e cria relações para cada dependência funcional encontrada, como é 
possível observar na Figura 16. 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 16. Processo de normalização da relação FUNC_PROJ. 
 
Terceira Forma Normal 
 
A Figura 17 apresenta uma relação FUNC_DEPTO que não se encontra na 3FN. 
Foram identificadas duas dependências funcionais: DF1 e DF2 na Figura 17. 
 
 
 
 
 
Figura 17. Relação FUNC_DEPTO que não se encontra na 3FN. 
 
func_ident depto_g_ident é uma dependência transitiva por depto_numero. 
 
Normalizando, são criadas duas relações, a FD1 da Figura 18, com os dados de 
Funcionário e a chave estrangeira para Departamento, e a relação 
Departamento com depto_número como chave primária e depto_nome e 
depto_g_ident como atributos. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 18. Processo de normalização da relação FUNC_DEPTO. 
 
BOYCE-CODD NORMAL FORM (BCNF) 
 
Uma relação esquema R está na BCNF se sempre que houver uma DF X->A 
em R, então X é uma superchave de R. 
No exemplo da Figura 19 vemos que existem duas DF: 
DF1: em que {estudante, curso} determina instrutor. 
DF2: em que instrutor determina curso. 
 
Se a relação tivesse apenas DF1, a relação estaria na BCNF. Mas em DF2, 
instrutor não é uma superchave, portanto, viola a BCNF, mas não a 3FN, pois 
curso é primo (faz parte da chave primária). 
 
 
 
 
 
 
 
 
Figura 19. Exemplo de relação na 3FN e não na BCNF. 
Para normalizar, a relação deve ser decomposta para atender a essa 
propriedade, mas abdica da preservação das dependências funcionais nas 
relações decompostas. No exemplo, a normalização correta é a apresentada na 
Figura 20, na qual a DF1 ela é perdida na decomposição, mas é possível 
reconstruir a relação originar com join sem ter tuplas espúrias. 
 
 
 
 
 
 
Figura 20. Normalização para BCNF do exemplo da Figura 19. 
 
Resumindo, cada forma normal engloba a forma normal anterior: 
• Toda relação em 2FN está na 1FN. 
• Toda relação em 3FN está na 2FN. 
• Toda relação em BCNF está na 3FN. 
 
Existem relações que estão na 3FN, mas não em BCNF. 
 
 
MYSQL 
 
É bom sempre ver a documentação da ferramenta que se encontra em: 
https://dev.mysql.com/doc/workbench/en/. 
Para instalação: Como instalar o MySQL e o WorkBench - Passo a Passo. 
https://dev.mysql.com/doc/workbench/en/
https://www.youtube.com/watch?v=a5ul8o76Hqw
 
 
Para modelagem: https://dev.mysql.com/doc/workbench/en/wb-getting-started-
tutorial-creating-a-model.html. 
Há diferentes vídeos, conforme as dúvidas que você tenha sobre o 
funcionamento da ferramenta, disponíveis em: 
https://www.youtube.com/mysqlchannel. 
 
 
 
https://dev.mysql.com/doc/workbench/en/wb-getting-started-tutorial-creating-a-model.htmlhttps://dev.mysql.com/doc/workbench/en/wb-getting-started-tutorial-creating-a-model.html
https://www.youtube.com/mysqlchannel
https://www.youtube.com/watch?v=a5ul8o76Hqw

Outros materiais