powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Разное по смыслу содержание полей разнородных объектов в одной таблице
132 сообщений из 132, показаны все 6 страниц
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34257626
TRJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRJ
Гость
Всем привет.
В базе, с которой я имею дело, имеет место следующая ситуация. Имеется таблица, в которой хранятся данные "объектов" разных "классов". Причем ряд полей, с одинаковыми названиями, хранят в себе значения, абсолютно разные по смыслу. К примету, поле Date1 может, в зависимости от того, об каких объектах идет речь, хранить либо "Дату начала", либо "дату окончания", либо "Дату начала" и "дату окончания" одновременно (Update после совершения некоторого события), либо что-то еще. Соответственно, если надо отобрать объекты некоторого набора "классов" в зависимости от смыслового содержания, к примеру, дат, приходится строить трехэтажные условия отбора в where, а затем это все очень сложно проверять, так как все это еще практически недокументировано.
Интересует отношение форумного разума к такой структуре данных. Насколько допустимо хранить в одних и тех же полях разные по смыслу данные. Особенно интересут мнение насчет update этих полей. Насколько это приемлемо?
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34257653
NSFuimus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо нормальная ситуация ... с единственной оговоркой - если "объекты" разных "классов" просматриваются/редактируются каждый в своей "оболочке" заточенной под определенный "класс" - проблем здесь быть не должно ... конечна когда необходимо строить некоторые "сводные" отчеты - тогда и всплывает описанный гемморой ... но лична я считаю что эта допустимая плата за такой условно "универсальный" способ хранения :)
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34257719
TRJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRJ
Гость
NSFuimus, ну-у я с тобой не согласен. Я сторонник того, чтобы в поле с одним названием хранилось бы значение, одинаковое по смыслу для всех объектов разных классов. То есть если есть поле Дата1, и некто решил наделить это поле смыслом "Дата начала", то такой смысл это поле должно иметь для объектов ВСЕХ "классов". Иначе возникает полная путаница. И еще я не сторонник Update, особенно таких, которые меняют смысл содержимого поля. Я думаю, что это не правильно. Если нужны какие-то специфичные поля для объектов нового "класса", никто не мешает сделать таблицу SpecifiicFieldClass2 - и вынести их туда. А то получается, что каждый новый "класс" "пытается" использовать уже имеющиеся для другой цели поля в таблице для своих целей, и если возникает задача совместно использовать эти поля для объектов разных классов, разобраться становиться совершенно невозможно. Представьте для примера ситуацию, когда есть 3 класса, 5 идентичных (но в чем-то различных) полей, каждое из которых еще и апдейтится. Получается уже 30 смысловых вариантов. Бр-р-р.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34257766
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TRJНасколько допустимо хранить в одних и тех же полях разные по смыслу данные.Настолько, насколько для данного случая плюсы перевешивают минусы.
Плюсами может быть например упрощение каких-то общих процедур, уменьшение числа таблиц и джойнов (иначе бы вылезли за лимит полей).

Химическое: Грязь - это химические вещества не на своем месте.
Остается только определить это самое место.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34257776
NSFuimus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я тебя понимаю ... ну давай конкретный пример ... есть справочник типа "контрагентов" ("контрагенты" могут быть "юриками" а могут быть "физиками") он имеет завязки на кучу таблиц ... считаю абсолютна правильным как ты говоришь для того чтобы не городить для каждого "класса" ("юрик" или "физик") свою таблицу(ы) связи "на сторону" создавать некую общую таблицу а все специфические поля - по связи 1-к-1 в "специфические" таблицы ... давай подумаем какие реквизиты мы можем вынести в эту общую таблицу (кроме служебных имеется ввиду) ... адрес раз ... ну ты можешь продолжить ... но мы имеем некий общий реквизит - наименование ... в одном случае - это фамилия, в другом - имя организации ... в принципе я имел ввиду именно такое "разночтение" ... но сложности ввиду неоднозначности здесь присутсвуют ...
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34257790
TRJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRJ
Гость
Я думаю, что главное - это логическая стройность смыслового наполнения базы. А количество джойнов, процедуры - это все вторично. Второе должно служить первому, а не наоборот. Никаких плюсов применения вышеназванного подхода я не вижу, причины его - простая лень, а следствие - бардак и хаос.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34257845
TRJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRJ
Гость
NSFuimusя тебя понимаю ... ну давай конкретный пример
Примеры? Пожалуйста. Предположим, в ЗАГС ведутся какие-то договора. Договора лежат в одной таблице. Пусть будет 3 договоров.
1 - Свадебные договора
2 - Договора аренды квартир
3 - Договора регистрации транспортных средств.
В результате получили такую структуру:
1. Date1: Дата регистрации брака
Date2: Дата расторжения брака
2. Date1: Дата заключения договора аренды квартиры
Date1: Дата выселения арендатора (после расторжения договора аренды квартиры)
Date2: Дата проверки договора инспекцией
Date3: Дата расторжения (закрытия) договора аренды
3. Date1: Дата проверки транспортного средства
Date2: Дата начала действия договора регистрации транспортого средства
Date3: Дата аннулирования договора транспортного средства
и т. п.
Все примеры, разумеется, "от фонаря".
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34257916
NSFuimus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эээ ... ты ждешь от меня комментария? ... пжалста ... как видим имеем как минимум две даты общих для всех договоров - Date1 и Date2 ... не имея полной постановки задачи я решу что в данном случае "плюсы перевешивают минусы" и вынесу эти даты в общую таблицу ... далее в метаданных 1. в SQL для конкретной формы служащей для вывода информации по определенному договору в секции SELECT напишу, например для свадебных договоров, ... Date1 AS DTREGISTRATION, Date2 AS DTUNREGISTRATION ... 2. в таблице описывающей поля системы добавлю 2 записи: Дата регистрации брака | DTREGISTRATION | исходная таблица | Date1 ... и Дата расторжения брака | DTUNREGISTRATION | исходная таблица | Date2 ... все это чрезвычайно упрощенно, но ... примерно так все и обстоит ... теперь и для настройки на клиенте конечным пользователем интерфейса и при формировании update-ов на сервере программистом мы можем однозначно все определить и фсе щастливы ...
повторяю еще раз - все это - "не имея полной постановки задачи"
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34258016
NSFuimus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну-у-у, клиенты клиентами...
А потом пришел начальник ЗАГС и задал такие вопросы: задачу:
1) сколько договоров любого вида заключено в такой-то интервал дат?
2) Сколько договоров закрыто в такой-то интервал дат
3) Сколько договоров заключено и закрыто в такой-то интервал дат
И.т.п
При приведенной мною структуре отвечать на такие вопросы не слишком удобно. Из-за того, что общая, характерная для договора любого вида семантика не обособлена в базе и размазана по разным местам. За деревьями не стало видно леса.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34258020
TRJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRJ
Гость
прошу прощения, подписался не так. Предыдущее сообщение мое.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34258045
NSFuimus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты меня извини канешна ... но дата создания договора не тоже самое что и дата регистрации брака ... то же самое относится и к дате закрытия договора/расторжения брака ... эта раз ... правильно было сказано - смотреть по обстановке ... эта два ...
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34258203
кгм...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторНасколько допустимо хранить в одних и тех же полях разные по смыслу данные.
а потом как в анеке: чертовски трудно раскуривать что куда и откуда для лабания юзеру какого-нить простенького отчета... можно завести деревянную таблитцу и там свойства хранить ... но тож не удобно для того кто потом будет ковыряться в Ваших бд :) мож все-таки по-людски делать ? Date1, Date2, Date3 - пускай что-то будет нулл для одного из договоров ?
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34258527
TRJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRJ
Гость
=кгма потом как в анеке: чертовски трудно раскуривать что куда и откуда для лабания юзеру какого-нить простенького отчета... можно завести деревянную таблитцу и там свойства хранить ... но тож не удобно для того кто потом будет ковыряться в Ваших бд :) мож все-таки по-людски делать ? Date1, Date2, Date3 - пускай что-то будет нулл для одного из договоров ?
кгм..., то есть ты за хранение разных по смыслу значений в одном поле?
А как насчет Update, который после наступления определенного события втыкает вместо одного по смыслу значения, другое. Допустимо это или нет?
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34258674
barsukof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TRJВсем привет.
Насколько это приемлемо?
Я, например, в силу природной лени и тупости обычно собираю справочники примерно так

create table SPR
(
NZ NUMBER(9) not null,
USR NUMBER(9) not null,
DAT_USR DATE not null,
TIP_SPR NUMBER(9) not null,
NAZV_SPR VARCHAR2(20) not null,
PAR_NUM NUMBER(9) default 0 not null,
PAR_DAT DATE,
PAR_STR VARCHAR2(250),
PAR_STR2 VARCHAR2(250),
PAR_STR3 VARCHAR2(250),
DLT NUMBER(9) default 0 not null
)[quot автор]
меня ломает делать кучу справочников когда , я могу все засунуть в адну табулицу.
И примерно так же сделана таблица свойств каких-либо объектов, так сказать (лень*реляция).
PS на самом деле канечна посложнее ,но принцЫп такой
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34259088
кгм...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TRJкгм..., то есть ты за хранение разных по смыслу значений в одном поле?
нет, я против. я хотел сказать пускай лучше будет избыточность чем разные по смыслу в одном ...
TRJА как насчет Update, который после наступления определенного события втыкает вместо одного по смыслу значения, другое. Допустимо это или нет?
не допустимо :)
ну или как правильно имхо сказал barsukof - одна таблица с общими свойствами договоров + табл. с доп. свойствами ...
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34259500
TRJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRJ
Гость
Покажу эту ветку проектировщикам.
Пусть посмотрят, что коллективный разум о них думает :-)
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34259564
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TRJ Насколько это приемлемо? Приемлемо, если с этой базой работать только с помощью специально под нее спроектированных клиентов, к-е сами умеют строить "трехэтажные условия отбора в where" и т.п.

Если же у вас такого клиента нет или он не может реализовать то, что вам нужно - передавайте привет архитекторам, к-е черезчур увлеклись "красивым, универсальным решением"
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34259585
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey KudinovПриемлемо, если с этой базой работать только с помощью специально под нее спроектированных клиентов, к-е сами умеют строить "трехэтажные условия отбора в where" и т.п.
Или через вьюхи, процедуры и т.п.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34259618
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ВаскецовИли через вьюхи, процедуры и т.п. Согласен с уточнением. Главное - иметь "API" для работы с такой структурой данных и работать только через него.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34259642
TRJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRJ
Гость
Alexey Kudinov Сергей ВаскецовИли через вьюхи, процедуры и т.п. Согласен с уточнением. Главное - иметь "API" для работы с такой структурой данных и работать только через него.
Вообще это весьма оригинальное решение. Одни наводят в базе кривизну. Другие пишут API, который эту кривизну нивелирует...
Вообще-то мысль про API неплохая, только любой API - это лишний слой, который замедляет работу. Наверное, лучше сразу по возможности нормально делать. Уж если не вышло - тогда уж API.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34259659
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TRJОдни наводят в базе кривизну. Другие пишут API, который эту кривизну нивелирует...

Необходимо определиться, что первично, а что нет.
Может быть, Вы считаете это кривизной потому, что с этим сложно работать? Тогда наличие некоего обобщенного API как раз и устраняет эту проблему, соответственно, кривизны как раз и нет, а есть наоборот, простота и красота.

ИМХО. в одном поле могут быть принципиально разные вещи, но для разных типов сущностей. Тип сущности в этом случае не может изменяться update-ом и не должен определяться по таким полям. Соответственно, смысл таких полей update-ом не меняется.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34259724
TRJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRJ
Гость
NSFuimusты меня извини канешна ... но дата создания договора не тоже самое что и дата регистрации брака ... то же самое относится и к дате закрытия договора/расторжения брака ... эта раз ... правильно было сказано - смотреть по обстановке ... эта два ...
В этом все и дело. Между этими датами могут быть достаточно тонкие различия, - однако описание этих полей может быть одинаковое для разных "классов", не говоря уже о том, что лежат они в одном поле. И когда возникает необходимость отобрать что-то из разных "классов" по этим полям, возникает... проблема. И чем тоньше различие, тем проблема больше.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34259973
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Имеется таблица, в которой хранятся данные "объектов" разных "классов".

