Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009 (1084484), страница 85
Текст из файла (страница 85)
Так, для таблиц dBase индексы строятся по одному полю и нет деления на ключ (главный или первичный индекс) и индексы.Д л я организации связи в главной и подчиненной таблицах выбираютсяиндексы, составленные по полям совпадающего типа, например, целочисленного.Часть 3. Современные СУБД и их применение404Для таблиц Paradox в качестве полей связи главной таблицы должны использоваться поля ключа, а для подчиненной таблицы — поля индекса. Кроме того, в подчиненной таблице обязательно должен быть определен ключ.На рис. 11.13 показана схема связи между таблицами БД Paradox.Главная таблицаПодчиненная таблицаКлючИндекс (внешний ключ)M_Code•• •Ключевоеполе•••D_NumD_Code•• •КлючевоеполеИндексноеполе•••Рис. 11.13. Схема связи между таблицами базы данных ParadoxВ главной таблице определен ключ, построенный по полю M _ C o d e автоинкрементного типа.
В подчиненной таблице определен ключ по полюD Num также автоинкрементного типа и индекс, построенный по полюD _ C o d e целочисленного типа. Связь между таблицами устанавливается пополям D _ C o d e и M _ C o d e . Индекс по полю D C o d e является внешним ключом. В названия полей включены префиксы, указывающие на принадлежность поля соответствующей таблице. Так, названия полей главной таблицы начинаются с буквы М (Master), а названия полей подчиненной таблицыначинаются с буквы D (Detail). Подобное именование полей облегчает ориентацию в их названиях, особенно при большом количестве таблиц.Как отмечалось, поля связи должны быть индексированными, хотя, строго говоря, это требование не всегда является обязательным. При доступе кданным средствами языка SQL можно связать (соединить) между собой таблицы и по неиндексированным полям.
Однако в этом случае скорость выполнения операций будет низкой.Связь между таблицами определяет отношение подчиненности, при котором одна таблица является главной (родительской, или мастером — Master),а вторая — подчиненной (дочерней, или детальной — Detail). Саму связь (отношение) называют связь «главный-подчиненный», «родительский-дочерний» или «мастер-детальный».После установления связи между таблицами при перемещении на какуюлибо запись в главной таблице в подчиненной таблице автоматически становятся доступными записи, у которых значение поля связи равно значениюполя связи текущей записи главной таблицы. Такой отбор записей подчиненной таблицы является своего рода фильтрацией.Ограничения по установке, изменению полей связи и каскадному удалениюзаписей могут быть наложены на таблицы при их создании.
Эти ограничения,наряду с другими элементами, например описаниями полей и индексов, вхо-/ I. Borland С++ Builder405дят в структуру таблицы и действуют для всех приложений, которые выполняют операции с БД. Указанные ограничения можно задать при создании илиреструктуризации таблицы, например, в среде программы Database Desktop,которая позволяет устанавливать связи между таблицами при их создании.О г р а н и ч е н и я , с в я з а н н ы е с установкой, и з м е н е н и е м з н а ч е н и й полей с в я з и икаскадным удалением записей, могут и не входить в структуру таблицы (таблиц), а реализовываться программным способом. В этом случае программистдолжен обеспечить:• организацию связи между таблицами;• установку значения поля связи подчиненной таблицы (это может такжевыполняться автоматически);• контроль (запрет) редактирования полей связи;• организацию (запрет) каскадного удаления записей.Например, в случае удаления записи из главной таблицы программистдолжен проверить наличие соответствующих записей в подчиненной таблице.
Если такие записи есть, то необходимо удалить и их или, наоборот, запретить удаление записей из обеих таблиц. И в том, и в другом случае пользователю должно быть выдано предупреждение.ФорматытаблицС + + Builder не имеет своего формата таблиц, но поддерживает как собственные два типа локальных таблиц — dBase и Paradox. Каждая из этих табл и ц имеет свои особенности.Таблицы dBase являются одним из первых появившихся форматов таблицдля персональных компьютеров и поддерживаются многими системами, которые связаны с разработкой и обслуживанием приложений, работающих сБД. Основные достоинства таблиц dBase: простота использования и совместимость с большим числом приложений.Таблицы dBase являются достаточно простыми и используют для своегохранения на дисках относительно мало физических файлов.
По расширениюфайлов можно определить, какие данные они содержат.• dbf — таблица с данными.• d b t — данные больших двоичных объектов, или BLOB-данные (BinaryLarge OBject). К ним относятся двоичные, Memo- и OLE-поля. Мешополе также называют полем комментариев.• mdx — поддерживаемые индексы.• ndx — индексы, непосредственно не поддерживаемые форматом dBase.При использовании таких индексов программист должен обрабатыватьих самостоятельно.И м я поля в таблице dBase должно состоять из букв и ц и ф р и начинаться сбуквы.
Максимальная длина имени составляет 10 символов. В имена нельзявключать специальные символы и пробел.Часть 3. Современные СУБД и их применение406К недостаткам таблиц dBase относится то, что они не поддерживают автоматическое использование парольной защиты и контроль целостности связей, поэтому программист должен кодировать эти действия самостоятельно.Таблицы Paradox являются достаточно развитыми и удобными для созданияБД. Можно отметить следующие их достоинства: большое количество типов полей для представления данных различных типов; поддержка целостности данных; организация проверки вводимых данных; поддержка парольной защитытаблиц.Большой набор типов полей позволяет гибко выбирать тип для точногопредставления данных, хранимых в базе.
Например, для представления числовой информации можно использовать один из пяти числовых типов.Благодаря своим достоинствам таблицы Paradox используются чаще. Втабл. 11.1 содержится список типов полей для таблиц Paradox 7. Для каждоготипа приводятся символ, используемый для обозначения этого типа в программе Database Desktop, и описание значений, которые может содержать полерассматриваемого типа.Таблица 11.1.Типы полей таблиц в Paradox 7ТипОписание значенияОбозначениеAlphaAСтрока символов.
Длина не более 255 символовNumberNЧисло с плавающей точкой. Диапазон -10307 ... 10308.Точность 15 цифр мантиссыMoney$Денежная сумма. Отличается от типа Number тем, чтов значении отображается денежный знак. Обозначениеденежного знака зависит от установок WindowsShortSЦелое число. Диапазон - 3 2 768 ... 32 767Longlnteger1Целое число. Диапазон - 2 147 483 648 ... 2 147 483 647BCD#Число в двоично-десятичном форматеDateDДата.
Диапазон 01.01.9999 до н. э. ... 31.12.9999TimeTВремяTimestamp@Дата и времяMemoMСтрока символов. Длина не ограничена. Первые 240символов хранятся в файле таблицы, остальные вфайле с расширением mbFormattedFMemoСтрока символов. Отличается от типа Memo тем, чтострока может содержать форматированный текстGraphicGГрафическое изображение. Форматы BMP, PCX, TIFF,GIF и EPS. При загрузке в поле изображение преобразуется к формату BMP. Для хранения изображенияиспользуется файл с расширением mb/ I.
Borland С++Builder407Т а б л и ц а 11.1 ( о к о н ч а н и е )ТипОбозначениеОписание значенияOLEОДанные в формате, который поддерживается технологией OLE. Данные хранятся в файле с расширением mbLogicalLЛогическое значение. Допустимы значения true(истина) и false (ложь). Разрешается использованиепрописных буквAutoincrement+Автоинкрементное поле.
При добавлении к таблиценовой записи в поле автоматически заносится значение, на единицу большее, чем в последней добавленной записи. При удалении записи значение ее автоинкрементного поля больше не будет использовано.Значение автоинкрементного поля доступно для чтенияи обычно используется в качестве ключевого поляBinaryВПоследовательность байтов.
Длина не ограничена.Байты содержат произвольное двоичное значение.Первые 240 байтов хранятся в файле таблицы, остальные в файле с расширением mbBytesУПоследовательность байтов. Длина не более 255 байтовЗамечание.При работе с таблицей в среде программы Database Desktop значения полей типа Graphic, Binary, Memo и OLE не отображаются.Имя поля в таблице Paradox должно состоять из букв (допускается кириллица) и цифр и начинаться с буквы.
Максимальная длина имени составляет25 символов. В имени можно использовать такие символы, как пробел, #, $ инекоторые другие. Не рекомендуется использовать символы ., ! и |, т. к. онизарезервированы в С++ Builder для других целей.При задании ключевых полей они должны быть первыми в структуре таблицы.Если требуется обеспечить перенос или совместимость данных из таблицParadox с таблицами других форматов, желательно выбирать имя поля длиной не более 10 символов и составлять его из латинских букв и цифр.Определенным недостатком таблиц Paradox является наличие относительно большого количества типов файлов, требуемых для хранения содержащихся в таблице данных.
При копировании или перемещении какой-либо таблицы из одного каталога в другой необходимо обеспечить копирование илиперемещение всех файлов, относящихся к этой таблице. Ф а й л ы таблицParadox имеют следующие расширения:• db — таблица с данными;• mb — BLOB-данные;• рх — главный индекс (ключ);4408Часть 3. Современные СУБД и их применение• xg* и yg* — вторичные индексы;• val — параметры для проверки данных и целостности ссылок;• tv и fam — форматы вывода таблицы в программе Database Desktop.Указанные файлы создаются по мере необходимости; конкретная таблицаможет не иметь всех приведенных файлов.ИнструментыХотя система С + + Builder не имеет своего формата таблиц БД, тем не менее, она обеспечивает развитую поддержку большого количества различныхС У Б Д — как локальных (например, dBase или Paradox), так и промышленных (например, Sybase или InterBase).
Средства С + + Builder, предназначенные для работы с БД, можно разделить на два вида:• инструменты;• компоненты.К инструментам относятся специальные программы и пакеты, обеспечивающие обслуживание БД вне разрабатываемых приложений.Компоненты предназначены для создания приложений, осуществляющихоперации с БД. Кроме компонентов, С + + Builder предоставляет разработчику специальные объекты, например, объекты типа Field (задают поля таблицы).Напомним, что в С + + Builder имеется окно Обозревателя дерева объектов( O b j e c t T r e e V i e w ) , которое отображает иерархическую структуру объектов текущей формы.
При разработке приложений баз данных его удобно использовать для просмотра структуры базы данных и изменения связей между компонентами. Кроме того, в окне Редактора кода имеется вкладка D i a g r a m ,служащая для отображения и настройки взаимосвязей между элементами базданных.Кроме процессора баз данных BDE, для операций с Б Д система С++ Builderпредлагает следующий набор инструментов.• B D E Administrator — утилита д л я настройки различных параметровBDE, настройки драйверов баз данных, создания и удаления драйверовO D B C , создания и обслуживания псевдонимов.• Database Desktop — программа создания и редактирования таблиц, SQLзапросов и запросов QBE.• S Q L Explorer — Проводник БД, позволяющий просматривать и редактировать Б Д и словари данных.• SQL Builder — программа визуального конструирования SQL-запросов.• S Q L Monitor — программа отслеживания порядка выполнения SQL-запросов к удаленным БД.• Data P u m p — программа для переноса данных (схемы базы данных и содержимого) между БД.• IB Console — программа для управления удаленными БД./ I.