Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
0 UNIVERSIDADE DO OESTE DE SANTA CATARINA – UNOESC CAROLINA FRANCO EVANOR LIBARDONI BANCO DE DADOS PARA UMA LOJA DE DISCOS Joaçaba 2012 1 CAROLINA FRANCO EVANOR LIBARDONI BANCO DE DADOS PARA UMA LOJA DE DISCOS Trabalho acadêmico para a disciplina de Banco de Dados II, Curso de Engenharia da Computação, Área das Ciências Exatas e da Terra, da Universidade do Oeste de Santa Catarina, Campus de Joaçaba, como requisito à obtenção de nota. Professor: Guilherme Rosseti Anzollin Joaçaba 2012 2 RESUMO Utilizando o exemplo de uma loja de disco, realizamos a criação do banco de dados, inserção de tabelas e colunas com dados fictícios para um maior entendimento de um Banco de Dados relacional, utilizamos códigos em SQL para construir o banco através dos programas MySql Workbench e do IDE Netbeans para apresentar o modelo conceitual e lógico do Sistema. Palavras chave: SQL, MER, INDEX, SELECT, BANCO DE DADOS. 3 SUMÁRIO 1 INTRODUÇÃO.........................................................................................................4 2 MER.........................................................................................................................5 3 CREATE TABLE.....................................................................................................6 4 UPDATES………………………………………………………………………………..7 5 SELECTS................................................................................................................8 6 CONCLUSÃO ........................................................................................................9 REFERÊNCIAS..........................................................................................................10 4 1 INTRODUÇÃO Um quesito fundamental para o bom funcionamento de uma loja de discos é a organização dos produtos e das atividades realizadas, assim é muito importante um Banco de Dados capaz de agilizar o funcionamento do estabelecimento. Através do conhecimento adquirido na disciplina de banco de dados, criamos um banco de dados apartir de comandos em SQL, utilizando as ferramentas Netbeans IDE e MySql Workbench para criação das tabelas, inserção de dados e alterações. 5 2 MER Para representação da estrutura lógica geral do banco de dados, criamos utilizamos a ferramenta MySql Workbench, o diagrama de entidade-relacionamento, conforme figura abaixo: Foram criadas oito tabelas: • disco, • artista, • gravadora, • compra • fornecedor, • cliente, • venda • gênero 6 Cada coluna tem seu respectivo id como chave primaria. Para agilizar consultas criamos índices, abaixo o diagrama com índices: 3 CREATE TABLE create table IF NOT EXISTS disco( id_disco INT NOT NULL, id_gravadora INT NOT NULL, id_genero INT NOT NULL, id_artista INT NOT NULL, titulo VARCHAR(45), ano INT, valor DECIMAL (8,2), PRIMARY KEY (id_disco), FOREIGN KEY (id_gravadora ) REFERENCES gravadora (id_gravadora), FOREIGN KEY (id_genero ) REFERENCES genero (id_genero), FOREIGN KEY (id_artista ) REFERENCES artista (id_artista) ); create table IF NOT EXISTS venda( id_venda INT NOT NULL, 7 id_disco INT NOT NULL, id_cliente INT NOT NULL, data_venda DATE, PRIMARY KEY (id_venda), FOREIGN KEY (id_disco) REFERENCES disco (id_disco), FOREIGN KEY (id_cliente) REFERENCES cliente (id_cliente) ); create table IF NOT EXISTS fornecedor( id_fornecedor INT NOT NULL, id_gravadora INT NOT NULL, nome_fornecedor VARCHAR (45), CPF CHAR (11), telefone CHAR(10), email VARCHAR (45), PRIMARY KEY (id_fornecedor), FOREIGN KEY (id_gravadora) REFERENCES gravadora (id_gravadora) ); create table IF NOT EXISTS compra( id_compra INT NOT NULL, id_fornecedor INT NOT NULL, id_disco INT NOT NULL, valor DECIMAL(8,2), data_compra DATE, PRIMARY KEY (id_compra), FOREIGN KEY (id_fornecedor ) REFERENCES fornecedor (id_fornecedor), FOREIGN KEY (id_disco ) REFERENCES disco (id_disco) ); 4 UPDATES update cliente set telefone = '1111111111' where id_cliente = 1; update disco set valor = '45.00' where id_genero = 1; update fornecedor set email = 'toddturner@hollywood.com' where id_fornecedor = 8 8 5 SELECTS #Ranking de Artistas mais vendidos SELECT count(*) as total, nome_artista FROM artista INNER JOIN disco ON disco.id_artista = artista.id_artista INNER JOIN venda ON venda.id_disco = disco.id_disco group by artista.id_artista ORDER BY total DESC LIMIT 10; #Ranking de Clientes mais vendas SELECT count(*) as total, nome_cliente FROM cliente INNER JOIN venda ON venda.id_cliente = cliente.id_cliente group by cliente.id_cliente ORDER BY total DESC LIMIT 10; #Quantidade Discos por gênero select count(*) as total, nome_genero from disco INNER JOIN genero ON disco.id_genero = genero.id_genero group by genero.id_genero ORDER BY total DESC LIMIT 10; ##Ranking de Artistas mais vendidos select count(*) as total, nome_artista from artista INNER JOIN disco ON disco.id_artista = artista.id_artista INNER JOIN venda ON venda.id_disco = disco.id_disco group by artista.id_artista ORDER BY total DESC LIMIT 10; 9 5 CONCLUSÃO Através da linguagem de consulta estruturada SQL e da ferramenta de desenvolvimento MySql Workbench, o projeto para um sistema de Banco de Dados para uma loja de disco foi concluído, contendo 8 tabelas, sua principal função é o armazenamento de dados com segurança e integridade. 10 REFERÊNCIAS Abreu, Machado, Projeto de Banco de Dados – Uma visão prática. Editora Afiliada. Machado, Felipe, Projeto de Banco de Dados. Editora Afiliada Costa, Rogerio. SQL Guia Prático. Editora Brasport.