PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos...

101
PROFESSOR RAFAEL SILVA BANCOS DE DADOS

Transcript of PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos...

Page 1: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

PROFESSOR RAFAEL SILVA

BANCOS DE DADOS

Page 2: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

OBJETIVOS DA DISCIPLINA

• Apresentar os principais conceitos de bancos de dados• Compreender a importância da utilização

de bancos de dados • Ensinar técnicas para projetos e

modelagem de bancos de dados• Apresentar a linguagem SQL• Apresentar o SGBD MySql, permitindo a

criação e manipulação de bancos de dados

Page 3: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

INTRODUÇÃO

• O que é banco de dados?• Existem vários conceitos para o que chamamos de

bancos de dados, mas todos remetem à mesma ideia: Uma coleção compartilhada de dados, inter-relacionados, projetados para atender as necessidades dos múltiplos tipos de usuários.

• Dado x informação:• Dado: valor “solto” na natureza, cujo significado

depende do contexto.• Ex: -1, 3.14, 853, prata

• Informação: É um valor para determinado objetivo, acrescenta conhecimento ao fato analisado. Pode ser extraída de um banco de dados• Ex: “A temperatura na cidade X foi de -1 grau”,

“Meu carro é prata”, “3.14 é o valor de pi”

Page 4: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

IMPORTÂNCIA DOS BDS

• O mundo hoje é totalmente informatizado• Pessoas e empresas são cada vez mais

dependentes da informática• Tudo gira em torno de dados (vendas,

operações bancárias, gerenciamento de empresas, escolas e/ou órgãos públicos, etc.)• Os bancos de dados permitem o

armazenamento destas informações, considerando aspectos fundamentais como segurança, rapidez no acesso e confiabilidade.

Page 5: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

VANTAGENS DE UM BD

•Controle de redundância•Compartilhamento entre múltiplos usuários•Restrição de acesso aos dados•Diferentes tipos de interface para diferentes

usuários•Representação dos dados com um nível grande

de complexidade•Garante a restrição de integridade (manter

dados íntegros)•Mecanismos de backup e recuperação de dados•Flexibilidade na mudança das estruturas de

dados

Page 6: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

SISTEMAS DE BANCOS DE DADOS

• Envolvem quatro elementos:• Dados : são os elementos essenciais (afinal de

contas, o banco de dados é um repositório)• Hardware: composto por volumes de

armazenamento (discos), processadores de HD e memória (dar suporte à execução dos SGBDs)

• Software: programas usados para criar e gerenciar os bancos de dados; também entram os utilitários, ferramentas de desenvolvimento, geradores de relatórios, etc

• Usuários: pessoas que usarão os bancos de dados

Page 7: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

TIPOS DE USUÁRIOS

• Programadores: criam programas para acessar os bancos de dados

• Usuários finais: acessam os bancos de dados interativamente

• Profissionais: usuários com conhecimentos específicos sobre bancos de dados. Podem ser:• Administrador de dados: responsável pelos

dados, decidem o que deve ser armazenado• DBA: Responsável pela implementação das

decisões do administrador; cria os bancos de dados e implementa controles necessários

Page 8: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

SGBDS

• Sigla para Sistemas Gerenciadores de Bancos de Dados. São softwares que tem como objetivos permitir a criação e manutenção de banco de dados, além da manipulação dos dados armazenados.

• Alguns SGBDs: • Access,• SQLServer• Oracle• MySQL• PostGre

Page 9: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

LINGUAGEM SQL

• Linguagem padronizada para manipulação de bancos de dados, usadas nos SGBDs• Dividida em:• DDL - Linguagem de Definição de Dados• DML - Linguagem de Manipulação de

Dados• DCL - Linguagem de Controle de Dados• DTL - Linguagem de Transação de Dados• DQL - Linguagem de Consulta de Dados

Page 10: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

ABSTRAÇÃO DE DADOS

• Nível de visões do usuário ou externo: descreve partes do banco de dados, de acordo com as necessidades de cada usuário, individualmente.

• Nível conceitual ou lógico: descreve quais dados estão armazenados e seus relacionamentos. Neste nível, o banco de dados é descrito através de estruturas relativamente simples, que podem envolver estruturas complexas no nível físico.

• Nível físico: nível mais baixo de abstração. Descreve como os dados estão realmente armazenados, englobando estruturas complexas de baixo nível.

Page 11: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

INSTÂNCIAS E ESQUEMAS

• Instância: Os dados atuais armazenados no Banco de Dados em um momento particular. Também chamado estado do banco de dados.

• Esquema: Descrição da estrutura de um Banco de Dados. Pode ser textual ou gráfico. Conhecido também como o projeto geral do banco de dados.

Page 12: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

INDEPENDÊNCIA DE DADOS

• Capacidade de modificar os esquemas de um banco de dados sem afetar um esquema de nível superior. Existem dois níveis de independência:• Física: capacidade de modificar o esquema físico

sem que haja qualquer necessidade de reescrever alguma aplicação. Usada para promover melhorias no desempenho.

• Lógica: capacidade de modificar o esquema lógico sem que haja qualquer necessidade de reescrever alguma aplicação. Necessárias quando uma estrutura lógica é alterada (ex: inserção de novas moedas num sistema)

Page 13: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

MODELO DE DADOS

• Conceituais (Alto Nível)• Entidade-Relacionamento• Objeto-Relacional (BDII)• Orientado a Objeto (BDII)

• Implementação (Lógicos)• Relacional• Rede (BD mais antigos)• Hierárquico (BD mais antigos)

• Físicos

Page 14: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

MODELO ENTIDADE-RELACIONAMENTO

• Modelo proposto por Peter Chen, baseado na percepção do mundo real.

• Formado por um conjunto de objetos básicos denominados entidades e nos relacionamentos entre tais objetos.

• Tal modelo permite especificar a estrutura lógica do banco de dados.

Page 15: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

MODELO ENTIDADE-RELACIONAMENTO

• O Diagrama Entidade-Relacionamento (DER) permite representar graficamente a estrutura lógica de um banco de dados.

• De um modo geral, para nos auxiliar na elaboração de um DER, podemos dizer que os substantivos de uma frase são as entidades e os verbos são os relacionamentos entre as entidades.

Page 16: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

MODELO ENTIDADE-RELACIONAMENTO

Page 17: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

MODELO ENTIDADE-RELACIONAMENTO

• Entidade: Podemos definir uma entidade como sendo um objeto do mundo real, com significado próprio e identificação distinta. Pode ser pessoa, animal, conta bancária, produto, veículo, etc. – depende do contexto.

• Entidade fraca: Entidade cuja existência depende obrigatoriamente de outra entidade. Por exemplo, em um clube, não existe dependente sem um sócio. Assim, a entidade dependente é fraca.

Page 18: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

MODELO ENTIDADE-RELACIONAMENTO

• Atributo: Toda entidade é descrita sob a forma de atributos. É simplesmente um item que ajuda a descrever entidade. Por exemplo, uma entidade chamada ALUNO pode ter os seguintes atributos: matrícula, nome, data de nascimento, nota.

• Atributo chave: Chave primária é um atributo de uma entidade, cuja função principal é identificar uma instância unicamente; deve ser um valor não nulo que não se repete dentre as instâncias de uma mesma entidade. Por exemplo, para a entidade ALUNO, a matrícula seria a chave primária, já que não podemos ter dois ou mais alunos com a mesma matrícula.

Page 19: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

MODELO ENTIDADE-RELACIONAMENTO

Outros tipos de chaves:

• Superchave: Conjunto de um ou mais atributos que, tomado coletivamente, permite-nos identificar unicamente uma instância de entidade.

• Chaves candidatas: Chaves com unicidade em uma instância: Ex: CPF, RG, título eleitoral. Todos os atributos que conseguem identificar uma instância.

• Chave secundária: Chave sem unicidade em uma instância. Ex: idade, sexo, endereço.

Page 20: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

MODELO ENTIDADE-RELACIONAMENTO

• Atributo multivalorado: Atributo que pode ocorrer diversas vezes para uma mesma instância de entidade. Como exemplo, para a entidade ALUNO, podemos ter mais de um email.

• Atributo composto: Atributo que pode ser desmembrado em outros atributos. Como exemplo, o atributo telefone da entidade ALUNO (formado por DDD + número do telefone).

• Atributo derivado: atributo cujo valor é calculado a partir do valor de outro atributo. Ex: o atributo idade de entidade ALUNO é derivado, já que pode ser obtido a partir do valor do atributo data de nascimento.

Page 21: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

MODELO ENTIDADE-RELACIONAMENTO

• Relacionamento: Termo usado para representar a associação entre entidades.

• Deve ser identificado por um verbo.

• Os relacionamentos possuem cardinalidade, identificação de quantas ocorrências de uma entidade têm correspondência na entidade relacionada.

