Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009 (960530), страница 88
Текст из файла (страница 88)
Список содержит все типы полей, допустимые для заданного формата таблицы. В списке подчеркнуты символы,используемые для обозначения соответствующего типа, при выборе типа этисимволы автоматически заносятся в столбец Туре.Размер ноля задается не всегда, необходимость его указания зависит оттипа поля. Д л я полей определенного типа, например, автоинкрементного ( + )или целочисленного (I), размер поля не задается. Д л я поля строкового типаразмер определяет максимальное число символов, которые могут хранитьсяв поле.Добавление к списку полей новой строки выполняется переводом курсоравниз на несуществующую строку, в результате чего эта строка появляется вконце списка.
Вставка новой строки между существующими строками с ужеЧасть 3. Современные СУБД и их применение416описанными полями выполняется нажатием клавиши <Insert>. Новая строка вставляется перед строкой, в которой расположен курсор. Д л я удалениястроки необходимо установить курсор на эту строку и нажать комбинациюклавиш < C t r l > + < D e l e t e > .Ключ создается указанием его полей. Д л я указания ключевых полей в столбце ключа ( K e y ) нужно установить символ *, переведя в эту позицию курсори нажав любую алфавитно-цифровую клавишу.
При повторном нажатии клавиши отметка принадлежности поля ключу снимается. В структуре таблицыключевые поля должны быть первыми, т. е. верхними в списке полей. Частодля ключа используют автоинкрементное поле (см. рис. 11.19).Напомним, что для таблиц Paradox ключ также называют первичным индексом (Primary Index), а для таблиц dBase ключ не создается, и его роль выполняет один из индексов.Д л я выполнения остальных действий по определению структуры таблицы используется комбинированный список T a b l e p r o p e r t i e s ( С в о й с т в а т а б л и ц ы ) , содержащий следующие пункты:• V a l i d i t y C h e c k s (проверка правильности ввода значений полей) — выбирается по умолчанию;• Table L o o k u p ( т а б л и ц а в ы б о р а ) ;• Secondary Indexes• Referential Integrity(вторичные индексы);(ссылочная целостность);• Password Security (пароли);• Table L a n g u a g e(язык таблицы, языковой драйвер);(подчиненные таблицы).После выбора какого-либо пункта этого списка в правой части окна определения структуры таблицы появляются соответствующие элементы, с помощью которых выполняются дальнейшие действия.Состав данного списка зависит от формата таблицы.
Так, для таблицы dBaseон содержит только пункты I n d e x e s и T a b l e L a n g u a g e .• D e p e n d e n t TablesЗаданиеиндексовЗадание индекса сводится к определению:• состава полей;• параметров;• имени.Эти элементы устанавливаются или изменяются при выполнении операций создания, изменения и удаления индекса. Напомним, что для таблицParadox индекс называют также вторичным индексом.Д л я выполнения операций, связанных с заданием индексов, необходимовыбрать пункт S e c o n d a r y I n d e x e s ( В т о р и ч н ы е и н д е к с ы ) списка T a b l ep r o p e r t i e s ( С в о й с т в а т а б л и ц ы ) , при этом под списком появляются кнопкиD e f i n e ( О п р е д е л и т ь ) и M o d i f y ( И з м е н и т ь ) , список индексов и кнопка E r a s e/ I.
Borland С++ Builder(Удалить).417В списке индексов выводятся имена созданных индексов, нар и с . 11.19 э т о и н д е к с i n d _ 1 .Создание нового индекса начинается с нажатия кнопки D e f i n e , котораявсегда доступна. Она открывает окно D e f i n e S e c o n d a r y I n d e x ( З а д а н и е в т о р и ч н о г о и н д е к с а ) , в котором задаются состав полей и параметры индекса(рис. 11.20).В списке F i e l d s окна выводятся имена всех полей таблицы, включая и те,которые недопустимы в составе индекса, например, графическое поле или полекомментария.
В списке I n d e x e d f i e l d s ( И н д е к с н ы е п о л я ) содержатся поля,которые включаются в состав создаваемого индекса. Перемещение полей между списками выполняется выделением нужного поля (полей) и нажатием расположенных между этими списками кнопок с изображением горизонтальныхстрелок. Имена полей, которые нельзя включать в состав индекса, выделяются в левом списке серым цветом. Поле не может быть повторно включено всостав индекса, если оно уже выбрано и находится в правом списке.Замечание.При работе с записями индексные поля обрабатываются в порядке следования этих полей в составе индекса.
Это нужно учитывать при указании порядка полей в индексе.Define Secondary IndexШIndexed fields:ields:CodeNumberF'io.••IChange order:• Index options —ГUniqueГF? MaintainedCase sensitiveГ" DescendingOKCancelРис. 11.20. Окно задания индекса14 Зак. 541HelpЧасть 3. Современные СУБД и их применение418Изменить порядок следования полей в индексе можно с помощью кнопокс изображением вертикальных стрелок, имеющих общее название C h a n g eo r d e r ( И з м е н и т ь п о р я д о к ) .
Д л я п е р е м е щ е н и я п о л я ( п о л е й ) необходимо его(их) выделить и нажать нужную кнопку.Ф л а ж к и , расположенные в нижней части окна задания индекса, позволяют указать следующие параметры индекса:• U n i q u e — индекс требует для составляющих его полей уникальных значений;• M a i n t a i n e d — задается автоматическое обслуживание индекса;• C a s e s e n s i t i v e — для полей строкового типа учитывается регистр символов;• D e s c e n d i n g — сортировка выполняется в порядке убывания значений.Так как у таблиц dBase нет ключей, для них использование параметраU n i q u e является единственной возможностью обеспечить уникальность записей на физическом уровне (уровне организации таблицы), не прибегая кпрограммированию.После задания состава индексных полей и нажатия кнопки ОК появляе тсяокно S a v e I n d e x A s , в котором нужно указать имя индекса.
Для удобства обращения к индексу в его имя можно включить имена полей, указав какой-нибудьпрефикс, например ind. Нежелательно образовывать имя индекса только изимен полей, т. к. для таблиц Paradox подобная система именования используется при автоматическом образовании имен для обозначения ссылочной целостности между таблицами.
После повторного нажатия кнопки ОК сформированный индекс добавляется к таблице, и его имя появляется в списке индексов.Созданный индекс можно изменить, определив новый состав полей, параметров и имени индекса. Изменение индекса практически не отличается отего создания. После выделения индекса в списке и нажатия кнопки M o d i f yснова открывается окно задания индекса (см. рис. 11.20). При нажатии кнопки ОК появляется окно сохранения индекса, содержащее имя изменяемогоиндекса, которое можно исправить или оставить прежним.Для удаления индекса его нужно выделить в списке индексов и нажать кнопку E r a s e . В результате индекс удаляется без предупреждающих сообщений.Кнопки M o d i f y и E r a s e доступны, только если индекс выбран в списке.Заданиеограниченийна значенияполейЗадание ограничений на значения полей заключается в указании для полей:• требования обязательного ввода значения;• минимального значения;• максимального значения;• значения по умолчанию;• маски ввода./ I. Borland С++ Builder419Установленные ограничения задаются на физическом уровне (уровне табл и ц ы ) и действуют для любых программ, выполняющих операции с таблицей: как для программ типа Database Desktop, так и для приложений, создаваемых в С + + Builder.
Дополнительно к этим ограничениям или вместо них вприложении можно задать программные ограничения.Д л я выполнения операций, связанных с заданием ограничений на значения полей, нужно выбрать пункт V a l i d i t y C h e c k s ( П р о в е р к а з н а ч е н и й ) комбинированного списка T a b l e p r o p e r t i e s (см. рис. 11.19).ЗаданиессылочнойцелостностиПонятие ссылочной целостности относится к связанным таблицам и проявляется в следующих вариантах взаимодействия таблиц:• запрещается изменять поле связи или удалять запись главной таблицы,если для нее имеются записи в подчиненной таблице;• при удалении записи в главной таблице автоматически удаляются соответствующие ей записи в подчиненной таблице (каскадное удаление).Д л я выполнения операций, связанных с заданием ссылочной целостности, необходимо выбрать пункт R e f e r e n t i a l I n t e g r i t y комбинированного списка T a b l e p r o p e r t i e s (см.
рис. 11.19).ЗаданиепаролейПароль позволяет задать права доступа пользователей ( п р и л о ж е н и й ) ктаблице. Если для таблицы установлен пароль, то он будет автоматическизапрашиваться при каждой попытке открытия таблицы.Пароль действует на физическом уровне и его действие распространяетсяна все программы, выполняющие доступ к таблице: как на программы типаDatabase Desktop, так и на создаваемые приложения С++ Builder.Д л я выполнения операций, связанных с заданием пароля, нужно выбратьстроку P a s s w o r d S e c u r i t y в комбинированном списке T a b l e p r o p e r t i e s окнаопределения структуры таблицы (см. рис. 11.19).ЗаданиеязыковогодрайвераД л я задания языкового драйвера нужно выбрать пункт T a b l e L a n g u a g e(Язык таблицы) комбинированного списка T a b l e p r o p e r t i e s окна определения структуры таблицы (см.