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

Автор работы: Пользователь скрыл имя, 03 Марта 2013 в 17:28, курсовая работа

Краткое описание

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

Содержимое работы - 1 файл

Курсовой проект БД любителей кошек.doc

— 8.69 Мб (Скачать файл)
    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-программа может обращаться к объектам этого приложения и манипулировать ими.

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