powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / отображение ER-модели в ООМ
59 сообщений из 59, показаны все 3 страниц
отображение ER-модели в ООМ
    #34694985
NewbieArchitect
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проектировщики, скажите как это делается по уму. Есть спроектированная БД. Далее необходимо создать модель классов для клиента. Как это делается, есть ли какие-то принципы и правила?
Или просто таблица = класс ? Или объектно-ориентированная модель создается руками и не имеет отношения к БД?
Спасибо.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34696513
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или.
Как правило структура базы отражает структуру наиболее детальных фактов.
Классы же должны предоставлять уже какую-то полезную функциональность уровня прикладного разработчика. Речь ведь о каком-то приложении, а не инструменте?
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34697414
NewbieArchitect
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Речь идет о клиентском приложении, использующее данную БД.
Есть, допустим, таблица КЛИЕНТ в БД. Соответсвенно, придется создавать класс КЛИЕНТ в приложении. К тому же в CASE-средствах (в частности в PowerDesigner) есть возможность сгенерить модель классов из структуры БД. Я просто хотел узнать вообще так люди делают или как?
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34697747
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewbieArchitectПроектировщики, скажите как это делается по уму.

Scott Ambler's Articles and Other Writings
Поищите по "relational"

Еще есть книжка Enterprise Patterns Фаулера и сами паттерны

Enterprise Patterns

и на русском
Яндекс.Маркет : Архитектура корпоративных программных приложений
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34697755
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в кратце, ответ: и так и так. И из реляционной делают объектную и наоборот
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34720990
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewbieArchitectПроектировщики, скажите как это делается по уму. Есть спроектированная БД. Далее необходимо создать модель классов для клиента. Как это делается, есть ли какие-то принципы и правила?
Или просто таблица = класс ? Или объектно-ориентированная модель создается руками и не имеет отношения к БД?
Спасибо.

Класс моделирует структуру таблицы. Соответственно объект моделирует запись в таблице. Большинство GUI приложений имеют структуру классов однозначно соответствующую структуре реляционной БД. Для этих целей даже давно разработаны библиотеки компонентов доступа к данным. Приложения, которые самостоятельно изменяют данные должны ещё иметь набор классов, которые реализуют прикладные функции, но могут не иметь отражения в БД.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34722874
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewbieArchitectЕсть, допустим, таблица КЛИЕНТ в БД. Соответсвенно, придется создавать класс КЛИЕНТ в приложении.
Не придется - продолжайте работать с таблицами.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34724071
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод NewbieArchitectЕсть, допустим, таблица КЛИЕНТ в БД. Соответсвенно, придется создавать класс КЛИЕНТ в приложении.
Не придется - продолжайте работать с таблицами.

? Это как? Таблица это объект базы данных. За пределами базы данных в прикладных процессах нужно создавать временные копии записей базы данных, а для этого нужны соответствующие структуры данных ориентированные на решение конкретной задачи.
Пока модель данных не касается вопросов размещения объектов времени выполнения мы обычно можем не различать классы объектов БД и приложения. В процессе моделирования модуля приложения и модуля БД различия в поведении объектов БД и приложения начнут проявляться. Например, объект приложения живёт только в пределах его процесса, соответственно этот объект должен поддерживать функции сохранения в БД и восстановления из неё. Объекту БД эти функции не требуются. Довольно часто такое базовое поведение уже реализовано в библиотеке доступа к данным, так что генерация классов приложения из сущностей БД является формальной процедурой.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34724282
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab? Это как?
Я так понимаю, что человеку намекнули, что не всегда необходимо создавать в клиенте на каждый справочник по классу. Собственно, еще большой вопрос, когда необходимо создавать классы один в один в соответствии со структурой БД. На ум приходит только академический интерес.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34724438
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Васкецов mcureenab? Это как?
Я так понимаю, что человеку намекнули, что не всегда необходимо создавать в клиенте на каждый справочник по классу.

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

Сергей ВаскецовСобственно, еще большой вопрос, когда необходимо создавать классы один в один в соответствии со структурой БД. На ум приходит только академический интерес.