Ни "объектов", ни "классов" в реляционной СУБД храниться не может. По определению. Есть условия, при которые "объекты" и "классы" по отношению к реляционным СУБД - не пустой набор звуков, однако, сильно вряд ли об этом идет речь в данном случае.

> Насколько допустимо хранить в одних и тех же полях разные по смыслу данные.

Недопустимо. Это ошибка. К сожалению, скоро можно будет сказать "типичная ошибка".
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34260133
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TRJПокажу эту ветку проектировщикам.
Пусть посмотрят, что коллективный разум о них думает :-)
Вспомнилось одно давнее обсуждение на этом форуме, если они (проектировщики) еще не видели, то вероятно им будет интересно. В предлагаемой модели "объект-качество" (автор - U-gene - Евгений Григорьев) вопрос "Насколько допустимо хранить в одних и тех же полях разные по смыслу данные?" звучал бы чуть по-другому...

Главную идею можно передать парой цитат:
«Создавая объектную систему на базе аппратного компьютера мы ВЫНУЖДЕНЫ представлять наши объекты как набор переменных простых типов. Создавая объектную систему на базе реляционной БД мы должны представить ее как совокупность переменных типа "отношение", поскольку это единтсвенный тип, реализуемый реляционными системами.»
и далее:
«Это не маппинг. Маппинг подразумевает, что данные преобразуются из "объектных структур в реляционные". У меня объекты изначально представляют собой совокупность реляционных структур. А зачем преобразовывать что-то во что-то если требуемое уже и так есть?»

В такой модели вопрос стоял бы не о разных смыслах значений одного поля а о разных смыслах записей одной таблицы (отношения) - т.е. разных смыслах разных переменных, хоть и одного типа...
Тогда, например, можно было бы иметь "реляционный тип" (таблицу) - Период с полями
Date1, Date2, S
где Date1 и Date2 имеют всегда имеют один и тот же "реляционный" смысл (начало и конец периода), а S содержит "объектный" смысл ("рождение-смерть", "женились-развелись", срок аренды и т.п.)

ps. первые две ссылки из того обсуждения на авторскую статью не открылись, и я уже не помню что это за статья, но вот ссылки на несколько его статей:
http://www.citforum.ru/database/articles/ooo_rel_data/
http://www.citforum.ru/database/articles/moq.shtml
http://www.osp.ru/os/2000/01-02/178205/
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34260226
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> U-gene - Евгений Григорьев

До сих пор фетишей было два: Celco и Тенцер. Теперь три. Абсолютная, полная, безграмотная шуклятина.

P.S. Шуклятина - производное от Шуклин. Есть тут такой недоумок.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34260252
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> U-gene - Евгений Григорьев

До сих пор фетишей было два: Celco и Тенцер. Теперь три. Абсолютная, полная, безграмотная шуклятина.

P.S. Шуклятина - производное от Шуклин. Есть тут такой недоумок.


А для меня это оказалось нормальной, здоровой пищей:)

Идея-то (U-gene) простая, интуитивно понятная, прививка (размышления на тему), может создать иммунитет к идеям Тенцера(&Co) или "стихийным/народным" типа "хранить в одних и тех же полях разные по смыслу данные", imho.

guest_20040621 - Вам - верю. Укажите грамотную вкуснятину - непременно отведаю (попытаюсь)
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34260255
leonidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настолько, насколько для данного случая плюсы перевешивают минусы.
Плюсами может быть например упрощение каких-то общих процедур, уменьшение числа таблиц и джойнов (иначе бы вылезли за лимит полей).
.Абсолютно согласен .
Если выдернуть любое отдельное утверждение из контекста задачи ...сами знаете что будет.
А вы недумали о том ,что разработчик на каком то этапе проектирования просто приспособил новые сущности под спроектированую и почти(уже давно) готовую структуру.Так бывает к сожалению ,когда задача плохо поставлена изначально или постоянно меняются правила игры.Про Юриков и Физиков еще не самый страшный вариант.Если Вам приходилось поддерживать достаточно долгое время уже работающую базу, рано или поздно вы бы с этим столкнулись.И чего толку обсуждать что это кривовато с точки зрения...реляционной модели и общей науки.:).Возмите любую ABS(автоматизир.банковскую систему),которую не вы и не вчера написали.Ну не возможно было разработчику предвидеть ход мыслей ЦБ-шных и проч.руков.И что прикажете под каждый чих новую структуру и всю бизнеслогику переписывать?Латают старую пока это возможно...
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34260273
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут все время разговор сваливается на РМД, ОМД и т.д.
А на самом деле вопрос не решается не там, не тут.
Любой живой объект меняет свои свойства с течением времени. Появляются новые свойства и утрачиваются старые. А все эти РМД, ОМД и т.д подразумевают жесткую структуру свойств объектов и какие то долбаные классы (таблицы) (которые почему то главные, хотя это просто кллассификация главных - живых :) ) .
Вобщем я думаю, что каждый объект должен жить своей жизнью и классифицироваться динамически по заданным правилам.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34260286
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> А для меня это оказалось нормальной, здоровой пищей:)

Могу только посочувствовать.

> Идея-то (U-gene) простая, интуитивно понятная

И это-то как раз плохо. И у Celco, и у Тенцера то же самое: все буквально на пальцах и даже работает. А на самом деле - типичные антипаттерны.

> типа "хранить в одних и тех же полях разные по смыслу данные", imho.

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

> Укажите грамотную вкуснятину - непременно отведаю

В каком контексте? Как оперировать метаданными? Нет одного источника и единого подхода. Но дела обстоят примерно так: есть модели данных. Есть метамодели (словари, если угодно; на самом деле метамодель - больше, чем словарь) этих моделей. Есть средства для описания этих метамоделей (метаметамодели). Что Вы делаете, цитируя Григорьева: Вы полагаете возможным микс из моделей и метамоделей, абсолютно никак не связанных между собой, не имеющий (и не имеющий возможности иметь) общей метамодели (или метаметамодели). Что предлагает Тенцер? - да ровно то же самое. Принципиальной разницы нет.

Как дОлжно подходить к решению таких задач? Да очень просто: нужен не микс, а единая метамодель, позволяющая описать все используемые для решения задачи модели данных. Одна из моделей по условию задачи задана: реляционная. По счастью, модель достаточно простая. Значит, осталось выбрать еще одну модель данных для задачи и описать ее либо в терминах реляционной модели данных, либо реляционную модель описать в терминах это модели. Ну, или выбрать существующую метаметамодель, позволяющую описать и реляционную, и выбранную модели.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34260922
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовВобщем я думаю, что каждый объект должен жить своей жизнью и классифицироваться динамически по заданным правилам.Дык и живут. И даже заданные правила иногда меняются. (Хотя я сильно бы расстроился, узнав о ранее неизвестных фактах жизни таблицы умножения двоичных чисел.)
Подозреваю, все-таки есть какая-то более конкретная идея?
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34261373
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Идея-то (U-gene) простая, интуитивно понятная

И это-то как раз плохо. И у Celco, и у Тенцера то же самое: все буквально на пальцах и даже работает. А на самом деле - типичные антипаттерны.
У Тенцера (если я правильно помню, "измельчить" реляционные типы до такой степени, чтобы они соответсвовали простым типам ОО-языка, и как побочный результат - обессмысленные одноколоночные таблицы с характерными проблемами), согласен, явный антипаттерн (как минимум - паттерну "таблица как тип данных").
О Celco ничего сказать не могу, т.к. с его идеями не знаком (кроме всем известной "деревянной" идеи)...

guest_20040621...Как оперировать метаданными? Нет одного источника и единого подхода. Но дела обстоят примерно так... Что Вы делаете, цитируя Григорьева: Вы полагаете возможным микс из моделей и метамоделей, абсолютно никак не связанных между собой, не имеющий (и не имеющий возможности иметь) общей метамодели (или метаметамодели).
Григорьев как раз везде и подчеркивает ортогональность реляционной и объектной моделей, и (как я понял) как раз и призывает не смешивать их (в какой-то его работе обсуждалась целесообразность существования двух типов триггеров на таблице - R-триггеры и O-триггеры). Что я делаю, цитируя Григорьева в этом топике? Пытаюсь указать, что, возможно, проблему "хранить в одних и тех же полях разные по смыслу данные?" следует решать на более высоком "атомарном" уровне восприятия типа данных чем "поле таблицы", а именно на уровне "таблица как тип данных".
Все тот же пример, таблица [Период], поля Date1, Date2, S. Рассмотрим ограничения 1) Date1<=Date2, 2) Date1!=null && Date2!=null? Допустим, первое обязательно для всех записей, второе - зависит от "объектного" смысла (кто-то уже родился(Date1) но еще не умер(Date2), политика организации - в договоре(аренды) обязательно указывать срок, и т.п.). Можно ли считать, что (1) - относится к свойствам реляционного типа (таблица [Период]), а (2) - к свойствам объекта "размещенного" в этой таблице? Я считаю что да, можно. Можно попробовать возвести это в некий принцип/паттерн, и "оформить" это, например размещением проверки ограничений (1) и (2) в R-триггере и O-триггере таблицы [Период], соответственно.
Возникла ассоциация - в бухгалтерии одни и те же объекты "размещены по полочкам" как Активов так и Обязательств (две ортогональных плоскости).

guest_20040621Что предлагает Тенцер? - да ровно то же самое. Принципиальной разницы нет.
Не согласен, повторю, у Тенцера я увидел разрушение паттерна "таблица как тип данных".

guest_20040621Как дОлжно подходить к решению таких задач? Да очень просто: нужен не микс, а единая метамодель, позволяющая описать все используемые для решения задачи модели данных. Одна из моделей по условию задачи задана: реляционная. По счастью, модель достаточно простая. Значит, осталось выбрать еще одну модель данных для задачи и описать ее либо в терминах реляционной модели данных, либо реляционную модель описать в терминах это модели. Ну, или выбрать существующую метаметамодель, позволяющую описать и реляционную, и выбранную модели.
Ну так у Григорьева как раз не микс, а две ортогональных "плоскости", чем не "единая метамодель"?
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34263017
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Григорьев как раз везде и подчеркивает ортогональность реляционной и объектной моделей

Есть реляционная модель данных. И есть объектная модель. Подчеркну: модель, а не модель данных. И реляционная модель данных, и объектная модель могут быть описаны с помощью MOF, например. О какой ортогональности Вы говорите?

> целесообразность существования двух типов триггеров на таблице - R-триггеры и O-триггеры

Не нужно покупаться на неологизмы. Триггеры - они и есть триггеры. Обычные триггеры из реляционной модели. Какие названия им кто-то придумал вместо того, чтобы называть их триггерами - абсолютно не интересно. У Григорьева нет никаких других моделей, кроме реляционной. И у Тенцера тоже нет. А вместо них присутствуют некие добавки в виде неких черных ящиков. И все это вместе называется новой идеей. ;)

> проблему "хранить в одних и тех же полях разные по смыслу данные?" следует решать на более
> высоком "атомарном" уровне восприятия типа данных чем "поле таблицы", а именно на уровне
> "таблица как тип данных".

Такая точка зрения теоретически имеет право на существование. Необходимое условие для такого подхода: реляционная СУБД должна поддерживать другие модели, отличные от реляционных. Куча вопросов, первый из которых: нафига козе баян?

> Можно ли считать, что (1) - относится к свойствам реляционного типа (таблица [Период]), а (2)
> - к свойствам объекта "размещенного" в этой таблице?

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

> Возникла ассоциация

Кажется, я понимаю, в чем дело. Вы не хотите иметь границ между метамоделью, моделью данных и моделью предметной области. К сожалению, они есть и с этим ничего не поделать. ;) Более того, именно их наличие, собственно, и делает возможным практическое применение реляционных СУБД. ;)

> Ну так у Григорьева как раз не микс

