Вы находитесь на странице: 1из 28

Projeto de Banco de Dados em MySQL:

Estudo de caso de um Catálogo de CDs

Prof. Me. Luiz Aurélio Batista Neto


Faculdade Pitágoras de São Luís
28/10/2016
SUMÁRIO

1. Estudo de Caso - Catálogo de CDs .......................................................................... 3


1.1. Cenário............................................................................................................... 3
2. Modelagem Conceitual ............................................................................................. 4
3. Modelagem Lógica.................................................................................................... 5
4. Dicionário de Dados .................................................................................................. 7
5. Normalização de Dados ............................................................................................ 9
6. Modelagem Física................................................................................................... 12
6.1. Criação do Banco de Dados ............................................................................. 12
6.2. Criação das Tabelas......................................................................................... 12
6.3. Dados da tabela GRAVADORA ........................................................................ 12
6.4. Dados da tabela CD ......................................................................................... 13
6.5. Dados da tabela MUSICA ................................................................................ 14
6.6. Dados da tabela AUTOR .................................................................................. 17
6.7. Dados da tabela FAIXA .................................................................................... 19
6.8. Dados da tabela MUSICA_AUTOR .................................................................. 22
7. Exercícios de Aplicações Práticas de Comandos SQL ........................................... 25
1. Estudo de Caso - Catálogo de CDs

O enunciado deste trabalho foi adaptado de um livro de Celso Henrique


Poderoso de Oliveira - SQL Curso Prático sobre Modelagem de Banco de
Dados.

1.1. Cenário

Seu cliente é uma LOJA VIRTUAL DE CDs, a LOJASOM, uma


empresa que, apesar de ter uma atividade intensa com diversos clientes, não
possui sistema que inclua um Catalogo, que facilite a interação de clientes ou
ainda controle de suas atividades.
Sendo de extrema importância os controles administrativos e
operacionais para permanência da empresa no mercado e futuro crescimento,
a loja virtual de cds LOJASOM encontra-se impossibilitada de atingir uma
solidez perante um mercado altamente concorrido.
Em entrevista com o gerente dessa empresa, foi possível coletar os
seguintes dados, que se apresentam como requisitos básicos para
implementação do banco de dados deste trabalho.
 Cada CD pode indicar um único CD.
 Cada CD pode ser indicado por um ou mais CDs.
 Cada CD deve ser gravado por uma única GRAVADORA.
 CD - nome do cd, preço de venda e data de lançamento.
 Cada GRAVADORA pode ter gravado um ou mais CDs.
 GRAVADORA - nome da gravadora, endereço, telefone, contato e url
 Cada CD deve conter uma ou mais MUSICAs.
 Cada MUSICA pode estar gravada em um ou mais CDs.
 MUSICA - nome da música, tempo em que a música toca e faixa.
 Cada MUSICA pode ser escrita por um ou mais AUTORes.
 Cada AUTOR pode ter escrito uma ou mais MUSICAS.
 AUTOR - nome do autor.

Com base nos requisitos citados, podemos avançar no


desenvolvimento da primeira etapa de um projeto de banco de dados - a
Modelagem Conceitual.
2. Modelagem Conceitual

A etapa de modelagem conceitual consiste em descrever formalmente


o primeiro modelo de dados, chamado de Modelo Entidade-Relacionamento.
Este modelo descreve a estrutura de um banco de dados independente de
SGBD particular.
A técnica mais difundida de modelagem conceitual é a criação do
Diagrama Entidade-Relacionamento (DER). Este diagrama representa
graficamente: entidades (retângulo), atributos (círculos), relacionamentos
(losangos), ligações (linhas) entre entidades e relacionamentos, e
cardinalidades. Lendo atentamente o estudo de caso proposto, chegamos ao
Diagrama Entidade-Relacionamento visto na Figura 1, que em seguida é
discutido.

Figura 1: DER "Catálogo de CDs" feito por meio da ferramenta BrModelo

 CD: indica um único cd mas pode ser indicado por vários cds (1...n).
E, é produzido por uma única GRAVADORA enquanto esta detém a
possibilidade de gravar um ou mais cds (cardinalidade 1...n);

 AUTOR: escreve uma ou mais MUSICAS, que por sua vez pode ser
composta por um ou mais autores (cardinalidade m...n).

 MUSICA: pode estar gravada em um ou mais CDs, enquanto CD
deve conter uma ou mais músicas (cardinalidade m...n).
3. Modelagem Lógica

A etapa de modelagem lógica, conforme Heuser, consiste em definir


um modelo lógico que é uma descrição de um banco de dados no nível de
abstração visto pelo usuário do SGBD. Assim, o modelo lógico é dependente
do tipo particular de SGBD que está sendo usado. E objetiva transformar o
modelo conceitual obtido na primeira etapa em um modelo lógico.
No modelo lógico, usamos a abordagem Relacional para expressar o
Diagrama Entidade-Relacionamento construído na etapa anterior. Segundo
Carlos Alberto Heuser no Livro de Projeto de Banco de Dados, um banco de
dados relacional é composto de tabelas ou relações.
A modelagem lógica consta da transformação de um modelo ER em
um modelo lógico, que implementa, a nível de SGBD relacional, os dados
representados abstratamente no modelo ER. Esse mapeamento entre modelos
se baseia em regras que visam à implementação mais eficiente do banco de
dados. A Figura 2 mostra o modelo Relacional derivado do modelo ER visto na
Figura 1, e explicamos logo as regras adotadas para gerar esse novo modelo.

