Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Introdução à Banco de Dados: Modelos Relacionais e Consultas SQL IV, Notas de aula de Engenharia de Software

Neste vídeo, aprenda sobre coleções de dados relacionados, arquiteturas de bancos de dados, funções principais, linguagens sql e dml, vantagens de usar um sgbd relacional e por que estudar banco de dados. Além disso, abordaremos o modelo entidade-relacionamento, especialização/generalização, seleção, projeção, junção, divisão e resumo. O vídeo também apresenta exemplos e exercícios.

Tipologia: Notas de aula

2021

Compartilhado em 04/08/2021

usuário desconhecido
usuário desconhecido 🇧🇷

5 documentos

1 / 30

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Índice
Aula 01 – Banco de dados e Usuário....................................................................................................2
Aula 02 – Abstração e Modelo de Dados.............................................................................................4
Aula síncrona........................................................................................................................................7
Aula 03 – Modelagem conceitual.........................................................................................................8
Projeto conceitual:...........................................................................................................................8
Aula 04 – Exemplos (brModelo)..........................................................................................................9
Aula 05 – Modelo ER estendido..........................................................................................................9
Especialização/Generalização..........................................................................................................9
Entidade associativa.......................................................................................................................10
Categoria Tipo União.....................................................................................................................10
Aula 06 – Construção de Diagramas ER............................................................................................10
Aula 07 – Exemplos (apenas slide)....................................................................................................11
Aula 08 – Modelo Relacional.............................................................................................................11
Aula 09 – Mapeamento Modelo ER → Modelo Relacional..............................................................12
Projeto Lógico................................................................................................................................12
Aula 10 – Álgebra Relacional............................................................................................................15
Aula 11 – Álgebra Relacional (Junções)............................................................................................16
Aula 12 – Álgebra Relacional (Funções de Agregação).....................................................................17
Funções de agregação....................................................................................................................17
Aula 13 – Cálculo Relacional.............................................................................................................18
Aula 15 – SQL - Consultas I...............................................................................................................18
Aula 16 – SQL – Consultas II.............................................................................................................21
UNION...........................................................................................................................................22
EXCEPT (Direfença).....................................................................................................................22
CONSULTA EM ÁRVORE...........................................................................................................22
Aula 17 – SQL - Consultas III............................................................................................................22
TABELAS DE JUNÇÃO...............................................................................................................23
Aula 18 – SQL – Consultas IV...........................................................................................................24
MANIPULAÇÃO..........................................................................................................................25
Aula 19 – SQL – Criação do BD........................................................................................................25
Aula 20 – Visões.................................................................................................................................26
Aula 21 – Dependências Funcionais..................................................................................................27
Aula 22 – Normalização.....................................................................................................................28
1NF................................................................................................................................................29
2NF................................................................................................................................................29
3NF................................................................................................................................................29
BCNF.............................................................................................................................................30
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e

Pré-visualização parcial do texto

Baixe Introdução à Banco de Dados: Modelos Relacionais e Consultas SQL IV e outras Notas de aula em PDF para Engenharia de Software, somente na Docsity!

Índice

  • Aula 01 – Banco de dados e Usuário....................................................................................................
  • Aula 02 – Abstração e Modelo de Dados.............................................................................................
  • Aula síncrona........................................................................................................................................
  • Aula 03 – Modelagem conceitual.........................................................................................................
    • Projeto conceitual:...........................................................................................................................
  • Aula 04 – Exemplos (brModelo)..........................................................................................................
  • Aula 05 – Modelo ER estendido..........................................................................................................
    • Especialização/Generalização..........................................................................................................
    • Entidade associativa.......................................................................................................................
    • Categoria Tipo União.....................................................................................................................
  • Aula 06 – Construção de Diagramas ER............................................................................................
  • Aula 07 – Exemplos (apenas slide)....................................................................................................
  • Aula 08 – Modelo Relacional.............................................................................................................
  • Aula 09 – Mapeamento Modelo ER → Modelo Relacional..............................................................
    • Projeto Lógico................................................................................................................................
  • Aula 10 – Álgebra Relacional............................................................................................................
  • Aula 11 – Álgebra Relacional (Junções)............................................................................................
  • Aula 12 – Álgebra Relacional (Funções de Agregação).....................................................................
    • Funções de agregação....................................................................................................................
  • Aula 13 – Cálculo Relacional.............................................................................................................
  • Aula 15 – SQL - Consultas I...............................................................................................................
  • Aula 16 – SQL – Consultas II.............................................................................................................
    • UNION...........................................................................................................................................
    • EXCEPT (Direfença).....................................................................................................................
    • CONSULTA EM ÁRVORE...........................................................................................................
  • Aula 17 – SQL - Consultas III............................................................................................................
    • TABELAS DE JUNÇÃO...............................................................................................................
  • Aula 18 – SQL – Consultas IV...........................................................................................................
    • MANIPULAÇÃO..........................................................................................................................
  • Aula 19 – SQL – Criação do BD........................................................................................................
  • Aula 20 – Visões.................................................................................................................................
  • Aula 21 – Dependências Funcionais..................................................................................................
  • Aula 22 – Normalização.....................................................................................................................
    • 1NF................................................................................................................................................
    • 2NF................................................................................................................................................
    • 3NF................................................................................................................................................
    • BCNF.............................................................................................................................................

