C.12.2.6. Корреляционные имена 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

C.12.2.6. Корреляционные имена



 

Для триггера, который возбуждается только для удаления есть только значение ячейки old.

 

  DELETE INSERT UPDATE
BEFORE :Old :New :Old,:New
AFTER :Old :New :Old

 

Триггер возбуждается по событию, до события - old, после - new. Во время использования триггер может обратиться как к старым так и новым значениям

: old корреляционные имена

: new

активирующий оператор :old : new
INSERT не определенно значение null значение, которое вводится после выполнения оператора
UPDATE исходное значение содержащиеся перед обновление данных новое значение, которое будет введено после выполнения оператора
DELETE определенно, исходное значение, содержащееся в строке перед ее удалением не определена везде null

 

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

INSERTING - TRUE если активирован оператор INSERT, FALSE - в противном случае;

DELETING - TRUE если активирован оператор DELETE, FALSE - в противном случае;

UPDATING - TRUE если активирован оператор UPDATE, FALSE - в противном случае;

Пример

Drop table USP;

Drop table predmet;

Drop table teachers;

Drop table students;

Drop table students1;

 

Create table students(snum number not null;

Sfam varchar 2(10);

Stip number;

premory key (snum));

 

Create table students1(snum number not null;

Sfam varchar 2(10);

Stip number;

Tip varchar 2(10));

 

Create table teachers (tnum number not null;

tfam varchar 2(10);

premory key (tnum));

 

Create table predmet (pnum number not null;

Pname varchar 2(10);

Sfam varchar 2(10);

Hours number;

Couts number;

premory key (pnum);

foreign key (tnum) references teachers);

 

Create table USP (unum number not null;

Ocenka number;

snum number not null;

unum number not null;

premory key (unum)

foreign key (snum) references student;

foreign key (pnum) references predmet);

Drop table TRG;

 

Create trigger TRG

Before insert or delete or update student

For each row

Declare

Rw1 number;

Rw2 varchar 2(10);

Rw3 number;

Rw4 varchar 2(10);

Begin

If updating then

Begin

Rw1=:old.snum;

Rw2 =: old.sfam;

Rw3=:old.stip;

Rw4:= ▒update▓;

Insert into students1 Values (rw1,rw2,rw3,rw4);

End;

Elsif deleting then

Begin

Rw1:=:old.snum;

Rw2:=:old.sfam;

Rw3:=:old.stip;

Rw4:= ▒delete▓;

Insert into students1 Values (rw1,rw2,rw3,rw4);

End;

Elsif inserting then

Begin

Rw1:=:new.snum;

Rw2:=:new.sfam;

Rw3:=:new.stip;

Rw4:= ▒insert▓;

Insert into students1 Values (rw1,rw2,rw3,rw4);

End;

Endif;

End;

 

[заполнение таблиц]

[изменение таблиц]

 

Триггер - это, фактически, хранимая процедура без параметров, содержащая оператор(ы) изменения базы данных и вызываемая сервером баз данных автоматически при возникновении некоторого события (обычно под событием понимается выполнение определенного рода операторов изменения базы данных). Более точно, при определении триггера указывается вид события, возбуждающего триггер, условие его срабатывания и набор операторов, которые должны быть произведены при выполнении условия. Имеется несколько практических областей применения механизма триггеров. Во-первых, триггеры позволяют поддерживать логическую целостность базы данных в тех случаях, когда пользовательская транзакция не может не нарушить эту целостность. Простой пример: информационная система отдела кадров. База данных состоит из двух таблиц:

СЛУЖАЩИЕ (НОМЕР_ПРОПУСКА, ФИО, НОМЕР_ОТДЕЛА, ЗАРПЛАТА)

ОТДЕЛЫ (НОМЕР_ОТДЕЛА, НОМЕР_ПРОПУСКА_НАЧАЛЬНИКА, ЧИСЛО_СЛУЖАЩИХ,

ФОНД_ЗАРПЛАТЫ)

Естественные ограничения целостности могут быть выражены следующим образом:

SELECT ЧИСЛО_СЛУЖАЩИХ FROM ОТДЕЛЫ =

SELECT COUNT (*) FROM СЛУЖАЩИЕ

