русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ЛОКАЛЬНАЯ БАЗА


Дата добавления: 2015-07-09; просмотров: 4825; Нарушение авторских прав


Самая простая база данных – ло­кальная. В этом случае база и прог­рамма расположены на одном компь­ютере. Соединение с файлом базы данных происходит через специаль­ный драйвер или напрямую. Драйвер умеет обрабатывать только простые запросы SQL-стандарта 1992 года и предоставлять данные программе или сохранять изменения в таблице. Все остальные манипуляции могут выпол­няться только программой. Таким об­разом, логика, данные и приложение работают как единое целое и не могут быть разделены.

Яркими и наиболее распространен­ными представителями такого рода баз являются Dbase (файлы с расши­рением .dbf), Paradox (расширение .db) и Access (расширение .mdb). Форматы Dbase и Paradox - это даже не базы данных, а таблицы, потому что в одном файле может храниться только одна таблица данных. Индек­сы, ускоряющие поиск и осуществля­ющие сортировку, находятся в от­дельных файлах. Таким образом, од­на база данных может состоять из множества файлов, и это иногда при­водит к определенным проблемам при поставке приложения конечному пользователю.

Файлы Access являются гибридом таблиц и баз данных. Здесь уже все таблицы и индексы хранятся в одном файле, что намного удобнее в управ­лении. К тому же среда управления базами Access наиболее удобна и дос­тупна в любом офисном пакете от MS. В остальном MS Access обладает теми же недостатками, что и остальные представители этого сословия.

Самый главный недостаток локаль­ных баз данных, как говорит юморист М. Задорнов, – "они тупые". Да-да. Качество и скорость доступа напря­мую зависит от драйвера. В больши­нстве из них не было оптимизаторов SQL-запросов и какого-либо кеширо-вания. Возможности железа исполь­зовались минимально, поэтому на больших базах запросы выполняют­ся крайне медленно.

Таблицы Dbase и Paradox были раз­работаны слишком давно, и их самое слабое звено - это индексы. В этих таблицах нет транзакций и соответ­ствующего журнала. После добавле­ния новой записи, если драйвер не ус­пел обработать изменения в индексах и произошла ошибка (пропал свет или произошел зависон), то индекс рушится и для восстановления прихо­дится использовать специальные ути­литы или переформировывать индек­сы. В базах Access у меня таких проб­лем не было, потому что в них индек­сы защищены лучше.



Что такое разрушенный индекс? Ин­декс – это колонка, в которой все зна­чения строк обязательно уникальны. Чаще всего для этих целей использу­ется простой счетчик. Допустим, пользователь добавил запись и счет­чик присвоил ей значение 195, но са­мо значение счетчика не изменилось. При добавлении следующей записи счетчик снова пытается втулить нам число 195, но так как такая запись уже есть, происходит ошибка. Это и есть нарушение индекса, и лечить его достаточно просто (но нудно) – пере­формировать индекс.


СЕТЕВАЯ БАЗА ДАННЫХ

Почему локальные базы называ­ют локальными? Да потому что с дан­ными работает только один пользова­тель и потому что база данных и прог­рамма находятся на одном компьюте­ре. В случае с небольшими проектами это нормально, но для больших объе­мов данных один оператор не спра­вится с задачей и потребуется, чтобы несколько человек могли работать с общими данными.

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

Посмотрим, как происходит обраще­ние к базе данных. Программа и драй­вер находятся на клиенте, а данные находятся на сервере или просто на удаленном компьютере. Как програм­ма получает данные? Клиент переда­ет драйверу SQL-запрос, который дол­жен быть выполнен, но данные-то на­ходятся удаленно! Чтобы отработать запрос, вся нужная таблица (в случае с Access - вся база данных, потому что все в одном файле) выкачивается на компьютер клиента, где драйвер обра­батывает данные.

Я бы побил того, кто придумал такую технологию, потому что это самое нас­тоящее издевательство над системой. Представляешь, что будет, если надо выполнить запрос на базе данных в 1 Гб с телефонным соединением в 34 Кб/с? Это то же самое, что заставить

добывать нефть через трубоч­ку для молочных коктейлей.

А ведь некоторые российские ком­пании (не будет показывать паль­цем) предоставляли нам сетевые ре­шения на основе dbf-файлов в об­ласти бухгалтерии, делопроизвод­ства и экономики. Это уже издева­тельство. Меня несколько раз проси­ли восстановить умершие базы скла­дской программы, после того как встроенные в программу средства не справлялись с задачей.

Но страшнее всего начали вести себя индексы. У таблиц Paradox, если они на­ходились на расшаренном диске Win95, мне приходилось ремонтировать индек­сы как минимум раз в неделю. Когда я убрал файлы базы данных на сетевой диск сервера NetWare 3.11 (это был где-то 1998 год), проблемы с нарушением индексации сразу исчезли (наверное, потому что это действительно сервер, а не корявый Windows 9x).

При сетевом соединении многополь-зование получалось неполное. Изме­нения одного пользователя не были видны другим, приходилось переза­пускать программу или пересоеди­няться, потому что именно в момент коннекта программа сосет все данные

 


КЛИЕНТ-СЕРВЕР

 

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

В технологии клиент-сервер драй­вер уже изменил свое назначение, и теперь он уже должен только знать, как подключится к серверу и пере­дать ему запрос. Остальное перек­ладывается на плечи сервера. Такая технология намного сокращает тра­фик, особенно при хорошем прог­раммировании. Допустим, пользова­телю нужно увидеть все данные, в которых имя определенной колонки содержит слова на букву "А". Клиен ту достаточно направить серверу всего лишь такой текст:

SELECT *

FROM Имя таблицы

WHERE Колонка LIKE ‘А%’

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

Сервер базы данных, получив зап­рос, разбирает его и придумывает для себя оптимальный план выполнения, в данном случае - поиска нужных строк.

Получив нужные данные, сервер возвращает только их и ничего больше. Таким образом, клиент в любой момент может запросить у сервера нужные данные и не будет необходимости гонять по сети всю базу данных. При хорошо построен­ном приложении и оптимальных запросах клиент сможет работать с базой данных любого размера даже через модем в 56 Кбит/с. Неплохо? Главное - запрашивать только то, что нужно, и маленькими кусками.



<== предыдущая лекция | следующая лекция ==>
ЧТО ТАКОЕ СУБД И С ЧЕМ ЕЕ ЕДЯТ | ОСОБЕННОСТИ КЛИЕНТ-СЕРВЕРА


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.405 сек.