.RU

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



^ 18. О нормализации, функциональных и многозначных зависимостях

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

Как указывалось в п. 3.1, каждая таблица в реляционной БД удовлетворяет условию, в соответствии с которым в позиции на пересечении каждой строки и столбца таблицы всегда находится единственное атомарное значение, и никогда не может быть множества таких значений. Любая таблица, удовлетворяющая этому условию, называется нормализованной (см. таблицы рис. 4.2 – 4.4). Фактически, ненормализованные таблицы, т.е. таблицы, содержащие повторяющиеся группы (см. рис. 4.1), даже не допускаются в реляционной БД.

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

Теперь в дополнение к 1НФ можно определить дальнейшие уровни нормализации – вторую нормальную форму (2НФ), третью нормальную форму (3НФ) и т.д. По существу, таблица находится в 2НФ, если она находится в 1НФ и удовлетворяет, кроме того, некоторому дополнительному условию, суть которого будет рассмотрена ниже. Таблица находится в 3НФ, если она находится в 2НФ и, помимо этого, удовлетворяет еще другому дополнительному условию и т.д.

Таким образом, каждая нормальная форма является в некотором смысле более ограниченной, но и более желательной, чем предшествующая. Это связано с тем, что "(N+1)-я нормальная форма" не обладает некоторыми непривлекательными особенностями, свойственным "N-й нормальной форме". Общий смысл дополнительного условия, налагаемого на (N+1)-ю нормальную форму по отношению к N-й нормальной форме, состоит в исключении этих непривлекательных особенностей. В п. 4.3 мы выявляли непривлекательные особенности таблицы рис. 4.2 и для их исключения выполняли "интуитивную нормализацию".

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

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

Например, в таблице Блюда (рис. 4.4) поля Блюдо и Вид функционально зависят от ключа БЛ, а в таблице Поставщики рис. 4.3 поле Страна функционально зависит от составного ключа (Поставщик, Город). Однако последняя зависимость не является функционально полной, так как Страна функционально зависит и от части ключа – поля Город.

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

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

Обучение

Рис. 4.5. К иллюстрации многозначных зависимостей

Для примера рассмотрим таблицу "Обучение" (рис. 4.5). В ней есть многозначная зависимость "Дисциплина-Преподаватель": дисциплина (в примере Информатика) может может читаться несколькими преподавателями (в примере Шипиловым и Голованевским). Есть и другая многозначная зависимость "Дисциплина-Учебник": при изучении Информатики используются учебники "Паскаль для всех" и "Язык Си". При этом Преподаватель и Учебник не связныфункциональной зависимостью, что приводит к появлению избыточности (для добавление еще одного учебника придется ввести в таблицу две новых строки). Дело улучшается при замене этой таблицы на две: (Дисциплина-Преподаватель и Дисциплина-Учебник).


^ 19. Нормальные формы

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

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

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

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

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

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

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

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


^ 20. Процедура нормализации

Как уже говорилось, нормализация – это разбиение таблицы на несколько, обладающих лучшими свойствами при обновлении, включении и удалении данных. Теперь можно дать и другое определение: нормализация – это процесс последовательной замены таблицы ее полными декомпозициями до тех пор, пока все они не будут находиться в 5НФ. На практике же достаточно привести таблицы к НФБК и с большой гарантией считать, что они находятся в 5НФ. Разумеется, этот факт нуждается в проверке, однако пока не существует эффективного алгоритма такой проверки. Поэтому остановимся лишь на процедуре приведения таблиц к НФБК.

Эта процедура основывается на том, что единственными функциональными зависимостями в любой таблице должны быть зависимости вида K->F, где K – первичный ключ, а F – некоторое другое поле. Заметим, что это следует из определения первичного ключа таблицы, в соответствии с которым K->F всегда имеет место для всех полей данной таблицы. "Один факт в одном месте" говорит о том, что не имеют силы никакие другие функциональные зависимости. Цель нормализации состоит именно в том, чтобы избавиться от всех этих "других" функциональных зависимостей, т.е. таких, которые имеют иной вид, чем K->F.