Aula 01 – Banco de dados e Usuário

Vídeo: https://www.youtube.com/watch?v=fwyGl3PVmNc

  • Dados: informações que podem ser registradas e posteriormente analisadas. Possuem significado implícito, ou seja, eu preciso defini-los para que façam sentido;
  • Banco de dados: ◦ Coleção de dados relacionados, ou seja, um conjunto de dados que tem relação entre si. Além de estarem relacionados, os dados precisam atender a um fim específico; ◦ Ademais, banco de dados é uma coleção de dados gerenciados por um SGBD (Sistema de gerenciamento de bando de dados); ◦ Coleção lógica e coerente; ◦ Possuem propósito específico; ◦ Aplicações tradicionais: ▪ Dados alfanuméricos; ▪ Contas, agências, cliente, etc…, de uma entidade bancária; ▪ Voos, pilotos, aeroportos, clientes, passagens, etc… , de uma companhia aérea; ▪ Hotéis com dados de clientes; ▪ Comércio eletrônico; ◦ O projetista de banco de dados negocia com o cliente quais são os dados a serem manipulados para atender a um determinado ‘problema’;
  • Sistema gerenciador de banco de dados (SGBD): ◦ Coleção de programas que permite aos usuários criar, manter e manipular um banco de dados; ◦ Software projetado para auxiliar a manutenção e utilização de vastos conjuntos de dados; ◦ Não apenas mantém os dados, como permite o gerenciamento de modo EFICIENTE; ◦ Principais funções: ▪ Definir – Como e quais tipos de dados serão armazenados; ▪ Construir – Definir a mídia física que serão armazenados os dados (HD, disco rígido, nuvem, ...); ▪ Manipular – Inserir, alterar, remover e consultar os dados a qualquer momento; ▪ Compartilhar – Acesso simultâneo a um único repositório de dados; ▪ Proteção – Acesso e consistência; ▪ Manutenção – Evolução e desempenho;

Aula 02 – Abstração e Modelo de Dados

Vídeo: https://www.youtube.com/watch?v=5RJ688yAA-c

  • Modelos de dados: ◦ Conceitual (Entidade Relacionamento): ▪ Próximo da visão do usuário final; ▪ Sem detalhes de implementação; ▪ Baseia-se em conceitos como objetos, atributos, relacionamentos, elementos. ◦ Implementação (Representacional – Relacional de Dados): ▪ Esconde detalhes de armazenamento; ▪ Não se preocupa com questões físicas (memória); ▪ Implementação direta, modelos mais comuns. ◦ Físico: ▪ Detalhes de como são armazenados os dados; ▪ Arquivos, registros, caminhos de acesso, ordenação.
  • Esquema: ◦ Descrição do banco de dados; ◦ Poucas alterações após elaborados; ◦ Os dados continuam entrando e saindo, mas a estrutura muda pouco, dependendo apenas da regra de negócio; ◦ É representado através de um diagrama de esquema: ▪ Esquematiza as informações pertinentes a cada tipo de dado; ▪ Com o catálogo é possível analisar metadados das entradas. Figura 2 : Geral
  • Arquitetura 3 camadas: ◦ Arquitetura teórica para demonstrar a independência entre dados; ◦ Cada usuário tem sua própria visão de dados; ◦ Usuários não precisam conhecer a estrutura física; ◦ Alterações em camadas inferiores não afetam as visões dos usuários; ◦ Vídeo.
  • Linguagens: ◦ DDL: Definir os dados, ◦ VDL: Criar os dados, ◦ DML: Manipular os dados, ◦ SDL: Armazenar os dados.
  • Profissionais: ◦ DBA (Administrador de banco de dados): ▪ Implanta e administra; ▪ SGBD específico. ◦ Projetista de banco de dados: ▪ Identifica como e quais dados armazenar. ◦ Analista de sistemas: ▪ Implementa os programas que acessam o BD. ◦ Desenvolvedor SGBD: ▪ Implementa o SGBD.
  • Vantagens do SGBD: ◦ Mais informação; ◦ Backup e recuperação; ◦ Compartilhamento facilitado; ◦ Consultas eficientes; ◦ Controle de redundância; ◦ Restrições.
  • Desvantagens do SGBD: ◦ Complexidade; ◦ Tanho; ◦ Custo. SQL (Definir, Inserir, Consultar) Linguagem padrão para BD relacional

