Автоматизация приложений MA Access с помощью Visual Basic.

VBA имеет отличный от обычного VB синтаксис. Многочисленные средства Access, предназначенные для интерактивной разработки БД и решения задач обработки данных является основной для построения практических приложений пользователя. Однако, если в приложениях необходимо отслеживать и обрабатывать ошибки, создавать свои функции, в ходе выполнения приложений создавать объекты, работать с отдельными записями, а не с наборами записей, необходимо использовать вшитый в Access объектно-ориентированный язык программирования VBA. VBA позволяет создавать в среде Access диалоговые приложения пользователя, которые предоставляют ему широкие возможности для управления и контроля за ходом выполнения прикладных задач. Приложения, которые разрабатываются в VBA, могут выполняться только в той среде, в которой может поддерживаться VBA. VBA обеспечивает простоту использования объектов, которые создаются средствами Access. Поэтому при разработке приложений, как правило, программируются только те функции, которые не могут быть реализованы средствами Access. Основу ООП составляет работа с объектами. Основными объектами являются: таблица, запрос, форма, отчет, макрос, модуль, страница доступа. Эти объекты строятся на основе мелких объектов элементов управления, которые объединяются в более крупные объекты – семейства, то есть набор однотипных объектов. Все объекты имеют сохраняемый набор свойств, изменяя которые можно управлять объектами. С каждым объектом связывается и ряд методов выполняемых инструкций. Один и тот же метод может использоваться для разработки различных объектов. Все многообразие свойств методов обработки сводится в иерархические структуры. Продолжить чтение

Опубликовано в категории Системы управления и проектирования баз данных | Tagged , , | Leave a comment

Агрегирование данных

В SQL существует ряд стандартных специальных функций, и кроме случая COUNT (*), каждая из этих функций оперирует совокупностью значений столбца этой таблицы и создает единственное значение, определяемое следующим образом:

COUNT – число значений в таблице.                 SUM – сумма значений в столбце.

AVG – среднее значение в столбце.                  MAX – максимальное значение в столбце.

MIN – минимальное значение в столбце.

Также обязательно следует при написании подобных запросов и функций учитывать, что эти столбцы должны быть числовыми!

Следует отметить, что в этом случае столбец – это столбец виртуальной таблицы, в которой могут содержаться значения не только из столбца базовой таблицы, но и данные, полученные путем функционального преобразования И (ИЛИ) связывания символами арифметических операций, значений из одного или нескольких столбцов. При этом выражение, определяющее столбец в такой таблице может быть сколь угодно сложным, но не должно содержать SQL-функций. То есть SQL-функции не допускаются. Аргументом всех функций кроме COUNT (*) может предшествовать ключевое слово DISTRICT, которое указывает, что избыточные дублирующие значения должны быть исключены перед тем, как будет применяться специальная функция. Специальная функция COUNT (*) служит для подсчета всех без исключения строк в таблице. Продолжить чтение

Опубликовано в категории Системы управления и проектирования баз данных | Tagged , , | Leave a comment

Таблицы в SQL

Понятие «Таблица» в SQL имеет свое представление. SQL использует и создает ряд как будто существующих виртуальных таблиц: представлений, курсоров, неименованных рабочих таблиц, в которых формируются результаты запросов на получение данных из базовых таблиц и, возможно, представлений. Это таблицы, которые не существуют в БД, но как бы существуют с точки зрения пользователя.

Базовая таблица создается с помощью предложения CREATE TABLE. Рассмотрим пример для создания описания таблицы «Блюда».

CREATE TABLE Блюда (БЛ SMALLINT, БЛЮДО CHAR(70), B CHAR (1), ОСНОВА CHAR(10), ВЫХОД FLOAT, ТРУД SMALLINT);

Предложение CREATE TABLE специфицирует имя базовой таблицы, которая должна быть создана и типы данных для этих столбцов. Продолжить чтение

Опубликовано в категории Системы управления и проектирования баз данных | Tagged , | Leave a comment

Синтаксис предложений языка SQL

Стандарт языка SQL был выпущен в 1989 году, который объединим два языка – DML и SDL. Hиже рассморим синтаксис основных операторов и команд языка SQL, которые наиболе часто используются при формировании запросов к базе данных.

Синтаксис предложения FROM

FROM{имя_таблицы[[AS]псевдоним]имя_запроса_на_выборку[[AS]псевдоним]|<таблица_объединения>}

IN<спецификация_источника>

<таблица_объединения>:=({имя_таблицы[[AS]псевдоним]имя_запроса_на_выборку[[AS]псевдоним]|<таблица_объединения>})

{INNER|LEFT|RIGHT|JOIN{имя_таблицы[[AS]псевдоним]имя_запроса_на_выборку[[AS]псевдоним]|<таблица_объединения>}}

ON<условие_объединения>

Для каждой таблицы и запроса можно выделить отдельное имя, которое будет являться псевдонимом и будет использоваться в качестве полного имени таблицы. При объединении таблицы или запроса с самим собой все указанные копии таблицы или запроса, на которую вы ссылаетесь при задании списка полей, условий объединения или условий отбора необходимо использовать псевдоним. Если имя таблицы или запроса совпадает с зарезервированным словом SQL, его необходимо заключить в квадратные скобки. Если в предложение  FROM включено несколько таблиц без задания условий их объединения, а для указания полей таблиц используется предложение WHERE, то MS Access активизирует выполнение запроса, интерпретируя его как объединение. Продолжить чтение

Опубликовано в категории Системы управления и проектирования баз данных | Tagged , , , , , | Leave a comment

Синтаксис предложения HAVING

Предложение HAVING задает группы строк, которые включаются в логическую таблицу (т.е. набор записей), определяемую инструкцией SELECT. Условия отбора применяются к столбцам, указанным в предложении GROUP BY, к столбцам итоговых функций или к выражениям, содержащим итоговые функции. Если некоторая группа не удовлетворяет условию отбора, она не попадает в набор записей.

Синтаксис: HAVING <условие_отбора>

Если в инструкции SELECT отсутствует предложение GROUP BY, список полей должен формироваться с использованием одной или нескольких итоговых функций языка SQL. Продолжить чтение

Опубликовано в категории Системы управления и проектирования баз данных | Tagged | Leave a comment

Архитектура MS Access.

MS Access считает объектами всё, что может иметь имя. В БД MS Access основными объектами являются таблицы, запросы, формы, отчеты, страницы доступа к данным, макросы и модули.

Таблица – объект, который создается и используется для хранения данных. Поля «Столбцы» таблицы служат для хранения различных характеристик субъектов, а каждая запись содержит сведения о конкретном субъекте. Для каждой таблицы можно определить первичный ключ, одно или несколько полей, имеющих уникальное значение каждой записи и один или несколько индексов, которые позволяют устроить доступ к данным.

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

Опубликовано в категории Системы управления и проектирования баз данных | Tagged , , , , | Leave a comment

Компоненты контроллера базы данных

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

Контроллер прав доступа – проверяет наличие у данного пользователя полномочий для выполнения затребованной операции.

Процессор команд – выполняет затребованную пользователем операцию.

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

Опубликовано в категории Системы управления и проектирования баз данных | Tagged , | Leave a comment

Внутренняя организация реляционных СУБД

В сегодняшней нашей статье мы с вами продолжем рассматривать и развивать тему работы и проектирования баз данных и проанализируем основные компоненты типичной системы управления БД. На рисунке ниже показан состав и взаимодействие основных компонентов системы БД.

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

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

Опубликовано в категории Системы управления и проектирования баз данных | Tagged , , , , | Leave a comment

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

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

ФИО -> Кафедра, ФИО -> Должность, Должность -> Оклад.

Наличие функциональной зависимости в отношении определяется природой вещей, информация о которых представлена картежами отношений. Ключ является составным и состоит из трех атрибутов: ФИО, предмет, группа. Функциональная зависимость определяет взаимнооднозначное соответствие между атрибутами А и В:   A <-> В. В функциональной зависимости поля «ФИО» от какого-то атрибута означает не только  тот факт, что значение атрибута Х однозначно определяет значение поля ФИО, но и то, что одному и тому же значению поля Х соответствует одно единственное значение ФИО. Продолжить чтение

Опубликовано в категории Системы управления и проектирования баз данных | Tagged | Leave a comment

Метод нормальных форм.

Основной задачей, которая решается при проектировании БД является задача нормализации её отношений. Рассматриваемый метод нормальных форм базируется на теории реляционных БД и ее фундаментальном понятии в зависимости между атрибутами отношений. Процесс нормализации основан на концепции нормальных форм.

 Общая идея нормализации сводится к тому, чтобы при проектировании БД использовались отношения в окончательной 5-й нормальной форме. Конечная цель – 5-я НФ. Однако на I этапе мы должны достичь хотя бы 1-й НФ.

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

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

Есть отношение R(A,B,C,D). Устранение функциональной зависимости между C и D (С->D) позволит перевести это отношение в следующую НФ. Для этих целей проводим декомпозицию R на два отношения – R1(A,B,C) и отношения R2(C,D). R2 является проекцией отношения R на атрибуты С и D. Отношение «Преподаватели» имеет составной ключ (ФИО->Предмет->Группа). Это отношение находится в 1-й НФ, так как все его атрибуты простые. В этом отношении можно выделить частичную зависимость следующих атрибутов: стаж, д.стаж, кафедра, должность, оклад от ключа. Указанные атрибуты находятся в функциональной зависимости от атрибута «ФИО», который является частью составного ключа. Эта частичная зависимость от ключа приводит к следующему:

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

Избежать такого дублирования можно, если перейти во 2-ю НФ.

Вторая Нормальная Форма.

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

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

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

Четвёртая Нормальная Форма.

Рассмотрим 4-ю НФ на примере. Имеется отношение «Проекты»: Первичным ключом отношения является вся совокупность атрибутов.

Теорема Фейджина. Отношение R(A,B,C) можно спроецировать без потерь в отношение R1(A,B) и R2(A,С) только в том случае, если существует следующая зависимость: A=>B|C. Под проецированием без потерь тут понимается такая декомпозиция отношения, при которой исходное отношение полностью и без избыточности восстанавливается путём естественного соединения полученных отношений.

Результатом операции соединения отношений R1 и R2 является отношение с атрибутами A,B и C, которое носит название «тернарное отношение». Отношение R находится в 4-й НФ в том и только в том случае, когда существует многозначная зависимость между А и В и все остальные атрибуты R функционально зависят от А. Отношение R находится в 5-й нормальной форме в том и только в том случае, когда любая зависимость соединение в R следует из некоторого возможного ключа R.

Опубликовано в категории Системы управления и проектирования баз данных | Tagged | Leave a comment