Olá, pessoal! As notas do exercício 1 estão disponíveis aqui no PACA.
Por favor, **leiam as observações que fiz para cada um de vocês**, mesmo aqueles que tiraram 10, pois eu não descontei pontos de alguns erros, mas na prova vocês não devem repeti-los.
A correção foi feita da seguinte forma: aqueles que entregaram um diagrama MER (ou seja, com pelo menos duas entidades e pelo menos um relacionamento) começaram com nota 10, e então foram feitos descontos na nota, de acordo com os seguintes critérios:
- Não separou a entidade livro da entidade exemplar -0,5
- Não modelou o empréstimo de um exemplar -0,5
- Modelou entidade como atributo (ou vice versa) -0,5
- Uso inadequado de relacionamentos* -0,5
- Uso inadequado de atributos compostos -0,5
- Uso inadequado de atributos multivalorados -0,5
- Cardinalidade incorreta** -0,5
- Ausência de restrição de cardinalidade -0,5
- Ausência de restrição de participação total -0,5
- Não identificou atributos chave -0,25
- Não modelou a reserva de um exemplar -0,25
- Não modelou a devolução de um exemplar -0,25
- Não indicou data de empréstimo/reserva/devolução -0,25
- Não distinguiu usuário professor de aluno -0,25
- Ausência do relacionamento entre cópia e usuário -0,25
* Envolve uso de relacionamento de relacionamentos (dois losangos diretamente conectados, informalmente falando), relacionamentos soltos (sem conectados apenas a uma entidade), especialização de relacionamentos, não utilização de relacionamentos (entidades conectadas entre si sem um relacionamento)
** Em mais de dois relacionamentos (dois ou mais erros de cardinalidade). Erros cometidos apenas nos relacionamentos de empréstimo, reserva e devolução foram contados como apenas um erro.
Não descontei pontos por:
- Ordem da cardinalidade incorreta
- Ordem da restrição de participação incorreta
- Entidades fracas modeladas como fortes (e vice versa)
- Falta de chave parcial em entidades fracas
- Falta de alguns atributos (que não são chaves)
- Uso de atributos que seriam atributos derivados
- Não diferenciou livros não emprestáveis dos que são
Erros comuns:
- Não separar o conceito de "Livro" e "Exemplar" (ou "Cópia"). Sem essa separação, o usuário irá pegar emprestado/reservar/devolver todos os exemplares de um livro! Não será possível controlar qual exemplar está com qual usuário, quando cada um deles deve ser retornado, etc.
- Muitos de vocês utilizaram de forma errônea os atributos compostos. A grande maioria especificou atributos compostos indicando os valores que podem ser assumidos por eles. Um atributo composto irá assumir valores para todas os atributos que o compõem, como é o caso de "nome" sendo composto de "primeiro nome", "segundo nome" e "terceiro nome". A especificação do domínio (valores possíveis) do atributo deve ser feita por escrito ao lado do diagrama, e não por meio de atributos compostos.
- Empréstimo modelado como 1:N em vez de M:N. Um mesmo exemplar pode ser emprestado a dois alunos diferentes, desde que em períodos diferentes.
- Muitos também colocaram a lista de livros indisponíves como atributo multivalorado da entidade Livro. Desse modo, cada instância de Livro terá uma lista de livros indisponíveis associada a ela!
Detalhes que não são necessariamente erros, mas vale a pena prestar atenção:
- Quando estamos construindo nosso MER ou MERX, queremos modelar as informações que possuem dados que desejamos armazenar, para que depois possamos realizar consultas sobre eles. No caso do exercício, algumas pessoas se confundiram com o seguinte: "Os bibliotecários desejam poder acessar essa descrição quando os usuários solicitarem informações sobre um livro". O fato de usuários poderem solicitar informações sobre um livro não vai gerar nenhum dado a ser armazenado (não há nada no texto que diz que os bibliotecários gostariam de saber qual usuário buscou informações de qual livro, por exemplo). Dessa forma, isso se trata de uma funcionalidade do sistema, mas não precisa aparecer na nossa modelagem de dados.
Agora que vocês já aprenderam sobre o projeto lógico de BDs e já sabem fazer o mapeamento do MER para o modelo relacional, acredito que dê para entender melhor o que quero dizer. Quando colocamos no diagrama um relacionamento M:N 'consulta', por exemplo, entre livro e usuário, isso irá gerar uma relação (ou tabela) no nosso modelo relacional.
- Procurem deixar os nomes dos relacionamentos, entidades e atributos os mais claros possíveis. Quando isso não for possível, procurem escrever uma observação ao lado do diagrama. Se um atributo assume um conjunto fixo de valores, especifique por escrito.
Por favor, confiram suas notas e me mandem um e-mail (luci@ime.usp.br) caso exista um erro de conta.
Para aqueles que quiserem contestar a nota, podem me mandar um e-mail também ou então comparecer à monitoria.
Bom fim de semana a todos!