WHERE НОМЕР_ОТДЕЛА = ОТДЕЛЫ.НОМЕР_ОТДЕЛА

SELECT ФОНД_ЗАРПЛАТЫ FROM ОТДЕЛЫ <=

SELECT SUM (ЗАРПЛАТА) FROM СЛУЖАЩИЕ

WHERE НОМЕР_ОТДЕЛА = ОТДЕЛЫ.НОМЕР_ОТДЕЛА

Предположим, что в отделе кадров работает всего два человека: начальник отдела кадров, который, естественно, имеет доступ к обеим таблицам и, в частности, является ответственным за выполнение операций смены начальника отдела или изменения фонда заработной платы. Второй человек - рядовой клерк, который по указанию начальника выполняет рутинную работу оформления новых сотрудников или увольнения ранее работавших. Естественно, что для выполнения его операций достаточно иметь доступ только к таблице СОТРУДНИКИ. Но тогда при выполнении любой из двух операций он просто не может не нарушить по крайней мере первое из упомянутых выше ограничений целостности. Конечно, можно внести соответствующие корректирующие действия в код прикладной программы, соответствующей операциям клерка, но тогда он неявно получит доступ по изменению ответственной таблицы ОТДЕЛЫ. Поэтому лучше определить триггеры вида

ON INSERT TO СЛУЖАЩИЕ

UPDATE ОТДЕЛЫ SET NEW (ЧИСЛО_СЛУЖАЩИХ) = OLD (ЧИСЛО_СЛУЖАЩИХ) + 1

WHERE НОМЕР_ОТДЕЛА = СЛУЖАЩИЕ.НОМЕР_ОТДЕЛА

ON DELETE FROM СЛУЖАЩИЕ

UPDATE ОТДЕЛЫ SET NEW (ЧИСЛО_СЛУЖАЩИХ) = OLD (ЧИСЛО_СЛУЖАЩИХ) - 1

WHERE НОМЕР_ОТДЕЛА = СЛУЖАЩИЕ.НОМЕР_ОТДЕЛА

Эти триггеры будут автоматически вызываться на стороне сервера баз данных и незаметно для клерка поддерживать логическую целостность базы данных.

Вторая область применения триггеров - автоматический мониторинг действий конечных пользователей. Снова приведем очень простой пример. Начальник отдела кадров хочет знать, сколько операций в день выполняет его клерк. Тогда он должен сказать об этом на стадии анализа требований, и в результате, например, будет создана таблица

СТАТИСТИКА (ТЕКУЩАЯ_ДАТА, ЧИСЛО_ОПЕРАЦИЙ)

и триггер вида

ON INSERT, DELETE FROM СЛУЖАЩИЕ

IF EXISTS (SELECT * FROM СТАТИСТИКА WHERE ТЕКУЩАЯ_ДАТА = TODAY)

UPDATE СТАТИСТИКА SET

NEW (ЧИСЛО_ОПЕРАЦИЙ) = OLD (ЧИСЛО_ОПЕРАЦИЙ) + 1

WHERE ТЕКУЩАЯ_ДАТА = TODAY

ELSE

INSERT INTO СТАТИСТИКА (TODAY, 1)

Два замечания. Во-первых, в распространенном на сегодня стандарте SQL/92 механизм триггеров не специфицирован. В СУБД, которые поддерживают этот механизм, соответствующие языковые средства и их семантика различаются. Поэтому на текущий момент использование механизма триггеров неявно влечет сильную привязку к конкретному производителю. Во-вторых, как и в случае определения представлений и ограничений целостности, при определении триггеров необходимо учитывать распределенный характер базы данных и возможности сервера ссылаться на "чужие" таблицы.

Наконец, в базе данных могут находитьсяхранимые процедуры. Интересно, что в стандарте SQL/92 вообще не встречается термин "хранимая процедура". В стандарте специфицированы два способа взаимодействия прикладной программы с сервером баз данных.

1.Первый, наиболее часто используемый способ состоит во встраивании операторов языка SQL в программу, написанную на одном из традиционных языков программирования. В самом стандарте определены правила встраивания SQL в программы, которые написаны на языках Си, Паскаль, Фортран, Ада и т. д.

