Наименование: проектирование структуры базы данных. Нормализация таблиц 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Наименование: проектирование структуры базы данных. Нормализация таблиц



Лабораторная работа № 1

НАИМЕНОВАНИЕ: Проектирование структуры базы данных. Нормализация таблиц

ЦЕЛЬ РАБОТЫ: Изучить этапы проектирования модели баз данных. Спроектировать базу данных по исходным данным

1. ЛИТЕРАТУРА:

1.1 Малыхина М.П. Базы данных: основы, проектирование, использование. – СПб.: БХВ-Петербург, 2004. – 512с.

1.1.Голицина О.Л., Максимов Н.В., Попов И.И. Базы данных: Учебное пособие. – М.: ФОРУМ: ИФРА-М, 2003. – 352с. (серия «Профессиональное образование)

1.2. Сенов А. Access 2003. Практическая разработка баз данных. Учебный курс. – СПб.: Питер, 2005.-256с.

2. ЗАДАНИЕ:

2.1. Изучите теоретические вопросы по проектированию базы данных, типы моделей баз данных, виды взаимосвязей в базах данных, принципы нормализации таблиц баз данных

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

Выделите объекты и характеристики проектируемой информационной базы данных

Определите основные классы сущностей

Определите связи между сущностями и их типы

Изучить принципы нормализации таблиц баз данных

Постройте концептуальную модель, приведенную к 3НФ

  1. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ:

3.1. Изучить по приложению материал работы

3.2. Нарисовать рисунки, отображающие разные виды связей.

3.3. Нарисовать информационно-логическую модель реляционной базы данных

3.4. Нарисовать физическую модель базы данных, которая должна содержать объекты предметной области

3.5. Ответить на контрольные вопросы

  1. СОДЕРЖАНИЕ ОТЧЕТА:

 

4.1. Наименование и цель работы

4.2. Типы связей между объектами выбранной предметной области.

4.3. Физическая модель базы данных

4.4. Ответы на контрольные вопросы

 

5. КОНТРОЛЬНЫЕ ВОПРОСЫ:

5.1. Назовите виды моделей баз данных. Отличия, достоинства, недостатки

5.2. Назовите виды взаимосвязей между объектами баз данных. Отличия, достоинства, недостатки

5.3. Что такое нормализация таблиц, для какой цели проводят процедуру нормализации?

5.4. Перечислите этапы проектирования

5.5. Дать определения понятиям сущность, экземпляр сущности, атрибут сущности, ключ сущности, связь. Привести примеры

 

ПРИЛОЖЕНИЕ

Организация данных

Слово "реляционная" происходит от английского relation - отношение. Отношение - тематическое понятие, но в терминологии моделей данных отношения удобно изображать в виде таблицы. При этом строки таблицы соответствуют кортежам отношения, а столбцы - атрибутам. Ключом называют любую функцию от атрибутов кортежа, которая может быть использована для идентификации кортежа. Такая функция может быть значением одного, из атрибутов (простой ключ), задаваться алгебраическим выражением, включающим значения нескольких атрибутов (составной ключ). Это означает, что данные в строках каждого из столбцов составного ключа могут повторяться, но комбинация данных каждой строки этих столбцов является уникальной. Например, в таблице Студенты есть столбцы Фамилии и Год рождения. В каждом из столбцов есть некоторые повторяющиеся данные, т.е. одинаковые фамилии и одинаковые года рождения. Но если студенты, имеющие одинаковые фамилии, имеют разные года рождения, то эти столбцы можно использовать в качестве составного ключа. Как правило, ключ является уникальным, т.е. каждый кортеж определяется значением ключа однозначно, но иногда используют и неуникальные ключи (ключи с повторениями). В локализованной (русифицированной) версии Access вводится термин ключевое поле, которое можно трактовать как первичный ключ.

В Access можно выделить три типа ключевых полей: простой ключ, составной ключ и внешний ключ.

