Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билет1.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
365 Кб
Скачать
☆
  1. Поддержка языков бд.

Для работы с базами данных используются специальные языки, в целом называемые языками баз данных. Чаще всего для работы с хранящейся в базе данных информацией СУБД предоставляет программам и пользователям следующие два типа языков:

• язык описания данных (DDL) — высокоуровневый непроцедурный язык, предназначенный для описания логической структуры данных, т.е. позволяет создавать и изменять структуру объектов базы данных, например, создавать и удалять таблицы;

• язык манипулирования данными (DML) — содержит набор операторов манипулирования данными, т.е. операторов, позволяющих заносить данные в БД, удалять, модифицировать или выбирать существующие данные по запросам.

Наибольшее распространение получили два стандартизованных языка: QBE (Query By Example) — язык запросов по образцу и SQL (Structured Query Language) — структурированный язык запросов. QBE в основном обладает свойствами языка манипулирования данными, SQL сочетает в себе свойства языков обоих типов — описания и манипулирования данными.

  1. Обеспечение целостности и безопасности бд.

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

Опишите методы поиска записей по индексированному (FindKey, FindNearest) и не индексированному (Locate) полю. Опишите процесс фильтрации записей.

Метод FindKey (const KeyValues: array of const): Boolean выполняет поиск в наборе данных Table записи, у которой значения полей совпадают со значениями, указанными в параметре KeyValues. Список полей для поиска не задается, а берутся индексные поля в соответствии с текущим индексом. Если поиск завершился успешно, то найденная запись становится текущей, а метод возвращает значение True. При неудачном поиске указатель текущей записи не перемещается, а метод возвращает значение False. Если заданным условиям поиска соответствует несколько записей, то указатель текущей записи устанавливается на первую из них. Порядок сортировки и, соответственно, порядок расположения записей в наборе данных определяется текущим индексом, по которому и ведется поиск. Метод FindNearest, в отличие от метода FindKey, производит поиск значений полей записей набора данных Table, которые только частично совпадают со значениями, заданными для поиска. Сравнение проводится, начиная с первого стоящего в поле символа. Поиск по частичному совпадению можно применять к строкам или к данным других типов, например, целым. Поиск с помощью процедуры FindNearest (const KeyValues: array of const) всегда является успешным и перемещает указатель текущей записи на запись, в наибольшей степени отвечающую условиям поиска. Вместо метода FindNearest можно использовать комбинацию методов SetNearest, EditNearest и GotoNearest, pабота c которыми аналогична работе с соответствующими методами поиска на точное соответствие значений полей. При поиске по нескольким полям текущего индекса используется свойство KeyFieidCount типа Boolean, указывающее, сколько полей индекса, начиная с первого, участвует в поиске. По умолчанию поиск осуществляется по всем полям текущего индекса.

Для поиска записей по полям служат методы Locate и Lookup, причем поля могут быть неиндексированными. Функция Locate (const KeyFields: String; const KeyValues: Variant; Options: TLocateOptions): Boolean ищет запись с заданными значениями полей. Если удовлетворяющие условиям поиска записи существуют, то указатель текущей записи устанавливается на первую из них. Если запись найдена, функция возвращает значение True, в противном случае — значение False. Список полей, по которым ведется поиск, задается в параметре KeyFields, поля разделяются точкой с запятой. Параметр KeyValues типа variant указывает значения полей для поиска. Если поиск ведется по одному полю, то параметр содержит одно значение, соответствующее типу поля, заданного для поиска. Параметр options позволяет задать значения, которые обычно используются при поиске строк. Этот параметр принадлежит к множественному типу TLocateOptions и принимает комбинации следующих значений: 1. locaseinsensitive —регистр букв не учитывается; 2. loPartiaiKey — допускается частичное совпадение значений. При поиске по нескольким полям в методе Locate параметр KeyValues является массивом значений типа variant, в котором содержится несколько элементов. Для приведения к типу вариантного массива используется функция varArrayOf. Значения разделяются запятыми и заключаются в квадратные скобки, порядок значений должен соответствовать порядку полей параметра KeyFieids. Обычно при разработке приложений пользователю предоставляется возможность влиять на процесс поиска с помощью управляющих элементов, расположенных на форме. При этом действия пользователя по управлению поиском в наборе данных мало чем отличаются от аналогичных действий при выполнении фильтрации.

Фильтрация — это задание ограничений для записей, отбираемых в набор данных. Напомним, что набор данных представляет собой записи, выбранные из одной или нескольких таблиц. Состав записей в наборе данных в данный момент времени зависит от установленных ограничений, в том числе и от фильтров. Система Delphi дает возможность осуществлять фильтрации записей: 1. по выражению; 2. по диапазону. http://vit-prog.narod.ru/page/rubd/t3.4.html По умолчанию фильтрация записей не ведется, и набор данных Table содержит все записи связанной с ним таблицы БД, а в набор данных Query включаются все записи, удовлетворяющие SQL-запросу, содержащемуся в свойстве SQL. Фильтрация похожа на SQL-запросы, но является менее мощным средством. По сравнению с SQL-запросами фильтрация менее эффективна, т. к. ограничивает количество записей, видимых в наборе.

Билет4