Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Preciso de ajuda para um projeto no brModelo

Identificação das Entidades e Atributos:

Livro: ISBN, título, ano de publicação. Autor: nome, nacionalidade. Membro: nome, e-mail, endereço (composto por CEP, rua, número e complemento), telefones (composto de número e tipo). Empréstimo: data_emprestimo, data_devolucao. Categoria: nome e descrição. Editora: nome, cidade, CNPJ.

Relacionamentos:

• Um livro pode ter vários autores, e um autor pode escrever vários livros. • Um livro pode ser publicado por apenas uma editora, mas uma editora pode publicar vários livros. • Um livro pertence a uma categoria, e uma categoria pode incluir vários livros. • Um membro pode pegar emprestado vários livros, mas cada empréstimo é relacionado a apenas um membro. • Um empréstimo envolve um livro específico. Considerações: todas as entidades deverão possuir um atributo Identificador.

Para esta atividade mapa, você deve:

  1. Criar o Diagrama Entidade Relacionamento (DER), que representa o projeto conceitual, com o uso da notação de CHEN.
  2. Criar o Modelo Entidade Relacionamento (MER), que representa o modelo lógico, por meio da tradução do DER criado anteriormente.
  3. Criar o projeto físico, por meio de código SQL, efetuando a criação do esquema de tabelas, respectivo ao MER criado anteriormente.
1 resposta
solução!

Olá, Mauricio, tudo bem?

Uau! Projeto completo, hein? hehehe... Vou te ajudar a identificar quais são as entidades e atributos para que você possa construir o modelo. Em seguida quais são os relacionamentos entre as entidades, o MER e por fim sugestões de códigos SQL.

Passo 1: Criar o Diagrama Entidade Relacionamento (DER)

Entidades e Atributos:

  1. Livro

    • ISBN (Identificador)
    • título
    • ano de publicação
  2. Autor

    • id_autor (Identificador)
    • nome
    • nacionalidade
  3. Membro

    • id_membro (Identificador)
    • nome
    • e-mail
    • endereço (atributo composto: CEP, rua, número e complemento)
    • telefones (atributo composto: número e tipo)
  4. Empréstimo

    • id_emprestimo (Identificador)
    • data_emprestimo
    • data_devolucao
  5. Categoria

    • id_categoria (Identificador)
    • nome
    • descrição
  6. Editora

    • id_editora (Identificador)
    • nome
    • cidade
    • CNPJ

Relacionamentos:

  • Livro-Tem-Autor (N) entre Livro e Autor (criação de uma tabela associativa).
  • Livro-É-Publicado-Por-Editora (N:1) entre Livro e Editora.
  • Livro-Pertence-A-Categoria (N:1) entre Livro e Categoria.
  • Empréstimo-É-Feito-Por-Membro (N:1) entre Empréstimo e Membro.
  • Empréstimo-Envolve-Livro (N:1) entre Empréstimo e Livro.

Passo 2: Criar o Modelo Entidade Relacionamento (MER)

No MER, vamos traduzir o DER para um modelo lógico, considerando chaves primárias e estrangeiras.

Tabelas:

  1. Livro

    • ISBN (PK)
    • titulo
    • ano_publicacao
    • id_editora (FK)
    • id_categoria (FK)
  2. Autor

    • id_autor (PK)
    • nome
    • nacionalidade
  3. Membro

    • id_membro (PK)
    • nome
    • email
    • cep
    • rua
    • numero
    • complemento
    • telefone_numero
    • telefone_tipo
  4. Emprestimo

    • id_emprestimo (PK)
    • data_emprestimo
    • data_devolucao
    • id_membro (FK)
    • ISBN (FK)
  5. Categoria

    • id_categoria (PK)
    • nome
    • descricao
  6. Editora

    • id_editora (PK)
    • nome
    • cidade
    • CNPJ
  7. Escreve

    • id_autor (FK)
    • ISBN (FK)

Passo 3: Criar o projeto físico com código SQL

Aqui deixo como sugestões códigos SQL para criação das tabelas:

CREATE TABLE Editora (
    id_editora INT PRIMARY KEY,
    nome VARCHAR(100),
    cidade VARCHAR(100),
    CNPJ VARCHAR(20)
);

CREATE TABLE Categoria (
    id_categoria INT PRIMARY KEY,
    nome VARCHAR(100),
    descricao TEXT
);

CREATE TABLE Livro (
    ISBN VARCHAR(20) PRIMARY KEY,
    titulo VARCHAR(100),
    ano_publicacao INT,
    id_editora INT,
    id_categoria INT,
    FOREIGN KEY (id_editora) REFERENCES Editora(id_editora),
    FOREIGN KEY (id_categoria) REFERENCES Categoria(id_categoria)
);

CREATE TABLE Autor (
    id_autor INT PRIMARY KEY,
    nome VARCHAR(100),
    nacionalidade VARCHAR(100)
);

CREATE TABLE Membro (
    id_membro INT PRIMARY KEY,
    nome VARCHAR(100),
    email VARCHAR(100),
    cep VARCHAR(10),
    rua VARCHAR(100),
    numero INT,
    complemento VARCHAR(100),
    telefone_numero VARCHAR(20),
    telefone_tipo VARCHAR(20)
);

CREATE TABLE Emprestimo (
    id_emprestimo INT PRIMARY KEY,
    data_emprestimo DATE,
    data_devolucao DATE,
    id_membro INT,
    ISBN VARCHAR(20),
    FOREIGN KEY (id_membro) REFERENCES Membro(id_membro),
    FOREIGN KEY (ISBN) REFERENCES Livro(ISBN)
);

CREATE TABLE Escreve (
    id_autor INT,
    ISBN VARCHAR(20),
    PRIMARY KEY
    

Mauricio, como complemento, recomendo o curso Modelagem de banco de dados relacional: modelagem lógica e física. O projeto deste curso é baseado em um Clube do Livro, o que se assemelha ao seu projeto, podendo servir de inspiração e apoio para a construção da sua modelagem, além de apresentar as ferramentas utilizadas no processo.

Espero ter ajudado.

Qualquer dúvida, não hesite em compartilhar no fórum.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!