Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/amandaguedess/banco-de-dados-company
Banco de Dados Company Otimizado
https://github.com/amandaguedess/banco-de-dados-company
banco-de-dados database mysql-database
Last synced: about 1 month ago
JSON representation
Banco de Dados Company Otimizado
- Host: GitHub
- URL: https://github.com/amandaguedess/banco-de-dados-company
- Owner: AmandaGuedess
- Created: 2024-08-22T13:54:40.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-08-22T14:12:36.000Z (3 months ago)
- Last Synced: 2024-10-15T17:39:48.428Z (about 1 month ago)
- Topics: banco-de-dados, database, mysql-database
- Homepage: https://github.com/AmandaGuedess/Banco-de-Dados-Company.git
- Size: 4.88 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Projeto: Otimização de Consultas SQL no Banco de Dados Company
## Descrição do Projeto
Este projeto tem como objetivo otimizar o desempenho de consultas SQL no banco de dados "Company" por meio da criação de índices estratégicos. As consultas são projetadas para responder a perguntas comuns sobre os dados do banco, como o número de funcionários por departamento, a localização dos departamentos por cidade e a relação de empregados por departamento.## Consultas Otimizadas e Índices Criados
### 1. Qual o departamento com maior número de pessoas?
```sql
SELECT d.Dname, COUNT(e.Ssn) AS NumFuncionarios
FROM employee e
JOIN departament d ON e.Dno = d.Dnumber
GROUP BY d.Dname
ORDER BY NumFuncionarios DESC
LIMIT 1;
```
Índice Criado: CREATE INDEX idx_employee_dno ON employee(Dno);Motivo: O índice na coluna Dno da tabela employee melhora significativamente o desempenho ao contar o número de funcionários por departamento, pois permite uma busca mais rápida por essa coluna.
### 2. Quais são os departamentos por cidade?
```sql
SELECT d.Dname, dl.Dlocation
FROM departament d
JOIN dept_locations dl ON d.Dnumber = dl.Dnumber;
```
Índice Criado: CREATE INDEX idx_dept_locations_dnumber ON dept_locations(Dnumber);Motivo: O índice na coluna Dnumber da tabela dept_locations otimiza a junção entre as tabelas departament e dept_locations, tornando a consulta mais eficiente ao buscar as localizações dos departamentos.
### 3. Relação de empregados por departamento
```sql
SELECT d.Dname, e.Fname, e.Lname
FROM employee e
JOIN departament d ON e.Dno = d.Dnumber
ORDER BY d.Dname, e.Lname;
```
Índice Criado: CREATE INDEX idx_employee_dno_name ON employee(Dno, Lname);Motivo: Um índice composto nas colunas Dno e Lname da tabela employee é utilizado para melhorar o desempenho na ordenação dos resultados por departamento e sobrenome do empregado.
## Considerações Finais
Os índices foram criados com o objetivo de otimizar consultas específicas, levando em consideração as colunas mais acessadas e relevantes para as operações realizadas. A criação de índices pode impactar positivamente o desempenho das consultas, mas deve ser cuidadosamente planejada para evitar degradação de performance em operações de inserção, atualização e exclusão.