Page 22: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

CARDINALIDADE

Tipos de cardinalidade:

• 1:1 (um para um) – cada ocorrência de uma entidade está relacionada a apenas uma ocorrência da outra entidade.

• 1:N (um para muitos) - cada ocorrência de uma entidade está relacionada a várias ocorrências da outra entidade.

• N:N (muitos para muitos) - cada ocorrência de uma entidade está relacionada a várias ocorrências da outra entidade e vice-versa. Este tipo de relacionamento dá origem a outra entidade.

Page 23: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLOS

Relacionamento 1:1

Um coordenador cuida de apenas uma disciplina e cada disciplina é de responsabilidade de apenas um coordenador

Page 24: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLOS

Relacionamento 1:N

Um curso pode ter vários alunos, mas cada aluno só pode estar matriculado em um curso

Page 25: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLOS

Relacionamento N:N

Um aluno faz cursa várias disciplinas e cada disciplina pode ter vários alunos

Obs: Este tipo de entidade tem representação diferente e é conhecido como ENTIDADE ASSOCIATIVA

Page 26: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

O relacionamento CURSA descrito a seguir será transformado em entidade associativa.

Aluno DisciplinasCursa

Nota

RA Nome Código Nome

Page 27: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

AUTO RELACIONAMENTOS

Tipo de situação onde uma instância de uma entidade tem relação com outra instância da mesma entidade.

É fundamental saber o papel de cada instância da entidade.

Page 28: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

AUTO RELACIONAMENTOS

Funcionário Casado Funcionário1 1

Funcionário CasadoMarido

Esposa

1

Page 29: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

GENERALIZAÇÃO/ESPECIALIZAÇÃO

• Em algumas situações, uma entidade pode conter instâncias com atributos diferentes.

• Neste caso, é possível visualizar uma herança de propriedades

• Para situações como essa, usamos os conceitos de generalização e especialização

Page 30: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

Cliente

P. Física P. Jurídica

Código Nome

CPF CNPJ

Page 31: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

• Neste caso, a entidade CLIENTE é de um nível superior ou genérico (GENERALIZAÇÃO).

• As entidades PESSOA FÍSICA e PESSOA JURÍDICA são entidades de nível inferior (ESPECIALIZAÇÃO)

• Os atributos descritos na entidade CLIENTE são comuns às entidades PESSOA FÍSICA e PESSOA JURÍDICA

Page 32: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO – DER (CONSULTÓRIO)

Um médico trata de pacientes. Do médico deseja-se saber CRM, nome e suas especializações.

O paciente é tratado por vários médicos. Do paciente necessitamos saber o nome, endereço e idade. O médico pede exames para o paciente.

Para cada pedido de exame está associado um único tipo de exame. Tal pedido se faz com uma justificativa.

Page 33: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

Médico Trata Paciente

Tipo Exame

Pede Exames

Justificativa Data Pedido

CRM NomeNome

Endereço

EspecializaçõesData Nasc.

Código

Idade

Código Nome

NM

MN

1

Page 34: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO - DER (PIZZARIA)

Um cliente faz pedidos. Cada pedido possui diversos itens de pedido. Cada pedido é entregue por um motoboy. Cada item corresponde a um produto.

Page 35: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

Cliente Faz Pedido

Item

Possui

Cód. Cliente NomeData PedidoCód. Pedido

Cód. Item

Quantidade

N1

1

Endereço Telefone

Produto Corresponde

Cód. Produto Descrição

1

N

N

Valor

Motoboy

Entrega

Cód. Motoboy

Nome

Page 36: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO – DER(EMPRESA)

Um funcionário trabalha para um departamento. Cada funcionário possui diversos dependentes.

Um departamento controla diversos projetos, sendo que um projeto só é controlado por um único departamento.

Diversos funcionários participam por um certo número de horas em um projeto.

Page 37: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

Funcionário Trabalha para

Departamento

Código

Nome

Nome

Código

1N

CPF

Dependente

Possui

Código Nome

Projeto

Controla

Nome Código

Participa

Data Início

Data Término

Qtd. Horas

N

1N

M

1

N

Page 38: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXERCÍCIOS

Elabore o DER considerando as seguintes regras de negócio de uma Construtora :

-Uma obra possui vários Engenheiros mas um Engenheiro só pode trabalhar em apenas uma obra até a sua conclusão.

-Um obra utiliza vários materiais e um material pode ser utilizado em várias obras.

