Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Проверка(№ объекта, Пдата, Пвремя, Адрес, Коммент, № Сл., ФИО, Транс).

Построим функциональные зависимости:

Fd1: № объекта, Пдата ® Пвремя, Адрес, Коммент, № Сл., ФИО, Транс (Первичный ключ).

Fd2: № объекта ® Адрес (Частичная зависимость).

Fd3: № сл ® ФИО (Транзитивная зависимость)

Fd4: № сл, Пдата ® Транс

Fd5: Транс, Пдата, Пвремя ® № объекта, Адрес, Коммент, № Сл, ФИО (Потенциальный ключ).

Fd6: № сл, Пдата, Пвремя ® № объекта, Адрес, Коммент, ФИО (Потенциальный ключ)

Это же можно представить в виде диаграммы:

 

Отношение «Проверка» может быть преобразовано во вторую НФ путем удаления частичной зависимости из этого отношения путем создания двух новых отношений «Объект» и «Проверка1».

Объект(№ объекта, Адрес)

Проверка1(№ объекта, Пдата, Пвремя, Коммент, № Сл., ФИО, Транс).

Теперь проанализируем полученные отношения.

Отношение «Объект»:

№ объекта ® Адрес

Отношение «Проверка1»:

Fd1*: № объекта, Пдата ® Пвремя, Коммент, № Сл., ФИО, Транс

Fd3: № сл ® ФИО

Fd4: № сл, Пдата ® Транс

Fd5*: Транс, Пдата, Пвремя ® № объекта, Коммент, № Сл, ФИО

Fd6*: № сл, Пдата, Пвремя ® № объекта, Коммент, ФИО

Отношение «Объект» не содержит транзитивных зависимостей, следовательно, находится в третьей нормальной форме.

В отношении «Проверка1» есть транзитивная зависимость:

№ объекта, Пдата ® № Сл ® ФИО.

Транзитивная зависимость удаляется преобразованием отношения «Проверка1» в два отношения «Служащий» и «Проверка2».

Служащий(№ Сл, ФИО)

Проверка2(№ объекта, Пдата, Пвремя, Коммент, № Сл, Транс)

НЕ нашли? Не то? Что вы ищете?

Проанализируем отношение «Проверка2».

Fd1**: № объекта, Пдата ® Пвремя, Коммент, № Сл., Транс

Fd4: № сл, Пдата ® Транс

Fd5**: Транс, Пдата, Пвремя ® № объекта, Коммент, № Сл

Fd6*: № сл, Пдата, Пвремя ® № объекта, Коммент

В отношении содержится детерминант № Сл, Пдата, который не является потенциальным ключом. Поэтому это отношение может страдать от аномалии обновления. Отношение «Проверка2» не находится в НФБК. Для его преобразования его в НФБК его надо разбить на два новых отношения:

Транспорт_для_сотрудника(№ сл, Пдата, Транс)

Инспекция(№ объекта, Пдата, Пвремя, Коммент, № Сл).

Схема декомпозиции будет выглядеть:

 

Результирующие отношения имеют вид:

Объект(№ объекта, Адрес)

Служащий(№ Сл, ФИО)

Транспорт_для_сотрудника(№ сл, Пдата, Транс)

Инспекция(№ объекта, Пдата, Пвремя, Коммент, № Сл).

4 НФ

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

Отдел

Служащий

Клиент

Библиотека

Петров

Николаев

Библиотека

Сидоров

Николаев

Библиотека

Петров

Викторов

Библиотека

Сидоров

Викторов

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

В случае многозначной зависимости, существующей между атрибутами A, B, C некоторого отношения, для каждого значения A имеется набор значений атрибута B и набор значений атрибута C. Однако, входящие в этот набор значения атрибутов B, C не зависят друг от друга. .

Многозначная зависимость A®B некоторого отношения R определяется как тривиальная, если атрибут B является подмножеством атрибута A или В противном случае зависимость нетривиальная.

