Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
1
Lista de Exercícios Banco de Dados As questões abai baixo e os comentário rios tem intuito educativo de verificarmo rmos como os assuntos tratados em sala de aula são abordados em diversos concursos públicos. Isto sem dúvida é uma excelente forma de aprendermos mais sobre o assunto e ampliarmos nossos horizontes e objetivos. Lembrem-se:
“Um obstáculo por dia, um sorriso por noite, afinal todos estamos debaixo do mesmo céu, porém cada um enxerga um horizonte diferente .” Bons estudos! Prof. Edilberto Silva
QUESTÕES DE CONCURSOS 1) ANO: 2015 BANCA: FUNDATEC ÓRGÃO: BRDE PROVA: ANÁLISE DE SISTEMAS SUPORTE - O projeto de um novo banco de dados ocorre em três fases, quais sejam: A DDL, SSD e modelagem virtual B Modelagem conceitual, projeto lógico e projeto físico C Projeto físico, SQL e SSD D SQL, modelagem conceitual e projeto físico E SQL, DDL e SSD 1 2) ANO: 2015 BANCA: CESPE ÓRGÃO: CGE-PI PROVA: AUDITOR GOVERNAMENTAL TECNOLOGIA DA INFORMAÇÃO - Um modelo de dados pode ser usado para representar os tipos de dados existentes em um banco de dados de um sistema sistema online de reservas.2 3) ANO: ANO: 2015 2015 BANC BANCA: A: CESP CESPE E ÓRGÃ ÓRGÃO: O: DEPE DEPEN N PR PROV OVA: A: AGEN AGENTE TE PE PENI NITE TENC NCIÁ IÁRI RIO O FEDE FEDERA RALL TECNO ECNOLO LOGI GIA A DA INFO INFORM RMA AÇÃO ÇÃO - Os níve níveis is inte intern rno, o, exte extern rno o e conc concei eitu tuaal da arqui rquite tetu tura ra de um banco de dados são responsáveis, respectivamente, por gerenciar o modo como os dados serão armazenados fisicamente, por gerenciar o modo como os dados serão vistos pelos usuários e por representar todo o conteúdo de informações do banco de dados.3 4) ANO: 2014 BANCA: UFG ÓRGÃO: UEAP PROVA: ANALISTA DE TI - BANCO DE DADOS Metadados dos são dados sobre outros dados dos. No contexto de bancos de dados dos, meta etadados dos são usados para A descrever a estrutura do banco de dados. B descrever o conteúdo do log do sistema. C resumir o conteúdo dos d os dados de cada relação. D resumir a estrutura dos programas p rogramas de aplicação. 4
1
B
2
C
3
C
4
A
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
2
5) ANO: 2014 BANCA: UFG ÓRGÃO: UEAP PROVA: ANALISTA DE TI - SUPORTE E INFR NFRAEST AESTRU RUTU TURA RA-- Sist Sistem emas as de Ba Banc ncos os de Dados ados são base baseaados dos nos nos conc onceito eitoss de “es “esquem quema” a” de bancos de dados e “instância” de bancos de dados. A relação existente entre esses conceitos é: A a instância de banco de dad dados define o conjunto de dados contidos no banco de dad dados em um determinado instante, e o esquema de banco de dados define o conjunto de metadados que especificam os estados válidos para o banco de dados. B a instância de banco de dados defi efine o modelo de dados dos utilizado para rep representar os dados em um determinado instante, e o esquema de banco de dados define a linguagem utilizada para representar os estados válidos de dados. C o esquema de banco de dados define o conjunto de dados contidos no banco de dad dados em um determinado instante, e a instância de banco de dados define o conjunto de metadados que especificam os estados válidos para o banco de dados. D o esquema de banco de dados define o modelo de dados utilizado para repre presentar o ban banco de dados em um determi rminado instante, e a instância de banco de dados define a linguagem utilizada para representar estados válidos de dados. 5 6) ANO: 2014 BANCA: VUNESP ÓRGÃO: TJ-PA PROVA: ANALISTA JUDICIÁRIO DESENVOLVIMENTO DE SISTEMA - Sobre uma tabela de um banco de dados relacional, é correto afirmar que A tem pelo menos duas chaves primárias. B pode conter somente um atributo do tipo booleano. C deve ter, no mínimo, um atributo do tipo numérico. D sua chave primária deve ser do tipo literal. E sua chave primária pode ser composta composta por mais de um atributo.6 7) ANO ANO: 2016 2016 BAN BANCA: CA: CESP CESPE E ÓRGÃ ÓRGÃO O: TRERE-PI PR PROV OVA A: ANAL ANALIS IST TA JUDI JUDICI CIÁR ÁRIIO - ANÁL ANÁLIS ISE E DE SISTEMA - A respeito dos diferentes modelos de banco de dados — relacional, rede, hierárquico, distribuído e orientado a objetos —, assinale a opção correta. A Em bancos de dados orientados a objetos, busca-se agrupar os dados e os códigos que que manip anipul ulam am ess esses dado dadoss em vári vário os elem elemen ento toss form ormando ando um gra grafo, fo, e pode podend ndo, o, com como uma extensão do modelo hierárquico, cada segmento pai ter mais de um segmento filho, e cada segmento filho ter mais de um segmento pai B No modelo em rede, representam-se os dados em um conjunto de árvores norm normal aliz izaadas, das, sendo endo pos possív sível modi modifi fica carr sua estr estru utura tura com com faci facillidad idade, e, uma uma vez vez que que não não é preciso reconstruir o banco de dados C Nos bancos de dados relacionais, representam-se os dados em um conjunto de tabe tabela lass int interer-rel relacio aciona nada dass, o que que torn tornaa o banc banco o de dado dadoss mais mais flex flexív ível el no que que conc oncerne erne à tarefa de modificação da estrutura de uma tabela dentro desse banco de dados, porque não há necessidade de reconstruí-lo D Segundo o padrão SQL ANSI, para a definição de um esquema de um banco de dados rela relaci cion onal al,, deve deve-s -see adot adotar ar uma uma ling lingua uage gem m de defi defini niçã ção o de dado dadoss usan usando do hier hierar arqu quia iass de classes baseadas em linguagens orientadas a objetos E O modelo hierárquico se assemelha a um organograma com um segmento raiz e um núme número ro qual qualqu quer er de segm segmen ento toss subo subord rdin inad ados os,, pode podend ndo o cada cada segm segmen ento to filh filho o ter ter mais mais de um segm segment ento o pai. pai.7
5
A
6
E
7
c
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
2
5) ANO: 2014 BANCA: UFG ÓRGÃO: UEAP PROVA: ANALISTA DE TI - SUPORTE E INFR NFRAEST AESTRU RUTU TURA RA-- Sist Sistem emas as de Ba Banc ncos os de Dados ados são base baseaados dos nos nos conc onceito eitoss de “es “esquem quema” a” de bancos de dados e “instância” de bancos de dados. A relação existente entre esses conceitos é: A a instância de banco de dad dados define o conjunto de dados contidos no banco de dad dados em um determinado instante, e o esquema de banco de dados define o conjunto de metadados que especificam os estados válidos para o banco de dados. B a instância de banco de dados defi efine o modelo de dados dos utilizado para rep representar os dados em um determinado instante, e o esquema de banco de dados define a linguagem utilizada para representar os estados válidos de dados. C o esquema de banco de dados define o conjunto de dados contidos no banco de dad dados em um determinado instante, e a instância de banco de dados define o conjunto de metadados que especificam os estados válidos para o banco de dados. D o esquema de banco de dados define o modelo de dados utilizado para repre presentar o ban banco de dados em um determi rminado instante, e a instância de banco de dados define a linguagem utilizada para representar estados válidos de dados. 5 6) ANO: 2014 BANCA: VUNESP ÓRGÃO: TJ-PA PROVA: ANALISTA JUDICIÁRIO DESENVOLVIMENTO DE SISTEMA - Sobre uma tabela de um banco de dados relacional, é correto afirmar que A tem pelo menos duas chaves primárias. B pode conter somente um atributo do tipo booleano. C deve ter, no mínimo, um atributo do tipo numérico. D sua chave primária deve ser do tipo literal. E sua chave primária pode ser composta composta por mais de um atributo.6 7) ANO ANO: 2016 2016 BAN BANCA: CA: CESP CESPE E ÓRGÃ ÓRGÃO O: TRERE-PI PR PROV OVA A: ANAL ANALIS IST TA JUDI JUDICI CIÁR ÁRIIO - ANÁL ANÁLIS ISE E DE SISTEMA - A respeito dos diferentes modelos de banco de dados — relacional, rede, hierárquico, distribuído e orientado a objetos —, assinale a opção correta. A Em bancos de dados orientados a objetos, busca-se agrupar os dados e os códigos que que manip anipul ulam am ess esses dado dadoss em vári vário os elem elemen ento toss form ormando ando um gra grafo, fo, e pode podend ndo, o, com como uma extensão do modelo hierárquico, cada segmento pai ter mais de um segmento filho, e cada segmento filho ter mais de um segmento pai B No modelo em rede, representam-se os dados em um conjunto de árvores norm normal aliz izaadas, das, sendo endo pos possív sível modi modifi fica carr sua estr estru utura tura com com faci facillidad idade, e, uma uma vez vez que que não não é preciso reconstruir o banco de dados C Nos bancos de dados relacionais, representam-se os dados em um conjunto de tabe tabela lass int interer-rel relacio aciona nada dass, o que que torn tornaa o banc banco o de dado dadoss mais mais flex flexív ível el no que que conc oncerne erne à tarefa de modificação da estrutura de uma tabela dentro desse banco de dados, porque não há necessidade de reconstruí-lo D Segundo o padrão SQL ANSI, para a definição de um esquema de um banco de dados rela relaci cion onal al,, deve deve-s -see adot adotar ar uma uma ling lingua uage gem m de defi defini niçã ção o de dado dadoss usan usando do hier hierar arqu quia iass de classes baseadas em linguagens orientadas a objetos E O modelo hierárquico se assemelha a um organograma com um segmento raiz e um núme número ro qual qualqu quer er de segm segmen ento toss subo subord rdin inad ados os,, pode podend ndo o cada cada segm segmen ento to filh filho o ter ter mais mais de um segm segment ento o pai. pai.7
5
A
6
E
7
c
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
3
8) ANO: 2015 BANCA: MP-RS ÓRGÃO: MP-RS PROVA: TÉCNICO EM INFORMÁTICA APO POIIO AO USUÁR SUÁRIO IO-Q -Qua uall mode modelo lo de banc banco o de dado dadoss repr repres esen enta ta todo todoss seus eus dado dadoss em tabe tabellas simples, mas permite que as informações possam ser combinadas e recuperadas facilmente? A Hierárquico. B Orientado a objetos. C Rede. D Relacional. E Veto Vetoria rial. l. .8 9) ANO: 2014 BANCA: IDECAN ÓRGÃO: DETRAN-RO PROVA: ANALISTA EM TRÂNSITO SUPORTE EM INFORMÁTICA - Assinale a alternativa que apres resenta uma DESVANTAGEM do modelo hierárquico e não dos modelos de bancos de dados. A Exige uma ampla aprendizagem. B Não há linguagem de manipulação de dados. C Trata-se de um sistema navegacional complexo. D Alterações estruturais exigem alterações em todos os aplicativos. E Não há linguagem linguagem de definição ou manipulação de dados no SGBD. SGBD. .9 10) ANO ANO: 2014 2014 BANC BANCA: A: FUNC NCAB AB ÓRGÃ ÓRGÃO O: PR PRO ODAM DAM PROV ROVA: ANAL ANALIS IST TA DE TI - ANAL ANALIS ISTA TA DE REDES No modelo de banco de dados hierárquicos seus regi egistros são organizados como uma coleção de: A listas. B filas. C tabelas. D registros duplamente encadeados. E ár árvores..10 11) ANO ANO: 2014 2014 BAN BANCA: CA: VUNES UNESPP ÓRGÃO RGÃO:: EMPL EMPLAS ASA A PROV ROVA: ANALI NALIST STA A ADMI ADMINI NIST STR RATIV ATIVO OTECNOLOGIA DA INFORMAÇÃO Assinale a alternativa que apresenta uma afirmação verdadeira sobre o modelo hierárquico de bancos de dados. A Ca Cada da regi regisstro, tro, exce excetto a rai raiz, part partic icip ipaa com como filho ilho em pelo pelo meno menoss dois dois rela relaci cion onam amen ento toss pai-filho. B Cada ada regi regist stro ro,, exce exceto to a raiz raiz,, part partic iciipa com como filh filho o em exat exataament mentee um rela relacciona ionam mento ento pai-filho. C O registro den denominado rai raiz parti rticipa como filho em pelo meno enos um relacionamento pai-filho. D O registro denominado raiz participa como filho em, no máximo, dois relacionamentos pai-filho. E Todo registro que parti rticipa como pai pai em um relacionamento pai-filho é chamado de folha..11 12) ANO ANO: 2014 2014 BANC BANCA: A: CESP CESPE E ÓRG ÓRGÃO: ÃO: TJ-S TJ-SE E PROVA ROVA:: ANALI NALIS STA JUDIC UDICIÁ IÁR RIO - BANC BANCO O DE DADOS ADOS - Em um rela relaci cion onam amen ento to paipai-fi fillho, ho, no mode modelo lo hier hieráárqui rquico co,, regi regisstro tros do mes mesmo tipo tipo do 12 lado pai pai correspondem correspondem a um único único registro registro do lado lado filho.. filho..
8
D
9
E
10
E
11
B
12
E
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
4
13) ANO: 2014 BANCA: CESGRANRIO ÓRGÃO: IBGE PROVA: SUPERVISOR DE PESQUISAS TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃO - O modelo relacional tornou-se o padrão estabelecido do mercado. Outros modelos anteriores ao modelo relacional, porém, podem ser encontrados em sistemas usados no passado e, algumas vezes, encontrados como sistemas legados nas empresas. Dois desses modelos são os A em rede e XML B hierárquico e em rede C hierárquico e XML D orientado a objetos e em rede E orientado a objetos e XML.13 14) ANO: 2013 BANCA: CESPE ÓRGÃO: TCE-RO PROVA: ANALISTA JUDICIÁRIO INFORMÁTICA Para armazenar as informações da estrutura organizacional de uma empresa com suas hierarquias, desde o presidente até o auxiliar administrativo, é necessário utilizar um banco de dados hierárquico..14 15) ANO: 2013 BANCA: CESPE ÓRGÃO: ANTT PROVA: ANALISTA ADMINISTRATIVO DESENVOLVIMENTO DE SISTEMAS - Os sistemas gerenciadores de banco de dados (SGBDs) evoluíram de sistemas de arquivos para novas estruturas de dados. O modelo em rede surgiu como extensão ao modelo hierárquico (estrutura de árvore), ambos orientados a registros; o modelo relacional não tem caminhos predefinidos para fazer acesso aos dados, mas implementa estruturas de dados organizadas em relações (tabelas); e o modelo orientado a objetos surgiu da necessidade de representar tipos complexos de dados utilizando semântica, em que o diagrama de classes UML serve como esquema para representação de dados orientado a objetos. .15 16) ANO: 2013 BANCA: FGV ÓRGÃO: AL-MA PROVA: TÉCNICO DE GESTÃO ADMINISTRATIVA - ANALISTA DE SISTEMAS Sobre sistemas de gerenciamento de bancos de dados, assinale a afirmativa incorreta. A Em uma tabela chamada Carro, com os atributos Modelo, Ano, Cor e Placa, o atributo mais apropriado para servir como chave primária é Placa. B O processo de aplicação de regras ao projeto de um banco de dados, com o intuito de permitir um acesso eficiente e armazenamento consistente dos dados, é denominado normalização do banco de dados, ou apenas normalização. C O modelo hierárquico de banco de dados é o mais apropriado para dados que são representados por um relacionamento pai-filho, onde cada registro pai pode estar relacionado com vários registros filho. D Uma Visão (View) de um banco de dados contém todas as informações sobre as entidades, atributos e tabelas. Seu objetivo é padronizar e unificar os termos utilizados nas variáveis utilizadas nos banco de dados. E O "varchar" é uma cadeia de caracteres de tamanho indeterminado. Campos do tipo “varchar” podem ter qualquer tamanho, até um limite que varia de acordo com o SGBD..16
13
B
14
E
15
C
16
D
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
5
17) ANO: 2012 BANCA: FCC ÓRGÃO: TST PROVA: ANALISTA JUDICIÁRIO - ANALISTA DE SISTEMA O entendimento dos modelos de banco de dados é fundamental para compreender as vantagens e desvantagens em aspectos de estrutura e manipulação dos dados. Um destes modelos utiliza tabelas bidimensionais para o armazenamento dos dados e a maneira como os dados são armazenados influencia na facilidade de acesso às informações, existindo técnicas de normalização para aperfeiçoar a organização. Trata-se do modelo A hierárquico. B em rede. C relacional. D distribuído. E orientado a objetos..17 18) ANO: 2015 BANCA: NUCEPE ÓRGÃO: SEFAZ - PI PROVA: ANALISTA - SISTEMAS JÚNIOR A abstração de um banco de dados pode acontecer em três níveis: visão do usuário; conceitual; e físico. Responda a alternativa INCORRETA sobre abstração e esses níveis. A O nível de visão do usuário compreende as partes do banco de dados que o usuário tem acesso. B O nível conceitual define quais os dados que estão armazenados sem preocupar-se com o relacionamento entre eles. C O nível físico define efetivamente de que maneira os dados estão armazenados. D No nível conceitual podemos ter vários níveis de visão do usuário. E Não importa qual unidade de armazenamento é usada para guardar os dados.18 19) ANO: 2015 BANCA: NUCEPE ÓRGÃO: SEFAZ - PI PROVA: ANALISTA - SISTEMAS JÚNIOR Um Sistema Gerenciador de Banco de Dados (SGBD) permite criar e manipular o banco de dados. Entre as alternativas abaixo, qual está INCORRETA sobre o SGBD? A Garantem restrições de integridade. B Tem suporte a controle de concorrência. C A abstração é suportada para os níveis de visão do usuário e conceitual, sendo o nível físico negligenciado e de responsabilidade somente do sistema operacional. D Permite controle de acesso. E Otimiza as consultas por métodos de acessos eficientes. 19 20) ANO: 2015 BANCA: CESPE ÓRGÃO: MEC PROVA: TÉCNICO DE NÍVEL SUPERIOR ANALISTA DE SISTEMAS - O modelo conceitual corresponde ao mais baixo nível de abstração, visto que estabelece como os dados são armazenados. Trata-se de um modelo simples, de fácil compreensão pelo usuário final, além de independente de um SGBD particular..20 21) ANO: 2015 BANCA: CESPE ÓRGÃO: MEC PROVA: TÉCNICO DE NÍVEL SUPERIOR DESENVOLVEDOR - Entidade é um agrupamento lógico de informações inter-relacionadas que representa uma abstração do mundo real..21
17
C
18
B
19
C
20
E
21
C
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
6
22) ANO: 2014 BANCA: UFG ÓRGÃO: UEAP PROVA: ANALISTA DE TI - SUPORTE E INFRAESTRUTURA - A Arquitetura de Referência ANSI-SPARC para Bancos de Dados define três níveis de abstração para descrever os dados em um Sistema de Bancos de Dados: nível físico (ou interno), nível lógico (ou conceitual) e nível de visão (ou externo). A capacidade de modificar a definição dos esquemas de dados em determinado nível, sem afetar o esquema do nível superior, é chamada de A abstração de dados. B arquitetura de dados. C independência de dados. D mapeamento de dados. .22 23) ANO: 2014 BANCA: VUNESP ÓRGÃO: DESENVOLVESP PROVA: ANALISTA - ANALISTA DE SISTEMAS - Em um banco de dados relacional deve haver, em cada uma de suas relações, um conjunto de um ou mais atributos que não admite valores iguais, nesse conjunto, para qualquer par de tuplas da relação. Esse conjunto de atributos tem a seguinte denominação: A abstração. B chave primária. C domínio. D índice. E instância..23 24) ANO: 2012 BANCA: CESPE ÓRGÃO: POLÍCIA FEDERAL PROVA: PERITO CRIMINAL ANALISTA DE SISTEMAS - A arquitetura ANSI de três níveis separa o nível externo dos usuários, o nível conceitual do banco de dados e o nível de armazenamento interno no projeto de um banco de dados. O nível interno tem um esquema interno, que descreve a estrutura do armazenamento físico do banco de dados e descreve os detalhes completos do armazenamento de dados e os caminhos de acesso para o banco de dados.24
22
C
23
B
24
C
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
7
25) ANO: 2013 BANCA: FCC ÓRGÃO: MPE-SE PROVA: ANALISTA DO MINISTÉRIO PÚBLICO GESTÃO E ANÁLISE DE PROJETO DE SISTEMA - Em projetos de Banco de Dados, o objetivo da arquitetura de três-esquemas é separar o usuário da aplicação do banco de dados físico. Nessa arquitetura, os esquemas podem ser definidos por três níveis: I. O nível interno tem um esquema que descreve a estrutura de armazenamento físico do banco de dados. Esse esquema utiliza um modelo de dado físico e descreve os detalhes complexos do armazenamento de dados e caminhos de acesso ao banco; II. O nível conceitual possui um esquema que descreve a estrutura de todo o banco de dados para a comunidade de usuários. O esquema conceitual oculta os detalhes das estruturas de armazenamento físico e se concentra na descrição de entidades, tipos de dados, conexões, operações de usuários e restrições. Geralmente, um modelo de dados representacional é usado para descrever o esquema conceitual quando o sistema de banco de dados for implementado. Esse esquema de implementação conceitual é normalmente baseado em um projeto de esquema conceitual em um modelo de dados de alto nível; III. O nível interno ainda abrange os esquemas externos ou visões de usuários. Cada esquema interno descreve a parte do banco de dados que um dado grupo de usuários tem interesse e oculta o restante do banco de dados desse grupo. Como no item anterior, cada esquema é tipicamente implementado usando-se um modelo de dados representacional, possivelmente baseado em um projeto de esquema externo em um modelo de dados de alto nível. Está correto o que se afirma em A II, apenas. B II e III, apenas. C I, II e III. D I e II, apenas. E III, apenas.25 26) ANO: 2014 BANCA: BIO RIO ÓRGÃO: EMGEPRON PROVA: ANALISTA DE SISTEMAS BANCO DE DADOS - O conceito da arquitetura de três camadas que define a capacidade de alterar o esquema em um nível do sistema de banco de dados sem ter de alterar o esquema no nível mais alto é denominado independência de: A dados B esquema C instância D atualização26 27) ANO: 2015 BANCA: CESPE ÓRGÃO: DEPEN PROVA: AGENTE PENITENCIÁRIO FEDERAL TECNOLOGIA DA INFORMAÇÃO - Os níveis interno, externo e conceitual da arquitetura de um banco de dados são responsáveis, respectivamente, por gerenciar o modo como os dados serão armazenados fisicamente, por gerenciar o modo como os dados serão vistos pelos usuários e por representar todo o conteúdo de informações do banco de dados.27
25
D
26
A
27
C
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
8
28) ANO: 2010 BANCA: FCC ÓRGÃO: TCE-SP PROVA: AGENTE DA FISCALIZAÇÃO FINANCEIRA - CONHECIMENTOS BÁSICOS - As três visões da arquitetura básica de um SGBD, pela ordem, desde a mais próxima do usuário até a mais distante, são: A externa, conceitual e interna. B externa, interna e conceitual. C conceitual, interna e externa. D conceitual, externa e interna. E interna, conceitual e externa.28 29) ANO: 2013 BANCA: BIO RIO ÓRGÃO: ELETROBRAS PROVA: ANALISTA DE SISTEMAS BANCO DE DADOS - Leia o fragmento a seguir, relacionado à arquitetura ANSI/SPARC de bancos de dados. (1) Nível ________ - define views e consiste em uma “janela” parcial que é criada sobre a totalidade do BD, permitindo trabalhar apenas com uma parte dos dados que seja de interesse de uma determinada aplicação. (2) Nível ________ - esconde os detalhes da implementação física dos arquivos que armazenam os dados e corresponde a uma representação independente de qualquer usuário ou aplicação. (3) Nível ________ - equivale ao armazenamento físico dos dados e definição das estruturas físicas que permitem obter um bom nível de desempenho. Assinale a alternativa cujos itens completam corretamente as lacunas do fragmento acima. A externo – conceitual – interno; B externo – interno – conceitual; C conceitual – externo – interno; D interno – externo – conceitual; E interno – conceitual – externo.29 30) ANO: 2014 BANCA: CESGRANRIO ÓRGÃO: BANCO DA AMAZÔNIA PROVA: TÉCNICO CIENTÍFICO - BANCO DE DADO - Na arquitetura ANSI/SPARC de banco de dados, o nível conceitual A define a estrutura de armazenamento do banco de dados. B define a estrutura do banco de dados para uma comunidade de usuários. C descreve a parte do banco de dados em que um grupo de usuários está interessado, escondendo as outras partes. D descreve os caminhos de acesso para a base de dados. E inclui um número de visões de usuário.30
28
A
29
A
30
A
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
9
CONCEITOS BÁSICOS 31) Cite três desvantagens em se utilizar o sistema de arquivos em relação ao SGBD 32) Defina o que é Banco de Dados 33) Sobre o que trata a abstração de dados no contexto do Banco de Dados 34) Sobre o que trata o indepedência de dados no contexto do Banco de Dados 35) Discorra sobre o que trata o "Suporte para múltipla visões de usuário" dentro de um Banco de Dados 36) Como a redundância deve ser tratada/gerenciada dentro do Banco de Dados. Justifique 37) Em que situações não se convém utilizar Banco de Dados 38) Sobre o que trata o persistência de dados no contexto do Banco de Dados 39) Sobre o que trata o instância de dados no contexto do Banco de Dados 40) Sobre o que trata o esquema de dados no contexto do Banco de Dados 41) Qual a diferença entre esquema lógico e esquema físico 42) Discorra sobre as características do modelo de dados Relacional 43) Discorra sobre as características do modelo de dados de rede 44) Discorra sobre as características do modelo de dados Hierárquicos 45) Discorra sobre as características do modelo de dados Orientados a objetos 46) Discorra sobre as características do modelo de dados Objeto-relacionais 47) Qual a diferença entre os Bancos de dados Mono-usuários e Multi-usuários 48) Qual a diferença entre os Bancos de dados Centralizados e Distribuídos. 49) Qual a diferença entre as funções do Projetista de Dados (Administrador de Dados) e DBA (Administrador de Bancos de dados) 50) Qual a relação entre requisitos e um projeto de banco de dados 51) Qual a relação entre documento de visão e um modelo de banco de dados 52) Cite as diferenças entres os níveis Externo, conceitual e interno 53) Qual a função dos índices em um banco de dados 54) Qual a função das "páginas" em um banco de dados 55) Discorra sobre o é um SGBD e sua diferença com Banco de Dados. 56) Cite tres funções básicas de um SGBD 57) Qual o objetivo do modelo conceitual? 58) Qual o objetivo do modelo lógico e qual diferença com o modelo conceitual? 59) Qual o objetivo do modelo físico e qual diferença com o modelo lógico?
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
10
MODELAGEM 60) Qual o objetivo do Diagrama Entidade-Relacionamento (DER)? 61) Qual a relação do DER com o modelo conceitual? 62) Tendo a tabela "aluno" como referência, qual seria o exemplo de um atributo, de uma tupla e de um relacionamento? 63) Discuta o papel de um modelo de dados de alto-nível no processo de projeto de base de dados. 64) Cite alguns casos onde o valor null pode ser aplicado. 65) Defina os seguintes termos: entidade, atributo, valor de atributo, instância de relacionamento, atributo composto, atributo multivalorado, atributo derivado e atributo chave. 66) O que é um tipo de entidade? Descreva as diferenças entre entidade e tipo de entidade. 67) O que é um tipo de relacionamento? Descreva as diferenças entre instância e tipo de relacionamento. 68) Quando é necessário utilizar nome de papéis na descrição de tipos de relacionamentos? 69) Descreva as duas alternativas para especificar as restrições estruturais sobre tipos de relacionamentos. Quais são as vantagens e desvantagens de cada uma? 70) Sobre quais condições pode um atributo de um tipo de relacionamento binário ser promovido a um atributo de um dos tipos de entidades participantes? 71) Sobre quais condições um tipo de relacionamento pode se tornar um atributo de um tipo de entidade? 72) Qual o significado de um tipo de relacionamento recursivo? Dê alguns exemplos disso. 73) Quando o conceito de entidade-fraca é útil na modelagem de dados? Defina os termos: tipo de entidade proprietário, tipo de relacionamento de identificação e chave-parcial. 74) Um tipo de relacionamento de identificação pode ter grau maior que dois? 75) Discuta as condições em que um tipo de relacionamento ternário pode ser representado por um número de tipos de relacionamentos binários 76) O que você entende por: a. Generalização/Especialização b. Especialização total c. Especialização parcial d. Especialização exclusiva e. Especialização não exclusiva 77) O que é uma entidade associativa. 78) Explique o que são: a. Atributos opcionais b. Atributos compostos c. Atributos multivalorados 79) Apresente um exemplo para cada um dos seguintes casos: a. Generalização/Especialização b. Entidade com atributo opcional c. Entidade com atributo composto
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
11
d. Entidade com atributo multivalorado 80) O que é uma tabela no contexto dos bancos de dados relacionais? 81) Explique o que você entende por cada um dos seguintes termos: a. Chave primária b. Chave única c. Chave estrangeira 82) O que são relacionamentos? 83) Que solução deve ser adotada no modelo relacional para relacionamentos com cardinalidade N:N (muitos para muitos)? 84) O que você entende por: a. Integridade de domínio b. Integridade de entidade c. Integridade referencial
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
12
EXERCÍCIOS DE MODELAGEM 85)
Elabore o MER (Modelo Entidade Relacionamento) Entidades: Cliente, Apólice, Carro e Acidentes. Requisitos: a) Um cliente pode ter várias apólices (no mínimo uma); b) Cada apólice somente dá cobertura a um carro; c) Um carro pode ter zero ou n registros de acidentes a ele. Atributos: a) Cliente: Número, Nome e Endereço; b) Apólice: Número e Valor; c) Carro: Registro e Marca; d) Acidente: Data, Hora e Local;
86)
Elabore o MER (Modelo Entidade Relacionamento) Entidades: Médico, Paciente e Exame. Requisitos: O banco de dados deverá armazenar informações sobre os vários exames de um determinado paciente, com o resultado e o valor pago (pode-se dar desconto para determinados pacientes); Atributos: a) Médico: Número, Nome e Especialidade; b) Paciente: Número, Nome, Endereço; c) Tipo Exame, Aceita Convênio, Requisitos, Valor exame.
87) Elabore o MER (Modelo Entidade Relacionamento) Elaborar um diagrama para uma Indústria. Entidades: Peças, Depósitos, Fornecedor, Projeto, Funcionário e Departamento. Requisitos: a) Cada Funcionário pode estar alocado a somente um Departamento; b) Cada Funcionário pode pertencer a mais de um Projeto; c) Um projeto pode utilizar-se de vários Fornecedores e de várias Peças; d) Uma Peça pode ser fornecida por vários Fornecedores e atender a vários Projetos; e) Um Fornecedor pode atender a vários Projetos e fornecer várias Peças; f) Um Depósito pode conter várias Peças;
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
13
88) Elabore o MER (Modelo Entidade Relacionamento) Catálogo de CDs Quero criar um banco de dados para organizar os meus CDs; Um CD possui um título e diversas músicas; Toda música possui um título e uma duração; Uma música pode ter sido composta por um ou mais compositores; Uma música pode ser interpretada por um ou mais cantores; 89) Elabore o MER (Modelo Entidade Relacionamento) Indústria ACME A ACME é uma indústria localizada em uma pequena cidade do interior. Na ACME todo funcionário está lotado em um departamento. Cada departamento faz parte de uma diretoria. Uma diretoria controla diversos departamentos. No cadastro do funcionário estão cadastrados todos os seus dependentes. Como a cidade é pequena, alguns dependentes de funcionários são também funcionários e a ACME precisa registrar esses casos. 90) Elabore o MER (Modelo Entidade Relacionamento). Construtora Uma construtora desenvolve projetos de grande porte. Esta empresa está organizada em departamentos, sendo que cada projeto é sempre coordenado por um departamento. Os departamentos possuem empregados que podem ser chefes. Embora um empregado pertença sempre a um departamento, ele pode ser alocado a projetos de outros departamentos. 91) Elabore o MER (Modelo Entidade Relacionamento). Organização de saúde Uma organização de saúde está estudando doenças e possui o seguinte conjunto de dados: Nome e número de habitantes das cidades em que se manifestam doenças; Nome científico e popular de doenças em estudo; CPF, nome e cidade de residência de pessoas que foram contaminadas por doenças (apenas aquelas doenças que estão em estudo por esta organização) e com quais doenças elas foram contaminadas. ● ● ●
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
14
92) Elabore o MER (Modelo Entidade Relacionamento). Frota Várias empresas possuem frotas de veículos que são identificados através da placa (XYZ-1234). São registrados também os fabricantes e modelos de cada veículo. Os funcionários são identificados através do número de matrícula. São mantidos registros do nome e CPF de cada funcionário. Criar o MER (Modelo Entidade Relacionamento)para cada um dos casos descritos a seguir: Empresa A: Cada veículo (sem exceção) é dirigido por um apenas funcionário. Todos os veículos estão alocados aos funcionários. Cada funcionário pode utilizar apenas um veículo e todos os funcionários têm veículos pertencentes à frota da empresa. Empresa B: Cada veículo (sem exceção) é dirigido por um apenas funcionário. Todos os veículos estão alocados aos funcionários. Cada funcionário pode utilizar apenas um veículo, porém alguns funcionários não têm veículos pertencentes à frota da empresa. c. Empresa C: Cada veículo pode ser dirigido por um ou mais funcionários. Todos os veículos estão alocados aos funcionários. Alguns funcionários podem utilizar mais de um veículo e todos os funcionários têm veículos pertencentes à frota da empresa. d. Empresa D: Cada veículo (sem exceção) é dirigido por um apenas funcionário. Todos os veículos estão alocados aos funcionários. Alguns funcionários podem utilizar mais de um veículo, porém alguns funcionários não têm veículos pertencentes à frota da empresa. e. Empresa E: Cada veículo pode ser dirigido por um ou mais funcionários. Todos os veículos estão alocados aos funcionários. Cada funcionário pode utilizar apenas um veículo e todos os funcionários têm veículos pertencentes à frota da empresa. 93) Tomando como base os diagramas a seguir elabore um texto breve (similar aos apresentados nas questões acima) para explicar cada caso.
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
15
94) Elabore o MER (Modelo Entidade Relacionamento). SISTEMA VIDEO LOCADORA Uma locadora de vídeos possui aproximadamente 5000 DVDs. O objetivo do sistema é manter um controle das locações efetuadas pelos clientes. Cada DVD possui um código exclusivo e contém somente um filme. Para cada filme, é necessário saber seu título e sua categoria (comédia, drama, aventura,etc.). Cada filme recebe um identificador próprio. Há pelo menos um DVD de cada filme. Os clientes frequentemente desejam encontrar os filmes estrelados pelos seus atores prediletos. Por isso, é necessário manter a informação dos atores que estrelam em cada filme. Nem todo filme possui atores (exemplo: documentários). Cada Ator cadastrado participa pelo menos de um filme. Para cada ator os clientes às vezes desejam saber o nome real, além do nome artístico e a data de nascimento. Todo ator deve possuir um código único. A locadora possui aproximadamente 3000 clientes cadastrados. Somente clientes cadastrados podem alugar DVDs. Para cada cliente é necessário saber seu nome, seu telefone. Cada cliente recebe um número de associado como identificador. Um cliente pode alugar vários DVDs em um instante do tempo. É necessário manter os registros históricos das locações com as datas de retirada e data de entrega dos DVDs. 95) Elabore o MER (Modelo Entidade Relacionamento). SISTEMA ESCOLA Uma escola de informática oferece vários cursos livres com duração entre trinta e sessenta dias. Cada curso recebe um código identificador. Professores são contratados para ministrar um ou mais cursos e, portanto é necessário saber quais cursos cada professor está habilitado a ministrar. Os professores recebem um número de matrícula. A escola deseja manter também registrado o nome, endereço, telefone, e-mail de todos os seus professores. Há várias turmas para cada curso. Cada turma, identificada por um código, tem apenas um professor e está alocada em apenas uma sala. Porém, uma sala pode ser alocada para mais de uma turma em diferentes períodos. Um aluno pode matricular-se simultaneamente em vários cursos e, portanto, pertencer a mais de uma turma. No momento da matrícula o aluno recebe um RA (válido para um ou mais cursos). A escola mantém registrado o nome, endereço, telefone, email, RG e CPF de todos os seus alunos. 96) Elabore o MER (Modelo Entidade Relacionamento). SISTEMA EMPRESA Uma empresa é organizada em departamentos. Cada departamento possui um nome e um código único e pode ter várias localidades (cidades). Os projetos existentes na empresa são, obrigatoriamente, controlados por um departamento, e cada projeto possui um nome, um código único e uma única localização (cidade), que pode ser diferente das possíveis localidades do departamento que o controla. Alguns departamentos não possuem projetos sob sua responsabilidade. No caso dos empregados da empresa é armazenado número de matrícula, nome, endereço, salário, sexo e data de nascimento. Quase todos os empregados têm um outro empregado que é o seu
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
16
supervisor direto, e consequentemente, somente alguns são supervisores. Em função da cadeia hierárquica existem empregados que não possuem supervisores. A maioria dos empregados são alocados a um departamento, ou seja, pode até existir um empregado sem departamento, mas todo departamento deve possuir empregados alocados a ele, além disso, todo departamento tem um chefe que o gerencia, a partir de uma data, pois a empresa implementa um sistema de rodízio na chefia dos departamentos, o rodízio na chefia determina que um empregado só pode ser chefe de somente um departamento. Um empregado pode trabalhar em mais de um projeto, mesmo que não seja do seu departamento, dedicando algumas horas por semana em cada um dos projetos. E, é claro, alguns empregados não estão empenhados em nenhum projeto. Por outro lado, todo projeto tem pelo menos um ou mais empregados trabalhando nele. A empresa oferece alguns benefícios sociais aos dependentes dos seus empregados, caso ele possua. Para tanto, é mantido para cada dependente do empregado o nome do dependente, o sexo, a data de nascimento e o grau de parentesco. 97) Elabore o MER (Modelo Entidade Relacionamento). TREM Trens podem ser de dois tipos: trens locais ou trens expressos, mas nunca ambos. Cada trem tem um numero unívoco e um engenheiro. Estações são paradas expressas ou paradas locais, mas nunca ambas. Uma estação tem um nome unívoco e um endereço. Todos os trens locais param em todas as estações. Trens expressos param unicamente em estações expressas Para cada trem e cada estação, existem dois horários em que o trem para (um para cada sentido do trajeto) 98) Elabore o MER (Modelo Entidade Relacionamento). EMPRESA AÉREA O objetivo é projetar um sistema de reservas para uma companhia de aviação. O sistema contará com um banco de dados central, que será acessado por aplicações clientes, rodando tanto dentro da própria companhia, quanto fora dela. A transação central do sistema é a reserva. Uma reserva é identificada por um código gerado pelo sistema em computador. A reserva é feita para um único passageiro, do qual se conhece apenas o nome. A reserva compreende um conjunto de trechos de voos, que acontecerão em determinada data e hora. Para cada trecho, a reserva é feita em uma classe (econômica, executiva, etc.). Um voo é identificado por um código e possui uma origem e um destino. Por exemplo, o voo 595 sai de Porto Alegre, com destino a São Paulo. Um voo é composto de vários trechos, correspondendo as escalas intermediárias do voo. Por exemplo, o voo 595 é composto de dois trechos, um de Porto Alegre a Londrina, o outro de Londrina a São Paulo. Cabe salientar que há cidades que são servidas por vários aeroportos. Por isso, é importante informar ao passageiro que faz a reserva, qual é o aeroporto no qual o voo passa. Às vezes os clientes, ao fazer a reserva, desejam saber qual é o tipo de aeronave que será utilizada em determinado trecho do voo. Alguns poucos voos, principalmente internacionais, tem troca de aeronave em determinadas escalas. Nem todos os voos operam em todos os dias da semana. Inclusive, certos voos têm pequenas mudanças de horário em certos dias da semana.
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
17
Cada reserva possui um prazo de validade. Caso os bilhetes não tenham sido emitidos, até esgotar-se o prazo da reserva, a mesma é cancelada. Reservas podem ser prorrogadas. Como o “check-in” de todos os voos está informatizado, a companhia possibilita a reserva de assento para o passageiro. Reservas de assento podem ser feitas com até 6 meses de antecedência. Além de efetivar reservas, o sistema deve servir para vários tipos de consultas que os clientes podem querer fazer: 1. possibilidades de viagem de uma cidade ou de um aeroporto para o outro; 2. o mesmo, mas restrito a determinados dias da semana; 3. horarios de chegada ou de saida em determinados voos; 4. disponibilidade de vagas em um trecho de voo; 5. disponibilidade de determinados assentos em um trecho de voo. Baseados nos documentos de Requisitos disponibilizados abaixo elabore o Elabore o MER (Modelo Entidade Relacionamento). 99) Documento do Sistema de Protocolos H6 Regras de Negócios: a) Processo possui natureza, onde, uma natureza pode estar associada a mais de um processo b) Processo possui tipo, onde, um tipo pode estar associado a mais de um processo c) Processo está relacionado com Envolvidos que podem ser pessoas Físicas (CPF) ou Jurídicas (CNPJ). A mesma pessoa por estar relacionada a vários processos em vários tipos de envolvimento (Réu, Requerente, Requerido, Testemunhas, etc..) 100) Documento do Nota Legal - CheckNota 101) Documento do Cinema Easy 102) Documento do sistema Agenda 103)
PRS: locação de bicicletas de acordo com a descrição abaixo. A empresa PRS atende dois tipos de clientes: pessoas físicas e pessoas jurídicas. Para acelerar o atendimento, é importante conhecer os dados de clientes que já tenham sido atendidos no passado. Para cada pessoa física é necessário conhecer seu CPF e sexo. Já para as pessoas jurídicas é necessário conhecer seu CNPJ e inscrição estadual. Todos os clientes são identificados por um código identificador interno locadora, além de endereço e telefone. Cada bicicleta é identificada por um código, possui cor e valor de aluguel. É necessário gerenciar as marcas das bicicletas (Venzo, Specialized, Scott,etc) cada bicicleta é de uma marca e uma marca pode estar associada a várias bicicletas. Para cada marca é necessário guardar o código e sua descrição. Cada bicicleta é de um tipo (Mountain Bike, Speed, Downhill, etc). Toda bicicleta tem um tipo e um tipo pode estar associado a várias bicicletas. Para cada tipo é necessário guardar o código identificador e sua descrição.
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
18
Um cliente pode alugar mais de uma bicicleta, mas somente uma por vez a cada locação e uma uma, no mínimo. Cada bicicleta pode ser alugada por vários clientes. Cada locação possui um código, valor da locação e uma data. 104) ENADE 2014 - Ciencia da Computação
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
19
105) ENADE 2014 - ADS (3)
106) ENADE 2014 - Ciência da Computação (SQL) (QUESTÃO 24)
A. SELECT E.UF FROM Estado AS E A WHERE E.nome_estado NOT IN ( SELECT F.UF FROM Fornecedor AS F); B. SELECT E.nome_estado FROM Estado AS E, FROM B Fornecedor AS F F.UF;
WHERE E.UF =
C. SELECT E.nome_estado FROM Estado AS E WHERE E.UF NOT IN ( C SELECT F.UF FROM Fornecedor AS F); D. SELECT E.nome_estado D FROM Estado AS E, FROM Fornecedor AS F WHERE E.nome_estado = F.UF; E. SELECT E.nome_estado FROM Estado AS E E WHERE E.UF IN (SELECT F.UF FROM Fornecedor AS F);
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
20
107) ENADE 2014 - ADS (SQL) (QUESTÃO 11)
A select titulo from livro except select l.titulo from emprestimo e inner join livro l on e.livro_cod = l.liv_cod where e.data_dev is null B select titulo from livro union select l.titulo from emprestimo e inner join livro l on e.livro_cod = l.liv_cod where e.data_dev is null C select titulo from livro except select l.titulo from emprestimo e inner join livro l on e.livro_cod = l.liv_cod where e.data_dev is not null D select titulo from livro union select l.titulo from emprestimo e left join livro l on e.livro_cod = l.liv_cod where e.data_dev is null E select titulo from livro except select l.titulo from emprestimo e right join livro l on e.livro_cod = l.liv_cod where e.data_dev is not null
Notas de Aulas
108) ENADE 2014 - ADS (QUESTÃO 21)
Prof.: Edilberto Silva
www.edilms.eti.br
21
Notas de Aulas
109) ENADE 2014 - ADS (QUESTÃO 22)
Prof.: Edilberto Silva
www.edilms.eti.br
22
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
23
SQL 110) Criar por meio de comandos DDL o banco de Dados correspondente ao modelo lógico abaixo.. Obs.: Começar pelas tabelas que não possuem FK
111) Modificar por meio de comandos DDL - Data Definition Language A. Incluir o campo Aluno.DtNascimento do tipo DATE; B. Remover Remover o campo Curso_Aluno Curso_Aluno.DtMa .DtMatricul triculaa de C. Modificar Modificar o Campo Profess Professor.No or.NomeProf meProfessor essor para para varchar varchar (100); D. Mudar o nome do Campo Professor.NomeProfessor varchar Professor.NomeDocente varchar (100);
(100)
Comandos básicos DML
/*SQL - LINGUAGEM DE PESQUISA DDL - Definição de Dados (CREATE/DROP/ALTER) DML - Manipulação de Dados (INSERT/SELECT/UPDATE -- USE/DESCRIBE) DCL - Controle/Permissão de Dados(GRANT/REVOKE)*/ -- Conectar-se ao Database
use exercicio110; -- Inserção de dados
INSERT INTO (campo1, campo2) VALUES (valor1, 'valor2'); -- Listar os campos da tabela
DESCRIBE ; -- Consultar os dados da tabela
SELECT campo1, campo2 FROM ; SELECT * FROM INNER JOIN ON = WHERE ORDER BY ;
para
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
24
112) Criar por meio de comandos DDL e fazer os insert do banco de Dados referenciado na página 5 da Apostila de SQL disponibilizada. (Médico, Paciente e Consulta**[substituir o nome na última tabela MÉDICO por Consulta]) Consulta] )
(https://drive.google.com/open?id=0BzptWkFdfaxCWkl1aHhHV21oRmtUal9UZkcwV kxiRUlFLVo4 ) kxiRUlFLVo4 ) Obs.: Começar pelas tabelas que não possuem FK
113) Criar por meio de comandos DDL e fazer os insert do banco de Dados referenciado na página 9 da Apostila de SQL disponibilizada (Cliente e Telefones (Observar (Observar a ligação entre as tabelas) tabelas ) (https://drive.google.com/open?id=0BzptWkFdfaxCWkl1aHhHV21oRmtUal9UZkcwV kxiRUlFLVo4 ) kxiRUlFLVo4 ) Obs.: Começar pelas tabelas que não possuem FK
114) Criar por meio de comandos DDL e fazer os insert do banco de Dados referenciado na páginas 25 e 26 da Apostila de SQL disponibilizada. (Médicos, Paciente) (https://drive.google.com/open?id=0BzptWkFdfaxCWkl1aHhHV21oRmtUal9UZkcwV kxiRUlFLVo4 ) kxiRUlFLVo4 ) Obs.: Começar pelas tabelas que não possuem FK
115) Criar por meio de comandos DDL e fazer os insert do banco de Dados referenciado nas páginas 30 e 31 da Apostila de SQL disponibilizada (Aluno, Alunos_da_Banda) (https://drive.google.com/open?id=0BzptWkFdfaxCWkl1aHhHV21oRmtUal9UZkcwV kxiRUlFLVo4 ) kxiRUlFLVo4 ) Obs.: Começar pelas tabelas que não possuem FK
116) Criar por meio de comandos DDL e fazer os insert do banco de Dados referenciado na página 3 da Apostila de SQL disponibilizada (Produto, Detalhes_pedido, Pedido) (https://drive.google.com/open?id=0BzptWkFdfaxCWkl1aHhHV21oRmtUal9UZkcwV kxiRUlFLVo4 ) kxiRUlFLVo4 ) Obs.: Começar pelas tabelas que não possuem FK
117) Inserir por meio de comandos DML os seguintes registros
Notas de Aulas
Prof.: Edilberto Silva
StatusAluno idStatusAluno,DeTipoAluno (1,'Egresso') (2,'Transferido') (3,'Cursando')
Aluno idAluno, NomeAluno,idStatusAluno (1,'Paloma Oliveira',1) (2,'Marina Ruy Barbosa',2) (3,'Aline Riscado',2) (4,'Bruna Marquezine',3) (5,'Isabela Fontana',2) (6,'Eva Andressa',1) (7,'Camila Queiroz',3);
Curso idCurso,DeCurso (1,'ADS Analise Sistemas')
Desenvolvimento
de
(2,'GTI Gestão Informação')
de
da
Tecnologia
(3,'Engenharia') (4,'Medicina') (5,'Direito') (6,'Educação Física')
Professor idProfessor,Nomeprofessor (1,'Eisntein') (2,'Girafalis') (3,'Patata') (4,'Raimundo') (5,'Pardal');
www.edilms.eti.br
25
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
26
Disciplina idDisciplina,DeDisciplina,idCurso, idProfessor (1,'Banco de Dados',1,1) (2,'Civil',4,1) (3,'Java',2,2) (4,'Anatomia',4,3) (5,'Fisiologia',4,1) (6,'Engenharia Software',2,2) (7,'Constitucional',5,3);
Inserir em Curso_Aluno idCurso, idAluno, Ativo,DtMatricula (1,1,1,'2018-04-23') (1,2,1,'2018-04-17') (1,3,0,'2018-03-12') (3,6,0,'2018-01-23') (4,4,1,'2018-03-13') (5,5,1,'2018-02-27');
118) Fazer SELECT que retorne os seguintes registros:
A. Todos os alunos que tem Status cursando; B. Todos os alunos, Somente Nome do Aluno ordenado pelo nome (Ordem Crescente e Descrescente); C. Todos os alunos, Nome do Aluno e IdAluno ordenado pelo idaluno; D. Todos os campos, somente Alunos com idaluno >=3; E. Todos os campos, Somente Alunos com idaluno <4; F. Nomes dos alunos e Status do Aluno (DeTipoAluno) ordenado pelo Nome do Aluno G. Nomes dos alunos e Nome do Curso matriculado ordenado pelo nomealuno; H. Todos os campos, Somente Alunos com idaluno <7 e >4; I. Todos os campos, Somente Alunos com idaluno <5 e >=2 ordenado pelo nomealuno;
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
27
J. Todos os alunos do curso de Medicina; K. Todos os alunos do curso de ADS e que sejam egressos; L. Todos os Alunos que comecem com a letra P; M. Todos os Alunos que terminem com a letra A; N. Todos os Alunos que tenham a letra V e sejam do curso de Engenharia; O. Nome dos Alunos e curso matriculado com idaluno <7 e >4 ordenado pelo nomealuno, que contenham a letra N, estejam “Transferido”; P. Trazer Nome do Aluno e somente o ano de dtMatricula ordenado pelo Nomedo Aluno Q. Trazer a data e hora atual, somente mês de matricula ordenado pelo Nomedo Aluno R. Contar quantos alunos se matricularam no mês de Abril; S. Contar quantos alunos se matricularam no dia 23 de qualquer mês; T. Contar os nomes dos alunos agrupados por nome do Curso U. Contar o Nomes dos professores agrupados por Disciplina V. Contar os Nomes dos Disciplinas agrupados por Professor W.Nome do Aluno, Status, Nome do Curso que a todos os alunos que comecem com “Eva” estejam matriculados X. Todos os Alunos que tenha com a letra letra A no nome e sejam do curso de Medicina status difetente de “Cursando”; 119) ATUALIZAR os registros para as condições abaixo. Fazer uma consulta antes e depois de atualizar A. Mudar o nome da aluna idaluno=3 para “Joana Treptow” B. Mudar o nome da aluna “Bruna Marquezine” para “Paloma Tocci” C. Mudar data de matrícula da aluna “Eva Andressa” para 02/12/2011 D. Mudar data de matrícula da aluna “Isabela Fontana” para 09/03/2015 E. Mudar o status para “Ativo” para todos os alunos com idaluno >=2 em Curso aluno. F. Mudar o nome do professor “Pardal” para “Mickey” G. Mudar o nome da disciplina “Fisiologia” para “Nefrologia”
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
28
H. Mudar nome da disciplina e código do professor na tabela disciplina, onde, de “Civil” para “Sistemas Operacionais” e código professor de 1 para 4; I. Mudar nome do aluno e status na tabela aluno, onde, de “Isabela Fontana” para “Fiorella Matheis” e status de 2 para 3;
120) EXCLUIR os registros para as condições abaixo. Fazer uma consulta antes e depois de excluir. Obs.: Caso seja necessário excluir as suas dependência antes A. Excluir a Disciplina iddisciplina = 3 B. Excluir Curso_aluno para todos os cursos idcurso=4; C. Excluir Status_Aluno = “Egresso” D. Excluir o Professor “Raimundo” E. Excluir o Professor “Girafalis” F. Excluir as matriculas realizadas em “Abril”
Notas de Aulas
Prof.: Edilberto Silva
RESPOSTAS 85) Entidades: Cliente, Apólice, Carro e Acidentes
www.edilms.eti.br
29
Notas de Aulas
Prof.: Edilberto Silva
86) Entidades: Médico, Paciente e Exame.
www.edilms.eti.br
30
Notas de Aulas
Prof.: Edilberto Silva
87) Elaborar um diagrama para uma Indústria.
www.edilms.eti.br
31
Notas de Aulas
Prof.: Edilberto Silva
88) Elabore o MER (Modelo Entidade Relacionamento) Catálogo de CDs
www.edilms.eti.br
32
Notas de Aulas
Prof.: Edilberto Silva
89) Elabore o MER (Modelo Entidade Relacionamento) Indústria ACME
www.edilms.eti.br
33
Notas de Aulas
Prof.: Edilberto Silva
90) Elabore o MER (Modelo Entidade Relacionamento). Construtora
www.edilms.eti.br
34
Notas de Aulas
Prof.: Edilberto Silva
91) Elabore o MER (Modelo Entidade Relacionamento). Organização de saúde
www.edilms.eti.br
35
Notas de Aulas
Prof.: Edilberto Silva
92) Elabore o MER (Modelo Entidade Relacionamento). Frota
www.edilms.eti.br
36
Notas de Aulas
Prof.: Edilberto Silva
94) Elabore o MER (Modelo Entidade Relacionamento). SISTEMA VIDEO LOCADORA
www.edilms.eti.br
37
Notas de Aulas
Prof.: Edilberto Silva
95) Elabore o MER (Modelo Entidade Relacionamento). SISTEMA ESCOLA
www.edilms.eti.br
38
Notas de Aulas
Prof.: Edilberto Silva
96) Elabore o MER (Modelo Entidade Relacionamento). SISTEMA EMPRESA
97) Elabore o MER (Modelo Entidade Relacionamento). TREM
www.edilms.eti.br
39
Notas de Aulas
Prof.: Edilberto Silva
98) Elabore o MER (Modelo Entidade Relacionamento). EMPRESA AÉREA
www.edilms.eti.br
40
Notas de Aulas
Prof.: Edilberto Silva
99) Documento do Sistema de Protocolos H6
www.edilms.eti.br
41
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
42
103) PRS: locação de bicicletas de acordo com a descrição abaixo.
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
43
104) ENADE PADRÃO DE RESPOSTA 1) Formagráfica: O estudante deve elaborar um diagrama ER semelhante ao apresentado abaixo.
Observação: Nesta representação o estudante pode substituir o relacionamento amizade pela entidade “Grupo” com as consequentes alterações de cardinalidade. 2) Forma escrita: Para a notificação ter data e hora, adicionar o atributo do tipo timestamp; Para restringir o acesso da notificação para amigos do Usuário: o criar uma relação n para n de Usuário para Usuário chamada amizade; ou o criar uma entidade “Grupo” com uma relação 1 para n de Usuário para grupo. Para guardar as notificações enviadas para cada usuário, criar uma relação n para n entre notificação e Usuário chamada notificações enviadas.
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
105) ENADE 2014 - ADS
106) ENADE 2014 - Ciência da Computação (SQL) (QUESTÃO 24) RESP.: C 107) ENADE 2014 - ADS (SQL) (QUESTÃO 11) RESP.: A 108) ENADE 2014 - ADS (QUESTÃO 21) RESP.: A 109) ENADE 2014 - ADS (QUESTÃO 22) RESP.: E
44
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
45
110) CREATE DATABASE IF NOT EXISTS `exercicio110` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `exercicio110`; -- MySQL dump 10.13 Distrib 5.7.9, for Win64 (x86_64) --- Host: localhost Database: aulaedilberto -- ------------------------------------------------------- Server version 5.7.13-log /*!40101 /*!40101 /*!40101 /*!40101 /*!40103 /*!40103 /*!40014 /*!40014 */; /*!40101 /*!40111
SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; SET NAMES utf8 */; SET @OLD_TIME_ZONE=@@TIME_ZONE */; SET TIME_ZONE='+00:00' */; SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--- Table structure for table `aluno` -DROP TABLE IF EXISTS `aluno`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `aluno` ( `idAluno` int(11) NOT NULL AUTO_INCREMENT, `NomeAluno` varchar(70) NOT NULL COMMENT 'Tabela que guarda os dados dos alunos da escola', `idStatusAluno` int(11) NOT NULL, PRIMARY KEY (`idAluno`), KEY `fk_Aluno_StatusAluno_idx` (`idStatusAluno`), CONSTRAINT `fk_Aluno_StatusAluno` FOREIGN KEY (`idStatusAluno`) REFERENCES `statusaluno` (`idStatusAluno`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; --- Table structure for table `curso` -DROP TABLE IF EXISTS `curso`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `curso` ( `idCurso` int(11) NOT NULL AUTO_INCREMENT, `DeCurso` varchar(70) NOT NULL COMMENT 'Guarde o nome dos curso da escola. Ex. ADS, GTI,Medicina, Engenharia', PRIMARY KEY (`idCurso`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */;
--
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
46
-- Table structure for table `curso_aluno` -DROP TABLE IF EXISTS `curso_aluno`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `curso_aluno` ( `idCurso` int(11) NOT NULL, `idAluno` int(11) NOT NULL, `Ativo` tinyint(1) DEFAULT '1', `DtMatricula` date DEFAULT NULL, PRIMARY KEY (`idCurso`,`idAluno`), KEY `fk_Curso_has_Aluno_Aluno1_idx` (`idAluno`), KEY `fk_Curso_has_Aluno_Curso1_idx` (`idCurso`), CONSTRAINT `fk_Curso_has_Aluno_Aluno1` FOREIGN KEY (`idAluno`) `aluno` (`idAluno`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_Curso_has_Aluno_Curso1` FOREIGN KEY (`idCurso`) `curso` (`idCurso`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */;
REFERENCES REFERENCES
--- Table structure for table `disciplina` -DROP TABLE IF EXISTS `disciplina`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `disciplina` ( `idDisciplina` int(11) NOT NULL AUTO_INCREMENT, `DeDisciplina` varchar(70) NOT NULL COMMENT 'Guarda o nome das disciplinas: Ex. Banco de Dados, Anatomia, Cálculo', `idCurso` int(11) NOT NULL, `idProfessor` int(11) NOT NULL, PRIMARY KEY (`idDisciplina`), KEY `fk_Disciplina_Curso1_idx` (`idCurso`), KEY `fk_Disciplina_Professor1_idx` (`idProfessor`), CONSTRAINT `fk_Disciplina_Curso1` FOREIGN KEY (`idCurso`) REFERENCES `curso` (`idCurso`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_Disciplina_Professor1` FOREIGN KEY (`idProfessor`) REFERENCES `professor` (`idProfessor`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */;
--- Table structure for table `professor` -DROP TABLE IF EXISTS `professor`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `professor` ( `idProfessor` int(11) NOT NULL AUTO_INCREMENT, `NomeProfessor` varchar(70) NOT NULL COMMENT 'Guarde o nome do professor. Nesta escola um professor uma disciplina somente pode ser ministra por um professor', PRIMARY KEY (`idProfessor`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */;
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
47
--- Table structure for table `statusaluno` -DROP TABLE IF EXISTS `statusaluno`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `statusaluno` ( `idStatusAluno` int(11) NOT NULL AUTO_INCREMENT, `DeTipoAluno` varchar(45) DEFAULT NULL COMMENT 'Guarda os tipos de alunos. Ex: Egresso, Cursando, Transferido', PRIMARY KEY (`idStatusAluno`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; /*!40101 /*!40014 /*!40014 /*!40101 /*!40101 /*!40101 /*!40111
SET SET SET SET SET SET SET
SQL_MODE=@OLD_SQL_MODE */; FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2018-04-23 11:01:02
111) A. Incluir o campo Aluno.DtNascimento;
ALTER TABLE Aluno ADD COLUMN DtNascimento DATE; B. Remover o campo Curso_Aluno.DtMAtricula ALTER TABLE Curso_Aluno DROP COLUMN DtMAtricula; C. Modificar o Campo Professor.NomeProfessor para varchar (100); ALTER TABLE Professor MODIFY COLUMN NomeProfessor varchar (100); D. Mudar o nome do Campo Professor.NomeProfessor varchar (100) para Professor.NomeDocente varchar (100); alter table professor change nomeprofessor nomedocente varchar(100);
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
48
112) DROP DATABASE if exists exercicio112; CREATE DATABASE */;
IF NOT EXISTS `exercicio112` /*!40100 DEFAULT CHARACTER SET utf8
USE `exercicio112`; -- MySQL dump 10.13
Distrib 5.7.9, for Win64 (x86_64)
--- Host: localhost
Database: exercicio112
-- ------------------------------------------------------- Server version 5.7.13-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 */;
SET
@OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,
FOREIGN_KEY_CHECKS=0
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; --- Table structure for table `consulta` -DROP TABLE IF EXISTS `consulta`; /*!40101 SET @saved_cs_client
= @@character_set_client */;
/*!40101 SET character_set_client = utf8 */; CREATE TABLE `consulta` ( `CodConsulta` int(11) NOT NULL, `CodMedico` int(11) DEFAULT NULL, `CodPaciente` int(11) DEFAULT NULL, `DataHoraConsulta` datetime DEFAULT NULL, PRIMARY KEY (`CodConsulta`), KEY `CodMedico` (`CodMedico`), KEY `CodPaciente` (`CodPaciente`), CONSTRAINT `consulta_ibfk_1` (`codMedico`),
FOREIGN
KEY
(`CodMedico`)
REFERENCES
`medico`
CONSTRAINT `consulta_ibfk_2` FOREIGN KEY (`CodPaciente`) REFERENCES `paciente` (`CodPaciente`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
49
/*!40101 SET character_set_client = @saved_cs_client */; --- Dumping data for table `consulta` LOCK TABLES `consulta` WRITE; /*!40000 ALTER TABLE `consulta` DISABLE KEYS */; INSERT INTO `consulta` VALUES (1,1,2,'2013-01-21 14:25:00'),(2,1,3,'2013-01-21 15:45:00'),(3,2,1,'2012-04-12 09:25:00'),(4,4,3,'2012-05-27 11:15:00'); /*!40000 ALTER TABLE `consulta` ENABLE KEYS */; UNLOCK TABLES; --- Table structure for table `medico` -DROP TABLE IF EXISTS `medico`; /*!40101 SET @saved_cs_client
= @@character_set_client */;
/*!40101 SET character_set_client = utf8 */; CREATE TABLE `medico` ( `codMedico` int(11) NOT NULL, `NomeMedico` varchar(70) DEFAULT NULL, `Especialidade` varchar(45) DEFAULT NULL, PRIMARY KEY (`codMedico`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; --- Dumping data for table `medico` -LOCK TABLES `medico` WRITE; /*!40000 ALTER TABLE `medico` DISABLE KEYS */;
INSERT INTO `medico` VALUES (1,'Joana Treptow','Cardiologia'),(2,'Fiorella Matheis','Dermatologista'),(3,'Aline Riscado','Cardiologia'),(4,'Marina Ruy Barbosa ','Neurologista'); -- INSERT INTO `medico` VALUES (1,'Mauricio de Nassau','Cardiologia'),(2,'Jorge Amado','Dermatologista'),(3,'Paulo Coelho','Cardiologia'),(4,'Willian Bonner','Neurologista'); /*!40000 ALTER TABLE `medico` ENABLE KEYS */; UNLOCK TABLES; --- Table structure for table `paciente` -DROP TABLE IF EXISTS `paciente`; /*!40101 SET @saved_cs_client
= @@character_set_client */;
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
50
/*!40101 SET character_set_client = utf8 */; CREATE TABLE `paciente` ( `CodPaciente` int(11) NOT NULL, `NomePaciente` varchar(70) DEFAULT NULL, PRIMARY KEY (`CodPaciente`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; --- Dumping data for table `paciente` LOCK TABLES `paciente` WRITE; /*!40000 ALTER TABLE `paciente` DISABLE KEYS */;
INSERT INTO `paciente` VALUES (1,'Paloma Marquezine'),(3,'Isabela Fontana'),(4,'Ana Hickmann');
Tocci'),(2,'Bruna
/*!40000 ALTER TABLE `paciente` ENABLE KEYS */; -INSERT INTO `paciente` VALUES (1,'Jabes Renascer'),(3,'Geraldo Simões'),(4,'Capitão Azevedo');
Ribeiro'),(2,'Vane
/*!40000 ALTER TABLE `paciente` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2018-05-17 11:03:18
do
Notas de Aulas
Prof.: Edilberto Silva
113) DROP DATABASE if exists exercicio113; CREATE DATABASE exercicio113; USE exercicio113;
CREATE TABLE CLIENTES ( CodCliente INT NOT NULL AUTO_INCREMENT, NomeCliente VARCHAR(100), DtNascimento DATE, PRIMARY KEY (CodCliente));
CREATE TABLE telefones ( codTelefone INT NOT NULL AUTO_INCREMENT, codcliente INT NOT NULL, Numero INT NOT NULL, ffTipo VARCHAR(90), PRIMARY KEY (codtelefone), FOREIGN KEY (codcliente) REFERENCES Cliente (codcliente));
www.edilms.eti.br
51
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
52
117) CREATE DATABASE IF NOT EXISTS `exercicio110` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `exercicio110`; -- MySQL dump 10.13 Distrib 5.7.9, for Win64 (x86_64) --- Host: localhost Database: aulaedilberto -- ------------------------------------------------------- Server version 5.7.13-log /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; --- Table structure for table `aluno` -DROP TABLE IF EXISTS `aluno`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `aluno` ( `idAluno` int(11) NOT NULL AUTO_INCREMENT, `NomeAluno` varchar(70) NOT NULL COMMENT 'Tabela que guarda os dados dos alunos da escola', `idStatusAluno` int(11) NOT NULL, PRIMARY KEY (`idAluno`), KEY `fk_Aluno_StatusAluno_idx` (`idStatusAluno`), CONSTRAINT `fk_Aluno_StatusAluno` FOREIGN KEY (`idStatusAluno`) REFERENCES `statusaluno` (`idStatusAluno`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; --- Dumping data for table `aluno` -LOCK TABLES `aluno` WRITE; /*!40000 ALTER TABLE `aluno` DISABLE KEYS */; INSERT INTO `aluno` VALUES (1,'Paloma Oliveira',1),(2,'Marina Ruy Barbosa',2),(3,'Aline Riscado',2),(4,'Bruna Marquezine',3),(5,'Isabela Fontana',2),(6,'Eva Andressa',1),(7,'Camila Queiroz',3); /*!40000 ALTER TABLE `aluno` ENABLE KEYS */; UNLOCK TABLES; --- Table structure for table `curso` -DROP TABLE IF EXISTS `curso`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `curso` ( `idCurso` int(11) NOT NULL AUTO_INCREMENT, `DeCurso` varchar(70) NOT NULL COMMENT 'Guarde o nome dos curso da escola. Ex. ADS, GTI,Medicina, Engenharia', PRIMARY KEY (`idCurso`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; --- Dumping data for table `curso` --
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
53
LOCK TABLES `curso` WRITE; /*!40000 ALTER TABLE `curso` DISABLE KEYS */; INSERT INTO `curso` VALUES (1,'ADS Analise Desenvolvimento de Sistemas'),(2,'GTI Gestão de Tecnologia da Informação'),(3,'Engenharia'),(4,'Medicina'),(5,'Direito'),(6,'Educação Física'); /*!40000 ALTER TABLE `curso` ENABLE KEYS */; UNLOCK TABLES; --- Table structure for table `curso_aluno` -DROP TABLE IF EXISTS `curso_aluno`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `curso_aluno` ( `idCurso` int(11) NOT NULL, `idAluno` int(11) NOT NULL, `Ativo` tinyint(1) DEFAULT '1', `DtMatricula` date DEFAULT NULL, PRIMARY KEY (`idCurso`,`idAluno`), KEY `fk_Curso_has_Aluno_Aluno1_idx` (`idAluno`), KEY `fk_Curso_has_Aluno_Curso1_idx` (`idCurso`), CONSTRAINT `fk_Curso_has_Aluno_Aluno1` FOREIGN KEY (`idAluno`) (`idAluno`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_Curso_has_Aluno_Curso1` FOREIGN KEY (`idCurso`) (`idCurso`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */;
REFERENCES
`aluno`
REFERENCES
`curso`
--- Dumping data for table `curso_aluno` -LOCK TABLES `curso_aluno` WRITE; /*!40000 ALTER TABLE `curso_aluno` DISABLE KEYS */; INSERT INTO `curso_aluno` VALUES (1,1,1,'2018-04-23'),(1,2,1,'2018-04-17'),(1,3,0,'2018-03-12'),(3,6,0,'2018-01-23'),(4,4, 1,'2018-03-13'),(5,5,1,'2018-02-27'); /*!40000 ALTER TABLE `curso_aluno` ENABLE KEYS */; UNLOCK TABLES; --- Table structure for table `disciplina` -DROP TABLE IF EXISTS `disciplina`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `disciplina` ( `idDisciplina` int(11) NOT NULL AUTO_INCREMENT, `DeDisciplina` varchar(70) NOT NULL COMMENT 'Guarda o nome das disciplinas: Ex. Banco de Dados, Anatomia, Cálculo', `idCurso` int(11) NOT NULL, `idProfessor` int(11) NOT NULL, PRIMARY KEY (`idDisciplina`), KEY `fk_Disciplina_Curso1_idx` (`idCurso`), KEY `fk_Disciplina_Professor1_idx` (`idProfessor`), CONSTRAINT `fk_Disciplina_Curso1` FOREIGN KEY (`idCurso`) REFERENCES `curso` (`idCurso`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_Disciplina_Professor1` FOREIGN KEY (`idProfessor`) REFERENCES `professor` (`idProfessor`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; --- Dumping data for table `disciplina` --
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
54
LOCK TABLES `disciplina` WRITE; /*!40000 ALTER TABLE `disciplina` DISABLE KEYS */; INSERT INTO `disciplina` VALUES (1,'Banco de Dados',1,1),(2,'Civil',4,1),(3,'Java',2,2),(4,'Anatomia',5,3),(5,'Fisiologia',5,1),(6,'En genharia Software',2,2),(7,'Constitucional',4,3); /*!40000 ALTER TABLE `disciplina` ENABLE KEYS */; UNLOCK TABLES; --- Table structure for table `professor` -DROP TABLE IF EXISTS `professor`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `professor` ( `idProfessor` int(11) NOT NULL AUTO_INCREMENT, `NomeProfessor` varchar(70) NOT NULL COMMENT 'Guarde o nome do professor. Nesta escola um professor uma disciplina somente pode ser ministra por um professor', PRIMARY KEY (`idProfessor`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; --- Dumping data for table `professor` -LOCK TABLES `professor` WRITE; /*!40000 ALTER TABLE `professor` DISABLE KEYS */; INSERT INTO `professor` (1,'Eisntein'),(2,'Girafalis'),(3,'Patata'),(4,'Raimundo'),(5,'Pardal'); /*!40000 ALTER TABLE `professor` ENABLE KEYS */; UNLOCK TABLES;
VALUES
--- Table structure for table `statusaluno` -DROP TABLE IF EXISTS `statusaluno`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `statusaluno` ( `idStatusAluno` int(11) NOT NULL AUTO_INCREMENT, `DeTipoAluno` varchar(45) DEFAULT NULL COMMENT 'Guarda os tipos de alunos. Ex: Egresso, Cursando, Transferido', PRIMARY KEY (`idStatusAluno`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; --- Dumping data for table `statusaluno` -LOCK TABLES `statusaluno` WRITE; /*!40000 ALTER TABLE `statusaluno` DISABLE KEYS */; INSERT INTO `statusaluno` VALUES (1,'Egresso'),(2,'Transferido'),(3,'Cursando'); /*!40000 ALTER TABLE `statusaluno` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 /*!40014 /*!40014 /*!40101 /*!40101 /*!40101 /*!40111
SET SET SET SET SET SET SET
SQL_MODE=@OLD_SQL_MODE */; FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2018-04-23 11:01:02
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
55
118) Fazer SELECT que retorne os seguintes registros:
A. Todos os alunos que tem Status cursando; select * from aluno where idStatusAluno = 3; -- cursando select * from aluno where idStatusAluno = 1; -- egressos
B. Todos os alunos, somente Nome do Aluno ordenado pelo nome (Crescente e Descrescente); select NomeAluno from aluno order by NomeAluno; select NomeAluno from aluno order by NomeAluno desc;
C. Todos os alunos, Nome do Aluno e IdAluno ordenado pelo idaluno; select NomeAluno, idAluno from aluno order by idAluno;
D. Todos os campos, somente Alunos com idaluno >=3; select * from aluno where idAluno >=3;
E. Todos os campos, somente Alunos com idaluno <4; select * from aluno where idAluno <4;
F. Nomes dos alunos e Status do Aluno (DeTipoAluno) ordenado pelo Nome do Aluno; SELECT aluno.NomeAluno, statusaluno.DeTipoAluno FROM aluno INNER JOIN statusaluno ON aluno.idStatusAluno = statusaluno.idStatusAluno order by aluno.NomeAluno;
G. Nomes dos alunos e Curso matriculado ordenado pelo nomealuno; SELECT A.NomeAluno, C.DeCurso FROM Aluno AS A INNER JOIN curso_aluno AS CA ON A.IDALUNO = CA.IDALUNO
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
56
INNER JOIN curso as c ON ca.idcurso = c.idcurso order by a.nomealuno;
H. Somente Alunos com idaluno <7 e >4; select * from where idAluno OU select * from where idAluno
aluno > 4 and idAluno <7; aluno between 5 and 6;
I. Todos os campos, Somente Alunos com idaluno <5 e >=2 ordenado pelo nomealuno; select * from aluno where idAluno < 5 and idAluno >=2; select * from aluno where idAluno between 2 and 4;
J. Todos os alunos do curso de Medicina; select a.NomeAluno from aluno a inner join curso_aluno ca on a.idaluno = ca.idaluno inner join curso c on c.idcurso = ca.idcurso where DeCurso = 'Medicina';
K. Todos os alunos do curso de ADS e que sejam egressos; SELECT a.nomealuno, sa.detipoaluno, c.DeCurso FROM aluno a INNER JOIN statusaluno sa on sa.idstatusaluno = a.idstatusaluno INNER JOIN curso_aluno ca on ca.idaluno = a.idaluno INNER JOIN Curso c on c.idcurso = ca.idcurso where c.decurso LIKE 'ADS%' AND sa.detipoaluno LIKE 'Egre%';
L. Todos os Alunos que comecem com a letra P; select NomeAluno from aluno where NomeAluno like 'P%';
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
57
M. Todos os Alunos que terminem com a letra A; select NomeAluno from aluno where NomeAluno like '%A';
N. Todos os Alunos que tenham a letra V e sejam do curso de Engenharia; select a.nomealuno, c.DeCurso from aluno a inner join curso_aluno ca on ca.idaluno = a.idaluno inner join curso c on c.idcurso = ca.idcurso where a.nomealuno like '%V%' and c.decurso = 'Engenharia';
O. Nome dos Alunos e curso matriculado com idaluno <7 e >4 ordenado pelo nomealuno, que contenham a letra N, estejam “Transferido”; select a.NomeAluno, c.DeCurso, sa.DeTipoAluno from aluno a inner join curso_aluno ca on ca.idaluno = a.idaluno inner join curso c on c.idcurso = ca.idcurso inner join statusaluno sa on sa.idstatusaluno = a.idstatusaluno where a.nomealuno like '%N%' and sa.detipoaluno = 'transferido' and a.idAluno > 4 and a.idAluno <7 order by a.nomealuno;
P. Trazer Nome do Aluno e somente o ano de dtMatricula ordenado pelo Nomedo Aluno select a.NomeAluno, year (ca.DtMatricula) as AnoMatricula from aluno a inner join curso_aluno ca on ca.idaluno = a.idaluno order by a.NomeAluno;
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
58
Q. Trazer a data e hora atual, somente mês de matricula ordenado pelo Nome do Aluno select now(), a.NomeAluno, month (ca.DtMatricula) as MesMatricula from aluno a inner join curso_aluno ca on ca.idaluno = a.idaluno order by a.NomeAluno;
R. Contar quantos alunos se matricularam no mês de Abril; select count(a.idaluno) 'Quantidade de Alunos' from aluno a inner join curso_aluno ca on ca.idaluno = a.idaluno where month (ca.DtMatricula) = 4;
S. Contar quantos alunos se matricularam no dia 23 de qualquer mês; select count(a.idaluno) from aluno a inner join curso_aluno ca on a.idAluno = ca.idAluno where day(ca.DtMatricula) = 23;
T. Contar os nomes dos alunos agrupados por nome do Curso SELECT C.DECURSO,COUNT(A.NOMEALUNO) FROM ALUNO A INNER JOIN curso_aluno CA ON CA.idAluno = A.IDALUNO INNER JOIN CURSO C ON C.IDCURSO = CA.idCurso GROUP BY C.DECURSO ;
U. Contar os Nomes dos professores agrupados por Disciplina SELECT COUNT(P.NOMEPROFESSOR) as Quantidade, D.DEDISCIPLINA FROM PROFESSOR P INNER JOIN DISCIPLINA D ON P.IDPROFESSOR = D.IDPROFESSOR GROUP BY D.DEDISCIPLINA;
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
59
V. Contar os Nomes dos Disciplinas agrupados por Professor SELECT COUNT(D.DEDISCIPLINA) as Quantidade, P.NOMEPROFESSOR FROM PROFESSOR P INNER JOIN DISCIPLINA D ON P.IDPROFESSOR = D.IDPROFESSOR GROUP BY P.NOMEPROFESSOR;
W.Nome do Aluno, Status, Nome do Curso que a todos os alunos que comecem com “Eva” estejam matriculados select a.NomeAluno, c.DeCurso, sa.DeTipoAluno from aluno a inner join statusaluno sa on a.idstatusaluno = sa.idstatusaluno inner join curso_aluno ca on ca.idaluno = a.idaluno inner join curso c on c.idcurso = ca.idcurso where sa.detipoaluno = 'Egresso' and a.nomealuno like 'eva%';
119) A. Mudar o nome da aluna idaluno=3 para “Joana Treptow” UPDATE ALUNO SET NOMEALUNO = 'JOANA TREPTOW' WHERE IDALUNO = 3;
B. Mudar o nome da aluna “Bruna Marquezine” para “Paloma Tocci” UPDATE ALUNO SET NOMEALUNO = 'Paloma Tocci' WHERE IDALUNO = 4; UPDATE ALUNO SET NOMEALUNO = 'Paloma Tocci' WHERE NOMEALUNO = 'BRUNA MARQUEZINE'
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
60
C. Mudar data de matrícula da aluna “Eva Andressa” para 02/12/2011 UPDATE curso_aluno SET DtMatricula = '2011-12-02' WHERE IDCURSO = 3 AND IDALUNO = 6;
D. Mudar data de matrícula da aluna “Isabela Fontana” para 09/03/2015 UPDATE curso_aluno SET DtMatricula = '2015-03-09' WHERE IDCURSO = 5 AND IDALUNO = 5;
E. Mudar o status para “Ativo” para todos os alunos com idaluno >=2 em Curso aluno. UPDATE curso_aluno SET ativo = 0 where (idaluno = 6 and idCurso=3) or (idAluno = 3 and idCurso=1);
F. Mudar o nome do professor “Pardal” para “Mickey” UPDATE PROFESSOR SET NomeProfessor = 'Mickey' WHERE idProfessor=5;
G. Mudar o nome da disciplina “Fisiologia” para “Nefrologia” UPDATE DISCIPLINA SET DEDISCIPLINA = 'Nefrologia' WHERE IDDISCIPLINA = 5;
H. Mudar nome da disciplina e código do professor na tabela disciplina, onde, de “Civil” para “Sistemas Operacionais” e código professor de 1 para 4; UPDATE disciplina SET DeDisciplina = 'Sistemas Operacionais', idProfessor = 4 where idDisciplina =2 ;
Notas de Aulas
Prof.: Edilberto Silva
www.edilms.eti.br
61
I. Mudar nome do aluno e status na tabela aluno, onde, de “Isabela Fontana” para “Fiorella Matheis” e status de 2 para 3; UPDATE ALUNO SET IDSTATUSALUNO=3, NOMEALUNO = 'FIORELLA MATHEIS' WHERE IDALUNO = 5;
120) A. Excluir a Disciplina iddisciplina = 3 DELETE FROM DISCIPLINA WHERE IDDISCIPLINA = 3;
B. Excluir Curso_aluno para todos os cursos idcurso=4; delete from curso_aluno where idcurso=4 and idaluno = 4;
C. Excluir Status_Aluno = “Egresso” DELETE FROM CURSO_ALUNO WHERE IDALUNO = 6 OR IDALUNO =1; DELETE FROM ALUNO WHERE IDALUNO = 6 OR IDALUNO =1; DELETE FROM STATUSALUNO WHERE IDALUNO = 6 OR IDALUNO =1; ---- OU ---delete from curso_aluno where idaluno in (1,6); delete from aluno where idStatusAluno = 1 and (idaluno in (1,6));