Почему?.. Oracle Type Translator (OTT) так и поступает. Для каждого типа БД он генерит эквивалентную конструкцию на языке C. Тут ситуация классическая, самые простые варианты - не генерить классы вообще или генерить 1:1. Все прочие ситуации выглядят определённо сложенее при том что покрывают только весьма частные решения.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34724454
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab? Это как?
Истина всегда конкретна :)
1. На экране грид = recordset (курсор и т.д.)
2. На экране форма = join одной записи одной таблицы с несколькими записями нескольких других таблиц
3. Расчеты по БД - прямая работа с recordset -ами (курсорами)
Какие еще объекты нужны ?
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34724528
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод mcureenab? Это как?
Истина всегда конкретна :)
1. На экране грид = recordset (курсор и т.д.)
2. На экране форма = join одной записи одной таблицы с несколькими записями нескольких других таблиц
3. Расчеты по БД - прямая работа с recordset -ами (курсорами)
Какие еще объекты нужны ?

Что то мне подсказывает, что во всех перечисленных случаях мы создаём класс приложения соответствующий сущности ER-модели. Этот класс наследует структуру сущности и определяет методы взаимодействия с СУБД и с графическеой подсистемой ОС. Даже если мы имеем дело с динамическим построением нового класса в Runtime, всё равно такой класс будет создан. Остаётся только решить, нужно ли его моделировать или можно сразу приступить к реализации.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34724600
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabOracle Type Translator (OTT) так и поступает.
Cуществует уйма тупых инструментов, которыми никто не пользуется.

mcureenabТут ситуация классическая, самые простые варианты - не генерить классы вообще или генерить 1:1.
Из них второй не имеет практического смысла, если говорить о приложениях сложнее записной книжки. Да и для записной книжки выгод нет, просто нет и явных проблем.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34724647
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabЧто то мне подсказывает, что во всех перечисленных случаях мы создаём класс приложения соответствующий сущности ER-модели.
В обсуждении этого утверждения очень важна терминология; очень легко прийти к неверному выводу из-за незаметного сопоставления понятий.

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

Эти модели в общем случае не связаны один к одному. Сущность может быть представлена таблицей; может быть представлена некоторыми строками таблицы (скажем, записями с type_id = 2), может быть раскидана по нескольким таблицам. В некоторых проектах такого разделения не делается; фактически это всего лишь означает, что архитектор рисует сразу физическую модель, а логическая остается "ненарисованной", либо "нарисованной сугубо формально".

Так вот: в принципе, можно было бы сказать, что во всех перечисленных сущностях создается класс, соответствующий сущности. Это было бы изрядно смелое утверждение, но в чем-то верное. Однако! Он соответствует именно сущности, а не таблице. И генерируя класс по таблице, ни к какому соответствию сущности мы не придем - исключая тривиальные приложения.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34724652
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer mcureenabOracle Type Translator (OTT) так и поступает.
Cуществует уйма тупых инструментов, которыми никто не пользуется.

mcureenabТут ситуация классическая, самые простые варианты - не генерить классы вообще или генерить 1:1.
Из них второй не имеет практического смысла, если говорить о приложениях сложнее записной книжки. Да и для записной книжки выгод нет, просто нет и явных проблем.

Два ничем не обоснованных утверждения. По крайней мере по п.2 для генерации кода я сам выбрал стратегию 1:1 и успешно её применил для решения практических задач.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34724675
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabДва ничем не обоснованных утверждения.
Ошибаетесь. Первое из них обосновано простейшей статистикой - зайдите в гугль и посмотрите, сколько раз вообще упоминается в мире эта замечательная технология.

Для сравнения: даже о другой мертвой технологии, родившейся примерно в то же время, "Oracle Objects For OLE" упоминаний на два порядка (!) больше.

mcureenabПо крайней мере по п.2 для генерации кода я сам выбрал стратегию 1:1 и успешно её применил для решения практических задач.
Из того, что Вы способны успешно дойти пешком из Москвы до Питера не следует, что этот вариант имеет практический смысл. Для наличия смысла нужно хоть какое-то преимущество над альтернативами.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34724724
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer mcureenabДва ничем не обоснованных утверждения.
Ошибаетесь. Первое из них обосновано простейшей статистикой - зайдите в гугль и посмотрите, сколько раз вообще упоминается в мире эта замечательная технология.

Для сравнения: даже о другой мертвой технологии, родившейся примерно в то же время, "Oracle Objects For OLE" упоминаний на два порядка (!) больше.

Сравнение не корректно. Непосредственно на OCI вообще не много систем разрабатывается, потому и откликов значительно меньше. Сомнительно, что оракл тратит деньги на эти разработки из бюджета PR.