Многозначная зависимость в примере нетривиальная. Несмотря, что это отношение находится в НФБК, оно недостаточно хорошо структурировано из-за наличия повторяющихся строк. Поэтому его целесообразно разбить на два отношения в 4 НФ.

4 НФ – это отношение в НФБК, которое не содержит нетривиальных многозначных зависимостей.

5 НФ

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

5 НФ – отношение без зависимостей соединения.

2.3.Языки запросов

Фактически языки запросов предназначены для решения следующих задач:

1.  Добавления.

2.  Удаления.

3.  Обновления.

4.  Поиска данных.

Обычно различают следующие языки запросов:

1.  Языки отображений. Ориентированы на пользователя, являющегося программистом – профессионалом. Запрос формулируется в виде программного кода. Манипулируют отдельными элементами отношений.

2.  Реляционная алгебра. Эти языки ориентированы на пользователя - математика. Запросы формулируются в терминах РА, предложенной Коддом.

3.  Реляционное исчисление (РИ). Также ориентировано на пользователя – математика. Запросы формулируются в терминах логики предикатов первого порядка.

4.  Языки спецификаций. Эти языки ориентированы на пользователей, представляющих структуру БД. Запросы формулируются в виде спецификаций заданного формата.

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

2.3.1.Языки отображений.

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

. В Access 2000 по умолчанию установлена модель данных ADO (ActiveX Data Objects). Для установки MSDE, что соответствует модели данных DAO, используемой в Access 97, необходимо использовать другой файл установки. Необходимо вставить установочный компакт диск и дважды щелкнуть на имени файла SETUPSQL. EXE в папке \Sql\x86\Setup.

Иерархия ADO проще иерархии объектов модели

Объекты ADO предназначены для организации доступа к источникам данных, их редактирования и обновления. Модель ADO включает в себя объекты, необходимые для выполнения следующих задач:

1.  Соединение с источником данных.

2.  Создание объекта, реализующего команды SQL

3.  Указание столбцов, таблиц и значений в качестве переменных параметров в команде SQL.

4.  Выполнение команды SQL.

5.  Сохранение результатов выполнения в хеше.

6.  Создание виртуального представления в хеше, чтобы пользователь мог сортировать, фильтровать данные в БД и перемещаться по ней.

7.  Редактирование данных.

8.  Обновление источника данных в соответствии со всеми изменениями сделанными в хеше.

9.  Фиксация или отмена изменений, внесенных в ходе транзакции, и последующее закрытие транзакции.

К классам объектов в модели ADO относятся:

·  Connection – представляет среду, в которой будет выполняться обмен данными с источником данных. Соединение должно быть установлено до начала выполнения любых других операций.

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

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

·  Recordset – служит локальным хешем данных, считанных из источника данных.

·  Field – представляет столбец таблицы Recordset. Поле содержит свойства определяющие поле. Пример таких свойств – Type, Value.

·  Error – возвращает результат всякий раз, когда в приложении возникает ошибка. Каждый объект Connection имеет отдельное семейство объектов Error.

·  Property – определяет объекты Connection, Command, Field, Recordset. Каждый объект ADO обладает набором свойств, задающим объект и управляющим его поведением.

·  Collection – служит для объединения сходных объектов в группы.

Обращение к объектам ADO выглядит так:

ADODB. имя_объекта.

При создании нового проекта, Access 2000 загружает только библиотеку объектов ADO. Если необходимо работать с DAO, добавляется библиотека объектов DAO в диалоге Preferences редактора VB. Для открытия VB Editor надо нажать Alt + F11. Диалог Preferences открывается командой меню Tools>References. В этом диалоге надо выбрать DAO 3.6 Object Library.

Для того чтобы связать объект Recordset в модели ADO с данными необходимо:

Dim rst As New ADODB. Recordset

rst. Open SQLVar, CurrentProject. Connection

Здесь SQLVar символьная переменная, в которой определяется набор данных либо как выражение SQL, либо как имя таблицы. Например, если необходимо открыть таблицу с именем Student, вторая строка будет выглядеть:

rst. Open “Student”, CurrentProject. Connection

