Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование БД. Что лучше? / 20 сообщений из 20, страница 1 из 1
16.02.2004, 11:58
    #32410236
classn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование БД. Что лучше?
Задача:
Ежеминутно собираются данные по 10 тыс. параметрам, которые затем ложатся в архив.
Что будет лучше:
1. “Длинная таблица” – 3 колонки (код, значение, дата-время)
2. “Широкая таблица” – 62 колонки (код, дата-время, 60 колонок значений за каждую минуту часа)

Какая структура таблицы будет лучше?
...
Рейтинг: 0 / 0
16.02.2004, 12:35
    #32410297
pavelch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование БД. Что лучше?
Как вам будет удобнее обрабатывать конечные результаты, так и делайте.
Поскольку данные у Вас собираются и кладутся в БД через промежутки времени за которые СУБД запрос(ы) потенциально сможет обработать.
...
Рейтинг: 0 / 0
16.02.2004, 14:28
    #32410515
bas
bas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование БД. Что лучше?
1ая будет лучше
...
Рейтинг: 0 / 0
16.02.2004, 15:00
    #32410577
classn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование БД. Что лучше?
Почему лучше?
Дело в том, к нам пришел новый начальник, который навязывает свою структуру таблиц (а у нас уже есть готовая, рабочая структура - первый вариант).
И ему нужны весомые аргументы, почему его структура (второй вариант) неправильна, а наша правильна.
...
Рейтинг: 0 / 0
16.02.2004, 15:31
    #32410635
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование БД. Что лучше?
Ну в вашей ситуации было бы правильней если бы свои агрументы привел как раз он....
...
Рейтинг: 0 / 0
16.02.2004, 15:51
    #32410671
classn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование БД. Что лучше?
Самый главный аргумент - он начальник :-)))
Второй - не нравяться ему таблицы в миллионы записей
(секционированная таблица с локальным индексом)
Вот в общем-то и все его аргументы.
Наш аргумент, что с таблицей по первому варианту проще работать, он просто не воспринимает.
Может посоветуете что-нибудь?
...
Рейтинг: 0 / 0
16.02.2004, 16:05
    #32410697
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование БД. Что лучше?
А что тут посоветуешь: в вашем случае как раз, по классике, можно денормализовывать. Работать с таблицей будет действительно сложнее. Зато таблица действительно будет короче в длину. Вот и весь сказ. Единственный аргумент - то, что ваша таблица уже работает, а вариант начальника еще нужно разрабатывать ;-)
...
Рейтинг: 0 / 0
16.02.2004, 16:07
    #32410705
pavelch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование БД. Что лучше?
Вообще первый вариант более верный. Второй же предпочитают люди старой закалки. Тоже самое было у нас с бухгалтерией, когда начальство говорило, что все проводки надо хранить в одной таблице, а не в нескольких :-). Первый подход более свойственен для реляционной СУБД.

А объяснить попытайтесь тем, что вдруг придется менять количество выбираемых значений, то придется переписывать программу на извлечение большего числа столбцов из таблицы, а это лишнияя трата средств, нервов и времени. В то время как при первом подходе, просто увеличится количество записей, которые программа обработает и без переписывания (если она так спроектирована :-)
...
Рейтинг: 0 / 0
16.02.2004, 18:25
    #32410952
bas
bas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование БД. Что лучше?
А у вас у самих нет аргументов???
Надо почитать нормальные формы и правила построения РБД, и тогда все ясно станет и аргументы найдутся.
Начало для размышдений дал pavelch .
...
Рейтинг: 0 / 0
16.02.2004, 21:46
    #32411091
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование БД. Что лучше?
"И ему нужны весомые аргументы"
Аргумент против структуры начальника - если шаг по времени вдруг изменится (понадобится обрабатывать данные на поминутно, к примеру, а каждые 20 сек), придется менять структуру.
...
Рейтинг: 0 / 0
16.02.2004, 22:02
    #32411101
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование БД. Что лучше?
авторНаш аргумент, что с таблицей по первому варианту проще работать, он просто не воспринимает.

опишите ему разницу по времени разработки приложения в 1 и в 2-ом случае.
Если она существенна - ваше дело в шляпе :)
...
Рейтинг: 0 / 0
17.02.2004, 07:54
    #32411219
classn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование БД. Что лучше?
Большое спасибо за советы, будем читать доки :)
Киньте, пожалуйста, ссылки на доки по нормальным формам и правилам построения реляционной БД.
...
Рейтинг: 0 / 0
17.02.2004, 09:37
    #32411299
Andrew_256
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование БД. Что лучше?
На самом деле вопрос в том какие запросы чаще используются клиентским приложением. Например, если значение одного параметра по времени не является значимой величиной, а имеет смысл только совокупность всех
значений - то второй вариант верный.
Если же нужно получать зависимость одного параметра от времени - то первый вариант будет работать быстрее: чтение N записей широкой таблицы приведет к чтению бОльшего кол-ва секторов на диске.
...
Рейтинг: 0 / 0
17.02.2004, 10:51
    #32411460
Серега
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование БД. Что лучше?
2classn

10 тыс инсертов в минуту, ИМХО дешевле 10 тыс апдейтов. А основной напряг тут будет как раз на добавлении инфы. Опять же ИМХО.
Кроме того непонятно по второму варианту. Для 1 часа есть поля по минутам. А для последующих часов? Новые записи? Или старые переписывать? Если первое, то запаришься выбирать например с 12.36 до 18.43 по второму варианту.
Какой срок предполагается хранить инфу, ибо в год набегают сумащедшие цифры?
...
Рейтинг: 0 / 0
17.02.2004, 12:52
    #32411732
classn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование БД. Что лучше?
Как раз с insert проблемм нет, что insert, что update идет одно и тоже время.
Для последующих часов создаются новые записи.
Насчет выборки данных по второму варианту в пределах одного часа - действительно запаришься составлять запрос. Мы об этом и говорим начальнику. А он... в общем гад он :-))
...
Рейтинг: 0 / 0
17.02.2004, 13:20
    #32411806
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование БД. Что лучше?
вообще - спорить нечего

ваша структура на 100% адекватна . То что предлогает начальник - это своего рода упаковка (правда будет ли выигрыш - это еще надо проверить) - если он хочет - пусть еще предложит хранить значения не в 60 полях а в строке char(60) :)
...
Рейтинг: 0 / 0
18.02.2004, 15:01
    #32413763
classn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование БД. Что лучше?
Спасибо 'funikovyuri' на добром слове. :-))
А вообще насчет char(60) - были такие попытки, отбились :-))
Все дело в том, что у нас есть старая система, которая работает на FoxPro-dbf, отсюда все проблемы - начальник хочет просто перетащить базу в Oracle с наименьшими переделками ("ведь там все уже 10 лет работает"-в общем-то тоже аргумент), но эта система создавалась 10 лет назад и с точки зрения построения РБД структура у старой базы жутко кривущая (у меня иногда возникает вопрос "и почему-же это все еще работает:-)).
...
Рейтинг: 0 / 0
18.02.2004, 16:45
    #32414029
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование БД. Что лучше?
можно для очистки совести предложить еще такую структуру

период (период_id, период_дата)

измеренные_данные (id,период_id, ну и поля с параметрами)

при этом
период_дата - это дата периода в без с точностью до минут
id - это только секунды и миллисекунды (для периодов длиной в час)

+ можно подогнать требуемый период - здесь он 1 час - можно, например, 1 сутки

Таким образом, вы исключаете некоторую избыточность вашего варианта - но в отличие от варианта начальника - сохраняете 100% реляционность
...
Рейтинг: 0 / 0
20.02.2004, 05:50
    #32416257
StarWind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование БД. Что лучше?
мне вот интересно, как ваш начальник собирается отчет делать по периуду времяни? Особенно с точностью до минут? причем время задает разумеется пользователь....

Oracle и такое предлагать.... Мне кажется такого начальника нужно сильно пнуть под зад.... Тем более нового.... пусть прежде пообвыкнится, прежде чем всякую лажу пихать...
...
Рейтинг: 0 / 0
20.02.2004, 11:12
    #32416577
BillyKidd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование БД. Что лучше?
ещё вот что интересно: если необходимо будет найти какое-то значение, не зная точно времени-в каком столбце искать?

------
Всех благ.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование БД. Что лучше? / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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