Figura 2: Modelo Relacional "Catálogo de CDs" feito por meio do MySQL Workbenck
Para entendermos o processo de transformação do modelo ER da
Figura 1 para o modelo Relacional da Figura 2, precisamos conhecer as
principais regras analisadas a seguir.
Basicamente, cada entidade é traduzida para uma tabela. Neste
processo, cada atributo da entidade define uma coluna desta tabela. Os
atributos identificadores da entidade correspondem às colunas que compõem a
chave primária da tabela. Analogamente, observamos, então, por exemplo que
a entidade CD se tornou uma tabela, e seus atributos foram mapeados como
colunas.
Além dessa regra, Heuser afirma que há três possibilidades de
conversão em se tratando de relacionamento binários entre entidades. A
primeira é a fusão de tabelas, ou seja, a união de todos os atributos de duas
entidades em uma única tabela, formando suas colunas; esta regra se aplica a
relacionamentos de cardinalidade um para um. Conforme visto, não aplicamos
esta regra, porque não houve ocorrência deste tipo de cardinalidade.
A segunda se refere aos relacionamentos de cardinalidade de um para
muitos. A regra definida para este caso é que há uma adição de coluna na
tabela que expressa cardinalidade maior (n). Observamos isto, por exemplo, no
relacionamento entre as tabelas CD e GRAVADORA, conforme analisamos,
uma GRAVADORA pode produzir vários CDs e um CD só pode ser gravado
por uma GRAVADORA, verificamos na Figura 2 que a chave primária de
GRAVADORA (idgrav), que possui a menor cardinalidade (1) se apresentou
como nova coluna na tabela CD como chave estrangeira. Essa mesma regra
se aplicou também ao autorrelacionamento um para muitos da tabela CD por
meio da chave estrangeira "idcdind" referente à chave primária "idcd".
A terceira possibilidade de tradução se aplica aos relacionamentos de
muitos para muitos. Neste caso, ou seja, quando duas entidades possuem uma
relação de muitos para muitos, durante a transformação ocorre a adição de
uma tabela intermediária que conterá as chaves primárias das duas tabelas
que se relacionam. Esta regra se reflete em dois casos: o relacionamento entre
CD e MUSICA provendo a implementação da tabela FAIXA e entre MUSICA e
AUTOR, gerando a nova tabela MUSICA_AUTOR.
Após essa fase, convém que documentemos textualmente os modelos
criados, a seguir explicamos como isso deve ser feito.
4. Dicionário de Dados

Junto ao modelo de entidade e relacionamento, precisamos


documentar a descrição de todos os objetos implementados no banco de
dados. O documento é o dicionário de dados que permite que analistas e
programadores extraiam informações sobre todos os objetos do modelo de
forma textual, contendo detalhes por vezes difíceis de exibir no diagrama.
A seguir apresentamos o dicionário de dados básico de nosso estudo
de caso - catálogo de CDs.

GRAVADORA

Chave Nome Classe TipoDeDados NN1 UQ2 BIN3 UN4 ZF5 AI6 Observação
PK7 idgrav Determinante Int   
nomegrav Simples Varchar(45) 
endereco Composto Varchar(45)
fone Multivalorado Varchar(15)
url Simples Varchar(45)
contato Simples Varchar(45)

CD
Chave Nome Classe TipoDeDados NN UQ BIN UN ZF AI Observação
PK idcd Determinante Int   

FK8 idcdind Simples Int  Ref. a idcd


FK idgrav Simples Int  Ref. a idgrav

nomecd Simples Varchar(45) 


preco Simples Decimal(14,2)
datalanc Simples Date

1
NN: NOT NULL - campo não nulo ou obrigatório digitação
2
UQ: UNIQUE - campo único, evita repetição de valor
3
BIN: BINARY - contém cadeias binárias em vez de strings
4
UN: UNSIGNED - não permite números negativos
5
ZF: ZEROFILL - preenche espaços vazios da coluna com o número zero. Por exemplo, uma coluna que
é declarada como int(4) com a opção zerofill, o valor “5” é recuperado como “0005”
6
AI: AUTO_INCREMENT - incrementa sequencialmente um valor inteiro de um atributo. Ex: id = 1, 2, 3...
7
PK: PRIMARY KEY - é a chave primária obrigatória existência em todas as tabelas do modelo Relacional
8
FK: FOREING KEY - é a chave estrangeira proveniente de outra tabela com quem tem relacionamento
MUSICA
Chave Nome Classe TipoDeDados NN UQ BIN UN ZF AI Observação
PK idmus Determinante Int   

nomemus Simples Varchar(45) 


tempo Simples Decimal(6,2)

FAIXA
Chave Nome Classe TipoDeDados NN UQ BIN UN ZF AI Observação
FK idcd Determinante Int 
FK idmus Determinante Int 
tempo Simples Decimal(6,2)

AUTOR
Chave Nome Classe TipoDeDados NN UQ BIN UN ZF AI Observação
PK idautor Determinante Int   

nomeautor Simples Varchar(45)  

MUSICA_AUTOR
Chave Nome Classe TipoDeDados NN UQ BIN UN ZF AI Observação
FK idmus Determinante Int 
FK idautor Determinante Int 

Obtido o esquema relacional correspondente ao documento, passa-se


ao processo de normalização visto na Seção 5 a seguir, cujo objetivo é refinar
ainda mais o modelo de dados, eliminando possíveis inconsistências do
modelo relacional e favorecendo qualidade da informação do banco de dados.
A normalização é a base teórica para o processo de engenharia reversa, que
consiste na transformação de modelos, por exemplo, transformação do modelo
relacional para o modelo entidade-relacionamento e vice-versa.
5. Normalização de Dados