-Em uma obra trabalham vários pedreiros e um pedreiro pode ser escalado para trabalhar em várias obras

Page 39: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXERCÍCIOS

• Elabore o DER considerando as seguintes regras de negócio de uma Escola :

- Uma classe possui vários alunos mas um aluno só pode estudar em apenas uma classe- Um professor pode lecionar várias matérias e uma matéria pode ser lecionada por vários professores- Uma classe possui apenas um professor responsável mas um professor pode ser responsável por várias classes

Page 40: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXERCÍCIOS

• Elabore o DER considerando as seguintes regras de negócio de uma Clínica médica :

- Um médico atende vários pacientes e um paciente pode ser atendido por vários médicos.- Podem existir vários médicos de uma especialidade médica mas cada médico trabalha com apenas uma especialidade- Um médico pode ser credenciado em vários convênios e um convênio pode ter vários médicos da clínica credenciados.

Page 41: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXERCÍCIOS

• Elabore um DER para uma biblioteca, considerando as seguintes regras de negócio:

- Uma editora publica vários livros e um livro pertence apenas uma editora.

- Um escritor pode escrever vários livros e um livro por vários escritores

- Uma editora possui vários escritores filiados e um escritor durante sua vida Profissional pode ter se filiado a várias editoras

Page 42: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXERCÍCIOS

• Elabore o DER considerando as seguintes regras de negócio

- Em um turno estudam vários alunos e um aluno só estuda em um turno.

- Em um turno trabalham vários professores e um professor pode trabalhar em vários turnos.

- Cada turno tem uma coordenadora, que pode coordenar mais de um turno

Page 43: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXERCÍCIOS

• Elabore um DER para uma empresa, considerando as seguintes regras de negócio:

- Um gerente coordena vários departamentos e um departamento só tem um gerente.

- Em um departamento trabalham vários funcionários e um funcionário trabalha só em um departamento.

- Um dependente só pode ser relacionado a um funcionário, mas um funcionário pode ter vários dependentes

Page 44: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXERCÍCIOS

Elabore o DER considerando as seguintes regras de negócio:- Um departamento pode requisitar vários materiais. E um material pode ser requisitado por vários departamentos.- Um fornecedor pode fornecer vários materiais, e um material pode ser fornecido por diversos fornecedores.- Um representante pode representar vários fornecedores e um fornecedor pode ser representado por vários representantes.

Page 45: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXERCÍCIOS

Elabore o DER considerando as seguintes regras de negócio- Um professor de educação física pode ter formação para várias modalidades esportivas. E uma modalidade esportiva pode ser ensinada por vários professores.- Uma modalidade esportiva pode ser oferecida em vários turnos. E um turno pode ter várias modalidades.- Um turno pode ter várias turmas, mas cada turma pertence apenas a um turno.- Um professor leciona para várias turmas e uma turma tem vários professores

Page 46: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXERCÍCIOS

• Elabore o DER considerando as seguintes regras de negócio 

- Um professor pode lecionar em várias classes e em uma classe podem lecionar vários professores.

- Um aluno pode frequentar várias classes e uma classe é frequentada por vários alunos.

- Um professor é habilitado para várias disciplinas e uma disciplina tem vários professores habilitados.

- Um aluno é pontuado em várias disciplinas e cada disciplina pontua vários alunos

Page 47: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

MODELO RELACIONAL

• Criado por Edgar Codd (1970)• É um modelo intermediário entre os

modelos conceitual e físico. • O modelo relacional é um esquema lógico

bem próximo ao físico, também dependente do SGBD escolhido.• Deve ser criado conforme as definições do

modelo conceitual• A maioria dos SGBDs atuais são relacionais

Page 48: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

MODELO RELACIONAL

• Principais características de uma relação(tabela)

• As tuplas são armazenadas na ordem em que estas forem sendo inseridas no BD

• A ordem dos valores em uma tupla segue a ordem dos atributos na definição de um esquema

• O valor de cada atributo é atômico(único), não pode ser composto

Page 49: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

MODELO RELACIONAL

Cliente

CodCliente

Nome Telefone

Entidade: AtributosCliente

CodCli Nome Telefone

1 José (31)5555-0000

2 Maria (31)5555-0001

3 João (31)5555-0002

Page 50: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

MODELO RELACIONAL

• Relacionamentos N:N darão origem a uma nova tabela com 2 relacionamentos 1:N;• Deve-se propagar o atributo identificador

