Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 3
Регистрация: 16.11.2009
Сообщений: 45

Связи между таблицами

16.11.2009, 13:57. Показов 2489. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите разобраться с базами данных. В этом я новичок, но хотелось бы разобраться с этим. Стоит задача организовать базу данных в программе, которая сохраняет информацию с датчиков от промышленного контроллера.
Допустим, вижу так. Нужно создать таблицу с полями даты. Это поле самое главное, затем дочерняя таблица - таблица, в которую записывается время. И потом еще много таблиц с переменными-состояниями датчиков. Каждую секунду в базу данных производится запись с значениями даты, времени и параметрами состояния датчиков. Как это сделать, какими средствами, причем хотелось бы, чтобы я мог выбрать необходимые значения от датчиков в зависимости от времени. И при этом вывести эти значения в график, где в оси х - время, а в оси у - значение параметра.
Причем, каждую секунду происходит запись около 60 значений датчиков, при этом хорошо было бы связать с одним полем таблицы времени. А все значения времени и датчиков за день связать с одним полем даты.
Я так понимаю, что нужно работать со связями между таблицами.
Кто сталкивался с этим, или кто знает, как это сделать, помогите. Пригодятся любые источники.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.11.2009, 13:57
Ответы с готовыми решениями:

Связи между таблицами в Билдере
Есть проблемка зделал пару таблиц связал их ключом. вывел в билдер но мне нуно чтобы я мог в первой таблице выбирать ключевой атрибут...

Связи между таблицами в 3НФ
Пусть имеется отношение R(A1,A2,...An) приводим его в 3НФ. Получаем набор отношений: R1(..), R2(..)..Между полученными отношениями надо...

Связь между таблицами
имеются 3 таблицы. 1 таблица "ttn" с полем "data "и главным полем kod_ttn. 2 таблица "postuplenie" - пустая 3- в ней содержится...

7
 Аватар для Cepera
55 / 55 / 5
Регистрация: 09.03.2009
Сообщений: 177
17.11.2009, 14:41
Вашу задачу можно разделить на две основных части:
1. Разработка структуры базы данных.
2. Написание ПО, которое будет работать с БД.
На первом этапе нужно ответить на следующие вопросы:
1.1. - какую СУБД планируете использовать?
1.2. - какие данные будут храниться в базе? (можно их для удобства выписать в одну таблицу)
1.3. - подковаться теоретически по реляционным базам данных (гугл по запросу "проектирование реляционных баз данных" выдает довольно много ссылок)
1.4. - разработать структуру данных путем разбиения одной большой таблицы созданной в пункте 1.2. на несколько более мелких таблиц.
Если уже есть набросок структуры данных, выкладывайте на форум, я думаю найдутся специалисты которые подскажут как и что подправить, добавить или удалить.
Как только будет разработана структура данных, можно будет переходить ко 2-му этапу - написанию ПО.
1
0 / 0 / 3
Регистрация: 16.11.2009
Сообщений: 45
17.11.2009, 15:05  [ТС]
Огромное спасибо за толчок.
Появилось пару вопросов.
Допустим, в секунду мне необходимо записывать в базу данных около 200 байт. (4 запроса в секунду примерно по 50-60 байт) В день натечет около 18 мБ. Насколько подъемным это окажется для программы, и что можно сделать для того, чтобы облегчить базу.
например, в таблице будут такие столбцы, как дата, время, и куча параметров. Такой вопрос. Записей в базу данных в сутки натекает около 86000 запросов. Подъемным ли это будет для старого промышленного компьютера с 300 Мгц процом и 64 Мб памяти?
Можно ли каждые, допустим, каждые 4 часа, копировать базу, сохраняя ее под новым именем, старую базу удалять и записывать снова. и так каждые 4 часа?
Если я создам 1 общую таблицу, могу я потом строить графики по дате/времени и выбранному параметру, или для этого нужно создавать много связанных между собой таблиц?
0
 Аватар для Cepera
55 / 55 / 5
Регистрация: 09.03.2009
Сообщений: 177
17.11.2009, 15:57
Цитата Сообщение от wolf_soloist Посмотреть сообщение
Если я создам 1 общую таблицу, могу я потом строить графики по дате/времени и выбранному параметру, или для этого нужно создавать много связанных между собой таблиц?
Я же не знаю какую структуру данных вы планируете, какие вообще данные будут использоваться.
Цитата Сообщение от wolf_soloist Посмотреть сообщение
Можно ли каждые, допустим, каждые 4 часа, копировать базу, сохраняя ее под новым именем, старую базу удалять и записывать снова. и так каждые 4 часа?
А это зачем?
Цитата Сообщение от wolf_soloist Посмотреть сообщение
Допустим, в секунду мне необходимо записывать в базу данных около 200 байт. (4 запроса в секунду примерно по 50-60 байт) В день натечет около 18 мБ. Насколько подъемным это окажется для программы, и что можно сделать для того, чтобы облегчить базу.
например, в таблице будут такие столбцы, как дата, время, и куча параметров. Такой вопрос. Записей в базу данных в сутки натекает около 86000 запросов. Подъемным ли это будет для старого промышленного компьютера с 300 Мгц процом и 64 Мб памяти?
Судя по вопросам, я так понял, вы планируете обойтись вообще без СУБД а написать собственную программу которая будет сама обрабатывать и хранить данные, так? Не думаю что самостоятельная реализация СУБД это удачная затея. Под такие параметры "железа" в качестве СУБД больше подходит MSM нежли какие либо реляционные СУБД с их таблицами. А какая ОС работает на том промышленном "железе"?
1
0 / 0 / 3
Регистрация: 16.11.2009
Сообщений: 45
17.11.2009, 17:10  [ТС]
по вопросам:
1. каждые 250 мс приходит посылка на ком порт, по спец интерфейсу. я преобразовываю данные в инженерный вид. вывожу графики, визуализация в норме. задача - сохранить данные с возможностью последующего просмотра да и в целях ведения статистики пром аппаратуры.
пускай вид будет таков. по столбцам. дата-время до доли секунды-штук 50 параметров.
2 для того, чтобы прога, обрабатывая базу, не тормозила от большого ее обьема
3. Работать будет или под 98 винлой, что врядли, или под Эмбеддет виндой.
MSM как расшифровать?
Моя фирма пожалела денег на покупку СКАДА системы, приходится минимальные его функции реализовывать вручную.
0
 Аватар для Cepera