Segundo Heuser, uma forma normal (FN) é uma regra que deve ser
obedecida por uma tabela para que esta seja considerada “bem projetada”. As
principais formas normais são denominadas primeira, segunda, terceira e
quarta forma normal, abreviadamente 1FN, 2FN, 3FN e 4FN.
De acordo com Celso Henrique de Oliveira no livro SQL Curso Prático,
um modelo de dados estável pode ser garantido quando atingimos a terceira
forma normal (3FN). A normalização de tabelas tem como objetivo diminuição
ou a eliminação de redundâncias no banco de dados, que em geral, se alcança
com a criação de novas tabelas.
Uma tabela se encontra na primeira forma normal (1FN) quando só
possui atributos monovalorados e não apresentar tabelas aninhadas. Para
deixar nesta forma normal, é preciso identificar a chave primária da tabela,
identificar a(s) coluna(s) que tem(êm) dados repetidos e removê-la(s), criar
uma nova tabela com a chave primária para armazenar o dado repetido e, por
fim, criar uma relação entre a tabela principal e a tabela secundária.
Na segunda forma normal (2FN), quando a tabela se encontra na 1FN
e não possui dependências parciais, ou seja, todos os atributos não chaves da
tabela devem depender unicamente da chave primária. Para deixar nesta forma
normal, é preciso identificar as colunas que não são funcionalmente
dependentes da chave primária da tabela e, em seguida, remover essa coluna
da tabela principal e criar uma nova tabela com esses dados.
E, por fim, uma tabela se encontra na 3FN quando se encontra na 2FN
e por não possuírem dependências transitivas, ou seja, os atributos não chave
de uma tabela devem ser mutuamente independentes. Para atingir essa forma
normal, é preciso identificar as colunas que são funcionalmente dependentes
das outras colunas não chave e extraí-las para outra tabela.
Compreendidas essas regras, agora podemos analisar as tabelas de
nosso modelo.
Analisemos as tabelas a seguir:

GRAVADORA

Conforme podemos observar, a tabela GRAVADORA (idgrav,


nomegrav, endereco, fone, url, contato) NÃO se encontra na 1FN, pois
apresenta um atributo COMPOSTO que é o "endereco" e um atributo
MULTIVALORADO que é o "fone". Se adicionarmos os atributos de endereço
na tabela GRAVADORA como "rua, numero e cidade" e de fone como "fcasa"
(fone de casa) e "cel" (celular), perceberíamos que a tabela GRAVADORA teria
duas tabelas aninhadas. A seguir temos normalizada na 1FN a tabela
GRAVADORA, constando apenas de atributos são monovalorados.
GRAVADORA(idgrav,nomegrav,rua,numero,cep,cidade,fcasa,cel,url,contato)

CD

Observamos que a tabela CD se encontra na 1FN, pois só possui


atributos monovalorados, e também está na 2FN, uma vez que os atributos não
chave (nomecd, preco e datalanc) são dependentes exclusivamente do idcd,
que é a chave primária desta tabela. Verificamos, ainda, que esta tabela está
na 3FN, já que seus atributos não chave são independentes entre si, isto é,
"nomecd" independe de "preco", que por sua vez independe "datalanc".

MUSICA

Analisando da mesma forma que a tabela anterior, observamos que a


tabela MUSICA se encontra na 1FN, 2FN e 3FN.
AUTOR

Verificamos também que a tabela AUTOR se encontra na 1, 2 e 3FN.

FAIXA

Constamos ainda que a tabela FAIXA está na 1, 2 e 3FN.

MUSICA_AUTOR

E, vemos ainda que a tabela MUSICA_AUTOR está na 1, 2 e 3FN.

Como falamos, as formas normais objetivam a redução ou eliminação


de redundâncias no banco de dados, tornando os dados de cada tabela mais
uniformes possíveis. Entretanto, há situações em que a normalização pode
causar uma queda no desempenho do banco de dados, porque a normalização
gera novas tabelas, consequentemente outros arquivos que serão acessados
em discos.
Um cenário disso é quando realizamos uma consulta dependente de
muitas tabelas, isto implica que haverá também maior processamento,
portanto, aumentando o tempo de resposta dessa consulta. Por isso, às vezes
administradores de banco de dados decidem desnormalizar tabelas para
alcançar um melhor desempenho do banco de dados. Em nosso modelo de
dados, para fins didáticos, preferimos deixar desnormalizada a tabela
GRAVADORA.
6. Modelagem Física

6.1. Criação do Banco de Dados


CREATE DATABASE catalogo;

6.2. Criação das Tabelas

Atenção! As tabelas devem ser criadas na ordem sugerida, para evitar


o erro de integridade referencial9. E, saiba que um atributo chave primária já
aplica implicitamente as cláusulas UNIQUE e NOT NULL, não sendo
necessário especificá-las.
1)GRAVADORA 2)CD
CREATE TABLE GRAVADORA( CREATE TABLE CD(
idgrav INT NOT NULL UNIQUE AUTO_INCREMENT, idcd INT NOT NULL UNIQUE AUTO_INCREMENT,
nomegrav VARCHAR(45) NOT NULL, idcdind INT NOT NULL,
endereco VARCHAR(45), idgrav INT NOT NULL,
fone VARCHAR(15), nomecd VARCHAR(45) NOT NULL,
url VARCHAR(45), preco DECIMAL(14,2),
contato VARCHAR(45), datalanc DATE,
PRIMARY KEY(idgrav) FOREIGN KEY(idcdind)
) auto_increment = 1; REFERENCES CD(idcd),
FOREIGN KEY(idgrav)
REFERENCES GRAVADORA(idgrav),
PRIMARY KEY (idcd)
) auto_increment = 1;
3)MUSICA 4)AUTOR
CREATE TABLE MUSICA( CREATE TABLE AUTOR(
idmus INT NOT NULL UNIQUE AUTO_INCREMENT, idautor INT NOT NULL UNIQUE AUTO_INCREMENT,
nomemus VARCHAR(45) NOT NULL, nomeautor VARCHAR(45) NOT NULL,
tempo DECIMAL(6,2), PRIMARY KEY(idautor)
PRIMARY KEY (idmus) ) auto_increment = 1;
) auto_increment = 1;
5)FAIXA 6) MUSICA_AUTOR
CREATE TABLE FAIXA( CREATE TABLE MUSICA_AUTOR(
idcd INT NOT NULL, idmus INT NOT NULL,
idmus INT NOT NULL, idautor INT NOT NULL,
numero INT, FOREIGN KEY(idmus)
FOREIGN KEY(idcd) REFERENCES MUSICA(idmus),
REFERENCES CD(idcd), FOREIGN KEY(idautor)
FOREIGN KEY(idmus) REFERENCES AUTOR(idautor),
REFERENCES MUSICA(idmus), PRIMARY KEY(idmus,idautor)
PRIMARY KEY(idcd,idmus) )
)