Одно из важнейших достоинств реляционных баз данных состоит в том, что вы можете хранить логически сгруппированные данные в разных таблицах и задавать связи между ними, объединяя их в единую базу. Для задания связи таблицы должны иметь поля с одинаковыми именами или хотя бы с одинаковыми форматами данных. Связь между таблицами устанавливает отношения между совпадающими значениями в этих полях. Такая организация данных позволяет уменьшить избыточность хранимых данных, упрощает их ввод и организацию запросов и отчетов. Поясним это на примере. Допустим, вам в базе надо хранить, данные о студентах (фамилия, изучаемая дисциплина) и преподавателях (фамилия, номер кафедры, ученая степень, преподаваемая дисциплина). Если хранить данные в одной таблице, то в строке с фамилией студента, изучающего конкретную дисциплину, будут храниться все атрибуты преподавателя, читающего эту дисциплину. Это же огромная избыточность данных. А если хранить данные о студенте в одной таблице, о преподавателе - в другой и установить связь между полями "Читаемая дисциплина" - "Изучаемая дисциплина" (фактически это одинаковые поля), то избыточность хранимых данных многократно уменьшится без ущерба для логической организации информации.

В Access можно задать три вида связей между таблицами; Один-ко-многим,, Многие-ко-многим и Один-к-одному.

Связь Один-ко-многим - наиболее часто используемый тип связи между таблицами. В такой связи каждой записи в таблице А может соответствовать несколько записей в таблице В (поля с этими записями называют внешними ключами), а запись в таблице В не может иметь более одной соответствующей ей записи в таблице А.

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

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

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

· связь Один-ко-многим создается в том случае, когда только одно из полей является ключевым или имеет уникальный индекс, т.е. значения в нем не повторяются;

· связь Один-к-одному создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы;

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

Целостность данных

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

· связанное поле (поле, посредством которого осуществляется связь) одной таблицы является ключевым полем или имеет уникальный индекс;

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

· обе таблицы принадлежат одной базе данных Access. Если таблицы являются связанными, то они должны быть таблицами Access. Для установки целостности данных база данных, в которой находятся таблицы, должна быть открыта. Для связанных таблиц из баз данных других форматов установить целостность данных невозможно.

 

1. Перед разработкой информационно-логической модели реляционной базы данных рассмотрим, из каких информационных объектов должна состоять эта база данных. Можно выделить три объекта, которые не будут обладать избыточностью, - Студенты, Дисциплины и Преподаватели. Представим состав реквизитов этих объектов в виде "название объекта (перечень реквизитов)": Студенты (код студента, фамилия, имя, отчество, номер группы, дата рождения, стипендия, оценки). Дисциплины (код дисциплины, название дисциплины), Преподаватели (код преподавателя, фамилия, имя, отчество, дата рождения, телефон, заработная плата).

Рассмотрим связь между объектами Студенты и Дисциплины. Студент изучает несколько дисциплин, что соответствует многозначной связи и отражено на рис.1 двойной стрелкой. Понятно, что каждая дисциплина изучается множеством студентов. Это тоже многозначная связь, обозначаемая двойной стрелкой (связь "один" обозначена одинарной стрелкой). Таким образом, связь между объектами Студенты и Дисциплины - Многие-ко-многим (М: N).

 

Рис.1. Типы связей между объектами Студенты, Дисциплины и Преподаватели

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

Рис. 2. Информационно-логическая модель реляционной базы данных

2. В реляционной базе данных в качестве объектов рассматриваются отношения, которые можно представить в виде таблиц. Таблицы между собой связываются посредством общих полей, т.е. одинаковых по форматам и, как правило, по названию, имеющихся в обеих таблицах. Рассмотрим, какие общие поля надо ввести в таблицы для обеспечения связности данных. В таблицах Студенты и Оценки таким полем будет "Код студента", в таблицах Дисциплины и Оценки - "Код дисциплины", в таблицах Преподаватели и Дисциплины - "Код дисциплины". Выбор цифровых кодов вместо фамилий или названий дисциплин обусловлен меньшим объемом информации в таких полях: например, число "2". по количеству символов значительно меньше слова "математика". В соответствии с этим логическая модель базы данных представлена на рис. 3, где жирными буквами выделены ключевые поля.

