Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билет1.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
365 Кб
Скачать
☆
  1. Дайте характеристику базовым объектам ado (Connection, Recordset, Command, Parameter, Field, Error и Property).

ы Базовых объектов семь: Connection, Recordset, Command, Parameter, Field, Error и Property. Компоненты ADO в палитре компонентов Delphi представляют собой надстройки над базовыми объектами, экспонируя большинство их свойств, методов и событий в привычном для Delphi виде.

Базовые объекты обычно сопровождаются коллекциями связанных с ними объекты. Например, с Connection может быть связан один или несколько объектов Еrror, фиксирующих ошибки установления связи. С Recordset - набор объектов Field, каждый из которых определяет единственное поле результирующего набора данных. С Command - один или несколько объектов Parameter, конкретизирующих выполнение метода Execute этого объекта и т.д. В связи с этим говорят об основных (Connection, Recordset, Command) и вспомогательных (Error, Field, Parameter, Property) объектах ADO.

Объект Connection обеспечивает создание подключения к источнику данных и эквивалентен текущему сетевому соединению с сервером. Объект Connection предоставляет возможность настройки соединения перед его открытием, установки базы данных по умолчанию, установки и разрыва соединения с источником данных, задания настроек и выполнения команды с помощью метода Execute (Выполняет запрос, оператор SQL, хранимую процедуру или любую другую команду, доступную провайдеру.). Кроме того, объект Connection обеспечивает механизм транзакций. На него может ссылаться произвольное количество объектов Command и Recordset. В этом случае Connection управляет транзакциями этих объектов. С объектом связан набор объектов Error, в котором фиксируются все ошибки, связанные с работой Connection.

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

С помощью объекта Command пользователь может выполнить над данными любую SQL-команду. С ним может быть связан набор объектов Parameter, в котором описываются соответствующие параметры, необходимые для выполнения запроса. Характерной особенностью объекта является возможность асинхронного выполнения связанной с ним команды. При обнаружении ошибки с объектом связывается своя коллекция объектов Error.

Объект Parameter определяет единственный параметр, который будет использоваться при выполнении метода Execute объекта Command - его тип, размер и способ применения (входной, выходной, входной и выходной или только для чтения). При необходимости с объектом Command можно связать коллекцию объектов Parameter для указания множества параметров.

Коллекция объектов Error хранит все ошибки, связанные с работой остальных объектов и, прежде всего, Connection, Command и Recordset.

Объект Field хранит всю необходимую информацию об одном поле (столбце) НД. Поскольку обычно НД содержит несколько полей, с объектом Recordset связана коллекция объектов Field. С любым полем Field можно связать произвольную коллекцию объектов Property, определяющих индивидуальные характеристики поля.

Объект Property может быть связан с любым другим объектом ADO, кроме объектов Connection и Error. Он может хранить как статические, так и динамические свойства. Статических (т.е. заранее заданных) свойств у объекта всего четыре: Name, Type, Value, Attributes. Остальные свойства - динамически и создаются в ходе выполнения программы. В объекте Property задаются некоторые индивидуальные характеристики связанного с ним объекта ADO.

Билет8

  1. Назовите цели проектирования базы данных. Раскройте смысл следующих понятий: декомпозиция и нормализация отношений, функциональная зависимость, полная функциональная зависимость, первая нормальная форма, вторая нормальная форма, третья нормальная форма.

Цели проектирования баз данных:

  1. Обеспечить возможность хранения в базе данных всех необходимых данных.

  2. Исключить избыточность данных.

  3. Свести к минимуму количество хранимых в базе данных отношений.

  4. Нормализовать отношения для упрощения проблем, связанных с модификацией данных.

Декомпозиция отношения – разбиение некоторого отношения на более мелкие составные части, с целью более детального изучения.

Нормализация – формальная процедура разбиения некоторой реляционной таблицы на 2 или более с целью получения такого проекта БД, в котором исключена избыточность информации. Это, кроме экономии памяти, исключает возможную противоречивость хранимых данных и создания структуры, в которой предусмотрена возможность ее будущих изменений, и влияние этих изменений на приложения, использующих информацию в БД, минимально.

