Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.22;
Скачать: CL | DM;

Вниз

РБД без взаимосвязанных таблиц???   Найти похожие ветки 

 
Alexandr1   (2005-11-22 17:34) [0]

Подскажите, является ли БД реляционной, если некоторые таблицы не взаимосвязанны (не содержат внешних ключей)? Если можно, то укажите ссылки на литературу.

Заранее благодарен.


 
Desdechado ©   (2005-11-22 17:42) [1]

справочники могут не содержать этих внешних ключей, но зато на них могут ссылаться
могут быть таблицы-свалки без ключей, хотя это несколько анархией попахивает
могут быть служебные таблицы, на которые нет ссылок и которые сами ни на что не ссылаются, но они участвуют в бизнес-логике (например, в ХП)


 
ANB ©   (2005-11-22 17:59) [2]

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


 
Desdechado ©   (2005-11-22 18:15) [3]

таблицы взаимосвязаны могут быть по-разному (FK или триггеры ...)
автор спрашивает, видимо, о вообще отвязанных таблицах


 
ANB ©   (2005-11-22 18:47) [4]


> Desdechado ©   (22.11.05 18:15) [3]

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


 
Desdechado ©   (2005-11-23 11:26) [5]

[4]
а вот это - гниль, имхо
хотя варианты невозможности организации в РСУБД логических связей я тоже могу придумать, но тогда это просто попытка уложить в прокрустово ложе РСУБД данных, которые таковыми не являются
для них есть другие подходы, хотя и не очень популярные


 
by ©   (2005-11-23 11:33) [6]

Desdechado ©   (23.11.05 11:26) [5]
а вот это - гниль, имхо

У меня был вариант приложения, в котором не было FK, вся ссылочная целостность обеспечивалась тригерами. Так как данные вносились только из приложения, то логическую целостность обеспечивало он. А вот при удалении были плюсы, так как в тригер можно было написать Exception осмысленный, который говорил почему именно нельзя удалять данную запись. А не просто сказать что на неё есть ссылки.


 
Sergey13 ©   (2005-11-23 11:44) [7]

2 [6] by ©   (23.11.05 11:33)
В моей практике (в случаях, когда часть системы уже работает в продакшене а остальное активно дописывается) практически всегда после некоторого времени вылезаи или "левые" записи или не было "нужных" записей, которые там должны быть. Я так понял, что тригеры иногда не срабатывают - они могли быть например не валидны какое то время по причине смены структуры БД или просто не учитывали некоторых нюансов. Другими словами для полностью готовой системы - это прокатит (может прокатить), для развивающейся - не всегда.


 
dioman ©   (2005-11-23 11:46) [8]

реляционная база данных -  это та где данные хранятся ввиде ТАБЛИЦ...
а отношения между таблицами это уже фича. То есть можешь иметь 1 таблицу, никаких отношений... и смело говорить что это реляционная база данных.


 
ANB ©   (2005-11-23 12:16) [9]


> Desdechado ©   (23.11.05 11:26) [5]
> [4]
> а вот это - гниль, имхо

А кто спорит ? Исторически сложилось. Причем связки явно напрашиваются на внешние ключи, но никто их делать не собирается. Поддерживается клиентом.


 
Val ©   (2005-11-23 12:27) [10]

>[8] dioman ©   (23.11.05 11:46)
Не смешите людей. От чего, как вы думаете, произошло слово "реляционная"?
>[7] Sergey13 ©   (23.11.05 11:44)
а как же alter table mytable disable constraint my_constraint ? ;) думаю, немножко не тот аргумент, хотя и за очень правильную идею. Согласен, в рабочей базе НЕ ДОЛЖНО быть ни некативных триггеров, ни ограничений.
> All
Коллеги, классически, в теории, считается, что связь между таблицами обеспечивают именно внешние ключи, триггеры - по сути хп для выполнения опр.действий при работе с таблицами, как вы понимаете, а что вы в них зашьете.... А кто как обеспечивает ссылочную целостность _в_своих_ разработках - его личное дело.


 
Desdechado ©   (2005-11-23 12:30) [11]

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


 
Desdechado ©   (2005-11-23 12:32) [12]

реляция - отношение, отношение МЕЖДУ таблицами, т.е. их взаимосвязь


 
dioman ©   (2005-11-23 12:36) [13]


> Val ©   (23.11.05 12:27) [10]


> Desdechado ©   (23.11.05 12:32) [12]


открываем учебники читаем определения.

а английский язык многие знают.


 
Sergey13 ©   (2005-11-23 12:37) [14]

2[10] Val ©   (23.11.05 12:27)
>а как же alter table mytable disable constraint my_constraint
Это немного не то. Когда сам отключаешь, наверное знаешь зачем и что будет. А вот когда это происходит прозрачно для программиста (а если там еще и группы программистов по малосвязанным направлениям!!!), то это другое дело. Ну добавил я поле в таблицу (да размерность просто изменил!!!). Кто ж думал, что станет невалидной 5 процедур и 14 тригеров - они же все "не мои" и я про них не знаю даже.


 
Val ©   (2005-11-23 12:37) [15]

>[13] dioman ©   (23.11.05 12:36)
плохие у вас учебники, видимо.


 
Val ©   (2005-11-23 12:43) [16]

>[14] Sergey13 ©   (23.11.05 12:37)
:) Сергей, ну это может сделать кто угодно, тот же саппорт, латая по-быстрому дырку какую-нибудь, делая апдейт, например, а enable не прошел у него, но он не увидел/запарился/забыл...
Кто ж думал, что станет невалидной 5 процедур и 14 тригеров - они же все "не мои" и я про них не знаю даже
врядли вы так делаете :) зависимости-то компилить надо, после того как вы табличку ковыряли - тем более, видели перед началом компиляции, что они валидны...такое дело...спорить не о чем, думаю.


 
dioman ©   (2005-11-23 12:44) [17]

Val ©   (23.11.05 12:37) [15]

я совершенно серьезно.

существуют иерархические сетевые реляционные (табличные.. там где поялвяются понятия строк и слолбцов)... и проч... виды хранения информации


 
Sergey13 ©   (2005-11-23 12:52) [18]

2[16] Val ©   (23.11.05 12:43)
Да все понятно. Но отключенное мной специально и отключившееся "САМО" в результате моих действий - это все таки разные вещи. И я лично предпочитаю констрейнты тригерам как более надежное средство.

>зависимости-то компилить надо
1. Это надо еще и знать, что надо
2. Это надо еще и помнить.
8-)


 
__гфф   (2005-11-23 12:55) [19]

не гоните на диомана! он прав.

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

http://www.jetinfo.ru/1995/3-5/1/rdbms.basics.html

да и вообще, гугле вам поможет

>> реляция - отношение, отношение МЕЖДУ таблицами, т.е. их взаимосвязь

отношение - это отдельное понятие, это, по-простому, таблица.

УЧИТЕ МАТЧАСТЬ!


 
Вольный Стрелок ©   (2005-11-23 13:00) [20]

ай-ай!
теория без практики мертва...


 
__гфф   (2005-11-23 13:02) [21]

Удалено модератором


 
Nikolay M. ©   (2005-11-23 13:03) [22]


> > Val ©
> > Desdechado ©

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


 
Desdechado ©   (2005-11-23 13:12) [23]

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

Несколько резко, но зато по сути.


 
msguns ©   (2005-11-23 13:35) [24]

Класс !!! Вот, читаешь иногда людей грамотных и удивляешься:

>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. Может, вместо гугля иногда неплохо бы и что-нибудь сугубо теоретическое почитать ? В смысле книжек.

Кто-нибудь из вас когда-нибудь работал с нереляционными БД ? Наверное, нет. Ибо не несли бы здесь тогда такую чушь ;)


 
msguns ©   (2005-11-23 13:37) [25]

Кстати, рекомендую одного из столпов РБД - Кнута.


 
__гфф   (2005-11-23 14:15) [26]

не понял, че за наезд..
а чем Вам таблицы в экселе не база данных?

признаюсь честно, с нереляционными БД работать не приходилось
ну и кстати, на счет гугля.. я упомянул это потому что это САМЫЙ простой и быстрый способ ткнуть носом.

с технологией баз данных я знакомился, естественно, не в гугле :))


 
__гфф   (2005-11-23 14:17) [27]

msguns ©, простите за назойливость, а Вам приходилось работать с нереляционными БД? ;)


 
__гфф   (2005-11-23 14:19) [28]