mcureenabПо крайней мере по п.2 для генерации кода я сам выбрал стратегию 1:1 и успешно её применил для решения практических задач.
Из того, что Вы способны успешно дойти пешком из Москвы до Питера не следует, что этот вариант имеет практический смысл. Для наличия смысла нужно хоть какое-то преимущество над альтернативами.[/quot]

Преимущество как минимум в том, что оно сделано и работает и генератор кода совсем не замысловатый - указал имя таблицы, получил готовый код. Видимо, ближайшая альтернатива - перечислять только нужные поля таблицы, требует собственно получить список полей, исключить из него предположительно ненужные и только после этого сгенерить код.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34724747
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabСравнение не корректно. Непосредственно на OCI вообще не много систем разрабатывается, потому и откликов значительно меньше.
Во-первых, сравнение корректно, во-вторых, результаты вполне убедительно показывают мертвость того и другого.

Кстати, могу подкинуть еще одно сравнение - поищите в том же Гугле "KOLnMCK". Это такая библиотека, которую разработал и поддерживает один фанат на любительской основе. И при этом упоминаний о ней в пятнадцать раз больше, нежели о "якобы живом и хорошем инструменте" от такого монстра как Oracle.

Ну а если результаты чуть отрафинировать - выкинуть ссылки на oracle.com и на упоминания OTT в оракловой документации - так и вообще небось сотни ссылок не наберется.

mcureenabСомнительно, что оракл тратит деньги на эти разработки из бюджета PR.
На меня лично Oracle тоже не тратит денег из бюджета PR, но ссылок в гугле побольше

mcureenabПреимущество как минимум в том, что оно сделано и работает
Замечательное обоснование. Итого, любая работающая программа имеет преимущество уже в силу своего существования. Интересно только, над кем. Судя по контексту - над несуществующими; других альтернатив Вы не рассматриваете.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34724839
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer mcureenabПреимущество как минимум в том, что оно сделано и работает
Замечательное обоснование. Итого, любая работающая программа имеет преимущество уже в силу своего существования. Интересно только, над кем. Судя по контексту - над несуществующими; других альтернатив Вы не рассматриваете.

Да. В силу существования любая существующая программа лучше несуществующей просто потому что может приносить практическую пользу. Делать же несколько программ только для того чтобы сравнить их преимущетва не вижу смысла. Попробовал варианты, остановился на более подходящем, его и реализовал полностью.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34725619
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab мод mcureenab? Это как?
Истина всегда конкретна :)
1. На экране грид = recordset (курсор и т.д.)
2. На экране форма = join одной записи одной таблицы с несколькими записями нескольких других таблиц
3. Расчеты по БД - прямая работа с recordset -ами (курсорами)
Какие еще объекты нужны ?

Что то мне подсказывает, что во всех перечисленных случаях мы создаём класс приложения соответствующий сущности ER-модели
Ну, даже если классом считать саму форму, на которой это все валяется, все равно это бред. У меня по порядку величины тысяча таблиц в модели, но ни одного объекта в терминах ООП на клиенте, который бы характеризовал сущности модели, нет. Просто потому, что их не надо для работы.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34725630
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabДа. В силу существования любая существующая программа лучше несуществующей
Короче говоря, Вы закольцевали логику: взяли первую попавшуюся хрень, использовали ее, и поэтому она хороша, ее нужно использовать.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34726626
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabЧто то мне подсказывает, что во всех перечисленных случаях мы создаём класс приложения соответствующий сущности ER-модели.
Нет. Мы уже перешли от сущностей к рел. таблицам специально для того, что бы применять рел. операции. Вся обработка, в.т.ч. и отображение в UI, выполняется в терминах таблиц (м.б. и виртуальных).
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34727100
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод mcureenabЧто то мне подсказывает, что во всех перечисленных случаях мы создаём класс приложения соответствующий сущности ER-модели.
Нет. Мы уже перешли от сущностей к рел. таблицам специально для того, что бы применять рел. операции. Вся обработка, в.т.ч. и отображение в UI, выполняется в терминах таблиц (м.б. и виртуальных).

Понятно. Только чел сейчас хочет построить модель, а не приложение. Т.е. он хочет поработать на уровне ER модели и модели классов. Не знаю зачем ему это надо. Возможно требуется сохранить семантику модели, которая неизбежно будет потеряна при переходе на уровень таблиц и компонентов доступа к данным.

Тем не менее я не склонен отождествлять компоненты доступа к данным и таблицы даже при наличии взаимно однозначной трассировки. Компоненты доступа к данным работают с выборками, а не с таблицами, а выборка имеет гораздо больше полезных для приложения свойств, чем БД, например выборка может быть отфильтрована и упорядочена.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34727162
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Васкецов mcureenab мод mcureenab? Это как?
Истина всегда конкретна :)
1. На экране грид = recordset (курсор и т.д.)
2. На экране форма = join одной записи одной таблицы с несколькими записями нескольких других таблиц
3. Расчеты по БД - прямая работа с recordset -ами (курсорами)
Какие еще объекты нужны ?

Что то мне подсказывает, что во всех перечисленных случаях мы создаём класс приложения соответствующий сущности ER-модели
Ну, даже если классом считать саму форму, на которой это все валяется, все равно это бред. У меня по порядку величины тысяча таблиц в модели, но ни одного объекта в терминах ООП на клиенте, который бы характеризовал сущности модели, нет. Просто потому, что их не надо для работы.

И что? Если Вы для разработки приложений используете процедурный подход, то классы и объекты не выделяются. Короче, пишите конкретно, о каких приложениях и средствах разработки идёт речь и как они соотносятся с объектным моделированием. И не забываем про то, что на уровне оборудования все данные и код есть просто массивы битов.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34727185
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer mcureenabДа. В силу существования любая существующая программа лучше несуществующей
Короче говоря, Вы закольцевали логику: взяли первую попавшуюся хрень, использовали ее, и поэтому она хороша, ее нужно использовать.

Прошу не передёргивать. Хрень, была выбрана из многих других хрененей, найденая хрень меня вполне устраивает, из чего я делаю вывод что её можно использовать и её использование имеет смысл.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34727595
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab
Компоненты доступа к данным работают с выборками, а не с таблицами, а выборка имеет гораздо больше полезных для приложения свойств, чем БД, например выборка может быть отфильтрована и упорядочена.
Выборка как результат рел. операции это тоже таблица. Сортировка ничего принципиально не меняет.
mcureenab
Только чел сейчас хочет построить модель, а не приложение. Т.е. он хочет поработать на уровне ER модели и модели классов.
Т.е. работать не с таблицами, а с объектами ? Так тоже можно, но тогда надо забыть о таблицах, рел. модели и пр. Можно использовать какую-нибудь ОСУБД или сделать собственную.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34727899
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод mcureenab
Компоненты доступа к данным работают с выборками, а не с таблицами, а выборка имеет гораздо больше полезных для приложения свойств, чем БД, например выборка может быть отфильтрована и упорядочена.
Выборка как результат рел. операции это тоже таблица. Сортировка ничего принципиально не меняет.


Результат реляционой операции - реляционное отношение, а не таблица.
Сортировка (и как частный случай в порядке выборки строк) позволяет работать с выборкой как с массивом или списком элементов-записей, тогда как записи в таблице - множество, причём в многопользовательской БД, это множество меняется в произвольные моменты времени.
Собственно, мы никогда с таблицей не работаем, это удел СУБД. Мы, даже выполняя DML запросы оперируем выборками, которые СУБД применяет на таблицу.

мод mcureenab
Только чел сейчас хочет построить модель, а не приложение. Т.е. он хочет поработать на уровне ER модели и модели классов.
Т.е. работать не с таблицами, а с объектами ? Так тоже можно, но тогда надо забыть о таблицах, рел. модели и пр. Можно использовать какую-нибудь ОСУБД или сделать собственную.

Делать СУБД нет нужды. Достаточно над реляционным движком создать объектный интерфейс. Так, например поступил оракл. И забывать ни о чём не надо, ибо хранимые объекты по прежнему хранятся в таблицах. Обычно, при создании хранимого объекта нужно указать имя таблицы в БД, где он будет сохранён, когда процесс завершит работау с ним.

Объекты приложения отличаются от объектов БД. В процессе копирования записи из БД в процесс приложения (через интерфейс курсора БД, который возвращает выборку) происходит преобразование типов данных, структуры и т.п. Даже если мы на высоком уровне абстракции говорим о том, что запись в базе данных и объект в приложении имеют один и тот же класс, то на уровне реализации мы создаём разные типы - например тип struct в C++, и DDL оператор create table в SQL. Наконец в результате сборки, мы получаем исполняемый код для работы со структурой данных на ПК и таблицу как объект схемы БД.

Чтобы привнести конкретики, рассмотрим Oracle Forms.
Во время разработки мы создаём блок формы (block) и добавляем в него элементы (item). По сути мы конструируем новый класс. Определённо блок формы, это совсем не таблица БД. Он может даже содержать записи, которых и нет вовсе в БД, да и SQL запросы к нему не применимы. Но на более высоком уровне абстракции мы видим, что блок формы реализует некоторую часть поведения хранимого объекта, обычно связанную с его редактированием в GUI.

В отличии от классов C++ блоки и элементы формы имеют предопределённые виртуальные методы - триггеры, которые разработчик может перегрузить своим кодом. Объекты C++ живут в стеке, глобальной памяти или в куче, объекты Forms, живут только в блоке формы. Есть и другие отличия. Кто то может сказать, что аналогия вообще притянута за уши, однако подход вполне продуктивный и пока он позволяет решать задачи моделирования и генерации кода, я его буду использовать.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34729065
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab
Результат реляционой операции - реляционное отношение, а не таблица.
В СУБД нет никаких отношений, только таблицы=массивы=списки записей и выборка это обычная таблица - зачем еще что-то придумывать.
mcureenabДелать СУБД нет нужды.
Ессно можно использовать любую промышленную, но только как метод доступа.
mcureenab Достаточно над реляционным движком создать объектный интерфейс.
Да - нужно полностью подменить DML СУБД на операции с объектами. Но тогда абсолютно все равно какая это субд рел., сетевая или иерарх., т.к. СУБД используется просто как метод доступа.
mcureenabОбъекты приложения отличаются от объектов БД.
Это плохо. Приложение должно оперировать теми же понятиями что и СУБД. Т.е. если РСУБД, то таблицами, если "ОСУБД" - то объектами.
mcureenabОпределённо блок формы, это совсем не таблица БД.
Это просто таблица - результат select-a - но всяко не класс.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34733663
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод mcureenabОпределённо блок формы, это совсем не таблица БД.
Это просто таблица - результат select-a - но всяко не класс.

Короче, Вы всё сущее называете таблицами, а раз так, обсуждать различия разных видов "таблиц" непредставляется возможным.

Класс описывает общие свойства некоторого множества объектов. Если вы не различаете понятия класс и объект, то дальнейшее обсуждение тоже теряет смысл.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34734734
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabКороче, Вы всё сущее называете таблицами
Совсем нет. Возьмем пример: сущность: счет-фактура, в РБД представлена 2-мя таблицами: заголовки и строки. Приложение работает с этими таблицами вместе или по отдельности.
"Объектный вариант: в ОБД СФ хранится как объект класса СФ, никаких таблиц нет, приложение работает с каждым СФ как с единым объектом.
Можно сравнить эти два варианта.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34735287
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод mcureenabКороче, Вы всё сущее называете таблицами
Совсем нет. Возьмем пример: сущность: счет-фактура, в РБД представлена 2-мя таблицами: заголовки и строки. Приложение работает с этими таблицами вместе или по отдельности.
"Объектный вариант: в ОБД СФ хранится как объект класса СФ, никаких таблиц нет, приложение работает с каждым СФ как с единым объектом.
Можно сравнить эти два варианта.

Это как нет таблиц? А объекты то где хранятся? Чисто теоретически объекты в БД могут храниться в сетевой форме. Однако работать с множествами таких объектов будет достаточно сложно. Прикладная компьютерная наука пока роет в направлении объектно-реляционных БД, где множество однотипных объектов можно представить в виде реляционного отношения и работать с ним традиционными методами. А если, например, взять Оракл, то объекты на объектном уровне он хранит в объектных таблицах, а на реляционном уровне - в реляционных таблицах, причём во время создания объектной таблицы нужно явно описывать таблицы для хранения всех вложенных коллекций объекта.
Один счёт-фактура не вызывает тредностей, а как быть с множеством таких счетов? Наверняка многие решат, что их нужно объеденить в объектную таблицу.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34786256
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabПрикладная компьютерная наука пока роет в направлении объектно-реляционных БД, где множество однотипных объектов можно представить в виде реляционного отношения и работать с ним традиционными методами.

Усе портят "таблицы", "классы" и т.д. обобщения, при том жесткие. Надо от них отказаться. Объекты должны быть сами по себе, а классификация сама по себе.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34786261
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С.Ю.
Усе портят "таблицы", "классы" и т.д. обобщения, при том жесткие. Надо от них отказаться. Объекты должны быть сами по себе, а классификация сама по себе.

