Как проверить базу данных?

Рейтинг: 1Ответов: 1Опубликовано: 13.09.2014

Получив задание на лабу, я спроектировал базу данных, и вроде все неплохо, но мне совершенно не нравиться, как сделана работа с адресами, а что-то другое в голову не приходит.

Что можно сделать для хранения адреса и есть ли в базе косяки, которые я не заметил?

Вот задание на лабу и ниже сама база. Жирным обозначены ключи.

Банковский справочник (информация для клиентов).

Банки, отделения, адреса и время работы.
Процентные ставки по кредитам и депозитам.
Виды и условия кредитования.
Сеть банкоматов.

А.
Найти банк, в котором процентные ставки по депозитам наибольшие, а по кредитам – наименьшие.

Б.
Для указанного банка найти другие банки, которые предлагают лучшие условия кредитования.

В.
Найти банки с лучшими условиями по депозитам на один год и наибольшей сетью банкоматов.

Г.
Найти улицу, на которой больше всего отделений банков; банкоматов.

Д.
Для указанного банка и суммы кредита показать для каждого кредитного предложения ежемесячный платеж.

Е.
Какие банки только кредитуют и не предлагают размещать депозиты? alt text

Ответы

▲ 1Принят

Ошибок (или сомнительных мест) на самом деле очень много:

  1. Вбейте гвоздь в голову тому, кто научил вас повсеместно использовать составные первичные ключи. Не то чтобы совсем ужасная практика, но все же нездоровая.
  2. В таблице расписаний, по всей видимости, нарушена 1-я нормальная форма - в одном поле вы храните время работы. Если это не timestamp (что бессмысленно, ведь в этой ситуации интересует именно время начала и окончания), то это нарушение 1НФ.
  3. Весьма сомнительно выглядит отдельная таблица для номеров домов.
  4. Столь же сомнительно наличие в таблице улиц, ссылки на таблицу номеров домов и отсутствие таковой в таблице адресов.
  5. По всей вероятности, было бы неплохо завести таблицу городов.