Разработать базу данных любителей кошек

 

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

 

 

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

«ГОМЕЛЬСКИЙ ГОСУДАРСТВЕННЫЙ  УНИВЕРСИТЕТ  
ИМЕНИ ФРАНЦИСКА СКОРИНЫ»

 

 

Заочный факультет

 

Кафедра автоматизированных систем обработки информации

 

 

 

 

 

 

 

Разработать  
базу данных любителей кошек

 

КУРСОВОЙ ПРОЕКТ

 

 

 

 

 

 

 

Исполнитель

студент группы АС-42    Лебёдкина Е.В.

 

Руководитель Леванцов В.Н.

 

 

Гомель 2012 

СОДЕРЖАНИЕ

Введение

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

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

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

   Стандарт SQL определяется ANSI (Американским Национальным Институтом Стандартов) и в данное время также принимается ISO (МЕЖДУНАРОДНОЙ  ОРГАНИЗАЦИЕЙ ПО СТАНДАРТИЗАЦИИ).  Однако, большинство коммерческих программ баз данных расширяют SQL без уведомления  ANSI,  добавляя  разные другие особенности в этот язык, которые, как они считают, будут весьма полезны.  Иногда они несколько нарушают стандарт языка,  хотя  хорошие идеи  имеют  тенденцию  развиваться  и  вскоре становиться стандартами "рынка" сами по себе в силу полезности своих качеств.

Темой курсового проекта является разработка базы данных любителей кошек.

Целью курсового проекта является закрепление студентами теоретических и углубление практических знаний, полученных при изучении дисциплины "Базы и банки данных". Инструментальным средством выплонения проекта может являться любая реляционная СУБД (Access, FoxBase, FoxPro, Clipper, Visual FoxPro и т.д.), поддерживающая программный режим работы.

Допускается, кроме того, написание  проекта на языках высокого уровня (Object Pascal в среде Delphi,  С++ Builder  и т.д.) при обязательном использовании в программе специальных объектов для работы с базами данных.

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

Задачами курсового проекта являются:

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

Требования к созданной программистом  базе данных:

  • База данных должна содержать не менее 7-8 различных атрибутов, характеризующих выбранный объект автоматизации.
  • База данных должна находиться в третьей нормальной форме (3NF)
  • База данных должна состоять не менее чем из трех связанных таблиц данных;

Требования к возможностям ведения  базы данных, предоставляемым программой:

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

Требования к возможностям анализа  данных, предоставляемым программой:

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

    1. Общее понятие о реляционных базах данных

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

    1. Проектирование базы данных

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

Процесс проектирования состоит из следующих этапов:

  1. Определение объектов, сведения о которых отображаются в базе данных.
  2. Определения связей между объектами.
  3. Определение атрибутов объектов.
  4. Нормализация отношений.

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

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

Достоинства реляционных баз данных:

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

Различают три типа взаимосвязей между  объектами:

  1. Взаимосвязь «один к одному» – это когда одному экземпляру одного объекта соответствует один и только один экземпляр другого объекта. Такой вид связи встречается довольно редко, т.к. без потерь сущности их можно объединить в одну таблицу.
  2. Взаимосвязь «один ко многим» – это когда одному экземпляру первого (родительского) объекта соответствует несколько экземпляров второго (дочернего) экземпляра. Это основной вид в реляционных базах данных.
  3. Взаимосвязь «многие ко многим» – это когда одному экземпляру первого объекта соответствует несколько экземпляров второго и наоборот. Такой тип связи не допускается в реляционных базах данных и реализуется путем введение дополнительного объекта, который хранит идентификаторы связанных объектов.

В состав объекта должны быть включены:

  1. Ключевые атрибуты, однозначно определяющие экземпляры объекта.
  2. Ключи связанных объектов. Для связи один к одному каждый объект должен содержать ключ связанного объекта или оба должны иметь одинаковое значение ключа для связанных экземпляров.
  3. Неключевые атрибуты, характеризующие объект.

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

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

В теории реляционных  баз данных обычно выделяется следующая  последовательность нормальных форм:

  • первая нормальная форма (1NF);
  • вторая нормальная форма (2NF);
  • третья нормальная форма (3NF);
  • нормальная форма Бойса-Кодда (BCNF);
  • четвертая нормальная форма (4NF);
  • пятая нормальная форма, или нормальная форма проекции-соединения (5NF или PJ/NF).

Основные свойства нормальных форм:

  • каждая следующая нормальная форма в некотором смысле лучше предыдущей;
  • при переходе к следующей нормальной форме свойства предыдущих нормальных свойств сохраняются.

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

Основной  формой считается 3НФ – для большинства  баз данных она является достаточной для обеспечения целей проектирования.

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

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

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

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

Третья нормальная форма считается  оптимальной для небольших баз данных, при проведении дальнейшей нормализации следует учитывать, что при увеличении количества связанных таблиц увеличивается время обработки информации, хранящейся в них [4].

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

Microsoft Access – это функционально полная реляционная СУБД, в которой предусмотрены все необходимые средства для определения и обработки данных, а также управления ими при работе с большими объемами данных.

Основные объекты Microsoft Access:

  1. Таблицы – они предназначены для хранения информации. Таблица содержит записи (строки) и поля (столбцы). Для каждой таблицы можно определить первичный ключ и один или несколько индексов с целью увеличения скорости доступа к данным.
  2. Форма – предназначены для ввода, просмотра и редактирования данных, отображая их на экране, и служит для управления работой приложения.
  3. Запрос – объект, который позволяет получить нужные данные из одной или нескольких таблиц. Можно создавать запросы на выбор, обновление, удаление или добавление записей (данных). С помощью запросов можно создавать новые таблицы, используя данные из существующих таблиц и запросов.
  4. Отчет – объект, предназначенный для создания документа, который может быть впоследствии распечатан или включен в документ другого приложения.
  5. Макрос – это объект, представляющий собой структурированное описание одного или нескольких действий, которые должны быть выполнены в ответ на определенное событие (закрытие, открытие формы, управление кнопками).
  6. Модуль – это объект, содержащий программу на языке Microsoft Access Basic. Использование таких программ позволяет реализовать такие функции приложений, которые не могут быть реализованы другими средствами Microsoft Access.
    1. Основные понятия языка SQL

Язык SQL (Structured Query Language – структуризованный язык запросов) является непроцедурным языком и ориентирован на операции с данными, представленными в виде логически взаимосвязанных совокупностей таблиц. Особенность предложений этого языка состоит в том, что они ориентированы в большей степени на конечный результат обработки данных, чем на процедуру этой обработки. SQL сам определяет, где находятся данные, какие индексы и даже наиболее эффективные последовательности операций следует использовать для их получения: не надо указывать эти детали в запросе к базе данных.

SQL это язык ориентированный  специально на реляционные базы  данных. Он устраняет много работы, которую вы должны были бы сделать, если бы вы использовали универсальный язык  программирования,  например  C.

SQL может использоваться как  интерактивный (для выполнения  запросов) и как встроенный (для построения прикладных программ). В нем существуют:

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

В SQL используются следующие основные типы данных, форматы которых могут несколько различаться для разных СУБД:

  • INTEGER - целое число (обычно до 10 значащих цифр и знак);
  • SMALLINT - "короткое целое" (обычно до 5 значащих цифр и знак);
  • DECIMAL(p,q) - десятичное число, имеющее p цифр (0 < p < 16) и знак; с помощью q задается число цифр справа от десятичной точки (q < p, если q = 0, оно может быть опущено);
  • FLOAT - вещественное число с 15 значащими цифрами и целочисленным порядком, определяемым типом СУБД;
  • CHAR(n) - символьная строка фиксированной длины из n символов (0 < n < 256);
  • VARCHAR(n) - символьная строка переменной длины, не превышающей n символов (n > 0 и разное в разных СУБД, но не меньше 4096);
  • DATE - дата в формате, определяемом специальной командой (по умолчанию mm/dd/yy); поля даты могут содержать только реальные даты, начинающиеся за несколько тысячелетий до н.э. и ограниченные пятым-десятым тысячелетием н.э.;
  • TIME - время в формате, определяемом специальной командой, (по умолчанию hh.mm.ss);
  • DATETIME - комбинация даты и времени;
  • MONEY - деньги в формате, определяющем символ денежной единицы ($, руб, ...) и его расположение (суффикс или префикс), точность дробной части и условие для показа денежного значения.
  • В некоторых СУБД еще существует тип данных LOGICAL, DOUBLE и ряд других. СУБД INGRES предоставляет пользователю возможность самостоятельного определения новых типов данных, например, плоскостные или пространственные координаты, единицы различных метрик, пяти- или шестидневные недели (рабочая неделя, где сразу после пятницы или субботы следует понедельник), дроби, графика, большие целые числа (что стало очень актуальным для российских банков) и т.п.

Ориентированный на работу с таблицами SQL не имеет достаточных средств для создания сложных прикладных программ. Поэтому в разных СУБД он либо используется вместе с языками программирования высокого уровня (например, такими как Си или Паскаль), либо включен в состав команд специально разработанного языка СУБД (язык систем dBASE, R:BASE и т.п.).

    1. Реализация основных запросов на SQL

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

Предложение SELECT может использоваться как:

  • самостоятельная команда на получение и вывод строк таблицы, сформированной из столбцов и строк одной или нескольких таблиц (представлений);
  • элемент WHERE- или HAVING-условия (сокращенный вариант предложения, называемый "вложенный запрос");
  • фраза выбора в командах CREAT VIEW, DECLARE CURSOR или INSERT;
  • средство присвоения глобальным переменным значений из строк сформированной таблицы (INTO-фраза).

Предложение SELECT имеет следующий формат:

SELECT [[ALL] | DISTINCT] { * | эл-т_выбора [,эл-т_выбора]¼}

FROM {базовая_таблица  | представление} [псевдоним]

      [,{базовая_таблица | представление} [псевдоним]] ...

[WHERE условие]

[GROUP BY фраза [HAVING условие на группу]]

[ORDER BY {таблица.столбец | № эл-та_выбора } [[ASC] | DESC]

[,{таблица.столбец | № эл-та_выбора } [[ASC] | DESC]] ...;

Обозначает этот запрос следующее:

SELECT – (выбрать) данные из указанных столбцов и (если необходимо) выполнить перед выводом их преобразование в соответствии с указанными выражениями и (или) функциями

FROM – (из) перечисленных таблиц, в которых расположены эти столбцы

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

GROUP BY – (группируя по) указанному перечню столбцов с тем, чтобы получить для каждой группы единственное агрегированное значение, используя во фразе SELECT SQL-функции SUM (сумма), COUNT (количество), MIN (минимальное значение), MAX (максимальное значение) или AVG (среднее значение)

HAVING – (имея) в результате лишь те группы, которые удовлетворяют указанному перечню условий отбора групп

Эл-т_выбора – это одна из следующих конструкций:

* | значение|SQL_функция | системная_переменная

где «значение» это:

таблица.столбец | (выражение) | константа | переменная

Фраза WHERE включает набор условий для отбора строк:

WHERE [NOT] условие [[AND|OR][NOT] условие1]...

где «условие» одна из следующих  конструкций:

значение { = | <> | < | <= | > | >= } { значение | ( подзапрос ) }

значение_1 [NOT] BETWEEN значение_2 AND значение_3

значение [NOT] IN { ( константа [,константа]... ) | ( подзапрос ) }

значение IS [NOT] NULL

таблица.столбец [NOT] LIKE 'строка_символов' [ESCAPE 'символ']

Кроме традиционных операторов сравнения (= | <> | < | <= | > | >=) в WHERE фразе используются условия BETWEEN (между), LIKE (похоже на), IN (принадлежит), IS NULL (не определено) и EXISTS (существует), которые могут предваряться оператором NOT (не). Критерий отбора строк формируется из одного или нескольких условий, соединенных логическими операторами (AND, OR, AND NOT, OR NOT), причем существует приоритет AND над OR (сначала выполняются все операции AND и только после этого операции OR).

Синтаксис фразы GROUP BY имеет вид:

GROUP BY таблица.столбец [,таблица.столбец] ... [HAVING условие]

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

С помощью фразы HAVING (синтаксис которой почти не отличается от синтаксиса фразы WHERE):

HAVING [NOT] условие [[AND|OR][NOT] условие]...

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

значение { = | <> | < | <= | > | >= } { значение | ( подзапрос ) | SQL_функция}

Выборка данных из нескольких таблиц соединением.

Даже при отсутствии средств  одновременного доступа ко многим таблицам нежелателен проект, в котором информация о многих типах сущностей перемешана в одной таблице. SQL же обладает великолепным механизмом для одновременной или последовательной обработки данных из нескольких взаимосвязанных таблиц. В нем реализованы возможности "соединять" или "объединять" несколько таблиц и так называемые "вложенные подзапросы".

Суть соединения в том, что в  списке элементов выбора указываются  необходимые нам поля вне зависимости от того, в каких таблицах они располагаются. Сами таблицы, поля которых нам нужны, должны быть перечислены в разделе FROM. Кроме того, в секции условия WHERE мы должны указать условия, по которым записи из одной таблицы будут сопоставляться с записями другой таблицы (как правило, это условие о том, что значение поля внешнего ключа подчиненной таблицы должно быть равно ключевому полю главной).

Обрабатываться такой запрос будет  следующим образом: СУБД последовательно формирует строки декартова произведения таблиц, перечисленных во фразе FROM, проверяет, удовлетворяют ли данные сформированной строки условиям фразы WHERE, и если удовлетворяют, то включает в ответ на запрос те ее поля, которые перечислены во фразе SELECT.

Следует подчеркнуть, что в SELECT и WHERE (во избежание двусмысленности) ссылки на все (*) или отдельные столбцы должны уточняться именем соответствующей таблицы.

Модификация данных средствами SQL

Модификация данных может выполняться  с помощью предложений DELETE (удалить), INSERT (вставить) и UPDATE (обновить). Подобно предложению SELECT они могут оперировать как базовыми таблицами, так и представлениями. Однако по ряду причин не все представления являются обновляемыми.

Предложение DELETE имеет формат

DELETE

FROM   базовая таблица | представление

[WHERE условие];

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

Предложение INSERT имеет один из следующих форматов:

INSERT

INTO    {базовая таблица | представление} [(столбец [,столбец] ...)]

VALUES ({константа | переменная} [,{константа  | переменная}] ...);

или

INSERT

INTO {базовая таблица | представление} [(столбец [,столбец] ...)]

     подзапрос;

В первом формате в таблицу вставляется  строка со значениями полей, указанными в перечне фразы VALUES (значения), причем i-е значение соответствует i-му столбцу в списке столбцов (столбцы, не указанные в списке, заполняются NULL-значениями). Если в списке VALUES фразы указаны все столбцы модифицируемой таблицы и порядок их перечисления соответствует порядку столбцов в описании таблицы, то список столбцов в фразе INTO можно опустить. Однако не советуем этого делать, так как при изменении описания таблицы (перестановка столбцов или изменение их числа) придется переписывать и INSERT предложение.

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

Предложение UPDATE также имеет два формата. Первый из них:

UPDATE (базовая таблица | представление}

SET столбец = значение [, столбец = значение] ...

[WHERE условие]

где значение - это

столбец | выражение | константа | переменная

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

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

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

В значениях, находящихся в правых частях равенств фразы SET, следует уточнять имена используемых столбцов, предваряя их именем таблицы (псевдонима) [1].

    1. Общее понятие о языке VBA (Visual Basic for Аpplications)

Microsoft Access имеет встроенный язык программирования – Visual Basic for Аpplications (VBA). Этот язык позволяет создавать приложения, выполняемые в среде Microsoft Office. Это могут быть разнообразные аналитические программы, финансовые системы, программы учета кадров, системы автоматического создания официальных писем/документов с помощью библиотеки готовых шаблонов и т.п. При этом интерфейс создаваемой программы может быть совершенно непохожим на интерфейс того приложения, в котором она написана.

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

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

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

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

VBA сочетает в себе практически  неограниченные возможности с  простотой изучения и использования. Теперь большинство функций можно описать, не прибегая к программированию. В том случае, если возможностей языка недостаточно, можно обратиться к API-функциям Windows. Пожалуй, самое главное достоинство VBA в том, что этот язык является единым для всех офисных приложений Microsoft и поэтому позволяет связывать их между собой. Уже сейчас из программы, написанной в Excel, можно обращаться к объектам Word для Windows, а также Microsoft Project. Это открывает заманчивые перспективы. Представьте, что пользователь на конкретном рабочем месте должен на основе некоторых данных, извлекаемых из базы, делать их анализ, строить диаграммы и проектировать деятельность организации, а также автоматически выполнять рассылку этих обработанных данных по некоторым адресам вместе с сопроводительным письмом. Все это можно сделать средствами офисных продуктов Microsoft, однако при этом пользователь должен в совершенстве овладеть каждым из них. В случае если программа для решения этой задачи написана на VBA, пользователю придется изучить только ее.

Встраивание VBA в какое-то приложение означает для него создание объектной модели, в результате VBA-программа может обращаться к объектам этого приложения и манипулировать ими.

Разработать базу данных любителей кошек