Главная » Просмотр файлов » Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009

Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009 (1084484), страница 95

Файл №1084484 Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009 (Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009) 95 страницаХомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009 (1084484) страница 952018-01-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 95)

Будем использоватьструктурный индексный файл, который эффективен и прост в применении.Структурный индексный файл обеспечивает реализацию всех индексов одной таблицы и имеет имя, совпадающее с именем самой таблицы, и расширение CDX. Структурные индексные файлы открываются и закрываются одновременно с таблицами, что упрощает работу с ними.Важным свойством индексов является возможность их использования дляорганизации первичного ключа в таблице.

Такие индексы должны быть уникальны, то есть однозначно идентифицировать записи таблицы. Если ключевой индекс состоит из одного поля, то не должно быть двух записей в таблице с одинаковым значением этого поля. Для составного индекса, состоящего из несколькихимен полей, уникальным должна быть вся совокупность значений полей.В Visual FoxPro тип индексов задается при их создании с помощью Конструктора таблиц. Рассмотрим процедуру создания индекса. В диалоговом окне TableDesigner (конструктортаблиц) выберем вкладку Indexes (индексы) (рис. 12.4).Table Designer - t z a g i . d b lFieldsIndexes | Table JOrder Name_zagrигаTypePrimaryExpressionFilter]||fio+predm+ST| ...J |CandidateUniqueRegular|jJOKCancelInsertDeleteРис.

12.4 Вкладка IndexesЧасть 3. Современные СУБД и их применение452В поле Name (имя) задаем имя тега — имя индекса. Слева от имени индекса располагается переключатель, задающий направление упорядочения значений индексного выражения (по возрастанию или убыванию значений тега).В поле Туре (тип) выберем из списка подходящий тип для устанавливаемого тега (табл. 12.4).Таблица 12.4Типы индексов (тегов)Тип тегаОписаниеRegularЗначение индексного выражения записывается для каждойзаписи таблицы. При наличии одного и того ж е значения длянескольких з а п и с е й в и н д е к с н о м ф а й л е будет указатель нак а ж д у ю и з них. П р и п р о с м о т р е таблицы т а к и е з а п и с и появляютсяв п о р я д к е их в в о д а .UniqueЗначение индексного выражения записывается только дляп е р в о й из п о в т о р я ю щ и х с я з а п и с е й и только на нее в и н д е к с н о мфайле есть указатель. При п р о с м о т р е таблицы видна только одна(первая) из записей с одинаковым з н а ч е н и е м индексноговыражения.CandidateС о з д а е т с я уникальный индекс, не с о д е р ж а щ и й полей с пустымиз н а ч е н и я м и .

О н является к а н д и д а т о м на роль первичного ключа,но не является таковым, т а к как в т а б л и ц е м о ж е т быть толькоо д и н п е р в и ч н ы й ключ.PrimaryОдин из индексов, удовлетворяющий требованиям индекса типаC a n d i d a t e м о ж е т быть в ы б р а н в к а ч е с т в е п е р в и ч н о г о ( P r i m a r y )ключа. Используется для связывания таблиц и о п р е д е л е н и яусловий целостности данных.Поле Expression (выражение) позволяет ввести индексное выражение.В простейшем случае индексное выражение может состоять из имени одногополя. В более сложных случаях — это совокупность имен полей или выражение, включающее имена полей, переменные и функции как стандартные, таки пользовательские.

Для формирования индексного выражения можно привлечь Конструктор выражений, вызываемый нажатием кнопки справа от поляввода.Поле Filter (фильтр) позволяет определить для индекса фильтр, служащийдля ограничения формируемых значений индекса. Результат выражения, используемого в фильтре должен иметь логический тип.Пример. Создание индекса, являющегося первичным ключом таблицы.Рассмотрим формирование первичного ключа для таблицы T ZAGR. Первичный ключ здесь является составным и представляет собой выражение Fio+Predm+STR( Gruppa). В подобных выражениях все компоненты должны быть12.

СУБД Visual FoxPro 8.0453одного типа. Поэтому следует использовать стандартную функцию STR(),преобразующую числовые значения в символьные. Для создания индексавыполним следующие действия.1. Откроем окно Конструктора таблиц для таблицы T ZAGR. Для этого вокне Конструктора БД установим курсор на таблицу, щелчком правойкнопкой мыши вызовем всплывающее меню и выполним командуModify (модифицировать).2.

В диалоговом окне Конструктора таблиц выберем вкладку Indexes (индексы).3. В поле Name (имя) открывшегося диалогового окна введем имя индекса i_zagr.4. В списке возможных типов индекса в поле Туре (тип) выберем Primary.5. В поле Expression (выражение) введем выражение для индекса i z a g r .6.

Установим переключатель Order (порядок) в положение по возрастанию (рис. 12.3).7. Нажмем ОК.Аналогично можно проиндексировать остальные таблицы БД Bdu (табл. 12.5).Таблица 12.5Индексные выражения для индексов БД BduТаблицаИ м я тегаИндексное выражениеT_ZAGRi_zagrFio+ P r e d m + S T R ( G r u p p a )T_PREPi_prepFioT_STAGi_stagStagT_DOLGNi_dolgnDolgnВ остальных таблицах можно использовать простые индексные выражения, состоящие из одного поля.Изменение структурытаблицыПри работе над проектом порой требуется изменять структуру некоторой таблицы.

В структуру таблицы можно вносить следующие изменения:• изменять имена и типы полей,• вставлять пропущенные поля,• удалять лишние поля,• изменять порядок следования полей в таблице.Для проведения таких изменений нет особых проблем, и их технологиюмы изложим ниже. Проблемы могут возникнуть при выполнении следующихдействий:• переименовании существующих индексных полей, так как это требуетперезаписи индексных файлов таблицы;454Часть 3.

