Juri Shutenko Personal Homepage. Visual FoxPro.

Проектирование баз данных в Visual FoxPro. Часть 1

Целью создания любой базы данных является обеспечение хранения и извлечения информации. Первую задачу обеспечивает реляционная модель базы данных, доступ к которой обеспечивает какая-либо система управления базой данных (FoxPro, MS SQL, MySQL и т.п.). Вторую часть - язык SQL, обеспечивающих манипуляции с хранимыми данными, такими как выборка требуемых данных в требуемом объеме и требуемого качества, внесение даных и их обновление.

За долгие годы работы, выработались определенные принципы, следование которым сократит не только время, которое будет потрачено на разработку баз данных, но в большей степени, время, которое будет потрачено на разработку бизнес-логики и интерфейса. Из всего протестированного, выполненного с использованием FoxPro, в примерно 80 % случаев базы данных были разработаны либо некорректно, либо просто неграмотно.

Принципы просты и приведены ниже:

1. Определение предметной области. Как правило строится на техническом задании или описании. В любом техническом задании всегда много неопределенностей, поэтому прежде чем начать работу, уточните все до мелочей и зафиксируйте конечный вариант задания документально. Память - плохой помощник в этом деле, так как в отличие от вас, заказчик может просто сослаться на несуществующие в задании условия, а над его памятью или нарочитым "беспамятством" вы не властны.

2. Создание логической модели.Прежде чем начать физическое проектирование, выполните проектирование логический модели на бумаге. Фактически это означает построение детальной модели вашей базы данных. На этой стадии определяем все аттрибуты, их отношения, правила, для полей и для записей, что должно обеспечить защиту от ввода пользователем неверных или искаженных данных, что в свою очередь должно гарантировать непротиворечивость и целостность данных. Кроме того, на этом этапе определяются задачи, связанные с сопровождением базы данных. Наконец, это очень наглядный способ определения зависимостей и их анализа.

3. При логическом проектировании определите, если у вас еще не выработался свой стандарт, принципы наименования баз, таблиц, локальныx и удаленных представлений, соединений и т.д. Хорошо просмотрите все связи и процессы, на поверхности лежит иногда только малая часть. Не забывайте про граничные условия.

4.База должна быть спроектирована таким образом, чтобы в случае необходимости внесения изменений, вызванных внешними условиями (например, изменения в законодательстве) переделка не потребовала бы глобального изменения всего и всея. Предусмотрите способы отката изменений.

5.Позаботьтесь о резервировании. Изучите систему резервного копирования заказчика. Если у вас еще не выработан свой стандарт, изучите существующие. Не надейтесь на конечного пользователя. Не забывайте про эффект "5-ти часов" и "последнего рабочего дня недели". Восстановление данных должно производится с наименьшими потерями.

6.В случае необходимости осуществления изменений, связанных с выпуском новых версий програм, не вовлекайте в процесс внесения изменений конечного пользователя. Автоматизируйте процесс обновления - далее будет описано - как это сделать.

7.Проектирование "для себя" ничем не отличается от проектирования "для заказчика".

Может что-то и пропустил, но это всегда можно поправить.

Cелектор для быстрого перехода на сайты, связанные с Visual FoxPro.