0

База данных зоопарк access

База данных Access Зоопарк

База данных Access Зоопарк

База данных Access Зоопарк предназначена для автоматизации работы сотрудников зоопарка. В базе таблицы заполнены данными, выполнены простые запросы, параметрические запросы, а также запросы с групповыми операциями, запросы на обновление, удаление и запросы на создание таблицы. Также сделаны формы для работы с данными и отчеты, которые можно выводить на печать.
База данных Access Зоопарк содержит 5 таблиц, 7 запросов, 5 форм + главная кнопочная форма, 5 отчетов.
База данных Access Зоопарк легко редактируется, при необходимости можно добавить новые данные, отредактировать внешний вид форм и отчетов, создать необходимые запросы и макросы.

ВНИМАНИЕ! Пояснительная записка есть!

База данных Access Зоопарк позволяет добавлять и редактировать данные о животных, видах и подвидах, детенышах животных и персонале зоопарка. Также в базе данных Access Зоопарк предусмотрены запросы на поиск животных по кличке, рациону, стране и т.д.

Цель практических заданий – приобретение навыков анализа предметной области, проектирования базы данных, ее физической реализации в СУБД Access.
Результат выполнения работы представляется в виде базы Access, который должен содержать:
• структуру спроектированных таблиц,
• схему данных со связями между таблицами,
• примеры форм, обеспечивающих интерфейс пользователя,
• запросы (в режиме Конструктора и на языке SQL),
• отчеты (в режиме отчета и в режиме Конструктора),
• главную кнопочную форму.

Таблица «Вид животного» — База данных Access Зоопарк

Таблица «Детеныши» — База данных Access Зоопарк

Таблица «Справка о животном» — База данных Access Зоопарк

Запрос по стране

Форма «Животные зоопарка»

Форма «Вид животного»

Справка по животным

Главная кнопочная форма

Готовая база данных Access Зоопарк доступна для скачивания по ссылке ниже.

Страницы работы

Содержание работы

Приложение. Результаты работы запросов.

Выводы данных о животных с различными сортировками аналогичны, поэтому приведём здесь результат вывода с сортировкой по названиям:

Рис. 1. Вывод информации о животных с сортировкой по названиям.

Доля редких животных

Результаты запроса с категорией редкости менее 3:

Рис. 2. Доля редких животных с категорией редкости менее 3.

Самые редкие животные по каждому виду

Рис. 3. Самые редкие животные по каждому виду..

Самые маленькие животные по каждому виду

Рис. 4. Самые маленькие животные по каждому виду.

Самое маленькое животное

Рис. 5. Самое маленькое животное.

Животные с ценой, выше заданной

Результаты вывода животных с ценой более 2000.

.

Рис. 6. Животные с ценой выше 2000.

Животные из заданной страны

Результаты вывода животных из России.

Рис. 6. Животные из России.

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

Рис. 7. Средняя стоимость животных из России.

Рис. 8. Животные со стоимостью выше, чем средняя стоимость животных из России.

Самое дорогое и самое дешёвое животные

Рис. 9. Самое дорогое и самое дешёвое животные.

Средняя стоимость животного

Рис. 10. Средняя стоимость животного.

Количество животных в зоопарке

Рис. 11. Количество животных в зоопарке.

Количество больных животных

Рис. 12. Количество больных животных.

Соотношение больных и здоровых животных

Рис. 13. Соотношение больных и здоровых животных.

Животные, ожидающие потомства

Рис. 14. Животные, ожидающие потомства.

Найти спонсора заданного животного

Результаты поиска спонсора животного «Вася».

Рис. 15. Спонсор животного «Вася».

Найти поставщиков

Результаты поиска поставщиков продукта «Мясо», для животного «Петрович», стоимость которых более 80 и менее 90:

Рис. 16. Результаты поиска поставщиков.

Составить меню кормления

Результаты составления меню кормления животного «Петрович»:

Рис. 17. Результаты составления меню кормления для животного «Петрович».

Выводы данных о продукции с различными сортировками аналогичны, поэтому приведём здесь результат вывода с сортировкой по наименованиям:

Рис. 18. Вывод продукции, отсортированной по наименованиям.

2 НФ – все не ключевые атрибуты функционально полно зависят от ключа

КАРТОЧКА ПРИВИВОК ЖИВОТНОГО (НОМЕР_ЖИВ, ПРИВИВКА, ДАТА_ПРИВИВ)

2 НФ – все не ключевые атрибуты функционально полно зависят от первичного ключа отношений

Читайте также:  Вариатор на бездорожье отзывы

3 НФ – отсутствуют транзитивные зависимости

КАРТОЧКА БОЛЕЗНЕЙ ЖИВОТНОГО ( НОМЕР_ЖИВ , БОЛЕЗНЬ, ДАТА_БОЛ)

2 НФ – ключ состоит только из одного атрибута НОМЕР_ЖИВ

3 НФ – отсутствуют транзитивные зависимости

КЛЕТКИ ЖИВОТНЫХ ( НОМЕР_ЖИВ , НОМЕР_КЛЕТКИ)

1 НФ – все значения атомарные

2 НФ – ключ состоит только из одного атрибута НОМЕР_ЖИВ

3 НФ – отсутствуют транзитивные зависимости

ЖИВОТНЫЕ ( НОМЕР_ЖИВ , ВИД_ЖИВ, КЛИЧКА_ЖИВ, ПОЛ_ЖИВ, ВОЗРАСТ_ЖИВ, РОСТ_СМ, ВЕС_КГ, ДАТА_ПОСТУП)

2 НФ – ключ состоит только из одного атрибута НОМЕР_ЖИВ

3 НФ – отсутствуют транзитивные зависимости

ПОТОМСТВО ( НОМЕР_ЖИВ , НОМЕР_ДЕТ , ПАРА, ПРИБЛИЗ_ДАТА)

2 НФ – все не ключевые атрибуты функционально полно зависят от ключа

3 НФ – отсутствуют транзитивные зависимости

СОВМЕСТИМОСТЬ ЖИВОТНЫХ (НОМЕР_ЖИВ, СОВМЕСТИМ)

2 НФ – все не ключевые атрибуты функционально полно зависят от первичного ключа отношений

3 НФ – отсутствуют транзитивные зависимости

ТЕПЛОЕ ПОМЕЩЕНИЕ ( ВИД_ЖИВ , ТЕПЛОЕ_ПОМ)

1 НФ – все значения атомарные

2 НФ – ключ состоит только из одного атрибута ВИД_ЖИВ