Микс. Не нравится слово "микс" - назовите "каша", смысл останется тем же. ;)
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34263248
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621>Есть реляционная модель данных. И есть объектная модель. Подчеркну: модель, а не модель данных. И реляционная модель данных, и объектная модель могут быть описаны с помощью MOF, например. О какой ортогональности Вы говорите?
Об ортогональности реляционной модели данных и объектной модели, квадратного и зеленого, и квадратное и зеленое может быть описано с помощью русского языка, я что-то не так понимаю?

guest_20040621> целесообразность существования двух типов триггеров на таблице - R-триггеры и O-триггеры

Не нужно покупаться на неологизмы. Триггеры - они и есть триггеры. Обычные триггеры из реляционной модели. Какие названия им кто-то придумал вместо того, чтобы называть их триггерами - абсолютно не интересно.
Да, конечно, обычные триггеры. Имелся ввиду "нотационный" аспект (если можно так выразиться) для повышения "градуса" ортогональности, в первую очередь в голове у разработчика (нотации нам строить и жить помогают :)

guest_20040621У Григорьева нет никаких других моделей, кроме реляционной. И у Тенцера тоже нет. А вместо них присутствуют некие добавки в виде неких черных ящиков. И все это вместе называется новой идеей. ;)
Тут спорить не буду, замечу еще раз - Вам - верю.

guest_20040621> "таблица как тип данных".

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

guest_20040621> Можно ли считать, что (1) - относится к свойствам реляционного типа (таблица [Период]), а (2)
> - к свойствам объекта "размещенного" в этой таблице?

Нет, нельзя. Просто потому, что Вы не имеете возможности описывать объекты штатными средствами реляционных СУБД. А для реляционной структуры данных эти значения трактуются однозначно.
Не совсем понял, что значит "описывать объекты"?
Код: plaintext
1.
договор аренды { дата1, дата2, ... }
дядя Вася { дата1, дата2, дата3, дата4, ... }
?
Попробую еще раз (что хотел сказать), с кавычками: "реляционный" тип - таблица [Период] - это следующий(после полей таблицы) уровень абстрагирования, в рамках конкретной(разрабатываемой) системы, разумеется.
Код: plaintext
1.
договор аренды { период("срок_действия", дата1, дата2), ... }
дядя Вася { период("жизни", дата1, дата2), период("служба_в_СА", дата3, дата4), ... }

guest_20040621Вы не хотите иметь границ между метамоделью, моделью данных и моделью предметной области. К сожалению, они есть и с этим ничего не поделать. ;) Более того, именно их наличие, собственно, и делает возможным практическое применение реляционных СУБД. ;)
Затрудняюсь что-либо ответить...слишком "высоко" для меня :)

guest_20040621Микс. Не нравится слово "микс" - назовите "каша", смысл останется тем же. ;)
:-)))
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34263332
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> квадратного и зеленого

;) Вот я и говорю о том, что квадратное не может быть ортогонально зеленому.

> повышение степени абстрагирования (от реляционной модели конкретной СУБД)?

Реляционная модель существует безотносительно СУБД.

> Не совсем понял, что значит "описывать объекты"?

Термин "объект" в объектной модели имеет вполне себе конкретную смысловую нагрузку. Иногда этот термин используют применительно к другим моделям, обычно - абсолютно без оснований для этого, при этом не уточняя контекста и не давая определения. В реляционной структуре нет объектов. Есть сущности. Разница - принципиальна.

> дядя Вася

ОК, если Вы настаиваете, пусть будет. ;)
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34264525
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621;) Вот я и говорю о том, что квадратное не может быть ортогонально зеленому.
Смотря каким смыслом наполнять понятие "ортогональность". В моделировании/проектировании это в первую очередь - максимальная независимость, imho. Т.е. если изменив цвет (с зеленого на красный) мы при этом не потеряем форму (осталась квадратной), то вполне можно полагать что цвет ортогонален форме, разве нет?

guest_20040621Реляционная модель существует безотносительно СУБД.
Реляционная модель -> SQL -> СУБД. Других проявлений существования я не знаю... т.е. для меня "безотносительность" весьма относительна :)

guest_20040621> Не совсем понял, что значит "описывать объекты"?

Термин "объект" в объектной модели имеет вполне себе конкретную смысловую нагрузку. Иногда этот термин используют применительно к другим моделям, обычно - абсолютно без оснований для этого, при этом не уточняя контекста и не давая определения. В реляционной структуре нет объектов. Есть сущности. Разница - принципиальна.
Т.е. в более раннем посте Вы хотели сказать что в реляционных СУБД можно описывать "сущности" но не "объекты"? ("Вы не имеете возможности описывать объекты штатными средствами реляционных СУБД").

guest_20040621> дядя Вася
ОК, если Вы настаиваете, пусть будет. ;)
Похоже, я Вас уже утомил (а может и не только Вас). Ну, извините :)
Но раз уж так много было написано(может и флуда), позволю себе еще один раз высказаться.
Проблему автора топика можно переформулировать как проблему определения домена в реляционной модели. Именно семантика домена "увязывает" реляционную модель с предметной областью. Что произойдет, если "хранить в одних и тех же полях разные по смыслу данные"? Домен исчезнет? Наверное нет. Семантика домена станет более сложной (а связь с предметной областью более мутной)? Наверное да. Как избавиться от сложности и мути?
1) отказаться от "хранить в одних и тех же полях разные по смыслу данные"
2) сложность и муть понятия относительные, цена вопроса приемлемая
3) попробовать создать надстройку "инкапсулирующую сложность и просветляющую муть"
Я не рекомендую ни 1) ни 2) ни 3), а лишь рекомендую познакомиться с существующими попытками 3).
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34265236
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LRПроблему автора топика можно переформулировать как проблему определения домена в реляционной модели. Именно семантика домена "увязывает" реляционную модель с предметной областью. Что произойдет, если "хранить в одних и тех же полях разные по смыслу данные"? Домен исчезнет? Наверное нет. Семантика домена станет более сложной (а связь с предметной областью более мутной)? Наверное да. Хорошо сказано.
Но проблема автора в зависимости смыслов одних атрибутов от значений других. А?
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34265616
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRНо проблема автора в зависимости смыслов одних атрибутов от значений других. А?
Верно. И вполне естественным выглядит желание "оформить/унифицировать" эти зависимости в некую согласованную (модель? чего? "видения" данных?) в рамках реляционной модели.
Например, можно к каждому атрибуту "прицепить" дополнительный смысловой(семантический) атрибут и получить что-то похожее на модель Тенцера. Или, посчитав, что достаточно одного семантического атрибута для всех атрибутов отношения(отношение как "тип данных моей системы"), получить что-то похожее на модель Григорьева. Или ...
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34265618
TRJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRJ
Гость
LR
В такой модели вопрос стоял бы не о разных смыслах значений одного поля а о разных смыслах записей одной таблицы (отношения) - т.е. разных смыслах разных переменных, хоть и одного типа...
Тогда, например, можно было бы иметь "реляционный тип" (таблицу) - Период с полями
Date1, Date2, S
где Date1 и Date2 имеют всегда имеют один и тот же "реляционный" смысл (начало и конец периода), а S содержит "объектный" смысл ("рождение-смерть", "женились-развелись", срок аренды и т.п.)

Я вот всю думаю над этой фразой... Как то я раньше не задумывался, что "смысл", можно разложить на составляющие. Любопытно, а описания полей любых "типов" должны так раскладываться на реляционную и объектную компоненту? Типа, когда мы пытаемся определить характеристики чего-то, то эта характеристика всегда как бы в двух плоскостях?
Перечитал написанный абзац, и подумал - какую-то чушь несу :-) Был бы этот томик Дейта потоньше - взял бы его и освежил знания :-)
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34265716
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TRJЛюбопытно, а описания полей любых "типов" должны так раскладываться на реляционную и объектную компоненту? Типа, когда мы пытаемся определить характеристики чего-то, то эта характеристика всегда как бы в двух плоскостях?
Если вопрос ко мне, то я затрудняюсь ответить что-либо определенное, так как сам не уверен в правомочности такого подхода (я верю guest_20040621, а он считает эти идеи безграмотной тухлятиной:Р)
В чем я уверен, так это в том, что над этими идеями стоит помедитировать, если периодически приходится заниматься проектированием БД...
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34266119
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LR TRJЛюбопытно, а описания полей любых "типов" должны так раскладываться на реляционную и объектную компоненту? Типа, когда мы пытаемся определить характеристики чего-то, то эта характеристика всегда как бы в двух плоскостях?
Если вопрос ко мне, то я затрудняюсь ответить что-либо определенное, так как сам не уверен в правомочности такого подхода (я верю guest_20040621, а он считает эти идеи безграмотной тухлятиной:Р)
В чем я уверен, так это в том, что над этими идеями стоит помедитировать, если периодически приходится заниматься проектированием БД...

guest_20040621 занимает беспроигрышную позицию. Но это позиция ничего не дает для решения этих проблем. По мне имеющиеся способы хранения и извлечения сильно не соответствуют способам обработки. Потому и приходится заниматься надстройками над имеющимися. Особенно в тех задачах, где структуры меняются динамически. Где обязательно надо дать ползователю возможность описать свою структуру, опираясь на перопределенный домен свойств и способов описания новых свойств, их исползование и группировки.
В идеале мне нужна БД которая бы хранила отдельно каждый объект со его полной историей с непосредственным доступом к нему и его историческим копиям, плюс могла бы их классифицировать по заданным правилам статически и/или динамически и обеспечила бы автодоступ в обеих направлениях.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34266238
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-прежнему туманно. Какой способ соответсвовал бы в идеале задаче коммивояжера?
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34266416
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRПо-прежнему туманно. Какой способ соответсвовал бы в идеале задаче коммивояжера?

Ну тут все не так сложно. Граф задан статически.
Меня интересует другая плоскость. Допустим путников много. Изначально они все одинакоыв, но в пути один сломал ногу, другому выбили глаз, один узел взорвали террористы, а другом засели бандиты.
Как сделать так, что бы не меняя структуру БД, дать возможность пользователя указать на изменивщиеся обстановку, а типовому алгоритму перестраиваться с учетом новой обстановки.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34266473
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Реляционная модель -> SQL -> СУБД.

Если исключить из этой цепочки два последних элемента, с реляционной моделью ничего не произойдет.

> в реляционных СУБД можно описывать "сущности" но не "объекты"?

Да. И никаких свойств объектов у сущностей нет (на самом деле, конечно, это не всегда так; однако, разница действительно принципиальна).

> Проблему автора топика можно переформулировать как проблему определения домена
> в реляционной модели.

Imho нет. Я как-то не очень понимаю, почему Вы стараетесь найти не-реляционное решение реляционной задачи реляционными средствами. ;)

> 2) сложность и муть понятия относительные

;)))

> 3) попробовать создать надстройку "инкапсулирующую сложность и просветляющую муть"

Это сложный путь. Попробую объяснить, почему. Есть куча задач, решение которых очень просто в моделях, отличных от реляционных и очень сложно в реляционных моделях. Причем, фишка в том, что для таких задач можно построить универсальную метамодель (и метаметамодель); и реляционная модель также очень хорошо ляжет в эту метамодель. Т. е. получится универсальный фреймворк для управления любыми структурами: и объектными, и реляционными. Сложность создания этого универсального фреймворка ненамного выше, чем создание того же фреймворка для конкретной задачи, а ценность - несоизмеримо выше. Т. е. не имеет смысла решать частную задачу, дешевле получить решение в общем виде.

> По мне имеющиеся способы хранения и извлечения сильно не соответствуют способам обработки.

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

> Где обязательно надо дать ползователю возможность описать свою структуру

Эта задача вполне решается традиционными средствами.

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

И эти задачи решаются традиционными средствами реляционных СУБД. Я не хочу сказать, что это тривиальные решения, ни imho ничего запредельно сложного здесь нет.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34266559
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621
И эти задачи решаются традиционными средствами реляционных СУБД. Я не хочу сказать, что это тривиальные решения, ни imho ничего запредельно сложного здесь нет.