Современные СУБД и их применение• изменении длины нолей или числа знаков после запятой, так как этоможет привести к потере данных;• изменении типа поля, гак как в случае невозможности автоматическогопреобразования данных они будут потеряны.Замечание.Перед изменением структуры любой существующей таблицы целесообразно создание резервной копии таблицы и всех ее индексных файлов.Для изменения структуры таблицы, являющейся элементом БД, нужнооткрыть диалоговое окно Конструктор таблиц (Table Designer) со структурой выбранной таблицы. Для этого достаточно открыть окно КонструктораБД, установить в нем курсор на модифицируемую таблицу и нажать кнопкуModify Table (модифицировать таблицу) панели инструментов DatabaseDesigner (конструктор базы данных).Рассмотрим подробнее операции по модификации таблицы, выполняемыев окне Конструктор таблиц (Table Designer).Добавление полей является самой безопасной операцией.

Для ее реализации необходимо с помощью клавиш-стрелок установить курсор на строку,перед которой необходимо вставить новое поле (в любом ее столбце) и нажат!) кнопку Insert (вставить) (рис. 12.4). При этом появляется новая строкас именем NewField. Далее по рассмотренной технологии можно ввести имянового поля и его параметры.Для удаления лишнего поля достаточно выделить его в окне Конструктора таблиц и нажать клавишу Delete (удалить). Если открытый на данныймомент индексный файл не содержит ссылок на удаляемое поле, то поле будет удалено. Если такие ссылки имеются, то появится предупреждающее сообщение.Переименование полей выполняется следующим образом.

ОткрываетсяКонструктор таблиц со структурой нужной таблицы, выделяется и редактируется нужное поле, после чего полученная структура сохраняется. Если изменяемое поле входит в индексное выражение, то появляется предупреждающее сообщение. При этом нужно изменить имя поля и отредактироватьсоответствующие индексные выражения.Переопределение характеристик полей, а именно типа, длины или числа десятичных знаков в числовом поле, иногда приводит к проблемам. Безпроблем выполняется увеличение длин полей.

Для этого достаточно в Конструкторе таблиц выделить нужное поле и увеличить его длину. При этомсоответствующий DBF-файл будет переписан и приобретет большие размеры.Проблемы могут возникнуть при попытке уменьшить размеры полей. Приэтом может произойти усечение строк в символьных полях до нужных размеров. Сократцение целой части числового поля может привести к потере той12.

СУБД Visual FoxPro 8.0455части чисел, у которых она не помещается в отведенные размеры (в поле записывается символ звездочка). Сокращение количества знаков в дробнойчасти понижает точность представления числа.Возможны проблемы и при изменении типов полей. Например, преобразование числового поля в символьное возможно всегда при условии достаточного выделения места для образующихся символьных строк. Это преобр а з о в а н и е о с у щ е с т в л я е т с я с помощью ф у н к ц и и STR( ).

О б р а т н о епреобразование выполняется функцией VAL( ) и возможно только в тех случаях, когда строка начинается с цифр или пробелов. В противном случае полученное в результате преобразований числовое поле будет иметь нулевоезначение.Без проблем осуществляется преобразование даты в строку (функцияDTOC( ) ) и обратное преобразование (функция CTOD( ) ), при условии чтосимвольная строка содержит допустимые символы.12.8. Организация межтабличных связейВ Visual FoxPro можно связывать таблицы — устанавливать связи междуними.

При этом возможно установление постоянных и временных связеймежду таблицами. Постоянные связи можно установить в Конструкторе БД,и они прежде всего необходимы для поддержания целостности БД при обновлении содержимого таблиц. Временные связи между таблицами могутустанавливаться при создании экранных форм (для ввода и редактированияданных) и отчетов.

Обычно это делается в случаях, когда имеющиеся постоянные связи по каким-либо причинам не подходят для создаваемой формыили отчета.Постоянные связи хранятся в словаре БД и автоматически устанавливаются при открытии таблиц. Приведем условия установления постоянных связей.1. Одна из связываемых таблиц является родительской, другая — дочерней.2. Для родительской таблицы индекс должен быть определен как первичный ключ (Primary) или ключ кандидат (Candidate).3. Для дочерней таблицы индекс может быть не уникальным. По этомуиндексу дочерняя таблица будет связываться с родительской (внешнийключ).Создадим постоянные связи между таблицами.

Для этого войдем в Конструктор БД и убедимся в наличии (или создадим) перечисленные ниже индексы (табл. 12.6).Часть 3. Современные СУБД и их применение456Таблица12.6Типы индексов БД BduИ м я тегаТаблицаТ и п индексаИ н д е к с н о е выражениеTZAGRi_zagrPrimaryFio+Predm+STR(Gruppa)TPREPi_fioPrimaryFioTPREPi_dolgnCandidateDolgnTPREPi_stagCandidateStagTSTAGi_stagPrimaryStagT_DOLGNi_dolgnPrimarydolgnПосле создания всех необходимых индексов в окне Конструктора БД (рис.12.4) будут представлены все таблицы в виде списка из полей и индексов,разделенных ключевым словом Indexes (индексы). Если в таблице списокполей и индексов виден не полностью, его можно прокрутить вниз или вверх.На рис. 12.5 показаны установленные межтабличные связи.H ® 13Database DesignerШ Fields:stagd_stagCDlndexes:Ш Fields:fiostagdolgnkafdllndexes:i_slagi_dolgn? i fioJ^Fields:fiopredmgruppavidzanCBlndexes:i_zagrРис. 12.5.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6384
Авторов
на СтудИзбе
308
Средний доход
с одного платного файла
Обучение Подробнее