Рис. 3. Логическая модель базы данных

 

 

ВАРИАНТЫ ЗАДАНИЙ

Вариант 1

Описание предметной области (Ресторан)

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

Задачи для БД:

Есть ли свободные столы?
Сколько посетителей обслужил официант за смену?
Сколько каких блюд было реализовано?

Вариант 2

Описание предметной области (Колледж)

Студенты колледжа объединены в группы. Набор дисциплин, изучаемых студентом, зависит от номера группы в которой он учится. Преподаватели читают дисциплины и выставляют зачеты студентам. Один преподаватель может читать несколько дисциплин, но каждую дисциплину ведет один преподаватель.
Задачи для БД:
Какие дисциплины изучает студент?
Какая оценка у студента по данной дисциплине?
Кто выставил эту оценку?

Вариант 3

Описание предметной области (Театральная касса)

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

Задачи для БД:

Какие спектакли идут в определенный день?
Есть ли билеты на конкретный спектакль?
Сколько стоит конкретный билет?

Вариант 4

Описание предметной области (Грузоперевозки)

АТП имеет грузовые автомобили с гос. номерами и организует перевозки для своих заказчиков. Стоимость перевозки зависит от расстояния и грузоподъемности автомобиля, который ее выполняет. Каждый заказчик может сделать заказ нескольких перевозок. Одну перевозку выполняет один грузовик.

Задачи для БД:

Какие грузовики свободны?
Какой заказчик сделал самый дорогой заказ?
Какой грузовик выполнил наибольшее количество заказов?

 

Вариант 5

Информационная система туристического клуба

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

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

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

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

 

Вариант 6

Информационная система зоопарка

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

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

Для коpмления животных необходимы pазличные типы коpмов: pастительный, живой, мясо и pазличные комбикоpма. Растительный коpм это фpукты и овощи, зеpно и сено. Живой коpм - мыши, птицы, коpм для pыб. Для каждого вида животных pассчитывается свой pацион. Таким обpазом у каждого животного в зоопаpке имеется меню на каждый день, в котоpом указывается количество и вpемя коpмлений в день, количество и вид пищи (обезьянам необходимы фpукты и овощи, мелким хищникам - хоpькам, ласкам, совам, некотоpым кошачьим, змеям - надо давать мышей).

Ветеpинаpы должны пpоводить медосмотpы, следить за весом, pостом, pазвитием животного, ставить своевpеменно пpививки и заносить все эти данные в каpточку.

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

 

Лабораторная работа № 2

 

Изучите состав окна Access

Создайте новую базу данных

Сохраните созданные таблицы

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

3.1. Для создания новой базы данных:

· загрузите Access, в появившемся окне выберите пункт Новая база данных;

· в окне "Файл новой базы данных" задайте имя вашей базы (пункт Имя Файла) и выберите папку (пункт Папка), где ваша база данных будет находиться. По умолчанию Access предлагает вам имя базы db1, а тип файла - Базы данные Access.

· щелкните по кнопке <Создать>.

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

· в окне базы данных выберите вкладку Таблицы, а затем щелкните по кнопке <Создать>;

· в окне "Новая таблица" выберите пункт Конструктор и щелкните по кнопке <ОК>. В результате проделанных операций открывается окно таблицы в режим конструктора (рис. 1), в котором следует определить поля таблицы.

 

Рис. 1. Окно таблицы в режиме конструктора - в этом режиме вводятся имена и типы полей таблицы

 

 

Для определения полей таблицы:

· введите в строку столбца Имя поля имя первого поля;

· в строке столбца "Тип данных" щелкните по кнопке списка и выберите тип данных, указанный в задании. Поля вкладки Общие составьте в соответствии с заданием.

3.2. Для сохранения таблицы:

· выберите пункт меню Файл, Сохранить;

· в диалоговом окне "Сохранение" введите имя таблицы

· щелкните по кнопке <ОК>.

Примечание. В результате щелчка по кнопке <ОК> Access предложит вам задать ключевое поле, т.е. поле, однозначно идентифицирующее каждую запись.

 

Заполнение базы данных.

· Заполните таблицы в соответствии с заданием в приложении

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

 

4. СОДЕРЖАНИЕ ОТЧЕТА:

4.1. Наименование и цель работы

4.2. Задание

4.3. Порядок выполнения работы

4.4. Ответы на контрольные вопросы

4.5. Структуры таблиц В СУБД Access

 

5. КОНТРОЛЬНЫЕ ВОПРОСЫ:

5.1. Назначение СУБД Access

5.2. Что входит в состав окна Access

5.3. Какие режимы создания таблиц Вы знаете

5.4. Используемые типы данных и их свойства

 

 

Лабораторная работа № 3

 

Запустить базу данных

Лабораторная работа № 4

Запустить базу данных

Запрос на обновление

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

Запрос на добавление

Запрос на удаление

Лабораторная работа № 5-6

Запустить базу данных

2.2. Создать следующие запросы:

1. Создать перекрестную таблицу на примере таблиц заданной предметной области.

Лабораторная работа № 7

Запустить программу MySQL

Лабораторная работа № 8

 

Запустить программу MySQL

Лабораторная работа № 9

 

Запустить программу MySQL

Операторы больше и меньше

Давайте получим имена и фамилии всех сотрудников, которые старше 32 лет.

SELECT f_name, l_name from employee_data where age > 32;Результат запроса запишите в отчет.

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

SELECT f_name, l_name from employee_data where salary > 120000;

Результат запроса запишите в отчет.

Теперь перечислим всех сотрудников, которые имеют стаж работы в компании менее 3 лет.

SELECT f_name, l_name from employee_data where yos < 3;

Результат запроса запишите в отчет.

Операторы <= и >=

Используемые в основном с целочисленными данными операторы меньше или равно (<=) и больше или равно (>=) обеспечивают дополнительные возможности.

select f_name, l_name, age, salaryfrom employee_data where age >= 32;

Результат запроса запишите в отчет.

Выборка содержит имена, возраст и зарплаты сотрудников, которым больше 32 лет.

select f_name, l_name from employee_data where yos <= 2;

Результат запроса запишите в отчет.

Запрос выводит имена сотрудников, которые работают в компании меньше 3 лет.

Лабораторная работа № 10

Запустить программу MySQL

Задания

1. Найдите всех сотрудников, которые занимают должность "старший программист" и "программист мультимедиа".

2. Выведите список имен сотрудников, зарплата которых составляет от 70000 до 90000.

3. Что делает следующий оператор?

SELECT f_name, l_name, title fromemployee_data where title NOT IN('программист', 'старший программист','программист мультимедиа');

4. Вот более сложный оператор, который объединяет BETWEEN и IN. Что он делает?

SELECT f_name, l_name, title, agefrom employee_data wheretitle NOT IN('программист', 'старший программист','программист мультимедиа') AND ageNOT BETWEEN 28 and 32;

4. СОДЕРЖАНИЕ ОТЧЕТА:

4.1. Наименование и цель работы

4.2. Ответы на контрольные вопросы

4.3. Запросы

 

5. КОНТРОЛЬНЫЕ ВОПРОСЫ:

5.1. Какие операции могут программироваться с помощью языка SQL?

5.2. Какие ключевые слова используются при организации запросов?

5.3. Какие языки программирования поддерживает SQL?

5.4. Какой символ дает сообщение о том, что команда сформирована и готова к выполнению?

 

 

Лабораторная работа № 11

 

Запустить программу MySQL

Задания

1. Вывести список сотрудников в порядке, определяемом зарплатой, которую они получают.

2. Выведите список сотрудников в убывающем порядке их стажа работы в компании.

3. Что делает следующий оператор?

SELECT emp_id, l_name, title, agefrom employee_data ORDER BYtitle DESC, age ASC;

4. Вывести список сотрудников (фамилию и имя), которые занимают должность "программист" или "разработчик Web" и отсортировать их фамилии по алфавиту.

Извлечение подмножеств

LIMIT можно использовать также для извлечения подмножества данных, используя дополнительные аргументЫ.

Общая форма оператора LIMIT имеет следующий вид:

SELECT (что-нибудь) from таблица LIMIT начальная строка, извлекаемое число записей; SELECT f_name, l_name fromemployee_data LIMIT 6,3;

Результат в отчет

Будут извлечены три строки, начиная с шестой.

Ключевое слово DISTINCT

Рассмотрим теперь, как выбрать и вывести записи таблиц MySQL с помощью ключевого слова DISTINCT (РАЗЛИЧНЫЙ), использование которого исключает появление повторяющихся данных.

Чтобы вывести все должности базы данных компании, можно выполнить следующий оператор:

select title from employee_data;

Результат в отчет

Можно видеть, что список содержит повторяющиеся данные. Предложение SQL DISTINCT выводит только уникальные данные. Вот как оно используется.

select DISTINCT title from employee_data;

Результат в отчет.

 

Из этого можно видеть, что в компании имеется 11 уникальных должностей.

Уникальные записи можно также отсортировать с помощью ORDER BY.

select DISTINCT age from employee_dataORDER BY age;

Результат в отчет

 

Изменение записей

Команда UPDATE выполняет изменение данных в таблицах. Она имеет очень простой формат.

UPDATE имя_таблицы SETимя_столбца_1 = значение_1,имя_столбца_2 = значение_2,имя_столбца_3 = значение_3,...[WHERE условия];

Как и все другие команды SQL можно вводить ее на одной строке или на нескольких строках.

Рассмотрим несколько примеров.

Предположим, директор увеличил свою зарплату на 20000 и надбавки на 5000. Его предыдущая зарплата была 200000, а надбавки были 50000.

UPDATE employee_data SETsalary=220000, perks=55000WHERE title='директор';

Ниже приведен результат запроса.


Можно проверить эту операцию, выводя данные из таблицы.

select salary, perks fromemployee_data WHEREtitle = 'директор';

Ниже приведен результат запроса.


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

UPDATE employee_data SETsalary = salary + 20000,perks = perks + 5000WHERE title='директор';

Результат запроса в отчет

В качестве другого примера можно попробовать изменить название должности "разработчик Web" на "программист Web".

mysql> update employee_data SET -> title = 'программист Web' -> WHERE title = 'разработчик Web';

Важно также перед выполнением изменений внимательно изучить часть оператора с условием, так как легко можно изменить не те данные. Оператор UPDATE без условий изменит все данные столбца во всех строках. Надо быть очень осторожным при внесении изменений.

 

Минимальное значение

select MIN(salary) from employee_data;

Ниже приведен результат запроса.


Максимальное значение

select MAX(salary) from employee_data;

Ниже приведен результат запроса.

 

Лабораторная работа № 12

 

Лабораторная работа № 13

 

Запустить базу данных

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

2.3. Создать на панели инструментов кнопку для запуска одного из макросов.

2.4. В режиме конструктора формы создать кнопки, запускающие все созданные макросы.

2.5. Создать макрос с именем AUTOEXEC для открытия кнопочной формы и проверить его выполнение.

 

3. ПОРЯДОК ВЫПОЛНЕНИЯ:

§ Для создания макроса, открывающего таблицы, рекомендуется выполнить следующие действия.

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

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

− В столбец Примечание той же строки ввести текст: «Открытие таблицы «Студенты».

− С помощью клавиши ENTER перейти во вторую строку столбца Макрокоманда.

− В списке макрокоманд выбрать НаЗапись и установить аргументы: таблица Студенты и Последняя запись. Таким образом, после открытия таблицы текущей станет последняя запись. В столбец Примечание ввести текст: «Переход на последнюю запись».

− Повторить те же действия для таблицы Экзамены.

− Щелкнуть в следующей свободной ячейке столбца Макрокоманда и открыть список доступных макрокоманд. Выбрать команду Выполнить команду. В области аргументы макрокоманды активизировать поле Команда и выбрать в списке элемент TileVertically. Таким образом, в макрокоманду будет включена операция разделения экрана в случае открытия нескольких окон. В столбце Примечание набрать текст: «Упорядочение окон».

− Сохранить макрос с именем «Открытие БД».

− Осуществить запуск макроса, воспользовавшись одним из способов, описанных в п.5.3.

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

Примечание

При создании макроса рекомендуется активизировать кнопку панели По шагам.

§ Создать на панели инструментов кнопку для запуска макроса «Просмотреть отчет». Выполнить макрос, щелкнув мышью по его кнопке на панели инструментов.

Если на кнопке нет текста, его можно установить щелкнув правой кнопкой мыши и выбрав опцию Настройка. При открытом окне «Настройка» вновь щелкнуть правой клавишей на кнопке макроса и установить режим «Значок и текст».

§ Создать кнопочную форму, разместив на ней элементы (кнопки) для

− открытия базы данных;

− открытия запроса;

− просмотра отчета.

Кнопки будут использоваться для запуска ранее созданных макросов. Чтобы создать кнопку, нужно воспользоваться одним из способов, описанных в п.5.6.

Изменить размеры кнопок, шрифты для надписей, цвета. Сохранить форму с именем «Главная форма».

§ Создать автоматически выполняемый макрос с именем AUTOEXEC для открытия формы «Главная форма». Чтобы проверить работоспособность макроса, нужно закрыть, а затем вновь открыть базу данных. Ответить на контрольные вопросы

4. СОДЕРЖАНИЕ ОТЧЕТА:

4.1. Наименование и цель работы

4.2. Ответы на контрольные вопросы

4.3. Макросы

 

5. КОНТРОЛЬНЫЕ ВОПРОСЫ:

5.1. Что такое макрокоманда?

5.2 Что такое макрос?

5.3 Как создать макрос?

5.4 Какие существуют способы запуска макроса?

5.5 Какие ошибки могут появиться при выполнении макроса и как их исправить?

5.6 Как добавить на панель инструментов кнопку, запускающую макрос?

5.7 Как в режиме формы создать кнопку для запуска макроса?

5.8 Для чего предназначен макрос AutoExec?

5.9 Как создать макрос AutoExec?

 

 

ПРИЛОЖЕНИЕ

Конструктор макросов

 

Открыть окно Конструктор макросов (Macro Design) для создания нового макроса можно двумя способами:

  1. Раскройте список макросов в окне База данных (Database), щелкнув левой кнопкой мыши по ярлыку Макросы (Macros), и нажмите кнопку Создать (New) в верхней части окна (рис. 11.1).
  2. Щёлкните по стрелке вниз на кнопке Новый объект (New Object) на панели инструментов База данных (Database) и выберите элемент Макрос (Macro).

Окно Конструктора макросов построено аналогично окну Конструктора таблиц, т. е. разделено по горизонтали на две части: панель описаний и панель аргументов.

Верхняя часть окна Конструктора — панель описаний — состоит из нескольких столбцов. По умолчанию на этой панели выводится два столбца: "Макрокоманда" (Action) и "Примечание" (Comments). Панель описаний позволяет определить последовательность макрокоманд, из которых состоит макрос.

Строка в столбце "Макрокоманда" (Action) представляет собой поле со списком, в котором можно выбрать нужную макрокоманду.

Строка в столбце "Примечание" (Comments) — это обычное текстовое поле, в которое можно ввести комментарий, описывающий выполняемое действие.

Когда поле "Макрокоманда" (Action) заполнено, в нижней части окна Конструктора макросов появляется панель аргументов, предназначенная для ввода значений аргументов соответствующей макрокоманды. Список полей на этой панели зависит от выбранной макрокоманды и может отсутствовать, если макрокоманда не имеет аргументов. Таким образом, при создании макросов не нужно запоминать список аргументов для каждой макрокоманды.

На рис. 11.1 проиллюстрирован выбор макрокоманды Применить Фильтр (ApplyFilter). На панели аргументов имеются два поля, которые позволяют задать имя фильтра и условие отбора записей. Для того чтобы задать условие отбора записей, можно воспользоваться Построителем выражений (см. разд. "Создание выражений с помощью Построителя выражений" гл. 4).

Рис. 11.1. Конструктор макросов и панель аргументов

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

Замечание

Для быстрого переключения между панелями описаний и аргументов, так же как при работе с таблицами и запросами в режиме Конструктора, можно использовать клавишу <F6>.

Существует еще один очень простой способ ввода макрокоманды. Допустим, нужно создать макрос, который должен открывать форму "Клиенты" (Customers) в приложении "Борей" (Northwind). Для этого в окне База данных (Database) необходимо щелкнуть по ярлыку Формы (Forms), затем, используя панель инструментов (способ 2), открыть окно Конструктор макросов (Macro Design) и перетащить с помощью мыши форму "Клиенты" (Customers) в поле "Макрокоманда" (Action) окна Конструктора макросов.

Совет

Для удобства перетаскивания объектов из окна База данных (Database) в форму выберите команду Окно, Слева направо (Window, Tile Vertically), чтобы расположить окна на экране рядом.

Тогда в поле "Макрокоманда" (Action) автоматически появится макрокоманда ОткрытьФорму (OpenForm) (рис. 11.2), а на панели аргументов автоматически заполнятся поля: в поле "Имя формы" (Form Name) появится имя формы "Клиенты" (Customers), в поле "Режим" (View) — значение по умолчанию Форма (Form), в поле "Режим окна" (Window Mode) — значение Обычное (Normal). Остальные поля останутся пустыми. Мы можем в этой же макрокоманде задать фильтр для отбора записей. Для этого введем в поле "Имя фильтра" (Filter Name) имя какого-нибудь фильтра, например "Менеджеры по продажам", который мы строили при изучении запросов (см. разд. "Создание запроса из фильтра" гл. 4).

Кроме того, можно сделать записи в этой форме недоступными для изменений, для чего в поле Режим данных (Data Mode) необходимо ввести значение Только чтение (Read Only).

Рис. 11.2. Автоматическое создание макрокоманд путем перетаскивания объектов

Аналогично можно создавать макрокоманды, перетаскивая из окна База данных (Database) таблицы, запросы, отчеты и другие макросы. При этом в окне Конструктора макросов будут появляться соответствующие макрокоманды: ОткрытьТаблицу (ОрепТаblе), ОткрытьЗапрос (OpenQuery), ОткрытьОтчет (OpenReport), ЗапускМакроса(RunMacro).

Для ввода аргументов макрокоманды чаще всего требуется выбирать значения из списков или вводить выражения. Для ввода выражений можно воспользоваться Построителем выражений, кнопка которого находится справа от поля аргумента. Еще одна кнопка Построителя выражений находится на панели инструментов. Как и в других случаях, перед выражением нужно ставить знак равенства (=). Исключения составляют аргумент Выражение (Expression) макрокоманды ЗадатьЗначение (Setvalue) и аргумент Число повторений (Repeat Count) макрокоманды-ЗапускМакроса (RunMacro). Если ввести знак равенства перед выражением, задающим значение этих аргументов, то оно будет вычисляться дважды, что может привести к нежелательным результатам.

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



Поделиться:


Последнее изменение этой страницы: 2016-04-21; просмотров: 494; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.221.98.71 (0.176 с.)