6.3. Dados da tabela GRAVADORA


O comando INSERT é utilizado para inserir dados em uma tabela do banco de dados.

INSERT INTO GRAVADORA (nomegrav, endereco, fone, url, contato)


VALUES ('EMI', 'Rod. Pres. Dutra, s/n km 229,8', '123','www.emi-music.com.br', 'JOÃO’);
INSERT INTO GRAVADORA (nomegrav, endereco, fone, url, contato)
VALUES ('BMG', 'Av. Piramboia, 2898 - Parte 7', '456', 'www.bmg.com.br', 'MARIA');
INSERT INTO GRAVADORA (idgrav, nomegrav, endereco, fone, url, contato)
VALUES ('SOM LIVRE', 'Rua X', '789', 'www.somlivre.com.br', 'MARTA'); INSERT
INTO GRAVADORA (idgrav, nomegrav, endereco, fone, url, contato)
VALUES ('EPIC', 'Rua Y', '321', 'www.epic.com.br', 'PAULO');

9
O erro de integridade referencial ocorre quando se tenta criar uma tabela2 cuja chave estrangeira é
referente a uma tabela1 ainda não criada. Por exemplo, executar o código de CD antes de GRAVADORA.
6.4. Dados da tabela CD
INSERT INTO CD (idcd, idgrav, nomecd, preco, datalanc )
VALUES ( 1, 1, 'Mais do Mesmo', 15.00, '1998-10-01' );
UPDATE CD SET idcdind = 1 WHERE idcd = 1;

INSERT INTO CD (idcd, idgrav, nomecd, preco, datalanc )


VALUES ( 2, 1, 'Bate-Boca', 12.00, '1999-07-01' );
UPDATE CD SET idcdind = 1 WHERE idcd = 2;

INSERT INTO CD (idcd, idgrav, nomecd, preco, datalanc )


VALUES ( 3, 2,'Elis Regina - Essa Mulher', 13.00, '1989-05-01' );
UPDATE CD SET idcdind = 2 WHERE idcd = 3;

INSERT INTO CD (idcd, idgrav, nomecd, preco, datalanc )


VALUES ( 4, 2, 'A Força que nunca Seca', 13.50, '1998-12-01' );
UPDATE CD SET idcdind = 3 WHERE idcd = 4;

INSERT INTO CD (idcd, idgrav, nomecd, preco, datalanc )


VALUES ( 5, 3, 'Perfil', 10.50, '2001-05-01' );
UPDATE CD SET idcdind = 4 WHERE idcd = 5;

INSERT INTO CD (idcd, idgrav, nomecd, preco, datalanc )


VALUES ( 6, 3,'Barry Manilow Greatest Hits Vol I', 9.50, '1991-11-01' );
UPDATE CD SET idcdind = 4 WHERE idcd = 6;

INSERT INTO CD (idcd, idgrav, nomecd, preco, datalanc )


VALUES ( 7, 3, 'Listen Without Prejudice', 9.00, '1991-10-01' );

UPDATE CD SET idcdind = 3 WHERE idcd = 7;

6.4.1. Atualizando Dados da tabela CD

Imagine que precisássemos alterar, por exemplo, o nome do cd 'Elis


Regina - Essa Mulher' para 'Elis Regina (essa mulher)', utilizaríamos a
seguinte estrutura de comando UPDATE para efetuar a alteração.

UPDATE <tabela> SET <campo1 = ‘valor’>,<campo2 = ‘valor’> WHERE <campo = valor>

Expressando-se para resolver a proposta de alteração assim:


UPDATE CD SET nomecd = 'Elis Regina (essa mulher)' WHERE idcd = 3
6.4.2. Consultando Dados da tabela CD

O comando SELECT é utilizado para consultar dados, cuja sintaxe é:

SELECT * FROM CD;

6.4.3. Excluindo Dados da tabela CD

O comando DELETE é utilizado para apagar dados de uma tabela. Por


exemplo, para apagar o registro 'Listen Without Prejudice',
efetuaríamos o seguinte comando:
Obs: Após executar e analisar esse comando, insira novamente esse registro.

DELETE FROM CD WHERE idcd = 7;


Atenção: O comando “DELETE FROM CD” apagaria todos os CDs desta tabela.

6.5. Dados da tabela MUSICA

INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Será',2.28 );


INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Ainda é Cedo', 3.55 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Geração Coca-Cola', 2.20 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Eduardo e Monica', 4.32 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Tempo Perdido', 5.00 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Índios', 4.23 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Que País é Este',2.64 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Faroeste Caboclo', 9.03 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Há Tempos', 3.16 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Pais e Filhos', 5.06 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Meninos e Meninas', 3.22 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Vento no Litoral', 6.05 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Perfeição', 4.35 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Giz', 3.20 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Dezesseis', 5.28 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Antes das Seis', 3.09 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Meninos, Eu Vi', 3.25 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Eu Te Amo', 3.06 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Piano na Mangueira', 2.23 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('A Violeira', 2.54 );

INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Anos Dourados', 2.56 );


INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Olha, Maria', 3.55 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Biscate', 3.20 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Retrato em Preto e Branco', 3.03 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Falando de Amor', 3.20 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Pois É', 2.48 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Noite dos Mascarados', 2.42 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Sabiá', 3.20 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Imagina', 2.52 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Bate-Boca', 4.41 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Cai Dentro', 2.41 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('O Bêbado e o Equilibrista', 3.47 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Essa Mulher', 3.47 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Basta de Clamares Inocência', 3.38 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Beguine Dodói', 2.14 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Eu hein Rosa', 3.36 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Altos e Baixos', 3.29 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Bolero de Satã', 3.32 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Pé Sem Cabeça', 2.57 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('As Aparências Enganam', 4.18 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('É o Amor', 4.19 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Trenzinho Caipira', 3.32 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Luar do Sertão', 3.23 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Não tenha Medo', 3.27 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Eu queria que você viesse', 2.57 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Espere por mim Morena', 3.04 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Resto de mim', 2.59 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Gema', 2.51 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Cacilda', 2.22 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Agradecer e abraçar', 3.30 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('As flores do jardim da nossa casa', 3.26 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Romaria', 3.16 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('A força que nunca seca', 2.17 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Vila do Adeus', 3.06 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Devolva-me', 3.58 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Mais Feliz', 2.50 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Inverno', 4.40 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Mentiras', 2.58 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Esquadros', 3.10 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Cariocas', 3.14 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Vambora', 4.16 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Por isso eu Corro Demais', 2.58);
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Maresia', 4.09 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Metade', 3.25 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Senhas', 3.37 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Marina', 2.55 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Naquela Estação', 4.46 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Mandy', 3.18 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('New York City Rhythm', 4.41 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Looks Like We Made It', 3.32 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Daybreak', 3.05 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Can''t Smile Without you', 3.13 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('It''s a Miracle', 3.53 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Even Now', 3.29 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Bandstand Boogie', 2.50 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Trying to get the feeling again', 3.50 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Some Kind of Friend', 4.02);
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Praying for Time', 3.52 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Freedom 90', 3.52 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('They Won''t Go When I Go', 3.22 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Something to Save', 4.10 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Cowboys and Angels', 4.12 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Don''t Let the Sun Go Down on Me', 3.45 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Waiting for That Day', 2.58 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Mothers Pride', 2.12 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Heal the Pain', 3.02 );
INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Soul Free', 2.42 );

INSERT INTO MUSICA (nomemus, tempo ) VALUES ('Waiting', 3.32 );


6.6. Dados da tabela AUTOR

INSERT INTO AUTOR (nomeautor) VALUES ('Renato Russo' );


INSERT INTO AUTOR (nomeautor) VALUES ('Tom Jobim' );
INSERT INTO AUTOR (nomeautor) VALUES ('Chico Buarque' );
INSERT INTO AUTOR (nomeautor) VALUES ('Dado Villa-Lobos' );
INSERT INTO AUTOR (nomeautor) VALUES ('Marcelo Bonfá' );
INSERT INTO AUTOR (nomeautor) VALUES ('Ico Ouro-Preto' );
INSERT INTO AUTOR (nomeautor) VALUES ('Vinicius de Moraes' );
INSERT INTO AUTOR (nomeautor) VALUES ('Baden Powell' );
INSERT INTO AUTOR (nomeautor) VALUES ('Paulo Cesar Pinheiro' );
INSERT INTO AUTOR (nomeautor) VALUES ('João Bosco' );
INSERT INTO AUTOR (nomeautor) VALUES ('Aldir Blanc' );
INSERT INTO AUTOR (nomeautor) VALUES ('Joyce' );
INSERT INTO AUTOR (nomeautor) VALUES ('Ana Terra' );
INSERT INTO AUTOR (nomeautor) VALUES ('Cartola' );
INSERT INTO AUTOR (nomeautor) VALUES ('Cláudio Tolomei' );
INSERT INTO AUTOR (nomeautor) VALUES ('João Nogueira' );
INSERT INTO AUTOR (nomeautor) VALUES ('Suely Costa' );
INSERT INTO AUTOR (nomeautor) VALUES ('Guinga' );
INSERT INTO AUTOR (nomeautor) VALUES ('Danilo Caymmi' );
INSERT INTO AUTOR (nomeautor) VALUES ('Tunai' );
INSERT INTO AUTOR (nomeautor) VALUES ('Sérgio Natureza' );
INSERT INTO AUTOR (nomeautor) VALUES ('Heitor Villa Lobos' );
INSERT INTO AUTOR (nomeautor) VALUES ('Ferreira Gullar' );
INSERT INTO AUTOR (nomeautor) VALUES ('Catulo da Paixão Cearense' );
INSERT INTO AUTOR (nomeautor) VALUES ('Zezé di Camargo' );
INSERT INTO AUTOR (nomeautor) VALUES ('Niltinho Edilberto' );
INSERT INTO AUTOR (nomeautor) VALUES ('Marisa Monte' );
INSERT INTO AUTOR (nomeautor) VALUES ('Carlinhos Brown' );
INSERT INTO AUTOR (nomeautor) VALUES ('Gonzaga Jr' );
INSERT INTO AUTOR (nomeautor) VALUES ('Roberto Mendes' );
INSERT INTO AUTOR (nomeautor) VALUES ('Ana Basbaum' );
INSERT INTO AUTOR (nomeautor) VALUES ('Caetano Veloso' );
INSERT INTO AUTOR (nomeautor) VALUES ('José Miguel Wisnik' );
INSERT INTO AUTOR (nomeautor) VALUES ('Vevé Calazans' );
INSERT INTO AUTOR (nomeautor) VALUES ('Gerônimo' );
INSERT INTO AUTOR (nomeautor) VALUES ('Sérgio Natureza' );

INSERT INTO AUTOR (nomeautor) VALUES ('Roberto Carlos' );


INSERT INTO AUTOR (nomeautor) VALUES ('Erasmo Carlos' );
INSERT INTO AUTOR (nomeautor) VALUES ('Renato Teixeira' );
INSERT INTO AUTOR (nomeautor) VALUES ('Chico César' );
INSERT INTO AUTOR (nomeautor) VALUES ('Vanessa da Mata' );
INSERT INTO AUTOR (nomeautor) VALUES ('Jorge Portugal' );
INSERT INTO AUTOR (nomeautor) VALUES ('Lilian Knapp' );
INSERT INTO AUTOR (nomeautor) VALUES ('Renato Barros' );
INSERT INTO AUTOR (nomeautor) VALUES ('Bebel Gilberto' );
INSERT INTO AUTOR (nomeautor) VALUES ('Cazuza' );
INSERT INTO AUTOR (nomeautor) VALUES ('Dé' );
INSERT INTO AUTOR (nomeautor) VALUES ('Adriana Calcanhoto' );
INSERT INTO AUTOR (nomeautor) VALUES ('Antonio Cícero' );
INSERT INTO AUTOR (nomeautor) VALUES ('Paulo Machado' );
INSERT INTO AUTOR (nomeautor) VALUES ('Dorival Caymmi' );
INSERT INTO AUTOR (nomeautor) VALUES ('João Donato' );
INSERT INTO AUTOR (nomeautor) VALUES ('Ronaldo Bastos' );
INSERT INTO AUTOR (nomeautor) VALUES ('Barry Manilow' );
INSERT INTO AUTOR (nomeautor) VALUES ('Richard Kerr' );
INSERT INTO AUTOR (nomeautor) VALUES ('Chris Arnold' );
INSERT INTO AUTOR (nomeautor) VALUES ('David Pomeranz' );
INSERT INTO AUTOR (nomeautor) VALUES ('George Michael' );
INSERT INTO AUTOR (nomeautor) VALUES ('S. Wonder' );
INSERT INTO AUTOR (nomeautor) VALUES ('Elton John' );

INSERT INTO AUTOR (nomeautor) VALUES ('Arnaldo Antunes' );

6.7. Dados da tabela FAIXA


INSERT INTO FAIXA (idcd, idmus, numero) VALUES (1, 1, 1);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (1, 2, 2);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (1, 3, 3);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (1, 4, 4);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (1, 5, 5);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (1, 6, 6);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (1, 7, 7);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (1, 8, 8);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (1, 9, 9);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (1, 10, 10);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (1, 11, 11);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (1, 12, 12);

INSERT INTO FAIXA (idcd, idmus, numero) VALUES (1, 13, 13);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (1, 14, 14);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (1, 15, 15);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (1, 16, 16);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (2, 1, 17);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (2, 2, 18);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (2, 3, 19);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (2, 4, 20);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (2, 5, 21);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (2, 6, 22);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (2, 7, 23);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (2, 8 ,24);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (2, 9, 25);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (2, 10, 26);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (2, 11, 27);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (2, 12, 28);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (2, 13, 29);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (2, 14, 30);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (3, 1, 31);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (3, 2, 32);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (3, 3, 33);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (3, 4, 34);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (3, 5, 35);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (3, 6, 36);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (3, 7, 37);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (3, 8 ,38);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (3, 9, 39);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (3, 10, 40);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (4, 1, 41);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (4, 2, 42);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (4, 3, 43);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (4, 4, 44);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (4, 5, 45);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (4, 6, 46);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (4, 7, 47);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (4, 8 ,48);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (4, 9, 49);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (4, 10, 50);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (4, 11, 51);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (4, 12, 52);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (4, 13, 53);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (4, 14, 54);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (5, 1, 55);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (5, 2, 56);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (5, 3, 57);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (5, 4, 58);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (5, 5, 59);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (5, 6, 60);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (5, 7, 61);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (5, 8 ,62);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (5, 9, 63);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (5, 10, 64);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (5, 11, 65);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (5, 12, 66);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (5, 13, 67);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (6, 1, 68);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (6, 2, 69);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (6, 3, 70);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (6, 4, 71);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (6, 5, 72);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (6, 6, 73);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (6, 7, 74);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (6, 8 ,75);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (6, 9, 76);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (6, 10, 77);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (7, 1, 78);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (7, 2, 79);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (7, 3, 80);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (7, 4, 81);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (7, 5, 82);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (7, 6, 83);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (7, 7, 84);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (7, 8 ,85);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (7, 9, 86);
INSERT INTO FAIXA (idcd, idmus, numero) VALUES (7, 10, 87);

INSERT INTO FAIXA (idcd, idmus, numero) VALUES (7, 11, 88);
6.8. Dados da tabela MUSICA_AUTOR
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 1, 1 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 2, 5 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 2, 6 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 3, 4 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 3, 5 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 3, 1 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 4, 1 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 4, 4 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 5, 1 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 6, 1 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 7, 1 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 8, 1 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 9, 1 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 9, 4 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 9, 5 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 10, 1 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 10, 4 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 10, 5 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 11, 1 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 11, 4 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 11, 5 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 12, 1 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 12, 4 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 12, 5 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 13, 1 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 13, 4 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 13, 5 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 14, 1 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 14, 4 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 14, 5 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 15, 1 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 15, 4 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 15, 5 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 16, 1 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 16, 4 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 16, 5 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 17, 2 );

INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 17, 3 );


INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 18, 2 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 18, 3 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 19, 2 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 19, 3 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 20, 2 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 20, 3 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 21, 2 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 21, 3 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 22, 2 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 22, 3 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 22, 7 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 23, 3 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 24, 2 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 24, 3 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 25, 2 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 26, 2 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 26, 3 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 27, 3 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 28, 2 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 28, 3 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 29, 2 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 29, 3 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 30, 3 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 31, 8 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 31, 9 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 32, 10 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 32, 11 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 33, 12 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 33, 13 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 34, 14 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 35, 10 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 35, 11 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 35, 15 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 36, 16 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 36, 9 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 37, 17 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 37, 11 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 38, 18 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 38, 9 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 39, 19 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 39, 13 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 40, 20 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 40, 21 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 41, 25 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 44, 26 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 45, 27 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 45, 28 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 46, 29 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 47, 30 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 47, 31 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 48, 32 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 49, 33 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 50, 35 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 50, 36 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 51, 37 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 51, 38 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 52, 39 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 53, 40 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 53, 41 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 54, 30 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 54, 42 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 55, 43 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 55, 44 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 56, 45 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 56, 46 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 56, 47 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 57, 48 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 57, 49 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 58, 48 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 59, 48 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 60, 48 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 61, 48 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 62, 37 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 63, 50 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 63, 49 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 64, 48 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 65, 48 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 66, 51 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 67, 52 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 67, 53 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 67, 32 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 68, 55 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 69, 54 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 70, 55 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 71, 54 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 72, 56 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 73, 54 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 74, 54 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 75, 54 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 76, 57 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 77, 54 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 78, 58 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 79, 58 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 80, 59 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 81, 58 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 82, 58 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 83, 60 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 84, 58 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 85, 58 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 86, 58 );
INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 87, 58 );

