Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Индексирование, транзакция, журнализация.
Различают 2 архитектуры: 1. Файл-сервер; 2. Клиент-сервер. Под файл-сервером применительно к БД подразумевается следующее: БД находится на сервере, а на файле находится ПО (файл – В архитектуре файл – сервер файл скачивается на ПК пользователя с помощью команд ОС. Клиент- сервер, с клиентом на сервер поступает запрос, сформированный в ходе команд на языке SQL.
Для работы с БД используются несколько технологий: · технология BDE (для работы с настольной БД, т.е. БД и приложения расположены на одном ПК); · технология ADO – это технология предназначена больше для архитектуры файл–сервер и клиент–сервер, а также может быть использована настольной БД; · технология с работой БД «удалённая БД», например DP Express и MSQL
Для работы с БД по технологии BDE используются следующие утилиты: 1. BDE Administrator. Предназначена для alias или псевдонима БД – это путь к БД и драйвер СУБД 2. Data Base Desktop – это оболочка для создания таблиц и запросов в выбранной СУБД Индексирование В подчинённой таблице должно быть наличие вторичного индекса (Secondary Indexes). Для того, чтобы создать в Data Base Desktop’е вторичный индекс, нужно выбрать свойства таблица и выбрать Secondary Indexes, определить к какому полю идёт вторичный индекс, после этого даём имя этому индексу и сохраняем его. Компоненты, находящиеся на вкладе BDE и на вкладке Data Access называются невидимыми и предназначены для работы с БД технологии доступа BDE. Data Access > Data Search BDE > table (таблица), query (запрос) Форма, называемая дата-модуль, В access’e допустимо следующее: отсутствие первичного ключа в таблице, а в PARADOX’E обязательно наличие первичного ключа, для этого искусственно ввести поле, у которого тип будет автоинкрементный. Журнализация Журнализация изменений — функция СУБД, которая сохраняет информацию, необходимую для восстановления базы данных в предыдущее согласованное состояние в случае логических или физических отказов. В простейшем случае журнализация изменений заключается в последовательной записи во внешнюю память всех изменений, выполняемых в базе данных. Записывается следующая информация: порядковый номер, тип и время изменения; идентификатор транзакции; объект, подвергшийся изменению (номер хранимого файла и номер блока данных в нём, номер строки внутри блока); предыдущее состояние объекта и новое состояние объекта. Формируемая таким образом информация называется журнал изменений базы данных. Журнал содержит отметки начала и завершения транзакции, и отметки принятия контрольной точки (см. ниже). В СУБД с отложенной записью блоки данных внешней памяти снабжаются отметкой порядкового номера последнего изменения, которое было выполнено над этим блоком данных. В случае сбоя системы эта отметка позволяет узнать какая версия блока данных успела достичь внешней памяти. СУБД с отложенной записью периодически выполняет контрольные точки. Во время выполнения этого процесса все незаписанные данные переносятся на внешнюю память, а в журнал пишется отметка принятия контрольной точки. После этого содержимое журнала, записанное до контрольной точки может быть удалено. Журнал изменений может не записываться непосредственно во внешнюю память, а аккумулироваться в оперативной. В случае подтверждения транзакции СУБД дожидается записи оставшейся части журнала на внешнюю память. Таким образом гарантируется, что все данные, внесённые после сигнала подтверждения, будут перенесены во внешнюю память, не дожидаясь переписи всех измененных блоков из дискового кэша. СУБД дожидается записи оставшейся части журнала так же при выполнении контрольной точки. В случае логического отказа или сигнала отката одной транзакции журнал сканируется в обратном направлении, и все записи отменяемой транзакции извлекаются из журнала вплоть до отметки начала транзакции. Согласно извлеченной информации выполняются действия, отменяющие действия транзакции, а в журнал записываются компенсирующие записи. Этот процесс называется откат (rollback). В случае физического отказа, если ни журнал, ни сама база данных не повреждена, то выполняется процесс прогонки(rollforward). Журнал сканируется в прямом направлении, начиная от предыдущей контрольной точки. Все записи извлекаются из журнала вплоть до конца журнала. Извлеченная из журнала информация вносится в блоки данных внешней памяти, у которых отметка номера изменений меньше, чем записанная в журнале. Если в процессе прогонки снова возникает сбой, то сканирование журнала вновь начнется сначала, но фактически восстановление продолжится с той точки, откуда оно прервалось. Хранимые процедуры Механизм хранимых процедур позволяет создавать подпрограммы, работающие на сервере и управляющие его процессами. Таким образом, размещение на сервере хранимых процедур означает, что прикладные функции приложения разделены между клиентом и сервером. Трафик обмена информацией между клиентом и сервером резко уменьшается. Триггеры Централизованный контроль целостности базы данных в модели сервера баз данных выполняется с использованием механизма триггеров. Триггеры также являются частью БД. Триггер — это особый тип хранимой процедуры, реагирующий на возникновение определенного события в БД. Он активизируется при попытке изменения данных — при операциях добавления, обновления и удаления. Триггеры определяются для конкретных таблиц БД. Внедрение триггеров незначительно влияет на производительность сервера и часто используется для усиления приложений, выполняющих многокаскадные операции в БД. 23.05.2016 1) Поиск информации (бывает последовательный, индексный) Методы поиска: locate (перемещает указатель на найденную запись), а какая надпись найдена – look up Для индексного поиска нужно: создать индекс, тем самым создается индексный файл 2) Фильтрация информации (действует только на которой задаем) Можно фильтровать: по полю (полям) и по значению Запросы на выборку Запросы бывают: могут возвращать результаты, а могут не возвращать результаты, Язык запросов SQL (делится на 2 языка: 1- язык манипулирования данными (DML), 2-язык определения данных (DDL). Алгоритм создания запроса: 1. Создаем запрос в Delphi (компонент Query) + должны указать источник данных (data source) Свойства query: Active – включено/выключен Autorefresh – поставить true DataBaseName – указать путь к БД или альяс Filter, Filtered – фильтрация Params – параметры SQL – самое главное свойство, при помощи него задаём строку запроса Запросы можно выполнить в Delphi (динамический, статический запросы). При динамическом запросе свойство Query SQL – SQLBUILDER для создания запросов на выборку. Алгоритм создания запроса: 2. Добавляем кнопку. Создаем событие при нажатии на кнопку: А) нужно деактивировать либо закрыть запрос Полный вариант: Begin 1 DataModule2.Query1.Active:=false; DataModule2.Query1. Close; DataModule2.Query1.SQL.Clear; 3 Помещаем строку запроса в компонент query DataModule2.Query1.SQL.Add(‘SELECT mbfkl;mfklhfghlf ‘); DataModule2.Query1.SQL.Add(‘fdgdfkjfdfkshfjhsdfjihfdjihdfsihjpfdp‘); DataModule2.Query1.SQL.Add(‘afk[afkdafkdsofkpsodfdspof‘); DataModule2.Query1.SQL.Add(‘podkspdosgpodskgpogkpkodsgok‘); DataModule2.Query1.SQL.Add(‘afk[afkdafkdpsofkpsodfdspof‘); ShowMessage(DataModule2.Query1.SQL.Text; [Для того,чтобы посмотреть ошибки] DataModule2.Query1.Open 4/1 DataModule2.Query1.ExecSQL; DataModule2.Query1.Open (Active:=true);
End;
Сокращенный вариант: Begin With DataModule2.Query1 do begin Active:=false; Close; SQL.Clear; 3 Помещаем строку запроса в компонент query SQL.Add(‘SELECT mbfkl;mfklhfghlf ‘); Add(‘fdgdfkjfdfkshfjhsdfjihfdjihdfsihjpfdp‘); Add(‘afk[afkdafkdsofkpsodfdspof‘); Add(‘podkspdosgpodskgpogkpkodsgok‘); Add(‘afk[afkdafkdpsofkpsodfdspof‘); ShowMessage(SQL.Text; [Для того,чтобы посмотреть ошибки] DataModule2.Query1.Open 4/1 DataModule2.Query1.ExecSQL; DataModule2.Query1.Open (Active:=true); ///
End;
Date: 2016-07-18; view: 352; Нарушение авторских прав |