Если воспользоваться рекомендацией п. 4.5 и подменить на время нормализации коды первичных (внешних) ключей на исходные ключи, то, по существу, следует рассмотреть лишь два случая:

1. Таблица имеет составной первичный ключ вида, скажем, (К1,К2), и включает также поле F, которое функционально зависит от части этого ключа, например, от К2, но не от полного ключа. В этом случае рекомендуется сформировать другую таблицу, содержащую К2 и F (первичный ключ – К2), и удалить F из первоначальной таблицы:

Заменить T(K1,K2,F), первичный ключ (К1,К2), ФЗ К2->F

на T1(K1,K2), первичный ключ (К1,К2),

и T2(K2,F), первичный ключ К2.

2. Таблица имеет первичный (возможный) ключ К, не являющееся возможным ключом поле F1, которое, конечно, функционально зависит от К, и другое неключевое поле F2, которое функционально зависит от F1. Решение здесь, по существу, то же самое, что и прежде – формируется другая таблица, содержащая F1 и F2, с первичным ключом F1, и F2 удаляется из первоначальной таблицы:

Заменить T(K,F1,F2), первичный ключ К, ФЗ F1->F2

на T1(K,F1), первичный ключ К,

и T2(F1,F2), первичный ключ F1.

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

Для выполнения этих операций необходимо первоначально иметь в качестве входных данных какие-либо "большие" таблицы (например, универсальные отношения). Но нормализация ничего не говорит о том, как получить эти большие таблицы. В следующей главе будет рассмотрена процедура получения таких исходных таблиц, а здесь приведем примеры нормализации.

Пример 4.1. Применим рассмотренные правила для полной нормализации универсального отношения "Питание" (рис. 4.2).

Шаг 1. Определение первичного ключа таблицы.

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


^ 22 SQL (Structured Query Language

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

Нужно заметить, что в настоящее время, ни одна система не реализует стандарт SQL в полном объеме. Кроме того, во всех диалектах языка имеются возможности, не являющиеся стандартными. Таким образом, можно сказать, что каждый диалект - это надмножество некоторого подмножества стандарта SQL. Это затрудняет переносимость приложений, разработанных для одних СУБД в другие СУБД.

Язык SQL оперирует терминами, несколько отличающимися от терминов реляционной теории, например, вместо "отношений" используются "таблицы", вместо "кортежей" - "строки", вместо "атрибутов" - "колонки" или "столбцы".

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

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

6.1.1. Операторы DDL (Data Definition Language) - операторы определения объектов базы данных

CREATE SCHEMA - создать схему базы данных DROP SHEMA - удалить схему базы данных CREATE TABLE - создать таблицу ALTER TABLE - изменить таблицу DROP TABLE - удалить таблицу CREATE DOMAIN - создать домен ALTER DOMAIN - изменить домен DROP DOMAIN - удалить домен CREATE COLLATION - создать последовательность DROP COLLATION - удалить последовательность CREATE VIEW - создать представление DROP VIEW - удалить представление

6.1.2. Операторы DML (Data Manipulation Language) - операторы манипулирования даннымиSELECT - отобрать строки из таблиц INSERT - добавить строки в таблицу UPDATE - изменить строки в таблице DELETE - удалить строки в таблице COMMIT - зафиксировать внесенные изменения ROLLBACK - откатить внесенные изменения

6.1.3. Операторы защиты и управления даннымиCREATE ASSERTION - создать ограничение DROP ASSERTION - удалить ограничение GRANT - предоставить привилегии пользователю или приложению на манипулирование объектами REVOKE - отменить привилегии пользователя или приложения

^ 23.Операторы манипулирования данными

INSERT - вставка строк в таблицу

Пример 1. Вставка одной строки в таблицу:

INSERT INTO

P (PNUM, PNAME)

VALUES (4, "Иванов");

Пример 2. Вставка в таблицу нескольких строк, выбранных из другой таблицы (в таблицу TMP_TABLE вставляются данные о поставщиках из таблицы P, имеющие номера, большие 2):

INSERT INTO

TMP_TABLE (PNUM, PNAME)

SELECT PNUM, PNAME

FROM P

WHERE P.PNUM>2;

UPDATE - обновление строк в таблице

Пример 3. Обновление нескольких строк в таблице:

UPDATE P

SET PNAME = "Пушников"

WHERE P.PNUM = 1;

DELETE - удаление строк в таблице

Пример 4. Удаление нескольких строк в таблице:

DELETE FROM P

WHERE P.PNUM = 1;

Пример 5. Удаление всех строк в таблице:

DELETE FROM P;

Примеры использования оператора SELECT

Оператор SELECT является фактически самым важным для пользователя и самым сложным оператором SQL. Он предназначен для выборки данных из таблиц, т.е. он, собственно, и реализует одно из основных назначение базы данных - предоставлять информацию пользователю.

Оператор SELECT всегда выполняется над некоторыми таблицами, входящими в базу данных.

Замечание. На самом деле в базах данных могут быть не только постоянно хранимые таблицы, а также временные таблицы и так называемые представления. Представления - это просто хранящиеся в базе данные SELECT-выражения.

Результатом выполнения оператора SELECT всегда является таблица


^ 24.Оператор SELECT: отбор данных из таблиц

Выбрать все строки из таблицы поставщиков, удовлетворяющих некоторому условию (ключевое слово WHERE…):


Выбрать некоторые колонки из исходной таблицы, удалив из результата повторяющиеся строки (ключевое слово DISTINCT):


Использование скалярных выражений и переименований колонок в запросах (ключевое слово AS…):


Упорядочение результатов запроса (ключевое слово ORDER BY…) по нескольким полям с возрастанием или убыванием (ключевые слова ASC, DESC):


Пример 10. Естественное соединение таблиц:

а) - явное указание условий соединения,

б) - ключевые слова JOIN… USING… позволяют явно указать, по каким из общих колонок таблиц будет производиться соединение

в) - ключевое слово NATURAL JOIN - автоматически соединяет по всем одинаковым полям в таблицах


^ 25.Оператор SELECT: использование имен корреляции и агрегатных функций

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

Пример 13. Отобрать все пары поставщиков таким образом, чтобы первый поставщик в паре имел статус, больший статуса второго поставщика:

SELECT

P1.PNAME AS PNAME1,

P1.PSTATUS AS PSTATUS1,

P2.PNAME AS PNAME2,

P2.PSTATUS AS PSTATUS2

FROM

P P1, P P2

WHERE P1.PSTATUS1 > P2.PSTATUS2;

Получить общее, максимальное, минимальное и среднее количества поставляемых деталей (ключевые слова SUM, MAX, MIN, AVG):

SELECT

SUM(PD.VOLUME) AS SM,

MAX(PD.VOLUME) AS MX,

MIN(PD.VOLUME) AS MN,

AVG(PD.VOLUME) AS AV

FROM PD;

Для каждой детали получить суммарное поставляемое количество (ключевое слово GROUP BY…):

^ 26.Оператор SELECT: использование подзапросов

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

Пример 18. Получить список поставщиков, статус которых меньше максимального статуса в таблице поставщиков (сравнение с подзапросом):

SELECT *

FROM P

WHERE P.STATYS <

(SELECT MAX(P.STATUS)

FROM P);

Пример 19. Использование предиката IN. Получить список поставщиков, поставляющих деталь номер 2:

SELECT *

FROM P

WHERE P.PNUM IN

(SELECT DISTINCT PD.PNUM

FROM PD

WHERE PD.DNUM = 2);

Пример 20. Использование предиката (NOT) и EXIST. Получить список поставщиков, (не) поставляющих деталь номер 2:

SELECT *

FROM P

WHERE (NOT) EXIST

(SELECT *

FROM PD

WHERE

PD.PNUM = P.PNUM AND

PD.DNUM = 2);


^ 27. Оператор SELECT: использование объединения, пересечения и разности для реализации реляционной алгебры

Пример 21. Получить имена поставщиков, имеющих статус, больший 3 или поставляющих хотя бы одну деталь номер 2 (объединение двух подзапросов - ключевое слово UNION):

SELECT P.PNAME

FROM P

WHERE P.STATUS > 3

UNION

SELECT P.PNAME

FROM P, PD

WHERE P.PNUM = PD.PNUM AND

