Метод проектирования логической структуры реляционной бд для веб-приложений без нормализации таблиц

Вид материалаКраткое содержание

Содержание


4.3. Сравнение DBDesigner с другими CASE-средствами проектирования БД
4.4. Экспериментальное сравнение логических структур реляционных БД полученных предлагаемым и классическим методом проектировани
Рубашка: модель | цвет | ткань | размер | цена | количество
МЦЦ: модель | цвет | цена
МЦР можно декомпозировать на три таблицы в 4НФ, если ввести суррогатные первичные ключи: МЦ: мц_id | модель | цвет
МЦР: мц_id | мр_id | количество
Рубашка: модель | цвет | ткань | размер | цена | количество
Заключение Об объектно-ориентированных базах данных
О возможности применения предложенного метода для разработки ИС других типов
Результаты диссертации
Список публикаций по теме диссертационной работы
Список литературы
Подобный материал:
1   2   3   4   5   6   7

4.3. Сравнение DBDesigner с другими CASE-средствами проектирования БД


DBDesigner отличается от других CASE-средств тем, что:
  1. Поддерживает типы функциональных требований и связи между функциональными требованиями и сущностями. На этапе проектирования позволяет отследить сущности несвязанные ни с одним функциональным требованием и функциональные требования типа Insert несвязанные ни с одной сущностью.
  2. Работа в любом браузере, т.е. не требуется устанавливать никакого специального программного обеспечения.

4.4. Экспериментальное сравнение логических структур реляционных БД полученных предлагаемым и классическим методом проектирования


Пример №1

Рассмотрим сначала пример из первой главы. Классическим методом была получена следующая логическая структура БД:



А интуитивно было понятно, что вполне достаточно одной таблицы. Теперь можно обосновать уже формально, что полученная одна таблица пользователей вполне удовлетворяет поставленной задаче и никаких аномалий модификации данных в рамках заданных функциональных требований не возникнет. В самом деле, было ровно одно функциональное требование типа Insert – добавить пользователя. Ровно одному функциональному требованию соответствует сущность «Пользователь» на концептуальному уровне проектирования. На логическом уровне сущность «Пользователь» представляется таблицей user в базе данных. Все сравнительные выводы в первой главе по этим двум структурам БД полученным для одной и той же задачи остаются справедливыми.

Пример №2

Требуется разработать интернет-магазин по продаже рубашек. Имеется следующая информация о предметной области. Рубашка может быть различной модели, например, классическая, классическая с коротким рукавом, в клетку, для отдыха и т.д. Каждая модель выполняется из определенного типа ткани (хлопок, синтетика, хлопок-75% и т.д.). Каждая модель может быть реализована в различных цветах (белый, черный, синий и т.д.). Модели выпускаются определенных размеров. Например, могут быть модели только для полных людей больших размеров. Цена рубашки зависит только от модели и цвета. Надо учитывать количество рубашек. Новые рубашки оператор интеренет-магазина добавляет на сайт. Если рубашки заданного типа поступили на склад, но они уже есть на сайте, то оператор только увеличивает их количество. Посетители добавляют рубашки в корзину и оформляют заказ. При отгрузке заказа оператор нажимает кнопку напротив соответствующего заказа и программа пересчитывает количество оставшихся рубашек.


Решим сначала эту задачу классическим методом. Рубашки, заказ и содержимое заказа интуитивно являются сущностями. Имеем следующие отношения:

Рубашка: модель | цвет | ткань | размер | цена | количество

Заказ: №заказа | Фио клиента | контакты клиента

Содержимое заказа: №заказа | модель | цвет | размер | количество

Имеем следующие зависимости между атрибутами:

модель→→цвет

модель→→размер

модель, цвет → цена

модель → ткань

модель, цвет, размер → количество

Первичным ключом является набор атрибутов «модель, цвет, размер». Нетрудно видеть, что данная таблица не находится даже во второй нормальной форме, т.к. цена зависит от части первичного ключа.

Для приведения таблиц к нормальным формам более высоких порядков мы должны выполнить следующую декомпозицию таблицы Рубашка на две таблицы:

МЦЦ: модель | цвет | цена

МЦР: модель | цвет | размер | количество

Причем вторую таблицу к 4НФ привести нельзя. В результате получили вместо одной таблицы две довольно странные таблицы и поскольку одна из них не находится в 4НФ, то в соответствии с классическим методом у нас могут быть аномалии модификации данных.


Таблицу МЦР можно декомпозировать на три таблицы в 4НФ, если ввести суррогатные первичные ключи:

МЦ: мц_id | модель | цвет

МР: мр_id | модель | размер

МЦР: мц_id | мр_id | количество

В результате полученные таблицы МЦ, МР и МЦР не соответствуют реальным объектам в предметной области. Работать с такими таблицами существенно тяжелее, чем с одной первоначальной таблицей.


Решая данный пример предложенным методом, получим ровно три таблицы:

Рубашка: модель | цвет | ткань | размер | цена | количество

Заказ: №заказа | Фио клиента | контакты клиента

Содержимое заказа: №заказа | модель | цвет | размер | количество

И будем уверены, что никаких аномалий модификации данных в рамках заданных функциональных требований не возникнет.


Классический метод проектирования дает максимально возможное количество таблиц в структуре БД. Предложенный в диссертации метод дает необходимое количество таблиц в контексте заданных функциональных требований.

4.5. Результаты


Разработано и описано CASE-средство DBDesigner, которое позволяет классифицировать функциональные требования и проверить соответствует ли каждому функциональному требованию типа INSERT сущность и наоборот.


Заключение

Об объектно-ориентированных базах данных


Надо отметить, что в объектно-ориентированных базах данных и XML нет проблем с идентификацией сущностей и их атрибутов, т.к. там нет между ними никакого различия. Атрибут может быть сам сколько угодно сложным объектом и содержать в себе другие объекты. Но объектно-ориентированные СУБД и XML не используются для работы с большими объемами данных из-за низкой производительности. В настоящее время подавляющее большинство информационных систем работает с реляционными СУБД.

О возможности применения предложенного метода для разработки ИС других типов


В первой главе была приведена классификация программного обеспечения по данным ВикипедиЯ. Исходя из предложенной модели можно утверждать, что данный метод будет работать для всех типов программного обеспечения, для которых функциональные требования можно классифицировать согласно предложенной классификации во второй главе. Если же функциональные требования не конкретны, могут существенно меняться и дополняться, то предложенный метод работать не будет.

Результаты диссертации


В своей культовой книге [79. стр. 16-19] Фредерик Брукс показывает разницу между системным программным продуктом и программой сделанной на коленках в гараже. В 16й главе Ф. Брукс делает утверждение, которое не опровергнуто опытом за последние 25 лет с момента выхода первого издания его книги: «Нет ни одного открытия, ни в технологии, ни в методах управления, одно только использование которого обещало бы в течение ближайшего десятилетия на порядок повысить производительность, надежность, простоту разработки программного обеспечения».

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


В результате проведенных теоретических и экспериментальных исследований в настоящей диссертационной работе получены следующие результаты:

  1. Результаты полученные в первой главе:
    1. Разные проектировщики идентифицируют разные функциональные зависимости, а следовательно получат разные структуры данных на основе одного и того же технического задания.
    2. Идентификации всех функциональных зависимостей процесс очень трудоемкий, т.к. нужно рассмотреть не менее n*(n-1) пар потенциальных функциональных зависимостей.
    3. Зависимость конечного результата проектирования от опыта и субъективного взгляда проектировщика, а не от формального метода проектирования.
    4. Существующие определения сущности и атрибута сущности не являются определениями. Используя их невозможно формально классифицировать объект предметной области как сущность или как атрибут другой сущности.
    5. В процессе проектирования структуры БД необходимо учитывать функциональные требования к информационной системе.
    6. Формальное применение процесса нормализации таблиц может дать плохую структуру БД с точки зрения производительности, трудоемкости разработки приложения для работы с БД.
    7. Впервые классифицированы случаи, когда можно работать с таблицами в 1НФ, 2НФ и 3НФ.
    8. Впервые дано определение структуры БД неадекватной предметной области.
    9. Показаны ошибки в теории Рональда Фагина о доменно-ключевых нормальных формах.
  2. Результаты полученные во второй главе:
    1. Впервые введена классификация функциональных требований на основе влияния реализации функциональных требований на данные в БД.
    2. Разработана усовершенствованная модель «сущность-связь» устранившая неточности в определениях основных понятий, в частности введено четкое разграничение между сущностью, атрибутом сущности. Любой объект предметной области теперь можно формально отнести либо к сущности либо к ее атрибуту. Усовершенствованная модель «сущность-связь» получена из классической модели «сущность связь» путем добавления в нее функциональных требований и связей между функциональными требованиями и сущностями.
  3. Результаты третьей главы:
    1. Разработан метод проектирования логической структуры реляционной базы данных на основе усовершенствованной модели «сущность-связь» не требующий выполнения процесса нормализации и в значительной степени независимый от проектировщика. Разработанный метод не имеет недостатков перечисленных в первой главе, которые присущи классическому методу проектирования структуры БД.
    2. Разработано CASE-средство DBDesigner для частичной автоматизации проектирования структуры реляционной базы данных на основе усовершенствованной модели «сущность-связь».



  1. В четвертой главе на основе эксперимента были продемонстрированы преимущества предложенного метода по сравнению с классическим.
  2. На основе функциональных требований можно производить оценку стоимости и сроков проекта.


Метод проектирования логической структуры реляционной базы данных на основе усовершенствованной модели «сущность-связь» и CASE-средство DBDesigner внедрены в компании ITSoft. На основе описанного метода разработаны следующие информационные системы:

  1. ITCMS – система управления контентом веб-сайта. Подробное описание ITCMS можно найти на сайте itcms.ru.
  2. ITCRM – система управления взаимоотношениями с клиентами.
  3. HOSTADMIN – система управления хостингом.




Список публикаций по теме диссертационной работы

  1. Тарасов И. А., Проблемы качественного проектирования БД на базе классического метода: Качество Инновации Образование. М: Номер 3 (34), март 2008, с. 51-56.
  2. Тарасов И. А., Усовершенствованная ERT-модель сущность-связь: Качество Инновации Образование. М: Номер 6 (37), июнь 2008, с. 47-50.
  3. Тарасов И. А., Метод проектирования логической структуры реляционной БД на основе ERT-модели: Качество Инновации Образование. М: Номер 4 (35), апрель 2008, с. 47-50.
  4. Тарасов И. А., Основание нормальных форм таблиц и функциональных зависимостей реляционных баз данных: Проектирование телекоммуникационных и информационных средств и систем. М.: МИЭМ, 2007, с. 199.
  5. Тарасов И. А., Целостность данных, аномалии модификации данных и нормальные формы таблиц реляционных баз данных: Проектирование телекоммуникационных и информационных средств и систем. М.: МИЭМ, 2007, с. 195.
  6. Беликов С. А., Воротилин П. С., Тарасов И. А., Модель жизненного цикла разработки ИС на базе веб-технологий: Научно-техническая конференция студентов, аспирантов и молодых специалистов МИЭМ. М.: МИЭМ, 2007, с 245.
  7. Воротилин П. С., Тарасов И. А., Программно-аппаратный комплекс IT-HOSTING: Научно-техническая конференция студентов, аспирантов и молодых специалистов МИЭМ. М.: МИЭМ, 2006, с 196.
  8. Воротилин П. С., Суржко Д. А., Тарасов И. А., Интегрированная среда разработки и поддержки Web-сайтов и Web-сервисов: Научно-техническая конференция студентов, аспирантов и молодых специалистов МИЭМ. М.: МИЭМ, 2005, с 229.
  9. Галыгин А.Н., Тарасов И.А., Ширинкин Е.А. Тестирование в информационно-образовательной среде: Научно-техническая конференция студентов, аспирантов и молодых специалистов МИЭМ. М.: МИЭМ, 2002, с 135-136.

