Клуб разработчиков программных систем

Истории Про Сервис

Темы | Статьи | Рейтинги |

Форум

[Все сообщения]

Тема : Моделирование данных в Rational Rose
Имя : Светлана Город : Обнинск 11/08/2003 04:04
Сообщение:
Подскажите пожалуйста:
1) В каких случаях в Logical View, Schemas на схемах БД используется view (этот инструмент присутствует на панеле инструментов, доступной в момент работы со схемой), нужно ли это для создания полноценных классов классов?
2) При работе с БД есть ли целесообразность делать классами строки таблицы, ведь принципы работы одни и те же со всеми БД, нужно создавать, редактировать, удалять строки таблицы, которые являются целостными в моем случае сущностями?

Ответы:


Тема : Моделирование данных в Rational Rose
Имя : Сергей Трофимов 11/08/2003 20:03
Сообщение:
Здесь нужно понимать, что при проектировании структуры данных создается _физическая_ модель, а классы приналежат к логической, поэтому классы могут использоваться только для обработки конкретных таблиц и представлений.
При проектировании классов не обязательно создавать таблицы и представления, также как и при проектировании структуры таблиц - не обязательно создавать классы их обрабатывающие. Однако, если принять за основу стиль проектирования классов: граничный класс-контроллер-сущность, то классы сущьностей как раз и будут связаны с конкретной таблицей данных или view.
View используется если необходима организация доступа к нескольким таблицам или для доступа "только чтение".
Таким образом, в общем случае необходимо создать структуру таблицы данных и класс ее обрабатывающий. Как Вы правильно заметили, обработка у всех таблиц одинаковая, поэтому можно создать абстрактный класс для реализации общих алгоритмов, а затем унаследовать его в конкретном классе-сущности.

Тема : Моделирование данных в Rational Rose
Имя : Светлана Город : Обнинск 19/08/2003 04:01
Сообщение:
Еще раз извините за беспокойство. Могу ли я унаследовать этот "абстрактный класс" каждым из объектов объектной модели, сгенерированной из схемы БД? Хороший ли это будет способ?

Тема : Моделирование данных в Rational Rose
Имя : Сергей Трофимов 19/08/2003 21:34
Сообщение:
Не нужно смешивать модель данных, которая создается при помощи Data Modeler и логическую модель классов. Создайте структуру таблицы в Data Modeler, затем создайте класс в диаграмме классов, который отвечает за редактирование конкретной таблицы и унаследуйте его от абстрактного класса о котором говорилось ранее. Это будет более или менее нормально для, например, MS SQL. Возможны и другие варианты, это уже вопрос конкретного проекта и конкретных СУБД.

Тема : Моделирование данных в Rational Rose
Имя : Светлана Город : Обнинск 20/08/2003 05:06
Сообщение:
И все-таки не совсем понятно, для чего нужна объектная модель, генерируемая Data Modeler, занимают ли ее классы, а это уже именно классы (И чем тогда будут объекты - экземпляры этих классов?) какое-то место среди остальных классов или же это только представление самой базы данных... Почему тогда нельзя в эти классы добавлять обработку как получается их атрибутов? И как например тогда работать с информацией из БД? Как к примеру выбрать все строки таблицы? Где можно получить к ним доступ, через атрибуты каких объектов, через что вообще? Или нужно на конкретном языке писать запросы к БД?

Тема : Моделирование данных в Rational Rose
Имя : Сергей Трофимов 20/08/2003 09:16
Сообщение:
Представьте, что нет у Вас RR, а есть только ERwin и Visual Studio, тогда будет создана структура таблиц и представлений в ERwin, а классы запрограммированы руками. Так и здесь с той лишь разницей, что структуру таблиц и представлений создаете в Data Modeler, а классы в диаграмме классов. Для простой структуры данных в MS SQL вообще нет необходимости использовать Data Modeler, создайте структуру руками или при помощи встроенного в Enterprise Manager редактора диаграмм. Трансформация в объектную модель лишь помогает создать структуру классов, чтобы получить список классов с нужными атрибутами. Конечно, в эти классы можно и нужно добавить обработку атрибутов при помощи, например, ADO, для получения данных и сохранения обновлений в базе. Здесь уже вопрос о программировании, а не о проектировании.


Комментарии к статьям закрыты.

© Trofimov Sergey   http://www.caseclub.ru при цитировании ссылка обязательна.