Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
 Re: Интересно подискусировать с профессионалами  [new]
Рыжий Кот
Member

Откуда: Мягкий Диван; [забанен] Рустамом; [разбанен] П02;
Сообщений: 21678
Самоуверенный молодой человек, давайте свою табличку, давайте данные.
Можно мне на почту.
Задача у вас для НИИ, никак не связанная с БД...

Картинка с другого сайта.
11 фев 04, 13:24    [530798]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
sparrow
Member

Откуда: Россия, Красноярск.
Сообщений: 21761
mzprog держись!
междумордие отдыхает :)
11 фев 04, 13:31    [530825]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
Alexander_Chepack
Member

Откуда: London
Сообщений: 22649

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

Пусть, для простоты у нас будет 1 таблица...


Хм .. так мы сервер напрягать будем или у нас будет одна таблица?
11 фев 04, 13:38    [530845]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
Alexander_Chepack
Member

Откуда: London
Сообщений: 22649

Я до этого только и слышал, что реляционные базы это круто!
Как дело дошло до конкретной задачи - пас.... сразу использовать ОЗУ!!! :)


Точно - настоящим реляционным базам ОЗУ использовать западло. Гражданин - читайте книжки.
11 фев 04, 13:51    [530888]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
f_w_p
Member

Откуда:
Сообщений: 1603
Хочу тебя немного огорчить - такая СУБД уже существует более десяти лет. Называеться она Velocis.
Уж не dbVista ли это? Тогда ей уже более 20-ти.
11 фев 04, 14:14    [530963]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
mzprog
Guest
fedd
выбрать время вставки максимального значения
найти 10 минимальных
найти среднее, просуммировать 10 минимальных значений

Если мы заранее будем знать эти условия, то пожалуйста...
Time = 0;
Max = Value; //первое значение ...

Теперь во время добавления каждой записи:
if (Max < Value) // для последующих
{
Max = Value;
Time = i;
}

и т.д...

Конечно, для если мы заранее не знаем этих условий, тогда, согласен, на много сложнее реализовать эффективный подход...

f_w_r

Я! По-моему уже доказано, что у вас вообще нет СУБД. Тем более РВ.

Игра сапёр не содержит 3D-графики на базе OpenGL или DirectX, не снабнена навороченными звуковыми голосовыми эффектами, не позволяется играть по сети ... значит с твоим подходом это что не игра???


SuperSerg

И я кстати так и не увидел решения на С++ своей задачи с двумя таблицами :)

Пусть в таблице tov храниться список товаров, а в таблице oper - список
всех операций (покупка/продажа товаров)...
Задача - получить весь список...
Тогда:
for (int i = 0; i < oper.Count; i++)
{
... = oper.DateTime; //дата/время операции
if (oper.Sum < 0) ... = "продажа"; else ... = "покупка";
... = tov[oper.ID]].Name; // имя товара
... = oper.Sum; // сумма сделки
... = "руб"; // сделка в рублях
}

Мы получим, например, такую таблицу:
...
01.02.2004 18:21 покупка Персональный компьютер 30000 руб.
...

Alexander_Chepack
Хм .. так мы сервер напрягать будем или у нас будет одна таблица?
Точно - настоящим реляционным базам ОЗУ использовать западло...

Да при этих условиях хотя бы с одной таблицей справиться...
... и что-то не припомню в базах, например, какой-нибудь команды напрямую
работающую с ОЗУ...

ody
Хочу тебя немного огорчить - такая СУБД уже существует более десяти лет. Называеться она Velocis... Кого заинтересовала данное СУБД - http://www.raima.com/ - пробуйте что нить добится у буржуев. Но идея тама в следующем - вы регистрируетесь. и америкосы пересылают ваши данные в Питерским дилерам, дальше незнаю. У меня была лицензионная версия 2. а их уже по моему 6. И не надо велик изобретать - лучше вы не сделаете (по крайней мере в ближайшие лет десять :))