А как это?
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34786273
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
belugin С.Ю.
Усе портят "таблицы", "классы" и т.д. обобщения, при том жесткие. Надо от них отказаться. Объекты должны быть сами по себе, а классификация сама по себе.

А как это?
Как отказаться?
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34786297
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовКак отказаться?
Да, мне тоже интересно, как можно отказаться от "таблиц", "классов" (и прочих "жестких обобщений"), Сахават?
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34786299
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LR Сахават ЮсифовКак отказаться?
Да, мне тоже интересно, как можно отказаться от "таблиц", "классов" (и прочих "жестких обобщений"), Сахават?
Как в Прологе, наверное.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34786302
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Меня бесит, что я должен предметную область урезать до своего понимания, когда пишу что-то на продажу. Почему я ЗАРАНЕЕ должен классифицировать до опупения то, в чем до конца не разбираюсь (да и фиг кто разбирается - все течет, все меняется). А тут на тебе - таблица "Материалы", "Товары", ... До того, пока появятся сами объекты классификации. :(
Все должно быть с точность наоборот. сначала объекты, а потом уж классификация и коллекцирование.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34786305
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ru.wikipedia.org, ПрологБазовым принципом языка является равнозначность представления программы и данных (декларативность), отчего утверждения языка одновременно являются и записями, подобными записям в базе данных, и правилами, несущими в себе способы их обработки. Сочетание этих качеств приводит к тому, что по мере работы системы Пролога знания (и данные и правила) накапливаются. Поэтому Пролог-системы считают естественной средой для накопления базы знаний.

Это имеется ввиду?
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34786306
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LR ru.wikipedia.org, ПрологБазовым принципом языка является равнозначность представления программы и данных (декларативность), отчего утверждения языка одновременно являются и записями, подобными записям в базе данных, и правилами, несущими в себе способы их обработки. Сочетание этих качеств приводит к тому, что по мере работы системы Пролога знания (и данные и правила) накапливаются. Поэтому Пролог-системы считают естественной средой для накопления базы знаний.

Это имеется ввиду?

В принципе - да. По форме (как это сделано в Прологе (когда я это видел в последний раз может и нет.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34786326
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовМеня бесит, что я должен предметную область урезать до своего понимания, когда пишу что-то на продажу. Почему я ЗАРАНЕЕ должен классифицировать до опупения то, в чем до конца не разбираюсь (да и фиг кто разбирается - все течет, все меняется). А тут на тебе - таблица "Материалы", "Товары", ... До того, пока появятся сами объекты классификации. :(
Все должно быть с точность наоборот. сначала объекты, а потом уж классификация и коллекцирование.
Так если "на продажу", то наверное и Пролог не поможет... Кто будет вводить данные, которые являются "и правилами, несущими в себе способы их обработки", пользователь? Так уже сейчас есть живой пример подобной (супер-пупер-гибкой) системы - 1С, с целой армией 1С-программистов в придачу :)

"Под заказ" подобных проблем нет, разработчик "классифицирует до опупения" по мере надобности...

P.S. Нельзя объять необъятное (К.П.)
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34786339
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LRТак если "на продажу", то наверное и Пролог не поможет... Кто будет вводить данные, которые являются "и правилами, несущими в себе способы их обработки", пользователь? Так уже сейчас есть живой пример подобной (супер-пупер-гибкой) системы - 1С, с целой армией 1С-программистов в придачу :)


Н думаю, что Нуралиев беднее нас. :)

LR"Под заказ" подобных проблем нет, разработчик "классифицирует до опупения" по мере надобности...

Найти заказ все труднее. Надо хотя бы 75% функционала уже иметь, что бы кого-то заинтересовать.
LRP.S. Нельзя объять необъятное (К.П.)
[/quot]

Сам то "он" объял. :)
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34787324
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов
Все должно быть с точность наоборот. сначала объекты, а потом уж классификация и коллекцирование.
Для объектных систем так и д.б. Т.е. в БД храняться не таблицы, а сами объекты в виде списков ID и доступ возможен только к свойствам объектов по ID. Классификация по свойствам, классификаторы - объекты специального вида. Правда область применения таких систем достаточно ограничена т.к. нет алгебры объектов.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34787381
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод[quot Сахават Юсифов]
Правда область применения таких систем достаточно ограничена т.к. нет алгебры объектов.
Да какая там алгебра? Select что ли? Можно сымитировать, или слить в другие таблицы тут же в табличном виде (продублировать). И опять же не все данные надо держать в объектном виде. Например, все отношения между объектами можно хранить в табличном виде.
Сам по себе тот факт, что Selectу надо указать ИМЯ ТАБЛИЦЫ все портит и сужает. Должно быть
Select all where ... без from
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34787813
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов мод[quot Сахават Юсифов]
Правда область применения таких систем достаточно ограничена т.к. нет алгебры объектов.
Да какая там алгебра? Select что ли? Можно сымитировать, или слить в другие таблицы тут же в табличном виде (продублировать). И опять же не все данные надо держать в объектном виде. Например, все отношения между объектами можно хранить в табличном виде.
Сам по себе тот факт, что Selectу надо указать ИМЯ ТАБЛИЦЫ все портит и сужает. Должно быть
Select all where ... без fromКто ж мешает?