55 / 55 / 5
Регистрация: 09.03.2009
Сообщений: 177
17.11.2009, 18:19
Цитата Сообщение от wolf_soloist Посмотреть сообщение
MSM как расшифровать?
Введите mumps или м-технологии в любом поисковике - получите ответ на свой вопрос.
Цитата Сообщение от wolf_soloist Посмотреть сообщение
1. каждые 250 мс приходит посылка на ком порт, по спец интерфейсу. я преобразовываю данные в инженерный вид. вывожу графики, визуализация в норме. задача - сохранить данные с возможностью последующего просмотра да и в целях ведения статистики пром аппаратуры.
Прежде чем с данными что либо делать нужно определиться где и как их хранить.
Поэтому хотелось бы услышать ответ на вот этот вопрос, заданный мною ранее:
Цитата Сообщение от Cepera Посмотреть сообщение
1.1. - какую СУБД планируете использовать?
У Вас имеются соображения на сей счет, или же Вы сами хотите услышать рекомендации и идеи по подбору СУБД?
Почему для работы с данными выбран компьютер с такими характеристиками?
Цитата Сообщение от wolf_soloist Посмотреть сообщение
300 Мгц процом и 64 Мб памяти?
Почему не рассматривается возможность использования для установки СУБД более мощный компьютер? Ведь так было бы лучше, на более мощном компьютере у вас стоит СУБД а вот на этом
Цитата Сообщение от wolf_soloist Посмотреть сообщение
300 Мгц процом и 64 Мб памяти?
работает только программа которая собирает информацию с ком порта и пишет её на сервер. Почему не рассматривается такой подход?
1
0 / 0 / 3
Регистрация: 16.11.2009
Сообщений: 45
18.11.2009, 10:07  [ТС]
храниться данные будут на жестком диске. Я думал работать с локальными базами данных, например, Парадокс. СУБД - С++ BUILDER
Для работы выбраны такие характеристики потому, что такие были требования. Обьект - угольный комбайн, на комбайне предполагается монтирование пром компьютера, который будет отображать всю техническую инфу о процессах, плюс вести статистику. При надобности, базы данных(верней статистику работы) можно записать на внешний носитель, и при помощи той же программы (или переделанной просто для анализа статистики), просмотреть на другом компьютере.
из-за того, что объект находится под землей и связь с ним возможна только по радио модему, и то, это влечет за собой большие затраты, сохранять статистику работы удаленно не получится.

У меня нет опыта работы Builderа с базами данных, я не знаю, выдержит ли такая конфигурация железа такие задачи, при том, что в программе еще дополнительно нужно показывать графики 4 параметров в реальном времени, ну еще массу параметров в интерактивном режиме.
0
 Аватар для Cepera
55 / 55 / 5
Регистрация: 09.03.2009
Сообщений: 177
18.11.2009, 18:28
Цитата Сообщение от wolf_soloist Посмотреть сообщение
Я думал работать с локальными базами данных, например, Парадокс. СУБД - С++ BUILDER
Сам я парадоксом не пользовался, а отзывы о нем как о субд (те что я слышал) неочень
хотя ничего не мешает попробовать эту субд, также можно посмотреть на firebird. Мож еще кто с форума отпишится на эту тему и чего нибудь посоветует.

Цитата Сообщение от wolf_soloist Посмотреть сообщение
Можно ли каждые, допустим, каждые 4 часа, копировать базу, сохраняя ее под новым именем, старую базу удалять и записывать снова. и так каждые 4 часа?
Не думаю что такой фокус позволит сделать хоть одна субд в то время когда в базу пишуться данные. Если только останавливать процесс работы с базой и в этот момент что либо с ней делать.
По возможности попробую поставить 98 виндовс на виртуальную машину и поэкспериментировать с работой с базой.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.11.2009, 18:28
Помогаю со студенческими работами здесь

Связь между таблицами SQL
Помогите чайнику Пример: "Работник и отдел" Есть таблица SQL отделов и еще одна таблица SQL работников в которую нужно внести...

Как работать с несколькими связанными между собой таблицами?
Доброго время суток, форумчяни! Я вот пытаюсь разобраться как можно работать с несколькими таблицами которые между собой связаны (база...

Наладить связи между практически одинаковыми таблицами таблицами
Помогите пожалуйста со следующей затыкой. Выбираю "Схема данных". Там открыты три таблицы. Одна материнская (откуда идет номер модели)...

Связи между таблицами
Подскажите плз как установить связь например между Родительской Регион / КодРегиона и дочерней Поставщик / КодРегиона, Жму на отношения,...

Связи между 7 таблицами
Приветствую, нужно грамотно сделать связи в бд между 7 таблицами. del].


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru