Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Различия в серверах баз данных 
:(
    Опции темы
rcdimon
Дата 27.8.2007, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

Репутация: нет
Всего: 2



Всем привет.

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

Я знаком только с SQL, поэтому прощу помочь мне в поиске различий между базами.
PM MAIL ICQ   Вверх
DimW
Дата 28.8.2007, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 2
Всего: 44



Цитата(rcdimon @  27.8.2007,  20:19 Найти цитируемый пост)
Я знаком только с SQL

собственно в нем и различие.
к примеру этот запрос в ms sql вернет колличество строк из таблицы test_teble:
Код

select count(*) from test_teble where null = null

т.е. условие null = null для этого сервера правдиво.

а в оракле этот же запрос вернет 0 строк, т.к. для него условие null = null ложно (ничего не может быть равно ничему...)
для оравла следует записать запрос так:
Код

select count(*) from test_teble where null is null


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


PM MAIL ICQ   Вверх
DimW
Дата 28.8.2007, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 2
Всего: 44



еще как пример, в оракле допускается конструкция:
Код

select id, name 
from test_table
where (id, name) in (select id, name from test_table2)

т.е. поле id таблицы test_table сравнивается с набором значений поля id из test_table2, а name c name.

не знаю в каких серверах такая конструкция поддерживается, но факт что не во многих, поэтому вам нужно будет для другова сервера перепесать запрос так:
Код

select id, name 
from test_table
where id in (select id from test_table2 order by id)
and name in (select name from test_table2 order by id)


PM MAIL ICQ   Вверх
SergeBS
Дата 30.8.2007, 07:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 1
Всего: 22



rcdimon, 
Цитата
Мне необходимо написать программу, которая должна уметь работать с различными базами даннх.

Невозможно. Либо есть конкретные БД с их структурами и есть задача - что должна делать программа, либо имеем "сферического коня в вакууме". Прочитай FAQ-и для начала - поймешь сам.
PM MAIL   Вверх
DimW
Дата 30.8.2007, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 2
Всего: 44



Цитата(SergeBS @  30.8.2007,  07:49 Найти цитируемый пост)
либо имеем "сферического коня в вакууме"

на самом деле такие кони есть в природе, такой софт широко используется в хранилищах данных, как правело этим инструментам по барабану с каким источником данных работать, будь то БД или csv.
Но т.к. задачей этих инструментов является вывод отчетности, то их реализация не настолько сложна, по сравнению с задачей rcdimon. К таму же эти инструменты не позволяют пользователям напрямую писать запросы, а если и позволяют то синтаксис очень специфичен.

PM MAIL ICQ   Вверх
Deniz
Дата 31.8.2007, 05:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 7
Всего: 44



Цитата(DimW @  30.8.2007,  11:19 Найти цитируемый пост)
Но т.к. задачей этих инструментов является вывод отчетности, то их реализация не настолько сложна ...

Позвольте не согласиться.
Как пример SAP R/3 (Это конечно монстр, но все же). Можно работать с многими БД и переход на MSSQL, Oracle, DB2 и т.д. не составляет большой проблемы.
И функциональность там ...
И SQL запросы можно писать, и даже свой язык программирования, но вот этот SQL сильно подрезанный.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
SergeBS
Дата 31.8.2007, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 1
Всего: 22



DimW, 
Deniz, 
Давайте не будем путать программу (вещь прикладную) и средства разработки СУБД и отчетов. ErWin (например) с кучей всяких СУБД может работать, но он не предназначен для юзеров. И не только он. 
Писать средство разработки в одиночку - смешно, годы понадобятся. Писать средство вывода отчетов - да пожалуйста, только при этом надо-таки знать - какие юзеру отчеты нужны. А иначе - Crystal Reports ему в руки и нехай ваяет что хочет. Например. Или взять FastReport - у него есть возможность включить средство построения отчетов.
Или очень хочется свое такого духа наваять? Ну флаг в руки. Через 1-2 года что-то может получится.
Но вряд ли. По вопросу достаточно просто определяется квалификация спрашивающего: без обид, это просто факт - "Чтобы правильно задать вопрос нужно знать половину ответа"(С) не знаю чей.
PM MAIL   Вверх
DimW
Дата 3.9.2007, 07:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 2
Всего: 44



2 SergeBS
Цитата(SergeBS @  31.8.2007,  08:22 Найти цитируемый пост)
Давайте не будем путать

я ничего не путаю, те средства о которых я говорю позволяют именно юзеру строить ту отчетность которая ему нужна.
 
Цитата(SergeBS @  31.8.2007,  08:22 Найти цитируемый пост)
средства разработки СУБД

а вот вы путаете сервер БД с логической структурой.

Цитата(SergeBS @  31.8.2007,  08:22 Найти цитируемый пост)
Или очень хочется свое такого духа наваять? Ну флаг в руки.

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

Цитата(SergeBS @  31.8.2007,  08:22 Найти цитируемый пост)
Писать средство разработки в одиночку - смешно, годы понадобятся.

наверное в спешке пропустили...
Цитата(DimW @  28.8.2007,  08:27 Найти цитируемый пост)
имхо в одиночку и без хорошего финансирования не стравиться.



PM MAIL ICQ   Вверх
SergeBS
Дата 3.9.2007, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 1
Всего: 22



DimW, 
Цитата
я ничего не путаю, те средства о которых я говорю позволяют именно юзеру строить ту отчетность которая ему нужна.

Т.е. юзер должен знать SQL? Или Crystal Reports? И НАПРЯМУЮ работать с таблицами? Ну-ну. Крутые у вас юзеры... Мне такие почему-то не попадаются. А попадаются такие, что в 3-х кнопках и с инструкцией на 1 листке плутают, вместо файла на дискету/флешку/по email отправляют его ярлык. И т.п.
Цитата
а вот вы путаете сервер БД с логической структурой.

Еще раз:
Цитата
Либо есть конкретные БД с их структурами и есть задача - что должна делать программа, либо имеем "сферического коня в вакууме".

Т.е. если неизвестно, с какими данными что нужно делать, то и ничего не сделаешь. Нет задачи. А какая СУБД - не так уж и важно. Из Dbf-ки всегда можно импортировать данные в таблицу SQL-сервера, и наоборот...
PM MAIL   Вверх
DimW
Дата 3.9.2007, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 2
Всего: 44



Цитата(SergeBS @  3.9.2007,  10:59 Найти цитируемый пост)
Т.е. юзер должен знать SQL?

вовсе нет:
Цитата(DimW @  30.8.2007,  08:19 Найти цитируемый пост)
К тому же эти инструменты не позволяют пользователям напрямую писать запросы

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

Цитата(SergeBS @  3.9.2007,  10:59 Найти цитируемый пост)
Ну-ну. Крутые у вас юзеры...


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

Цитата(SergeBS @  3.9.2007,  10:59 Найти цитируемый пост)
Или Crystal Reports?

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

думаю на сей раз моя точка зрения понятна.

Это сообщение отредактировал(а) DimW - 3.9.2007, 12:07
PM MAIL ICQ   Вверх
batigoal
Дата 6.9.2007, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Цитата(Deniz @  31.8.2007,  06:45 Найти цитируемый пост)
И SQL запросы можно писать, и даже свой язык программирования, но вот этот SQL сильно подрезанный. 

Ну не факт, кстати. Встроенный в ABAP SQL делится на Native и еще какой-то, не помню терминологии. И если второй, действительно, обрезан до DML, то первый вообще передается непосредственно базе, поэтому никаких ограничений нет.

Теперь по теме. rcdimon, а на каком языке планируешь писать своё приложение? Ведь и в Java, и в большинстве других языков есть средства абстрагирования от конкретной базы и SQL-диалекта (Hibernate, JTA...). Велосипед уже изобретён, можно взять имеющийся.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | СУБД, общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0584 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.