Ответы к экзамену по БД (542444), страница 19
Текст из файла (страница 19)
Вспомогательная процедура заполнит данную таблицу названиями всехтаблиц из сохраняемой базы данных. Можно использовать данную особенность для того, чтобысохранить информацию не о всей структуре базы данных, а только о части, представленнойопределёнными таблицами, для этого нужно вручную заполнить таблицу Structure названиямитаблиц сохраняемой структуры.Процедура faGetStructure для каждого наименования таблицы из Structure сохранит в таблицахинформацию о столбцах и их свойствах таблиц, индексов, ключей.Таким образом, мы сохранили информацию о структуре базы данных и можем использовать этуинформацию многократно. Если структура базы данных поменяется, то достаточно удалить всюинформацию из таблицы Structure и заново вызвать процедуру faGetStructure.Коррекция сохранённой структурыСохранённая информация о структуре требует коррекции, иначе могут возникнуть ошибки присоздании новой базы данных.
Коррекция заключается в удалении из таблицы PropertiesT свойствстолбцов таблицы всех полей, относящихся к свойствам с именами “Seed” (значение идентификаторадля первой строки таблицы) и “Increment” (приращение для столбца идентификатора), т.к. этисвойства невозможно установить программно. Для проведения этой коррекции можно использоватьтакой запрос:DELETE PropertiesT.NameFROM PropertiesTWHERE (((PropertiesT.Name)="Seed" Or (PropertiesT.Name)="Increment"));Также требуется подкорректировать значения свойства “Nullable” у столбцов с логическим типомданных: оно должно быть всегда равно нулю. Для этой цели можно использовать такой запрос:40.9.5UPDATE ColumnsT INNER JOIN PropertiesT ON ColumnsT.ID = PropertiesT.ColumnT SETPropertiesT.[Value] = "0"WHERE (((ColumnsT.Type)=11) AND ((PropertiesT.Name)="Nullable"));Также эмпирическим путём выяснилось, что для свойства “Fixed Length” («фиксированная длина»)ключевых полей с числовым типом данных не может быть значение “False” («ложь»), хотя понеизвестным причинам при сохранении такое значение этого свойства записывается.
Поэтому дляданного случая также требуется коррекция. В виде запроса эта коррекция выглядит следующимобразом:UPDATE ColumnsT INNER JOIN PropertiesT ON ColumnsT.ID = PropertiesT.ColumnT SETPropertiesT.[Value] = "-1"WHERE (((PropertiesT.Value)="0") AND ((ColumnsT.Type)=3) AND ((ColumnsT.Key)=True) AND((PropertiesT.Name)="Fixed Length"));Само собой разумеется, что значение свойства “JET OLEDB:Allow Zerro Length” («допускаетсянулевая длина») для ключевых полей с числовым типом данных не может быть “True” («истина»), нои такое бывает, поэтому и для этого варианта предусматриваем коррекцию в виде запроса:UPDATE ColumnsT INNER JOIN PropertiesT ON ColumnsT.ID = PropertiesT.ColumnT SETPropertiesT.[Value] = "0"WHERE (((PropertiesT.Value)="-1") AND ((ColumnsT.Type)=3) AND ((ColumnsT.Key)=True) AND((PropertiesT.Name)="Jet OLEDB:Allow Zero Length"));Создание новой БД по сохранённой структуреТеперь можно создавать неограниченное число раз чистых копий баз данных, аналогичных поструктуре исходной, информация о которой была сохранена и скорректирована.Для создания новой пустой базы данных сохранённой структуры нужно вызвать процедуруfaCreateStructure и передать ей в качестве параметра полное имя файла создаваемой базы данных.Сначала эта процедура создаёт новую базу данных как каталог ADOX, затем, используя информациюиз таблиц, создаёт каждую таблицу, столбцы и заполняет их свойства.
Для заполнения свойствстолбцов используется вспомогательная процедура faSetPropertiesC. Данная процедура заполняетсвойства, согласуясь с типом самого свойства.Далее процедура создаёт и заполняет свойства индексов и ключей таблиц базы данных.В результате получаем копию сохранённой базы данных, но без данных.40.10.644. Организация обработки данных. Примеры.Для обработки таблиц Microsoft Access использует мощный язык SQL (Structured Query Language) структурированный язык запросов. Access значительно упрощает задачу обработки данных.
При любойобработке данных из нескольких таблиц Access использует связи, заданные пользователем приконструировании таблиц. В Access имеется также средство графического задания запроса - "запрос пообразцу" (QBE- query by example).Одним из стандартных объектов Microsoft Access является запрос. Запросы используются для просмотра,анализа и изменения данных из одной или нескольких таблиц. Например, можно использовать запрос дляотображения данных из одной или нескольких таблиц и отсортировать их в определенном порядке,выполнить вычисления над группой записей, осуществить выборку из таблицы по определенным условиям. Вобщем случае данные, отраженные в запросах, являются результатом применения разнообразных операцийреляционной алгебры над данными.
Сам запрос не содержит данных, но позволяет выбирать данные изтаблиц и выполнять над ними разнообразные операции. Запросы могут служить источником данных дляформ и отчетов Microsoft Access. В Microsoft Access существует также понятие фильтра, который всвою очередь является набором условий, позволяющих отбирать подмножество записей и сортировать их.Основное сходство между запросами на выборку и фильтрами заключается в том, что в них проводитсяизвлечение подмножества записей из базовой таблицы или запроса. Фильтр обычно используется при работев режиме формы или в режиме таблицы для просмотра или изменения подмножества записей.Запрос можно использовать:• для просмотра подмножества записей таблицы без предварительного открытия этой таблицы илиформы;• для объединения в виде одной таблицы на экране данных из нескольких таблиц;• для просмотра отдельных полей таблицы;• для выполнения вычислений над значениями полей.Основные отличия запросов и фильтров заключаются в следующем:• фильтры не позволяют добавить еще несколько таблиц, записи из которых включаются ввозвращаемый набор записей;• фильтры не позволяют указать поля, которые должны отображаться в результирующем наборезаписей;• фильтры не могут быть выведены как отдельный объект в окне базы данных;• запросы могут использоваться только с закрытой таблицей, запросом или формой;• фильтры не позволяют вычислять суммы, средние значения, подсчитывать количество записей инаходить другие итоговые значенияСпособы создания запросов в Access• Наиболее просто создается запрос при помощи Мастера запросов.• Конструктор запросов позволяет создавать новые и изменять существующие запросы.• В режиме Конструктора можно переключаться в режим Окно SQL, позволяющее создавать SQLзапросы.45.Способы ускорения поиска данных: индексация и сортировка.Примеры.40.11.ИндексацияИндекс – средство, ускоряющее поиск и сортировку в таблицы за счет использования ключевыхзначений, которое позволяет обеспечить уникальность строк таблицы.
Автоматически создаютсяиндексы для полей, на которые назначены ограничение первичного или вторичного ключа. Дляостальных столбцов индексы можно создать явно в режиме конструктора для таблицы: свойстваполя. Для индексированное поле предусмотрено три варианта: Нет (по умолчанию), Да (допускаютсясовпадения) и Нет (Совпадения не допускаются).При индексировании создается отдельный индексный файл, при этом сама база данных остаетсянеизменной.Индексированные поля на обеих сторонах запроса соединяют (join) или создают связь (relationship)между полями.
Jet создает индексы на полях, которые были связаны в окне «Схема данных»(relationships window), если их там еще нет. Это может ускорить выполнение запроса, позволяяоптимизатору запроса использовать более сложную внутреннюю стратегию связывания. Следует какможно больше использовать первичные ключи (primary keys) в противоположность уникальныминдексам. Кроме того, если индексируются поля, которые необходимо часто сортировать,быстродействие запроса увеличивается.40.12.СортировкаПри сортировке изменяется база данных, порядок следования записей.Операция сортировки данных используется для удобства нахождения нужной информации.
Поумолчанию, когда таблица открывается в режиме Таблицы, она упорядочивается по значениюключевого поля. Если ключевое поле для таблицы не определено, записи выводятся в порядке ихввода в таблицу. Также можно отсортировать записи по значению любого другого поля.Таким образом можно упорядочить записи по любому столбцу таблицы. Ограничения существуюттолько на тип данных, которые можно упорядочивать — нельзя сортировать значения полей типаMEMO, гиперссылки или объекты OLE.Чтобы правильно применять сортировку, нужно знать несколько простых правил.••••При сортировке в возрастающем порядке записи, содержащие пустые поля (с пустымизначениями), указываются в списке первыми.Числа, находящиеся в текстовых полях, сортируются как строки символов, а не как числовыезначения.