1)
Код: plaintext
1.
2.
3.
create view ALL as 
...
union all
...
или наоборот
2)
Код: plaintext
1.
2.
3.
4.
5.
6.
create table ALL(
ID1,
ID2,
DATA
)

create view PERSON as select ...
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34788198
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRКто ж мешает?

1)
Код: plaintext
1.
2.
3.
create view ALL as 
...
union all
...
или наоборот
2)
Код: plaintext
1.
2.
3.
4.
5.
6.
create table ALL(
ID1,
ID2,
DATA
)

create view PERSON as select ...


Вы предлагаете это сделать динамически?
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34788213
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и From никуда не исчезает. Почему я ДОЛЖЕН знать имя таблицы или генератора таблицы, когда меня волнует совсем другие вещи - мне просто надо узнать "ЗАРПЛАТУ ИВАНОВА ИЗ ЦЕХА №5 за февраль 2007"
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34788271
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифови From никуда не исчезает. Почему я ДОЛЖЕН знать имя таблицы или генератора таблицы, когда меня волнует совсем другие вещи - мне просто надо узнать "ЗАРПЛАТУ ИВАНОВА ИЗ ЦЕХА №5 за февраль 2007"

Мне кажется, термины ЗАРПЛАТА и ЦЕХ уже являются результатом классификации. Попробуйте отказаться от них для начала ;)
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34788396
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
belugin Сахават Юсифови From никуда не исчезает. Почему я ДОЛЖЕН знать имя таблицы или генератора таблицы, когда меня волнует совсем другие вещи - мне просто надо узнать "ЗАРПЛАТУ ИВАНОВА ИЗ ЦЕХА №5 за февраль 2007"

Мне кажется, термины ЗАРПЛАТА и ЦЕХ уже являются результатом классификации. Попробуйте отказаться от них для начала ;)
Ну и ? Почему я объязан указать FROM? Почему систем не разбирается - где объекты, где классификаторы и т.д.? У нее же вся информация для этого имеется.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34788609
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифови From никуда не исчезает. Почему я ДОЛЖЕН знать имя таблицы или генератора таблицы, когда меня волнует совсем другие вещи - мне просто надо узнать "ЗАРПЛАТУ ИВАНОВА ИЗ ЦЕХА №5 за февраль 2007"Хм, только зарплату, заработанную в цехе 5 или всю зарплату? Если всю, то сумму или множество строк по местам зарабатывания?
И как система должна догадаться что вопрос требует уточнения?
Наконец, удовлетворит ли вопрошающего ответ "0", если:
1) ЦЕХА №5 не обнаружено?
2) ЗАРПЛАТА не обнаружено?
и должен ли вопрошающий почуствовать разницу между (1) и (2)?
Останавливаюсь - один дурак может задать столько вопросов...

В любом случае ИМХО будет генрация запроса, затем выполнение. Причем генерировать запрос к БД придется с использованием по крайней мере метаданных, а то и частично собственно данных (а в каком у нас архиве данные за давно прошедший 2007 год). Раз так, что переживать что в сгенерированном тексте будет FROM?
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34788813
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelR
1) ЦЕХА №5 не обнаружено?
2) ЗАРПЛАТА не обнаружено?
и должен ли вопрошающий почуствовать разницу между (1) и (2)?
Останавливаюсь - один дурак может задать столько вопросов...