Aula síncrona

  • Porque estudar Banco de Dados? ◦ Tudo gera dados → Redes sociais, sinais vitais, questões governamentais … ◦ Importante na tomada de decisões;
  • A disciplina estuda como armazenar os dados;
  • É considerado a parte central dos sistemas;
  • Qual a função dos bancos de dados? ◦ Ordenar, arranjar (estruturar), e apresentar (não é uma tarefa especifica);
  • Evolução
  • Objetivos: ◦ Fundamentos e teorias de banco de dados relacionais; ◦ Projetar e construir sistemas de bancos de dados;
  • Linguagem: SQL;
  • Livro: ◦ ELMASRI (principal); ◦ HEUSER;
  • Prova: ◦ 02/03/21 (Semana 07); ◦ 13/04/21 (Semana 13).
  • Trabalho prático: ◦ 5 etapas;
  • Ferramenta para diagramação ER: ◦ BR modelo; ◦ MySQL workbanch (diagrama relacional visual)

Aula 03 – Modelagem conceitual

Projeto conceitual:

  • Abstração do problema para realizar análise de requisitos;
  • Diagrama de esquema conceitual;
  • Modelo entidade relacionamento: ◦ Usado para projetos conceituais; ◦ Entidade: Conjunto de objetos a ser representado no banco de dados; ▪ nomeEntidade dentro de um retângulo; ◦ Instâncias: ocorrência individual de cada entidade; ◦ Relacionamento: Associação entre instâncias das entidades;
  • Auto relacionamento: Associar à uma mesma entidade;
  • Cardinalidade: quantas instâncias de uma dada entidade pode participar daquele relacionamento;
  • Atributos: propriedades que descrevem as entidades e relacionamentos; ◦ Os atributos chaves são preenchidos e devem ser exclusivos.
  • Entidades fracas dependem de uma outra entidade para existir. Representado por retângulos com bordas duplas;
  • Regras para herança;

Entidade associativa

  • Permite associar um relacionamento à outro. Exemplo

Categoria Tipo União

  • Entidades genéricas distintas podem se especializar em uma mesma entidade.
  • Exemplo.

Aula 06 – Construção de Diagramas ER

Vídeo: https://www.youtube.com/watch?v=qTrR0OZPRJ

  • Modelo entidade-relacionamento: ◦ Formal, preciso e não-ambíguo; ◦ Poder de expressão limitado, não é possível representar todas restrições;
  • Recomendações de projeto: ◦ Entidades: Conceito com propriedades, características (especializações ou generalizações); ◦ Atributo: Conjunto de valores fixos em que ele por se só é característica de algo; ◦ Deve-se reduzir atributos opcionais (que nem todas instâncias possui); ◦ Qualidade do projeto: completo, correto e sem redundância. ▪ Correto: Verificado junto ao cliente; Erros sintáticos e/ou semânticos; ▪ Completo: Verificado junto ao cliente; Contém todos os dados desejáveis; ▪ Sem redundância: Verificado pelo projetista; Exemplo vídeo;
  • Aspectos temporais: ◦ O histórico de alterações pode ser armazenado; ◦ Modificações no esquema podem ser necessárias;

Aula 07 – Exemplos (apenas slide)

Vídeo: NÃO TEM Apenas apresentação em slide.

Aula 08 – Modelo Relacional