В случае DAO необходимо создать объектную переменную rst типа Recordset без ADODB, а затем использовать метод OpenRecordset:

Set rst = CurrentDB. OpenRecordset(SQLVar, dbOpenDynaset).

Здесь необходимо быть аккуратным, поскольку написание для объектов Recordset в обеих моделях одинаково.

Для перехода в обеих моделях используются методы Move:

·  rst. MoveFirst | MoveLast | MoveNext | MovePrevious | Move n – соответственно : Перейти к первой записи | к последней | к следующей | к предыдущей | на n записей

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

Переменная_Recordset критерий, ПропуститьСтроки, НаправлениеПоиска, Старт

Здесь:

·  критерий – строковое значение (обязательно в кавычках), определяющее имя столбца (поля), оператор сравнения и искомое значение. Это единственный обязательный параметр.

·  Пропустить строки – обозначает число строк, начиная с текущей или стартовой позиции, которое необходимо пропустить перед началом поиска.

·  Направление поиска определяет должен ли поиск вестись по направлению к концу набора (adSearchForward) или к началу (adSearchBackward).

·  Старт – закладка, обозначающая начальное положение указателя текущей записи при поиске: adBookmarkFirst (1) – первая запись, adBookmarkLast (2) – последняя запись, adBookmarkCurrent (0) – текущая запись.

Dim Rst As New ADODB. Recordset

Rst. Open “Student”, CurrentProject. Connection

Rst. Find “Sgroup = ‘АП51’”

Rst. Close

Значение критерия может быть строкой, числом или датой. Если значение имеет тип даты, то оно заключается в #, например, #11/11/03#.

При обновлении записей с помощью Recordset. Open необходимо установить значения нескольких свойств, определяющих набор данных. Самыми важными из этих свойств являются свойства LockType и CursorType.

LockType определяет право доступа к набору и принимает значения:

·  AdLockReadOnly – объект доступен только для чтения (значение по умолчанию).

·  AdLockPessimistic – записи блокируются сразу после начала редактирования по одной.

·  AdLockOptimistic – устанавливает блокировку при вызове метода Update (используйте этот вариант).

·  AdLockBatchOptimistic – разрешает пакетное обновление.

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

·  AdOpenForwardOnly – набор представляет собой статическую копию данных, пригодную для поиска, но поиск возможен только в направлении к концу набора (значение по умолчанию).

·  AdOpenKeySet – позволяет вносить изменения в набор данных, но пользователь видит изменения, внесенные им самим.

·  AdOpenDynamic – позволяет вносить изменения. Пользователь видит все результаты изменений. Наименее эффективен, но имеет больше всего возможностей. Поэтому используйте его.

·  AdOpenStatic – набор представляет собой статическую копию данных.

Редактирование:

Rst. Open “Student”, CurrentProject. Connection, adOpenDynamic, adLockOptimistic

Rst. MoveFirst

Rst(“YearEnter”) = 2001

Rst. Update

Rst. Close

Обновляется поле YearEnter первой записи.

Добавление записи:

Rst. Open “Student”, CurrentProject. Connection, adOpenDynamic, adLockOptimistic

Rst. AddNew

Rst(“FIO”) = “”

Rst(“YearEnter”) = 2003

Rst. Update

Ret. Close

Удаление записи:

Rst. Open “Student”, CurrentProject. Connection, adOpenDynamic, adLockOptimistic

Rst. MoveFirst

Rst. Delete adAffectCurrent

Rst. Update

Rst. Close

2.3.2.Реляционная алгебра

Поскольку отношение представляет собой множество кортежей для реляционной алгебры характерны две группы операций: теоретико-множественные операции и дополнительные специфичные операции РА.

2.3.2.1.Теоретико-множественные или булевы операции

Операция объединения. В результате операции объединения получаем новое отношение T, в которое входят строки из обоих исходных отношений R, S.

Операция пересечения. В результате операции пересечения получаем новое отношение T, в которое входят строки, одновременно принадлежащие исходным отношениям R, S.