INSERT INTO MUSICA_AUTOR (idmus, idautor ) VALUES ( 88, 58 );


7. Exercícios de Aplicações Práticas de Comandos SQL

Implemente os 3 modelos de dados deste projeto. Considere o programa BrModelo


para diagramar as etapas conceitual e Lógica, e para construção do modelo físico
utilize a ferramenta MySQL Workbenck para aplicar comandos SQL e resolver as
questões a seguir: (Crie e salve um arquivo para cada questão)
1) Insira Um novo autor chamado "Luciano"
2) Insira Um novo cd chamado "É o amor" pelo preço de R$ 20,00, que foi indicado
pelo cd "perfil" da gravadora "Som Livre".
3) Insira Um novo autor chamado "Teste1"
4) Insira Um novo autor chamado "Teste2"
5) Atualize o autor "Luciano" para "Luciano Huck"
6) Atualize o endereço da gravadora "EPIC" para "Ruas dos Instrumentos Musicais" e
o telefone para "(99) 97890-1234"
7) Apague o registro cujo nome do autor é "Teste1"
8) Apague o registro cujo nome do autor é "Teste2"
9) Exiba em ordem alfabética os cds cadastrados (obs: numa única coluna)
10) Exiba em ordem alfabética os cds cadastrados (obs: numa única coluna)
decrescente (Z a A)
11) Exiba os cds cujo preço é acima de R$ 11,00
12) Exiba os cds cujo preço é a partir de R$ 10,00 ou menores
13) Exiba os nomes dos cds que tiverem preço abaixo de R$ 12,00 e cuja
gravadora seja "SOM LIVRE"
14) Exiba os nomes dos cds que tiverem preço acima de R$ 10,00 ou cuja gravadora
seja "EPIC"
15) Exiba os nomes dos cds que tiverem preço acima de R$ 9,00 cuja gravadora
seja diferente de "BMG"
16) Mostre os cds com preço de venda maior que 11 e que sejam da gravadora "SOM
LIVRE" ou "BMG"
17) Mostre os cds que NÃO tem preço de venda maior que 11 e que sejam da
gravadora "SOM LIVRE" ou "BMG"
18) Atualize os endereços da gravadora "SOM LIVRE" e "EPIC" para nulos. Em
seguida, mostre o nome dessas gravadoras e seus respectivos endereços.
19) Mostre os nomes de cds que foram lançados no período de 01/01/1991 a
01/01/1998.
20) Mostre os nomes de cds cujo preço de venda está entre R$ 12,00 e R$ 15,00.
21) Mostre os nomes de cds cujo preço de venda NÃO está entre R$ 9,00 e R$
11,00.
22) Mostre os nomes de autores cujos nomes iniciam pela letra C.
23) Mostre os nomes de autores cujos nomes tenham a letra A na segunda
posição.
24) Apresente os nomes de cds, preco de venda e preços reajustados com desconto
de 10%.
25) Apresente a quantidade de dias entre a data atual e a data de lançamento do
cd (obs: colunas - data-atual, datalanc e diferença).
26) Apresente todos cds cadastrados e sua respectiva gravadora. (Realize a união
entre tabelas vinculando chave primária à chave estrangeira)
27) Apresente todos cds cadastrados e sua respectiva gravadora. (Realize a
união entre tabelas através da sintaxe NATURAL JOIN. Possível, por quê?)
28) Apresente todos cds cadastrados e sua respectiva gravadora. (Realize a união
entre tabelas através da sintaxe JOIN USING)
29) Apresente todos cds cadastrados e sua respectiva gravadora. (Realize a
união entre tabelas através da sintaxe JOIN ON)
30) Apresente todos cds cadastrados e sua respectiva gravadora. (Use apelidos para
as tabelas para que o comando fique menor)
31) Apresente nome das músicas, a faixa e o nome do cd em que está a música,
considere apenas nome do cd "Mais do Mesmo" e "Bate-Boca". (Use a sintaxe IN)
32) Apresente todos cds cadastrados e sua respectiva gravadora. (Realize a união
entre tabelas através da sintaxe LEFT OUTER JOIN. Explique o que ela faz)
33) Apresente todos cds cadastrados e sua respectiva gravadora. (Realize a
união entre tabelas através da sintaxe RIGTH OUTER JOIN. Explique o que ela
faz)
34) Apresente todos cds cadastrados e sua respectiva gravadora. (Realize a união
entre tabelas através da sintaxe FULL OUTER JOIN. Explique o que ela faz)
35) Apresente código do cd, nome do cd, código do cd indicado e nome do cd
indicado. (Use a sintaxe SELF JOIN. Explique quando utilizá-la)
36) Exiba a quantidade de músicas cadastradas.
37) Exiba a quantidade de endereços de gravadora que apresentam valor NULO.
38) Exiba quantas músicas diferentes foram compostas.
39) Exiba o somatório total dos preços de venda dos cds.
40) Exiba somatório total dos preços de venda dos cds, este valor com aumento de
15% e o lucro obtido.
41) Exiba a média dos preços de venda dos cds.
42) Exiba o menor preço de venda de cd.
43) Exiba o maior preço de venda de cd.
44) Exiba o desvio-padrão de preço de venda de cd.
45) Exiba a variância de preço de venda de cd.
46) Mostre quantas músicas há em cada cd agrupado pelo código do cd. (filtre as
colunas: idcd, nomecd e o valor da quantidade)
47) Mostre o preço médio de venda de cada cd agrupado por gravadora. (filtre as
colunas: idgrav, nomegrav e o valor da média)
48) Mostre o preço médio de venda de cada cd agrupado por código de gravadora e
nome da gravadora.
49) Mostre o preço médio de venda de cada cd agrupado por código de
gravadora e nome da gravadora e ordenado por preço médio de venda.
50) Mostre o total de autores das 10 primeiras músicas agrupadas pelo código da
música.(inclua nesta consulta o filtro do nome da música e filtre as linhas ANTES do
agrupamento)
51) Mostre o total de autores das 12 primeiras músicas agrupadas pelo código
da música.(inclua nesta consulta o filtro do nome da música e filtre as linhas
DEPOIS do agrupamento )
52) Busque os nomes de cd cujos preços de venda sejam menores que a média
desses preços.
53) Busque só os nomes de cd cujos preços de venda sejam maiores que a
média de preço da própria gravadora.
54) Busque só os nomes de cd cujos preços de venda sejam maiores que a média de
preço da própria gravadora de código 2.
55) Busque apenas as gravadoras cujos cds tenham preço de venda superiores
à média.
56) Busque apenas as gravadoras que possuem cds cadastrados.
57) Busque os cds (código, nome e preço) que tem preço igual ao menor preço
de cada gravadora.
58) Crie uma subquery para extrair o nome do CD, o seu preço de venda e o preço
médio da gravadora, este último é obtido por uma subquery na cláusula FROM.
59) Crie um CASE que exiba nome do cd, preço e venda. Considere que quando o
preço da venda for menor que 10, será dado um desconto de 10%; quando for
maior ou igual a 10 e menor que 13, será dado 20% de desconto, caso contrário
será dado um desconto de 30%.
60) Crie um CASE que efetue a ATUALIZAÇÃO do preço de venda. Considere que
quando o preço da venda for menor que 10, será dado um desconto de 10%; quando
for maior ou igual a 10 e menor que 13, será dado 20% de desconto, caso contrário
será dado um desconto de 30%.
61) Crie uma VISÃO simples com código da música, o nome da música e seu
tempo de duração das 10 primeiras músicas cadastradas. E mostre o conteúdo
dessa visão.
62) Crie uma VISÃO com código do cd, o nome do cd e preço de venda dos cds cujo
preço é menor que R$ 10,00. E mostre o conteúdo dessa visão.
63) Faça um ranking dos 3 cds com menores preços de venda.
64) Faça um ranking dos 5 cds com maiores preços de venda.
65) Crie um domínio para determinar o sexo de um autor.
66) Aplique o comando SQL para "setar" o seu schema de dados.
67) Crie um usuário chamado "userteste" com a senha "teste" no banco de
dados.
68) Atribua direitos de conexão a esse usuário.
69) Atribua direitos de consulta na tabela CD.
70) Atribua direitos de exclusão de tuplas nas tabelas MUSICA e AUTOR.
71) Revogue os direitos concedidos da questão 69.
72) Altere a sessão do usuário "userteste" para que as transações sejam em série.
73) Crie um PROCEDIMENTO armazenado que mostre o preço médio (com duas
casas decimais) dos cds cadastrados. Após isso, invoque o procedimento para
que exiba o resultado.
74) Crie um PROCEDIMENTO armazenado que mostre apenas os cds gravados pela
gravadora "Som Livre". Após isso, invoque o procedimento para que exiba o resultado.
75) Crie uma PROCEDIMENTO que mostre o preço médio (com duas casas
decimais) dos cds cadastrados, passando como parâmetro uma faixa de códigos
de cd (Ex: precoM(1, 10)). Após isso, invoque a função para que exiba o
resultado.
76) Crie uma FUNÇÃO que mostre o preço médio (com duas casas decimais) dos cds
cadastrados. Após isso, invoque a função para que exiba o resultado.
77) Crie uma FUNÇÃO que exiba nome do cd, preço e venda. Considere que
quando o preço da venda for menor que 10, será dado um desconto de 10%;
quando for maior ou igual a 10 e menor que 13, será dado 20% de desconto, caso
contrário será dado um desconto de 30%.
78) Crie uma FUNÇÃO que mostre o preço médio (com duas casas decimais) dos cds
cadastrados, passando como parâmetro uma faixa de códigos de cd (Ex: precoM(1,
10)). Após isso, invoque a função para que exiba o resultado.
79) Crie um CURSOR simples que insira uma nova gravadora chamada "Novo
Tempo", "Rua NT", "0300 789 - 111", "gravadora.novotempo.com", "Atendimento
Comercial" e que em seguida exiba esse último registro.
80) Crie um TRIGGER simples para que toda vez que um cd for inserido seja
disparado uma ação de atualizar o preço com desconto de 15% sobre o valor atual.
FIM

Вам также может понравиться