(chave primária) para a tabela na qual a cardinalidade do relacionamento seja N (chave estrangeira);• Atributos multivalorados em geral dão

origem a uma nova entidade/tabela (fraca).

Page 51: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

MODELO RELACIONAL

Alguns conceitos

• TABELAS ou RELAÇÕES: Principal construção usada para representação de dados; estrutura composta de linhas e colunas usada para armazenamento

• COLUNAS ou ATRIBUTOS: Correspondem aos itens que deverão ser armazenados (campos)

• LINHA ou TUPLAS: conjunto de campos/atributos; conjunto de valores que representa uma ocorrência de uma entidade

• DOMÍNIO: conjunto ou formato de dados que podem aparecer nas colunas

Page 52: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

Page 53: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

Page 54: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

MODELO FÍSICO

• Modelo implementado no computador, através de um SGBD• Será o responsável pelo armazenamento

dos dados• Deve seguir o que foi projetado nos

modelos anteriores• Pode ter pequenas variações de um SGBD

para outro• Operações serão executadas através da

linguagem SQL

Page 55: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

Criar um banco de dados para uma escola de Informática, que oferece vários cursos. Deseja-se armazenar dados dos cursos (código, nome e carga horária), professores (código, nome, número da carteira de trabalho e email), alunos (matrícula, nome, telefone para contato, data de nascimento, sexo). O aluno, em cada curso, terá uma nota, correspondente à avaliação final, sendo necessário tirar 60 pontos ou mais para ser aprovado.

Page 56: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

Regras de negócio:

• Um professor pode lecionar vários cursos e cada curso é lecionado por apenas um professor

• Um aluno pode fazer vários cursos e cada curso pode ter vários alunos

Page 57: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO - DER

Page 58: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

LINGUAGEM SQL

COMANDOS DDL

• Usados para criar bancos de dados e tabelas, além de alteração na estrutura das tabelas (acrescentar um campo, mudar as características de um campo, excluir um campo)

• Não trabalham com dados• Principais instruções:• CREATE• ALTER• DROP

Page 59: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

LINGUAGEM SQL - DDL

• Criação de um banco de dadoscreate database nome do banco;

• Criação de uma tabelacreate table nome da tabela (descrição dos campos);

• Na descrição dos campos, especificamos o nome do campo, tipo de dado, tamanho(se necessário) e restrições

Page 60: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

LINGUAGEM SQL - DDL

Algumas restrições:

• primary key: define o campo como chave primária• not null: define que o campo deverá ser de

preenchimento obrigatório • auto_increment: define que o campo será

autoincrementado (autonumeração)

Page 61: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

TIPOS DE DADOS

Numéricos Inteiros• Tinyint• Smallint• Int• Bigint

•Numéricos Decimais• Float• Double• Decimal

Page 62: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

TIPOS DE DADOS

Data e hora

• Date data no formato ano-mês-dia

• Datetimecombinação de data e hora (aa-mm-dd hh:mm:ss)

• Timestampcombinação de data e hora com formato variado

• Timehora no formato hh:mm:ss

• Yeararmazena um ano

Page 63: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

TIPOS DE DADOS

Caracter

• Char(n)Conjunto de caracteres com tamanho fixo(n)

• Varchar(n)Conjunto de caracteres de tamanho variável

Page 64: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

CREATE DATABASE ESCOLA;

USE ESCOLA;

CREATE TABLE Aluno (IDAluno Int PRIMARY KEY not null auto_increment,NomeAluno Varchar(60) not null,Sexo Char not null,DataNascimento Date,Telefone Varchar(15));

Page 65: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

CREATE TABLE Professor (IDProfessor Int PRIMARY KEY not null auto_increment,NomeProfessor Varchar(60) not null,CTPS Varchar(6) not null,Email Varchar(200));

CREATE TABLE Curso (IDCurso Int PRIMARY KEY not null auto_increment,NomeCurso Varchar(30) not null,Horas Int not null,IDProfessor Int not null,FOREIGN KEY(IDProfessor) REFERENCES Professor (IDProfessor));

Page 66: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

CREATE TABLE Estuda (IDEstuda Int PRIMARY KEY not null auto_increment,IDCurso Int not null,IDAluno Int not null,NotaAlunoCurso Double not null,FOREIGN KEY(IDCurso) REFERENCES Curso (IDCurso),FOREIGN KEY(IDAluno) REFERENCES Aluno (IDAluno));

Page 67: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

LINGUAGEM SQL - DDL

