Назад в раздел
Наиболее часто задаваемые вопросы по СУБД Borland InterBase.
eManual.ru - электронная документация
Наиболее часто задаваемые вопросы по СУБД Borland InterBase.
FAQ InterBase 1.03 14.04.1995
-----------------------------------------------------------
материал составлен в демо-центре
Borland InterBase
тел.095-535-0319
факс:095-535-5349
E-mail: interbas@bor.compnet.ru
- Что такое Borland InterBase?
InterBase - это система управления реляционными базами данных, поставляемая
корпорацией BORLAND для построения приложений с архитектурой клиент-сервер
произвольного масштаба: от сетевой среды небольшой рабочей группы с сервером
под управлением Novell NetWare или Windows NT на базе IBM PC до информационных систем
крупного предприятия на базе серверов IBM, Hewlett-Packard, SUN и др.
- Что такое архитектура клиент-сервер? Что такое архитектура "равный к
равному"? К какой архитектуре принадлежит IB?
И к той и к другой. Два (или больше) сервера БД InterBase на разных
машинах общаются друг с другом как "равный с равным", а когда
пользователь РС под Windows 3.1 запрашивает с сервера данные -
это чистый "клиент-сервер".
- У меня уже работает система на Paradox'е, тяжело ли мне перейти на IB?
Paradox for Windows 5.0 может служить клиентом для SQL-сервера -
Borland Database Engine встроен в него. Для работы с IB надо
установить соединение с IB при помощи SQL Link'а, и перенести данные в
IB.
- У меня уже работает система на фоксе, клиппере, дибэйзе, кларионе -
насколько сложно и долго будет переписать ее на IB?
Перенести собственно данные - это не проблема, а вот перенести
логику программы - это посложнее. В частности, с dBase и Clipper
- попроще. Технология примерно такая: в качестве клиентского
приложения запускаем dBase for Windows 5.0, этот продукт
обеспечивает совместимость со старыми версиями dBase, а программы
Clipper желательно перетранслировать при помощи препроцессора.
Препроцессор разработан в демо-центре Borland InterBase и предостав-
ляется бесплатно покупателям InterBase.
Что касается остальных систем, то можно утверждать, что
процесс переноса не займет много времени - по готовой структуре
программы разработка клиентской части на Delphi - это
скоростной процесс, а данные переносятся без каких-либо
дополнительных ухищрений.
Что касается систем, написанных на Clipper, то разработана методика
перенесения программ с Clipper в архитектуру клиент-сервер. Делается
это так:
1. При помощи препроцессора программа на Clipper транслируется в программу
на dBase for Windows 5.0.
2. Данные из таблиц переносятся в InterBase (это делается специальной
программой). На этом этапе логика программы не изменилась, система по-
прежнему работает, но данные уже хранятся в InterBase.
3. На этом этапе производится дополнительное программирование в InterBase.
То, что раньше обеспечивала логика работы программы, теперь должен
обеспечить SQL-сервер. В частности, ссылочную целостность, ограничения
по данным и пр.
4. Преобразование программы (клиентского приложения) на dBase. На этом
этапе из исходного текста приложения убираются куски, обеспечивавшие
целостность данных в файл-серверной архитектуре, поскольку это уже выполняет
SQL-сервер. Имеются в виду куски кода, обеспечивающие блокировки и пр.
5. Эти этапы необязательны, но возможны. Для совершенствования программы
используется объектная надстройка dBase и механизм two-way-tools -
визуального проектирования.
6. Теперь для написания новых клиентских мест в полученной таким
образом информационной системе можно использовать любые другие инструменты
(в частности, Delphi, Paradox, C++ with BDE). Это при существующих
уже клиентских приложениях, работающих в dBase 5.0 for Windows.
- Существуют ли средства разработки клиентской части для клиентов под
UNIX?
ADS/InterBase фирмы Convergent Solutions, Contessa
фирмы Contexture Systems, Uniface фирмы Uniface, JAM
фирмы JYACC, HarborView фирмы Harbor Software и
другие.
Можно использовать подход "Unix-терминал XWindows - приложения"
На самом деле, существует еще способ написания приложений. И в
ряде ситуаций он может оказаться единственным. Рассмотрим
такой пример, существует пакет ценных бумаг, которые свободно
распространяются, существуют пункты распространения,
разбросанные по городу. Нет никаких специальных средств
коммуникации, имеется ввиду подведенного Ethernet, выделенных
скоростных линий, спутниковой связи и т.п., есть только
телефонная линия. Требуется, с минимальными накладными
расходами, для ведения контроля и учета создать базу данных
ценных бумаг, оперативно иметь доступ, как для пополнения, так и
для создание всевозможных сводок и документов. Построение
распределенной базы данных (в том числе и метод репликации)
ввиду непредсказуемого траффика и качества коммуникаций
оказывается невозможным. Использование X - терминалов и
приложений в архитектуре файл-север тоже отпадает, по тем же
причинам. Но эту задачу решить все же можно, и это является
ответом на следующий вопрос:
- Существуют ли средства разработки клиентской части для клиентов под
Windows?
В качестве front-end инструментов (инструментов для разработки клиентских
приложений) можно использовать InterBase API, Borland DataBase Engine,
Paradox for Windows 5.0, dBase for Windows 5.0, Delphi SQL Edition.
- Существуют ли средства доступа к информации в IB через электронную почту?
Существуют, для этого надо, к примеру, сделать следующее:
o На сервере базы данных:
1. Подключить к серверу БД модем (или модемный пул, или
использовать возможности специальных
коммуникационных компаний, например RELCOM).
2. На сервере установить InterBase.
3. Построить на сервере WWW сервер.
4. Использовать механизм CGI WWW сервера для
обработки удаленных запросов к базе данных InterBase.
o На клиентской машине, расположенной в бюро
распространения бумаг:
1. Подключить PC через модем к телефонной линии.
2. Использовать Mosaic для связи с WWW сервером.
3. Использовать так называемые формы с любым
методом передачи параметров (POST или GET), для
получения таблиц запросов с удобным интерфейсом.
В результате, функции, выполняемые отдельными звеньями
системы, следующие:
o Сервер занимается поддержкой WWW, принимает html
запрос от клиентской машины, запускает прикладную
программу, которая используя вызовы конкретной СУБД
(для InterBase это SQL и GDML) исполняет запрос, и
формирует отклик или следующую форму в формате html для
клиентской Mosaic.
o Клиентская машина поддерживает работу модема, оператор,
средствами Mosaic, формирует запрос, заполняет различные
формы, готовит документы к печати.
В связи с ничтожностью траффика даже плохие коммуникации
существенного влияния на работу не оказывают.
По затратам: приобретается техника и СУБД, оплачивается
траффик коммуникационной компании (если Вы работаете через
уже существующую сеть). Программные продукты WWW сервер
(httpd) и Mosaic как компоненты Internet свободны к
распространению и в затраты не вошли. Более того, в глобальной
сети (например, Internet), где нет возможности снобдить каждого
клиента специальным приложением, доступ к удаленной базе
через механизм CGI WWW сервера является единственным.
Система, идеи которой описаны выше, реально работает в Москве
на оборудовании фирмы DTK (Сервер - Sparc Station 1+, клиентские
машины - IBM совместимые FEAT-35 486 Green PC System), модемы
ZyXEL и СУБД InterBase компании Borland.
- Как понимать утверждение, что IB - распределенная БД?
B InterBase реализован механизм двухфазной фиксации транзакций
(two-phase commit) позволяющий в контексте одной транзакции
манипулировать данными из разных баз данных, расположенных
на различных серверах. Причем группа изменений, производимых
в этих базах завершается, либо откатывается, как единое целое;
реализация этой технологии не требует дополнительного программирования.
- Правда ли, что IB - объектно-ориентированная БД?
Нет! IB - это реляционная база данных. Однако при разработке
клиентских приложений вы можете пользоваться объектно-ориентированными
инструментами, в частности, Paradox 5.0, dBase 5.0, C++, Delphi.
- Что такое BLOB?
BLOb - Binary Large Object - большой двоичный объект. Это тип
данных в InterBase, при помощи которого в базе данных можно
хранить изображения, звук, документы и т.п.
- Что такое "механизм множественных поколений записи"?
У каждой записи в БД существует метка, в которую заносится информация
о дате, времени создания и изменения записи, а также идентификаторы
транзакций, создавшей и изменившей (удалившей) запись.
При изменении записи (или ее удалении) запись с диска физически не
удаляется, а помечается как удаленная (в метку заносится дата и время
изменения, а также идентификатор транзакции, изменившей запись), в БД
заносится запись (delta record), содержащая изменения в исходной
(ancestor) записи. Транзакция, читающая данные в базе в режиме
snapshot, проверяет метки у каждой записи и выбирает вариант, который
был актуален в момент старта транзакции. Благодаря этому во-первых
после краха системы ее легко восстановить, определив по журналу,
какие транзакции не бали завершены к моменту краха системы и
соответственно ликвидировать изменения и записи, вставленные этими
незавершенными транзакциями. Во-вторых отпадает необходимость в
блокировках по чтению, поскольку даже если запись удалена в процессе
чтения другим пользователем, она все равно видна транзакции до самого
ее завершения.
- Что такое GDML?
GDML - General Data Manipulation Language - язык запросов и
манипуляции данными на сервере БД. Был разработан изначально
для InterBase. В версии 3.3 в реализации SQL не было возможности
управлять транзакциями, работать с BLOb'ами и многомерными массивами.
Эти операции осущствлялись с помощью GDML. В версии 4.0 использован
стандарт SQL-92 с расширениями для работы с BLOb'ами и многомерными
массивами, соответсвующими драфту SQL III. От GDML отказались, хотя
определения метаданных, написанные на GDML для 3.3 можно использовать
и в 4.0 (GDEF сохранился, хотя в документации не описан). В версии
InterBase 4.0 используется только SQL.
- Что такое IDAPI?
IDAPI (Intergrated Database API) - это новый стандарт универсального
доступа к базам данных различных форматов. Интерфейс IDAPI включает
в себя специальный модуль Idaptor для совместимости со стандартом ODBC.
Таким образом ODBC может рассматриваться как подмножество IDAPI.
В настоящий момент Borland реализовал этот
стандарт в виде BDE (Borland Database Engine)- библиотеки прозрачного
доступа к данным в формате dBase, Paradox, ASCII, InterBase,
Informix, Oracle, Sybase, MS SQL.
- Что такое "закладка"?
Закладка - это способ сохранить текущее положение курсора, с тем чтобы
потом к нему вернутся. Технология закладок реализована в BDE 2.0.
- Что такое Shared Cache?
Разделяемая область памяти, где хранятся данные, часто запрашиваемые
различными пользователями. Существенно уменьшает время реакции на
запрос в ситуации, когда большое количество пользователей работает
с одними и теми же данными за счет уменьшения времени на подкачку
страниц с данными и индексами с диска.
- Существует ли отличие в реализации блокировок для IB по сравнению с
другими СУБД?
Да. Принципиально нет блокировок по чтению. Смотри вопрос по поводу
множественного поколения записей.
- Мои коллеги в соседней комнате работают с Oracle, а я хочу все-
таки попробовать поработать на InterBase. В какой мере я могу иметь доступ
к данным в их системе?
Да. Приложение, использующее ядро IDAPI и SQL Links для доступа
к данным на SQL серверах могут одновременно работать с данными
InterBase, Sybase, Oracle, Informix. Кроме того через ODBC Level 2
драйвер можно работать с любыми другими СУБД и серверами БД.
- Какое максимальное количество пользователей может быть у системы на базе
IB?
Это зависит от мощности вычислительной платформы сервера. Понятно,
что разное количество пользователей реально может одновременно ра-
ботать с InterBase на сервере с 486DX33 процессором, или многопро-
цессорной станцией с IRIX, AIX, openVMS, Solaris,HP/UX и др.
Кроме того, следует учитывать возможности InterBase для организации
распределенной базы данных - увеличиваем количество серверов БД -
увеличивается количество одновременно подсоединенных клиентов.
- Можно ли работать в IB с многомерными массивами - ведь это не соответст-
вует реляционной модели данных, имеющей дело только с двумерными массивами?
Да, можно! Максимальная размерность массива - 16.
- Что такое триггеры?
Процедуры на языке SQL, хранимые в БД, автоматически выполняющиеся
при наступлении события, для которого они были определены, в контексте
транзакции, вызвавшей это событие (вставление, изменение, удаление
строки таблицы). Если транзакция, в контексте которой произошло
событие, вызвавшее срабатывание триггера, откатывается, то изменения,
в БД, произведенные триггером также откатываются.
- Что такое "обработка событий"?
Проектировщик БД может определить в БД триггеры (см выше), которые
при наступлении неких событий будут рассылать именованные сообщения
(Event Alerter) всем клиентам, заинтересованным в этом событии.
Клиентское приложение после открытия базы регистрируется как
интересующееся определенными сообщениями и при наступлении событий
приложению передается номер сообщения. Дальнейшая обработка
полностью на совести разработчика приложения.
- Что такое "определяемые пользователем функции"?
Пользователь может написать на С, Pascal, Fortran ... необходимые
ему функции, откомпилировать их на компъютере, на котором
установлен InterBase, и собрать их в библиотеку объектных модулей.
Затем в InterBase определить имя функции, входные и выходные параметры,
имя библиотеки и точку входа. После этого эти функции можно
использовать в запросах наравне со стандартными ф-циями.
- Cколько лет существует InterBase?
Изначально InterBase был разработан иннициативной группой разработчиков
DEC в начале 80-х, используя опыт и учитывая ошибки разработчиков
серверов реляционных баз данных предыдущего поколения. Уникальные
характеристики InterBase позволили продукту успешно развиваться
в составе независимой компании InterBase Software, впоследствии
объединившейся с Ashton-Tate. Borland приобрел права на InterBase в
результате объединения с Ashton-Tate.
- Где в России установлен IB?
В России InterBase активно поддерживается с 1993 года. Широкое
применение InterBase в правительственных структурах и военно-
промышленном комплексе США было преградой на пути продвижения InterBase
в Россию. Среди целого ряда крупных реализаций систем на InterBase в
России можно выделить Межбанковскую Валютныю Биржу ММВБ, Центр
Управления Полетами ЦУП, внешнеторговую корпорацию Авиаэкспорт и др.
- Что нового появилось в IB 4.0 по сравнению с IB 3.3?
- Остался только SQL(см вопрос по GDML);
- Появились нормальные Stored Procedures;
- Возможность определять права доступа для Stored Procedures;
- Появилась обработка исключительных ситуаций (Exeptions,
Whenever SQLError);
- Появилась явные ограничения целостности, значения полей
по-умолчанию, ссылочная целостность (check constraints, default,
foreign key);
- Работа через протокол IPX (InterBase 4.0 for Nowell NetWare 3.xx)
или через протокол NetBEUI (InterBase 4.0 for Windows NT);
- 16-разрядная локальная версия InterBase (без remote interface)
для Windows 3.1 для оффлайновой отладки приложений клиент-сервер.
- InterBase Windows 3.1 client работающий на клиентской машине под
Windos 3.xx и состоящий из Server Manager, WIndows Interactive SQL,
ODBC драйвера к InterBase и библиотеки API вызовов.
- Возможность оптимизации запросов и индексов (query plan, statistic);
- C чего начать при создании системы на IB?
С проектирования структуры данных и нормализации отношений (таблиц).
- Существует ли в InterBase возможность контекстного поиска по тексту.
В качестве встроенной функции - нет. Однако, такой механизм возможен
в качестве UDF -определяемой пользователем функции. В частности,
исходные тексты соответствующей UDF можно получить в демо-центре
Borland Borland InterBase, если Вы являетесь зарегистрированным
пользователем InterBase.
- Как насчет использования кириллицы в IB?
Нормально. InterBase 4.0 поддерживает Char Set Win1251 для
Windows кодировки кириллицы и при индексации и сортировке
использует соответствующий collation sequence.
- А если машина дала сбой, насколько сложно будет запустить IB cнова? Суще-
ствуют ли специальные средства восстановления данных на этот случай?
Если диск (файловая система) отремонтируется нормально, то
InterBase запустится сам автоматически.
Стандартные утилиты для администрирования InterBase :
- gfix - для восстановления, реконфигурирования
и реструктурирования базы,
- gbak - для резервного копирования, восстановления и прочистки
базы в процессе восстановления из архива,
- gltj - для ведения online журнала изменений БД,
- grst - для восстановления базы из сохраненного образа или
текущего журнала.
- Где в СНГ можно купить InterBase?
У VAR'ов и masterVAR'ов компании Borland.
MasterVAR'ы:
ABIT Advanced 334-8851
CMA 916-1676
Epsylon Technologies 535-0319
535-5349 (демо-центр Borland InterBase)
RedLab 932-8858 (центр обучения InterBase)
Scan 143-6643
ArgusSoft 288-3794
UniTech 939-5069
InterBase 4.0 для Novell NetWare и Windows NT можно купить у
любого дилера компании Borland.
- Где можно пройти курсы обучения СУБД InterBase?
В авторизованном учебном центре SUN - в компании REDLAB.
Тел. 095-932-8858
- Где можно получить консультации по использованию InterBase, переносу
системы в архитектуру клиент-сервер, выбору средств разработки. Где
можно посмотреть InterBase в действующем проекте?
Все это обеспечивают masterVAR'ы. Кроме того, при компании Epsylon
Technologies (один из masterVAR) организован демо-центр Borland
InterBase, где можно получить соответствующие консультации и
посмотреть на инструментальные средства и готовые системы.
Демо-центр, в частности, обеспечивает техническое сопровождение
программных продуктов Borland клиент-серверного направления.
- Какие архитектурные особенности имеются в InterBase?
В InterBase существуют следующие особенности:
1. Performance
Row Level Locking
Page Level Locking
Table Level Locking
Database Level Locking
Programmable Read Isolation Levels
System doesn't escalate Locks
Versionong/No read locks
Multi server architecture
Shared commits
Asynchronous I/O
Raw I/O
Shared log files
Non-blocking Queries
ANSI standard cursor support
Backward Scrolling cursors
Non-blocking Sequence Generator
Cost based optimizer
Optimizer Scans Entire Table to get Stats
Optimizer can estimate stats to save time
Stored procedures in database
Cached procedures are shared
Stored procedures can return sets
Stored procedures return all datatypes
Stored procedures cache
Shared SQL cache
Performance monitoring tools
2. Integrity
Adherence ti Industry Standards SQL Interface
Declurative integrity model
Cascading updates
Cascading deletes
Database triggers
PRE- and POST-triggers
Triggers fire once per SQL statement
Triggers fire for each row affected
Programmer can control trigger fire order
Automatic procedure recompilation
Programmer defined datatypes
Event alertes
Database events call GL program
Stored procedures call GL program
Automatic database recovery
database mirroring
On-line backup
automatic log backup
Hot standbyserver
Multiple log files
DBA utilities
Database auditing
3. Распределенные черты
distributed join
Programmatic two-phase commit
Transparent two-phase commit
Heterogeneous data support
Trans can span multiple net protocols
ODBC support
- Какие разработки сделаны на InterBase в России? Мы разработали
систему на InterBase и хотим, чтобы упоминание об этой разработке
было включено в соответствующий реестр. Существует ли такой реестр
для стран CНГ? Где можно получить такую информацию? Где вообще можно
получать такую информацию?
Работа по созданию такого реестра только началась. Вы можете прислать
описание разработки по адресу interbas@bor.compnet.ru. Эта информация будет
доступна, и помещена в этот FAQ.
Кроме того, существует список рассылки информации по InterBase по электронной
почте. Для этого следует послать пустое письмо по адресу IBinfo@bor.compnet.ru.
Некоторые технические харрактеристики Interbase
Q: Какой максимальный размер базы данных?
A: Реально ограничение на размер накладывается временем обработки запросов,
временем резервного копирования, восстановления базы и т.д. Рекомендуется
не более 10 GB.
Q: Из какого максимального количества физических файлов может состоять база?
A: В системных таблицах InterBase поле, описывающее из каких файлов
состоит база данных, включая все shadow, имеет тип SHORT. Соответственно не
более 65,536.
Q: Какое максимальное количество таблиц можно определить в базе данных?
A: 65,536. Таблицы нумеруются с использованием типа данных SHORT.
Q: Какое максимальное количество записей в таблице и полей в записи?
A: В записи может быть не более 1000 полей. Количество записей в таблице
не ограничено.
Q: Какой максимальный размер записи и поля?
A: Запись не может быть больше 64К байт (не считая размера BLOB).
Поле не может быть больше 32К байт, размер поля типа BLOB не ограничен.
Q: Какое максимальное количесво индексов может быть в таблице и базе?
A: В базе может быть 64K индексов. Все они могут относиться к одной таблице.
Q: Какое максимальное количесво уровней вложенности может иметь SQL запрос?
A: 16 уровней вложенности.
Q: Какое максимальное количесво полей может включать в себя составной индекс?
A: Составной индекс может включать в себя не более 16 полей.
Q: Какой максимальный размер stored procedure или trigger?
A: Stored procedure или trigger может иметь размер кода не более 48K байт.
Q: Есть ли ограничение на количество UDF определенных в одной базе?
A: Длина имени UDF не более 31 символа. Соответственно максимальное
количество UDF в базе ограниченно количеством уникальных имен в пределах
этой длины.
|
|
|
|