Я не говрjил что это сложно. Все как то выкручиваются.
Проблемы начинаются при интеграции с другими системами.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34266668
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Все как то выкручиваются.

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

> Проблемы начинаются при интеграции с другими системами.

Эта проблема решается точно так же, как и предыдущие: использованием традиционных, реляционных паттернов проектирования.

Imho главная фишка фреймворка в том, что он поддерживает разные метамодели; реально использовать его, например, для UML и реляционной структуры данных _одновременно_. Представьте, например, себе тулзу с функционалом MagicDraw в качестве middleware приложения. Впечатляет? ;) Это абсолютно другой уровень проектирования и другое качество проектирования.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34266681
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да говорить - то не о чем. Везде чего - то не хватает. Потихончку добавляют - и на том спасибо.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34308468
Fuzzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, в 1С проводки именно так и хранятся -- в одном поле разное по смыслу содержание.
И что характерно, вообще непонятно (вот мне например), как этого можно избежать.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34308519
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FuzzyКстати, в 1С проводки именно так и хранятся -- в одном поле разное по смыслу содержание.
И что характерно, вообще непонятно (вот мне например), как этого можно избежать.Вы о том, что в 1с в зависимости от значения в полях "тип аналитики" в значениях ссылок аналитики хранятся данные-ссылки на разные таблицы? или о том, что количества и цены (и, возможно, тому подобные счислимые) лежат в одном поле но в разных записях?

1-е избегается например звездой с глобальным (в пределах базы) идентификатором (ключом) объекта. 2-е - видимо вполне нормально.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34308544
Fuzzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4321, да, я про 1-й случай.
А что такое звезда с глобальным идентификатором? И как она поможет, можно подробнее, плиз?
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34308565
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовМеня интересует другая плоскость. Допустим путников много. Изначально они все одинакоыв, но в пути один сломал ногу, другому выбили глаз, один узел взорвали террористы, а другом засели бандиты. Как сделать так, что бы не меняя структуру БД, дать возможность пользователя указать на изменивщиеся обстановку, а типовому алгоритму перестраиваться с учетом новой обстановки.
Как ни странно, я имел косвенное отношение к решению именно такой задачи. Ну а самый распространенный пример именно этой задачи называется ip-маршрутизация.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34308644
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовВ идеале мне нужна БД которая бы хранила отдельно каждый объект со его полной историей с непосредственным доступом к нему и его историческим копиям, плюс могла бы их классифицировать по заданным правилам статически и/или динамически и обеспечила бы автодоступ в обеих направлениях.
Это только первый шаг. Предположим что он уже сделан. А что делать дальше с этими объектами ?
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34308958
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод Сахават ЮсифовВ идеале мне нужна БД которая бы хранила отдельно каждый объект со его полной историей с непосредственным доступом к нему и его историческим копиям, плюс могла бы их классифицировать по заданным правилам статически и/или динамически и обеспечила бы автодоступ в обеих направлениях.
Это только первый шаг. Предположим что он уже сделан. А что делать дальше с этими объектами ?

Например конфигурировать изделии исходя из имеющиеся сети технологических маршрутов, создавать и назначить группы взаимозаменяемых ресурсов на операцию, создавать иерархии.
А IP - маршрутизация сложная штука. :)
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34309668
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовНапример конфигурировать изделии исходя из имеющиеся сети технологических маршрутов, создавать и назначить группы взаимозаменяемых ресурсов на операцию, создавать иерархии.
Это все сводится к манипуляциям над свойствами отдельных объектов, т.е. шаг 1. 2 шаг - алгоритмы обработки этих объектов/свойств. Если объекты и св-ва создавал/менял пользователь, то и алгоритмы должен писать тоже он, а вот это проблема.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34310684
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если обратиться к устройству ОРСУБД Оракл, то в этой СУБД задача решена так.

Мы можем создавать древовидные иерархии классов (пользовательских объектных типов).
Для хранения экземпляра определённого типа, мы можем использовать отдельную таблицу или таблицу используемую для хранения экземпляров супертипа (фактически, супертип может и не иметь экземпляров, т.е. быть абстрактным).

Рассмотрим второй вариант.
Поскольку тип наследует все атрибуты супертипа, то в для хранения этих атрибутов в реляционном ядре БД используются теже колонки, что используются для хранения атрибутов супертипа. Для атрибутов которые определены в нашем типе, в реляционной таблице создаются новые колонки. Эти колонки используются ТОЛЬКО для хранения значений атрибутов самого нашего типа и любых его подтипов, которые так же их наследуют.

Такая схема несколько расточительна, когда дерево типов широкое, а из супертипа наследуется относительно небольшое число атрибутов (относительно количества атрибутов в его подтипах). Но, если между типами так мало общего, то и таблицы для хранения экземпляров скорее всего мы выберем разные.
Т.е. Оракл считает, что в реляционной БД каждая колонка должна отвечать только за один атрибут объектного типа данных.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34310737
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab
...


Интересно то, что объект как бы рождается и развивается. По очень похожим схемам, но все же разным. В конце пути все они друг от друга не очень-то отличаются. Все вроде люди, но одни узкоглазые, другие черножопие, а третьи желтоухие. Иногда их надо иденцифициравать под одним ракурсом, а иногда под другим. И в отличии от чека, который и рождается по подобию, эти твари рождаются без рук, ног..., а наращивают их по росту, а иногда могут пойти на дрова недорослями. И каждое из их состояний значима и подлежит идентификации.
Вобщем, я сделал так - при рождении уникальный идентификатор и читабельное имя. Дальше наследуемые и приобретенные свойства по ходу роста. (Для декомпозиции-конфигурации). Наследуемые свойства значений не имеют. А приобретенные имеют. Не знаю насколько это хорошо, но меня пока устраивает. Дальше по ходу будет видно.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34310739
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод Сахават ЮсифовНапример конфигурировать изделии исходя из имеющиеся сети технологических маршрутов, создавать и назначить группы взаимозаменяемых ресурсов на операцию, создавать иерархии.
Это все сводится к манипуляциям над свойствами отдельных объектов, т.е. шаг 1. 2 шаг - алгоритмы обработки этих объектов/свойств. Если объекты и св-ва создавал/менял пользователь, то и алгоритмы должен писать тоже он, а вот это проблема.

Пользователь алгоритм и пишет - в виде графа технологий и графа связей на этом графе. А прога интерпретирует и упаковывает экземпляры возможно плотно.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34310797
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовИнтересно то, что объект как бы рождается и развивается.

Это я так понял речь идёт о динамической типизации объектов, когда в процессе жизненного цикла объект приобретает или теряет типы (и связанные с ними атрибуты и операции).
ИМХО, статическая типизация (как в C++) в отличии от динамической (как в JavaScript) хоть и менее гибкая, но более управляемая. В любом случае, используя даже статическую типизацию можно строить сложные объекты. Просто эти функции будут реализованы не в языке, а в библиотеке.

Рожать только имя объекта, наверное не имеет большого смысла. Всё таки после создания объект должен быть инициализирован и готов к использованию. Более того, по спецификации OMG, далеко не все объекты имеют честь носить уникальное имя, большинство объектов в системе идентифицируются только по ссылке.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34310884
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab
Рожать только имя объекта, наверное не имеет большого смысла. Всё таки после создания объект должен быть инициализирован и готов к использованию. Более того, по спецификации OMG, далеко не все объекты имеют честь носить уникальное имя, большинство объектов в системе идентифицируются только по ссылке.

Дело в том, что растущий объект не всегда может быть инициализирован полностью. Инициализируются полностью только те объекты, которые дальше развиваться не будут. Я раньше говорил - инициализуруются приобретенные-собственные, ни от чего не зависимые свойства, а унаследованные свойства остаются пустыми. Они будут инициализироваться во время конфигурации сверху вниз. Т.е., в конце роста иногда получается тип, а иногда объект.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34311236
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовПользователь алгоритм и пишет - в виде графа технологий и графа связей на этом графе.
Я имел ввиду совсем простой случай: пользователь добавил новый атрибут (не просто так) и хочет задействовать его в каком-то расчетном алгоритме (уже написанном). Как ему это сделать, ведь пользователь не программист.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34311554
Фотография Просто
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TRJВ базе, с которой я имею дело, имеет место следующая ситуация. Имеется таблица, в которой хранятся данные "объектов" разных "классов". [...] Насколько это приемлемо?

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

В моем конкретном случае пользователь может применить свойства в формулах инициализации унаследованных свойств.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34312225
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов
В моем конкретном случае пользователь может применить свойства в формулах инициализации унаследованных свойств.
Примеры:
1. в формулах для расчета сумм проводок
2. расчетные атрибуты объектов (похоже на ваш случай)
3. некоторые виды отчетов
4. при написании пользовательских хранимых функций
5. т.н. "вставки пользователя" - что-то типа триггеров при обработке объектов
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34312955
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовДело в том, что растущий объект не всегда может быть инициализирован полностью.

Полностью тоже не надо. Например, существует ленивая инициализация. Но, после инициализации объект должен находится в непротиворечивом состоянии, в противном случае его поведение будет непредсказуемым. Если объект растёт, то каждое его состояние должно допускать дальнейший рост. Объект без состояния это пустышка, NULL.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34313100
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовТ.е., в конце роста иногда получается тип, а иногда объект.

Класс объекта можно описать с помощью метакласса и т.д.
Точно так же структура данных может быть описана метаданными.
Обычно, классы конструируются из метаклассов на этапе разработки, а объекты на этапе выполнения.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34313599
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab Сахават ЮсифовТ.е., в конце роста иногда получается тип, а иногда объект.

Класс объекта можно описать с помощью метакласса и т.д.
Точно так же структура данных может быть описана метаданными.
Обычно, классы конструируются из метаклассов на этапе разработки, а объекты на этапе выполнения.

Да кто спорить то? :)
Я просто хотел сказать, что приходится изголятся вместо того, что бы сказать стандартным хранилищам типа SQL Server - создай такой объект (может быть по какому то шаблону, с переопределением, добавлением, удалением свойств), отметь определенные его свойства конфигурируемыми и включи его в нужные классификаторы.
Ведь нужда в этом везде и всюду.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34313991
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов
Да кто спорить то? :)
Я просто хотел сказать, что приходится изголятся вместо того, что бы сказать стандартным хранилищам типа SQL Server - создай такой объект (может быть по какому то шаблону, с переопределением, добавлением, удалением свойств), отметь определенные его свойства конфигурируемыми и включи его в нужные классификаторы.
Ведь нужда в этом везде и всюду.

Да вроде с этим нет проблем. Например, Оракл поддерживает типы XML, anyData, anyType.
В общем смешение данных и метаданных (тэгов) в одной записи, динамическая типизация - объективная реальность.
Как то исторически сложилось, что каталог БД могут изменять только разработчики системы. Фактически, любой квалифицированный пользователь системы в состоянии самостоятельно менять структуру БД. К сожалению, очень немногие прикладные программы и средства разработки поддерживают такую возможность.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34314294
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> К сожалению, очень немногие прикладные программы
> и средства разработки поддерживают такую возможность.

Не "к сожалению", а "к счастью".
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34314303
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> К сожалению, очень немногие прикладные программы
> и средства разработки поддерживают такую возможность.

Не "к сожалению", а "к счастью".

Нет. К сожалению.
Дело другое, что эти изменения должен вносится не напрямую, а через владелеца схемы, а тот должен контролировать непротиворечивость и целостность своего слоя схемы.
А так ерунда все эти хранилища, толку от них мало, а гемора полный вагон.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34314377
guest00x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>> Не "к сожалению", а "к счастью".
> Нет. К сожалению.

Эта борьба обычно вполне безнадежна...(цитата из этой старенькой статьи )

ТЕЗИС 2. Основная проблема программирования

2.1. Сложность есть мера неоднородности. Чем более разнообразны составляющие нечто части, чем более разнообразны образуемые между частями связи - тем выше сложность этого нечто. Сложность вселенной, состоящей из сложенных одинаковым образом одинаковых кирпичей, равна сложности одного кирпича и образуемых им с соседями связей (теорема редукции сложности). Таким образом, сложность выражает не массоэнергетические характеристики мира (см. E=m*c**2), а структурные его свойства, причем весьма емкО и общО.

2.2. Все разработчики программ имеют дело исключительно со сложностью. Программы не имеют ни массы, ни энергии (если отвлечься от параметров исполняющего их hardware). Программы - это чистые структуры, и сложность является одним из основных интегральных параметров этих структур. Борьбе со сложностью и посвящают программисты свою жизнь. Эта борьба обычно вполне безнадежна для программистов, поскольку они не понимают законов мира, в котором пытаются оперировать структурными конструкциями, иерархиями классов или словарями. Программисты - герои "невидимого фронта" боев с колоссальными объемами незнания; герои, которых вооружают негодными погремушками вместо настоящих инструментов постижения истины.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34314389
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Нет. К сожалению.
...
> А так ерунда все эти хранилища, толку от них мало, а гемора полный вагон.

Я не могу позволить тупым юзерам писать все, что им взбредет в голову. Разумеется, Вы имеете право иметь другую точку зрения.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34314677
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовЯ просто хотел сказать, что приходится изголятся вместо того, что бы сказать стандартным хранилищам типа SQL Server - создай такой объект (может быть по какому то шаблону, с переопределением, добавлением, удалением свойств), отметь определенные его свойства конфигурируемыми и включи его в нужные классификаторы.
Ведь нужда в этом везде и всюду.
Нужда есть. Только это не функция СУБД, они не этого предназначены. Работа с объектами - функция фреймеворков (и они это все делают неполохо).
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34316264
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Нет. К сожалению.
...
> А так ерунда все эти хранилища, толку от них мало, а гемора полный вагон.

Я не могу позволить тупым юзерам писать все, что им взбредет в голову. ...

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

Нет программистов и юзеров. Есть люди более или менее грамотные в области ИТ. Если чел прошёл обучение, сдал экзамен, то почем бы не дать ему право вносить изменения в конфигурацию или даже код системы???
Тут скорее вопрос в защите от дурака, он неправильных или злонамеренных действий пользователя, администратора, разработчика и т.д. и т.п..
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34316825
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Тоже самое можно сказать про тупых программистов, которые пишут что им взбредет в голову.

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

> Нет программистов и юзеров.

Программистов вообще нет. Как класса. Есть разработчики и кодеры с разной специализацией и квалификацией. А вот юзеры есть.

> Есть люди более или менее грамотные в области ИТ.

;) Вы можете предложить критерии оценки такой грамотности?

> Если чел прошёл обучение, сдал экзамен

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

> то почем бы не дать ему право вносить изменения в конфигурацию или даже код системы???

Незачем. Отчеты - пожалуйста. Любые, в пределах прав аккаунта.

> Тут скорее вопрос в защите от дурака, он неправильных или злонамеренных действий
> пользователя, администратора, разработчика и т.д. и т.п.

Бороться с явным вредительством просто. А вот побороть тупость - невозможно. Ни организационно, ни административно.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34317092
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Программистов вообще нет. Как класса. Есть разработчики и кодеры с разной специализацией и квалификацией. А вот юзеры есть.

Врёшь. Моя должность звучит "... программист". Это официальное название.

> ;) Вы можете предложить критерии оценки такой грамотности?

ИТ очень широкая область знания. Но для выполнения конкретной работы сформулировать конкретные требования не сложно.

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

В данном случае IQ человека никого не интересует. Если тупой тупо справляется со своими обязаностями, то это хорошо. Если умный творчески порет косяки, то это плохо.

> Незачем. Отчеты - пожалуйста. Любые, в пределах прав аккаунта.

Если тебе незачем, то это не значит, что это вообще никому не нужно. Разделение труда пользователя и разработчика это скорее зло чем благо. Если человек знает, что хочет, и может это сделать достаточно хорошо, отпадает нужда объяснять свои желания комуто ещё.

> Бороться с явным вредительством просто. А вот побороть тупость - невозможно. Ни организационно, ни административно.

Ещё раз повторю. В данном случае IQ человека никого не интересует....
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34317140
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621
Программистов вообще нет. Как класса. Есть разработчики и кодеры с разной специализацией и квалификацией

+1 :)
guest_20040621
А вот юзеры есть.

ну, у "них" тоже есть ранжирование :)
авторРуководство пользователя, являясь документом техническим, не преследует цели завоевать расположение читателя. В то же время руководство пользователя не должно вызывать негативных эмоций у представителей любой из перечисленных групп пользователей. Как же описывать последовательность действий при работе с графическим интерфейсом пользователя?

Users и Power (Advanced) users следует «вести через перевал» согласно подходу «делай, как я сказал» по жесткой схеме «действие - результат».

Для выполнения операции ТАКОЙ-ТО (или «указанной операции» - помним о шаблонном построении фраз, формализации и унификации) следует («следует» - вежливая отстраненность: хочешь получить результат - делай, как я сказал, не хочешь - не мои проблемы):

взять (действие в повелительном наклонении) отвертку в правую руку (рисунок, поясняющий результат);
вставить отвертку куда-нибудь (рисунок, поясняющий результат);
повернуть отвертку на 90 градусов по часовой стрелке (рисунок, поясняющий результат);
и так далее.
И все получится, бездумно и без напряжения. И все будут счастливы.

Не следует детально расписывать, как «согнуть пальцы», чтобы удержать отвертку. Хватательный рефлекс в равной степени развит и у Users, и у Power (Advanced) users с пеленок. (Неспроста же дети мгновенно осваивают действия с графическим интерфейсом пользователя). Сведения о выполнении операций вида «drag-and-drop» и им подобных читатель сможет самостоятельно почерпнуть из руководства пользователя операционной системы.

Administrators, которым подобная детализация никчему, вопреки цели руководства будут испытывать «ощущение авторитетности изложения» по-Кагарлицкому.
http://authorit.ru/?c=8&b=6&t=HTML/dd_gui/toc.htm&o=HTML/dd_gui/dd_gui.htm&n=HTML/dd_gui/dd_gui.htm
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34319818
Frankie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621Программистов вообще нет. Как класса
Если говорить, что программист это более творец, чем сборщик, то да.

mcureenabВ данном случае IQ человека никого не интересует. Если тупой тупо справляется со своими обязаностями, то это хорошо. Если умный творчески порет косяки, то это плохо.
Первое ничем не лучше второго. IT это всё-таки не гвозди забивать. Практика показывает, что от IQ очень даже многое зависит.

mcureenabЕсли тебе незачем, то это не значит, что это вообще никому не нужно. Разделение труда пользователя и разработчика это скорее зло чем благо. Если человек знает, что хочет, и может это сделать достаточно хорошо, отпадает нужда объяснять свои желания комуто ещё.
В том-то и дело, что разработчик зачастую лучше пользователя знает как на самом деле нужно. Пользователь - человек привычки, он не способен мыслить шире "тупо справляться со своими обязаностями".

guest_20040621Бороться с явным вредительством просто. А вот побороть тупость - невозможно. Ни организационно, ни административно.
Можно, но это затратно. Проще познакомиться с умными.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34319914
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FrankieПользователь - человек привычки, он не способен мыслить шире "тупо справляться со своими обязаностями".

ересь какая, прости Господи...
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34320422
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FrankieВ том-то и дело, что разработчик зачастую лучше пользователя знает как на самом деле нужно..

Сокрее разработчик может узнать у пользователя, что ему нужно и придумать как это сделать.
А если разработчик и пользователь - одно лицо? Правда принцип "всё знать нельзя", пока только усиливается.

Интересно, если я в Excel сделал форму счёта, то я вроде как уже разработчик. Если я этой формой напечатал счёт, так я уже пользователь. Я даже могу (естественно я не буду это делать, поскольку тем самым нарушу лицензию) внести изменения в код Excel. Но для микрософта, я всё равно пользователь Excel и так и эдак. И техподдержка Excel консультирует меня исходя из того, что я не меняю код Excel, иначе она просто не умеет.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34320448
Frankie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabСокрее разработчик может узнать у пользователя, что ему нужно и придумать как это сделать.
Вы знаете как мало на самом деле пользователей, которые могут сформулировать что им нужно? А то обычно они объясняют, ты делаешь, а они потом на тебя выпученными глазами смотрят!

mcureenabА если разработчик и пользователь - одно лицо? Правда принцип "всё знать нельзя", пока только усиливается.
Под пользователем я понимаю человека, который не имеет права (в соответствии со структурой организации) лезть в код и в базу иначе как через клиентское приложение. Это просто не его задачи. Разработчик пользуется системой только чтобы её тестить.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34320470
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FrankieВы знаете как мало на самом деле пользователей, которые могут сформулировать что им нужно? А то обычно они объясняют, ты делаешь, а они потом на тебя выпученными глазами смотрят!Может Вы их просто спрашивать не умеете ? И, с точки их зрения, проблемы с сообразительностью у Вас ?
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34320575
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frankie mcureenabА если разработчик и пользователь - одно лицо? Правда принцип "всё знать нельзя", пока только усиливается.
Под пользователем я понимаю человека, который не имеет права (в соответствии со структурой организации) лезть в код и в базу иначе как через клиентское приложение. Это просто не его задачи. Разработчик пользуется системой только чтобы её тестить.

Тем не менее, было дело, когда я сам разрабытывал и сам же использовал свою систему. Не скажу, что это было хорошо, но жизнь заставила.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34327846
Frankie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA FrankieВы знаете как мало на самом деле пользователей, которые могут сформулировать что им нужно? А то обычно они объясняют, ты делаешь, а они потом на тебя выпученными глазами смотрят!Может Вы их просто спрашивать не умеете ? И, с точки их зрения, проблемы с сообразительностью у Вас ?
Точно так они и думали! Более того, вынашивали и накапливали злобу и где-то через полгода (!) "старший" из них высказал всё это как-то раз моему начальнику (!!), потом высказал ещё раз. И тогда шеф, с которым мы всегда были в очень хороших отношениях высказал всё это мне! Спустя время после того, как я ушёл, он открыто признал, что у него работают идиоты. Грустно...
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34355694
ByKiS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаю базу для заказов жалюзи (сразу оговорюсь, что с созданием баз и вообще базами познакомился только в декабре - до того был простым пользователем). Примерно когда стал делать базу, появился этот пост - так что я за ним следил и внимательно читал, т.к. в своей первой базе тоже сделал "Разное по смыслу содержание полей разнородных объектов в одной таблице", даже не догадываясь, что так кто-то делает ещё. Схема приведена на картинке. В таблице проданные изделия в поле "Параметр1" хранятся следущие данные:
для ролетов - ширина ткани
для вертикальных жалюзи - ширина ленты
для романеток - количество струн
для горизонтальных жалюзи - тип крепления
для защитных жалюзи - тип направляющих
и т.д. и т.п. для всех остальных параметров.
Хотелось бы услышать мнение специалистов о моём конкретном случае хранения данных. Заранее спасибо всем откликнувшимся.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34355886
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ByKiSХотелось бы услышать мнение специалистов о моём конкретном случае хранения данных. Заранее спасибо всем откликнувшимся.

ИМХО, для хранения сойдёт, для работы, не очень. Поверх твоей структуры придётся создать слой представления данных, где каждому полю будет назначено "говорящее" название.
Пока система ограничивается одной экранной формой, умеренным объёмом данных и ограниченным количеством характеристик, всё будет легко и просто.
Когда захочется сделать некий API, отчёты и т.п. придётся подумать.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34355902
ByKiS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что такое API и на что тогда можно заменить мою структуру?
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34355980
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ByKiSЧто такое API и на что тогда можно заменить мою структуру?

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

ByKiSна что тогда можно заменить мою структуру?