Список литературы

  1. Fagin R.A. Normal Form for Relational Databases That is Based on Domains and Key //ACM Transactions on Database Systems. - 1981. - V.6, №3. - P.387-415.
  2. Пушников А.Ю. Введение в системы управления базами данных. Часть 1. Реляционная модель данных: Учебное пособие/Изд-е Башкирского ун-та. - Уфа, 1999. - 108 с. - ISBN 5-7477-0350-1.
  3. Пушников А.Ю. Введение в системы управления базами данных. Часть 2. Нормальные формы отношений и транзакции: Учебное пособие/Изд-е Башкирского ун-та. - Уфа, 1999. - 138 с. - ISBN 5-7477-0351-X.
  4. Дейт К. Введение в системы баз данных, 8-е издание.: Пер. с англ. — М.: Издательский дом "Вильямс", 2006. — 1328 с.
  5. Д. Кренке Теория и практика построения баз данных. 9е изд. — СПб.: Питер, 2005 — 859 с.
  6. Г. Гарсиа-Молина и др. Системы баз данных. Полный курс. — М.: Издательский дом "Вильямс", 2004. — 1088 с.
  7. Джен Л. Харрингтон Проектирование реляционных баз данных — М.: Издательство «Лори», 2006 — 230 с.
  8. Тарасов И. А., Проблемы качественного проектирования БД на базе классического метода: Качество Инновации Образование. М: Номер 3 (34), март 2008, с. 51-56.
  9. Вигерс Карл Разработка требований к программному обеспечению — М.: Издательско-торговый дом «Русская редакция», 2004 — 576 с.
  10. Тарасов И. А., Усовершенствованная ERT-модель сущность-связь: Качество Инновации Образование. М: Номер 6 (37), июнь 2008, с. 47-50.
  11. Chen P. P.-S. The Entity-Relationship Model – Toward a Unified View of Data // ACM TODS. March 1976. – 1, №1.
  12. Codd E. F. Extending the Database Relational Model to Capture More Meaning // ACM TODS. – December 1979. – 4, №4.
  13. ГОСТ 34.320-96 Информационные технологии. Система стандартов по базам данных. Концепции и терминология для концептуальной схемы и информационной базы
  14. FAGIN, R. Multivalued dependencies and a new normal form for relational databases. ACM Trans. Database Syst. 2, 3 (Sept. 1977), 262-278.
  15. Жилин Д. М. Теория систем. КомКнига, 2006 г.
  16. Вьейра, Роберт. SQL Server 2000. Программирование. БИНОМ, 2004 г.
  17. Хендерсон К. Профессиональное руководство по Transact-SQL. ПИТЕР, 2005 г.
  18. Гарсиа М. Ф., Рединг Дж., Ущлен Э., ДеЛюк С. А. Microsoft SQL Server 2000. Справочник администратора. СП ЭКОМ, 2004 г.
  19. Хоторн Р. Разработка Microsoft SQL Server 2000 на примерах. Вильямс, 2001 г.
  20. Microsoft Corporation. Проектирование и реализация баз данных Microsoft SQL Server 2000. ПИТЕР, 2005 г.
  21. Фаулер М. Архитектура корпоративных программных приложений. Вильямс, 2006 г.
  22. Дейтел Х. М., Дейтел П. Дж., Нието Т. Р., Лин Т. М., Садху П. Как программировать на XML. БИНОМ, 2001 г.
  23. Розенберг Д., Скотт К. Применение объективного моделирования с использованием UML и анализ прецедентов. ДМК Пресс, 2002 г.
  24. Коберн А. Современные методы описания функциональных требований к системам. Лори, 2002 г.
  25. Керниган Б., Ритчи Д. Язык программирования Си. Невский Диалект, 2001 г.
  26. Керниган Б., Пайк Р. Практика программирования. Невский Диалект, 2001 г.
  27. Браудс Э. Технология разработки программного обеспечения. ПИТЕР, 2004 г.
  28. Дюбуа П. MySQL. Вильямс, 2004 г.
  29. Басс Л., Клементс П., Кацман Р. Архитектура программного обеспечения на практике. ПИТЕР, 2006 г.
  30. Веллинг Л., Томсон Л. Разработка Web-приложений с помощью РНР и MySQL. Вильямс, 2003 г.
  31. Мацяшек, Лешек А. Анализ требований и проектирование систем. Разработка информационных систем с использованием UML. Вильямс, 2002 г.
  32. Фаулер М. Рефакторинг: улучшение существующего кода. Символ-Плюс, 2005 г.
  33. Липаев В. В. Надежность программных средств. Синтег, 1998 г.
  34. Орлов С. А. Технологии разработки программного обеспечения. Учебное пособие. ПИТЕР, 2003 г.
  35. Мартин Р. С. Быстрая разработка программ: принципы, примеры, практика. Вильямс, 2004 г.
  36. Коналлен Дж. Разработка Web-приложений с помощью UML. Вильямс, 2001 г.
  37. Маклаков С. В. Создание информационных систем с AllFusion Modeling Suite. Диалог-Мифи, 2003 г.
  38. Кватрани Т. Rational Rose 2000 и UML. Визуальное моделирование. ДМК Пресс, 2001 г.
  39. Палмер С., Фелсинг Дж. М. Практическое руководство по функционально-ориентированной разработки ПО. Вильямс, 2002 г.
  40. Ларман К. Применение UML и шаблонов проектирования. Вильямс, 2004 г.
  41. Спольски Дж. Х. Лучшие примеры разработки ПО. ПИТЕР, 2007 г.
  42. Дюбуа П. MySQL. Сборник рецептов. Символ-Плюс, 2004 г.
  43. Спольски Дж. Джоэл о программировании. Символ-Плюс, 2006 г.
  44. Хомяков П. М. Системный анализ: краткий курс лекций. КомКнига, 2006 г.
  45. Мамаев Е. В. Microsoft SQL Server 2000. БХВ-Петербург, 2005 г.
  46. Боггс У., Боггс М. UML и Rational Rose. Лори, 2000 г.
  47. Поллис Г., Огастин Л., Лод К., Мадхар Д. Разработка программных проектов: на основе Rational Unified Process (RUP). Бином-Пресс, 2005 г.
  48. Амблер С. Гибкие технологии: экстремальное программирование и унифицированный процесс разработки. ПИТЕР, 2005 г.
  49. Якобсон А., Буч Г., Рамбо Дж. Унифицированный процесс разработки программного обеспечения. ПИТЕР, 2002 г.
  50. Шафер Д., Фатрел Р., Шафер Л. Управление программными проектами: достижение оптимального качества при минимуме затрат. Вильямс, 2004 г.
  51. Гамма Э., Хелм Р., Ждонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. ПИТЕР, 2001 г.
  52. Гецци К., Джазайери М., Мандриоли Д. Основы инженерии программного обеспечения. БХВ-Петербург, 2005 г.
  53. Стотлемайер Д. Тестирование Web-приложений. Кудиц-Образ, 2003 г.
  54. Сэм К. Тестирование программного обеспечения. ДиаСофт, 2000 г.
  55. Карлберг К. Бизнес-анализ с помощью Microsoft Excel. Вильямс, 2007 г.
  56. Беннинга Ш. Финансовое моделирование с использованием Excel. Вильямс, 2007 г.
  57. Эмблер С., Садаладж П. Рефакторинг баз данных: эволюционное проектирование. Вильямс, 2007 г.
  58. Кузнецов М. В. MySQL 5. БХВ-Петербург, 2006 г.
  59. Компания MySQL АВ. MySQL. Руководство администратора. Вильямс, 2005 г.
  60. Мюллер Дж. Р. Базы данных и UML. Проектирование. Лори, 2002 г.
  61. Харари Ф. Теория графов. КомКнига, 2006 г.
  62. Фаулер М. UML. Основы, 3-е издание. Символ-Плюс, 2007 г.
  63. Антонов А. В. Системный анализ. Высшая школа, 2006 г.
  64. Боуман Дж. С., Эмерсон С., Дарновски М. Практическое руководство по SQL, 3-е издание. Вильямс, 2001 г.
  65. Рузавин Г. И. Методология научного познания. ЮНИТИ-ДАНА, 2005 г.
  66. Ашихмин В. Н., Гитман М. Б., Келлер И. Э., Наймарк О. Б., Столбов В. Ю., Трусов П. В., Фрик П. Г. Введение в математическое моделирование. Логос, 2005 г.
  67. Селко Дж. Программирование на SQL для профессионалов. Второе издание. Лори, 2004 г.
  68. Стоунз Р., Мэтью Н. PostgreSQL. Основы. Символ-Плюс, 2002 г.
  69. Марков А. С., Лисовский К. Ю. Базы данных. Введение в теорию и методологию. М.: Финансы и статистика, 2004г.
  70. Хаббард Дж. Автоматизированное проектирование БД. М.: 1984г.
  71. Fagin R. Multivalued Dependencies and New Normal Form for Relational Databases // ACM TODS. – September 1977/ -- 2, №3
  72. Fagin R. Normal Forms and Relational Database Operators // Proc. 1979 ACM SIGMOD Intern. Conf. on Management of Data. – Boston, Mass. – May—June 1979.
  73. A. V. Aho. C. Beeri, and J. D. Ullman. The theory of joins in relational data bases. Proc. 19th IEEE Symp. on Foundations of Computer Science (Oct. 1977). 107-1 13.
  74. ссылка скрыта
  75. ссылка скрыта
  76. Кузнецов С. Базы данных. Вводный курс ru/database/advanced_intro/25.shtml#image.9.3
  77. Гради Буч Объектно-ориентированный анализ и проектирование с примерами приложений на С++. Бином, 1998г.
  78. Макконелл С. Совершенный код. Русская редакция, Питер, 2005г.
  79. Брукс Ф. Мифический человеко-месяц или как создаются программные системы. Символ-Плюс, 2001г.