Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы даннbIх.doc
Скачиваний:
8
Добавлен:
09.08.2019
Размер:
211.46 Кб
Скачать
  1. Нормализация отношений. Понятие функциональной зависимости. 1 и 2 нормальные формы.

Отношение (relation) – это формальный аппарат приведения отношений к такому виду чтобы данные в них не дублировались и не были противоречивы.

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

Первая нормальная форма

Отношение называется нормализованным то есть приведённым к первой нормальной форме если все его атрибуты просты и далее не делимы.

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

В отношении R атрибут B функционально зависит от A если в каждый момент времени, каждому значению атрибута A соответствует не более одного атрибута B.

Вторая нормальная форма

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

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

Атрибут B из отношения R называется полностью зависимым от набора атрибутов A если B

функционально зависит от всего множества A но не зависит ни от какого подмножества A.

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

  1. Нормализация отношений. Понятие транзитивной зависимости. 3я нормальная форма.

Транзитивная зависимость:

Если в отношении R, B функционально зависит от A, а C функционально зависит от B, а обратное соответствие не верно, то говорят что C транзитивно зависит от A.

3я нормальная форма:

Отношение задано в 3 нормальной форме если оно задано во второй нормальной форме и каждый не ключевой атрибут не транзитивно зависит от каждого возможного ключа.

  1. Создание объекта dao.Recordset, его типы.

Объект Recordset обеспечивает связь между программой и базой данных. В VB существует 4 типа объекта Recordset.

  1. Таблица – dbOpenTable. Преимущество таблиц: Редактируемый объект. Может быстро находить и возвращать записи при использовании индексируемых таблиц. Недостатки: Нельзя отфильтровать записи.

  2. Динамические наборы – dbOpenDynaset. Обновляемый. Эффективный, поскольку представляет набор ссылок на данные в основном запросе (а не на реальные данные). Может возвращать записи из нескольких таблиц благодаря использованию объединения, даже когда эти таблицы связываются из нескольких баз данных. Такие записи во многих случаях обновляемы. Можно редактировать несколько таблиц. Позволяет отфильтровать записи. Не отслеживают добавленные и удалённые записи сделанные другими пользователями.

  3. Список – dbOpenSnapshot. Могут обрабатываться быстрее, чем объекты Dynaset и Table, в особенности для небольших наборов записей. Может возвращать записи из нескольких таблиц благодаря использованию объединения. Такие записей во многих случаях обновляемы.

  4. Набор dbOpenForwardOnly, Работает быстрее, чем объект Snapshot. Может возвращать записи из нескольких таблиц благодаря использованию объединению.

Dim db As DAO.Database 'Объявляем базу данных

Dim rs As DAO.Recordset 'Объявляем рекордсет

Dim sSQL As String 'Переменная, где будет размещён SQL запрос

Открываем базу данных. Для этого вызываем метод OpenDatabase, и в качестве параметра передаём полный путь и имя файла базы данных. Обратите внимание, что db - это объект и поэтому пишем ключевое слово Set.

Set db = DAO.OpenDatabase ("C:\db.mdb")

Формируем строку SQL запроса. Допустим, нам нужно получить все поля таблицы Orders.

sSQL = "SELECT * FROM Orders;"

Set rs = db.OpenRecordset (sSQL)

Закрываем рекордсет и базу данных

rs.Close

db.Close

В конце процедуры для того, чтобы освободить память пишем

Set rs = Nothing

Set db = Nothing