• Exclusão de um banco de dadosdrop database nome do banco;

• Exclusão de uma tabeladrop table nome da tabela;

Exemplos:drop database Escola;drop table Aluno;drop table Professor;

Page 68: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

LINGUAGEM SQL - DDL

Alteração das colunas de uma tabela• Acrescentar um campo

alter table nome da tabela add campo/especificações;

• Remover um campoalter table nome da tabela drop campo;

• Alterar um campoalter table nome da tabela change campo novas especificações;

Page 69: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

• Adicionar um campo chamado Celular à tabela Professor:alter table Professor add Celular varchar(15);

• Adicionar um campo chamado RG à tabela Aluno:alter table Professor add RG varchar(10);

• Adicionar um campo chamado NumDependentes à tabela Professor:alter table Professor add NumDependentes tinyint not null;

Page 70: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

• Alterar o tamanho do campo Email para 150 caracteres:alter table Professor change Email Email varchar(150);

• Alterar o nome do campo Telefone na tabela Aluno para TelefoneAlunoalter table Aluno change Telefone TelefoneAluno varchar(15);

Page 71: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

• Remover da tabela Professor o campo Email:alter table Professor drop Email;

• Remover da tabela Aluno o campo DataNascimento:alter table Aluno drop DataNascimento;

Page 72: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

LINGUAGEM SQL – DML

• Inserção de dados em uma tabelainsert into nome da tabela values(lista de valores);

Obs.:• Os valores devem estar separados por

vírgulas e devem respeitar a ordem dos campos na tabela.

• Quando um campo for auto_increment, seu valor deve ser substituído pela sentença null

Page 73: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

• Inserir dados na tabela ALUNOinsert into ALUNO values (null,”DANIELA DIAS”,”F”,”1989-04-11”,”(31)32224411”);

insert into ALUNO values (null,”JULIANO DO CARMO”,”M”,”1989-11-03”,”(31)33339987”);

insert into ALUNO values (null,”ISABEL MENDES”,”F”,”1990-01-03”,”(31)37412200”);

insert into ALUNO values (null,”CARLOS PEIXOTO”,”M”,”1988-10-01”,”(31)33347411”);

Page 74: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

Inserir dados na tabela PROFESSOR

insert into PROFESSOR values (null,”ALEXANDRE”,”123456”,”[email protected]”);

insert into PROFESSOR values (null,”MARIA”,”111111”,”[email protected]”);

insert into PROFESSOR values (null,”EDUARDO”,”123456”,”[email protected]”);

insert into PROFESSOR values (null,”LUCIANA”,”938826”,”[email protected]”);

Page 75: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

Inserir dados na tabela CURSO

insert into CURSO values (null,”VB.NET”,60,1);

insert into CURSO values (null,”PHP”,120,3);

insert into CURSO values (null,”JAVA”,80,4);

insert into CURSO values (null,”SQL”,40,1);

insert into CURSO values (null,”LÓGICA”,60,2);

Page 76: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

Inserir dados na tabela ESTUDA

insert into ESTUDA values (null,3,1,70);

insert into ESTUDA values (null,3,2,75);

insert into ESTUDA values (null,1,4,90);

insert into ESTUDA values (null,1,2,55);

insert into ESTUDA values (null,2,3,50);

Page 77: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

LINGUAGEM SQL – DML

Exclusão de dados em uma tabeladelete from nome da tabela where

condição;

Obs.:• A condição dever ser representada por uma

expressão lógica que consiga localizar o registro a ser excluído

• Caso a condição localize mais de um registro, eles serão excluídos.

• A condição é opcional. Se não for especificada, serão excluídos TODOS os registros da tabela.

Page 78: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

• Excluir o aluno cuja matrícula seja 7delete from ALUNO where IDAluno=7;

• Excluir o professor de nome “ALEXANDRE”delete from PROFESSOR where NomeProfessor = “ALEXANDRE”;

• Excluir os cursos que tenham carga horária inferior a 30delete from CURSO where HORAS<30;

Page 79: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

• Excluir todos os alunos cadastradosdelete from ALUNO;

• Excluir todos os cursos com mais de 60 horas ministrados pelo professor com código 1delete from CURSO where Horas>60 And IDProfessor = 1;

• Excluir todos os cursos que tenham a palavra “CLIPPER” em qualquer lugar do nomedelete from CURSO where NomeCurso like “%CLIPPER%”;

Page 80: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

LINGUAGEM SQL - DQL

