Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория СУБД.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
107.03 Кб
Скачать

Форточки и odbc

В современных операционных системах от Microsoft компонент ODBC-диспетчера и некоторый набор

ODBC-драйверов уже входит в постав­ку дистрибутива. Доступ к диспетчеру осуществляется через панель управ­ления посредством элемента "Источ­ники данных (ODBC)" (папка "Админи­стрирование"). При установке все ODBC-драйверы прописываются в системе, их список можно посмотреть во вкладке диспетчера "Драйверы". На базе установленных драйверов можно заводить DSN'ы - описатели соединения с базой данных, указыва­ющие, помимо драйвера, специфич­ные для базы параметры. Именно эти­ми DSN'ами и будет потом опериро­вать конечное приложение. Под акка-унтом администратора можно заво­дить системные DSN'ы, которые будут доступны всем пользователям. Неп­ривилегированный пользователь мо­жет заводить пользовательские DSN'ы, доступные только ему. Осталь­ные вкладки предназначены для от­ладочной трассировки, оптимизации подключений, совместного использо­вания пользовательских DSN'ов и других специфических целей.

В качестве примера мы быстро и непринужденно настроим доступ к ба­зам MySQL и PostgreSQL. Первым де­лом оправляемся на сайты произво дителей и скачиваем оттуда ODBC-драйверы вида myodbc-xxx.zip и psqlodbc-xxx.zip, после чего устанав­ливаем их с помощью setup'а и msi-сценария соответственно. Производи­тели оправдали свои заявления о поддержке ODBC и действительно предоставили нам работающие драй­веры. Запускаем диспетчер и убежда­емся, что наши драйверы появились в соответствующей вкладке. Теперь на вкладке "Системный/пользовательс­кий DSN" жмем "Добавить", выбира­ем наш свежеустановленный MySQL/PostgreSQL-драйвер и заявля­ем, что "Готово". Теперь осталось настроить параметры соединения. Для обеих баз достаточно указать символьное имя DSN'а (которым бу­дут оперировать приложения), сете­вой адрес для соединения (который вполне может быть и localhost'ом) и конкретное имя базы данных (одна СУРБД может обслуживать несколь­ко баз одновременно). Также можно указать пользователя "по умолча­нию", его пароль и порт, на котором висит база, если он отличается от стандартного. Вот и все. Теперь поль зовательские приложения могут по­лучать доступ к этим базам.

Odbc для пингвина

В GNU/Linux нет встроенного ODBC-диспетчера, зато внешних - нес­колько. Немного опережая других, ли­дирует проект UNIX-ODBC (понятно, почему название именно такое). Схе­ма его функционирования во многом похожа на схему его аналога из Windows. Настраивать его можно как с помощью различных графических frontend’ов, так и руками - через кон­фигурационные файлы, формат кото­рых прост и понятен. С frontend’ами, я думаю, ты разберешься сам, а я пока­жу, как настраивать собственноручно. Настраивать будем все тот же доступ к базам MySQL и PostgreSQL. Для на­чала скачаем/соберем/установим из пакета ODBC-драйверы, представлен­ные динамическими библиотеками lib-myodbc.so и psqlodbc.so, размещение которых произвольно и особой роли не играет. Теперь пропишем их в кон­фигурации ODBC-диспетчера, обычно это файл /etc/odbcinst.ini :

]

Description = ODBC for MySQL Driver = /usr/lib/libmyodbc.so FileUsage = 1

[PostgreSQL]

Description = ODBC for PostgreSQL

Driver = /usr/lib/psqlodbc.so

FileUsage = 1

Теперь осталось создать DSN'ы на базе прописанных

драйверов. DSN'ы обычно хранятся в файле

/etc/odbc.ini :

[MAWD]

Driver = MySQL

SERVER = my.host.ru

DATABASE = newantispam

UID =

PWD =

PORT =

[elfbilling] Driver = PostgreSQL Database = elfbilling Servername = 172.16.1.1 Description = ELF Billing UID = PWD = Port = 5432

И вот уже соединения настроены. Проверить их можно тут же с по­мощью маленького SQL/ODBC-клиен-та, который обычно входит в пакет UNIX-ODBC и называется isql. Формат его вызова таков:

isql isql elfbilling vasya lovesexgod

Если выскочило приглашение ко вводу SQL-запроса, значит, соедине­ние прошло удачно.

Как видишь, ничего сложного в настройке UNIX-ODBC нет, если пони­мать, что делаешь (а без этого я сове­тую вообще ничего не делать).

ЧТО ДАЛЬШЕ?

 

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

КАК СОЗДАТЬ И ИСПОЛЬЗОВАТЬ БАЗУ ДАННЫХ

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

БАЗА ДАННЫХ: ЗАЧЕМ И ПОЧЕМУ?

Многие прекрасно знают, что "эта груда железа" предназначена для автоматичес­кой обработки данных. Причем неважно, для каких целей ты используешь ее: обща­ешься с кем-нибудь, играешь, слушаешь музыку, смотришь видео или решаешь ма­тематические задачи. В любом случае компьютер использует данные определен­ного типа, переводит их на свой машинный язык (на "нули" и "единицы"), а потом обра­батывает в своей "оперативке". Какая-то часть данных "сбрасывается" на винчестер и сохраняется в виде файлов. Во всех пере­численных случаях пользователя мало вол­нует порядок расположения данных в этих файлах. Другое дело, когда ты попытаешь­ся создать компьютерную информацион­ную систему. Например, персональный те­лефонный справочник или статистику посе­щаемости форума в твоей сети.

В первом случае можно, конечно, ограни­читься обыкновенными записями в тексто­вом файле (например, в документе Word), тем более что туда легко можно заносить разнообразную "списочную" информацию: сведения о своих друзьях-абонентах, их ад­ресах проживания и т.п. Способ представле­ния и размещения информации в этом слу­чае ты придумаешь сам. К примеру, построч­но запишешь: "Иванов, Иван, Иванович, 223-5485, ул. Декабристов, 18/1-64", "Сергей Сер­геевич Сидоров, 375-6986, пр. Ленина, д.18, кв. 49" и т.д. Что же плохого в такой органи­зации данных?

Во-первых, тебе, вероятно, потребуется упорядочивать информацию по различным признакам (например, по фамилиям или по адресам), а во-вторых, быстро извлекать вы­борки с произвольным сочетанием призна­ков (например, список абонентов, имеющих домашние телефоны в определенном доме).

Однако описанная организация данных не позволит сделать ни первое, ни второе. Де­ло в том, что упорядочить информацию в текстовом файле достаточно сложно. Гораз­до проще сделать это без всякого компьюте­ра, имея сведения, записанные на картонных карточках :). Машина не сможет даже выб­рать правильно номера домов и квартир, по­тому что они могут быть записаны по-разно­му. Это для тебя записи "18/1-64" и "д. 18, корп. 1, кв. 64" – одно и то же, а для компью­тера это совершенно разные вещи. А если взять второй упомянутый пример по учету посещаемости форума, то здесь Word’у во­обще "не объяснить", где IP-адрес машины, а где дата подключения этой машины, которая нужна для подсчета посещений за опреде­ленный период.

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