2. Второй способ основан на специфицированном в стандарте "языке модулей SQL". С использованием этого языка можно определить модуль, содержащий несколько процедур, каждая из которых соответствует некоторому параметризованному оператору SQL. В прикладной программе содержатся не операторы SQL, а лишь вызовы процедур (с указанием фактических параметров) из модуля SQL, с которым эта прикладная программа связана (правила связывания в стандарте не определены). Заметим, что стандарт не обязывает следовать каким-то конкретным правилам при реализации встроенного SQL или языка модулей.

Идея же процедур SQL, определяемых на языке модулей, повлекла внедрение во многие реализации механизма хранимых процедур. Хранимая процедура - это именованная, параметризованная конструкция, определяемая на языке SQL или некотором его расширении, встраиваемая в прикладную программу, компилируемая на стороне сервера во время обработки текста процедуры прекомпилятором. Выполняемый или интерпретируемый код хранимой процедуры сохраняется в базе данных, а сама она может быть вызвана из любой прикладной программы авторизованного пользователя (того, кто получил привилегию на выполнение этой процедуры) с указанием фактических параметров.

Процедуры и функции

 

Процедуры и функции написанные на языке SQL во многом схожи с такими же понятиями в других языках. Процедура сначала:

1. создается при помощи Create or replace procedure

2. компилируется

3. сохраняется в скомпилированном виде в б.д.

4. при вызове процедуры ей можно передавать параметры

Вызовом процедуры является оператор PL\SQL и он не может быть частью выражения. В состав процедуры входит раздел объявлений, выполняемый раздел и раздел исключительных ситуаций.

Объявление процедуры

Create [ or replace] procedure имя процедуры

[ (аргумент [{ in /out/ in out}] mun, тип аргумента, аргумента 2┘┘)]

{is/ AS}

пример

Create or replace procedure p in cena avto

P √ name in out cena avto. Name % type;

P √ god in out number;

P √ probeg in out number;

P √ ctna in out number; as

Begin

Insert into cena avto (name, god, probeg, cena)

Values (pname, pgod, pprobeg, pcena);

End

┘┘┘┘┘

exception p in cena avto (▒volga▓,2003,0,210.000);

 

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

in(в) out(из) in out (в,из)

Если вид не указан то по умолчанию in

in - значение фактического параметра передается в процедуру при ее вызове. Внутри процедуры формальные параметры могут использованы толь для чтения. При завершении процедуры фактические параметры не изменяются

out - любое значение имеющее фактические параметры, при вызове процедуры игнорируется. Внутри процедуры формальные параметры рассматриваются только для записи. При завершении работы процедуры содержание формальных параметров присваиваться фактическим

in out - значение фактического параметра передается в процедуру при ее вызове. Внутри процедуры формальные параметры могут использованы толь для чтения. При завершении работы процедуры содержание формальных параметров присваиваться фактическим

Тело процедуры это блокPL\SQL, который содержит раздел объявлений, выполняемый раздел и раздел исключ. ситуаций. Раздел объявлений располагается между ключевым словам is\as и Begin. Выполняемый раздел - между Begin и exception. Раздел исключ. ситуаций √ exception и end.

 

Функция

 

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

Вызов функции - это часть некоторого выражения, а вызов процедуры √ это самостоятельный оператор.

Объявление функции

Create [ or replace] function имя функции

[ (аргумент [{ in /out/ in out}] mun, аргумент [{ in /out/ in out}] mun)]

return возвращаемый тип {is/ AS}

тело функции

Внутри тела функции оператор return применяется для возврата результата работы функцию в вызванную среду

Return выражение, где выражение есть возвращаемое значение

Функция применяется когда требуется вернуть одно значение. Значение выражения преобразуются к типу указанному в команде return при описании функции. В функции может быть несколько операторов return, хотя выполняться будет одно из них

Create or replace function имя функции (

F √ name ctna-avto. Name % type,

F √ god ctna-avto. Name % type,

F √ cena ctna-avto. Name % type)

Return varchar 2 is

Begin

Return F √ cena + 1000;

End;

 

Курсоры.

 

