Escolar Documentos
Profissional Documentos
Cultura Documentos
000002ab PDF
000002ab PDF
Banco de Dados I
Banco de Dados I
Disciplina na modalidade a distância
Palhoça
UnisulVirtual
2011
Reitor Unisul Assistente e Auxiliar de Luana Borges da Silva Gerência de Desenho Jeferson Pandolfo
Ailton Nazareno Soares Coordenação Luana Tarsila Hellmann e Desenvolvimento de Karine Augusta Zanoni
Maria de Fátima Martins (Assistente) Luíza Koing Zumblick Materiais Didáticos Marcia Luz de Oliveira
Vice-Reitor Fabiana Lange Patricio Maria José Rossetti Márcia Loch (Gerente)
Tânia Regina Goularte Waltemann Marilene de Fátima Capeleto Assuntos Jurídicos
Sebastião Salésio Heerdt Ana Denise Goularte de Souza Bruno Lucion Roso
Patricia A. Pereira de Carvalho Desenho Educacional
Chefe de Gabinete da Paulo Lisboa Cordeiro Cristina Klipp de Oliveira (Coord. Grad./DAD) Marketing Estratégico
Coordenadores Graduação Silvana Souza da Cruz (Coord. Pós/Ext.)
Reitoria Adriano Sérgio da Cunha Paulo Mauricio Silveira Bubalo Rafael Bavaresco Bongiolo
Rosângela Mara Siegel Aline Cassol Daga
Willian Máximo Aloísio José Rodrigues Ana Cláudia Taú Portal e Comunicação
Ana Luísa Mülbert Simone Torres de Oliveira
Vanessa Pereira Santos Metzker Carmelita Schulze Catia Melissa Silveira Rodrigues
Pró-Reitora Acadêmica Ana Paula R. Pacheco Carolina Hoeller da Silva Boeing Andreia Drewes
Arthur Beck Neto Vanilda Liordina Heerdt
Miriam de Fátima Bora Rosa Eloísa Machado Seemann Luiz Felipe Buchmann Figueiredo
Bernardino José da Silva Gestão Documental Flavia Lumi Matuzawa Marcelo Barcelos
Pró-Reitor de Administração Catia Melissa S. Rodrigues Lamuniê Souza (Coord.) Gislaine Martins Rafael Pessi
Fabian Martins de Castro Charles Cesconetto Clair Maria Cardoso Isabel Zoldan da Veiga Rambo
Diva Marília Flemming Daniel Lucas de Medeiros Jaqueline de Souza Tartari Gerência de Produção
Pró-Reitor de Ensino Fabiano Ceretta Eduardo Rodrigues João Marcos de Souza Alves Arthur Emmanuel F. Silveira (Gerente)
José Carlos da Silva Junior Guilherme Henrique Koerich Francini Ferreira Dias
Mauri Luiz Heerdt Horácio Dutra Mello Josiane Leal
Leandro Romanó Bamberg
Letícia Laurindo de Bonfim Design Visual
Itamar Pedro Bevilaqua Marília Locks Fernandes
Campus Universitário de Jairo Afonso Henkes
Lygia Pereira Pedro Paulo Alves Teixeira (Coord.)
Tubarão Lis Airê Fogolari Adriana Ferreira dos Santos
Janaína Baeta Neves Gerência Administrativa e Luiz Henrique Milani Queriquelli
Diretora Jardel Mendes Vieira Financeira Alex Sandro Xavier
Milene Pacheco Kindermann Marina Melhado Gomes da Silva Alice Demaria Silva
Joel Irineu Lohn Renato André Luz (Gerente) Marina Cabeda Egger Moellwald
Jorge Alexandre N. Cardoso Ana Luise Wehrle Anne Cristyne Pereira
Campus Universitário da Melina de La Barrera Ayres Cristiano Neri Gonçalves Ribeiro
José Carlos N. Oliveira Anderson Zandré Prudêncio Michele Antunes Corrêa
Grande Florianópolis José Gabriel da Silva Daniel Contessa Lisboa Daiana Ferreira Cassanego
Nágila Hinckel Diogo Rafael da Silva
Diretor José Humberto D. Toledo Naiara Jeremias da Rocha Pâmella Rocha Flores da Silva
Hércules Nunes de Araújo Joseane Borges de Miranda Rafael Bourdot Back Edison Rodrigo Valim
Rafael Araújo Saldanha Frederico Trilha
Luciana Manfroi Thais Helena Bonetti Roberta de Fátima Martins
Campus Universitário Luiz G. Buchmann Figueiredo Valmir Venício Inácio Higor Ghisi Luciano
Roseli Aparecida Rocha Moterle Jordana Paula Schulka
UnisulVirtual Marciel Evangelista Catâneo Sabrina Bleicher
Maria Cristina S. Veit Gerência de Ensino, Pesquisa Marcelo Neri da Silva
Diretora Sabrina Paula Soares Scaranto Nelson Rosa
Maria da Graça Poyer e Extensão Viviane Bastos
Jucimara Roesler Mauro Faccioni Filho Oberdan Porto Leal Piantino
Moacir Heerdt (Gerente) Patrícia Fragnani de Morais
Moacir Fogaça Aracelli Araldi Acessibilidade
Nélio Herzmann Vanessa de Andrade Manoel (Coord.) Multimídia
Equipe UnisulVirtual Onei Tadeu Dutra Elaboração de Projeto e Letícia Regiane Da Silva Tobal
Reconhecimento de Curso Sérgio Giron (Coord.)
Patrícia Fontanella Mariella Gloria Rodrigues Dandara Lemos Reynaldo
Diretora Adjunta Rogério Santos da Costa Diane Dal Mago
Patrícia Alberton Vanderlei Brasil Avaliação da aprendizagem Cleber Magri
Rosa Beatriz M. Pinheiro Fernando Gustav Soares Lima
Tatiana Lee Marques Francielle Arruda Rampelotte Geovania Japiassu Martins (Coord.)
Secretaria Executiva e Cerimonial Gabriella Araújo Souza Esteves
Jackson Schuelter Wiggers (Coord.) Valnei Carlos Denardin Extensão Conferência (e-OLA)
Roberto Iunskovski Jaqueline Cardozo Polla Carla Fabiana Feltrin Raimundo (Coord.)
Marcelo Fraiberg Machado Maria Cristina Veit (Coord.) Thayanny Aparecida B.da Conceição
Tenille Catarina Rose Clér Beche Bruno Augusto Zunino
Rodrigo Nunes Lunardelli Pesquisa
Assessoria de Assuntos Sergio Sell Daniela E. M. Will (Coord. PUIP, PUIC, PIBIC) Gerência de Logística Produção Industrial
Internacionais Mauro Faccioni Filho(Coord. Nuvem) Jeferson Cassiano A. da Costa (Gerente) Marcelo Bittencourt (Coord.)
Murilo Matos Mendonça Coordenadores Pós-Graduação
Aloisio Rodrigues Pós-Graduação Logísitca de Materiais Gerência Serviço de Atenção
Assessoria de Relação com Poder Bernardino José da Silva Anelise Leal Vieira Cubas (Coord.) Carlos Eduardo D. da Silva (Coord.)
Público e Forças Armadas Abraao do Nascimento Germano Integral ao Acadêmico
Carmen Maria Cipriani Pandini Maria Isabel Aragon (Gerente)
Adenir Siqueira Viana Daniela Ernani Monteiro Will Biblioteca Bruna Maciel
Walter Félix Cardoso Junior Salete Cecília e Souza (Coord.) Fernando Sardão da Silva André Luiz Portes
Giovani de Paula Carolina Dias Damasceno
Karla Leonora Nunes Paula Sanhudo da Silva Fylippy Margino dos Santos
Assessoria DAD - Disciplinas a Renan Felipe Cascaes Cleide Inácio Goulart Seeman
Distância Leticia Cristina Barbosa Guilherme Lentz
Marlon Eliseu Pereira Francielle Fernandes
Patrícia da Silva Meneghel (Coord.) Luiz Otávio Botelho Lento Holdrin Milet Brandão
Carlos Alberto Areias Rogério Santos da Costa Gestão Docente e Discente Pablo Varela da Silveira
Enzo de Oliveira Moreira (Coord.) Rubens Amorim Jenniffer Camargo
Cláudia Berh V. da Silva Roberto Iunskovski Juliana Cardoso da Silva
Conceição Aparecida Kindermann Thiago Coelho Soares Yslann David Melo Cordeiro
Capacitação e Assessoria ao Jonatas Collaço de Souza
Luiz Fernando Meneghel Vera Regina N. Schuhmacher Docente Avaliações Presenciais Juliana Elen Tizian
Renata Souza de A. Subtil Simone Zigunovas (Capacitação) Graciele M. Lindenmayr (Coord.) Kamilla Rosa
Gerência Administração Alessandra de Oliveira (Assessoria)
Assessoria de Inovação e Acadêmica Ana Paula de Andrade Maurício dos Santos Augusto
Qualidade de EAD Adriana Silveira Angelica Cristina Gollo Maycon de Sousa Candido
Angelita Marçal Flores (Gerente) Alexandre Wagner da Rocha
Denia Falcão de Bittencourt (Coord) Fernanda Farias Cristilaine Medeiros Monique Napoli Ribeiro
Andrea Ouriques Balbinot Elaine Cristiane Surian Daiana Cristina Bortolotti Nidia de Jesus Moraes
Carmen Maria Cipriani Pandini Secretaria de Ensino a Distância Juliana Cardoso Esmeraldino Delano Pinheiro Gomes Orivaldo Carli da Silva Junior
Iris de Sousa Barros Samara Josten Flores (Secretária de Ensino) Maria Lina Moratelli Prado Edson Martins Rosa Junior Priscilla Geovana Pagani
Giane dos Passos (Secretária Acadêmica) Fabiana Pereira Fernando Steimbach Sabrina Mari Kawano Gonçalves
Assessoria de Tecnologia Adenir Soares Júnior Fernando Oliveira Santos Scheila Cristina Martins
Osmar de Oliveira Braz Júnior (Coord.) Tutoria e Suporte
Alessandro Alves da Silva Claudia Noemi Nascimento (Líder) Lisdeise Nunes Felipe Taize Muller
Felipe Jacson de Freitas Andréa Luci Mandira Marcelo Ramos Tatiane Crestani Trentin
Jefferson Amorin Oliveira Anderson da Silveira (Líder)
Cristina Mara Schauffert Ednéia Araujo Alberto (Líder) Marcio Ventura Vanessa Trindade
Phelipe Luiz Winter da Silva Djeime Sammer Bortolotti Osni Jose Seidler Junior
Priscila da Silva Maria Eugênia F. Celeghin (Líder)
Douglas Silveira Andreza Talles Cascais Thais Bortolotti
Rodrigo Battistotti Pimpão Evilym Melo Livramento
Tamara Bruna Ferreira da Silva Daniela Cassol Peres
Fabiano Silva Michels Débora Cristina Silveira Gerência de Marketing
Fabricio Botelho Espíndola Francine Cardoso da Silva Fabiano Ceretta (Gerente)
Coordenação Cursos Felipe Wronski Henrique Joice de Castro Peres Relacionamento com o Mercado
Coordenadores de UNA Gisele Terezinha Cardoso Ferreira Karla F. Wisniewski Desengrini
Indyanara Ramos Eliza Bianchini Dallanhol Locks
Diva Marília Flemming Maria Aparecida Teixeira
Marciel Evangelista Catâneo Janaina Conceição Mayara de Oliveira Bastos Relacionamento com Polos
Roberto Iunskovski Jorge Luiz Vilhar Malaquias Patrícia de Souza Amorim Presenciais
Juliana Broering Martins Schenon Souza Preto Alex Fabiano Wehrle (Coord.)
Banco de Dados I
Livro didático
Design instrucional
Viviane Bastos
4ª edição
Palhoça
UnisulVirtual
2011
Design Instrucional
Viviane Bastos
Assistente Acadêmico
Roberta de Fatima Martins
Diagramação
Rafael Pessi
Anne Cristyne Pereira (4ª edição)
Revisão
Simone Rejane Martins
Diane Dal Mago (4ª edição)
005.74
M43 Medeiros, Marcelo
Banco de dados I : livro didático / Marcelo Medeiros, Luciano José
Sávio ; revisão e atualização de conteúdo Tatiane dos Santos Leal ; design
instrucional Viviane Bastos. – 4. ed. – Palhoça : UnisulVirtual, 2011.
253 p. : il. ; 28 cm.
Inclui bibliografia.
Apresentação. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Palavras dos professores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Plano de estudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Equipe UnisulVirtual.
Bom estudo!
o livro didático;
o Sistema Tutorial.
Ementa
Origens de um sistema de banco de dados. Características
de um sistema de banco de dados. Modelo de dados. Bancos
de dados relacionais e orientados a objetos. Linguagens de
definição e manipulação de dados. Modelos de entidade/
relacionamento.
Objetivos
Geral:
Propiciar o desenvolvimento e a utilização de sistemas de banco
de dados, por meio dos conceitos fundamentais sobre eles, os
seus sistemas de gerenciamento, formas de modelagem de dados
e as características da linguagem de programação para banco de
dados.
Específicos:
Conhecer os conceitos básicos sobre banco de dados,
origem e a sua forma de funcionamento.
Carga Horária
A carga horária total da disciplina é de 60 horas-aula.
12
Conteúdo programático/objetivos
Veja, a seguir, as unidades que compõem o livro didático desta
disciplina e os seus respectivos objetivos. Estes se referem aos
resultados que você deverá alcançar ao final de uma etapa de
estudo. Os objetivos de cada unidade definem o conjunto de
conhecimentos que você deverá possuir para o desenvolvimento
de habilidades e competências necessárias à sua formação.
Unidades de estudo: 9
13
14
15
Atividades obrigatórias
16
Objetivos de aprendizagem
Compreender a importância dos bancos de dados na
área de tecnologia da informação.
Seções de estudo
Seção 1 Banco de dados e a área de tecnologia da
informação
Unidade 1 19
20
SISTEMAS
Contabilidade Estoque RH
ARQUIVOS DE DADOS
Figura 1.1 – Arquitetura de sistemas de informação
Fonte: Elaboração do Autor.
Unidade 1 21
Unidade 1 23
24
SISTEMAS
Contabilidade Estoque RH
SGBD
BD 1 BD 2 BD 3 BD 4
Unidade 1 25
26
Unidade 1 27
28
Unidade 1 29
Usuário final
Usuário final é a pessoa cujo trabalho requer acessar o banco de
dados para consulta e atualizar os dados; um banco de dados
existe primariamente para seu uso. A maioria dos usuários
finais utiliza programas voltados ao desempenho de suas
funções profissionais, interagindo com tais programas em seu
dia a dia. Nessa classe, pode-se citar caixa bancário, caixa de
supermercado, agente de turismo, vendedores de varejo etc.
Alguns usuários mais sofisticados, como engenheiros e cientistas,
estão mais familiarizados com as facilidades de um SGBD e são
capazes de utilizar ferramentas para elaborar suas consultas.
Síntese
30
Unidade 1 31
Atividades de autoavaliação
Ao final de cada unidade, você realizará atividades de autoavaliação. O
gabarito está disponível no final do livro didático. Esforce-se para resolver
as atividades sem ajuda do gabarito, pois, assim, você estará promovendo
(estimulando) a sua aprendizagem.
32
Saiba mais
33
Objetivos de aprendizagem
Compreender o conceito de banco de dados.
Seções de estudo
Seção 1 Conceitos de banco de dados
36
Unidade 2 37
38
Unidade 2 39
40
Unidade 2 41
42
Unidade 2 43
44
Unidade 2 45
46
Figura 2.4 – Acesso a banco de dados centralizado.
Fonte: Elaboração do autor.
Unidade 2 47
SGBD
48
Usuários Finais
Visão VIsão
Externa Interna
Nível Externo
Esquema Interno
Nível Interno
Unidade 2 49
Independência de dados
A arquitetura lógica em 3 níveis pode ser usada para esclarecer
o conceito de independência de dados, que pode ser definida
como a capacidade de alterar o esquema em um nível sem alterar
o esquema do nível imediatamente superior. Apresentam-se 2
níveis de independência de dados:
50
Minicomputador
ou Mainframe
Terminais Locais
Modem
Terminal
Modem Remoto
Unidade 2 51
Consulta Servidor de
Banco de Dados
Resultado da consulta
pc pc
cabo de Rede
pc
52
Unidade 2 53
54
O acesso aos dados de uma tabela pode O acesso ao arquivo pode ser randômico,
obedecer aos mais variados critérios, sem que seqüencial ou indexado.
novas estruturas precisem ser criadas.
As tabelas são formadas por linhas e colunas. Os arquivos são formados por registros.
Colunas /Campos
Linhas / Registros
Unidade 2 55
Lembre-se de que as
linhas representam o
CodigoAluno Nome Idade Sexo
número de registros
1 Fulano de Tal 35 M
cadastrados na tabela e
as colunas representam
campos que compõem a
estrutura. Alguns campos da tabela, além do tipo de dados e do nome de
identificação, possuem uma propriedade adicional. Esses campos
recebem o nome de chave.
Chaves
O conceito básico para identificar linhas e estabelecer relações
entre linhas de tabelas de um banco de dados relacional é o de
chave.Em um banco de dados relacional há ao menos dois tipos
de chaves a considerar: a chave primária e a estrangeira.
56
Chave primária
A chave primária é a chave que identifica cada registro, dando-lhe
unicidade. Essa chave primária nunca se repetirá dentro da
estrutura da tabela. Ela pode ser formada por um único campo
ou coluna, ou por vários campos.
Assim, duas entidades (de mesmo tipo) não podem ter o mesmo
valor para o atributo chave. Essa não é uma propriedade de uma
extensão particular, mas é uma restrição para todas extensões do
tipo de entidade. Por exemplo, o atributo CodigoAluno do tipo
de entidade Aluno possui um valor diferente para cada entidade
aluno (dois alunos não podem ter o mesmo código).
Quando uma chave é formada por vários campos, diz-se que ela é
uma chave primária composta.
Uma tabela não pode
ter mais de uma chave
Na tabela Alunos, apresentada anteriormente, o campo
primária. Porém, em se
CodigoAluno é uma coluna sujeita a ser uma chave
tratando de uma chave
primária, uma vez que não poderão ser cadastrados
primária composta, ela
vários alunos com o mesmo código. Entretanto, os
terá mais de uma coluna
campos Idade, Nome e Sexo podem ser repetidos
(atributo).
durante o cadastro de alunos, pois podemos ter alunos
com o mesmo nome, idade e sexo, dessa forma, não
podem ser de forma alguma chave primária.
Unidade 2 57
Chave estrangeira
58
Unidade 2 59
60
Unidade 2 61
62
Objeto
Unidade 2 63
Representação do objeto
Em um modelo relacional, cada tabela representa unicamente
a estrutura dos dados que serão armazenados ali e as regras de
integridade, como chaves primárias e estrangeiras.
Os métodos representam
a forma de acesso ao Figura 2.15 – Representação do objeto aluno.
objeto. É pelos métodos Fonte: Elaboração do autor.
que se executa uma
determinada tarefa do
objeto ou se alteram as
Observe que não há mais a representação em forma de tabelas,
suas propriedades. Os com linhas e colunas. O que temos é um único objeto Aluno que
métodos podem ser do tipo possui como propriedades o codigoaluno, o nome, a idade e o sexo.
construtor, recuperador
ou modificador. O objeto Aluno deve conter as regras de uso desse objeto.
As propriedades dele só podem ser alteradas pelos métodos
implementados pelo seu criador. Assim, o objeto Aluno passa a
ter uma estrutura mais complexa, como a seguir:
64
Unidade 2 65
66
Modelo conceitual
O modelo conceitual
pode ser facilmente
Um modelo de dados conceitual é uma descrição encontrado nas referências
do banco de dados que será projetado de forma bibliográficas como
independente da ferramenta computacional de SGBD. modelo de entidade
relacionamento, ou
simplesmente MER.
Esse modelo representa os dados de cada tabela sem se preocupar
com a forma pela qual esses serão registrados no SGBD
utilizado. A estrutura de cada tabela passa a ser referenciada
como entidade, que compõe o esquema de banco de dados,
porém, de forma independente do SGBD a ser utilizado.
Unidade 2 67
1 Fulano de Tal 35 M
Tipo de entidade
Tipo de relacionamento
Atributo
Atributo chave
Atributo multivalorado
Atributo derivado
Atributo composto
E1 R E2 Participação total de E2 em R
E1 R E2 Cardinalidade 1 : N para E1 : E2 em R
(min, max)
68
CódigoAluno
Unidade 2 69
Modelo lógico
70
Síntese
Unidade 2 71
Atividades de autoavaliação
72
Saiba mais
Unidade 2 73
Objetivos de aprendizagem
n Compreender os processos para se projetar um banco
de dados.
n Entender o conceito de modelagem de dados.
Seções de estudo
Seção 1 Projetando um banco de dados
76
Unidade 3 77
78
Unidade 3 79
Tipos de cardinalidade
As cardinalidades classificam-se em mínima e máxima. Veja a
seguir as características de cada uma delas.
Cardinalidade mínima
80
O P1,U3 O P2,U4
O P1,U1 OP5,U2 O P3,U5
Relacionamentos de Países e UFs
■U1 ■U2 UF
■U3 ■U4 ■U5
Unidade 3 81
Perceba que cada país pode ou não estar associado a UF. No caso
do país 4, não está associado a nenhuma UF. Já cada UF deve
obrigatoriamente estar associada a um PAÍS, portanto, não há a
possibilidade de encontrarmos uma UF sem estar atrelada a um
PAÍS.
Cardinalidade máxima
várias UF;
cada UF deve pertencer a um único País.
82
Unidade 3 83
UF
UF CAPITAL
CAPITAL
COD_UF NOME_UF COD_CAP NOME_CAP
COD_UF NOME_UF COD_CAP NOME_CAP
11 SC
SC 11 FLORIANÓPOLIS
FLORIANOPOLIS
22 SP
SP 22 SÃO PAULO
SÃO PAULO
UF
COD_UF NOME_UF NOME_CAP
1 SC FLORIANÓPOLIS
2 SP SÃO PAULO
84
Unidade 3 85
CONTINENTE PAÍS
COD_PAIS NOME_PAIS
COD_CON NOME_CON
1 ALEMANHA
1 EUROPA
2 ITÁLIA
3 FRANÇA
CONTINENTE
COD_CON NOME_COM NOME_PAÍS
Você pode então indagar: mas que problemas isso pode acarretar?
Uma das dificuldades mais óbvias a apresentar se refere à
impossibilidade de se definir, a priori, com grau suficiente de
certeza, quantos países poderão pertencer a um continente, a fim
de que possamos definir qual o número máximo de caracteres
(letras) que precisaremos reservar para registrar os países.
86
Unidade 3 87
UF HABITANTES
1 SC 1 JOAO BIS
2 SP 2 MARIA HOFF
3 TECO TROTSK
UF
UF HABITANTES
HABITANTES
COD_UF NOME_UF
COD_UF(PK) NOME_UFHABIT(FK)
HABIT COD_HAB NOME_HAB
COD_HAB(PK) NOME_HAB UF
UF(FK)
(PK) (FK) (FK) (FK)
1 1 SC
SC 1,21,2 11 JOÃO BIS
JOAO BIS 1 1
2 2 SP
SP 2,32,3 22 MARIA HOFF
MARIA HOFF 1,21,2
33 TECO TROSTSK
TECO TROTSK 2 2
88
Unidade 3 89
90
Síntese
Unidade 3 91
Atividades de autoavaliação
Ao final de cada unidade, você realizará atividades de autoavaliação. O
gabarito está disponível no final do livro didático. Esforce-se para resolver
as atividades sem ajuda do gabarito, pois, assim, você estará promovendo
(estimulando) a sua aprendizagem.
A empresa Pare Aqui deseja implantar um sistema para controle dos seus
clientes. A empresa possui vários pátios de estacionamento na cidade,
porém, o controle é realizado por meio de anotações em caderno, e isso
tem gerado uma perda muito grande de recursos financeiros e até mesmo
de clientes.
A empresa adota as seguintes regras:
92
Saiba mais
Unidade 3 93
94
Objetivos de aprendizagem
Entender os conceitos de software livre e de software de
tecnologia proprietária.
Seções de estudo
Seção 1 O mercado de software livre e de software
proprietário
96
Unidade 4 97
98
Unidade 4 99
A diferença é simples.
100
Padronização
Performance
Unidade 4 101
102
a) MySQL
O aplicativo MySQL é um sistema de gerenciamento de banco Acesso direto em: <http://
de dados relacionais baseado em comandos SQL (Structured www.mysql.com>.
b) PostgreSQL
O aplicativo PostgreSQL é um sistema de gestão de bases de Acesso direto em: <http://
www.postgresql.org>.
dados relacionais, desenvolvido como projeto de software livre.
Sua origem PostgreSQL está de certo modo ligada ao projeto
Ingres, desenvolvido na Universidade de Berkeley, Califórnia.
O líder do projeto, Michael Stonebraker, um dos pioneiros das
bases de dados relacionais, deixou a universidade em 1982 para
comercializar o Ingres, acabando por regressar a Berkeley.
Unidade 4 103
c) InterBase
Acesso direto em: <http:// O aplicativo InterBase é um gerenciador de banco de dados
www.borland.com.br>.
relacionais da Borland, mesmo fabricante das linguagens de
programação Delphi, Borland C++ e Borland Java.
d) SQLite
Acesso direto em: <http://www. O aplicativo SQLite é uma biblioteca em linguagem C que
sqlite.org>.
implementa um banco de dados SQL embutido. Programas que
usam a biblioteca SQLite podem ter acesso a banco de dados
SQL sem executar um processo separado.
104
e) MS SQL Server
Acesso direto em: <http://
www.microsoft.com/
O aplicativo MS SQL Server é um gerenciador de banco de sqlserver>.
dados fabricado pela Microsoft. É um banco de dados muito
robusto e usado em empresas e por grandes sistemas corporativos.
f) Oracle
O aplicativo é um sistema de banco de dados que surgiu no final Acesso direto em:
dos anos 70, quando Larry Ellison vislumbrou uma oportunidade <http://www.oracle.
com.br>.
que outras companhias não haviam percebido, quando encontrou
uma descrição de um protótipo funcional de um banco de
dados relacional e descobriu que nenhuma empresa tinha se
empenhado em comercializar essa tecnologia. Então, Ellison e os
co-fundadores da Oracle Corporation, Bob Miner e Ed Oates,
perceberam que havia um tremendo potencial de negócios no
modelo de banco de dados relacional, tornando-os assim a maior
empresa de software empresarial do mundo.
Unidade 4 105
f) Caché
Acesso direto em: <http:// O banco de dados Caché é considerado um banco de dados pós-
www.intersystems.com.br>. relacional. A sua arquitetura unificada de dados constrói uma
camada de descrição para objetos e tabelas relacionais e tem como
uma das características importantes, permitir uma integração
entre dois mundos: SQL (Relacional) e Objetos.
Veja os motivos.
106
Unidade 4 107
Instalação do MySQL
Unidade 4 109
110
Unidade 4 111
Figura 4.9 – Tela que apresenta o nome do serviço a ser criado no Windows.
Fonte: MYSQL Server 5.1.
112
Unidade 4 113
114
Síntese
Unidade 4 115
Atividades de autoavaliação
116
Saiba mais
Unidade 4 117
Implementação do projeto de
banco de dados
Objetivos de aprendizagem
n Conhecer a origem da linguagem SQL.
Seções de estudo
Seção 1 A estrutura da Linguagem SQL
Sendo assim, nesta unidade, vamos fazer parte deste seleto grupo
de programadores que usam a linguagem SQL para manipulação
e definição de dados. Bom estudo!
120
Unidade 5 121
Sua sintaxe é:
Unidade 5 123
124
Unidade 5 125
126
Unidade 5 127
128
Unidade 5 129
Alter Table Nome_ da_Tabela Operação Nome_ do_ Campo Nova Regra;
Operação Funcionalidade
ADD Adiciona um novo campo.
MODIFY Altera a estrutura de um campo.
130
Quadro 5.3– Estrutura da tabela de alunos após a execução do comando describe alunos.
Fonte: Elaboração do autor.
Unidade 5 131
132
Unidade 5 133
134
Unidade 5 135
136
Note que todos os campos são marcados com Primary Key igual
a SIM, em uma referência à chave primária.
Sua sintaxe é:
Unidade 5 137
Para que esse problema não ocorra, o SGDB não permitirá que
a tabela Alunos seja removida, pois há alguma outra no esquema
que depende dela.
Figura 5.5 – Representação da remoção de uma tabela com campos que são foreign key para outra
tabela.
Fonte: Elaboração do autor.
138
Unidade 5 139
Síntese
Para que uma tabela seja removida, ela não pode ter dados
cadastrados e nem ser uma tabela estrangeira para outra tabela.
140
Atividades de autoavaliação
Ao final de cada unidade, você realizará atividades de autoavaliação. O
gabarito está disponível no final do livro didático. Esforce-se para resolver
as atividades sem ajuda do gabarito, pois, assim, você estará promovendo
(estimulando) a sua aprendizagem.
Nesta atividade você revisará os comandos de definição de dados por
meio da criação de um banco de dados físico, a partir de um modelo
conceitual.
Com base no modelo de dados a seguir, escreva os comandos em SQL que
realizam cada uma das tarefas solicitadas.
LEGENDA
Símbolo Significado
PK Chave Primária
NN Not Null
Chave Primária e
PFK
Chave Estrangeira
FK Chave Estrangeira
Unidade 5 141
142
Unidade 5 143
Saiba mais
JESUS, João Batista de. ANSI: SQL 89/92. São Paulo: Axcel
Books do Brasil Ltda., 2004.
144
Unidade 5 145
a proteção por registros (row locking) e não por tabelas (table locking), como o
faz o MyISAM. Contudo, em várias situações, innoDB é mais lento que MyISAM,
devido ao fato de que innoDB funciona com transações.
Outro ponto interessante são as restrições de chaves estrangeiras (foreign key
constraints) e transações. Esses recursos estão disponíveis apenas no InnoDB.
MyISAM é apropriado para tabelas cujos dados não mudam com frequência. Um
exemplo disso é uma tabela de cidades e estados. Como geralmente este tipo de
tabela é usado apenas como consulta, não há necessidade do uso de InnoDB.
MyISAM tem a vantagem de ser um arquivo simples, se comparado com o
innodb. Mesmo na opção para criar dentro do contexto, o arquivo fica instável
em volumes grandes, perfomace de cache é sempre importante.
O MyISAM foi implementado a partir do código da tabela ISAM., introduzindo
diversas melhorias, como:
os arquivos de tabela são transportáveis entre diferentes sistemas
operacionais;
campos BLOB e TEXT podem ser indexados;
os Arquivos índices e de dados podem ser armazenados em dispositivos
diferentes (aumento de performance);
algoritmos de distribuição de dados e gerenciamento de índices
melhorados.
Com relação ao InnoDB, pode-se afirmar que:
rodam sob um engine, desenvolvido pelo Innobase, que acrescenta ao
mysql o suporte a transações e a constraints de chave estrangeira;
para obter o máximo de performance com tabelas innoDB, é necessário
configurar o arquivo my.conf (ou my.ini no Windows), de acordo com as
características de hardware do servidor onde o mysql está rodando. Os
Detalhes dessa configuração podem ser obtidos no manual do InnoDB.
• para a versão do MySQL, que estamos utilizando esta configuração, já
vem na instalação padrão.
A vantagem da utilização de tipos de tabela é que você poderá optar por utilizar
um determinado tipo ou outro, dependendo dos requisitos exigidos pela sua
aplicação. Por exemplo, se a sua aplicação é apenas de consulta, você pode
optar pelo tipo MyISAM, em vez do InnoDB, com isso você evita o overhead da
transação, obtendo um maior desempenho. É importante lembrar que você
poderá utilizar vários tipos de tabelas em um mesmo banco de dados. Nesse caso,
deve-se tomar cuidado com a utilização de determinados recursos, por exemplo,
se você tiver uma transação envolvendo tabelas InnoDB e MyISAM e submeter um
comando ROLLBACK, apenas os comandos executados no InnoDB serão desfeitos,
enquanto que os executados no MyISAM persistirão. A utilização do tipo de tabela
correto é um fator chave para determinar o desempenho da sua aplicação.
Fonte: Adaptado de: DUARTE, Eber M. Trabalhando com os vários tipos de tabelas do MySQL. Publicado em: 08
nov 2006. Disponível em: <http://www.criarweb.com/artigos/674.php>. Acesso em: 28 fev 2011.
146
Objetivos de aprendizagem
n Compreender a importância das ferramentas Case.
Seções de estudo
Seção 1 Ferramentas Case
148
Unidade 6 149
150
Pré-requisito Avaliação
Unidade 6 151
152
Figura 6.4 - Representação da chave primária da tabela Alunos no Toad Data Modeler.
Fonte: Elaboração do autor.
Unidade 6 153
154
a criação de tabelas;
a definição dos nomes de campos e seus respectivos tipos;
a definição das chaves primárias e estrangeiras.
A seguir, tem-se a geração do script para criação das tabelas
Alunos, Cursos e Matriculas, representadas graficamente nas
figuras anteriores.
3
Figura 6.7 - Script SQL gerado pelo Toad Data Modeler.
Fonte: MySQL Toad Data Modeler.
Unidade 6 155
Principais características:
156
Unidade 6 157
2 Dê um duplo clique
na entidade, para inserir
os atributos
1
Figura 6.10 - Interface de definição dos campos da tabela Alunos no MySQL Workbench.
Fonte: MySQL Workbench.
160
Unidade 6 161
Síntese
162
Atividades de autoavaliação
Ao final de cada unidade, você realizará atividades de autoavaliação. O
gabarito está disponível no final do livro didático. Esforce-se para resolver
as atividades sem ajuda do gabarito, pois, assim, você estará promovendo
(estimulando) a sua aprendizagem.
A empresa Pare Aqui deseja implantar um sistema para controle dos seus
clientes. Ela possui vários pátios de estacionamento na cidade, porém, o
controle é realizado por meio de anotações em caderno, e isso tem gerado
uma perda muito grande de recursos financeiros e até mesmo de clientes.
A empresa adota as seguintes regras:
Unidade 6 163
164
Saiba mais
Unidade 6 165
Objetivos de aprendizagem
n Identificar os comandos de manipulação de dados (DML).
Seções de estudo
Seção 1 A estrutura dos comandos de manipulação
de dados
Bons estudos!
168
Unidade 7 169
Produto
Codigo_Produto Integer NN (PK)
Descricao_Produto Varchar(30) NN
Preco_Produto Float NN
170
Unidade 7 171
Continuando as inserções:
172
Unidade 7 173
Agora que você já sabe como inserir dados em uma tabela, que
tal você aprender a alterar as informações cadastradas? Esse será
seu próximo aprendizado, está preparado?
174
Operador Função
= Igual
<> Diferente
> Maior
< Menor
>= Maior ou Igual
<= Menor ou Igual
AND E lógico – Verdadeiro quando todas as condições são verdadeiras.
OR OU lógico – Verdadeiro quando pelo menos uma Condição é verdadeira.
Não – Inverte o valor. Se for verdadeiro, troca para falso, se é falso troca para
NOT verdadeiro.
Unidade 7 175
ou
ou
176
Unidade 7 177
Por outro lado, a tabela não pode ficar com esses campos nulos
(vazios), pois são do tipo not null.
178
Veja:
Nome Upper(Nome)
fulano FULANO
Fulano FULANO
FULANO FULANO
fulaNO FULANO
Unidade 7 179
Lower (coluna);
Síntese
180
Insert into Tabela values (v1,v2,...,vn); Insert into Tabela (c1,c2,..cn) values (v1,v2,…,vn);
Update Tabela set Campo1 = Valor 1 where Condição; Update Tabela set Campo1 = Valor 1;
Unidade 7 181
Atividades de autoavaliação
Produto
Codigo_Produto Integer NN (PK)
Descricao_Produto Varchar(30) NN
Preco_Produto Float NN
A1.
182
A2.
A3.
A4.
Unidade 7 183
Saiba mais
JESUS, João Batista de. ANSI: SQL 89/92. São Paulo: Axcel
Books do Brasil Ltda., 2004.
Recuperação de informações do
banco de dados
Objetivos de aprendizagem
n Selecionar dados em SQL usando a DML.
Seções de estudo
Seção 1 A Estrutura do Comando Select
186
Produto
Codigo_Produto Integer NN (PK)
Descricao_Produto Varchar(30) NN
Preco_Produto Float NN
Unidade 8 187
188
Select Coluna1,Coluna2,...,ColunaN
From Nome_Tabela [ ou tabelas ]
Where condição
Group By expressão
Having condição
Order By expressão;
a) Colunas do Select
A expressão coluna1,coluna2...colunaN representa as colunas
que devem ser listadas pelo comando Select. Caso você deseje
selecionar todos os campos, pode simplesmente colocar um
asterisco no lugar do nome das colunas.
Unidade 8 189
... ...
... ...
b) A cláusula From
Esta cláusula especifica uma ou mais tabelas de origem para o
Select. Se múltiplas tabelas de origem forem especificadas, o
resultado será, conceitualmente, o conjunto das linhas de todas as
tabelas envolvidas na seleção, que se chama produto cartesiano.
190
c) A cláusula Where
Esta cláusula é responsável por restringir quais as linhas das
tabelas serão apresentadas. A cláusula Where possui a forma
geral:
Where expressão_booleana;
A expressão booleana
pode ser qualquer
expressão que retorne um
Só para fixar, os operadores lógicos são: valor booleano (verdadeiro
ou falso).
Unidade 8 191
Resultado:
192
Resultado:
Codigo_Produto Descricao_Produto
1 Banana
4 Pêra
Resultado:
Unidade 8 193
Resultado:
Resultado:
Descricao_Produto Preco_Produto
Banana 1.00
Maçã 2.80
Uva 3.25
Pêra 1.00
Maracujá 2.00
Mamão 2.55
Goiaba 2.00
Laranja 3.25
Limão 0.85
Melancia 2.55
194
Para isso, será necessário que você conheça mais duas cláusulas
do comando Select, as cláusulas Order By e Group By.
a) A cláusula Order By
A cláusula Order By serve para ordenar os dados que serão
listados. A ordem de apresentação pode ser crescente (ASC) ou
decrescente (DESC).
A sintaxe do comando é:
Unidade 8 195
Resultado:
196
Resultado:
Codigo_Produto Descricao_Produto
1 Banana
7 Goiaba
9 Limão
2 Maçã
6 Mamão
5 Maracujá
10 Melancia
4 Pêra
Quadro 8.9 – Tabela Produtos.
Fonte: Elaboração do autor.
Listar os Produtos com código inferior a 5 e ordenados
crescentemente por Preço:
Resultado:
Codigo_Produto Descricao_Produto Preco_Produto
1 Banana 1.00
4 Pêra 1.00
2 Maçã 2.80
3 Uva 3.25
Quadro 8.10 – Tabela Produtos
Fonte: Elaboração do autor.
Unidade 8 197
Resultado:
b) A cláusula Group By
A cláusula Group By condensa, em uma única linha, todas as
linhas selecionadas que compartilham os mesmos valores para as
colunas agrupadas.
A sintaxe do comando é:
198
Resultado:
Codigo_Regiao Nome_Regiao
1 Sul
2 Norte
3 Centro-oeste
4 Nordeste
Quadro 8.12 – Tabela Produtos
Fonte: Elaboração do autor.
Resultado:
Codigo_Produtor Nome_Produtor
1 Produtor 001
2 Produtor 002
3 Produtor 003
Quadro 8.13 – Tabela Produtos
Fonte: Elaboração do autor.
Unidade 8 199
Resultado:
Resultado:
200
Codigo_Produtor Codigo_Regiao
1 1
2 2
3 3
2 4
Quadro 8.16 – Tabela Produtos
Fonte: Elaboração do autor.
Resultado:
Descricao_Produto Codigo_Produtor
Produto A 1
Produto B 2
Produto D 3
Quadro 8.17 – Tabela Produtos
Fonte: Elaboração do autor.
Unidade 8 201
Função_de_Agregação (Coluna)
select
max(preco_produto) as maior,
min(preco_produto) as menor,
avg(preco_produto) as media,
count(codigo_produto)as Qtde,
sum(preco_produto) as somatório
from produtos;
Resultado:
202
Preço
1.44
1.45
1.55
1.59
1.99
2.99
Unidade 8 203
Select descricao_produto
From produtos
Where preco_produto = max(preco_produto);
Select descricao_produto
From produtos
Where preco_produto = (Select max(preco_produto ) from produtos);
204
Para produzir uma linha de saída para cada região, significa que
cada resultado da agregação é calculado sobre as linhas da tabela,
correspondendo a uma região. Essas linhas agrupadas podem ser
filtradas utilizando a cláusula Having.
Unidade 8 205
ORDEM CLÁUSULA
6 Select
1 From
2 Where
3 Group by
4 Having
5 Order By
206
Select Descricao_Produto
From Produtos
Where Descricao_Produto LIKE ‘S%’;
Síntese
Unidade 8 207
Select Coluna
from Tabela
where Coluna Like “n%”;
208
Atividades de autoavaliação
Unidade 8 209
210
Saiba mais
JESUS, João Batista de. ANSI: SQL 89/92. São Paulo: Axcel
Books do Brasil Ltda., 2004.
Unidade 8 211
Recuperação de informações
por meio de tabelas
Objetivos de aprendizagem
Selecionar dados em SQL usando mais de uma tabela
como referência.
Seções de estudo
Seção 1 O que é uma junção
Seção 2 Junções de produto cartesiano
Seção 3 Junções internas
214
Unidade 9 215
Figura 9.2 – Junção com a união dos dados das duas tabelas
Fonte: Elaboração do autor.
Figura 9.3 – Junção que retorna os dados que estão na tabela A, mas não estão na tabela B
Fonte: Elaboração do autor.
216
Unidade 9 217
218
Figura 9.4 – Modelo de dados para o exemplo de junção por produto cartesiano
Fonte: Elaboração do autor.
Unidade 9 219
220
Unidade 9 221
2 Florianopolis 3
3 Buenos Aires 4
4 La Plata 4
5 Los Angeles 6
6 San Francisco 6
222
Unidade 9 223
Select Cidade.Codigo_Cidade,Cidade.Nome_Cidade,SubRegiao.Nome_SubRegiao
From Cidade,SubRegiao
Where Cidade.Codigo_SubRegiao = SubRegiao.Codigo_SubRegiao;
Select SubRegiao.Nome_SubRegiao
From Cidade, SubRegiao
Where Upper(Cidade.Nome_Cidade) = ‘FLORIANOPOLIS’ AND
Cidade.Codigo_SubRegiao = SubRegiao.Codigo_SubRegiao;
224
Unidade 9 225
Select SubRegiao.Nome_SubRegiao
From SubRegiao, Pais
Where Upper(Pais.Nome_Pais) = ‘BRASIL’ AND
Pais.Codigo_Pais = SubRegiao.Codigo_Pais;
O resultado do comando será:
226
Na próxima seção, você verá como criar junções sem usar a chave
estrangeira diretamente.
Unidade 9 227
SELECT *
FROM Cidade
INNER JOIN SubRegiao
ON Cidade.Codigo_SubRegiao = SubRegiao.Codigo_SubRegiao;
Figura 9.12 – Resultado de uma junção interna entre as tabelas de Cidade e SubRegiao
Fonte: Elaboração do autor.
Select SubRegiao.Nome_SubRegiao,Pais.Nome_Pais
From SubRegiao
INNER JOIN Pais
ON SubRegiao.Codigo_Pais = Pais.Codigo_Pais;
228
Figura 9.13 – Resultado de uma junção interna entre as tabelas de SubRegiao e Pais.
Fonte: Elaboração do autor.
Unidade 9 229
SELECT *
FROM SubRegiao
LEFT OUTER JOIN Cidade
ON Cidade.Codigo_SubRegiao = SubRegiao.Codigo_SubRegiao;
Figura 9.14 – Resultado de um left outer joiner entre as tabelas SubRegiao e Cidade.
Fonte: Elaboração do autor.
230
SELECT *
FROM SubRegiao
RIGHT OUTER JOIN Pais
ON Pais.Codigo_Pais = SubRegiao.Codigo_Pais;
Figura 9.15 – Resultado de um right outer joiner entre as tabelas SubRegiao e Pais
Unidade 9 231
Síntese
232
Atividades de autoavaliação
Ao final de cada unidade, você realizará atividades de autoavaliação. O
gabarito está disponível no final do livro didático. Esforce-se para resolver
as atividades sem ajuda do gabarito, pois, assim, você estará promovendo
(estimulando) a sua aprendizagem.
Com o modelo de dados abaixo, escreva os comandos em SQL que
resultam na seleção solicitada.
Unidade 9 233
234
Saiba mais
Unidade 9 235
236
240
242
Unidade 1
1) Os elementos formadores da área de infraestrutura fazem
parte das funções críticas. Dentre esses elementos estão
as áreas de redes de computadores, telecomunicações e
também a área de banco de dados, uma vez que o Sistema
Gerenciador de Banco de Dados (SGBD) é quem provê o
acesso às informações numa organização. Desta forma,
qualquer problema envolvendo algum elemento da área de
infraestrutura pode causar uma paralisação das atividades
de grande parte da empresa, inviabilizando o trabalho de
muitas pessoas.
2) As responsabilidades são:
Programador:
Promover a documentação dos projetos, segundo
metodologia estabelecida;
Monitorar a fase de testes das aplicações desenvolvidas;
Promover manutenção e desenvolvimento dos sistemas;
Analista de sistemas:
Tem a função de fazer o mapeamento das funcionalidades
do sistema;
A modelagem do modelo de dados que garanta o
atendimento dessas funcionalidades;
Participar do planejamento e projeto de sistemas;
Especificar as etapas de Estudo Preliminares e Análise de
Requisitos em conjunto com os clientes;
Elaborar o Projeto de Soluções;
Usuário final
Cadastrar dados;
Atualizar dados;
Consultar dados;
Respeitar as regras de segurança de acesso aos dados imposta na
empresa.
244
Unidade 2
1) Independente de ser relacional ou orientado a objetos, a ferramenta
computacional deve ser avaliada com base no problema que será
solucionado. Nem sempre o menor preço significa custos menores.
É importante que a ferramenta possua um bom grupo de usuários
no mercado de trabalho, para que seja gerada uma boa base de
conhecimento, para troca de informações e soluções já implementadas.
Além disso, é importante que a ferramenta tenha suporte ao usuário
e referências bibliográficas de fácil acesso. Outra característica
fundamental é a atualização da ferramenta, que deve acompanhar
a evolução da área da informática, podendo apresentar novas
metodologias e tecnologias de gerenciamento da informação.
Tecnicamente, é essencial que a ferramenta garanta a integridade dos
dados e a fidelidade dos dados. Sem nunca esquecer que a melhor
solução não é aquela que a ferramenta disponibiliza, mas aquela que o
usuário deseja.
2) Não. A ferramenta computacional é um auxílio às atividades do
especialista em banco de dados. A tarefa de analisar e modelar uma
solução que atenda às necessidades do usuário final é do especialista.
Se a tarefa de análise e definição das tabelas for realizada de forma
equivocada, a ferramenta implementará a solução da forma proposta
pelo especialista, ou seja, também de forma equivocada.
A garantia de atendimento às necessidades do usuário está diretamente
relacionada ao processo de definição e criação do banco de dados, e
essa tarefa é realizada pelo estudo e conhecimento do especialista.
Cabe ao especialista saber utilizar de forma correta as funcionalidades
que a ferramenta computacional lhe disponibiliza.
245
Unidade 3
1)
2) CPF.
3) Placa.
4) Chaves primárias: CPF e Placa.
Chaves estrangeiras:
CPF fazendo referência ao CPF na tabela de Clientes.
Placa fazendo referência à Placa na tabela de Veículos.
Unidade 4
1) Um banco de dados relacional tem sua estrutura de funcionamento
baseada em tabelas relacionais, que implementam as regras por
meio de chaves primárias e chaves estrangeiras. Um banco de dados
orientado a objeto tem sua estrutura de funcionamento baseada nas
regras de definição da classe. As classes representam o esqueleto do
objeto, no qual se define as propriedades e formas de acesso ao objeto.
2) A escolha da ferramenta, se proprietária ou de uso livre, deve se
adequar à necessidade da empresa, ou do usuário final. A avaliação
apenas pelo requisito preço pode levar a escolhas precipitadas.
A ferramenta de uso livre deve ter, além da gratuidade, suporte,
manuais, garantia de funcionamento e acompanhamento das
atualizações de mercado. O mais importante é avaliar se a ferramenta,
independentemente de custo, atende às necessidades do usuário.
246
Unidade 5
1)
Create Table Produto (
Codigo_Produto Integer,
Descricao_Produto Varchar(30) not null,
Preco_Produto float not null,
Primary key(Codigo_Produto)
);
2)
3)
4)
247
5)
6)
7)
8)
Desc Produto;
ou
Describe Produto;
9)
Desc Nota_Fiscal;
ou
Describe Nota_Fiscal;
10)
248
Unidade 6
1)
Unidade 7
1)
a1) Insert into Produto values (100, ’Caneta Azul’, 1.00);
a2) Insert into Produto values (200, ’Borracha’, 0.80);
a3) Insert into Produto values (300, ’Caderno de Desenho’, 2.20);
a4) Insert into Produto values (400,’Régua’,0.25);
b)
b1) Update Produto set Preco_Produto = 2.50
Where Descricao_Produto = “Caneta Azul”;
b2) Update Produto set Codigo_Produto = 400
Where Descricao_Produto=”Régua”;
b3) Update Produto set Descricao_Produto = “Caderno 12 Matérias”
Where Descricao_Produto = “Caderno de Desenho”;
c1) Delete from Produtos where Preco_Produto < 1.00;
c2) Delete from Produtos where Codigo_Produto = 100;
c3) Delete from Produtos;
249
Unidade 8
1)
a) Select * from Alunos where Upper(Sexo) = ‘M’;
b) Select * from Alunos where Upper(Nome) like ‘%MEDEIROS’
Order by Idade;
c) Select AVG (Idade) as Media from Alunos;
d) Select Max (Idade) from Alunos;
e) Select Count(Codigo) from Alunos
where Idade < 20;
f) Select Nome, Codigo from alunos
where Upper(Nome)=Upper(‘Lucas Giaretta’);
g) Select Nome from Alunos
where Idade = (Select Min(Idade) from Alunos);
h) Select Count(Codigo) from Alunos
where (Idade < 10 and Idade <=20) and (Upper(Sexo)=’M’);
i) Select Count(Codigo) from Alunos
where Upper(Sexo)=’F’);
Unidade 9
1)
Select Professor.Nome_Professor,Curso.Descricao_Curso,Local.Nome_
Local
From Professor,Curso,Local
Where Professor.Codigo_Curso = Curso.Codigo_Curso AND
Curso.Codigo_Local = Local.Codigo_Local;
2)
Select Curso.Descricao_Curso
From Curso, Local
250
3)
Select Professor.Nome_Professor, Professor.Titulacao_Professor
From Professor, Curso
Where Upper(Curso.Descricao_Curso)=’BANCO DE DADOS I’ AND
Curso.Codigo_Curso = Professor.Codigo_Curso;
4)
Select Local.Nome_Local, Local.Cidade_Local, Local.UF_Local
From Curso, Local
Where Curso.Vagas_Curso > 0 AND
Curso.Codigo_Local = Local.Codigo_Local;
5)
Select *
From Curso
INNER JOIN Local
ON Curso.Codigo_Local = Local.Codigo_Local;
6)
Select *
From Professor
INNER JOIN Curso
ON Professor.Codigo_Curso = Curso.Codigo_Curso;
7)
Select *
From Curso
251
8)
Select *
From Professor
RIGHT OUTER JOIN Curso
ON Professor.Codigo_Curso = Curso.Codigo_Curso;
252