Изобретать велик не надо, забашляй пару штук баксов за продукт, изучи его...
научись писать для него dll - ки........ и готовь бабки на upgrade!!!
12 фев 04, 07:58    [532231]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
mzprog
Guest
Рыжий Кот

Самоуверенный молодой человек, давайте свою табличку, давайте данные.
Можно мне на почту.
Задача у вас для НИИ, никак не связанная с БД...

Мне тоже хотелось бы поучаствовать в эксперименте (может и ещё кому)... Позапускать у себя на компе... Что для этого нужно??? Программу со своей стороны я подготовлю на выходных...сейчас пока-что занят...
12 фев 04, 08:02    [532237]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
mzprog
Guest
Нащупывается её одно направление использования MzDbNet - это игры...
Например, необходимо написать сервак для какой-нибудь сетевой игры, где будут храниться игровые карты боевых сражений, различные юниты и т.д...
а также будет осуществляться расчёт всех взаимодействий игроков ... Представляю, если такую задачу решить на обычной СУБД (что в принципе даже очень возможно). При установки игры, она выдаст сообщение: "Установите SQL-сервер такой-то фирмы"... :)
12 фев 04, 08:14    [532245]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
Рыжий Кот
Member

Откуда: Мягкий Диван; [забанен] Рустамом; [разбанен] П02;
Сообщений: 21678
Я аж цвет поменял
Картинка с другого сайта.

Свою некомпетентность не нужно выставлять напоказ. В своем дистрибутиве запросто можно поставлять и субд. (для подсчета буказоидов в интерент клубе я так и делал. MySQL разворачивался в папку, mysqld --install если память не изменяет net start mysql и админ и не подозревал, что у него СУБД).

Оффтоп, я вы где работаете?
12 фев 04, 09:26    [532311]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
Лох Позорный
Member

Откуда:
Сообщений: 9898
Нащупывается её одно направление использования MzDbNet - это игры... Например, необходимо написать сервак для какой-нибудь сетевой игры, где будут храниться игровые карты боевых сражений, различные юниты и т.д... а также будет осуществляться расчёт всех взаимодействий игроков ... Представляю, если такую задачу решить на обычной СУБД (что в принципе даже очень возможно). При установки игры, она выдаст сообщение: "Установите SQL-сервер такой-то фирмы"... :)

Маладой человек, пойдите до ближайшего магазина и купите Silent Storm
И время с большей пользой проведете, и MSDE на компакте увидите :)
12 фев 04, 09:29    [532319]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
mzprog
Guest
Рыжий Кот

Свою некомпетентность не нужно выставлять напоказ. В своем дистрибутиве запросто можно поставлять и субд. (для подсчета буказоидов в интерент клубе я так и делал. MySQL разворачивался в папку, mysqld --install если память не изменяет net start mysql и админ и не подозревал, что у него СУБД).

Честно сказать с MySQL я не работал... Я имел в виду что-нибудь типа MS SQL (ну или Oracle)...

Лох Позорный

Microsoft SQL Server Desktop Engine (MSDE) - это СУБД для использования на локальной станции

Сеть не поддерживается что-ли???

mzprog

При установки игры, она выдаст сообщение: "Установите SQL-сервер такой-то фирмы"... :)

Беру свои слова обратно...
12 фев 04, 09:45    [532351]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
Рыжий Кот
Member

Откуда: Мягкий Диван; [забанен] Рустамом; [разбанен] П02;
Сообщений: 21678
mzprog, (серьезно) я не сомневаюсь, напротив даже уверен, что у вас блестящие способности к программингу. Просто на определенном этапе, человек освоив что-либо или достигнув чего-то, пытается на этом делать ВСЕ!
К сожалению это ошибка. Если ты делаешь что-то новое (для себя), стоит сначала все-таки поинтересоваться (яндекс - найдется все (с)), может уже есть готовые технологии. Никто не спорит, что может быть для данной задачи хорошего решения еще не найдено, и Вы сделаете своего рода революцию, но (!), и еще раз НО: надо же понимать, что очень велика вероятность, что подобные задачи уже кто-то решал. Спокойно, сядьте, посмотрите, переберите варианты... И мне кажется, что изучать что-то хорошо при реализации проекта, имеющего прикладной характер. Пусть первый раз будет криво, перепишИте, и т.д. Проект начнет расти (и вы вместе с ним). Через пару лет вы посмОтрите на то, что делали, и поверьте, будете умиляться своей наивности...

Картинка с другого сайта.
12 фев 04, 10:06    [532389]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
Лох Позорный
Member

Откуда:
Сообщений: 9898
2 mzprog
Microsoft SQL Server Desktop Engine (MSDE) - это СУБД для использования на локальной станции
Это ты кого то другого процитировал, а не меня.

Сеть не поддерживается что-ли???
Твоя логика приводит меня в смущение.
12 фев 04, 10:27    [532437]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
Юрий Р.
Member

Откуда:
Сообщений: 318
Рыжему Коту.
Я считаю, что программист, работающий в серьезном офисе, например в банке, просто вынужден использовать один инструмент и именно делать с его помощью ВСЕ. На изучение чего-то еще просто не хватит времени. Да и по моему убеждению нельзя одинаково хорошо знать две, три и более систем. Другое дело, когда задачу просто НЕЛЬЗЯ решить имеющимися средствами, тут уж деваться некуда, можно просто лишиться работы.
12 фев 04, 11:03    [532532]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
mzprog
Пусть в таблице tov храниться список товаров, а в таблице oper - список
всех операций (покупка/продажа товаров)...
Задача - получить весь список...
Тогда:
for (int i = 0; i < oper.Count; i++)
{
... = oper.DateTime; //дата/время операции
if (oper.Sum < 0) ... = "продажа"; else ... = "покупка";
... = tov[oper.ID]].Name; // имя товара
... = oper.Sum; // сумма сделки
... = "руб"; // сделка в рублях
}


Как я понял индекс не используется, а идёт сканирование.
tov[oper.ID] - т.е. мы имеем массив со всеми вытекающими ограничениями и возможностью выхода за его пределы.

А для сравнения на SQL
select oper.DateTime, case when oper.Sum < 0 then "продажа" else "покупка" end,   tov.Name, oper.Summa

from oper, tov
where tov.ID=oper.ID

Во-первых это короче.
Во-вторых наглядней - мы не делаем каких-то циклов, объявлений лишних переменных, а только говорим то, что нужно выбрать и по каким условиям
В-третьих у нас точно не будет выхода за границы массива. В принципе мы даже можем поставить проверку чтобы не вводились операции с несуществующими товарами и не удалялись товары, по которым были операции(это всё делается вообще без писания кода, просто заданием свойств таблицы)
В-четвёртых если есть индексы - они будут грамотно использованы.
Ну про многопользовательскую работу я вообще не говорю.
А есть ли хоть одно преимущество у Вашего решения, кроме того что это намного интересней?

Вот сейчас нащупывается её одно направление использования MzDbNet - это игры... . Но я думаю разработчики игр найдут свои аргументы. Ну и к тому же библиотек для примитивного чтения таблиц хватает и так.

А насчет задачки Эйнштейна - несерьёзная отмазка, кто хотел тот понял правильно.
12 фев 04, 11:15    [532560]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
f_w_p
Member

Откуда:
Сообщений: 1603
Игра сапёр не содержит 3D-графики на базе OpenGL или DirectX, не снабнена навороченными звуковыми голосовыми эффектами, не позволяется играть по сети ... значит с твоим подходом это что не игра???
Очень странная (мягко говоря) логика. Ну хорошо, дайте ваше определение СУБД.
12 фев 04, 11:21    [532573]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
mzprog
Guest
SuperSerg

Как я понял индекс не используется, а идёт сканирование.

Ну естественно, а как же, мы же хотим вывести все операции...
SuperSerg

tov[oper.ID] - т.е. мы имеем массив со всеми вытекающими ограничениями и возможностью выхода за его пределы.

Да нет, я использовал массив для более понятного написания...

Если посмотреть в библиотеке модуль MzDbTable.h, то там можно
найти класс CMzDbTable. Данный класс содержит несколько атрибутов и операций, в том числе следующие:
void SeekAt(TMzInt AIndex); //переход по таблице на запись с определённым
// индексом
void SeekFirst(TMzInt AIndex); //переход на первую запись
void Read(void *&Buf); //чтение текущей записи...
TMzInt GetCount(); //кол-во записей в таблице...

Таким образом, код на самом деле будет на много ужаснее:
//Опишем структуру операций в h-файле...
struct TOperRecord
{
int32 ID; // int32 - нестандартный тип для С++, целое 32-х разрядное число
float32 Sum; // float32 - нестандартный тип для С++, вещественное
//32-х разрядное число
};

...

TOperRecord or;
//Открываем таблицы
tov = new CMzDbTable("tov.mz", 100); // 100 - размер
//длины строки единицы товара
oper = new CMzDbTable("oper.mz", sizeof(TOperRecord));
...
//TMzInt - класс - "число целого типа"
TMzInt Count = oper.GetCount();
oper.SeekFirst(); // переход на первую запись (на всякий случай)
for (TMzInt i = 0; i < Count; i++)
{
oper.Read(&or);
tov.SeekAt(or.ID);
char TovName[101];
tov.Read(&TovName);

... = or.DateTime; //дата/время операции
if (or.Sum < 0) ... = "продажа"; else ... = "покупка";
... = TovName; // имя товара
... = or.Sum; // сумма сделки
... = "руб"; // сделка в рублях
}

надеюсь неошибся...


select oper.DateTime, case when oper.Sum < 0 then "продажа" else "покупка" end, tov.Name, oper.Summa
from oper, tov
where tov.ID=oper.ID

Во-первых это короче.
Согласен.

Во-вторых наглядней - мы не делаем каких-то циклов, объявлений лишних переменных, а только говорим то, что нужно выбрать и по каким условиям
Кому как, но естественно, для 99,99% - нагляднее

В-четвёртых если есть индексы - они будут грамотно использованы.
Раз я могу создать просто таблицу, то могу обозвать индексной и
хранить в ней номера полей другой таблицы в любом упорядоченном порядке...
То есть, я тоже могу создать индексную таблицу...

Ну про многопользовательскую работу я вообще не говорю.
Если посмотреть исходник, то там видно что библиотека
предназначена к работе по сети (UDP-протокол) и она многопользовательская!!! Это точно!!!

А есть ли хоть одно преимущество у Вашего решения, кроме того что это намного интересней?

Я согласен, что мой проект работы с базой приметивен. Я не МОНСТР - я не могу соперничать как с толпой программистов, например, Microsoft, которые при этом получают бешенные бабки, так и их финансистами, которые раскручивают и продают их программные продукты...Я не смогу этого сделать - хоть может быть и пытаюсь...

Есть ли преимущество? Есть точно одно приемущество!

Заходим на сайт mzc.narod.ru, закачиваем
библиотеку MzLib, пример VpDbServ и создаём СВОЙ СЕРВЕР БАЗ ДАННЫХ!!!
Затем, наслаждаемся этим.... А потом показываем начальнику - он сильно впечатляется и повышает зарплату!!!

А насчет задачки Эйнштейна - несерьёзная отмазка, кто хотел тот понял правильно.
просьба на меня не обижаться....извени

Думаю, споры пора прекращать... На них уходит столько времени...
Если кому интересно и будет время - заходите на сайт
mzc.narod.ru... Надеюсь
проект удасться продолжить, в том числе и направление для работы с
базами данных... После написания библиотек MzGL и MzCtrl - процесс
создания таблиц должен стать визуальным, возможно, добавлю
оператор select...
12 фев 04, 13:18    [532885]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
автор
Думаю, споры пора прекращать...

