Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Карта зависимостей. Посоветуйте книгу 
:(
    Опции темы
Рубильник
Дата 20.7.2018, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 6.6.2016

Репутация: нет
Всего: нет



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

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

Какое-то понимание проблемы у меня есть, явно я плаваю в теме. Хочется получить теоретические знания. Прошу помочь, так как не знаю куда копать. Интересует сама проблема сохранения целостности данных и все сопутствующие проблемы. 


PM MAIL   Вверх
Akina
Дата 20.7.2018, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 13
Всего: 453



Поиск по термину "ER-модель" или "ER-диаграмма" даст достаточно информации, чтобы начать...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Рубильник
Дата 20.7.2018, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 6.6.2016

Репутация: нет
Всего: нет



Спасибо и за это.

Что меня особенно интересует -  классификация причин нарушения целостности. 
Например был разобран простой случай, когда разрушается ссылочная целостность.
1) при удалении объекта-родителя (потомку больше неначто ссылать)
2) при изменении объекта-потомка (на неправильную ссылку)
3) при создании объекта потом( с неправильной ссылкой)
И как с этим бороться:
1) удалять все объекты-потомки для удаляемого класса
2) запрещать удалять объект-родитель
3) устанавливать в NULL ссылки для объектов-потомков
4) устанавливать в дефолтное значение ссылки для объектов-потомков.

Пока моя главная проблема в то, что я не могу предсказать насколько фатальным будет нарушение целостности, и как это исправить. Часть проблем можно решить урезав функционал, часть проблем приводит к безобидным последствиям (и это можно игнорировать).

Переходы по ссылкам "ER-модель" дают что-то поверхностное, и не позволяют мне получить представление о последствия. Мне кажется, что больше подойдет труд в техническом (логическом) ключе, например книга, в которой автор страдал этой темой, и пришел к ряду выводов, или стратегий как эти проблемы обойти. Возможно кто-то знает нужную мне книгу или статью.
PM MAIL   Вверх
Akina
Дата 20.7.2018, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 13
Всего: 453



Причин нарушения целостности всего две - ошибочный дизайн БД и нештатные ситуации с разрушением хранилища данных. А всё Вами перечисленное - это способы на практике нарушить целостность, когда дизайн БД ошибочен.
Методы борьбы тривиальны. Для первой причины это построение ситемы контроля целостности - индексы, констрейнты и внешние ключи. Для второй - дублированное хранилище (РАЙД, кластер), репликация и резервное копирование.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | СУБД, общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1212 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.