Так и надо ответить - не обнаружено. А генерировать внутренние запросы и всякие frov должна субд, а не программист.
Блин зло берет, целая толпа умных людей гордятся тем, что изучили какой-то Оракл или МС СКЛ и знают что будет если написать а,б в отличии от б,а. Смешно.
Как механики жигулей и москвичей в советском сервисе. Гуру чертовы. Все это должна делать прога сама. Если не делает, значит х... прога.
Пролог никто не админит, а на вопросы она отвечает лучше всех. Потому что - хорошая. :)
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34788847
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовПролог никто не админит, а на вопросы она отвечает лучше всех.
Плюньте в лицо тому, кто Вам сказал такую глупость.

Сахават ЮсифовТак и надо ответить - не обнаружено. А генерировать внутренние запросы и всякие frov должна субд, а не программист. ....... Блин зло берет, целая толпа умных людей гордятся тем, что изучили какой-то Оракл или МС СКЛ и знают что будет если написать а,б в отличии от б,а. Смешно.
Угу, смешно. Если хотите, посмотрите такую хорошую книгу - http://urss.ru/cgi-bin/db.pl?cp=&page=Book&id=18841&lang=Ru&blang=ru&list=321 она в довольно хорошей форме рассказывает, как сделать примерно то, что Вы имеете в виду.

Проблема в том, что если довести расписанные там мысли до конца, то получится SQL
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34788979
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовПролог никто не админит, а на вопросы она отвечает лучше всех. Потому что - хорошая. :)Пытаюсь представить себе расчет зарплаты на Прологе:)
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34789009
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это я не к тому, что SQL - предел мечтаний.
Однако пытаться навешивать на каждый запрос разбор "естественного" языка (на самом деле некоего профессионального жаргона, принятого в данной конторе) - перебор ИМХО.
Но мы уже сильно оффтопик.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34789016
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Проблема в том, что если довести расписанные там мысли до конца, то получится SQL

Ну, плохо SQL! Надо сначала описать будущее, а потом наполнять настоящим. Низзя!!!!
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34789043
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов softwarer
Проблема в том, что если довести расписанные там мысли до конца, то получится SQL

Ну, плохо SQL! Надо сначала описать будущее, а потом наполнять настоящим. Низзя!!!!
Так же и ООП. Такая же фигня.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34789210
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовМожно сымитировать, или слить в другие таблицы тут же в табличном виде (продублировать). И опять же не все данные надо держать в объектном виде. Например, все отношения между объектами можно хранить в табличном виде.
Вот и я об этом же - без таблиц много не сделаешь. Т.е. чисто на объектах можно делать т.н. фактографические системы, которые просто фиксируют наличие объектов без какой-то обработки.
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34789233
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифовмне просто надо узнать "ЗАРПЛАТУ ИВАНОВА ИЗ ЦЕХА №5 за февраль 2007"
Это не свойство объекта, это вычисляемая функция:
x=ЗАРПЛАТА(ИВАНОВ,ЦЕХ №5, февраль 2007)
а ИВАНОВ и ЦЕХ №5 - это объекты
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34789261
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод Сахават Юсифовмне просто надо узнать "ЗАРПЛАТУ ИВАНОВА ИЗ ЦЕХА №5 за февраль 2007"
Это не свойство объекта, это вычисляемая функция:
x=ЗАРПЛАТА(ИВАНОВ,ЦЕХ №5, февраль 2007)
а ИВАНОВ и ЦЕХ №5 - это объекты
Вопрос в том, что надо заранее создавать таблицу "Зарплата" в БД.
Сегодня мне это не надо - считаем вручную.
Завтра надо - все данные для расчета зарплаты в системе уже имеются. Пользователь хочет рассчитать зарплату и сохранить. Ни фига. Надо создать таблицу "Зарплата" и т.д. Для чего? Только для того что бы указать FROM!
И воще с Вами я в дружбе. :)
...
Рейтинг: 0 / 0
отображение ER-модели в ООМ
    #34789972
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовВопрос в том, что надо заранее создавать таблицу "Зарплата" в БД.
Функциональный подход тем и хорош, что можно решить вопрос о хранении или вычислении функции независимо от приложения. Т.е. приложение пишется в терминах функций и никаких таблиц. Эта идея была заложена в мумпсе, но до ума не доведена.
Сахават ЮсифовИ воще с Вами я в дружбе. :)
Взаимно :)
...
Рейтинг: 0 / 0
59 сообщений из 59, показаны все 3 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / отображение ER-модели в ООМ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]