Vídeo: https://www.youtube.com/watch?v=YNjiDRRl7wo

  • O modelo relacional utiliza conceitos de relações matemáticas;
  • Para o modelo relacional, o banco de dados é tido como uma coleção de relações;
  • A ordem dos atributos nesse tipo de modelo não é importante, já no SQL isso importa;
  • Cada tupla, representa um fato (instância da entidade);
  • O modelo relacional é composto pelo esquema e pelas instâncias: ◦ Esquema: Estrutura da tabela → NOME(atributos); ◦ Instância: Cada tupla de uma relação;
  • O BD mantém apenas instâncias atuais de cada relação, isto é, os valores antigos não são mantidos; ◦ Para manter, pode-se utilizar Banco de dados Históricos;
  • Cada valor de uma tupla é atômico, ou seja, sem atributos compostos ou multivalorados. Cada valor de cada campo da tupla é indivisível;
  • Valores NULL são valores desconhecidos ou não aplicáveis; ◦ Impacta na tabela verdade;
  • O modelo relacional possui um conjunto de restrições: ◦ No modelo ER a cardinalidade representa uma restrição do relacionamento; ◦ As tuplas das tabelas podem estar relacionadas; ◦ Existem 3 tipos de restrições: Implícitas, Explicitas e Regras de Negócio; ▪ Regras de negócio: São restrições que vem do problema;
  • Objetivos do mapeamento: Simplificar desenvolvimento e melhorar desempenho;
  • Princípios auxiliares: evitar junções e reduzir número de chaves;
  • Tabelas simplificadas, sem excessos;
  • Algoritmo de mapeamento: ◦ Transformar entidades FORTES em tabelas; ◦ Mapear as entidades FRACAS com todos os atributos da entidade + a chave da entidade forte ligada a ela (chave estrangeira); ▪ Para indicar a chave estrangeira utiliza-se setas ou asterisco com informação; ◦ Mapear relacionamentos 1:1; ▪ Identifique as entidades S e T que participam do relacionamento X; ▪ Escolha uma das entidades para escolher a chave estrangeira da outra, exemplo; ▪ A entidade que recebe a chave estrangeira também receberá os atributos do relacionamento, caso existam; ◦ Mapear relacionamentos 1:n; ▪ Igual ao anterior, recebe a chave estrangeira a que participa do lado n do relacionamento; ◦ Mapear relacionamento m:n; ▪ Cria-se uma tabela R para o relacionamento X; ▪ As chaves primárias das duas entidades participantes são incluídas na tabela, e o par de chaves se torna a chave do relacionamento; ▪ Incluir também atributos de X, caso houver; ▪ Exemplo; Figura 4 : Sequencia de passos

◦ Mapear atributos multivalorados; ▪ Para cada atributo multivalorado cria-se uma tabela; ▪ Cria-se um atributo correspondente ao atributo; ▪ Insere a chave estrangeira da entidade que possui o atributo multivalorado; ▪ Exemplo; ◦ Relacionamentos enário (mais de duas entiades); ▪ Exemplo; ◦ Mapeando especialização/ generalização ▪ Opção 01: (Múltiplas entidades)

  • Uma tabela para cada entidade especializada e uma para a genérica
  • As entidades especializadas recebem a chave estrangeira da genérica, e esta será a chave primaria
  • Exemplo; ▪ Opção 02: (Criar somente as especializadas)
  • Atributos comuns são repetidos em cada entidade genérica
  • Somente válida para especialização TOTAL
  • Exemplo; ▪ Opção 03: (Tabela única com valores NULL para atributos especificos)
  • Exemplo; ◦ Mapeando União: ▪ Cria-se uma relação R representando a categoria C (especialização invertida), coloca um atributo para chave primária; ▪ Exemplo; ◦ Entidade associativa: Figura 5 : Regra geral do Mapeamento

• RENOMEAR:

◦ símbolo rho: ◦ S: novo nome da relação ◦ (b1, b2, …, bn) novos nomes dos atributos ◦ (R) : Nome da relação atual ◦ rho S(b1, b2, …, bn) (R ) ◦ Renomeia ou o nome, ou os atributos, ou ambos; ◦ Deve-se indicar todos os atributos ◦ Exemplos;

Aula 11 – Álgebra Relacional (Junções)

