powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование технологической БД
13 сообщений из 13, страница 1 из 1
Проектирование технологической БД
    #36409378
g_box
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для работы с БД Oracle используетс Entity Framework (.NET 3.5) как лучше организовать структуру

Создаю небольшую технологическую БД где необходимо хранить
параметры (
имя
ед. измерения
аварийные границы и т.д.,
срок хранения
тип
)
и их значения строковые,целые либо с плавающей точкой + фиксацией даты и время этого значения

Количество параметров от 1000 , частота импорта значения от 1сек. (ежечасно,сутки и т.д.)
Каким образом реализовать структуру БД для хранение данных и их выборки с точки зрения профессионалов?
Правильно ли использовать такую структуру ?
Код: plaintext
1.
2.
3.
4.
5.
6.
Таблица ПАРАМЕТР
[p_id, -идентификатор
p_name, -имя
imz_id, - идентификатор ед измерения
store_id - идентификатор хранилища(таблицы)
........]

Код: plaintext
1.
2.
3.
4.
5.
6.
Таблица ХРАНИЛИЩА
[store_id, - идетификатор
store_name, - имя
type_id - тип данных
period - переиод хранения
]

Код: plaintext
1.
2.
3.
4.
5.
Таблица ТИПЫ
[type_id, - идетификатор
type_name, - имя
oracle_type - тип данных Oracle
]

Код: plaintext
1.
2.
3.
4.
Таблица ИЗМЕРЕНИЯ
[izm_id, - идетификатор
izm_name, - имя
]

на таблицу ХРАНИЛИЩА вешаю триггер before_insert где создаю доп. таблицу с заданной структурой и типом поля хранения

exec_str:= 'CREATE TABLE Store_'||:NEW.store_id||' (p_id NUMBER NOT NULL, p_date date, p_val '||:NEW.oracle_type||' NOT NULL)';
execute immediate exec_str;

так же удаляю триггером

Может есть путь легче?
Как выбирать данные из таблиц хранилищ? STORE_1......N c полем p_val разного типа при помощи VIEW? PROCEDURE?

Спасибо! буду признателен за любую критику и помощь
...
Рейтинг: 0 / 0
Проектирование технологической БД
    #36410075
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не делайте так, слишком маленькая скорость.

Никаких триггеров, никаких Entity.

Только bulk из промежуточных буферов.

Сделайте макет и погоняйте на 1000 параметров.

См. упрощенный пост 7704822 и тему до конца.
...
Рейтинг: 0 / 0
Проектирование технологической БД
    #36411413
g_box
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SiemarglНе делайте так, слишком маленькая скорость.

Никаких триггеров, никаких Entity.

Только bulk из промежуточных буферов.

Сделайте макет и погоняйте на 1000 параметров.

См. упрощенный пост 7704822 и тему до конца.

Спасибо за ответ.
Триггеры нужны только для создания хранилищ, в процессе конфигурации системы.
Поэтому на производительности это не отразиться, а вот корректная ли структура БД?
В форуме по этой теме http://www.sql.ru/forum/actualthread.aspx?tid=726753&456 не советуют создавать таблицы динамически.
...
Рейтинг: 0 / 0
Проектирование технологической БД
    #36411531
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
g_box,

не сочтите за off :)

случайно, не в СургутНефтеГазе трудишься?

Дело в том, что когда-то на некие ЦППН'ы поланировалось под задачи АСУ ТП ставить Wonderware Industrial Sql Server. (я тогда в конторе, которая этим занимается трудился)
Эта штуковина как раз и заточена под интересующие тебя задачи.

Я к чему. Если есть возможность, то можно ознакомиться с "передовым международным опытом" на практике :)
Если нет, то может имеет смысл погуглить на эту тему, вдруг где накопаешь некие интересные идеи, заложенные в это дело.
ЗЫ Ядро в Industrial Sql Server от MS SQL, но концепция структуры может поможет.

Удачи

Шайтан
...
Рейтинг: 0 / 0
Проектирование технологической БД
    #36412902
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
g_box Может есть путь легче?За DDL в триггерах в форуме по Ораклу выпускают кишки тупым ножом. Ибо выгоды такого решения сомнительны, а сопровождение вываливается в геморрой.

g_box Спасибо! буду признателен за любую критику и помощьДля начала опишите задачу. Из первого поста я понял, что у вас есть необходимость сохранять в базе Oracle некую инфу о параметрах.
Что предполагается делать с инфой? Изменять, запрашивать, удалять?
О каких объемах идет речь?
Есть ли специфические требования типа сохранить любой ценой.
Какие приоритеты типа - скорость выборки самое главное, а вставка подождет.
Версия и редакция Оракла - возможно то что вы хотите уже реализованно.
...
Рейтинг: 0 / 0
Проектирование технологической БД
    #36415150
g_box
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257Для начала опишите задачу. Из первого поста я понял, что у вас есть необходимость сохранять в базе Oracle некую инфу о параметрах.
Что предполагается делать с инфой? Изменять, запрашивать, удалять?
О каких объемах идет речь?
Есть ли специфические требования типа сохранить любой ценой.
Какие приоритеты типа - скорость выборки самое главное, а вставка подождет.
Версия и редакция Оракла - возможно то что вы хотите уже реализованно.