PD.DNUM = 2;

Замечание. Результирующие таблицы объединяемых запросов должны быть совместимы, т.е. иметь одинаковое количество столбцов и одинаковые типы столбцов в порядке их перечисления. Не требуется, чтобы объединяемые таблицы имели бы одинаковые имена колонок. Это отличает операцию объединения запросов в SQL от операции объединения в реляционной алгебре. Наименования колонок в результирующем запросе будут автоматически взяты из результата первого запроса в объединении.

Пример 22. Получить имена поставщиков, имеющих статус, больший 3 и одновременно поставляющих хотя бы одну деталь номер 2 (пересечение двух подзапросов - ключевое слово INTERSECT):

SELECT P.PNAME

FROM P

WHERE P.STATUS > 3

INTERSECT

SELECT P.PNAME

FROM P, PD

WHERE P.PNUM = PD.PNUM AND

PD.DNUM = 2;

Пример 23. Получить имена поставщиков, имеющих статус, больший 3, за исключением тех, кто поставляет хотя бы одну деталь номер 2 (разность двух подзапросов - ключевое слово EXCEPT):

SELECT P.PNAME

FROM P

WHERE P.STATUS > 3

EXCEPT

SELECT P.PNAME

FROM P, PD

WHERE P.PNUM = PD.PNUM AND

PD.DNUM = 2;

^ 28.Синтаксис оператора SELECT


32 почему необходимы транзакции

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

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

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


^ 33 понятие транзакции

ACID-свойства транзакций

Характеристики транзакций описываются в терминах ACID (Atomicity, Consistency, Isolation, Durability – неделимость, согласованность, изолированность, устойчивость).

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

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

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

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

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

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

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