В отношении R атрибут Y функционально зависит от атрибута X (X и Y могут быть составными) в том и только в том случае, если каждому значению X соответствует в точности одно значение Y. Обозначается: R.X (r) R.Y.

В отношении R атрибут Y находится в полной функциональной зависимости от составного атрибута X, если он функционально зависит от X и не зависит функционально от любого подмножества атрибута X.

Таблица находится в первой нормальной форме (1НФ) тогда и только тогда, когда ни одна из ее строк не содержит в любом своем поле более одного значения и ни одно из ее ключевых полей не пусто.

Первая нормальная форма является основой реляционной модели данных, т.е. любая таблица в базе данных автоматически находится в первой нормальной форме.

Таблица находится во второй нормальной форме (2НФ), если она удовлетворяет определению 1НФ и все ее поля, не входящие в первичный ключ, связаны полной функциональной зависимостью с первичным ключом.

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

Если же первичный ключ составной, то таблица необязательно находится во второй нормальной форме. Тогда ее необходимо разделить на две или более таблиц таким образом, чтобы первичный ключ однозначно идентифицировал значение в любом поле.

Таблица находится в третьей нормальной форме (3НФ), если она удовлетворяет определению 2НФ и не одно из ее не ключевых полей не зависит функционально от любого другого не ключевого поля.

Требование третьей нормальной формы сводится к тому, чтобы все не ключевые зависели только от первичного ключа и не зависели друг от друга.

  1. Раскройте следующие понятия: набор данных, курсор набора данных, текущая запись. Охарактеризуйте свойства и методы для навигации по набору данных программно (BOF, EOF, RecordCount, RecNo, First, Last и др.).

п Набор данных - это множество записей из одной или нескольких таблиц базы данных.

Под курсором набора данных понимают указатель текущей записи в конкретном наборе данных.

Текущая запись – это та запись, над которой в данный момент времени можно выполнять какие-либо операции (удаление, изменение, чтение значений, содержащихся в полях записи).

Пользователь может перемещаться к началу и концу набора записей, к следующей или предыдущей записи по отношению к текущей, с помощью компонента TDBNavigator и встроенных возможностей компонента TDBGrid.

В классе ТТаble содержится набор методов, позволяющих выполнять подобное перемещение указателя внутри набора данных программно.

  • First - метод, устанавливает курсор на первую запись набора данных и делает эту запись активной;

  • Last - метод, устанавливает курсор на последнюю запись набора данных и делает эту запись активной;

  • Next - метод, перемещает курсор на следующую запись набора данных и делает эту запись активной;

  • Prior - метод, перемещает курсор на предыдущую запись набора данных и делает эту запись активной;

  • MoveBy (n: Integer): Integer - перемещает курсор на n записей к концу набора данных (n > 0) или к началу набора (n< 0). Данная функция возвращает число записей, на которое указатель был смещен реально;

  • FindFisrt - переводит курсор на первую запись, удовлетворяющую фильтру, и возвращает значение True, если перемещение указателя прошло успешно;

  • FindLast - переводит курсор на последнюю запись, удовлетворяющую фильтру;

  • FindNext - переводит курсор на следующую запись, удовлетворяющую фильтру;

  • FindPrior - переводит курсор на предыдущую запись, удовлетворяющую фильтру.

Свойство BOF возвращает значение True, если курсор установлен на первую запись в наборе данных.

Свойство EOF возвращает значение True, если курсор установлен на последнюю запись в наборе данных.

Свойство RecordCount возвращает текущее число записей в наборе данных.

Свойство RecNo возвращает номер текущей записи в наборе данных.

Для выполнения действий от первой записи и до конца набора данных используют цикл while not EOF.

Пример:

with Table 1 do

begin

First;

while not EOF do

begin

//{Какие-либо действия}

Next;

end; // While

end; //With