Задача:
Организовать сбор, хранение и анализ технологической информации

Параметр должен иметь имя,ед.измерения, тип,срок хранения, аварийные и пред . аварийные границы ...
Возможность проверки ввода данных (обязательный,границы,RegEx фильтры)
Значения могут быть целыми, с плавающей точкой, строковыми

Информация необходима для анализа: больше запрашивать, реже изменять и удалять
Объемы от 1000 параметров до 10000 параметров частотам приема разная от 30сек до 1 раз в квартал
к примеру
500 параметров каждые 30 секунд
3000 раз в час
1000 раз в 2 часа
1000 раз с сутки и т.д.
500 раз в месяц
100 раз в квартал

Спец требования работа системы в постоянном режиме (круглосуточно)
Вставка описана выше, выборка помимо мониторинга 30сек данных и построения графиков, формирования сводных отчетов по часовым суточным данным, сложных отчетов анализа данных с начало смены, с начало недели, месяца, года + есть отчеты в которых присутствует все выше перечисленное
планируется использовать Oracle 10g
...
Рейтинг: 0 / 0
Проектирование технологической БД
    #36415160
g_box
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шайтанg_box,

не сочтите за off :)

случайно, не в СургутНефтеГазе трудишься?

Шайтан

Нет но туда я чуть не устроился в АСУ Нефть

Спасибо за ответ, посмотрю но скорее всего Oracle
В данной системе реального времени не планируется
...
Рейтинг: 0 / 0
Проектирование технологической БД
    #36416882
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
g_box Параметр должен иметь имя,ед.измерения, тип,срок хранения, аварийные и пред . аварийные границы ...Очевидна таблица параметров в которой вы запишете о параметрах все что знаете. Как вы нормализуете эту таблицу особой роли не играет (на несколько тысяч значений и нечастых обновлениях)
g_box Возможность проверки ввода данных (обязательный,границы,RegEx фильтры)А вот с этого момента поподробнее. Что делать со значением не прошедшим проверку - вставить, тихо похерить, вернуть ошибку вставляльщику.
Какой должна быть вставка - синхронной, асинхронной. Что будет если база (неважно по каким причинам) не будет способна принимать значения (они пропадут, будут где-нибудь накапливаться, вставлятель будет ждать)

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

Строковые значения параметров сильно выбиваются из списка и возможно заслуживают отдельной таблицы (а не отдельного поля)
Как спроектировать таблицы для выборок (таблицу фактов), как ее секционировать (вы не указали редакцию или готовность купить partitioning option), индексировать и т.д. зависит от ваших отчетов. В самом худшем случае (SE), я рекомендую хотя бы ручное секционирование на базе вьюх (полтора миллиона строк в сутки довольно быстро этого потребуют)
Таким образом в первом приближении
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
create table params (
p_id number primary key,
p_name varchar2( 100 ),
....
)

create table param_values_num
(p_id number not null,
p_date date not null,
p_value number( 10 , 2 )
--, p_value_str varchar2(100)
constraint pk_param_values_num primary key (p_id,p_date)
)

create table param_values_str
(p_id number,
p_date date,
p_value_str varchar2( 100 )
constraint pk_param_values_str primary key (p_id,p_date)
)

g_boxСпец требования работа системы в постоянном режиме (круглосуточно)Чтение или запись?
...
Рейтинг: 0 / 0
Проектирование технологической БД
    #36461935
ineedyou
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор хотя бы ручное секционирование на базе вьюх
вы имеете в виду на базе мат.вьюх? Если нет, то поясните в двух словах пожалуйста
...
Рейтинг: 0 / 0
Проектирование технологической БД
    #36469293
Co_balt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
g_box,

для этого есть специальные параметрические базы данных
PHD (Honeywell), PI Server(OSIsoft), InfoPlus.21 (AspenTech)
Вы пытаетесь изобрести велосипед, не представляя того, насколько глубока заячья нора...?

Почитайте в интернете про них...
Если конечно не хотите устроить 2-ую СШГЭС...
...
Рейтинг: 0 / 0
Проектирование технологической БД
    #36473146
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ineedyou вы имеете в виду на базе мат.вьюх? Если нет, то поясните в двух словах пожалуйста
http://www.sql.ru/articles/mssql/2005/073102PartitionedTablesAndIndexes.shtml#22
...
Рейтинг: 0 / 0
Проектирование технологической БД
    #36474901
Co_balt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
g_box
Задача:
Организовать сбор, хранение и анализ технологической информации

Параметр должен иметь имя,ед.измерения, тип,срок хранения, аварийные и пред . аварийные границы ...
Возможность проверки ввода данных (обязательный,границы,RegEx фильтры)
Значения могут быть целыми, с плавающей точкой, строковыми


Все, что описано выше, легко реализуется в 2 программных продуктах от AspenTech
1. InfoPlus.21
2. Process Explorer

минимум программирования, в основном настройки... в инете можно скачать...
...
Рейтинг: 0 / 0
Проектирование технологической БД
    #36511875
Alexander_111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
g_box,

вообще, все это очень легко делать в XDB. База проектируется влет. Файл с параметрами кладется в репозитарий по FTP. Там он парсится, а данные размещаются в объектах Oracle.
Анализруйте данные сколько вам слезет...
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование технологической БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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