Vídeo: https://www.youtube.com/watch?v=i3HUW2PfoMg

  • Operações de conjuntos (UNIÃO, INTERSEÇÃO E DIFERENÇA)
  • São operadores binários
  • Duas relações, R e S tem que ser compatíveis para UNIÃO ◦ Mesmo número de atributos ◦ Mesmo domínio de atributos
  • União e Interseção são comutativas e associativas;
  • PRODUTO CARTESIANO: ◦ Não precisam ser compatíveis ◦ Combina cada tupla em R com tupla em S ◦ Concatena as tuplas da tabela R com a tabela S ◦ O número de tuplas será tuplasR*tuplasS ◦ Exemplo; ◦ Traz pouco resultado prático;
  • JUNÇÃO: ◦ Produto cartesiano com seleção → Notação; ◦ Exemplo; ◦ Equijunção somente utilizar condição de igualdade; ◦ Junção natural → Elimina atributos iguais (Representado por asterisco)

Aula 12 – Álgebra Relacional (Funções de Agregação)

Vídeo: https://www.youtube.com/watch?v=iWShmkCeCuo

  • Interseção pode ser criado através da relação entre União e Diferença, assim como a Junção é a relação entre Produto Cartesiano e Seleção. Exemplo;
  • DIVISÃO: ◦ Indicado para consultas que envolvem totalidade; ◦ Encontrar todos os funcionários que trabalham em todos projetos que João trabalha; ◦ Exemplo; ◦ O denominador deve ser um subconjunto do numerador; ◦ Geralmente o denominador tem apenas um atributo, GERALMENTE; ◦ Pode ser representado com uma relação de outras operações:
  • RESUMO SOBRE OPERADORES

Funções de agregação

  • O resultado também é uma tabela com um único atributo e uma única tupla;
  • Exemplo: salário médio, maior salário..
  • Agrupamento → Similar ao groupby do pandas: Exemplo
  • Junção externa → Exemplo;
  • União Externa → Exemplo;
  • Projeção Generalizada → Exemplo;
  • SQL é uma linguagem Ortogonal → O resultado de uma consulta é ortogonal, podem existir linhas duplicadas em resultados;
  • EXEMPLO
  • Qual a data de nascimento e o endereço dos funcionários chamados João B Silva? ◦ SELECT DataNascimento, Endereco ◦ FROM FUNCIONARIO ◦ WHERE Pnome = ‘João’ AND Minicial = ‘B’ AND Unome = ‘Silva’;
  • Recuperar o nome completo e o endereço dos funcionários que trabalham no departamento Pesquisa.: ◦ SELECT Pnome, Minicial, Unome, Endereco ◦ FROM FUNCIONARIO, DEPARTAMENTO ◦ WHERE Dnr=Dnumero AND Dnome= ‘Pesquisa’
  • Listar o número do projeto, o número do departamento que o controla, o último nome e o endereço do gerente deste departamento, dos projetos em Mauá: ◦ SELECT ProjNumero, Dnumero, Unome, Endereco ◦ FROM PROJETO, DEPARTAMENTO, FUNCIONARIO ◦ WHERE ProjLocal = ‘Mauá’ AND Dnum=Dnumero AND Cpf_supervisor = Cpf
  • Recuperar o número e nome dos departamentos localizados em São Paulo ◦ SELECT DEPARTAMENTO.Dnumero, Dnome ◦ FROM LOCALIZACOES_DEP, D.DEPARTAMENTO ◦ WHERE Dlocal = ‘São Paulo’ AND DEPARTAMENTO.Dnumero = LOCALIZACOES_DEP.Dnumero ◦ SELECT D.Dnumero, D.Dnome ◦ FROM LOCALIZACOES_DEP L, D.DEPARTAMENTO D ◦ WHERE L.Dlocal = ‘São Paulo’ AND D.Dnumero = L.Dnumero
  • Para cada funcionário recupere seu nome e último nome, assim como nome e ultimo nome do gerente ◦ SELECT F.Pnome, F.Unome, G.Pnome, G.Unome ◦ FROM FUNCIONARIO F, FUNCIONARIO G ◦ WHERE F.Cpf_supervisor = G.Cpf
  • Consultar o cpf dos funcionarios ◦ SELECT cpf ◦ FROM FUNCIONARIO
  • Recupere os funcionários do departamento 1: ◦ SELECT * ◦ FROM FUNCIONARIOS ◦ WHERE Dnr = 1
  • Recupere os funcionário do departamento Pesquisa ◦ SELECT F.* ◦ FROM FUNCIONARIO F, DEPARTAMENTO D ◦ WHERE D.Dnome = ‘Pesquisa’, D.Dnumero = F.Dnr
  • PARA ELIMINAR DUPLICATAS → Selecionar o salário dos funcionários ◦ SELECT DISTINCT F.salario ◦ FROM FUNCIONARIO F