Прямо сейчас что либо менять, видимо нет надобности. Важно не упустить момент, когда твоё решение начнёт проигравать стандартным открытым (в плане совместимости) решениям, а переход к стандартным технологиям станет проблемой.
В плане замены, можно рассмотреть объектные возможности СУБД и поддержку XML. Может быть для каждого типа жалюзи завести отдельную таблицу. Поработать над классификацией жалюзи, найти побольше общих свойств, назвать колонки "говорящими" именами, а не индексами.
В общем переместить метаданные из твоих таблиц-описателей в каталог БД.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34356632
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ByKiSв поле "Параметр1" хранятся следущие данные:
для ролетов - ширина ткани
для вертикальных жалюзи - ширина ленты
для романеток - количество струн
для горизонтальных жалюзи - тип крепления
для защитных жалюзи - тип направляющих
Типы - по соответсвующим справочникам?
Тогда эти параметры полезно снабдить дополнительным описанием для автоматического подключения нужного справочника на формах ввода.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34356680
ByKiS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabМожет быть для каждого типа жалюзи завести отдельную таблицу.То есть по одному и тому же заказу в разные таблицы вносить ролеты, маркизы и т.д? А как их тогда собрать потом воедино?

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

mcureenabназвать колонки "говорящими" именами, а не индексами. В общем переместить метаданные из твоих таблиц-описателей в каталог БД.Можно подробнее что такое "говорящими" именами? и метаданные?

ModelRТипы - по соответсвующим справочникам?
Тогда эти параметры полезно снабдить дополнительным описанием для автоматического подключения нужного справочника на формах ввода В принципе должно бвыть так как Вы предноложили, но так как пока не умею это делать (автоматического подключения нужного справочника на формах ввода), то типы вводяться вручную, не из справочника. Но заголовки полей на формах ввода информации для таблицы "Проданные изделия" при переходе по записям, в зависимсоти от вида, которому пренадлежит текущий тип, меняются в соответсвии со значениями указанными в спарвочнике Виды (вместо Параметр1.. пользователь видит "ширина ткани", "тип направляющих" и т.п.)

Понимаю, что учить меня с нуля основам создания баз Вы не будете, но за ответ и ссылку на источник для самостоятельного изучения (если у Вас есть) буду очень признателен.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34357009
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У Вас ведь Access судя по картинкам? Там же, где вы меняете заголовки полей, можно поменять и настройку контрола в соответствии с описанием в словаре параметров, я думаю . К сожалению про Access точнее не скажу.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34357389
ByKiS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, со временем разберусь... Пробовал сразу так делать, но не успел по срокам (надо было до февраля закончить), как буду переделывать на нормальную базу подумаю об этом.

А вот что такое "говорящие" имена? и метаданные?
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34357765
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ByKiSА вот что такое "говорящие" имена? и метаданные?

О чём тебе говорит название поля "Параметр1"? Полагаю, ни о чём. Поле "Ширина ленты" сразу даёт понять о чём речь.

Метаданные, это описание данных, их типов, структуры и семантики. Метаданные позволяют интерпретировать данные.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34357778
ByKiS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда вопрос - как сделать "говорящие" поля?
ссылочку хотя бы...
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34357875
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ByKiS mcureenabМожет быть для каждого типа жалюзи завести отдельную таблицу.То есть по одному и тому же заказу в разные таблицы вносить ролеты, маркизы и т.д? А как их тогда собрать потом воедино?

SQL позволяет соединять (JOIN) данные из разных таблиц. В формах можно использовать конструкции master-detail.

ByKiS mcureenabПоработать над классификацией жалюзи, найти побольше общих свойствНу для всех есть ширина, высота, цвет, тип управления - больше ничего нет и не будет.

Сомневаюсь. Ширина, высота, цвет, тип управления могут с тем же успехом характеризовать автомобили, окна, антенны и многие другие объекты. Тем не менее, ты выделил класс "Жалюзи".

Ты говорил про ширину ленты для вертикальных жалюзи. А чем ширина ленты отличается от ширины ткани? Предлагаю абстрагироваться от специфичных названий конструктивных элементов жалюзи и рассмотреть, например, их функциональное назначение. Одни элементы управляют потоком излучения, другие удерживают их на нужных местах, третьи позволяют регулировать и убирать жалюзи, четвёртые крепят конструкцию к стене, раме и т.п.. Изменив точку зрения, мы найдём гораздо больше признаков, которые объединяют эти изделия в класс "Жалюзи" и отличающих жалюзи от прочих предметов, делают их узнаваемыми.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34357956
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ByKiSТогда вопрос - как сделать "говорящие" поля?
ссылочку хотя бы...

Точно так же, как ты сделал поля "Ширина", "Высота", "Цвет".

ИМХО, в магазинах нет дефицита букварей по созданию БД самого разного масштаба, в том числе и персональных на MS Access. Нужно только поискать книгу с примерами близкими к твоей тематике. Значительно больше информации дадут фундаментальные книги по анализу и проектированию систем. Но тут нужно соизмерять затраты на обучение и ожидаемую отдачу. На голом энтузиазме поднять этот пласт знаний будет сложно не только из-за слабой мотивации, но и по причине отсутствия прикладных задач.

Ещё раз напомню, что академическая правильность это идеал, который разбивается о возможности СУБД и оборудования, средств разработки приложений, бюджет, квалификацию разработчика и т.д. и т.п.
Работающая система, гораздо полезнее идеальной, но существующей только на бумаге.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34357977
ByKiS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabSQL позволяет соединять (JOIN) данные из разных таблиц. В формах можно использовать конструкции master-detail. Кажется это многократно усложнит ввод нового вида... Не придётся ли переделывать всю базу, каждый раз вводя чтолибо новое?

mcureenabСомневаюсь. Ширина, высота, цвет, тип управления могут с тем же успехом характеризовать автомобили, окна, антенны и многие другие объекты. Тем не менее, ты выделил класс "Жалюзи"... Изменив точку зрения, мы найдём гораздо больше признаков, которые объединяют эти изделия в класс "Жалюзи" и отличающих жалюзи от прочих предметов, делают их узнаваемыми.Вообщето я считал классами ролеты, романетки, вертикальные и т.д.
Вообще не совсем Вас понял - зачем нузны ещё общие признаки? Признаки, которые указал я - я взял с конкретного производства - для заказов указываются только эти общие признаки, всё остальное только к конкретному типу:
вертикальным - ширина ленты, ленты есть и 127мм, и 89мм и т.д. и это указывает из чего надо изготовлять.
ролетам - ширина ткани, т.е. сколько надо оставит свободного места от краёв касеты (в зависимости от типа штапиков ПВХ окон и т.п.)
Но это уже конкретика... Вы имели ввиду, что у меня не правильная организация данных? Или Вы делали бы по другому?
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34358217
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ByKiSА вот что такое [] метаданные? Иными словами словарь данных - описание элемнтов данных. СУБД обязательно имеет собственный словарь, плюс дополнительные "прикладные" метаданные, как две правые таблички на последней диаграмме.

ИМХО, нет причин переживать, структуры подобного типа используятся достаточно часто.
Проблемы с ними могут возникнуть при генерации "поисковых" запросов типа все ролеты где ширина ткани не менее чем в три раза больше максимальной ширины ленты желтых вертикальных жалюзи.
При прямом перечислении больших проблем нет.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34358646
Yulka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelR ByKiSА вот что такое [] метаданные? Иными словами словарь данных - описание элемнтов данных. СУБД обязательно имеет собственный словарь, плюс дополнительные "прикладные" метаданные, как две правые таблички на последней диаграмме.

Я не программер, но как разработчик имею ламерский вопрос. А внешний (API или доступ к базе самой СУБД той же) к этим метаданным СУБД предоставляется програмно? То есть у меня есть ПО и я для своих допнужд хочу использовать эти метаданные в своей программной обработке (я бы их даже расширила, эти метаданные, добавила бы свои типы ограничений целостности и т.п., но и просто для оптимальной организации вычислений они мне нужны). Например, вопрос о MS SQL2005, Oracle... Ну и как технически его получить, если можно, намекните, пожалуйста, чтоб не ковыряться.
Заранее мерси.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34358702
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YulkaЯ не программер, но как разработчик имею ламерский вопрос. А внешний (API или доступ к базе самой СУБД той же) к этим метаданным СУБД предоставляется програмно? То есть у меня есть ПО и я для своих допнужд хочу использовать эти метаданные в своей программной обработке (я бы их даже расширила, эти метаданные, добавила бы свои типы ограничений целостности и т.п., но и просто для оптимальной организации вычислений они мне нужны). Например, вопрос о MS SQL2005, Oracle... Ну и как технически его получить, если можно, намекните, пожалуйста, чтоб не ковыряться.
Заранее мерси.

Сказать по правде с трудом понял что тут написано.
Системные метаданные можно найти в словаре БД. Например в Оракле можно сделать запрос к статическому предствалению user_tab_columns, чтобы найти названия и типы полей в таблице. Есть и другие статические представления, в которых представлена информация о БД.

О добавлении своих типов декларативных ограничений целостности я не слыхал. Разработка ограничений сводится к разработке триггеров, уникальных индексов и проверок на уровне записи.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34358738
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ByKiSНо это уже конкретика... Вы имели ввиду, что у меня не правильная организация данных? Или Вы делали бы по другому?

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

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

Глянь ещё тут.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34358941
Yulka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab YulkaЯ не программер, но как разработчик имею ламерский вопрос. А внешний (API или доступ к базе самой СУБД той же) к этим метаданным СУБД предоставляется програмно? То есть у меня есть ПО и я для своих допнужд хочу использовать эти метаданные в своей программной обработке (я бы их даже расширила, эти метаданные, добавила бы свои типы ограничений целостности и т.п., но и просто для оптимальной организации вычислений они мне нужны). Например, вопрос о MS SQL2005, Oracle... Ну и как технически его получить, если можно, намекните, пожалуйста, чтоб не ковыряться.
Заранее мерси.

Сказать по правде с трудом понял что тут написано.
Системные метаданные можно найти в словаре БД. Например в Оракле можно сделать запрос к статическому предствалению user_tab_columns, чтобы найти названия и типы полей в таблице. Есть и другие статические представления, в которых представлена информация о БД.

О добавлении своих типов декларативных ограничений целостности я не слыхал. Разработка ограничений сводится к разработке триггеров, уникальных индексов и проверок на уровне записи.

Ну меня в первую очередь ссылочная целостность интересует (уже имеющаяся в моих БД и моя собственная), я на ее основе хочу принимать решение программно. Допустим, есть длинные транзакции и в зависимости от степени связности моих таблиц я их по разному обрабатываю (ну лень мне вручную помнить свои структуры). Да и вообще, допустим, у меня структура динамическая, я ее не знаю заранее. Короче, слишком многое приходится делать за СУБД, потому хочется воспользоваться и встроиться. И как с MS SQL2005 дела тут, кто-нибудь знает?
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34358992
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YulkaКороче, слишком многое приходится делать за СУБД...

Нужно выбрать адекватную СУБД и/или создать адекватную БД. Многие задачи обеспечения целостности данных легко решаются с помощью хранимых процедур и тригеров (часто такие триггеры можно создавать автоматически). С другой стороны не стоит усложнять БД всякими ограничениями, делая её менее универсальной и меннее пригодной для хранения разных данных. Ведь можно делать приложения БД так, чтобы они корректно работали с теми данными которые удовлетворяют минимальным ограничениям.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34359231
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YulkaIMHO, понять Ваш полет фантазии несколько сложновато. Не знаю, насколько правильно я понял Ваши пожелания, но в MS SQL, по крайней мере - 2000, есть:
1. extended properties - поиск этой комбинации слов по индексу в BOL.
2. Meta Data Services - аналогично.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34359496
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YulkaНу меня в первую очередь ссылочная целостность интересует (уже имеющаяся в моих БД и моя собственная), я на ее основе хочу принимать решение программно. Допустим, есть длинные транзакции и в зависимости от степени связности моих таблиц я их по разному обрабатываю (ну лень мне вручную помнить свои структуры). Да и вообще, допустим, у меня структура динамическая, я ее не знаю заранее. Короче, слишком многое приходится делать за СУБД, потому хочется воспользоваться и встроиться. И как с MS SQL2005 дела тут, кто-нибудь знает?Конечно, есть специальные таблицы с предопределенными именами, так называемые системные таблицы (в MS SQL Server они, к слову, все начинаются на sys: sysobjects, syscolumns, ...). В них лежат все метаданные. Таблицы описаны в справке. В версии MS SQL Server 2005 есть еще один способ (более новый и предпочтительный) работы с метаданными: так наз. представления каталога: sys.databases, sys.sysobjects и т.д.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34359512
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabМногие задачи обеспечения целостности данных легко решаются с помощью хранимых процедур и тригеров (часто такие триггеры можно создавать автоматически).Она же ясно сказала, что ее интересует ссылочная целостность. ХП и триггеры тут не при чем.
mcureenabС другой стороны не стоит усложнять БД всякими ограничениями, делая её менее универсальной и меннее пригодной для хранения разных данных. Ведь можно делать приложения БД так, чтобы они корректно работали с теми данными которые удовлетворяют минимальным ограничениям.Мысль не понял. Если есть в предметной области бизнес-правило (ограничение целостности), которое можно заложить в БД, его нужно заложить. Всё.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34359700
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mirЕсли есть в предметной области бизнес-правило (ограничение целостности), которое можно заложить в БД, его нужно заложить.Ээээ...Теоретически, Вы, скорее, правы, практически, далеко не все бизнес-правила можно описать стандартным механизмом ограничений без использования процедурного кода. Вот если бы производители СУБД двигались в направлении к стандарту, то там есть неплохой механизм - ASSERT (если правильно помню), который позволит описать большее количество разного рода ограничений, чем это возможно сейчас. По крайней мере, в MSSQL. Хотя, возможно, мы немного о разном.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34359853
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA mirЕсли есть в предметной области бизнес-правило (ограничение целостности), которое можно заложить в БД, его нужно заложить.Ээээ...Теоретически, Вы, скорее, правы, практически, далеко не все бизнес-правила можно описать стандартным механизмом ограничений без использования процедурного кода.А я разве говорил о способе реализации правил? Я лишь подивился странной мысли "не стоит усложнять БД всякими ограничениями".
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34359945
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mirЯ лишь подивился странной мысли "не стоит усложнять БД всякими ограничениями".Я так и подумал, что, скорее всего, неправильно понял Вашу мысль. Нет вопросов, с теоретической точки зрения Вы абсолютно правы.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34360103
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mir ChA mirЕсли есть в предметной области бизнес-правило (ограничение целостности), которое можно заложить в БД, его нужно заложить.Ээээ...Теоретически, Вы, скорее, правы, практически, далеко не все бизнес-правила можно описать стандартным механизмом ограничений без использования процедурного кода.А я разве говорил о способе реализации правил? Я лишь подивился странной мысли "не стоит усложнять БД всякими ограничениями".

Не стоит усложнять БД, если туда кроме Вас никто не полезет.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34360134
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YulkaНу меня в первую очередь ссылочная целостность интересует (уже имеющаяся в моих БД и моя собственная), я на ее основе хочу принимать решение программно. Допустим, есть длинные транзакции и в зависимости от степени связности моих таблиц я их по разному обрабатываю (ну лень мне вручную помнить свои структуры). Да и вообще, допустим, у меня структура динамическая, я ее не знаю заранее. Короче, слишком многое приходится делать за СУБД, потому хочется воспользоваться и встроиться. И как с MS SQL2005 дела тут, кто-нибудь знает?Встроится в механизмы и алгоритмы целостности или использовать какие-то из них по собственному выбору не получится. В этом смысле MS SQL и ORACLE и др. популярные СУБД - черный ящик.
Динамическая структура - дык для СУБД все струкутуры динамические. Можно программно издавать и DDL и DML и как уже говорилось, читать словари. Однако добиться, чтобы скажем DDL не сопровождался коммитом, или запустить проверку целостности по произвольному событию - это вряд ли.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34360154
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще, в Оракл 10g2 расширен FGA, типа триггеры на select, не знаю, на сколько это по теме.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34361150
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mir mcureenabМногие задачи обеспечения целостности данных легко решаются с помощью хранимых процедур и тригеров (часто такие триггеры можно создавать автоматически).Она же ясно сказала, что ее интересует ссылочная целостность. ХП и триггеры тут не при чем.

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

mir mcureenabС другой стороны не стоит усложнять БД всякими ограничениями, делая её менее универсальной и меннее пригодной для хранения разных данных. Ведь можно делать приложения БД так, чтобы они корректно работали с теми данными которые удовлетворяют минимальным ограничениям.Мысль не понял. Если есть в предметной области бизнес-правило (ограничение целостности), которое можно заложить в БД, его нужно заложить. Всё.

Я привых различать "бизнес-правила" и "декларативные ограничения целостности".

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

Заложив в БД ограничение целостности, мы наверняка будем их использовать в ПО. Возвращаясь к "национальности", если мы вчера имели проверку "национальность not null", а сегодня её удалили, наверняка найдутся программы, которые грубо откажутся работать с анкетами, где графа "национальность" не заполнена или будут работать некорректно.
С другой стороны, если бы требование обязательно заполнять графу "национальность" было реализовано в экранной форме в виде проверки бизнес-правила, остальные программы не стали расчитывать на то, что это поле в таблице всегда заполнено и продолжили нормально работать после отмены этого правила.
Введение новых декларативных ограничений вообще проблематично (я имею в виду ранние версии СУБД Оракл), поскольку существующие данные наверняка будут противоречить этим ограничениям.

В общем я бы рекомендовал осторожно подходить к вопросу. Ограничения целостности данных облегчают нам жизнь в локальном масштабе пространства-времени, но могут создать серьёзные проблемы при тиражировании системы или в будущем.
Исходя из принципов контрактного программирования, чтобы система имела хорошие возможности повторного использования, нужно стремиться делать предусловия для системы максимально слабыми, а ограничения целостности БД как раз и являются такими предусловиями.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34361165
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов mir ChA mirЕсли есть в предметной области бизнес-правило (ограничение целостности), которое можно заложить в БД, его нужно заложить.Ээээ...Теоретически, Вы, скорее, правы, практически, далеко не все бизнес-правила можно описать стандартным механизмом ограничений без использования процедурного кода.А я разве говорил о способе реализации правил? Я лишь подивился странной мысли "не стоит усложнять БД всякими ограничениями".

Не стоит усложнять БД, если туда кроме Вас никто не полезет.

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

ИМХО, как раз наоборот. Свою персональную БД можно обвешать ограничениями как рождественское древо. Чтобы БД была полезной комуто ещё, ограничениями придётся пожертвовать.



Я тут имел ввиду " с точки зрения нападок грамотной части населения". :)

mir
Новое слово в теории проектирования ИС?
Продолжаем мысль: БД максимально полезна при полном отсутствии ограничений. Так?
Тогда максимально полезная БД в вашем смысле есть что-то вроде большого текстового файла. Просто поток символов. Разумеется, безо всякой структуры, ибо структура -- это первейшее ограничение.
И проектирование БД сводится к придумыванию имени для этого файла. Да и то, закрадывается сомнение, что жесткое имя файла -- тоже ограничивает гибкость системы...


Да, это самый хороший материал. Можно лепить все что угодно.
Как больше размер кирпичей, так меньше способов обвязки и тем самым оганичивается архитектурные изыски. Строим хрущевки и бетонные коробки. А РМД = Завод по ЖБИ.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34361440
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab mirОна же ясно сказала, что ее интересует ссылочная целостность. ХП и триггеры тут не при чем.Не вижу причины для возмущения. Целостность данных можно обеспечить как декларативными ограничениями, так и процедурно, с помощью ХП и триггеров.Нет никакого возмущения, о чем вы. Просто человека интересовало, как извлечь метаданные по ссылочной целостности. В MS SQL Server, о котором шла у человека речь, никто RI процедурно не обеспечивает. Поэтому зачем было говорить о XП и триггерах в этом контексте, я просто не очень понял.

mcureenabЯ привых различать "бизнес-правила" и "декларативные ограничения целостности".При чем здесь декларативность? Только что сами писали, что ОЦ можно обеспечить и процедурно, они от этого не перестанут быть ОЦ.

mcureenabДекларативные ограничения целостности диктуются объективными свойствами данных. такой вещи, как объективные свойства данных, просто не существует. БД суть модель куска реального мира, а значит изначально условна. Назовите мне типичные свойства данных, которые вы считаете "объективными" и я думаю, что придумаю пример, где это будет не вполне так.

Все ОЦ суть воплощение бизнес-правил, то есть наших знаний о предметной области. Некторые из них более стабильны, некоторые потенциально более изменчивы, но принципиально сути дела это не меняет. И если меняются знания о предметной области, то следует менять и БД, как ее модель. Чудес не бывает. За все надо платить. За возможность иметь максимально достоверные данные -- платить временем на проработку ОЦ и необходимостью их корректировать.

Вы же готовы за некую гипотетическую "гибкость" и "универсальность" БД (понимаемые вами как-то по своему) платить достоверностью. Бог в помощь. Иногда это можно. Но в основном -- недопустимо. Кому нужна "гибкая" и "универсальная" БД, в которой храниться, простите, всякое г@вно и мусор? На любителя.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34361617
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mir mcureenabДекларативные ограничения целостности диктуются объективными свойствами данных. такой вещи, как объективные свойства данных, просто не существует. БД суть модель куска реального мира, а значит изначально условна. Назовите мне типичные свойства данных, которые вы считаете "объективными" и я думаю, что придумаю пример, где это будет не вполне так.

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

БД, несомненно, абстракция объектов реального мира. Но реальный мир объективен (по крайней мере эта теория до сих пор продуктивна).

Пример - счёт. Счёт, как объект реального мира, состоит из основной части (кто, кому, когда и сколько) и списка позиций. В реляционной БД создаём таблицу для основной части и таблицу для позиций. Объективно, позиции не могут существовать без основной части, поскольку в форме счёта они находятся на одном листе, поэтому в таблицу позиций добавляем ограничение ссылочной целостности на таблицу основной части.
Ограничения на типы данных.
когда - дата; сколько - число; кто, кому строки не более 300 символов (больше в форму счёта объективно не поместится).

БД может хранить данные о счетах любой давности. Но по бизнес-правилам пользователь может завести счета только текущей датой, а при наличии привилегий любой датой. Как я себе понимаю, бизнес-правила это ограничения на операции, т.е. пред и постусловия операции, тогда как ограничения целостности применяются к БД и являются инвариантами.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34361647
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mirВы же готовы за некую гипотетическую "гибкость" и "универсальность" БД (понимаемые вами как-то по своему) платить достоверностью. Бог в помощь. Иногда это можно. Но в основном -- недопустимо. Кому нужна "гибкая" и "универсальная" БД, в которой храниться, простите, всякое г@вно и мусор? На любителя.

Ограничения целостности в общем случае не обеспечивают достоверность данных, т.е. соответствие состояний БД и моделируемого объекта.
Достоверность определяется использованием данных и наличием обратной связи. Если данные нигде не используются, то их достоверность не проверяется. Если нет обратной связи, то обнаруженные несоответствия не исправляются.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34362302
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab mirВы же готовы за некую гипотетическую "гибкость" и "универсальность" БД (понимаемые вами как-то по своему) платить достоверностью. Бог в помощь. Иногда это можно. Но в основном -- недопустимо. Кому нужна "гибкая" и "универсальная" БД, в которой храниться, простите, всякое г@вно и мусор? На любителя.
Ограничения целостности в общем случае не обеспечивают достоверность данных, т.е. соответствие состояний БД и моделируемого объекта.Это верно. Для того, чтобы система могла обеспечить достоверность БД, она должна владеть информацией как о содержимом БД (что у нее есть), так и о реальном мире (чего у нее нет).

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

Однако тот факт, что система не способна обеспечить достоверность не означает, что стремиться к обеспечению этой достоверности и вовсе не стоит. Это вроде того: если у меня нет и не будет денег на дорогущий джип, из этого не следует, что я должен отказаться от машины подешевле.

Если дорогущий джип -- достоверность, то машина подешевле -- целостность. Ее мы вполне можем себе позволить. Целостность -- это такой суррогат достоверности. Чем данные целостнее, тем они достовернее. Если нет целостности, нет и достоверности.

Практика показывает, что проектировщики ленятся анализировать и задавать ограничения целостности, ограничиваясь чаще всего RI. Они надеятся на то, что:
- пользователи системы будут сознательными и не занесут в БД всякую хрень;
- программисты клиентских приложений будут сознательными и умелыми и создадут приложения, хорошо обеспечивающие целостность.

Жизнь, увы, демонстрирует, что ни одно из этих благих предположений не соответствует истине. Поэтому рано или поздно кто-то садиться, и с матюками начинает вычищать из базы тот или иной мусор, зачастую внося новые ошибки.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34363498
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mirЕсли дорогущий джип -- достоверность, то машина подешевле -- целостность. Ее мы вполне можем себе позволить. Целостность -- это такой суррогат достоверности. Чем данные целостнее, тем они достовернее. Если нет целостности, нет и достоверности.

Я не буду столь категоричен. В качестве исключения замечу, правила целостности тоже могут быть недостоверными, таким образом достоверные данные могут не отвечать правилам целостности и на практике такая ситуация не редкость.
Причины могут быть разные. От банальных ошибок проектирования, кодирования и развёртывания, до упрощения (точнее оптимизации) модели данных за счёт использования свойств бизнес-операций.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34364145
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На том и порешим. Еще раз лишь сказу, что как известно, профилактика дешевле лечения. А определение ограничений целостности -- это профилактика. Поэтому кто "не предохраняется" заранее, тот напрашивается на неприятности и скорее всего их получает.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34364475
Yulka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mir Все ОЦ суть воплощение бизнес-правил, то есть наших знаний о предметной области. Некторые из них более стабильны, некоторые потенциально более изменчивы, но принципиально сути дела это не меняет. И если меняются знания о предметной области, то следует менять и БД, как ее модель. Чудес не бывает. За все надо платить. За возможность иметь максимально достоверные данные -- платить временем на проработку ОЦ и необходимостью их корректировать.

Я с Вами абсолютно солидарна относительно необходимости поддержки целостности, и относительно лени программистов и пользователей. То что мусор чистить – это полбеды, беда – неверные расчеты, отчеты потом, противоречивые или неоптимальные решения как следствие (если мы говорим об экономическом ПО), ошибочные решения в жизненно-важных вопросах (представьте, что проектировщики управления шатлом положили на целостность), неуважение и требование постоянно техподдержки от пользователей (те, кто ленятся обеспечивать целостность, роют себе могилу как разработчики). Все знания человечества это целостность (структурная, логическая), отказаться от них?

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

Что касается ссылочной целостности, поддерживаемой современными СУБД, то из-за ее недостаточности очень хочется вообще от нее отказаться к чертовой матери (раз встроиться нельзя). Например, как только условия более жесткие, чем уникальность (уникальность-то по любэ), то СУБД будет мне проверять уникальность, а я поверх свои допусловия – очевидно, что мы дважды тратим машинное время :-(.
Вопросы мои хоть и детсадовские, но не праздные (раз все так расшевилились :-).
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34364771
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YulkaЧто касается ссылочной целостности, поддерживаемой современными СУБД, то из-за ее недостаточности очень хочется вообще от нее отказаться к чертовой матери (раз встроиться нельзя). Например, как только условия более жесткие, чем уникальность (уникальность-то по любэ), то СУБД будет мне проверять уникальность, а я поверх свои допусловия – очевидно, что мы дважды тратим машинное время :-(.

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

Если вопрос не решается существующими методами, может быть нужно откушать кофе, найти ошибку и исправить модель данных?
Может быть не стоит прогибать БД под приложение, а стоит сделать его так, чтобы оно корректно работало с имеющимися данными?
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34366192
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabЕсли данные изменены в обход СУБД и её механизмов защитыЭто как? Остановить сервис СУБД, открыть файл БД каким-то редактором?
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34366431
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YulkaЧто касается ссылочной целостности, поддерживаемой современными СУБД, то из-за ее недостаточности очень хочется вообще от нее отказаться к чертовой матери (раз встроиться нельзя). Дык и отказываются. Все тот же SAP реализует штук 5 своих видов ссылочной целостности на сервере приложений, и никаких (даже уникальности) на СУБД.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34367757
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelR YulkaЧто касается ссылочной целостности, поддерживаемой современными СУБД, то из-за ее недостаточности очень хочется вообще от нее отказаться к чертовой матери (раз встроиться нельзя). Дык и отказываются. Все тот же SAP реализует штук 5 своих видов ссылочной целостности на сервере приложений, и никаких (даже уникальности) на СУБД.Чисто для моего развития: какие бывают виды ссылочной целостности (и при чем здесь уникальность)?
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34370449
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mirЧисто для моего развития: какие бывают виды ссылочной целостности (и при чем здесь уникальность)? http://help.sap.com/ -SAP R/3 and R/3 Enterprise - SAP R/3 Enterprise Release 4.70 - нужный язык - искать foreign keys.
Уникальность при том, что даже она (не говоря о foreign keys) поддерживается сервером приложеия а не СУБД.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34371276
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mir mcureenabЕсли данные изменены в обход СУБД и её механизмов защитыЭто как? Остановить сервис СУБД, открыть файл БД каким-то редактором?

1. Отключение механизмов защиты пользователем.
2. Сбой носителя.
3. Сбой экземпляра СУБД.
4. Холодное восстановление резервной копии.
5. Изменение файла БД посторонним редактором.
6. И прочая. ....

Так что возможностей извлечь из БД кривые данные ничуть не меньше, чем получить их от пользователя. С точки зрения программы БД такой же внешний источник данных, как любой файл или устройство ввода.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34376384
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab mir mcureenabЕсли данные изменены в обход СУБД и её механизмов защитыЭто как? Остановить сервис СУБД, открыть файл БД каким-то редактором?1. Отключение механизмов защиты пользователем.
2. Сбой носителя.
3. Сбой экземпляра СУБД.
4. Холодное восстановление резервной копии.
5. Изменение файла БД посторонним редактором.
6. И прочая. ....

1. Пользователь может просто взять и отключить защиту? Это мне напомнило плохие голливудские фильмы про хакеров, где при первом отлупе от ломаемой системы "хакер" просто-напросто вводит команду "обойти защиту" -- и готово.
2, 3 -- при чем здесь ввод данных в обход СУБД?
4. Восстановление бэкапа -- штатная операция -- никак не ввод данных в обход СУБД.
5. Вот про то ж я и говорил, но при работающей СУБД это невозможно (если СУБД нормальная).
6. А что прочая?
mcureenabТак что возможностей извлечь из БД кривые данные ничуть не меньше, чем получить их от пользователя.Речь вроде шла об "изменении данных в обход СУБД и её механизмов защиты". При чем здесь извлечение? Простейший способ извлечь из БД кривые данные -- ошибочный запрос. Никакого "изменения файла БД посторонним редактором" тут и не нужно.
mcureenabС точки зрения программы БД такой же внешний источник данных, как любой файл или устройство ввода.Это так, видимо, для создаваемых вами систем, где вы "не переусложняете базу ограничениями целостности". Уж простите. Для моих "переусложненных" баз извлекаемая из них информация уж существенно подостовернее будет, чем "любой файл или устройство ввода".
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34377704
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mir mcureenab mir mcureenabЕсли данные изменены в обход СУБД и её механизмов защитыЭто как? Остановить сервис СУБД, открыть файл БД каким-то редактором?1. Отключение механизмов защиты пользователем.
2. Сбой носителя.
3. Сбой экземпляра СУБД.
4. Холодное восстановление резервной копии.
5. Изменение файла БД посторонним редактором.
6. И прочая. ....

1. Пользователь может просто взять и отключить защиту? Это мне напомнило плохие голливудские фильмы про хакеров, где при первом отлупе от ломаемой системы "хакер" просто-напросто вводит команду "обойти защиту" -- и готово.
2, 3 -- при чем здесь ввод данных в обход СУБД?
4. Восстановление бэкапа -- штатная операция -- никак не ввод данных в обход СУБД.
5. Вот про то ж я и говорил, но при работающей СУБД это невозможно (если СУБД нормальная).
6. А что прочая?


1. А разве нет?
alter table x constraint y disable;
От ошибок пользователя (DBA это тоже пользователь) никто не застрахован.

2,3 Ввод не при чём. Я говорю об изменении данных. Чтобы данные изменились их необязательно вводить. Сбой носителя может привести к искажению данных. Сбой экземпляра тоже.

4. Восстановление БД ситуация конечно штатная, но не факт, что после восстановления БД останется в целостном состоянии.

5. А кто запретит? Если СУБД не блокирует файл на запись (а нормальные СУБД этого не делают, хотя бы для того, чтобы работать в кластере), то посторонняя программа, например вирус, может изменять неблокированные части фала БД.

6. Сам придумай что нибудь в качестве упражнения.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34377742
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mir mcureenabТак что возможностей извлечь из БД кривые данные ничуть не меньше, чем получить их от пользователя.Речь вроде шла об "изменении данных в обход СУБД и её механизмов защиты". При чем здесь извлечение? Простейший способ извлечь из БД кривые данные -- ошибочный запрос. Никакого "изменения файла БД посторонним редактором" тут и не нужно.

Данные становятся наблюдаемыми только после извлечения их из БД. До этого момента мы можем только догадываться об их наличии и содержании. К стати, во время извлечения данных не всякая СУБД проверяет их корректность. Я в лучшем случае видел функцию проверки контрольной суммы блока БД, и то её рекомендовали включать только при использовании ненадёжных носителей. Данные могут пострадать и во время передачи по сети.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34377819
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mir mcureenabС точки зрения программы БД такой же внешний источник данных, как любой файл или устройство ввода.Это так, видимо, для создаваемых вами систем, где вы "не переусложняете базу ограничениями целостности". Уж простите. Для моих "переусложненных" баз извлекаемая из них информация уж существенно подостовернее будет, чем "любой файл или устройство ввода".

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

Достоверность тут ни при чём. Целостные данные могут быть недостоверными. Достоверные данные могут не отвечать правилам целостности заложенным в систему.
...
Рейтинг: 0 / 0
Разное по смыслу содержание полей разнородных объектов в одной таблице
    #34379610
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я утерял нить разговора. Если мы говорим о зоне ответственности СУБД, то повреждения носителей и т.п. здесь не вообще при чем. За физическую работоспособность СУБД отвечает аппаратура и персонал. При современных технологиях аппаратного резервирования и резервного копирования вероятность искажения данных по техническим причинам пренебрежимо мала по сравнению с другими причинами. Единственная вообще заслуживающая внимания причина нахождения в БД недостоверных данных очень проста -- эти данные в БД такими поступили. И нет никакой дилеммы, где должна происходить проверка целостности: в СУБД или в клиентском приложении. Она должна происходить и в СУБД, и в клиентском приложении. Но в СУБД -- обязательно, т.к. приложение обойти можно, а СУБД -- нельзя.

Ну, а фраза "возможностей извлечь из БД кривые данные ничуть не меньше, чем получить их от пользователя" звучит для меня смехотворно. Много лет мы делаем импорт в БД данных, набитых когда-то пользователями в Excel. Уж я то насмотрелся, как пользователи вводят данные, когда их ничто жестко не контролирует. Пропуски там, где их быть не должно. Записи на одну и ту же дату, хотя такого быть не должно. Текстовые комментарии там, где должны быть числа. Об опечатках вообще можно не упоминать. СУБД, в которой заданы хотя бы основные ОЦ, такого принципиально не пропускает. Все это чистится, чиниться и тогда укладывается в базу. Поэтому не надо этих сказок, умоляю.

(К слову, при порче БД СУБД вовсе не будет, ничего не подозревая, извлекать из БД неверные данные. С вероятностью 99.9% СУБД просто откажется работать с такой БД или ее поврежденной частью. Так же и маловероятно предположение о возможности при работающей СУБД внешней программой менять или даже читать из БД данные. Скажем, сервис MS SQL Server налагает эксклюзивный доступ к файлам БД, и ни одна программа не может этот файл даже читать)
...
Рейтинг: 0 / 0
132 сообщений из 132, показаны все 6 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Разное по смыслу содержание полей разнородных объектов в одной таблице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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