Você está na página 1de 17

Universidade Federal do Vale do São Francisco

Disciplina: Banco de dados 2


Alunos: Mateus de Almeida Ribeiro, Fabiano Landim

Projeto de Banco de Dados 2


Corretora de imóveis

O projeto consiste em um banco de dados referente a uma corretora de


imóveis. O banco deve armazenar informações a cerca dos corretores que
trabalham na corretora, os proprietários que contrataram o serviço e os imóveis
que eles querem alugar, e por fim, os clientes que tiveram interesse. O banco
também contém dados referentes as relações estabelecidas entre as partes.

Diagrama entidade-relacionamento da corretora:

Diagrama relacional:
A implementação do banco de dados foi feita usando o postgress, nessa
implementação, os relacionamentos “aluga”, “atende” e “contacta”, assim, o
banco tem um total de 7 tabelas.

As tabelas proprietário, cliente e corretor não dependem de nenhuma


outra para serem criadas, assim, segue as 3 tabelas criadas e com dados já
adicionados.

Tabela proprietário:

Tabela cliente:
Tabela corretor:

A tabela imóvel tem uma chave estrangeira que vem da tabela


proprietário:

Tabela imóvel:

Reestrições da tabela imóvel:


Tabela imóvel com os dados preenchidos:

A tabela “contacta”, tem duas chaves estrangeiras que também são


chave primária, ela faz relação com as tabelas “proprietário” e “corretor”, assim,
pegando como fk o cpf_pro (proprietário) e o cpf_cor (corretor).

Tabela contacta:

A tabela “atende” também tem duas chaves estrangeiras que também


são suas chaves primárias, ela relaciona as tabelas clientes e corretor,
pegando como fk cpf_cor (corretor) e cpf_cli (cliente).

Reestrições da tabela atende:


Tabela atende com os dados preenchidos:

A tabela “aluga” além de duas chaves estrangeiras que também são


chave primária composta, tem alguns atributos. Como ela relaciona o cliente
com o imóvel, suas fk são cpf_cli (cliente) e cod (imóvel).

Reestrições da tabela aluga:

Tabela aluga preenchida:

Após a criação e inserção dos dados nas tabelas foi feita a manipulação
das mesmas usando os comandos aprendidos em sala. Por exemplo, veremos
quais comandos usar para que o banco nos devolva todos os imóveis que tem
exatamente 2 quartos.
Usando o select podemos também selecionar apenas os campos que
queremos a resposta, por exemplo, vamos exibir apenas o código (pk_cod) e o
tipo dos imóveis que são do tipo casa.

Veremos agora os comandos upper e lower, que servem para


transformar a string em maiúscula ou minúscula.
Vamos pesquisar agora todos os proprietários que tem o email com final
‘@gmail.com’.

Vamos selecionar agora o aluguel com maior valor.

Selecionaremos a soma dos salários dos corretores


Selecionaremos o salário mais baixo entre os corretores

A média dos salários dos corretores:

Usando o comando count podemos descobrir por exemplo, quantos


imoveis foram registrados:

Podemos combinar os comandos, para verificar por exemplo, a média do


número de quarto dos apartamentos:
Usando o comando length podemos checar o tamanho de uma string,
vamos usar isso para analisar o tamanho do nome das ruas dos imóveis.

Usando o update é possível fazer modificações nas tabelas, por


exemplo, vamos aumentar o sálario dos corretores, todos os que ganham
abaixo de 3000 reais vão passar a ganhar 3000.
Usando delete podemos excluir algum registro específico, vamo usar
isso para excluir um dos registros de aluga.

Vamo selecionar agora todos os imóveis que não estão localizados no


bairro centro, para isso, vamos usar o operador de diferente:
O operador between ... and ..., serve para selecionar atributos incluidos
dentro de uma certa área de valores, vamo analisar por exemplo, os imóveis
que tem o tamanho entre 400 e 500 m2.

Podemos usar os operadores de divisão e multiplicação para analisar


por exemplo, o salário anual dos corretores, e o salário diário também,
podemos também, colocar um nome a essa coluna do select:
O operador in vai devolver os valores em determinada lista, por exemplo,
vamos analisar os imoveis que tem 2 quartos, ou 5 quartos.

Usando o comando alter table, podemos modificar uma tabela, vamos


adicionar por exemplo, uma nova coluna ao proprietario, esse campo será um
segundo telefone que é opcional, então será null.

Vamos selecionar agora os proprietarios que tem o segundo telefone


nulo, como acabou de ser adicionado, esperamos que todos sejam
selecionados:
Vamos fazer agora um select em duas colunas e concatena-las,
selecionaremos o nome e o email dos clientes:

Vamos adicionar aos clientes um nome que já tem no banco.

Podemos selecionar os nomes sem repetição, usando o distinct.


Vamos selecionar agora o nome dos proprietários por ordem alfabética:

Com o comando alter column podemos modificar uma coluna especifica,


mudando o seu tipo, ou setando um valor padrão para o campo, por exemplo,
vamo setar o valor padrão do salário de um corretor para 3000 reais.

Agora vamos inserir um novo corretor sem especificar o seu salário e ver
o que acontece:
Group by vai agrupar os valores iguais, vamo usar um group by
juntamente com um count para descobrirmos a quantidade de imoveis que tem
determinado numero de quartos.

Usando having podemos fazer restrições nessas pesquisas, então


vamos agrupar agora apenas os imoveis que tem mais de dois quartos.
Com o union vamos juntar em uma tabela de resposta só o nome dos
corretores e dos proprietários:

Instersect vai retornar os dados que estão presentes nos dois selects
feitos, por exemplo, fazendo um select com o cpf dos clientes interseção com o
cpf dos clientes que estão em aluga, o banco vai retornar apenas os cpfs dos
clientes que alugaram casas.
Já o except selecionará do primeiro select os registros que não estão no
segundo, executando o mesmo comando acima, mas trocando intersect por
except nós obteremos o cpf dos clientes que não alugaram casas.

O comando drop table exclui completamente uma tabela:

Você também pode gostar