![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
РБД без взаимосвязанных таблиц???
Alexandr1 © (2005-11-22 17:34:00)Подскажите, является ли БД реляционной, если некоторые таблицы не взаимосвязанны (не содержат внешних ключей)? Если можно, то укажите ссылки на литературу.
Заранее благодарен.
msguns (2005-11-23 13:37:00) [41]Кстати, рекомендую одного из столпов РБД - Кнута.
msguns (2005-11-23 13:35:00) [42]Класс !!! Вот, читаешь иногда людей грамотных и удивляешься:
>dioman © (23.11.05 11:46) [8]
>реляционная база данных - это та где данные хранятся ввиде ТАБЛИЦ...
>Nikolay M. © (23.11.05 13:03) [22]
>РБД - это такая БД, где информация представлена в виде двумерных массивов (таблиц). Все
>__гфф (23.11.05 12:55) [19]
>Реляционной считается такая база данных, в которой все данные представлены для пользователя в виде прямоугольных таблиц значений данных, и все операции над базой данных сводятся к манипуляциям с таблицами
http://www.jetinfo.ru/1995/3-5/1/rdbms.basics.html
да и вообще, гугле вам поможет
>отношение - это отдельное понятие, это, по-простому, таблица.
Два вопроса:
1. Ексель - это РБД ? Что значит фраза "храняться в виде таблиц" ? Это в смысле на HDD нарисована таблица-сетка, куда "вкладываются" данные ?
2. Может, вместо гугля иногда неплохо бы и что-нибудь сугубо теоретическое почитать ? В смысле книжек.
Кто-нибудь из вас когда-нибудь работал с нереляционными БД ? Наверное, нет. Ибо не несли бы здесь тогда такую чушь ;)
Desdechado (2005-11-23 13:12:00) [43]Кодд, конечно, авторитет.
Оспаривать не буду, ибо действительно деталей определения РБД не помню.
Но мое имхо, РБД из несвязанных таблиц - обычная свалка, а ее разработчик - неуч. Причем это уже вина не Кодда, который недостаточно определил РБД, а конкретных разработчиков.
Несколько резко, но зато по сути.
Nikolay M. (2005-11-23 13:03:00) [44]
> > Val ©
> > Desdechado ©
РБД - это такая БД, где информация представлена в виде двумерных массивов (таблиц). Все. Не надо путать мух с котлетами и приплетать сюда всякие тригеры, констрейнты, логические связи и тд.
Кто не верит, может почитать Кодда в оригинале.
__гфф (2005-11-23 13:02:00) [45]Удалено модератором
Вольный Стрелок (2005-11-23 13:00:00) [46]ай-ай!
теория без практики мертва...
__гфф (2005-11-23 12:55:00) [47]не гоните на диомана! он прав.
Реляционной считается такая база данных, в которой все данные представлены для пользователя в виде прямоугольных таблиц значений данных, и все операции над базой данных сводятся к манипуляциям с таблицами
http://www.jetinfo.ru/1995/3-5/1/rdbms.basics.html
да и вообще, гугле вам поможет
>> реляция - отношение, отношение МЕЖДУ таблицами, т.е. их взаимосвязь
отношение - это отдельное понятие, это, по-простому, таблица.
УЧИТЕ МАТЧАСТЬ!
Sergey13 (2005-11-23 12:52:00) [48]2[16] Val © (23.11.05 12:43)
Да все понятно. Но отключенное мной специально и отключившееся "САМО"в результате моих действий - это все таки разные вещи. И я лично предпочитаю констрейнты тригерам как более надежное средство.
>зависимости-то компилить надо
1. Это надо еще и знать, что надо
2. Это надо еще и помнить.
8-)
dioman (2005-11-23 12:44:00) [49]Val © (23.11.05 12:37) [15]
я совершенно серьезно.
существуют иерархические сетевые реляционные (табличные.. там где поялвяются понятия строк и слолбцов)... и проч... виды хранения информации
Val (2005-11-23 12:43:00) [50]>[14] Sergey13 © (23.11.05 12:37)
:) Сергей, ну это может сделать кто угодно, тот же саппорт, латая по-быстрому дырку какую-нибудь, делая апдейт, например, а enable не прошел у него, но он не увидел/запарился/забыл...
Кто ж думал, что станет невалидной 5 процедур и 14 тригеров - они же все "не мои" и я про них не знаю даже
врядли вы так делаете :) зависимости-то компилить надо, после того как вы табличку ковыряли - тем более, видели перед началом компиляции, что они валидны...такое дело...спорить не о чем, думаю.
Val (2005-11-23 12:37:00) [51]>[13] dioman © (23.11.05 12:36)
плохие у вас учебники, видимо.
Sergey13 (2005-11-23 12:37:00) [52]2[10] Val © (23.11.05 12:27)
>а как же alter table mytable disable constraint my_constraint
Это немного не то. Когда сам отключаешь, наверное знаешь зачем и что будет. А вот когда это происходит прозрачнодля программиста (а если там еще и группы программистов по мало связаннымнаправлениям!!!), то это другое дело. Ну добавил я поле в таблицу (да размерность просто изменил!!!). Кто ж думал, что станет невалидной 5 процедур и 14 тригеров - они же все "не мои" и я про них не знаю даже.
dioman (2005-11-23 12:36:00) [53]
> Val © (23.11.05 12:27) [10]
> Desdechado © (23.11.05 12:32) [12]
открываем учебники читаем определения.
а английский язык многие знают.
Desdechado (2005-11-23 12:32:00) [54]реляция - отношение, отношение МЕЖДУ таблицами, т.е. их взаимосвязь
Desdechado (2005-11-23 12:30:00) [55]Поддержка на триггерах опасна, ибо они могут быть отключены (FK в оракле, правда, тоже), могут быть инвалидны, и - самое опасное - триггер работает в контексте транзакции, а constraint - в контексте БД (что действительно гарантирует целостность и непротиворечивость данных, в отличие от триггеров).
А в заявления вида "данные только из клиентской программы", надеюсь, никто сам не верит, ибо шибко вумные юзера найдутся всегда, да и кто сам вручную для каких-то сверхнеобходимых дел в БД не лез, позабывши часть ограничений - вот тут constraint'ы и сообщат о себе...
Val (2005-11-23 12:27:00) [56]>[8] dioman © (23.11.05 11:46)
Не смешите людей. От чего, как вы думаете, произошло слово "реляционная"?
>[7] Sergey13 © (23.11.05 11:44)
а как же alter table mytable disable constraint my_constraint ? ;) думаю, немножко не тот аргумент, хотя и за очень правильную идею. Согласен, в рабочей базе НЕ ДОЛЖНО быть ни некативных триггеров, ни ограничений.
> All
Коллеги, классически, в теории, считается, что связь между таблицами обеспечивают именно внешние ключи, триггеры - по сути хп для выполнения опр.действий при работе с таблицами, как вы понимаете, а что вы в них зашьете.... А кто как обеспечивает ссылочную целостность _в_своих_ разработках - его личное дело.
ANB (2005-11-23 12:16:00) [57]
> Desdechado © (23.11.05 11:26) [5]
> [4]
> а вот это - гниль, имхо
А кто спорит ? Исторически сложилось. Причем связки явно напрашиваются на внешние ключи, но никто их делать не собирается. Поддерживается клиентом.
dioman (2005-11-23 11:46:00) [58]реляционная база данных - это та где данные хранятся ввиде ТАБЛИЦ...
а отношения между таблицами это уже фича. То есть можешь иметь 1 таблицу, никаких отношений... и смело говорить что это реляционная база данных.
Sergey13 (2005-11-23 11:44:00) [59]2 [6] by © (23.11.05 11:33)
В моей практике (в случаях, когда часть системы уже работает в продакшене а остальное активно дописывается) практически всегда после некоторого времени вылезаи или "левые" записи или не было "нужных" записей, которые там должны быть. Я так понял, что тригеры иногда не срабатывают - они могли быть например не валидны какое то время по причине смены структуры БД или просто не учитывали некоторых нюансов. Другими словами для полностью готовой системы - это прокатит (может прокатить), для развивающейся - не всегда.
by (2005-11-23 11:33:00) [60]Desdechado © (23.11.05 11:26) [5]
а вот это - гниль, имхо
У меня был вариант приложения, в котором не было FK, вся ссылочная целостность обеспечивалась тригерами. Так как данные вносились только из приложения, то логическую целостность обеспечивало он. А вот при удалении были плюсы, так как в тригер можно было написать Exception осмысленный, который говорил почему именно нельзя удалять данную запись. А не просто сказать что на неё есть ссылки.