В лекции №2 вставляю модуль данных. При попытке заменить name на fDM выдает ошибку: "The project already contains a form or module named fDM!". Что делать? |
Введение в клиент-серверные БД. InterBase
Цель лекции
Предварительное знакомство с сервером InterBase.
Как мы уже знаем, базы данных могут быть не только локальными или файл-серверными, но и клиент-серверными. При использовании архитектуры клиент-сервер, сами базы данных находятся на ПК, который выполняет роль сервера. При этом сервером называют не только сам компьютер, но и программу, которая обеспечивает работу с базами данных: позволяет подключаться к ним зарегистрированным пользователям, следит за целостностью и непротиворечивостью данных, имеет удобные средства для архивации и восстановления баз данных. В архитектуре клиент-сервер вся работа с данными распределяется между сервером, поставляемым независимыми разработчиками, и клиентским приложением, которое разрабатывается программистом для того или иного предприятия. Взгляните на рисунок:
На рисунке вы можете видеть, что сервер InterBase (или аналогичный) располагается на отдельном компьютере, вместе с самими данными. При этом не используется никаких открытых ресурсов (дисков, папок или файлов), обмен данными происходит только по специально выделенному порту.
Давайте представим себе работу файл-серверной базы данных по сети. Компьютер, выполняющий роль сервера, не делает ничего, кроме обеспечения общего доступа к папке, в которой находится база данных. Пользовательский компьютер, обращаясь к какой-нибудь таблице из этой БД, вначале получает по сети всю таблицу, какой бы большой она ни была, и лишь затем получает возможность работать с загруженной копией. А если база данных имеет много таблиц? А если таблицы содержат сотни тысяч записей? А если клиентских компьютеров несколько десятков, а то и сотен? В этом случае сеть подвергается огромным перегрузкам, так как каждый клиент должен получить собственную копию таблицы, и не один раз за сеанс. Кроме того, работая с файл-серверной базой данных, клиентское приложение принимает на себя всю тяжесть обеспечения правильной работы с этой БД: данные должны быть полными и непротиворечивыми, удаляя какую то запись, следует удалять и все связанные с ней записи, другими словами, бизнес-правила осуществляет клиентский ПК. Все это приводит к тому, что не только сетевые каналы должны быть скоростными, но и компьютеры пользователей должны быть как можно мощнее. Следует помнить и об отсутствии безопасности файл-серверной архитектуры, ведь для обеспечения совместной работы нужно открыть общий доступ к данным, которые из-за этого могут быть кем-нибудь испорчены, намеренно или случайно.
Работа клиент-серверной БД выглядит совершенно иначе. Компьютер, "выделенный под сервер", не только выполняет все необходимые работы по обслуживанию БД, он еще и обрабатывает запросы от клиентских ПК, и пересылает им не всю таблицу или связанные таблицы, а лишь те сведения, которые были запрошены. В результате многократно снижается нагрузка на сеть, а безопасность работы увеличивается: в файл-серверных БД очень сложно реализовать непротиворечивость данных, если несколько клиентов обращаются к одной записи. Клиент-серверная архитектура же пользуется транзакциями - пакетом запросов, который последовательно производит изменения БД и либо принимается, если все изменения записи подтверждены, либо отвергается, если хоть один запрос завершился неуспешно. Мощным можно оставить лишь один компьютер - сервер. Пользовательские же ПК могут быть неприхотливыми и недорогими. Таким образом, происходит разделение всей работы с базой данных на две части: обслуживание БД, и обслуживание клиентов. Первая часть возлагается на SQL -сервер, вторая - на клиентскую программу.
На рынке имеется немало SQL -серверов самых разных разработчиков. Какой из них выбрать - дело вкуса, но клиентскую часть нам придется создавать самим. Клиентское приложение, работающее с серверным процессом, может выполнять различные действия с базой данных:
- Поиск в БД по заданному условию.
- Сравнение, сортировка и вывод данных в виде таблиц.
- Редактирование данных (изменение, добавление и удаление).
- Создание новой базы данных и ее структуры.
- Выполнение программного кода на стороне сервера.
- Обмен сообщениями с другими клиентами, которые в данный момент также подключены к серверу.
Программист, используя архитектуру клиент-сервер, должен быть также и неплохим администратором БД, то есть, он должен уметь устанавливать серверное программное обеспечение и обслуживать саму базу данных: делать резервные копии, удалять накопившийся "мусор", регистрировать новых пользователей и т.п.
InterBase
InterBase представляет собой полнофункциональный SQL -сервер. Сервер баз данных - это программа или служба, которая выполняется на сетевом компьютере (сервере), где физически расположена сама база данных. На этом курсе мы изучим установку сервера InterBase версии 6.5, который входит в поставку Delphi 7. InterBase - очень надежный сервер БД, при этом он не требователен к ресурсам ПК, благодаря чему является одним из самых популярных SQL -серверов на рынке программного обеспечения. Благодаря тому, что InterBase обеспечивает автоматическое восстановление и готовность к работе после сбоев системы (пользователи часто даже не замечают, что у сервера были проблемы), он используется во многих военных проектах США. Во многом из-за этого InterBase так поздно появился на нашем рынке.
InterBase выгодно отличается от многих других серверов следующими качествами:
- Высокая производительность и надежность при минимальных требованиях к ПК.
- Поддержка стандарта SQL -92, что позволяет обеспечить переносимость программ.
- Относительно низкая стоимость продукта (с Delphi поставляется сервер InterBase с бесплатной лицензией на 5 клиентов, этого достаточно для разработки БД и приложения, но обычно недостаточно для развертывания сервера в организации).
- Простота управления и поддержки сервера. InterBase имеет простой и удобный механизм администрирования БД, не требующий специальных знаний.
В 1985 году сервер носил название GDS ( Groton Database System ), но вскоре был переименован в InterBase. В 1991 году сервер был перекуплен фирмой Aston Tate, но уже в 1992 году вместе с фирмой сервер перешел во владение корпорацией Borland. Начиная со второй версии Delphi, дистрибутив включает в себя бесплатную локальную версию сервера InterBase. Поскольку InterBase является "родным" для Delphi сервером БД и не требует для своей работы установки дополнительных драйверов, а также, принимая во внимание все вышесказанное, мы остановимся именно на нем. Средств самой Delphi вполне достаточно для программирования приложений, работающих с InterBase, однако имеются разработки и сторонних производителей - компоненты, программы для облегчения администрирования БД и т.д.
Предполагается, что при установке Delphi вы также установили и InterBase Server. Впрочем, если это не так, то вставьте дистрибутивный диск и установите InterBase 6.5 Server:
Если же вы не знаете, установлен ли у вас уже InterBase, достаточно посмотреть в список меню "Программы", где он должен присутствовать отдельной папкой. Тут следует сделать одно замечание: если вы используете ОС Windows NT, 2000 или XP, то InterBase может запускаться как служба (по умолчанию) или как приложение. В случае Windows 95, 98 или ME InterBase запускается только как приложение. Вне зависимости от того, какая ОС у вас установлена, если сервер запущен как приложение, в правом нижнем углу (в трее) вы увидите значок InterBase Guardian:
InterBase Guardian - утилита, которая устанавливается вместе с сервером. Эта утилита осуществляет начальный запуск сервера, и его перезапуск, если по каким то причинам сервер "рухнул".
Если же у вас установлена Windows NT, 2000 или XP, то загрузите Панель управления (Пуск -> Настройки -> Панель управления). Среди прочих имеющихся служб вы увидите и InterBase Manager :
Щелкните дважды по этой службе, чтобы открыть ее. Вы увидите следующее окно:
В группе Startup Mode этого окна вы можете выбрать одну из радиокнопок: Automatic (Сервер запускается автоматически) и Manual (Сервер запускается вручную). Если вы установили InterBase на ПК, который действительно будет сервером, то лучше оставить включенной кнопку Automatic. Но если же это ваш рабочий ПК, на котором вы лишь разрабатываете приложение, используя локальный сервер, то запускать его лучше вручную. Дело в том, что запущенный сервер пусть немного, но отнимает оперативную память. Кроме того, сервер постоянно "прослушивает" свой порт, по которому к нему может обращаться клиентское приложение, что также незначительно снижает производительность ПК. Данные между компьютерами передаются "пакетами", которые в служебной части содержат и номер порта. Порт - это целое число, которое используется при приеме и передаче данных для идентификации процесса (программы), которая этими данными обменивается. Например, протокол HTTP использует порт 80. Сервер InterBase использует порт 3050. (Все установленные порты описаны в файле SERVICES, расположенном в одном из папок Windows. Для Windows XP это адрес C:\WINDOWS\SYSTEM32\DRIVERS\ETC).
Ниже расположен раздел Root Directory (корневая папка сервера). В этом разделе указан адрес, по которому была произведена установка InterBase.
Еще ниже расположен раздел Status. Если сервер находится в рабочем состоянии, то зеленым цветом выводится Running (выполняется), а кнопка справа имеет название Stop (остановить). Если же сервер не работает, то красным цветом выводится надпись Stopped (остановлено), а кнопка справа содержит надпись Start (запустить). Вы можете безбоязненно попробовать нажимать на эту кнопку, запуская или останавливая сервер. "Галочка" Run the InterBase server as a service on Windows NT (Загружать сервер InterBase как службу Windows NT ) позволяет вам указать способ загрузки сервера: как службу Windows (при отмеченном состоянии) или как простое приложение. Рекомендуется запускать сервер, как службу.
В самом низу расположен раздел Properties (Свойства), где вы можете посмотреть или изменить текущие свойства сервера или служебной программы InterBase Guardian .