Операция вычитания. В результате операции вычитания получаем новое отношение T, в которое входят строки только из отношения уменьшаемого R и не входят строки из отношения вычитаемого S.

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

Пусть dom(A) – множество всех кортежей над атрибутами схемы A и их доменами. Дополнением отношения R(A) будем называть разность:

* .

*Однако, если какой-либо атрибут A1 в R имеет бесконечный домен также будет бесконечно, и не будет отношением в нашем понимании.

*Модифицированная версия дополнения, называемая активным дополнением, всегда будет активным дополнением. Если отношение и , то активным дополнением отношения R называется множество:

*

*Пусть adom(A, R) множество всех кортежей над атрибутами A и их активными доменами отношения R. Активным дополнением R является:

*

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

*Пусть

 

*

2.3.2.2.Специфические операции РА.

Выборка или ограничение. - операция выборки работает с одним отношением R и определяет результирующее отношение, которое содержит только те кортежи R, которые удовлетворяют заданному условию p (предикату).

Проекция. Выделяет подмножество столбцов отношения.

*

Операция декартова произведения. Операция декартового произведения определяет новое отношение, которое является результатом сцепления (конкатенации)мкаждого кортежа из отношения R с каждым кортежем из отношения S. R*S.

Операции соединения. К операциям соединения относятся:

1.  q - соединение (q -join).

2.  Соединение по эквивалентности (equal – join).

3.  Естественное соединение (natural join).

4.  Внешнее соединение (enter join).

5.  Попусоединение (semi – join).

q - соединение.

Если предикат p содержит операцию равенства, то соединение называют соединением по эквивалентности.

Естественным соединением называют соединение по всем общим атрибутам x отношений R, S из результатов которого исключаются по одному экземпляру общего атрибута. .

Левым внешним соединением называется соединение, при котором кортежи R, не имеющие совпадающих значений в общих столбцах отношения S, также включаются в результирующее отношение. Для обозначения отсутствующих значений используем null.

Аналогичным образом можно определить правое внешнее соединение и полное внешнее соединение RÉÌS.

Операция полусоединения определяет отношение, которое содержит те кортежи отношения R, которые входят в соединение отношений R, S.

Здесь A – это набор всех атрибутов в отношении R.

Операция деления. Результатом операции деления является набор кортежей отношения R, определенный на множестве атрибутов C, которые соответствуют комби нации всех кортежей отношения S. Проще всего этот оператор сформулировать на основе других операторов:

 

Пример реализации запроса в РА. О. студентов и группы, в которых они учатся, имеющих задолженности по курсу «Базы данных».

Определим таблицы, в которых содержится информация, необходимая для реализации запроса.

Predmet

CodPredm

Predm

Таблица Student (Список студентов)

Имя поля

Тип поля

Описание

Ключевое

SGroup

Мастер подстановок

Шифр группы, в которой учится студент

Нет

NZach

Текстовое

Номер зачетки

Да

FIOS

Текстовое

Фамилия студента

Нет

YearEnter

Числовое

Год поступления

Нет

Таблица Vedom (Список ведомостей)

Имя поля

Тип поля

Описание

Ключевое

SGroup

Мастер подстановок

Шифр группы

Нет

NVed

Счетчик

Номер ведомости

Да

CodPredm

Мастер подстановок

Предмет, по которому проводится экзамен

Нет

DataEkz

Дата/Время

Дата экзамена

Нет

CodPrep

Мастер подстановок

Преподаватель, проводящий экзамен

Нет

Таблица Ekzamen (Результаты экзаменов)

Имя поля

Тип поля

Описание

Ключевое

NZach

Мастер подстановок

Номер зачетки

Да

NVed

Мастер подстановок

Номер ведомости

Да

CodOcen

Мастер подстановок

Оценка

Нет

Выполним запрос в несколько этапов:

1.Определим коды предметов, имеющих наименование «Базы данных».

.

2.Найдем ведомости по этим предметам.

3.Найдем результаты экзамена в этих ведомостях.

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

5.Определим, имеющих эти результаты.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6