• Parte da linguagem SQL destinada a executar operações de consultas (recuperação) de registros, ou seja, permite visualizar o conteúdo parcial ou total de tabelas.

• Representada pela instrução SELECT.

• Como o formato desta instrução é muito extenso, vamos apresentando suas sentenças aos poucos.

Page 81: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

LINGUAGEM SQL - DQL

• select campos from nome da tabela;

• Neste formato, podemos visualizar alguns ou todos os campos de todos os registros de uma tabela.• No lugar de campos, descrevemos o nome

da cada campo que deve aparecer na listagem, separados por vírgulas. • Caso queira que todos os campos apareçam

na listagem, use o caracter *

Page 82: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

• Visualizar código e nome de todos os alunos cadastradosselect IDAluno, NomeAluno from ALUNO;

• Visualizar código, nome e carga horária de todos os cursos cadastradosselect IDCurso, NomeCurso, Horas from CURSO;

• Visualizar nome e email de todos os professores cadastradosselect NomeProfessor, Email from PROFESSOR;

Page 83: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

• Visualizar todos os campos dos alunos cadastradosselect * from ALUNO;

• Visualizar todos os campos dos cursos cadastradosselect * from CURSO;

• Visualizar todos os campos dos professores cadastradosselect * from PROFESSOR;

Page 84: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

LINGUAGEM SQL - DQL

A sentença WHERE

• Vem após a especificação do nome da tabela

• Permite criar uma ou mais condições, que serão usadas para selecionar os registros retornados pela consulta

• Aceita os operadores lógicos AND, OR, NOT

Page 85: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

• Visualizar todos os campos dos alunos do sexo feminino (F)cadastradosselect * from ALUNO where SEXO = “F”;

• Visualizar todos os campos dos cursos que tenham carga horário igual ou superior a 80 horasselect * from CURSO where HORAS >= 80;

• Visualizar todos os campos dos cursos lecionados pelo professor de código 2 que tenham até 40 horasselect * from CURSO where IDPROFESSOR = 2 and HORAS <=40;

Page 86: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

LINGUAGEM SQL - DQL

• A sentença ORDER BY

• Numa consulta, os registros são apresentados conforme ordem de armazenamento na tabela

• Através da sentença ORDER BY, é possível definir novos campos e forma de ordenação(crescente/decrescente)

• Deve ser colocada após a sentença WHERE• Podem ser definidos quantos campos o usuário

quiser. Caso haja coincidência de valores no primeiro campo, a ordenação será feita pelo segundo. Isso vale para os demais campos citados.

• Para ordenação decrescente, deve ser usada a sentença DESC

Page 87: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

• Visualizar todos os campos dos alunos do sexo feminino (F)cadastradosselect * from ALUNO where SEXO = “F” order by NOMEALUNO;

• Visualizar todos os campos dos cursos que tenham carga horário igual ou superior a 80 horasselect * from CURSO where HORAS >= 80 order by NOMECURSO;

• Visualizar todos os campos dos cursos lecionados pelo professor de código 2 que tenham até 40 horasselect * from CURSO where IDPROFESSOR = 2 and HORAS <=40 order by NOMECURSO desc;

Page 88: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

LINGUAGEM SQL - DDL

• Operadores IN, LIKE e BETWEEN

• São usados nas comparações definidas na sentença WHERE.• IN : Testa se o valor do campo está contido

numa lista de valores pré-estabelecidos. Pode substituir uma sequência de condições, com o mesmo campo, que utilize o operador OR.

• BETWEEN: Testa se o valor do campo está no intervalo definido

• LIKE: faz comparação aproximada, localizando parte de uma sequência de caracteres em um campo.

Page 89: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLOS

• Listar todos os dados dos cursos que tenham carga horária de 40, 60 ou 80 horasselect * from CURSOS where HORAS in (40,60,80);

• Listar todos os dados dos cursos que tenham a palavra “PROGRAMAÇÃO” no nomeselect * from CURSOS where NOMECURSO like “%PROGRAMAÇÃO%”;

• Listar todos os dados dos cursos que tenham carga horária entre 50 e 90 horasselect * from CURSOS where HORAS between 50 and 90;

Page 90: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

LINGUAGEM SQL - DQL

• Funções de agregação

•  São funções da linguagem que servem para agrupar informações, agregando numa única linha o conteúdo de vários registros

• Principais funções de agregação:• COUNT• MIN• MAX• SUM• AVG

Page 91: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

LINGUAGEM SQL - DQL

• COUNT• Retorna a quantidade de registros existentes

• MIN• Retorna o menor valor de um campo em um grupo de

registros

• MAX• Retorna o maior valor de um campo em um grupo de

registros

• SUM• Retorna a soma dos valores de um campo em um

grupo de registros

• AVG• Retorna a média dos valores de um campo em um

grupo de registros

Page 92: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLOS

• Contar o número de cursosselect count(*) from curso;

• Contar o número de cursos que tem número de horas igual ou superior a 80select count(*) from curso where horas>=80;

• Retornar a menor quantidade de horas, considerando todos os cursosselect min(horas) from curso;

• Retornar a menor quantidade de horas, considerando todos os cursos com número de horas acima de 50select min(horas) from curso where horas > 50;

Page 93: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLOS

• Retornar a maior quantidade de horas, considerando todos os cursosselect max(horas) from curso;

• Retornar a nota média dos alunos que estão matriculados no curso 1select avg(NotaAlunoCurso) from estuda where idcurso=1;

• Retornar a soma das notas do aluno de matrícula 1:select sum(NotaAlunoCurso) from estuda where idaluno = 1;

Page 94: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

GROUP BY

• Esta cláusula serve para agrupar os registros, a partir do campo especificado. Assim, o resultado de uma consulta é dado em função destes grupos. Com os grupos formados é possível aplicar outras funções de agregação (sum, count, max, etc)

Page 95: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

• Mostrar a quantidade de alunos, por sexoselect sexo, count(*) from aluno group by sexo;

• Mostrar a nota média dos alunos, por cursoselect idcurso, avg(notaalunocurso) from estuda group by idcurso;

• Mostrar a quantidade de alunos, por cursoselect idcurso, count(*) from estuda group by idcurso;

Page 96: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

HAVING

• Funciona como uma sentença WHERE, mas é aplicada ao grupo de registros selecionado pela sentença GROUP BY

• Permite especificar uma ou mais condições que serão analisadas após o agrupamento dos registros pelo GROUP BY. Só serão selecionados os grupos que atenderem às condições estabelecidas.

• IMPORTANTE: Quando usamos a cláusula HAVING, a seleção não é feita registro a registro, mas sim grupo a grupo.

Page 97: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLO

• Mostrar a quantidade de alunos por sexo, apenas quando essa quantidade for superior a 5select idcurso, count(*) from estuda group by idcurso having count(*) > 5

•Mostrar a nota média dos alunos, por curso, somente quando esta média for igual ou superior a 70select idcurso, avg(notaalunocurso) from estuda group by idcurso having avg(notaalunocurso) >=70;

•Mostrar a quantidade de alunos, por curso, considerando apenas os cursos com 6 ou mais alunosselect sexo, count(*) from aluno group by sexo having count(*) > 6;

Page 98: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

SUBCONSULTAS

• Consiste em uma instrução SELECT adicionada dentro de outra instrução SELECT• A segunda instrução é executada e retorna

um valor, que servirá de entrada para a primeira consulta• Assim, numa subconsulta, temos dois

“momentos”: no primeiro, a consulta mais interna é executada e retorna um ou mais valores; no segundo, é executada a consulta principal, retornando os registros que atendam às condições que utilizam os valores retornados na primeira consulta

Page 99: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

SUBCONSULTAS

• Uma subconsulta é utilizada quando não se sabe os valores a serem usados na criação das condições

• Devemos observar a compatibilidade entre o campo usado na comparação e o valor retornado

• Uma subconsulta pode retornar mais de um valor; neste caso, na comparação da consulta principal, devemos usar o operador IN

Page 100: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLOS

• Listar código e nome dos cursos que são lecionados pelo mesmo professor que leciona o curso “PHP”select idcurso, nomecurso from curso where idprofessor = (select idprofessor from curso where nomecurso = "PHP");

• Listar nome e carga horária dos cursos que tem carga horária igual ou superior ao curso “JAVA”

select nomecurso, horas from curso where horas > (select horas from curso where nomecurso = "JAVA");

Page 101: PROFESSOR RAFAEL SILVA BANCOS DE DADOS. OBJETIVOS DA DISCIPLINA Apresentar os principais conceitos de bancos de dados Compreender a importância da utilização.

EXEMPLOS

• Listar código de aluno e código de curso dos alunos matriculados no(s) mesmo(s) curso(s) que o aluno de matricula 1select idaluno, idcurso from estuda where idcurso in (select idcurso from estuda where idaluno = 1);