Да споров и нет :) Есть просто большое удивление народа по поводу того, что Вам не лень всем доказывать, что не зная ничего, но имея настойчивость, желание и терпение можно построить современный автомобиль кустарными способами из проволочек и гвоздиков. Построить на самом деле можно, но вот автомобилем эта конструкция не станет и никто на ней никуда не поедет.

Вы делаете примитивную курсорную обработку и всем доказываете, что это СУБД, даже не зная основных терминов и понятий работы таких систем.

Кстати я вот еще чего не понимаю, в BCB есть компоненты TTable и TQuery, которые через BDE могут работать с dbf и db. Те же самые таблички. Можно строить индексы, лопатить записи в цикле, выполнять запросы и т.д. (кстати я так и не понял, что такое по Вашему индексные таблицы). Компоненты писаны на Delphi, то есть изначально при работе с ними из BCB вы получаете быстрый машинный код и кучу "интересных" возможностей. При желании их можно наследовать и дописать, более активно использовать API BDE, расширить функционал до необходимого Вам уровня. Иерархия классов продумана, поддержка типизированных полей и параметров есть, BDE может эффективно кэшировать работу с такими таблицами с целью уменьшения издержек. Если Вам хочеться подобие клиент-сервера, так для этого существует MIDAS, на нем достаточно красиво и просто можно организовать примитивный выделенный сервер.

Так чем Вас решение Borland не угодило то ? Или опять только тем, что это написали не Вы, а Borland ?

P.S. Или я чего то не понимаю или ... больше ничего на ум не приходит (C) Хрюндель
12 фев 04, 13:42    [532962]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
Alexander_Chepack
Member

Откуда: London
Сообщений: 22649
автор

СВОЙ СЕРВЕР БАЗ ДАННЫХ!!!
Затем, наслаждаемся этим....
А потом показываем начальнику - он сильно впечатляется и повышает зарплату!!!



Хм .. а я бы уволил после этого в три секунды - поскольку ясно что человек от безделия мучается.
12 фев 04, 13:45    [532969]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
Speaker
Member

Откуда: Санкт-Петербург
Сообщений: 695
автор
А потом показываем начальнику - он сильно впечатляется и повышает зарплату!!!

12 фев 04, 13:46    [532974]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
eNose
Member

Откуда:
Сообщений: 183063
возможно, добавлю оператор select...

Точка. Приплыли.
От чего убегал - к тому же и вернулся

В большинстве СУБД (если не во всех) SQL - надстройка. И у тебя в итоге получится тоже самое (если, конечно, ты дойдешь до этого момента).



eNose
12 фев 04, 13:51    [532992]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
aag
Member

Откуда: Москва
Сообщений: 1955
Классный топик.
Десяток гуру в области баз данных пытаются спорить с человеком, который об этой области понятия не имеет, и не хочет иметь. И, что характерно - он-таки их почти переспоривает! Ну потому что действительно, программку типа "Hello world" написать - она С++ и меньше будет, и выполняться быстрее. И нагляднее (для кого-то). А эти базы данных - это проклятая MS бешенные бабки со всех гребет, на самом деле они нифига не могут! А тут бесплатно библиотека для "Hello world"! По функционалу скоро догонит крутейший Сервер Баз Данных Dbase!

Nobody faults but mine... (LZ)
12 фев 04, 19:26    [533793]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Да не, никто не спорит - пытаемся наставить на путь истинный :)

Картинка с другого сайта.

-- Tygra's --
13 фев 04, 11:28    [534552]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
---------------
Guest
Вот так всегда

Только человек начнет крылья распускать,
как набегает толпа и выдергивает все перья.

Руки прочь - пусть летит (как умеет)
13 фев 04, 15:41    [535412]     Ответить | Цитировать Сообщить модератору
 Re: Интересно подискусировать с профессионалами  [new]
ну я
Member

Откуда: Москва
Сообщений: 1276
2 mzprog:
Не отчаивайся. Лично я желаю успехов. От обсуждения возьми полезное. В частности, пожелание учиться. Когда-то все были дилетантами в своих вопросах. А еще раньше и читать-писать не умели.
13 фев 04, 16:25    [535541]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить