Файл: Отчет по лабораторной работе. 2 Используя ms access перенести полученную модель в бд, используя таблицы и схему данных.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 03.02.2024
Просмотров: 72
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
№
пп
Прикладная
область
Атрибуты информации
11
Лесное хозяйство наименование зеленого массива, площадь, основная порода, средний возраст, плотность деревьев на кв. км
Произвести выборку наименование зеленого массива из двух полей «площадь», «средний возраст». Если значение поля «средний возраст» в соответствующей таблице не существует, то выводить строку «средний возраст неизвестен» с помощью функции iif.
Определить среднее значение площади зеленого массива для каждой породы деревьев.
Вывести для каждой породы название зеленого массива, площадь, средний возраст при условии, что площадь больше среднего значения площади зеленого массива для каждой породы деревьев
Определить по основным породам деревьев, какое кол-во зеленых массивов, у которых плотность деревьев на кв. км меньше значения1
и площадь меньше значения2
(перекрестный запрос).
12
Городской транспорт вид транспорта, номер маршрута, начальная остановка, конечная остановка, время в пути
Произвести выборку видов транспорта из двух полей «номер маршрута», «время в пути».
Если значение поля «время в пути» в соответствующей таблице не существует, то выводить строку «время в пути неизвестно» с помощью функции iif.
Определить среднее время в пути по каждому виду транспорта. Вывести вид транспорта, номер маршрута, начальная остановка, конечная остановка, время в пути на экран у которых время в пути меньше среднего значения по виду транспорта.
Определить по видам транспорта какое количество маршрутов, у которых время в пути больше значения1
и конечная остановка значение2
(перекрестный запрос).
13
Университет
ФИО и должность преподавателя, назв. предмета, кол-во часов, тип контроля
Произвести выборку преподавателей из двух полей «ФИО», «тип контроля». Если значение поля «тип контроля» в соответствующей таблице не существует, то выводить строку «тип контроля неизвестен» с помощью функции iif.
Определить среднее кол-во братьев и сестер студента по каждому факультету. Вывести факультет, ФИО студента, специальности отца и матери, кол-во братьев и сестер на экран у которых кол-во братьев и сестер меньше среднего значения по факультету.
Определить по факультетам какое количество студентов, у которых количество братьев и сестер больше значения1
и специальность матери значение2
(перекрестный запрос).
14
Оптовая база название товара, количество на складе, стоимость единицы, название поставщика, срок поставки
Произвести выборку товара из двух полей «название товара», «количество на складе».
Если значение поля «количество на складе» в соответствующей таблице не существует, то выводить строку «данного товара нет» с помощью функции iif.
Определить среднюю стоимость товара на складе по каждому поставщику. Вывести название товара, количество на складе, срок поставки на экран, у которых стоимость товара меньше средней стоимости товара по поставщику.
Определить по поставщикам какое количество названий товаров, у которых срок поставки больше значения1
и стоимость единицы товара меньше значения2
(перекрестный запрос)
15
Догов. деятельн.
Организации шифр договора, наименование организации, наименование контрагента сроки выполнения, сумма договора, вид договора.
Произвести выборку договоров из двух полей «наименование организации», «наименование контрагента». Если значение поля «наименование контрагента» в соответствующей таблице не существует, то выводить строку «контрагента нет» с помощью функции iif.
Определить среднюю сумму договоров по организации. Вывести вид договора, сроки выполнения договора, контрагента, сумма договора на экран у которых средняя сумма договора меньше среднего значения по организации.
Определить по видам договоров количество контрагентов, у которых сумма договора больше значения1
и срок выполнения меньше значения2
(перекрестный запрос).
№
пп
Прикладная
область
Атрибуты информации
16
Поликлиника
ФИО и дата рождения пациента, ФИО, должность и специализация лечащего врача, диагноз
Произвести выборку пациентов из двух полей «диагноз», «ФИО врача». Если значение поля «ФИО врача» в соответствующей таблице не существует, то выводить строку
«лечащий врач неизвестен» с помощью функции iif.
Определить средний год рождения пациента по каждому врачу. Вывести по ФИО врачей,
ФИО пациента, дату рождения, диагноз на экран у которых год рождения больше среднего значения по врачу.
Определить по врачам какое количество пациентов, у которых Фамилия начинается на букву значение1
и диагноз значение2
(перекрестный запрос).
17
Домоуправление номер квартиры, общая площадь, полезная площадь, количество комнат, фамилия квартиросъемщика, количество членов семьи, количество детей в семье, есть ли задолженность по квартплате
Произвести выборку квартир из двух полей «количество комнат», «количество детей в семьей». Если значение поля «количество детей в семьей» в соответствующей таблице не существует, то выводить строку «детей нет» с помощью функции iif.
Определить среднее кол-во количество членов семьи по кол-ву комнат в квартире. Вывести номер квартиры, общая площадь, фамилия квартиросъемщика, есть ли задолженность на экран у которых кол-во членов семьи меньше среднего кол-во количество членов семьи по кол-ву комнат в квар-ре.
Определить по полезной площади квартиры какое кол-во квартир, у которых «задолженность по квартплате» значение1
и кол-во членов семьи больше значения2
(перекрестный запрос).
18
Шахматы
ФИО спортсмена, дата рождения, страна, спортивный разряд, участвовал ли в борьбе за звание чемпиона мира, рейтинг,
Произвести выборку спортсменов из двух полей «имя», «спортивный разряд». Если значение поля «спортивный разряд» в соответствующей таблице не существует, то выводить строку «спортивный разряд отсутствует» с помощью функции iif.
Определить средний год рождения по каждой стране. Вывести ФИО спортсмена, дата рождения, спортивный разряд, рейтинг, у которых год рождения больше среднего года рождения по стране.
Определить по странам, какое количество спортсменов имеют спортивный разряд значение1
и рейтинг меньше значения2
(перекрестный запрос).
19
Ипподром кличка лошади, масть, возраст, рейтинг, вид забега, фамилия наездника, занятое место
Произвести выборку лошадей из двух полей «кличка лошади», «вид забега». Если значение поля «вид забега» в соответствующей таблице не существует, то выводить строку «вид забега неизвестен» с помощью функции iif.
Определить средний возраст лошадей по каждому виду забега. Вывести кличка лошади, масть, возраст, вид забега, занятое место на экран у которых средний возраст меньше среднего значения по забегу.
Определить по занятым местам какое кол-во лошадей, у которых рейтинг меньше значения1
и масть лошади значение2
(перекрестный запрос).
20
Автотранспортное предприятие номерной знак автом., марка, техн. состояние, грузоподъемность, расход топлива, таб. № и ФИО закрепленного водителя
Произвести выборку автомобилей из двух полей «марка», «ФИО водителя». Если значение поля «ФИО водителя» в соответствующей таблице не существует, то выводить строку «Водитель не прикреплен» с помощью функции iif.
Определить среднюю грузоподъемность по каждой марке автомобиля. Вывести номерной знак автом., марка, техн. состояние, грузоподъемность, расход топлива на экран у которых грузоподъемность больше средней грузоподъемности по марке автомобиля.
Определить по расходу топлива какое количество автомобилей, у которых техническое состояние значение1
и грузоподъемность меньше значения2
(перекрестный запрос).
Прием работы
Прием происходит при наличии оформленного отчета и работающей БД, созданной в среде MS Access.
Вопросы
1. Что такое внешнее и внутреннее объединение, чем отличаются?
2. Что такое левое, правое и полное объединение?
3. Что такое перекрестный запрос?
4. Для чего в стандарт SQL2 были введены объединения?
Лабораторная работа №4
Тема: Изменение данных и структуры БД. Клиентский интерфейс для
БД.
Цель: Развитие навыков программирования приложений, использую- щих БД, знакомство с частями SDL и DML языка SQL.
Навыки и умения: модификация данных и определение структуры БД с помощью SQL, использование инструментария MS Access (редактор макро- сов, VBA модули, конструктор форм), написание клиентского интерфейса.
Теоретическая часть
Структура языка SQL
Все операторы языка SQL можно условно разделить на три группы опе- раторов. Оператор языка запросов – SELECT (был рассмотрен в предыдущих лабораторных работах), операторы языка манипуляции данными (Insert,
Update, Delete) и операторы языка определения данных (Create, Drop, Alter).
Запросы DML (ЯМД)
К запросам языка манипуляции данными (Data Manipulation Language) относятся запросы на добавление, удаление и модификацию кортежей.
Добавление кортежа производится командой:
INSERT INTO имя_таблицы [(<список столбцов>)] VALUES (<список
значений>)
Список столбцов и список значений указываются через запятую, а зна- чения добавляются в соответствующие столбцы. Если необходимо добавить кортеж целиком (т.е. значения есть для всех полей и их порядок совпадает с порядком полей в отношении), то описание списка столбцов можно опустить.
Пример 1:
Три следующих запроса будут верно исполнены для отношения R1:
INSERT INTO R1(ФИО, Дисциплина, Оценка) VALUES («Попова»,
«БД», 3);
INSERT INTO R1 VALUES («Попова», «Моделирование», 3);
INSERT INTO R1(ФИО, Дисциплина) VALUES («Бурковский», «Се-
ти ЭВМ»);
Оператор удаления данных DELETE позволяет удалить одну или не- сколько строк из таблицы в соответствии с условиями, которые задаются для удаляемых строк. Синтаксис оператора DELETE следующий:
DELETE FROM <имя_таблицы> [WHERE <условия_отбора>]
Если условия отбора не задаются, то из таблицы удаляются все строки.
Операция обновления данных UPDATE требуется тогда, когда происходят изменения данных, которые надо отразить в базе данных.
Запрос на обновление может изменить сразу целую группу записей.
Этот запрос состоит из трех частей:
• Предложение UPDATE, которое указывает на обновляемую таблицу;
• Предложение SET, задающее данные для обновления;
• Необязательный критерий WHERE, ограничивающий число записей, на которые воздействует запрос на обновление.
Пример 2:
Изменить на 3 оценку по дисциплине «БД» у студента Миронова в таб- лице R1:
UPDATE R1 SET R1.Оценка = 3
WHERE R1.ФИО = «Миронов» AND R1.Дисциплина = «БД»;
Запросы SDL (ЯОД)
Команды языка определения схемы данных (Schema Definition Language
– SDL) представляют собой инструкции SQL, которые позволяют создавать и модифицировать элементы структуры базы данных. Например, используя
SDL, можно создавать, удалять таблицы и изменять их структуру, создавать и удалять индексы.
Создание таблицы. Оператор создания таблицы имеет следующий вид:
CREATE TABLE <имя таблицы> (<имя столбца> <тип данных> [NOT
NULL] [,<имя столбца> <тип данных> [NOT NULL]]…)
Обязательными операндами оператора являются имя создаваемой таб- лицы и имя хотя бы одного столбца (поля) с указанием типа данных, храни- мых в этом столбце.
При создании таблицы для отдельных полей могут указываться некото- рые дополнительные правила контроля вводимых в них значений. Например, конструкция NOT NULL (не пустое) служит для определения обязательного поля.
В табл. 1 перечислены типы данных, которые можно использовать при создании таблиц, используя Microsoft Jet SDL и предложение CREATE
(СУБД Access).
Тип данных
SQL тип
Счетчик
COUNTER
Текстовый
TEXT
Memo
LONGTEXT
Денежный
CURRENCY
Дата/время
DATETIME
Числовой (одинарное с плавающей точкой)
SINGLE
Числовой (двойное с плавающей точкой)
DOUBLE
Числовой (целое)
INTEGER
Числовой (длинное целое)
LONG
Числовой (байт)
BYTE
С помощью конструкции CONSTRAINT можно задать первичный ключ таблицы.
Пример 3:
Создание таблицы TABL1:
CREATE TABLE TABL1 (
[FIL1] COUNTER,
[FIL2] TEXT (10),
[FIL3] CURRENCY, [FIL4] DATETIME,
[FIL5] BYTE, [FIL6] INTEGER,
[FIL7] SINGLE, [FIL8] LONG,
[FIL9] DOUBLE,
CONSTRAINT PrimaryKey PRIMARY KEY ([FIL1]) );
В примере 3 поле FIL1 объявлено ключевым, для данного поля создан индекс с именем PrimaryKey.
Похожим образом задается внешний ключ:
Пример 4:
Создание таблицы TABL2:
CREATE TABLE TABL2 (
[FIL1] INTEGER,
[FIL2] TEXT (10) NOT NULL,
[FIL3] CURRENCY, [FIL4] LONGTEXT,
CONSTRAINT PrimaryKey PRIMARY KEY ([FIL1],[FIL2]),
CONSTRAINT ForeignKey FOREIGN KEY ([FIL1])
REFERENCES TABL1 ([FIL1]));
В данной таблице поле FIL1 объявлено внешним ключом. Между табли- цами TABL1 и TABL2 устанавливается связь «один-ко-многим» по полю
FIL1.
Для удаления таблиц служит инструкция
DROP TABLE <имя таблицы>
Для модификации структуры таблицы (добавление, удаление полей, изменения типов полей) используется оператор ALTER TABLE изменения структуры таблицы имеет следующий вид:
ALTER TABLE <имя таблицы>MODIFY | ADD | DROP <имя поля>
[<тип данных>]
Создание индексов
Помимо создания индексов в процессе формирова- ния таблицы (с помощью предложения CONSTRAINT), можно также созда- вать индексы уже после того, как таблица сформирована:
CREATE [UNIQUE] INDEX <имя индекса>ON <имя таблицы> (<имя
столбца> [ASC | DESC] [, <имя столбца> [ASC | DESC]…)
Этот оператор позволяет создать индекс для одного или нескольких столбцов заданной таблицы с целью ускорения выполнения запросных и по- исковых операций с таблицей. Для одной таблицы можно создать несколько индексов.
Для удаления индексов служит инструкция
DROP INDEX <имя индекса> ON<имя таблицы>
Создание форм и отчетов в среде MS Access
СУБД MS Access предоставляет программисту инструментарий для со- здания форм и отчетов (для пользователя). Соответствующие объекты можно найти среди объектов БД. Доступно как создание форм (отчетов) по опреде- ленным таблицам (запросам), так и самостоятельное создание в режиме ди- зайнера.
Встроенный язык Visual Basic for Application