Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.042 c
14-1135540014
TimeTable
2005-12-25 22:46
2006.01.22
Автоматическое составление расписаний


2-1136134118
XporlnD
2006-01-01 19:48
2006.01.22
Установка компонента


2-1136511035
Kolya
2006-01-06 04:30
2006.01.22
Удаление в ListView


6-1128105684
heady
2005-09-30 22:41
2006.01.22
IdHTTP1 (Indy компонент) отловить ошибку


2-1135828441
beglec
2005-12-29 06:54
2006.01.22
Как написать службу





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский