Если у вас в окне с деревом выбран Local Server, как на рисунке 14.7, то в правой части в колонке Action вы видите список доступных команд. Выполнить любую команду можно, дважды щелкнув по ней мышью. Щелкните дважды по команде User Security или выполните команду меню Server -> User Security. Выйдет окно диалога безопасности:
Рис. 14.12. Окно диалога безопасности
Здесь вы можете изменить пароль у выбранного пользователя или зарегистрировать нового пользователя, нажав на кнопку New. Нажмите на эту кнопку, затем в строке User Name впишите
PUPKINа в строках Password (пароль) и Conform Password (подтверждение пароля) напишите
qwertyВ реальных серверах используйте более сложные пароли. Нажмите кнопку Apply (применить), которая стала доступна. Как только регистрация нового пользователя закончилась, нажмите кнопку Close. А в дереве серверов выделите раздел Users (пользователи):
Рис. 14.13. Вывод сведений о зарегистрированных пользователях
Как видно в правой части окна, мы получили нового пользователя PUPKIN.
Системные требования к ПК на платформе Windows следующие:
- Память минимум 16 Мб (для сервера рекомендуется 64 Мб).
- Процессор 486 DX2 66 MHz минимум (для сервера рекомендуется Pentium 100 MHz или выше).
- Примерно 30 Мб на диске, не считая самой базы данных
Основные технические характеристики самого сервера указаны в таблице 15.1:
Таблица 15.1. Технические характеристики InterBase | |
Характеристика | Значение |
Максимальный размер одной БД | Рекомендуется не более 10 ГБ |
Максимальное количество таблиц в одной БД | 65 536 |
Максимальное количество полей в таблице | 1 000 |
Максимальное количество записей в таблице | Не ограничено |
Максимальная длина записи | 64 Кб (кроме BLOB-полей) |
Максимальная длина поля | 32 Кб (кроме BLOB-полей) |
Максимальная длина BLOB-поля | Не ограничено |
Максимальное количество индексов | 65 536 |
Максимальное количество полей в индексе | |
Максимальный уровень вложенности SQL-запроса | |
Максимальный размер триггера или хранимой процедуры | 48 Кб |
Из приведенных выше характеристик видно, что InterBase способен удовлетворить требованиям практически любой базы данных. Ну а если этих характеристик все-таки будет недостаточно, на серверном ПК можно хранить множество баз данных, и сервер InterBase сможет обслуживать их!
|
Создание базы данных
Каждый зарегистрированный сервер, как локальный, так и удаленный, может содержать и обслуживать множество баз данных. База данных представляет собой единый файл, который имеет расширение *.gdb. Все таблицы, индексы, генераторы, триггеры и т.д. хранятся в этом файле, что облегчает процесс резервного копирования БД.
Перед созданием новой базы данных необходимо создать папку, в которой она будет храниться, утилита IBConsole не создает папки на диске, так что для этого придется использовать средства Windows или файловый менеджер. Создайте папку
C:\DataBasesДалее откройте утилиту IBConsole, подключитесь к локальному серверу (команда "Login"). Выберите команду "Database -> Create Database". Откроется окно такого вида:
Рис. 15.1. Создание новой базы данных
В выделенной строке Filename(s) следует вписать путь и имя создаваемого файла. Впишите
C:\DataBases\first.gdbВ строку Size (Pages) ничего вписывать не нужно.
Далее следует раздел Options, ниже следует описание пунктов этого раздела.
Размер страницы
Пункт Page Size указывает размер страницы в базе данных, по умолчанию он равен 4096 байт. InterBase позволяет использовать следующие размеры страниц (в байтах):
|
Дело в том, что вся база данных в InterBase разбивается на страницы фиксированного размера, а при работе с БД данные считываются постранично. Размер страницы указывается в байтах. Если выбрать слишком маленький размер страницы, то записи большой длины могут занимать более одной страницы, и серверу придется делать больше операций чтения, что плохо скажется на производительности сервера. С другой стороны, выбирать слишком большой размер страницы также не рекомендуется, так как в этом случае сервер при запросе клиента будет считывать много лишних данных, которые размещаются на той же странице. Локальный или удаленный сервера могут содержать множество баз данных, и у этих БД может быть установлен различный размер страниц. Существуют следующие рекомендации по выбору размера страниц:
- Для дисков с файловой системой NTFS можно оставить размер по умолчанию: 4096, или установить 8192.
- Для дисков с файловой системой FAT32 следует выбрать больший размер страницы: 8192.
Для примера мы оставим размер 4096.
Кодировка по умолчанию
InterBase имеет множество кодировок - наборов символов того или иного языка. Можно указывать нужную кодировку при создании каждого текстового поля отдельно, а можно указать ее в поле Default Character Set раздела Options при создании новой базы данных, или при регистрации существующей. В последнем случае вы определяете кодировку "по умолчанию" для всей базы данных: в дальнейшем при создании любого текстового поля эта кодировка будет использована автоматически. Впрочем, можно указать одну кодировку "по умолчанию", и другую - при создании текстового поля. В этом случае приоритет будет за кодировкой, указанной явно при создании текстового поля.
|
Если вы планируете использовать символы только русского и английского языков, при создании базы данных выбирайте кодировку WIN1251. Если же вы не знаете заранее, какую кодировку будете использовать, можете оставить NONE, то есть, неопределенная кодировка. Затем нужные кодировки можно прописывать вручную для каждого поля. В нашей базе данных мы выберем кодировку WIN1251.
Диалект
В поле SQL Dialect можно выбрать либо первый, либо третий диалект SQL. Второй диалект является промежуточным и в списке диалектов отсутствует.
Третий диалект отличается от первого более строгими правилами и расширенным набором типов данных, таких как типы для работы с большими целыми числами, типы Date и Time. Кроме того, в третьем диалекте различается регистр символов идентификатора, если последний заключен в двойные кавычки. То есть, 'MyTable' и 'MYTABLE' в обоих диалектах равны, а вот "MyTable" и "MYTABLE" в третьем диалекте различаются, а в первом - нет.
Рекомендации здесь следующие: для более корректной работы базы данных желательно выбрать третий диалект, но если вы собираетесь использовать совместимость со старыми механизмами доступа к данным, такими как BDE, то выбирать желательно первый диалект.
Выберите для нашей БД третий диалект. Оставьте галочку Register database (Регистрация базы данных), а в поле Alias впишите псевдоним нашей базы: first. Нажмите кнопку "OK", и в результате будет создан файл
C:\DataBases\first.gdbкоторый и является базой данных. Псевдоним базы данных появится в дереве серверов:
Рис. 15.2. Новая база данных в локальном сервере
Регистрация базы данных
Может случиться, что вам придется не создавать новую базу данных, а зарегистрировать уже имеющуюся, например, при переустановке InterBase. Другими словами, файл *.gdb с какой-то базой данных у вас уже есть, требуется лишь зарегистрировать его в локальном или в удаленном сервере. Для демонстрации этой возможности придется вначале убрать регистрацию нашей БД first.gdb.
Щелкните правой кнопкой мыши по псевдониму first в дереве серверов и выберите команду Disconnect для закрытия БД (с открытой БД нельзя снять регистрацию) и подтвердите закрытие БД. Значок псевдонима вместо зеленой галочки отметится красным крестиком, сообщая, что БД закрыта. Снова щелкните правой кнопкой по этому псевдониму и выберите команду Unregister(Удаление регистрации), подтвердите команду. После этого вы увидите, что локальный сервер больше не содержит никакой БД:
Рис. 15.3. Отсутствуют зарегистрированные базы данных
Между тем, файл first.gdb на диске остался. Теперь нам нужно снова зарегистрировать его. Делается это командой меню Database -> Register. Вы увидите окно регистрации БД:
Рис. 15.4. Окно регистрации БД
В разделе Database в первом поле File щелкните по кнопке справа и найдите наш файл, при этом имя файла, включая расширение, автоматически появится во втором поле Alias Name. Чтобы воссоздать предыдущие настройки, уберите точку и расширение из имени алиаса, оставив только имя FIRST.
Здесь же следует заметить, что если вы регистрируете базу данных на удаленном сервере, то в поле File вам потребуется указать реальный адрес и имя файла БД, который находится на удаленном компьютере. Предположим, что на ПК "А" установлен и запущен сервер InterBase, причем база данных там находится по адресу
C:\DATABASES\SomeBD.gdbВы регистрируете эту БД на компьютере пользователя "Б". Удаленный сервер, как говорилось в прошлой лекции, у вас уже зарегистрирован, там вы указывали IP-адрес компьютера "А". Теперь вам нужно зарегистрировать базу данных. Когда вы даете команду на регистрацию базы данных, в дереве серверов на IBConsole у вас должен быть выделен этот удаленный сервер. В поле File вы указываете строку
C:\DATABASES\SomeBD.gdbпричем делать это нужно вручную, так как кнопка справа от поля, открывающая диалог выбора файла, будет недоступна. Это и неудивительно: как правило, на серверах БД в целях безопасности не открывают прямой доступ к диску или папке с базой данных (в отличие от файл-серверных БД).
Указав адрес и имя файла, вы можете оставить полученный псевдоним базы данных без изменений, или же можете изменить его.
Далее переходим в раздел Login Information. Здесь первая строка должна содержать имя пользователя, а вторая - его пароль. Вписываем
SYSDBA
masterkey (если вы еще не меняли пароль администратора)
В нижнем поле Default Character Set выбираем кодировку WIN1251 и нажимаем кнопку "OK". Все, база данных вновь зарегистрирована и открыта.
Перенос базы данных
Под переносом базы данных здесь подразумевается преобразование БД из локальных технологий (dBase, Paradox, MS Access или из файлов MS Excel) в клиент-серверную БД InterBase. Вообще-то, во избежание ошибок, делать этого не рекомендуется: если вы сразу создадите БД в InterBase, то не получите возможных проблем несовпадения типов данных. Однако как быть, если БД уже существует и содержит не одну тысячу записей? Придется такую базу переносить. Делается это утилитой Datapump, которая входит в поставку Delphi, устанавливается вместе с ней и загружается из того же раздела меню, что и Delphi.
Для переноса необходимо, чтобы приемник данных имел зарегистрированный в системе псевдоним. Желательно, чтобы и источник данных имел псевдоним, но без этого можно обойтись. Мы будем переносить базу данных Menu,. Сама база данных должна находиться в папке
C:\Menuи иметь псевдоним MenuParadox. Если у вас этого нет, создайте и зарегистрируйте базу данных.
Далее нам нужно будет зарегистрировать псевдоним нашей базы данных First.gdb. Это можно сделать в утилите SQL Explorer, которая устанавливается вместе с Delphi и запускается из меню
Пуск -> Программы -> Borland Delphi 7 -> SQL Explorer
Рис. 15.5. Утилита SQL Explorer
Щелкните правой кнопкой по свободному месту окна с базами данных и выберите команду New. В поле Database Driver Name нужно будет выбрать "INTERBASE" и нажать кнопку "OK". Будет создан новый псевдоним с названием по умолчанию INTERBASE1, который мы изменим на FirstIB. В правом окне вы увидите параметры псевдонима, некоторые из них нужно будет изменить.
Вы помните, что в базе данных MenuParadox мы изменили кодировку на Pdox ANSI Cyrillic? Эту же кодировку нужно будет выбрать в строке LANGDRIVER.
Затем в строке SERVER NAME нужно будет выбрать файл с БД:C:\DATABASES\FIRST.GDBИ, наконец, в строке USER NAME нужно будет вписать логин администратора SYSDBA:
Рис. 15.6. Регистрация псевдонима
Далее щелкните правой кнопкой по окну и выберите команду Apply (Применить). Псевдоним будет создан. Можете закрывать SQL Explorer, он больше не нужен.
Теперь переходим к утилите DataPump. После запуска утилита выводит поочередно несколько окон. В первом окне вам предлагается выбрать источник данных по псевдониму (Select by alias name) или по месту размещения (Select by directory). Выберем последний вариант. Получим такое окно:
Рис. 15.7. Data Pump - утилита переноса БД
Найдем и выберем папку C:\Menu
и нажмем кнопку "Next". В следующем окне предлагается выбрать псевдоним приемника данных. Выберем FirstIB и нажмем "Next". Сервер InterBase защищает данные от несанкционированного доступа, поэтому вам придется ввести пароль (masterkey).
В следующем окне нужно выбрать таблицы, подлежащие переносу. Щелкнем по кнопке с двумя знаками ">>", чтобы перенести все таблицы:
Рис. 15.8. Выбор таблиц для переноса.
Снова нажмем на кнопку "Next". Следующее окно сообщает об изменениях, которые будут сделаны при переносе. Изменения могут касаться типов полей, индексов и ссылочной целостности данных:
Рис. 15.9. Изменения, которые произойдут при переносе
Осталось только нажать на кнопку "Upsize", чтобы завершить перенос. Последним выйдет окно с отчетом о переносе, закройте его кнопкой "Done". Данные перенесены. Убедиться в этом можно, открыв утилиту IBConsole. Войдите в локальный сервер, откройте БД FIRST и выделите пункт Tables:
Рис. 15.10. Перенесенные таблицы
Щелкните по любой из них правой кнопкой и выберите команду "Properties". Затем перейдите на вкладку "Data" и вы увидите данные, которые хранились в выбранной таблице. Разумеется, эти базы данных не идентичны, в InterBase, например, нет таких типов, как "Счетчик" и "Логический", есть и другие отличия. Базы данных MS Access переносятся примерно также, однако если у вас названия полей и таблиц были выполнены кириллицей, вы получите массу ошибок, ведь InterBase не допускает русских идентификаторов.