3-marketingovaya-politika-pravitelstvo-orenburgskoj-oblasti-postanovleni-e.html
3-mart-2004-promishlennij-i-innovacionnij-potencial-permskoj-oblasti-regionalnaya-sistema-transfera-tehnologij.html
3-masshtabnoe-mishlenie-pozvolyaet-vam-uvidet-to-chto-vidyat-drugie-maksvell-dzhon-s.html
3-matematika-osnovnie-matematicheskie-ponyatiya-i-fakti-1-russkij-yazik.html
3-materiali-o-gubernatorskom-bale-dobrovolcev-hrustalnoe-serdce-bajkala.html
3-maya-1991-goda-ponedelnik.html
  • student.bystrickaya.ru/11-bioraznoobrazie-i-dinamika-genofondov-akademii-nauk.html
  • teacher.bystrickaya.ru/glava-3-za-predelami-yazika-uroki-mudrosti.html
  • paragraf.bystrickaya.ru/zoni-skladirovaniya-o-bezopasnosti-lekarstvennih-sredstv-dlya-medicinskogo-primeneniya.html
  • institute.bystrickaya.ru/glava-4-kitajskie-kometi-drevnego.html
  • testyi.bystrickaya.ru/43-metodi-i-sredstva-zashiti-polzovatelej-ot-vozdejstviya-na-nih-opasnih-i-vrednih-faktorov.html
  • lektsiya.bystrickaya.ru/programma-disciplini-nukleosintez-naimenovanie-disciplini-po-napravleniyu-specialnostyam-510400-fizika.html
  • control.bystrickaya.ru/boliviya-reshenie-xv29-programma-organizacii-obedinennih-nacij-po-okruzhayushej-srede-komitet-po-vipolneniyu-v-ramkah-proceduri.html
  • ekzamen.bystrickaya.ru/sabati-tairibi-tzhbaev-tolaaj-ertegs-2-saat-zhalpi-masati.html
  • urok.bystrickaya.ru/programma-gosudarstvennogo-mezhdisciplinarnogo-ekzamena-po-napravleniyu-032301-65-regionovedenie-programmi-podgotovki-specialistov-rekomendovana-sekciej-ums-stranica-4.html
  • knigi.bystrickaya.ru/respubliki-kazahstan-o-valyutnom-regulirovanii.html
  • nauka.bystrickaya.ru/uchet-nachisleniya-zarabotnoj-plati.html
  • spur.bystrickaya.ru/korrekciya-disgrafii-v-usloviyah-shkolnogo-logopunkta.html
  • klass.bystrickaya.ru/7-osobennosti-organizacii-i-instrukciya-yavlyaetsya-dlya-vseh-geologicheskih-organizacij-provodyashih-geologicheskuyu.html
  • knigi.bystrickaya.ru/shkola-dosug-ili-trud-kniga-predstavlyaet-soboj-istoriko-kulturnij-ocherk-klassicheskogo-perioda-antichnoj-filosofii.html
  • znanie.bystrickaya.ru/baranovskij-egor-ivanovich-glavnoe-arhivnoe-upravlenie-pri-sovete-ministrov-sssr.html
  • books.bystrickaya.ru/doklad-ob-osushestvlenii-municipalnogo-kontrolya-za-obespecheniem-sohrannosti-avtomobilnih-dorog-mestnogo-znacheniya-v-granicah-naselennih-punktov-municipalnogo-obrazovaniya-pomarskoe-selskoe-poselenie.html
  • znanie.bystrickaya.ru/b-perechen-specializirovannogo-i-laboratornogo-oborudovaniya-programma-po-specialnosti-110201-65-agronomiya-shifr-naimenovanie.html
  • control.bystrickaya.ru/doklad-predsedatelya-komiteta-po-delam-detej-i-molodezhi-s-a-mironova-o-deyatelnosti-podrostkovih-klubov-po-mestu-zhitelstva.html
  • lecture.bystrickaya.ru/akademik-raen-doktor-istoricheskih-nauk-professor.html
  • composition.bystrickaya.ru/osnovnie-temi-kursa-opisanie-diskov-postavki-po-lotu-3-pri-razrabotke-materialov-ispolzovani-resursi.html
  • obrazovanie.bystrickaya.ru/postanovlenie-stranica-22.html
  • school.bystrickaya.ru/istoriya-izobreteniya-velosipeda.html
  • vospitanie.bystrickaya.ru/znachimie-rezultati-deyatelnosti-vospitatelej-i-kollektivov-mdou-i-doshkolnih-grupp-na-baze-ou-v-2006-2009g-g.html
  • urok.bystrickaya.ru/proekt-vladimira-kulebi-zolotaya-sotnya-evropi.html
  • books.bystrickaya.ru/chelyabinskie-narkopolicejskie-viyavili-tri-kontrabandnih-kanala-poyasnitelnaya-zapiska-federalnij-zakon-o-vnesenii.html
  • notebook.bystrickaya.ru/gumanitarnie-nauki-byulleten-novih-postuplenij-za-iv-kv-2010-g.html
  • tasks.bystrickaya.ru/14-dopolnitelnie-trebovaniya-k-sistemam-vnutrennego-vodoprovoda-zdanij-sooruzhenij-stroyashihsya-v-osobih-prirodnih-i-klimaticheskih-usloviyah.html
  • writing.bystrickaya.ru/5-10-faktov-o-zdorovoj-okruzhayushej-srede-dlya-detej-5-10-faktov-o-zdorovoj-okruzhayushej-srede-dlya-detej.html
  • zadachi.bystrickaya.ru/roman-ob-istorii-filosofii-stranica-30.html
  • education.bystrickaya.ru/23-osnovnie-problemi-socialno-psihologicheskoj-adaptacii-vipusknikov-internatnih-uchrezhdenij.html
  • zadachi.bystrickaya.ru/sovershenstvovanie-eto-smisl-i-samostoyatelnost-gennadij-mir.html
  • tasks.bystrickaya.ru/181--6228-novie-postupleniya-v-biblioteku-1.html
  • credit.bystrickaya.ru/oporyadke-razrabotki-prognoza.html
  • knigi.bystrickaya.ru/shahtinsk-alasi-kmdgn-16-licej-mekteb-kmm-dajindaan-eleubaeva-g-u.html
  • credit.bystrickaya.ru/pokazateli-zabolevaemosti-programma-ekonomicheskogo-i-socialnogo-razvitiya-morgaushskogo-rajona.html
  • © bystrickaya.ru
    Мобильный рефератник - для мобильных людей.