3 НФ – отсутствуют транзитивные зависимости

КОРМЛЕНИЕ ( ВИД_ЖИВ , ТИП_КОРМА , СЕЗОН, В_ВОЗРАСТЕ)

1 НФ – все значения атомарные

2 НФ – все не ключевые атрибуты функционально полно зависят от ключа

3 НФ – отсутствуют транзитивные зависимости

ЗООПАРКИ (НАЗВ_ЗООПАРКА, НОМЕР_ЖИВ , ПЕРЕДАЧА, ДАТА_ОБМЕНА, ПОЛУЧИЛИ)

3 НФ – отсутствуют транзитивные зависимости

ПОСТАВЩИКИ ( НОМЕР_ПОСТАВЩ , НАЗВ_ОРГАНИЗ, ПОСТ_С, ПОСТАВ_ПО)

1 НФ – все значения атомарные

3 НФ – отсутствуют транзитивные зависимости

КОРМА (НОМЕР_ПОСТАВЩ, ТИП_КОРМА, КОЛ-ВО_КОРМА, ЦЕНА_КОРМА_КГ, ДАТА_ПОСТАВКИ)

2 НФ – все не ключевые атрибуты функционально полно зависят от первичного ключа отношений

3 НФ – отсутствуют транзитивные зависимости

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

2.4 СХЕМА ДАННЫХ

2.5 СОЗДАНИЕ ТАБЛИЦ БД С ИСПОЛЬЗОВАНИЕМ ЯЗЫКА SQL

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

CREATE DATABASE ЛЕНИНГРАДСКИЙ ЗООПАРК

CREATE TABLE СОТРУДНИКИ

( ТАБ _ НОМЕР VARCHAR (3) NOT NULL PRIMARY KEY,

ФИО VARCHAR (50) NOT NULL ,

ПОЛ VARCHAR (7) NOT NULL ,

ВОЗРАСТ VARCHAR (3) NOT NULL ,

СТАЖ VARCHAR (3) NOT NULL );

CREATE TABLE ДОЛЖНОСТЬ

( ТАБ _ НОМЕР VARCHAR (3) NOT NULL PRIMARY KEY ,

КОД _ ДОЛЖ VARCHAR (3) NOT NULL ,

НАИМ _ ДОЛЖ VARCHAR (25) NOT NULL ,

ЗАР _ ПЛАТА MONEY (64,2) NOT NULL );

CREATE TABLE ЖИВОТНЫЕ

( НОМЕР _ ЖИВ VARCHAR (5) NOT NULL PRIMARY KEY ,

ВИД _ ЖИВ VARCHAR (15) NOT NULL REFERENCES

ТЕПЛОЕ ПОМЕЩЕНИЕ (ВИД_ЖИВ),

КЛИЧКА _ ЖИВ VARCHAR (15) NOT NULL ,

ПОЛ _ ЖИВ VARCHAR (10) NOT NULL ,

ВОЗРАСТ _ ЖИВ VARCHAR (5) NOT NULL ,

РОСТ _ СМ VARCHAR (5) NOT NULL ,

ВЕС _ КГ VARCHAR (10) NOT NULL ,

CREATE TABLE РАБОТАЮТ С ЖИВОТНЫМИ

( ТАБ _ НОМЕР VARCHAR (3) NOT NULL PRIMARY KEY REFERENCES

ДОЛЖНОСТЬ ( ТАБ _ НОМЕР ),

НОМЕР _ ЖИВ VARCHAR (5) NOT NULL PRIMARY KEY REFERENCES

ДАТА_ПРИСТУП DATE NOT NULL );

CREATE TABLE КЛЕТКИ ЖИВОТНЫХ

( НОМЕР _ ЖИВ VARCHAR (5) NOT NULL PRIMARY KEY ,

НОМЕР _ КЛЕТКИ VARCHAR (3) NOT NULL );

CREATE TABLE КАРТОЧКА БОЛЕЗНЕЙ ЖИВОТНОГО

( НОМЕР _ ЖИВ VARCHAR (5) NOT NULL PRIMARY KEY ,

БОЛЕЗНЬ VARCHAR (20) ,

CREATE TABLE КАРТОЧКА ПРИВИВОК ЖИВОТНОГО

( НОМЕР _ ЖИВ VARCHAR (5) NOT NULL REFERENCES

ПРИВИВКА VARCHAR (5),

ДАТА _ ПРИВИВ DATA );

CREATE TABLE ЗООПАРКИ

( НАЗВ _ ЗООПАРКА VARCHAR (50) NOT NULL ,

НОМЕР _ ЖИВ VARCHAR (5) NOT NULL PRIMARY KEY ,

ПЕРЕДАЧА VARCHAR (30),

ПОЛУЧИЛИ VARCHAR (15));

CREATE TABLE ПОТОМСТВО

( НОМЕР _ ЖИВ VARCHAR (5) NOT NULL PRIMARY KEY ,

НОМЕР _ ДЕТ VARCHAR (5) NOT NULL PRIMARY KEY ,

ПАРА VARCHAR (5) NOT NULL ,

ПРИБЛИЗ _ ДАТА DATA );

CREATE TABLE ТЕПЛОЕ ПОМЕЩЕНИЕ

( ВИД _ ЖИВ VARCHAR (15) NOT NULL PRIMARY KEY ,

ТЕПЛОЕ_ПОМ VARCHAR (15));

CREATE TABLE СОВМЕСТИМОСТЬ ЖИВОТНЫХ

( ВИД _ ЖИВ VARCHAR (15) NOT NULL REFERENCES

ТЕПЛОЕ ПОМЕЩЕНИЕ (ВИД_ЖИВ),

СОВМЕСТИМ VARCHAR (20));

CREATE TABLE КОРМЛЕНИЕ

( ВИД _ ЖИВ VARCHAR (15) NOT NULL PRIMARY KEY REFERENCES

ТЕПЛОЕ ПОМЕЩЕНИЕ ( ВИД _ ЖИВ ),

ТИП _ КОРМА VARCHAR (50) NOT NULL PRIMARY KEY ,

СЕЗОН VARCHAR (20),

В_ВОЗРАСТЕ VARCHAR (20));

CREATE TABLE ПОСТАВЩИКИ

( НОМЕР _ ПОСТАВЩ VARCHAR (5) NOT NULL PRIMARY KEY ,

НАЗВ _ ОРГАНИЗ VARCHAR (25) NOT NULL ,

CREATE TABLE КОРМА

( НОМЕР _ ПОСТАВЩ VARCHAR (5) NOT NULL REFERENCES

ТИП _ КОРМА VARCHAR (50) NOT NULL ,

КОЛ-ВО_КОРМА VARCHAR (10) NOT NULL ,

ЦЕНА_КОРМА_КГ MONEY (64,2),

2.6 РАЗРАБОТКА ЗАПРОСОВ В БАЗЕ ДАННЫХ НА ЯЗЫКЕ SQL

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

Читайте также:  В чем разница между мультиваркой и скороваркой

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

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

Любой запрос в Microsoft Access реализуется с помощью языка SQL . Хотя большинство запросов можно создать, пользуясь графическими возможностями QBE (запроса по образцу), но и в этом случае каждый созданный запрос будет храниться в виде инструкции SQL .

Синтаксис инструкции SQL . Инструкция SELECT является ядром языка SQL .

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

Угловые скобки <> – заключают в себе элемент синтаксиса, который нужно

Квадратные скобки [ ] – заключают в себе один или несколько необязательных

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

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

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

Предложение GROUP BY – позволяет выполнить разделение таблиц на группы строк с одинаковыми значениями данных в конкретном столбце (или) столбцах. В языке SQL имеется ряд групповых функций, которые могут быть выполнены для групп строк, образуемых с помощью предложения GROUP BY . Эти функции выполняются над множеством значений определенного столбца. Имя столбца указывается в качестве аргумента функции. Результат выполнения появляется в виде одной строки для каждой группы.

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

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

Разница между предложениями HAVING и WHERE заключается в том, что условие отбора, заданное в предложении WHERE применяется к отдельным записям, перед тем как они объединяются в группы, а условие отбора предложения HAVING применяется к группам строк.

Предложение ORDER BY – задает последовательность строк, возвращаемых оператором SELECT . За ключевым словом ORDER BY указываются имена столбцов на основании значений данных, которых будет выполняться сортировка строк обрабатываемой таблицы. Столбец, указанный первым в предложении ORDER BY будет являться первичным ключом в сортировке. Последующий столбец образует вторичный ключ и т.д. Сортировка для каждого последующего ключа сортировки не нарушает порядок рассортированности, определяемый предыдущим ключом.

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

Для задания типа объединения таблиц в логический набор записей, из которого будет выбираться необходимая информация, используется операция JOIN в предложении FROM . Можно указать Access включить в логический набор записей только соответствующие строки обеих таблиц ( INNER JOIN – внутреннее объединение) или включить все строки одной из двух заданных таблиц даже в том случае, когда соответствующая ей строка не найдена во второй таблице ( OUTER JOIN – внешнее объединение).

Читайте также:  Будильник на ардуино ds1307

INNER JOIN – используется для включения всех строк из обеих таблиц, удовлетворяющих условию объединения.

LEFT JOIN – используется если необходимо получить все строки из первой таблицы, объединенные с теми строками из второй таблицы, для которых выполняется условие объединения. Если во второй таблице нет строк, для которых условие объединения выполняется, Access в качестве значений столбцов второй таблицы возвращает значение Null .

RIGHT JOIN – возвращает все строки из второй таблицы, объединенные с теми строками из первой таблицы, для которых выполняется условие объединения.

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

2.6.1 Получить список и общее число служащих зоопарка, либо служащих данной

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

SELECT СОТРУДНИКИ.ТАБ_НОМЕР, СОТРУДНИКИ.ФИО, СОТРУДНИКИ.ПОЛ, СОТРУДНИКИ.ВОЗРАСТ, СОТРУДНИКИ.СТАЖ, ДОЛЖНОСТЬ.НАИМ_ДОЛЖ, ДОЛЖНОСТЬ.КОД_ДОЛЖ, ДОЛЖНОСТЬ.ЗАР_ПЛАТА

FROM СОТРУДНИКИ INNER JOIN ДОЛЖНОСТЬ ON СОТРУДНИКИ.ТАБ_НОМЕР = ДОЛЖНОСТЬ.ТАБ_НОМЕР

WHERE (((ДОЛЖНОСТЬ.КОД_ДОЛЖ)=[Введите код должности:]))

ORDER BY СОТРУДНИКИ.ТАБ_НОМЕР DESC;

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

SELECT СОТРУДНИКИ.ТАБ_НОМЕР, СОТРУДНИКИ.ФИО, ДОЛЖНОСТЬ.НАИМ_ДОЛЖ, [РАБОТАЮТ С ЖИВОТНЫМИ].НОМЕР_ЖИВ, ЖИВОТНЫЕ.ВИД_ЖИВ, [РАБОТАЮТ С ЖИВОТНЫМИ].ДАТА_ПРИСТУП

FROM ЖИВОТНЫЕ INNER JOIN (ДОЛЖНОСТЬ INNER JOIN (СОТРУДНИКИ INNER JOIN [РАБОТАЮТ С ЖИВОТНЫМИ] ON СОТРУДНИКИ.ТАБ_НОМЕР = [РАБОТАЮТ С ЖИВОТНЫМИ].ТАБ_НОМЕР) ON (СОТРУДНИКИ.ТАБ_НОМЕР = ДОЛЖНОСТЬ.ТАБ_НОМЕР) AND (ДОЛЖНОСТЬ.ТАБ_НОМЕР = [РАБОТАЮТ С ЖИВОТНЫМИ].ТАБ_НОМЕР)) ON ЖИВОТНЫЕ.НОМЕР_ЖИВ = [РАБОТАЮТ С ЖИВОТНЫМИ].НОМЕР_ЖИВ

WHERE (((ЖИВОТНЫЕ.ВИД_ЖИВ)=[Введите вид животного :]) AND (([РАБОТАЮТ С ЖИВОТНЫМИ].ДАТА_ПРИСТУП)>=[В период с :] And ([РАБОТАЮТ С ЖИВОТНЫМИ].ДАТА_ПРИСТУП)

ORDER BY СОТРУДНИКИ.ТАБ_НОМЕР DESC;

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

SELECT ЖИВОТНЫЕ.НОМЕР_ЖИВ, ЖИВОТНЫЕ.ВИД_ЖИВ, ЖИВОТНЫЕ.ПОЛ_ЖИВ, ЖИВОТНЫЕ.ВОЗРАСТ_ЖИВ, ЖИВОТНЫЕ.ДАТА_ПОСТУП, [КАРТОЧКА ПРИВИВОК ЖИВОТНОГО].ПРИВИВКА, [КАРТОЧКА ПРИВИВОК ЖИВОТНОГО].ДАТА_ПРИВИВ

FROM ЖИВОТНЫЕ INNER JOIN [КАРТОЧКА ПРИВИВОК ЖИВОТНОГО] ON ЖИВОТНЫЕ.НОМЕР_ЖИВ = [КАРТОЧКА ПРИВИВОК ЖИВОТНОГО].НОМЕР_ЖИВ

WHERE (((ЖИВОТНЫЕ.ПОЛ_ЖИВ)=[Введите пол животного:]) AND ((ЖИВОТНЫЕ.ВОЗРАСТ_ЖИВ)=[Введите возраст животного:]))

ORDER BY ЖИВОТНЫЕ.НОМЕР_ЖИВ DESC;

SELECT ЖИВОТНЫЕ.НОМЕР_ЖИВ, ЖИВОТНЫЕ.ВИД_ЖИВ, ЖИВОТНЫЕ.ПОЛ_ЖИВ, ЖИВОТНЫЕ.ВОЗРАСТ_ЖИВ, ЖИВОТНЫЕ.ДАТА_ПОСТУП, [КАРТОЧКА БОЛЕЗНЕЙ ЖИВОТНОГО].БОЛЕЗНЬ, [КАРТОЧКА БОЛЕЗНЕЙ ЖИВОТНОГО].ДАТА_БОЛ

FROM ЖИВОТНЫЕ INNER JOIN [КАРТОЧКА БОЛЕЗНЕЙ ЖИВОТНОГО] ON ЖИВОТНЫЕ.НОМЕР_ЖИВ = [КАРТОЧКА БОЛЕЗНЕЙ ЖИВОТНОГО].НОМЕР_ЖИВ

WHERE (((ЖИВОТНЫЕ.ПОЛ_ЖИВ)=[Введите пол животного:]) AND ((ЖИВОТНЫЕ.ВОЗРАСТ_ЖИВ)=[Введите возраст животного:]))

ORDER BY ЖИВОТНЫЕ.НОМЕР_ЖИВ DESC;

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

SELECT ПОСТАВЩИКИ.НОМЕР_ПОСТАВЩ, ПОСТАВЩИКИ.НАЗВ_ОРГАНИЗ, ПОСТАВЩИКИ.ПОСТАВ_С, ПОСТАВЩИКИ.ПОСТАВ_ПО, КОРМА.ТИП_КОРМА, КОРМА.[КОЛ-ВО_КОРМА], КОРМА.ЦЕНА_КОРМА_КГ, КОРМА.ДАТА_ПОСТАВКИ

FROM ПОСТАВЩИКИ INNER JOIN КОРМА ON ПОСТАВЩИКИ.НОМЕР_ПОСТАВЩ = КОРМА.НОМЕР_ПОСТАВЩ

WHERE (((ПОСТАВЩИКИ.НОМЕР_ПОСТАВЩ)=[Введите код организации:]))

ORDER BY ПОСТАВЩИКИ.НОМЕР_ПОСТАВЩ DESC;

2.6.5 Получить перечень и объем кормов, производимых зоопарком полностью, либо только тех кормов, в поставках которых зоопарк не нуждается (обеспечивает себя сам).

SELECT ПОСТАВЩИКИ.НОМЕР_ПОСТАВЩ, ПОСТАВЩИКИ.НАЗВ_ОРГАНИЗ, КОРМА.ТИП_КОРМА, КОРМА.[КОЛ-ВО_КОРМА], КОРМА.ДАТА_ПОСТАВКИ

FROM ПОСТАВЩИКИ INNER JOIN КОРМА ON ПОСТАВЩИКИ.НОМЕР_ПОСТАВЩ = КОРМА.НОМЕР_ПОСТАВЩ

WHERE (((ПОСТАВЩИКИ.НОМЕР_ПОСТАВЩ)=[Введите код зоопарка № 10:]))

ORDER BY ПОСТАВЩИКИ.НОМЕР_ПОСТАВЩ DESC;

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

SELECT КОРМЛЕНИЕ.ВИД_ЖИВ, КОРМЛЕНИЕ.ТИП_КОРМА, КОРМЛЕНИЕ.СЕЗОН, КОРМЛЕНИЕ.В_ВОЗРАСТЕ

WHERE (((КОРМЛЕНИЕ.ВИД_ЖИВ)=[введите вид животного:]));

2.6.7 Получить перечень животных, от которых можно ожидать потомство в перспективе, в указанный период.

SELECT ЖИВОТНЫЕ.НОМЕР_ЖИВ, ЖИВОТНЫЕ.ВИД_ЖИВ, ЖИВОТНЫЕ.ПОЛ_ЖИВ, ПОТОМСТВО.ПАРА, ПОТОМСТВО.ПРИБЛИЗ_ДАТА, ПОТОМСТВО.НОМЕР_ДЕТ

FROM ЖИВОТНЫЕ INNER JOIN ПОТОМСТВО ON ЖИВОТНЫЕ.НОМЕР_ЖИВ = ПОТОМСТВО.НОМЕР_ЖИВ

WHERE (((ПОТОМСТВО.ПРИБЛИЗ_ДАТА)>=[Возможное потомство в период с:] And (ПОТОМСТВО.ПРИБЛИЗ_ДАТА)

ORDER BY ЖИВОТНЫЕ.НОМЕР_ЖИВ DESC;

2.6.8 Получить перечень и общее число зоопарков, с которыми был произведен обмен животными в целом или животными только указанного вида.

SELECT ЗООПАРКИ.НАЗВ_ЗООПАРКА, ЗООПАРКИ.НОМЕР_ЖИВ, ЖИВОТНЫЕ.ВИД_ЖИВ, ЗООПАРКИ.ПЕРЕДАЧА, ЗООПАРКИ.ДАТА_ОБМЕНА

FROM ЗООПАРКИ INNER JOIN ЖИВОТНЫЕ ON ЗООПАРКИ.НОМЕР_ЖИВ = ЖИВОТНЫЕ.НОМЕР_ЖИВ

WHERE (((ЖИВОТНЫЕ.ВИД_ЖИВ)=[Введите вид животного:]));

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Конспекты лекций по предмету «Базы данных» БГТУ 2006 г.

2. Базы данных: Основы, проектирование, использование: Учебное пособие по специальности 220400 – «Программное обеспечение вычислительной техники и автоматизированных систем» для межвузового использования / Мария Малыхина. – СПб.: БХВ – Петербург, 2004

3. Введение в системы баз данных, 6-е издание/Перевод с английского – СПб.: Издательский дом "Вильяме", 2000 г.

admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

0

База данных зоопарк access

База данных Access Зоопарк

База данных Access Зоопарк

База данных Access Зоопарк предназначена для автоматизации работы сотрудников зоопарка. В базе таблицы заполнены данными, выполнены простые запросы, параметрические запросы, а также запросы с групповыми операциями, запросы на обновление, удаление и запросы на создание таблицы. Также сделаны формы для работы с данными и отчеты, которые можно выводить на печать.
База данных Access Зоопарк содержит 5 таблиц, 7 запросов, 5 форм + главная кнопочная форма, 5 отчетов.
База данных Access Зоопарк легко редактируется, при необходимости можно добавить новые данные, отредактировать внешний вид форм и отчетов, создать необходимые запросы и макросы.

ВНИМАНИЕ! Пояснительная записка есть!

База данных Access Зоопарк позволяет добавлять и редактировать данные о животных, видах и подвидах, детенышах животных и персонале зоопарка. Также в базе данных Access Зоопарк предусмотрены запросы на поиск животных по кличке, рациону, стране и т.д.

Цель практических заданий – приобретение навыков анализа предметной области, проектирования базы данных, ее физической реализации в СУБД Access.
Результат выполнения работы представляется в виде базы Access, который должен содержать:
• структуру спроектированных таблиц,
• схему данных со связями между таблицами,
• примеры форм, обеспечивающих интерфейс пользователя,
• запросы (в режиме Конструктора и на языке SQL),
• отчеты (в режиме отчета и в режиме Конструктора),
• главную кнопочную форму.

Таблица «Вид животного» — База данных Access Зоопарк

Таблица «Детеныши» — База данных Access Зоопарк

Таблица «Справка о животном» — База данных Access Зоопарк

Запрос по стране

Форма «Животные зоопарка»

Форма «Вид животного»

Справка по животным

Главная кнопочная форма

Готовая база данных Access Зоопарк доступна для скачивания по ссылке ниже.

Страницы работы

Содержание работы

Приложение. Результаты работы запросов.

Выводы данных о животных с различными сортировками аналогичны, поэтому приведём здесь результат вывода с сортировкой по названиям:

Рис. 1. Вывод информации о животных с сортировкой по названиям.

Доля редких животных

Результаты запроса с категорией редкости менее 3:

Рис. 2. Доля редких животных с категорией редкости менее 3.

Самые редкие животные по каждому виду

Рис. 3. Самые редкие животные по каждому виду..

Самые маленькие животные по каждому виду

Рис. 4. Самые маленькие животные по каждому виду.

Самое маленькое животное

Рис. 5. Самое маленькое животное.

Животные с ценой, выше заданной

Результаты вывода животных с ценой более 2000.

.

Рис. 6. Животные с ценой выше 2000.

Животные из заданной страны

Результаты вывода животных из России.

Рис. 6. Животные из России.

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

Рис. 7. Средняя стоимость животных из России.

Рис. 8. Животные со стоимостью выше, чем средняя стоимость животных из России.

Самое дорогое и самое дешёвое животные

Рис. 9. Самое дорогое и самое дешёвое животные.

Средняя стоимость животного

Рис. 10. Средняя стоимость животного.

Количество животных в зоопарке

Рис. 11. Количество животных в зоопарке.

Количество больных животных

Рис. 12. Количество больных животных.

Соотношение больных и здоровых животных

Рис. 13. Соотношение больных и здоровых животных.

Животные, ожидающие потомства

Рис. 14. Животные, ожидающие потомства.

Найти спонсора заданного животного

Результаты поиска спонсора животного «Вася».

Рис. 15. Спонсор животного «Вася».

Найти поставщиков

Результаты поиска поставщиков продукта «Мясо», для животного «Петрович», стоимость которых более 80 и менее 90:

Рис. 16. Результаты поиска поставщиков.

Составить меню кормления

Результаты составления меню кормления животного «Петрович»:

Рис. 17. Результаты составления меню кормления для животного «Петрович».

Выводы данных о продукции с различными сортировками аналогичны, поэтому приведём здесь результат вывода с сортировкой по наименованиям:

Рис. 18. Вывод продукции, отсортированной по наименованиям.

2 НФ – все не ключевые атрибуты функционально полно зависят от ключа

КАРТОЧКА ПРИВИВОК ЖИВОТНОГО (НОМЕР_ЖИВ, ПРИВИВКА, ДАТА_ПРИВИВ)

2 НФ – все не ключевые атрибуты функционально полно зависят от первичного ключа отношений

Читайте также:  Будильник на ардуино ds1307

3 НФ – отсутствуют транзитивные зависимости

КАРТОЧКА БОЛЕЗНЕЙ ЖИВОТНОГО ( НОМЕР_ЖИВ , БОЛЕЗНЬ, ДАТА_БОЛ)

2 НФ – ключ состоит только из одного атрибута НОМЕР_ЖИВ

3 НФ – отсутствуют транзитивные зависимости

КЛЕТКИ ЖИВОТНЫХ ( НОМЕР_ЖИВ , НОМЕР_КЛЕТКИ)

1 НФ – все значения атомарные

2 НФ – ключ состоит только из одного атрибута НОМЕР_ЖИВ

3 НФ – отсутствуют транзитивные зависимости

ЖИВОТНЫЕ ( НОМЕР_ЖИВ , ВИД_ЖИВ, КЛИЧКА_ЖИВ, ПОЛ_ЖИВ, ВОЗРАСТ_ЖИВ, РОСТ_СМ, ВЕС_КГ, ДАТА_ПОСТУП)

2 НФ – ключ состоит только из одного атрибута НОМЕР_ЖИВ

3 НФ – отсутствуют транзитивные зависимости

ПОТОМСТВО ( НОМЕР_ЖИВ , НОМЕР_ДЕТ , ПАРА, ПРИБЛИЗ_ДАТА)

2 НФ – все не ключевые атрибуты функционально полно зависят от ключа

3 НФ – отсутствуют транзитивные зависимости

СОВМЕСТИМОСТЬ ЖИВОТНЫХ (НОМЕР_ЖИВ, СОВМЕСТИМ)

2 НФ – все не ключевые атрибуты функционально полно зависят от первичного ключа отношений

3 НФ – отсутствуют транзитивные зависимости

ТЕПЛОЕ ПОМЕЩЕНИЕ ( ВИД_ЖИВ , ТЕПЛОЕ_ПОМ)

1 НФ – все значения атомарные

2 НФ – ключ состоит только из одного атрибута ВИД_ЖИВ

3 НФ – отсутствуют транзитивные зависимости

КОРМЛЕНИЕ ( ВИД_ЖИВ , ТИП_КОРМА , СЕЗОН, В_ВОЗРАСТЕ)

1 НФ – все значения атомарные

2 НФ – все не ключевые атрибуты функционально полно зависят от ключа

3 НФ – отсутствуют транзитивные зависимости

ЗООПАРКИ (НАЗВ_ЗООПАРКА, НОМЕР_ЖИВ , ПЕРЕДАЧА, ДАТА_ОБМЕНА, ПОЛУЧИЛИ)

3 НФ – отсутствуют транзитивные зависимости

ПОСТАВЩИКИ ( НОМЕР_ПОСТАВЩ , НАЗВ_ОРГАНИЗ, ПОСТ_С, ПОСТАВ_ПО)

1 НФ – все значения атомарные

3 НФ – отсутствуют транзитивные зависимости

КОРМА (НОМЕР_ПОСТАВЩ, ТИП_КОРМА, КОЛ-ВО_КОРМА, ЦЕНА_КОРМА_КГ, ДАТА_ПОСТАВКИ)

2 НФ – все не ключевые атрибуты функционально полно зависят от первичного ключа отношений

3 НФ – отсутствуют транзитивные зависимости

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

2.4 СХЕМА ДАННЫХ

2.5 СОЗДАНИЕ ТАБЛИЦ БД С ИСПОЛЬЗОВАНИЕМ ЯЗЫКА SQL

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

CREATE DATABASE ЛЕНИНГРАДСКИЙ ЗООПАРК

CREATE TABLE СОТРУДНИКИ

( ТАБ _ НОМЕР VARCHAR (3) NOT NULL PRIMARY KEY,

ФИО VARCHAR (50) NOT NULL ,

ПОЛ VARCHAR (7) NOT NULL ,

ВОЗРАСТ VARCHAR (3) NOT NULL ,

СТАЖ VARCHAR (3) NOT NULL );

CREATE TABLE ДОЛЖНОСТЬ

( ТАБ _ НОМЕР VARCHAR (3) NOT NULL PRIMARY KEY ,

КОД _ ДОЛЖ VARCHAR (3) NOT NULL ,

НАИМ _ ДОЛЖ VARCHAR (25) NOT NULL ,

ЗАР _ ПЛАТА MONEY (64,2) NOT NULL );

CREATE TABLE ЖИВОТНЫЕ

( НОМЕР _ ЖИВ VARCHAR (5) NOT NULL PRIMARY KEY ,

ВИД _ ЖИВ VARCHAR (15) NOT NULL REFERENCES

ТЕПЛОЕ ПОМЕЩЕНИЕ (ВИД_ЖИВ),

КЛИЧКА _ ЖИВ VARCHAR (15) NOT NULL ,

ПОЛ _ ЖИВ VARCHAR (10) NOT NULL ,

ВОЗРАСТ _ ЖИВ VARCHAR (5) NOT NULL ,

РОСТ _ СМ VARCHAR (5) NOT NULL ,

ВЕС _ КГ VARCHAR (10) NOT NULL ,

CREATE TABLE РАБОТАЮТ С ЖИВОТНЫМИ

( ТАБ _ НОМЕР VARCHAR (3) NOT NULL PRIMARY KEY REFERENCES

ДОЛЖНОСТЬ ( ТАБ _ НОМЕР ),

НОМЕР _ ЖИВ VARCHAR (5) NOT NULL PRIMARY KEY REFERENCES

ДАТА_ПРИСТУП DATE NOT NULL );

CREATE TABLE КЛЕТКИ ЖИВОТНЫХ

( НОМЕР _ ЖИВ VARCHAR (5) NOT NULL PRIMARY KEY ,

НОМЕР _ КЛЕТКИ VARCHAR (3) NOT NULL );

CREATE TABLE КАРТОЧКА БОЛЕЗНЕЙ ЖИВОТНОГО

( НОМЕР _ ЖИВ VARCHAR (5) NOT NULL PRIMARY KEY ,

БОЛЕЗНЬ VARCHAR (20) ,

CREATE TABLE КАРТОЧКА ПРИВИВОК ЖИВОТНОГО

( НОМЕР _ ЖИВ VARCHAR (5) NOT NULL REFERENCES

ПРИВИВКА VARCHAR (5),

ДАТА _ ПРИВИВ DATA );

CREATE TABLE ЗООПАРКИ

( НАЗВ _ ЗООПАРКА VARCHAR (50) NOT NULL ,

НОМЕР _ ЖИВ VARCHAR (5) NOT NULL PRIMARY KEY ,

ПЕРЕДАЧА VARCHAR (30),

ПОЛУЧИЛИ VARCHAR (15));

CREATE TABLE ПОТОМСТВО

( НОМЕР _ ЖИВ VARCHAR (5) NOT NULL PRIMARY KEY ,

НОМЕР _ ДЕТ VARCHAR (5) NOT NULL PRIMARY KEY ,

ПАРА VARCHAR (5) NOT NULL ,

ПРИБЛИЗ _ ДАТА DATA );

CREATE TABLE ТЕПЛОЕ ПОМЕЩЕНИЕ

( ВИД _ ЖИВ VARCHAR (15) NOT NULL PRIMARY KEY ,

ТЕПЛОЕ_ПОМ VARCHAR (15));

CREATE TABLE СОВМЕСТИМОСТЬ ЖИВОТНЫХ

( ВИД _ ЖИВ VARCHAR (15) NOT NULL REFERENCES

ТЕПЛОЕ ПОМЕЩЕНИЕ (ВИД_ЖИВ),

СОВМЕСТИМ VARCHAR (20));

CREATE TABLE КОРМЛЕНИЕ

( ВИД _ ЖИВ VARCHAR (15) NOT NULL PRIMARY KEY REFERENCES

ТЕПЛОЕ ПОМЕЩЕНИЕ ( ВИД _ ЖИВ ),

ТИП _ КОРМА VARCHAR (50) NOT NULL PRIMARY KEY ,

СЕЗОН VARCHAR (20),

В_ВОЗРАСТЕ VARCHAR (20));

CREATE TABLE ПОСТАВЩИКИ

( НОМЕР _ ПОСТАВЩ VARCHAR (5) NOT NULL PRIMARY KEY ,

НАЗВ _ ОРГАНИЗ VARCHAR (25) NOT NULL ,

CREATE TABLE КОРМА

( НОМЕР _ ПОСТАВЩ VARCHAR (5) NOT NULL REFERENCES

ТИП _ КОРМА VARCHAR (50) NOT NULL ,

КОЛ-ВО_КОРМА VARCHAR (10) NOT NULL ,

ЦЕНА_КОРМА_КГ MONEY (64,2),

2.6 РАЗРАБОТКА ЗАПРОСОВ В БАЗЕ ДАННЫХ НА ЯЗЫКЕ SQL

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

Читайте также:  Из excel в компас

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

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

Любой запрос в Microsoft Access реализуется с помощью языка SQL . Хотя большинство запросов можно создать, пользуясь графическими возможностями QBE (запроса по образцу), но и в этом случае каждый созданный запрос будет храниться в виде инструкции SQL .

Синтаксис инструкции SQL . Инструкция SELECT является ядром языка SQL .

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

Угловые скобки <> – заключают в себе элемент синтаксиса, который нужно

Квадратные скобки [ ] – заключают в себе один или несколько необязательных

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

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

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

Предложение GROUP BY – позволяет выполнить разделение таблиц на группы строк с одинаковыми значениями данных в конкретном столбце (или) столбцах. В языке SQL имеется ряд групповых функций, которые могут быть выполнены для групп строк, образуемых с помощью предложения GROUP BY . Эти функции выполняются над множеством значений определенного столбца. Имя столбца указывается в качестве аргумента функции. Результат выполнения появляется в виде одной строки для каждой группы.

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

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

Разница между предложениями HAVING и WHERE заключается в том, что условие отбора, заданное в предложении WHERE применяется к отдельным записям, перед тем как они объединяются в группы, а условие отбора предложения HAVING применяется к группам строк.

Предложение ORDER BY – задает последовательность строк, возвращаемых оператором SELECT . За ключевым словом ORDER BY указываются имена столбцов на основании значений данных, которых будет выполняться сортировка строк обрабатываемой таблицы. Столбец, указанный первым в предложении ORDER BY будет являться первичным ключом в сортировке. Последующий столбец образует вторичный ключ и т.д. Сортировка для каждого последующего ключа сортировки не нарушает порядок рассортированности, определяемый предыдущим ключом.

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

Для задания типа объединения таблиц в логический набор записей, из которого будет выбираться необходимая информация, используется операция JOIN в предложении FROM . Можно указать Access включить в логический набор записей только соответствующие строки обеих таблиц ( INNER JOIN – внутреннее объединение) или включить все строки одной из двух заданных таблиц даже в том случае, когда соответствующая ей строка не найдена во второй таблице ( OUTER JOIN – внешнее объединение).

Читайте также:  Вариатор на бездорожье отзывы

INNER JOIN – используется для включения всех строк из обеих таблиц, удовлетворяющих условию объединения.

LEFT JOIN – используется если необходимо получить все строки из первой таблицы, объединенные с теми строками из второй таблицы, для которых выполняется условие объединения. Если во второй таблице нет строк, для которых условие объединения выполняется, Access в качестве значений столбцов второй таблицы возвращает значение Null .

RIGHT JOIN – возвращает все строки из второй таблицы, объединенные с теми строками из первой таблицы, для которых выполняется условие объединения.

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

2.6.1 Получить список и общее число служащих зоопарка, либо служащих данной

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

SELECT СОТРУДНИКИ.ТАБ_НОМЕР, СОТРУДНИКИ.ФИО, СОТРУДНИКИ.ПОЛ, СОТРУДНИКИ.ВОЗРАСТ, СОТРУДНИКИ.СТАЖ, ДОЛЖНОСТЬ.НАИМ_ДОЛЖ, ДОЛЖНОСТЬ.КОД_ДОЛЖ, ДОЛЖНОСТЬ.ЗАР_ПЛАТА

FROM СОТРУДНИКИ INNER JOIN ДОЛЖНОСТЬ ON СОТРУДНИКИ.ТАБ_НОМЕР = ДОЛЖНОСТЬ.ТАБ_НОМЕР

WHERE (((ДОЛЖНОСТЬ.КОД_ДОЛЖ)=[Введите код должности:]))

ORDER BY СОТРУДНИКИ.ТАБ_НОМЕР DESC;

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

SELECT СОТРУДНИКИ.ТАБ_НОМЕР, СОТРУДНИКИ.ФИО, ДОЛЖНОСТЬ.НАИМ_ДОЛЖ, [РАБОТАЮТ С ЖИВОТНЫМИ].НОМЕР_ЖИВ, ЖИВОТНЫЕ.ВИД_ЖИВ, [РАБОТАЮТ С ЖИВОТНЫМИ].ДАТА_ПРИСТУП

FROM ЖИВОТНЫЕ INNER JOIN (ДОЛЖНОСТЬ INNER JOIN (СОТРУДНИКИ INNER JOIN [РАБОТАЮТ С ЖИВОТНЫМИ] ON СОТРУДНИКИ.ТАБ_НОМЕР = [РАБОТАЮТ С ЖИВОТНЫМИ].ТАБ_НОМЕР) ON (СОТРУДНИКИ.ТАБ_НОМЕР = ДОЛЖНОСТЬ.ТАБ_НОМЕР) AND (ДОЛЖНОСТЬ.ТАБ_НОМЕР = [РАБОТАЮТ С ЖИВОТНЫМИ].ТАБ_НОМЕР)) ON ЖИВОТНЫЕ.НОМЕР_ЖИВ = [РАБОТАЮТ С ЖИВОТНЫМИ].НОМЕР_ЖИВ

WHERE (((ЖИВОТНЫЕ.ВИД_ЖИВ)=[Введите вид животного :]) AND (([РАБОТАЮТ С ЖИВОТНЫМИ].ДАТА_ПРИСТУП)>=[В период с :] And ([РАБОТАЮТ С ЖИВОТНЫМИ].ДАТА_ПРИСТУП)

ORDER BY СОТРУДНИКИ.ТАБ_НОМЕР DESC;

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

SELECT ЖИВОТНЫЕ.НОМЕР_ЖИВ, ЖИВОТНЫЕ.ВИД_ЖИВ, ЖИВОТНЫЕ.ПОЛ_ЖИВ, ЖИВОТНЫЕ.ВОЗРАСТ_ЖИВ, ЖИВОТНЫЕ.ДАТА_ПОСТУП, [КАРТОЧКА ПРИВИВОК ЖИВОТНОГО].ПРИВИВКА, [КАРТОЧКА ПРИВИВОК ЖИВОТНОГО].ДАТА_ПРИВИВ

FROM ЖИВОТНЫЕ INNER JOIN [КАРТОЧКА ПРИВИВОК ЖИВОТНОГО] ON ЖИВОТНЫЕ.НОМЕР_ЖИВ = [КАРТОЧКА ПРИВИВОК ЖИВОТНОГО].НОМЕР_ЖИВ

WHERE (((ЖИВОТНЫЕ.ПОЛ_ЖИВ)=[Введите пол животного:]) AND ((ЖИВОТНЫЕ.ВОЗРАСТ_ЖИВ)=[Введите возраст животного:]))

ORDER BY ЖИВОТНЫЕ.НОМЕР_ЖИВ DESC;

SELECT ЖИВОТНЫЕ.НОМЕР_ЖИВ, ЖИВОТНЫЕ.ВИД_ЖИВ, ЖИВОТНЫЕ.ПОЛ_ЖИВ, ЖИВОТНЫЕ.ВОЗРАСТ_ЖИВ, ЖИВОТНЫЕ.ДАТА_ПОСТУП, [КАРТОЧКА БОЛЕЗНЕЙ ЖИВОТНОГО].БОЛЕЗНЬ, [КАРТОЧКА БОЛЕЗНЕЙ ЖИВОТНОГО].ДАТА_БОЛ

FROM ЖИВОТНЫЕ INNER JOIN [КАРТОЧКА БОЛЕЗНЕЙ ЖИВОТНОГО] ON ЖИВОТНЫЕ.НОМЕР_ЖИВ = [КАРТОЧКА БОЛЕЗНЕЙ ЖИВОТНОГО].НОМЕР_ЖИВ

WHERE (((ЖИВОТНЫЕ.ПОЛ_ЖИВ)=[Введите пол животного:]) AND ((ЖИВОТНЫЕ.ВОЗРАСТ_ЖИВ)=[Введите возраст животного:]))

ORDER BY ЖИВОТНЫЕ.НОМЕР_ЖИВ DESC;

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

SELECT ПОСТАВЩИКИ.НОМЕР_ПОСТАВЩ, ПОСТАВЩИКИ.НАЗВ_ОРГАНИЗ, ПОСТАВЩИКИ.ПОСТАВ_С, ПОСТАВЩИКИ.ПОСТАВ_ПО, КОРМА.ТИП_КОРМА, КОРМА.[КОЛ-ВО_КОРМА], КОРМА.ЦЕНА_КОРМА_КГ, КОРМА.ДАТА_ПОСТАВКИ

FROM ПОСТАВЩИКИ INNER JOIN КОРМА ON ПОСТАВЩИКИ.НОМЕР_ПОСТАВЩ = КОРМА.НОМЕР_ПОСТАВЩ

WHERE (((ПОСТАВЩИКИ.НОМЕР_ПОСТАВЩ)=[Введите код организации:]))

ORDER BY ПОСТАВЩИКИ.НОМЕР_ПОСТАВЩ DESC;

2.6.5 Получить перечень и объем кормов, производимых зоопарком полностью, либо только тех кормов, в поставках которых зоопарк не нуждается (обеспечивает себя сам).

SELECT ПОСТАВЩИКИ.НОМЕР_ПОСТАВЩ, ПОСТАВЩИКИ.НАЗВ_ОРГАНИЗ, КОРМА.ТИП_КОРМА, КОРМА.[КОЛ-ВО_КОРМА], КОРМА.ДАТА_ПОСТАВКИ

FROM ПОСТАВЩИКИ INNER JOIN КОРМА ON ПОСТАВЩИКИ.НОМЕР_ПОСТАВЩ = КОРМА.НОМЕР_ПОСТАВЩ

WHERE (((ПОСТАВЩИКИ.НОМЕР_ПОСТАВЩ)=[Введите код зоопарка № 10:]))

ORDER BY ПОСТАВЩИКИ.НОМЕР_ПОСТАВЩ DESC;

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

SELECT КОРМЛЕНИЕ.ВИД_ЖИВ, КОРМЛЕНИЕ.ТИП_КОРМА, КОРМЛЕНИЕ.СЕЗОН, КОРМЛЕНИЕ.В_ВОЗРАСТЕ

WHERE (((КОРМЛЕНИЕ.ВИД_ЖИВ)=[введите вид животного:]));

2.6.7 Получить перечень животных, от которых можно ожидать потомство в перспективе, в указанный период.

SELECT ЖИВОТНЫЕ.НОМЕР_ЖИВ, ЖИВОТНЫЕ.ВИД_ЖИВ, ЖИВОТНЫЕ.ПОЛ_ЖИВ, ПОТОМСТВО.ПАРА, ПОТОМСТВО.ПРИБЛИЗ_ДАТА, ПОТОМСТВО.НОМЕР_ДЕТ

FROM ЖИВОТНЫЕ INNER JOIN ПОТОМСТВО ON ЖИВОТНЫЕ.НОМЕР_ЖИВ = ПОТОМСТВО.НОМЕР_ЖИВ

WHERE (((ПОТОМСТВО.ПРИБЛИЗ_ДАТА)>=[Возможное потомство в период с:] And (ПОТОМСТВО.ПРИБЛИЗ_ДАТА)

ORDER BY ЖИВОТНЫЕ.НОМЕР_ЖИВ DESC;

2.6.8 Получить перечень и общее число зоопарков, с которыми был произведен обмен животными в целом или животными только указанного вида.

SELECT ЗООПАРКИ.НАЗВ_ЗООПАРКА, ЗООПАРКИ.НОМЕР_ЖИВ, ЖИВОТНЫЕ.ВИД_ЖИВ, ЗООПАРКИ.ПЕРЕДАЧА, ЗООПАРКИ.ДАТА_ОБМЕНА

FROM ЗООПАРКИ INNER JOIN ЖИВОТНЫЕ ON ЗООПАРКИ.НОМЕР_ЖИВ = ЖИВОТНЫЕ.НОМЕР_ЖИВ

WHERE (((ЖИВОТНЫЕ.ВИД_ЖИВ)=[Введите вид животного:]));

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Конспекты лекций по предмету «Базы данных» БГТУ 2006 г.

2. Базы данных: Основы, проектирование, использование: Учебное пособие по специальности 220400 – «Программное обеспечение вычислительной техники и автоматизированных систем» для межвузового использования / Мария Малыхина. – СПб.: БХВ – Петербург, 2004

3. Введение в системы баз данных, 6-е издание/Перевод с английского – СПб.: Издательский дом "Вильяме", 2000 г.

admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *