С чего начать изучение SQL
Я хочу научиться создавать и работать с базами, но вот не задачка: "С чего начать?". Подскажите что проще в освоении MS SQL или MSQL. Может кто знает умные статьи для чайников?
У меня есть программа, написанная мной на С. Она по сути отслеживает приход/уход сотрудников, если пользователь ничего не делает в течении n-ного кол. времени то фиксирует и это. Сейчас прога создает текстовый файл, дальше средствами JS и php я это обрабатываю и вывожу на сайт. Хотелось бы все это в базу. Соответственно какая база лучше?
С другой стороны, MSSQL более продвинута в возможностях. Впрочем, навряд ли они тебе эти продвинутости понадобятся в ближайшие пять лет.
Хранимые процедуры и функции так же работают и в MySQL.
Вобщем, MySQL однозначно. По секрету: Google весь работает на MySQL. Правда, на очень дорогой версии - BigTable ))))
А почитать надо начать с теории баз данных, без привязки к конкретной БД. Для пробы пера и ознакомления со многими вещами рекомендую читать на MySQL.ru
Я имею примерное представление о базах данных. Работал в аксесе немного. Но вот я никак не могу понять, как создать базу, как к ней подключиться. У меня стоит Microsoft SQL Server, MySQL. Из инструментов есть MS studio expres, MS Visual Studio 2010. Но мне никак ее не потрогать. Может сталкивались со статьями, описывающими первые шаги в картинках.
Например есть статья по MFC:http://appdeveloper.narod.ru/firststep/firststep.htm
ченить подобное бы про SQL.
Я имею примерное представление о базах данных. Работал в аксесе немного. Но вот я никак не могу понять, как создать базу, как к ней подключиться. У меня стоит Microsoft SQL Server, MySQL. Из инструментов есть MS studio expres, MS Visual Studio 2010. Но мне никак ее не потрогать. Может сталкивались со статьями, описывающими первые шаги в картинках.
Например есть статья по MFC:http://appdeveloper.narod.ru/firststep/firststep.htm
ченить подобное бы про SQL.
для mysql еще нужно (помойму) установить apache + php + phpmyadmin
с MSsql ксожелению неработал вообще
с MSsql ксожелению неработал вообще
Ну естественно! У мня стоит denver
Ниче не надо из этого ставить, чтобы MySQL работал. MySQL работает сам по себе, апач на него не влияет, как и пхп. MySQL лишь используется в скриптах php, но сама СУБД может работать сама по себе прекрасно.
ну в таком случаее её только из под командной строки запустить можно :D
ну тогда заходите на http://localhost (незабываем включить сам Денвер)
ищите там ссылку - заведение новых пользователей БД (или чтото вроде этого) - создаете там новую базу, пользователя и пароль.
далее тамже (http://localhost) ищите phpmyadmin , кликайте по нему и в списке выбирайте вашу бд =) - очень легко учиться прям в phpmyadmin - там на каждое действие пишется sql код, который был сделан чтобы его выполнить....
но первым делом - если совсем нет понятий с sql - попробуй через вэбинтерфейс ПМА (phpmyadmin) выполнять задачи - для начала создай новую таблицу -
придумайте название (латинскими буквами) и количество ячеек в ней.
Нажмите добавить и перед вами появится след окно - там выберите типа ячееек что хотите создать и тп....
У каждого типа свои особенности и предназначения - чтобы все понять нужно почитать про это =)))))
Самые частоиспользуемые (мною) - int (целые цифровые) и varchar (любой текст) - поигравшись создавайте....
обратите внимание там еще и отобразился SQL код, который потребовалось выполнить....
Просто кроме phpmyadmin есть и другие альтернативные GUI интерфейсы к данной СУБД.
Просто кроме phpmyadmin есть и другие альтернативные GUI интерфейсы к данной СУБД.
просто я глубоко сомниваюсь, что ТС она (бд) нужна для этого, в 95% именно нужен апач, пхп, пма ну или всякие гавносборки проекты типа денвера
при чём тут это? сама СУБД может использоваться для чего угодно. если мне не хочется покупать MSSQL или Oracle для работы крохотной фирмы, которая их просто не потянет, то я поставлю на Win бесплатную MySQL и буду через ADO и ODBC с нею общаться своими клиентскими приложениями. Вот сейчас я одному человеку помогаю с небольшой CRM. Пишу на Delphi. БД MySQL лежит на удалённом хосте. Дёшево и шустро. Во-первых, не нужен человек, называемый "администратор базы данных". Это уже минус 30К рублей. Во-вторых, денег на хостинг сами знаете сколько нужно, и сам хостёр всё бэкапит и восстанавливает при случае. Красота! А теперь представь, сколько это должно стоить при условии MSSQL даже если бы её предоставлял тот же хостёр. Мой опыт работы с этим микростуффовым монстром говорит мне, что там нужно очень много мозгов, терпения и бабла, чтобы обслуживать его.
Не верю :D Линупс такое не потянет. Вы бы охренели OpenDirectory настраивать а потом еще и софт использующий MSSQL переписывать.
Ну почему не бывает. А вот про «охренели бы» - верно. Потому и не срослось :D
Кстати, а зачем софт переписывать? Он просто использует данные через ADO, и там без разницы какая база, только ODBC-драйвер соответствующий надо поставить.
Как раньше - не знаю, а сейчас нормальный софт использующий MSSQL пишется на .NET. Теперь покажи мне как через ADO.NET банально установить значение таймаута подключения примитиву DbConnection-а. А что уж говорить о всякой тяжкой логике которая живет в хранимках. А если там гдето XML начинает ходить в базу и из нее... Вся эта кросс-СУБДшность - в реальности совершенно виртуальна и работает лишь на проектах уровня NerdDinner.
Ну да, как-то так и есть всё. Хотя хранимые процедуры и триггеры переписать можно. А вот что такое ADO.NET я не знаю, но догадываюсь, что выхлоп у неё ровно такой же как и у классического ADO, коим я пользуюсь.
P.S. А раньше-то, дурак, для связи с MySQL юзал Zeos. Впрочем, тогда ещё не придумали как с MySQL через ADO контактировать, и вообще ODBC для MySQL был в зачаточном состоянии.
ну и ерунды вы тут понаписали! диву даешься..
во первых ничего тяжелого или сложного в ms sql нет - какой у вас объективный критерий "тяжелости" и "сложности"?
про цену - вы в курсе что есть разные редакции? в том числе бесплатные (для нужд разработчика или своего небольшого сайта - возможностей хватит с головой, особенно в последних версиях, так что о платных и не задумаешься), если брать платные то есть очень дешевые, порядка 40 долларов?
То, о чем вы говорите, всякие enterprize и datawarehouse и т.д. конечно стоят других денег, но и задачи решают другие, с которыми бесплатная версия мускуля вряд ли справится.
Так что если не в курсе насчет редакций - смените стереотипы и будьте в курсе, либо хотя бы держите их при себе чтобы не вводить людей в заблуждение.
Далее, про "администратора бд" - вообще красивый пассаж. То что вам не приходилось иметь дело с БД размер, надежность и нагрузка на которые таковы, что они не нуждаются в администрировании - не значит что БД вообще не нужно администрировать. Кстати, что насчет бэкапов и обеспечения бесперебойности, мускуль такое умеет наверняка - а ведь это тоже административные задачи!
Так, что для приложений уровня "небольших CRM", небольших сайтов или интернет магазинов, настольных приложений и т.п. - и для mssql все ваше "администрирование" - сведется к установке субд.
Что касается хостеров - вы когда последний раз хостинг покупали? Любая приличная хостинг компания, при выборе тарифного плана, дает на выбор mysql или ms sql, примерно в одинаковых конфигурациях. при чем заметьте отдельно доплачивать за mssql - никто не требует!
И еще на правах совета, лучше писать про то, с чем работали, чтобы не сесть в лужу.
Для ТС:
Имхо, тут - дело вкуса.
Люди работающие в связке: nix, apache, php, mysql - ввыбирают соотв.но mysql.
Люди работающие: win, iis, .net, ms sql - соотв. mssql.
Выбирайте что милее и вперед.
Мне доводилось поработать и с mysql (не долго) и с ms sql. Скажу что мне как-то больше понравился ms sql. Но повторяю, это мое субъективное мнение, т.к. у меня нет достаточного опыта в mySql чтобы проводить вдумчивое сравнение и делать однозначные выводы.
В сети есть много анализов и сравнений, много копий сломано, что лучше - это тема для холивара. Так что поищите, почитайте.
Но на начальном этапе - это только дело вкуса. Перейти потом - нет проблем! У каждого есть свои заморочки (взять хотя бы груп бай в мускуле), или...да много всего неочевидного и в mssql, что скрывать. Но пока не начнешь плотно работать с продуктом - не наткнешься, так что для обучения - все равно.
Просто выбирайте платформу: win или nix - и вперед.
п.с.
Главное не начинайте с акцесса =)
покупал чертовски давно. В 2004-м году, кажется, и до сих пор там остаюсь. Уже и владельцы вместе с названием трижды сменились, а я всё там же, за все годы дважды обратившись в техподдержку.
Насчёт "доплачивать никто не требует" - весьма спорно. Win-хостинг - вещь неприлично дорогая. И эти приличные хостинг-компании почему-то ограничивают размер БД в мегабайтах (мой хостёр ограничивает только размер общего дискового пространства, да и то условно: при переполнении оно "резинит" и какие-то копейки начинают дополнительные списываться). У меня программа может быть 10кб, а все остальные 10Гб занимать БД. У тех кого вы приличными зовёте, чётко написано, к примеру: "FTP 3000Мб, MSSQL 500Мб". И всё это чудо за ~600 RUR в месяц (!) Только вот нахрена мне 3 гектара для SOAP-сервиса, который весит 100Кб и всего полгектара для БД, которая у меня переваливает за 20Гб - не понимаю. Да ещё за такие деньги, которые я своему неприличному хостёру, к которому у меня за шесть лет не возникло претензий, плачу за полгода.
это точно :D
[/QUOTE]
Знаете есть такой принцип в agile, Принцип "малых шагов".
Прежде чем приобретеать какую-либо дорогую версию ПО, следует скачать бесплатную и пользоваться ей до тех пор, пока бесплатная версия не станет "тесновата". Тогда переход на платную будет более обоснован.
Попробуйте ради интереса, установите экспресс, если вы думаете что это "урезанная недоверсия", в которой можно выполнить только select *, вы сильно ошибаетесь. Ограничения там в основном касаются кол-ва процессоров, памяти, размера БД, всяких мулек типа секционирвоания и т.д. т.е. в основном масштабирвоания, обеспечения высоконагруженных систем.
Я не знаю как еще это назвать, как не ввод в заблуждение, человека, который спрашивает совета, а красной нитью вашей речи проходит такая мысль: "мс скуэль монструозное дорогое чудище которое нужно бесконца поддерживать за бешеные деньги" а мускуль "легкая и воздушная субд, простая в настройке, бесплатная, не нуждающаяся в администрировании". Эти мысли мне кажутся не совсем корректными, по этому я призываю вас, просто быть более объективным.
[QUOTE=mfender]
покупал чертовски давно. В 2004-м году, кажется, и до сих пор там остаюсь. Уже и владельцы вместе с названием трижды сменились, а я всё там же, за все годы дважды обратившись в техподдержку.
Насчёт "доплачивать никто не требует" - весьма спорно. Win-хостинг - вещь неприлично дорогая. И эти приличные хостинг-компании почему-то ограничивают размер БД в мегабайтах (мой хостёр ограничивает только размер общего дискового пространства, да и то условно: при переполнении оно "резинит" и какие-то копейки начинают дополнительные списываться). У меня программа может быть 10кб, а все остальные 10Гб занимать БД. У тех кого вы приличными зовёте, чётко написано, к примеру: "FTP 3000Мб, MSSQL 500Мб". И всё это чудо за ~600 RUR в месяц (!) Только вот нахрена мне 3 гектара для SOAP-сервера, который весит 100Кб и всего полгектара для БД, которая у меня переваливает за 20Гб - не понимаю. Да ещё за такие деньги, которые я своему неприличному хостёру, к которому у меня за шесть лет не возникло претензий, плачу за полгода.[/QUOTE]
Я не являюсь экспертом по хостингу, но почему-то уверен, что если поискать, то вы найдете и вин-хостинг за приемлемые деньги. Что касается "приличности" и цены хостинг-компаний, то это выбор сугубо каждого.
Вот можно например купить плеер ммм..какой-нибудь китайской ХуньЧаоМао, а можно японский Сони, цена будет отличаться значительно. И при этом китаец, может даже будет лучше и проработает дольше Сони, никто не спорит и не называет его плохим, но чисто психологически....короче в подобной ситуации один бы выбрал китайца, а я лично выбрал бы сони. Тем более, что цена вопроса - ну смешная.
Спасибо, что ткнули меня носом в мои заблуждения. То-то у меня дома стоит Express, на котором я всё и делаю, что с MSSQL связано, но вот, чёрт возьми даже не подозревал, что на ней можно что-то больше select'а исполнить :D
На самом деле там ограничения существенные (MSSQL 2008): БД не более 4ГБ, 1ГБ на использование физической памяти, 1 физический процессор (планировщик будет использовать ядра только на одном процессоре). Отключен встроенный шедулер (не так страшно - можно заменить на виндовый + sqlcmd), зато есть полнотекстовый поиск.
Для задач ТС в заявленом объеме MySQL хватает с головой.
Существенные по сравнению с другими редакциями - это конечно. Но существенные для начинающих и небольших проектов - нет. А вот насколько он уступает или выигрывает у mysql можете выяснить. Замеры, тесты, нагрузочные тесты, потом с удовольствем почитаю о результатах.=) Хотя я подозреваю уже кто-то сравнивал, погуглить надо.
И кстати БД, не 4ГБ, а 10Гб...
вот здесь можете подробнее посмотреть[QUOTE=mfender]То-то у меня дома стоит Express, на котором я всё и делаю, что с MSSQL связано, но вот, чёрт возьми даже не подозревал, что на ней можно что-то больше select'а исполнить[/QUOTE]Ну и зачем так огульно рассуждать тогда, тем более новичков стращать =)
Вообще использующим в качестве аргумента "он бесплатный". Счас поискал ради интереса, вот результаты, за что купил за то продаю
1. MySQL Community - лицензирована под GPL. Распространяется бесплатно, код открыт.
2. MySQL Enterprise - лицензирована под коммерческой лицензией. Распространяется вместе с пакетами поддержки различного уровня. Исходный код доступен.
По сути, обе редакции MySQL основаны на одних и тех же исходных кодах. MySQL Enterprise - сертифицированные и протестированные бинарники + поддержка + дополнительные утилиты (дополнительные коннекторы, Advisory tools) + доступ к базе знаний MySQL.
Если Вы используете MySQL в своей организации (включая использование для коммерческой деятельности) и не приобретали программу поддержки, то значит Вы используете MySQL Community (она входит в дистрибутивы и ее можно скачать с сайта). В таком случае лицензия у Вас GPL и платить за нее не требуется.
Если Вы захотите дополнительные возможности поддержки, утилиты и др, тогда Вам следует приобрести один из планов поддержки MySQL Enterprise (пишите, если этот вариант Вас интересует). Такое приобретение даст Вам дополнительные возможности (включая, например, Hot bug fix - быстрое испроавление багов разработчиками MySQL), но как я понимаю не является обязательным для коммерческого использования MySQL в Вашей организации. Обязательно приобретение лицензии в нескольких случаях, наиболее распространенный из которых - включение MySQL в состав Вашего продукта, который Вы продаете (не по лицензии GPL). В таком случае Вы вместе с продуктом продаете и MySQL, являющуюся его частью и лицензия обязательна.
взято отсюда
а вот цены на редакции
/1-4 Socket Server /Year
MySQL Standard Edition USD 2,000
MySQL Enterprise Edition USD 5,000
MySQL Cluster Carrier Grade Edition USD 10,000
взято отсюда
Так что тоже не все так просто.
Для задач ТС в заявленом объеме MySQL хватает с головой.
Угу. Ушла, ну холивара мы не допустим, но объективность быть должна =)
Shureg-спасибо за подробное объяснение принципа первых шагов. Попробую и отпишусь что получилось.
SomewherSomehow-спасибо за разъяснения и субъективность.
На основе выше изложенного я решил начать с MySQL.
Есть еще один вытекающий вопрос: С++ c MySQL работает. На основе прочитанного материала, SQL и в Африке SQL, а остальное ну что ль оболочки)), если так можно выразиться.
Как оно работает, меня пока не интересует. Этот вопрос в планах.
Да, конечно работает, правда что вы под этим подразумеваете, клиент? Клиент может быть написан на чем угодно, хоть на с++, хоть на бэйсике. Изучайте ado, odbc и прочтие стандарты работы с бд. Возможно у mysql есть и какой-то свой нативный протокол и клиентские компоненты. Я в свое время взаимодействовал клиентом написанном на с++ builder 6.0 с mysql при помощи odbc, если мне не изменяет память, было это году в 2004-2005...может какие новые способы появились с тех пор.
Т.е. вы говорите что ado - технология, а odbc - дескать драйвер, да еще и обеспечивающий это сообщение???
Вы бы хоть не поленились элементарно посмотреть в википедии, прежде чем говорить ерунду (простите уж за прямоту). ODBC - именно что стандарт. В соответсвии с ним (с этой спцификацией), разработчики субд писали драйверы для доступа к своим СУБД (термин стандарт вам надеюсь знаком?). Это стандарт, а не драйвер! Драйвер разрабатывается в соответсвии с этим стандартом.
вот извольте
ODBC (англ. Open Database Connectivity) — это программный интерфейс (API) доступа к базам данных, разработанный фирмой Microsoft, в сотрудничестве с Simba Technologies на основе спецификаций Call Level Interface (CLI), который разрабатывался(англ.) организациями SQL Access Group, X/Open и Microsoft. Впоследствии CLI был стандартизован ISO ISO/IEC 9075-3:2003.(англ.) Стандарт CLI призван унифицировать программное взаимодействие с СУБД, сделать его независимым от поставщика СУБД и программно-аппаратной платформы.
....
Это достигается благодаря тому, что поставщики различных баз данных создают драйверы, реализующие конкретное наполнение стандартных функций из ODBC API с учётом особенностей их продукта.
Именно об этом я говорил, когда упоминал про то что мне пришлось качать такой драйвер с сайта mysql.com, для работы с этой субд посредством odbc.
Теперь ado.
Просто цитирую
ADO (от англ. ActiveX Data Objects — «объекты данных ActiveX») — интерфейс программирования приложений для доступа к данным, разработанный компанией Microsoft (MS Access, MS SQL Server) и основанный на технологии компонентов ActiveX. ADO позволяет представлять данные из разнообразных источников (реляционных баз данных, текстовых файлов и т. д.) в объектно-ориентированном виде.
Я что-то не вижу в этом определении ни слова про драйверы odbc...и вообще ни одного упоминания, что логично в общем-то ибо это разные вещи.
Скорее уж стоило бы вспомнить ole db, которая худо бедно, но может быть сравнима с ado т.к. первая основана на com, вторая на activex.
имхо,
уважаемый, подучите (или повторите) мат.часть, а то такие перлы лезут.
п.с.
извиняюсь за поздниый ответ - был в отъезде.
А что у нас со стандартами, до сих пор не признаете что odbc это стандарт?
ADO конечно не стандарт в чистом виде, по крайней мере я не слышал чтобы его приняли таковым, но я в своем посте объединил суть набор широкоподдерживаемых программных интерфейсов, для работы с которыми создана туча программных компонент - термином "стандарт". Надеюсь теперь вопрос понятен или будем продоолжать выискивать скрытый смысл в моих постах?
У меня возник вопрос, какой объем держит таблица (так чтоб быстро работала)? По моим подсчетам у меня в день добавляется около 20 строк в последней таблице. Хочется чтоб, ну скажет, годик все это хранилось. Запросы к этой таблице будут сл.: ищем совпадения по требуемым "id_...", выводим время прихода, время ухода.
И еще один момент, не уверен что по адресу, но моя прога в течении дня, с 20-ти машин будет обращаться к разным частям базы. Есть вероятность, что будет уместно одновременное обращение к одной ячейке (чтение). Собственно вопрос в том, mysql позволяет делать одновременно записи и чтение многих пользователей с одной парой логин/пароль, или необходимо создавать на каждый ПК свою пару?
PS: Быть может моя логика страдает. Если у кого есть идеи как лучше организовать таблицы и связь между ними, буду рад почитать, ибо я так понял опыта в данных вопросах у всех здесь больше, чем у меня.
MySQL в принципе не повесится. Даже миллион записей в таблице не является чем-то объемным и сложным для обработки. Все, в первую очередь, зависит от планировки БД + верной расстановки индексов.
Пользователей лишних можете не создавать, проблем не будет.
У меня возник вопрос, какой объем держит таблица (так чтоб быстро работала)? По моим подсчетам у меня в день добавляется около 20 строк в последней таблице. Хочется чтоб, ну скажет, годик все это хранилось. Запросы к этой таблице будут сл.: ищем совпадения по требуемым "id_...", выводим время прихода, время ухода.
И еще один момент, не уверен что по адресу, но моя прога в течении дня, с 20-ти машин будет обращаться к разным частям базы. Есть вероятность, что будет уместно одновременное обращение к одной ячейке (чтение). Собственно вопрос в том, mysql позволяет делать одновременно записи и чтение многих пользователей с одной парой логин/пароль, или необходимо создавать на каждый ПК свою пару?
PS: Быть может моя логика страдает. Если у кого есть идеи как лучше организовать таблицы и связь между ними, буду рад почитать, ибо я так понял опыта в данных вопросах у всех здесь больше, чем у меня.
Т.е. у вас будут таблицы:
справочник ПК, справочник пользователей, справочник дат и таблица содержащая факты прихода и ухода со ссылками на справочники? Впринципе нормальная структура, только я не понял, зачем даты заводить в отдельной таблице...почему просто в таблице фактов не сделать поле с типом дата.
Касательно объемов, как правильно заметил UAS, это смешные объемы, так что не переживайте.
Что касается пользователей и блокировок - не знаю, к сожалению, как это устроено в MySQL. В MSSQL посоветовал бы вам посмотреть в сторону блокировок, уровней изоляции, и т.д. может быть и тут похожий механизм, но точно - хз.
справочник ПК, справочник пользователей, справочник дат и таблица содержащая факты прихода и ухода со ссылками на справочники?
Совершенно верно.
Логично. Попробую так. А есть способы связать эти справочники с таблицей фактов на уровне SQL? Или это лишено смысла и это лучше делать при добавлении значений в таблицу? Т.е. например пользователь с логином administrator, на ПК-1, 28.12.2010 пришел в 13-00, ушел в 14-00. Тогда ищем в справочнике id пользователя и ПК: administrtor-id=1, ПК-1-id=1. В таблицу фактов пишем:
ID| User_id | PC_id | ___date___ | time_in | time_out
--+---------+--------+--------------+----------+----------
# | 1_____ | __1__ | 28.12.2010 | _13-00_ | 14-00
По поводу поля с типом "дата", я так понимаю, туда только дату можно пихать. Это хорошо, но вот как SQL понимает, что это дата, а не число?
Может есть тип "время", мне бы он пригодился? ))
[QUOTE=imAlex]
По поводу поля с типом "дата", я так понимаю, туда только дату можно пихать. Это хорошо, но вот как SQL понимает, что это дата, а не число?[/QUOTE]
Не факт. Опять же обратитесь к документации, либо может кто из работающих с мускулем на форуме напишет. Скорее всего можно и дату и время. А понимает - вы же задаете тип поля при создании таблицы, вот он и понимает =)
[QUOTE=imAlex]Может есть тип "время", мне бы он пригодился? ))[/QUOTE]
Есть такой в новой версии сиквел-сервера опять же. Есть отдельно тип дата, без времени, тип время без даты и тип дата время с разной точностью - богатый выбор. поройтесь в хелпах к мускулю, авось и там есть!
По поводу ссылочной целостности - у MySQL с этим проблемы. Поддерживаться стали только с 5ой версии и только для таблиц на движке InnoDB. Да и работает механизм ссылочной целостности, мягко говоря "не очень". Поэтому параллельно с БД ссылочную целостность допиливаю скриптами.
Кстати, мне пришлось поставить mysql-essential-5.1.54-win32.msi, для того, чтоб библиотеки установились, но при установке я ввел пароль (123456), теперь по адресу http://localhost/Tools/phpMyAdmin/ меня не пускает
.
Как туда попасть? логин root, пароль 123456. С C++ пишу
а с браузера как?
А что у нас со стандартами, до сих пор не признаете что odbc это стандарт?
ADO конечно не стандарт в чистом виде, по крайней мере я не слышал чтобы его приняли таковым, но я в своем посте объединил суть набор широкоподдерживаемых программных интерфейсов, для работы с которыми создана туча программных компонент - термином "стандарт". Надеюсь теперь вопрос понятен или будем продоолжать выискивать скрытый смысл в моих постах?
Это вы изволите искать скрытый смысл в моих постах и придираться к словам, пользуясь непонятной для меня терминологией. Мне не ведомо, что подразумевается под словом «стандарт». Мне известно что есть протокол, технология, мысль и драйвер для физического осуществления протокола в технологии, которая является мыслью. я консерваториев не заканчивал, поэтому оперирую словами известными мне, может быть не совсем понятными окружающим. Но, чёрт возьми, только не убеждайте меня, что ODBC - это какая-то технология передачи данных. ODBC - средство сообщения драйвера со своей базой данных, максимально усреднённое для различных баз.
Простым языком выражаясь, собрались мужики надосуге, пообсуждали и решили, что для работы с БД необходим такой-то набор функций, с такими-то названиями, параметрами, типами и т.д. Записали все эти функции на бумажке, коию нарекли спецификацией. И договорились, что теперь все будут разрабатывать свои программные интерфейсы по этой бамажке. И дабы ее как-то называть дали ей имя ODBC. Теперь когда компания разработчик субд хочет чтобы с ее продуктом работали посредством odbc, она берет эту бумажку, внимательно изучает и по ней пишет свой собственный драйвер, который с одной стороны, скрывает детали работы специфичные для бд, с другой - несет в массы вполне себе стандартный набор открытых функций.[QUOTE=mfender]ODBC - средство сообщения драйвера со своей базой данных[/quote]а что вот это такое - понятия не имею, и как оно физически выглядит - не представляю.
такая ж ерунда, как pdo. Вся "универсальность" ODBC актуальна только для таблиц, но никак не для SQL. SQL-код всё равно приходится писать индивидуально для потребностей той или иной СУБД. Сочиняя единообразие для всех двадцать лет назад, они не подумали, что разработчикам проще будет оперировать именно SQL'ем, а не общаться на низком уровне с базами. Вобщем, деньги на разработку ODBC были просто выкинуты на ветер.
На тему полезности одбц, вот допустим вы пишете клиента на builder c++, или на .net а бд у вас на мускуле. Сформировали вы на клиенте запрос, само собой в синтаксисе мускуля, но вам же надо как-то его отдать серверу и получить результаты... как будете действовать?
Я про то, что чтобы манипулирвоать данными, не нужно все разнообразие функций что специфично для каждой субд, нужен только механизм сообщения клиента и сервера, с этой ролью одбц прекрасно справляется.