>> Ексель - это РБД ?
и кстати, Вы не представляете, наверное, что можно делать в экселе
это очень мощная штука
в экселе можно даже строить олап-кубы


 
__гфф   (2005-11-23 14:24) [29]

>> Кстати, рекомендую одного из столпов РБД - Кнута.
весь мир изучает БД по Кодду, а не по Кнуту, имхо. Может я отстал от жизни, не знаю. Кто же ввел основные понятия? Нормальные формы? О чем мы вообще говорим?!


 
dioman ©   (2005-11-23 14:26) [30]


> Desdechado ©   (23.11.05 13:12) [23]


> Причем это уже вина не Кодда, который недостаточно определил
> РБД, а конкретных разработчиков.

ого... действительно резко.


> msguns ©   (23.11.05 13:35) [24]
</I
> Это в смысле на HDD нарисована таблица-сетка, куда "вкладываются"
> данные ?

>
Вы над кем смеетесь? наверное над собой


 
__гфф   (2005-11-23 14:40) [31]

>> Это в смысле на HDD нарисована таблица-сетка, куда "вкладываются" данные ?

ЛОЛ

>> Ексель - это РБД ?

кто-то мне говорил, что к таблицам в экселе можно даже обращаться через АДО, пишешь коннекшн стринг и вперед!

правда сам не пробовал, утверждать не буду.


 
ANB ©   (2005-11-23 14:47) [32]


> правда сам не пробовал, утверждать не буду.

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


 
__гфф   (2005-11-23 14:52) [33]

еще раз гугле..
два слова, и вот! How To Use ADO with Excel Data from Visual Basic or VBA

http://support.microsoft.com/default.aspx?scid=kb;EN-US;257819


 
Val ©   (2005-11-23 14:56) [34]

Скажите-ка - база из одной таблицы, например, является реляционной по-вашему? Что же там с чем "реляцирует"? Экселя формат, текст, бинарник - пофиг, это лишь вид представления информации - все реляционное, скажете, главное чтоб столбик и строчка?


 
Val ©   (2005-11-23 14:58) [35]

>[33] __гфф   (23.11.05 14:52)
уж если вы сейчас открываете для себя возможность коннекта к экселю, как чудо некое...


 
__гфф   (2005-11-23 15:03) [36]

>>  база из одной таблицы, например, является реляционной по-вашему?
да.

>> Что же там с чем "реляцирует"?
что Вы зациклились на этом слове?
relation (eng) - отношение. Отношение - это ключевое понятие в теории баз данных. Отношение столбцов и строк.

Ну вот честное слово, просто время есть, не стал бы даже отвечать ничего..
вообще, суть ответа на вопрос нити обсуждения - РТФМ!


 
__гфф   (2005-11-23 15:05) [37]

>> уж если вы сейчас открываете для себя возможность коннекта к экселю, как чудо некое...

а Вас это удивляет? Просто не приходилось сталкиваться с этим, Бог уберег. У меня еще широчайшее поле для самосовершенствования!


 
dioman ©   (2005-11-23 15:07) [38]


> Val ©   (23.11.05 14:56) [34]


Да согласитесь вы наконец-то или нет...?


> Val ©   (23.11.05 14:58) [35]
>
> >[33] __гфф   (23.11.05 14:52)
> уж если вы сейчас открываете для себя возможность коннекта
> к экселю, как чудо некое...


вот уж не знаю что хуже.. не знать что есть драйвер для коннекта к екселю... или не знать что такое РБД...


 
__гфф   (2005-11-23 15:13) [39]

Удалено модератором


 
Val ©   (2005-11-23 15:21) [40]

Удалено модератором



Страницы: 1 2 вся ветка

Текущий архив: 2006.01.22;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.072 c
14-1135668820
vidiv
2005-12-27 10:33
2006.01.22
модераторам


8-1123878872
tazik
2005-08-13 00:34
2006.01.22
Плавные переходы с помощью BassPLayer a


2-1136206683
Митяй
2006-01-02 15:58
2006.01.22
Кнопка программно


1-1134992575
Asail
2005-12-19 14:42
2006.01.22
Как отследить время простоя моего приложения?


14-1134685773
Antip
2005-12-16 01:29
2006.01.22
Delphi 2006, скорость загрузки