- •Экзаменационный билет №1
- •1. База данных: определения, признаки базы данных.
- •2. DataBase Desktop: задание ключей в базе данных формата «Paradox».
- •Экзаменационный билет №2
- •1. Классификация баз данных.
- •2. DataBase Desktop: задание связей в базе данных формата «Paradox»
- •Экзаменационный билет №3
- •1. Иерархические базы данных.
- •2. Компоненты Delphi для работы с бд: tDatabase (назначение, свойства, методы события).
- •Свойства компонента
- •Методы компонента
- •Экзаменационный билет №4
- •1. Сетевые базы данных.
- •2. Компоненты Delphi для работы с бд: tTable (свойства и методы, используемые для подключения таблиц).
- •Экзаменационный билет №5
- •1. Реляционные базы данных.
- •2. Компоненты Delphi для работы с бд: tTable (свойства и методы, используемые для перемещения по таблице).
- •Экзаменационный билет №6
- •1. Объектно-ориентированные базы данных.
- •2. Компоненты Delphi для работы с бд: tTable (свойства и методы, используемые для сортировки таблиц).
- •Экзаменационный билет №7
- •1. Реляционная модель данных.
- •2. Компоненты Delphi для работы с бд: tTable (свойства и методы, используемые для фильтрования данных таблиц).
- •Экзаменационный билет №8
- •1. Структурная часть реляционной модели данных: типы данных, используемых в реляционной модели данных.
- •Типы данных
- •Простые типы данных
- •2. Компоненты Delphi для работы с бд: tTable (свойства и методы, используемые для манипулирования данными в таблицах).
- •Экзаменационный билет №9
- •1. Домен.
- •2. Компоненты Delphi для работы с бд: tDataSource (назначение, свойства, методы события).
- •Свойства компонента
- •Методы компонента
- •Сотрудники (Номер_сотрудника, Фамилия, Зарплата, Номер_отдела)
- •1 Иванов 1000 1
- •2 Петров 2000 2
- •3 Сидоров 3000 1
- •Вычисляемые Поля
- •Управление tdbGrid во время выполнения
- •Вычисляемые поля
- •Экзаменационный билет №13
- •Простые и составные ключи
- •Естественные и суррогатные ключи
- •Операторы sql
- •Операторы ddl (Data Definition Language) - операторы определения объектов базы данных
- •Операторы dml (Data Manipulation Language) - операторы манипулирования данными
- •Операторы защиты и управления данными
- •Отбор данных из одной таблицы
- •Отбор данных из нескольких таблиц
- •Использование имен корреляции (алиасов, псевдонимов)
- •Использование агрегатных функций в запросах
- •Использование агрегатных функций с группировками
- •Использование подзапросов
- •Использование объединения, пересечения и разности
- •Синтаксис оператора выборки данных (select)
- •Синтаксис оператора выборки
- •Синтаксис соединенных таблиц
- •Синтаксис условных выражений раздела where
- •Порядок выполнения оператора select
- •Стадия 1. Выполнение одиночного оператора select
- •Стадия 2. Выполнение операций union, except, intersect
- •Стадия 3. Упорядочение результата
- •Как на самом деле выполняется оператор select
- •Оператор соединения
- •Оператор пересечения
- •Оператор деления
- •1) Первая нормальная форма (1nf)
- •1) Вторая нормальная форма (2nf)
- •Панель компонент Rave
- •Компоненты вывода
- •Классы Rave
- •Целостность сущностей
- •Внешние ключи
- •2) Мост к данным
- •Об именовании компонент подключения данных
- •Управление видимостью подключения
- •Пользовательские подключения данных
- •5. Настройка подключений данных Использование событий для настройки ваших подключений данных
- •Замечания к правилам целостности сущностей и внешних ключей
- •2) Визуальная среда создания отчетов
- •Для родительского отношения
- •2) Описание tRvRenderPreview
- •Свойства tRvRenderPreview
- •События tRvRenderPreview
- •Свойства и события tRvRenderPrinter
- •Описание tRvRenderPdf
- •Описание tRvRenderHtml
- •Описание tRvRenderRtf
- •Описание tRvRenderText
- •Применение стратегий поддержания ссылочной целостности
- •При обновлении кортежа в родительском отношении
- •При удалении кортежа в родительском отношении
- •При вставке кортежа в дочернее отношение
- •При обновлении кортежа в дочернем отношении
- •2) 4. Rave подключения данных Мост к данным
- •Об именовании компонент подключения данных
- •Управление видимостью подключения
- •Пользовательские подключения данных
- •5. Настройка подключений данных Использование событий для настройки ваших подключений данных
- •Событие OnGetCols
- •Событие OnValidateRow
- •Событие OnRestore
- •2.2. Создание таблицы
- •2.3. Создание полей
События tRvRenderPreview
OnPageChange вызывается, когда сменяется текущая страница и позволяет программисту обновить пользовательский интерфейс для нового номера страницы.
OnZoomChange вызывается, когда изменяется текущий коэффициент масштабирования, ZoomFactor, что позволяет программисту обновить пользовательский интерфейс для нового коэффициента масштабирования.
Описание TRvRenderPrinter
К омпонент TRvRenderPrinter принимает файл созданный компонентом TRvNDRWriter и посылает его на текущий принтер. TRvRenderPrinter часто используется для печати из окна просмотра. TRvRenderPrinter это простой компонент, но и он имеет методы и свойства для управления печатью.
Свойства и события tRvRenderPrinter
FileName это имя файла отчета созданного компонентом TRvNDRWriter, если StreamMode равен smMemory или smFile. Потоковый режим smUser используется, когда программист хочет предоставить свой собственный потоковый объект (любой наследник от TStream) , назначив свойство Stream компоненту TRvNDRWriter, TRvRenderPrinter и/или TRvRenderPreview. У компоненты TrvRenderPrinter отсутствую свои события. Для посылки отчета на принтер сделайте вызов Execute или ExecuteCustom.
Описание tRvRenderPdf
К омпонент TRvRenderPDF позволяет создавать документы PDF (Adobe Acrobat) прямо из отчета. Шрифты могут быть встроены в документ PDF, путем установки свойства EmbedFonts в TRUE. Качество рисунков, включенных в PDF файл можно установить через указание процента качества в свойстве ImageQuality. Сжатые PDF документы можно создать, если установить свойство UseCompression в TRUE, подключив ZLib в uses и определив событие OnCompress так:
With TCompressionStream.Create(clMax, OutStream) do try
CopyFrom(InStream, InStream.Size);
finally
Free;
end; { with }
Самый простой путь создания возможностей вывода в приложении – это бросить компонент на форму, которая автоматически зарегистрирует этот формат и стандартные диалоги настройки и просмотра в TRvSystem. Если требуется более автоматический вывод, то можно вызвать метод Render с передачей или объекта NDR TStream или имени файла NDR как единственный параметр.
Описание tRvRenderHtml
К омпонент TRvRenderHTML преобразовывает поток NDR или файл в HTML страницы. Поддержаны текст, графика, линии и прямоугольники. Результат вывода в формате HTML 4.0 и разработан так, что бы вывод на печать был максимально точным.
Описание tRvRenderRtf
К омпонент TRvRenderRTF преобразовывает поток NDR или файл в формат RTF. Результат вывода в формате RTF и разработан так, что бы вывод на печать был максимально точным. Элементы в документе включаются как отдельные кадры "frames", для поддержки точного позиционирования на странице.
Описание tRvRenderText
К омпонент TRvRenderText преобразовывает поток NDR или файл в текстовый формат. Поддержаны только текстовые элементы, все остальные объекты, такие как графика или линии игнорируются. Свойство CPI позволяет указать количество символов на дюйм и свойство LPI позволяет указать количество строк на дюйм на выходно устройство. Примечание: конечный вывод на принтер может не совпадать с установками CPI или LPI поскольку в файл не вставляются никакие команды форматирования.
Экзаменационный билет №24
1) Существуют две основные стратегии поддержания ссылочной целостности:
RESTRICT (ОГРАНИЧИТЬ)- не разрешать выполнение операции, приводящей к нарушению ссылочной целостности. Это самая простая стратегия, требующая только проверки, имеются ли кортежи в дочернем отношении, связанные с некоторым кортежем в родительском отношении.
CASCADE (КАСКАДИРОВАТЬ)- разрешить выполнение требуемой операции, но внести при этом необходимые поправки в других отношениях так, чтобы не допустить нарушения ссылочной целостности и сохранить все имеющиеся связи. Изменение начинается в родительском отношении и каскадно выполняется в дочернем отношении. В реализации этой стратегии имеется одна тонкость, заключающаяся в том, что дочернее отношение само может быть родительским для некоторого третьего отношения. При этом может дополнительно потребоваться выполнение какой-либо стратегии и для этой связи и т.д. Если при этом какая-либо из каскадных операций (любого уровня) не может быть выполнена, то необходимо отказаться от первоначальной операции и вернуть базу данных в исходное состояние. Это самая сложная стратегия, но она хороша тем, что при этом не нарушается связь между кортежами родительского и дочернего отношений.
Эти стратегии являются стандартными и присутствуют во всех СУБД, в которых имеется поддержка ссылочной целостности.
Можно рассмотреть дополнительные стратегии поддержания ссылочной целостности:
SET NULL (УСТАНОВИТЬ В NULL) - разрешить выполнение требуемой операции, но все возникающие некорректные значения внешних ключей изменять на null-значения. Эта стратегия имеет два недостатка. Во-первых, для нее требуется допустить использование null-значений. Во-вторых, кортежи дочернего отношения теряют всякую связь с кортежами родительского отношения. Установить, с каким кортежем родительского отношения были связаны измененные кортежи дочернего отношения, после выполнения операции уже нельзя.
SET DEFAULT (УСТАНОВИТЬ ПО УМОЛЧАНИЮ) - разрешить выполнение требуемой операции, но все возникающие некорректные значения внешних ключей изменять на некоторое значение, принятое по умолчанию. Достоинство этой стратегии по сравнению с предыдущей в том, что она позволяет не пользоваться null-значеними. Недостатки заключаются в следующем. Во-первых, в родительском отношении должен быть некий кортеж, потенциальный ключ которого принят как значение по умолчанию для внешних ключей. В качестве такого "кортежа по умолчанию" обычно принимают специальный кортеж, заполненный нулевыми значениями (не null-значениями!). Этот кортеж нельзя удалять из родительского отношения, и в этом кортеже нельзя изменять значение потенциального ключа. Таким образом, не все кортежи родительского отношения становятся равнозначными, поэтому приходится прилагать дополнительные усилия для отслеживания этой неравнозначности. Это плата за отказ от использования null-значений. Во-вторых, как и в предыдущем случае, кортежи дочернего отношения теряют всякую связь с кортежами родительского отношения. Установить, с каким кортежем родительского отношения были связаны измененные кортежи дочернего отношения, после выполнения операции уже нельзя.
В некоторых реализация СУБД рассматривается еще одна стратегия поддержания ссылочной целостности:
IGNORE (ИГНОРИРОВАТЬ) - выполнять операции, не обращая внимания на нарушения ссылочной целостности.
Конечно, это не стратегия, а отказ от поддержки ссылочной целостности. В этом случае в дочернем отношении могут появляться некорректные значения внешних ключей, и вся ответственность за целостность базы данных ложится на пользователя.
В дополнение к приведенным стратегиям пользователь может придумать свою уникальную стратегию поддержания ссылочной целостности.