В ответ на запросы пользователя SQL может возвращать многие сотни тысяч сторон, общим объемом в 10 Мбайт. В системе не каждый может иметь достаточный объем памяти и обработать их.

Кроме того, обычно клиент работает с небольшой частью данных в определенный момент времени, например с одной строкой, а не со всем набором строк.

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

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

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

Для обработки SQL оператора Oracle выделяет атлас памяти, называемый контекстной областью. Она содержит информацию, необходимую для завершения обработки:

1. число строк, обработанных оператором

2. указатель на представление этого оператора

3. активный набор (набор строк, возвращение запросом).

Курсор - это указатель на контекстную область, с помощью которого PL SQL может управляться контекстной областью и ее состоянием во время обработки оператора.

Курсор - разновидность файла, которая создается во время.

Это средство погруженного SQL хранения результатов для дальнейшей обработки.

Для использования курсоров надо:

1. объявить курсор

2. открыть курсор для запроса

3. выбрать результаты в переменные PL SQL

4. закрыть курсор

1.Объявление курсора.

При объявлении курсора ему назначается имя и ставится в соответствие некоторой Select.

Cursor имя курсора IS оператор Select

Курсор должен быть объявлен (описан) до того, как на него будет произведена ссылка в нем, можно использовать любые оператор Select, в том числе соединение (joins), объединение (union), вычитание (minus).

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

Declare

V - probeg cena √ avto. probeg % type;

V - cena cena √ avto. Ceno % type;

Объявление курсора: cursor c √ cena is

Select from cena √ avto where cena = v √ cena;

Begin

V √ cena: = 2000;

Open c √ cena;

End.

2. Открытие курсора.

Open - имя курсора.

Позволяет СУБД обработать запрос курсора и записать результат в ╚курсор╩.

При открытии курсора происходит:

1. анализируется значения переменных привязки

2. на основе значений переменных привязывается определенный активный набор (т.е. набор строк, возвращаемый запросом)

3. указатель активный: наборы устанавливаются на одну строку.

Чтобы переменным привязки присвоить новые значения и курсор, работая с ними надо курсор закрыть, присвоить переменной привязки новые значения и снова открыть курсор.

3. Выбрать данные для обработки (считывание строк из курсора).

FETCH - имя курсора INTO √ список переменных

FETCH имя курсора INTO запись PL/SQL

С помощью оператора FETCH считывается 1 строка из курсора. Тип переменной курсора должен соответствовать переменной выбора запроса.

В случае если считывание идет в запись PL/SQL, то переменная типа запись объявляется

V √ cur cena √ avto % ROWTYPE

4. Закрытие курсора.

Close имя курсора. Закрытие курсора производят после того как выбран весь активный набор. При этом все отведенные ресурсы для курсора освобождают (пространство для хранения активного набора и временное пространство, используемое для определения такого набора).

Курсорные атрибуты.

Добавляются к имени курсора в блоке PL/SQL подобно атрибутам % type и % nowtype.

1. % found √ возвращает значение TRUE если строка была выбрана RALSE если не выбрана строка.

2. % notfound √ противоположно % found

3. % open используется для определения открыт или нет соответствующий курсор. Если открыт - TRUE, иначе √ FALSE.

4. % ROWCOUNT √ возвращает число строк, считанных курсором.

Циклы выборки.

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

Примеры:

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

Установка привилегий:

1. войти в ORACLE под именем SUSTEM пароль MANAGER

2. ввести следующую запись:

SQL grant all privileges to scott

3. зайти в SQL под именем scott

Пример:

Declare

V √ name cena_avto name % TYPE

V √ cena cena_avto cena % type

V √ probeg cena_avto probeg % type

V √ aod cena_avto god % type

/ *объявляем курсор*/

cursor curmy is

select name, probeg, cena, god from cena_avto

Where god between 1991 and 12000

Begin

Open curmy

Loop

/ *считываем информацию о машине* /

fetch aurmy into v_name v_cena v_probeg v_god;

(выйдем из цикла, когда строк для выбора больше нет)

exit when cuemy % NOFFOUND

(обработали считанные строки)

insert into table (name, probeg, cena, god)

values (v_name, v_probeg, v_ceno, v-god)

End loop;

(освободить ресурсы, используемые курсор)

close curmy

(завершим работу)

commit

End.

Пример больница:

Пациент, его атрибуты

Врачи, карточка

Create table Pazient

(FIO varchar 2 (30)

Vozrast char (20)

N polis char (20)

Address varchar 2 (30)

N kart char (20) not null

N uch char (20 not null)

Primary ney (N kart N uch))

Create table Vrach

(FIO vrach varchar 2 (30)

spezialnost char (30)

N vracha char (20) not null

Primary ney (N vrach))

Create table kartochka

(data char (20)

shialoba varchar 2 (2000)

diagnoz varchar 2 (2000)

lechenie varchar 2 (2000)

povt priem char (20)

N ZAP char (20) not null

N kart char (20)

N uch char (20)

Primary key (N ZAP)

Foreing key (N kart N uch)

Pacient (N kart N uch))

Create table uslugi

Name varchar 2 (500) not null

Cena char (10)

N vracha char (20)

N ZAP char (20)

Brimary rey (name)

Forein key (N ZAP)

Create table vizov vracha

N vrach char (20)

N ZAP char (20)

Foreing key (N vrach)

Расписание и начисление заработной платы.

Crate procedure

V_vrach (nvr in char npo in char) is begin

Declare

Cursor cur2 is select vrach. Kartochka n ZAP from vrach pacient kartochka where nach fio vrach = nvr and pacient n polis = npo and kartochka nuch = pacient nuch

(объявляем курсорную переменную)

cur2 VIZOV VRACH % type

begin

open cur2

fetch cur2 into

cur2

insert into VIZOV VRACH

values (cur2-r n vrach cur2_r nZAP)

close cur2

end

end

/

execute v_vrach (IVANOV)

selest * from VIZOV_ VRACHA

 


Тема 13. Физическая организация БД на примере Oracle9i. Организация табличных пространств, журналов транзакций. Серверные процессы. Структуры памяти и взаимодействие между процессами.

 

Лекции: 4 часа

Архитектура БД.

 

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

Табличное пространство: Файлы данных группируются в определенных табличных пространствах. Перед вводом информации в БД необходимо сначала создать табличное пространство - table space. А затем только саму таблицу с данными. Пример: Шкаф - это база данных, ящики в шкафу - табличное пространство, папки - файлы данных, листы бумаги - таблицы.

Наличие следующих таблиц пространств обязательно.

1. Системное табличное пространство SYSTEM, в нем содержится информация, необходимая для функционирования БД. Это обязательное табличное пространство.

2. TEMP - временное табличное пространство, в нем все временные таблицы, т.е. oracle при необходимости сохраняет на диске временные файлы (рабочая область на диске для выполнения внутренних транзакций).

3. Вспомогательное табличное пространство TOOLS, обеспечивает хранение объектов БД, предназначенных для поддержки вспомогательных средств oracle, к которым относится генератор отчетов oracle reports приложение.

4. Пользовательское табличное пространство - USERS - содержит объекты БД, принадлежащие отдельным пользователям.

5. Табличное пространство сегментов отката ROOL BACK, хранится информация, используемая при отмене выполняемых транзакций.

6. (Индекс) INDEX, табличное пространство индексов.

В БД Oracle имеются 2 группы файлов:

1) файлы данных, сгруппированных в табличном пространстве.

2) файлы данных журналов повтора.

Журналы транзакций (повтора): Это специальные файлы операционной системы, в которой Oracle записывает все изменения или транзакции, произведенные в БД при внесении изменений они сохраняются в оперативной памяти сервера для повышения его производительности (дисковый ввод\ вывод в 1000 р. медленнее). На диск записывается только окончательная версия измененных данных, с помощью журналов транзакций можно избежать утраты данных после сбоев. В БД должно быть не менее 2 оперативных журналов повтора, которые работают по жесткому принципу. Пусть есть 2 журнала повтора А и В:

1. По мере того, как транзакции создают, удаляют и модифицируют информацию БД, все изменения заносятся в журнал А.

2. Когда А заполнен целиком происходит переключение журналов и все записывается в журнал В.

Когда В заканчивается, то запись начинается опять в журнал в А и старые записи стираются (вся ранее записанная информация становится недоступной).

БД Oracle может работать в двух режимах:

1. Arhivelog содержимое всех журналов транзакций сохраняется перед началом их перезаписи, т.е. перед началом заполнения журнала транзакций, его содержимое переписывается в архивную копию.

2. Noarhivelog устанавливается по умолчанию. Сохранения старых журналов транзакций не проводится. Используется для устранения разовых сбоев.

Процессы: Поскольку БД - это набор программ (процессов), обрабатывающих файлы данных, то в ORACLE существует два типа таких программ (процессов):

1. пользовательские (клиентские) - это средства, используемые пользователями для доступа к БД. К ним относятся: среда программирования SQL+, генератор отчетов ORACLE reports, инструментальные средства ORACLE forms.

2. серверные процессы - принимают запросы от пользовательских процессов и непосредственно взаимодействуют с БД при выполнении этих запросов, т.е. с помощью серверных процессов осуществляется доступ пользовательских процессов к содержимому БД.

Различают следующие серверные процессы:

1. системный процесс записи в БД. Database Writer (DBWR) √ обязательный системный процесс, записывающий измененные блоки данных в соответствующие файлы, т.е. вносятся изменения в файлы данных на физическом уровне.

2. генератор контрольных точек. Checkpoint (CKPT) √ необязательный процесс, осуществляет контроль за тем, чтобы все изменения данных были действительно записаны на диск в момент сохранения контрольной точки.

3. процесс записи в журналы. LOG Writer (LGWR) √ обязательный процесс. Записывает данные в журналы повтора.

4. системный монитор. System Monitor (SMON) √ обязательный процесс, выполняющий процедуры восстановления при запуске БД.

5. монитор процессов. Process Monitor (PMON) √ обязательный процесс, освобождает занятые пользователем ресурсы в случае аварийного завершения его сеанса работы.

Необязательные процессы

1. Arhive (архиватор) √ создание архивных копий журнала повторов в режиме Arhivelog;

2. Lock √ процесс блокировки, используется в режиме параллельного сервера (это обязательный процесс);

3. Recoverer (RECO) √ процесс восстановления, необходимый процесс, используемый в режиме распределенного сервера.

Архитектура √ это сборное понятие.

Структура памяти и взаимодействие между процессами:В сервере ORACLE используется два типа областей памяти:

1.Глобальная системная область (System Global Area √ SGA)

2.Глобальная область программ (Program Global Area √ PGA)

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

SGA совместно используется всеми серверными и пользовательскими процессами.

SGA располагается в оперативной памяти.


SGA включает в себя 4 основные части:

1. КЭШ √ буфер данных (Data Cache) √ это область, где БД хранит самые свежие блоки данных, прочитанные с диска. При вводе в БД новой информации, она сначала попадает в КЭШ √ буфер и только затем становится доступной всем пользовательским процессам.

2. КЭШ √ словарь или строковый КЭШ (Dictionary cache) √ содержит строки из словаря БД, в котором записана вся информация, необходимая для нормального функционирования БД. Например, то, каким пользователям разрешен доступ к БД, какие объекты БД принадлежат конкретным пользователям и где эти объекты расположены.

3. Буфер журнала повтора (REDOLOG) √ перед записью транзакции в журнал повтора, она попадает вначале в буфер, который периодически сбрасывается в журнал повтора.

4. Разделяемая SQL √ область (SQLAREA) √ служит КЭШ √ буфером программ пользователей.

Кэш √ словарь Dictionory CACHE Буфер журнала повтора REDO LDG  
Кэш-буфер данных DATA CACHE SQL - область SQL - AREA  

 


Тема 14. Ограничения целостности. Технология оперативной обработки транзакций (OLTP -технология). Информационные хранилища. OLAP - технология. Проблема создания и сжатия больших информационных массивов, информационных хранилищ и складов данных.

 

Лекции: 2 часа

 

В 60х гг. появились АИС предназначенные для хранения и обработки информации. По мере интеллектуализации АИС появилась возможность обработки текстовых документов на естественном языке (изображения и другие виды и формы представления данных).

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

- Документальные

- Фактографические

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

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

 



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 215; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.218.168.16 (0.224 с.)