GithubHelp home page GithubHelp logo

dio-bootcamp-build-a-logical-database-project-from-scratch's Introduction

Projeto: Construção de um Projeto Lógico de Banco de Dados do Zero

Este repositório contém um projeto dedicado à construção de um banco de dados para uma oficina mecânica de automóveis. O processo é dividido em cinco etapas principais, cada uma com seus objetivos específicos.

Etapa 1: Análise do Esquema Conceitual

Na primeira etapa, realizamos uma análise do esquema conceitual para identificar entidades, atributos e relacionamentos relevantes. Aqui estão algumas orientações:

Entidades Principais:

  • Cliente
  • Veículo
  • Serviço
  • Peça
  • Funcionário

Relacionamentos:

  • Cliente <-> Veículo
  • Veículo <-> Serviço
  • Serviço <-> Peça
  • Serviço <-> Funcionário

Cardinalidade:

  • Cliente (1) <-> (N) Veículo
  • Veículo (1) <-> (N) Serviço
  • Serviço (N) <-> (N) Peça
  • Serviço (N) <-> (N) Funcionário

Atributos Derivados:

  • Custo total de um serviço (somando o custo de todas as peças utilizadas).

Atributos Multivalorados:

  • Telefones de contato de um cliente.

Identificadores Únicos:

  • ID_cliente, ID_veículo, ID_serviço, etc.

Normalização:

  • Considerar a normalização para eficiência e integridade do banco de dados.

Etapa 2: Mapeamento do Esquema Conceitual para o Lógico

Nesta etapa, traduzimos o esquema conceitual para um modelo relacional, criando tabelas e definindo relações:

Exemplo do esquema lógico:

Veja o exemplo de esquema lógico.

Etapa 2: Mapeamento do Esquema Conceitual para o Lógico

Nesta etapa, você irá traduzir o esquema conceitual para o modelo relacional, criando as tabelas e definindo as relações entre elas.

  1. Cliente:

    • Tabela: Cliente
      • Atributos: ID_cliente (PK), Nome, Endereco, Telefone, etc.
  2. Veículo:

    • Tabela: Veiculo
      • Atributos: ID_veiculo (PK), ID_cliente (FK), Modelo, Placa, Ano, etc.
  3. Serviço:

    • Tabela: Servico
      • Atributos: ID_servico (PK), Desricao, Custo, Data, etc.
  4. Peça:

    • Tabela: Peca
      • Atributos: ID_peca (PK), Nome, Estoque, Preco, etc.
  5. Funcionário:

    • Tabela: Funcionario
      • Atributos: ID_funcionario (PK), Nome, Cargo, Salario, etc.
  6. Relacionamentos:

    • Cliente (1) <-> (N) Veiculo
      • Chave estrangeira: ID_cliente em Veiculo referenciando ID_cliente em Cliente.
    • Veiculo (1) <-> (N) Servico
      • Chave estrangeira: ID_veiculo em Servico referenciando ID_veiculo em Veiculo.
    • Servico (N) <-> (N) Peça (N:N)
      • Cria uma tabela de junção (por exemplo, Servico_Peca) com ID_servico e ID_peca.
    • Servico (N) <-> (N) Funcionario (N:N)
      • Cria uma tabela de junção (por exemplo, Servico_Funcionario) com ID_servico e ID_funcionario.
  7. Ajustes:

    • Certifique-se de definir as chaves primárias e estrangeiras corretamente.
    • Considere a normalização para evitar redundância e garantir a integridade dos dados.
    • Decida sobre o uso de atributos derivados e multivalorados, se aplicável.

Exemplo do esquema lógico:

Cliente
| ID_cliente | Nome     | Endereco         | Telefone     |
|------------|----------|------------------|--------------|
| 1          | Cliente1 | Endereco1        | 123-456-7890 |
| 2          | Cliente2 | Endereco2        | 987-654-3210 |
...

Veiculo
| ID_veiculo | ID_cliente | Modelo   | Placa   | Ano  |
|------------|------------|----------|---------|------|
| 1          | 1          | Carro1   | ABC123  | 2019 |
| 2          | 1          | Carro2   | XYZ789  | 2020 |
...

Servico
| ID_servico | Descricao         | Custo | Data       |
|------------|-------------------|-------|------------|
| 1          | Troca de óleo     | 50.00 | 2023-01-01 |
| 2          | Troca de pneus    | 100.00| 2023-01-05 |
...

Peca
| ID_peca | Nome     | Estoque | Preco |
|---------|----------|---------|-------|
| 1       | Peca1    | 50      | 10.00 |
| 2       | Peca2    | 30      | 20.00 |
...

Funcionario
| ID_funcionario | Nome       | Cargo        | Salario |
|----------------|------------|--------------|---------|
| 1              | Func1      | Mecânico     | 2000.00 |
| 2              | Func2      | Atendente    | 1500.00 |
...

Servico_Peca (Tabela de junção)
| ID_servico | ID_peca |
|------------|---------|
| 1          | 1       |
| 1          | 2       |
| 2          | 2       |
...

Servico_Funcionario (Tabela de junção)
| ID_servico | ID_funcionario |
|------------|----------------|
| 1          | 1              |
| 2          | 1              |
| 2          | 2              |
...

Depois de criar esse mapeamento, você pode passar para a próxima etapa, que é a criação do script SQL para criar o esquema do banco de dados.

Etapa 3: Criação do Script SQL

Aqui está um exemplo básico de script SQL para criar o esquema do banco de dados:

-- Consulte o script SQL na seção correspondente para criar o banco de dados.

Etapa 4: Persistência de Dados

Após criar o esquema, inserimos dados de exemplo nas tabelas para realizar testes. Consulte o script SQL na seção correspondente para exemplos de inserção.

Etapa 5: Criação de Queries

Desenvolvemos queries SQL para operações mais complexas no banco de dados, permitindo uma análise mais aprofundada. Consulte a seção correspondente para exemplos de queries.


Observações:

  • Certifique-se de ajustar os scripts conforme necessário para atender às necessidades específicas do seu projeto.
  • Execute os scripts em seu sistema de gerenciamento de banco de dados para criar o esquema e persistir dados.
  • As queries fornecidas são exemplos; personalize-as conforme necessário.

Agora, você está pronto para construir e explorar seu banco de dados para a oficina mecânica!

dio-bootcamp-build-a-logical-database-project-from-scratch's People

Contributors

lgustavopuga avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.