Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторные работы / лаб раб 2 диаграммы / Лабораторная работа 2 БСБД

.doc
Скачиваний:
60
Добавлен:
02.05.2014
Размер:
124.42 Кб
Скачать

Семенова И.И. БСБД - 4 -

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

Целью данного занятия является дополнение созданной Базы Данных на прошлом занятии новой таблицей. Затем объединение двух таблиц и соединение этих таблиц с интерфейсом Access с целью создания форм и отчетов в режиме мастера.

Рассмотрим более подробно создание таблицы в режиме Конструктора.

Как на прошлом занятии в окне Object Explorer выбираем в разделе DataBases созданную вами БД. Если вы работали на другом сервере, то вы в компьютерном классе можете подключить соответствующий сервер, на котором хранится ваша БД (как показано на рис. 2.1 выбрать в выпадающем списке Connect раздел DataBase Engine, затем в окне <Browse for more>, затем в следующем окне на вкладке Network Servers выбрать нужный сервер БД и выполнить соединение)

или присоединить файлы вашей БД, как показано в конце прошлой работы.

Рис. 2.1. Подключение удаленного сервера

В разделе Tables выбранной БД через контекстное меню создаем новую таблицу. Появляется окно новой таблицы в режиме Конструктора. В верхней части окна Конст­руктора расположена таблица (бланк), которая должна содержать пе­речень всех полей, их типов и условие обязательности заполнения. Первоначально бланк в верхней части пуст.

Для создания таблицы необходимо, как минимум, заполнить гра­фы Column name (Имя поля) и Data type (Тип данных). Графа Allow Null не является обязатель­ной, галочкой можно отметить те поля, заполнение которых не обязательно, если галочку убрать, то в режиме ввода данных в ячейках соответствующей колонки не должно быть NULL.

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

Задание 1. Заполним структуру новой таблицы именами полей с их типами из карточки.

Задание 2. Создадим первичный ключ, выделив строку, указанную в карточке, затем вызвав контекстное меню, выберем Set Primary Key. Если ключ поставили ошибочно на другое поле, то опять вызвать контектсное меню поля и снять установку Set Primary Key. Закроем окно Конструктора. Задать имя таблицы, указанное в карточке.

Задание 3. Откроем вновь созданную таблицу в режиме просмотра данных.

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

• в вашей БД в разделе Tables выделить таблицу, созданную на прошлом занятии, затем в ее контекстном меню выбрать Open Table (Открыть).

• выделить столбец, указанный в карточке.

• скопировать в буфер обмена;

• закрыть таблицу, созданную на прошлом занятии;

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

• вставить из буфера обмена в таблицу скопиро­ванные данные.

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

Задание 5. Изменим структуру и данные таблицы, созданной на прошлом занятии, как указано в карточке. Сохранить таблицу.

Задание 6. Теперь надо создать Связь один - ко – многим между полями двух таблиц, указанных в карточке.

Существуют связи (отношения):

• Связь один - к – одному, когда каждой записи одной таблицы соответствует единственная запись в другой таблице.

• Связь один - ко – многим, когда каждая запись одной табли­цы связана с множеством записей в другой таблице, обратное не имеет место.

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

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

Для определения связи между двумя таблицами проделаем следующие действия:

• в вашей БД выбрать раздел Database Diagrams. В контекстном меню выбрать New diagram. В окне Add table (До­бавление таблицы) выбираем таблицу, созданную на прошлом занятии, и нажимаем <Add> (Добавить), затем выбираем таблицу, созданную на этом занятии, и нажимаем <Add>.

• Закрыть окно Add table (Добавление таблицы).

• В окне Diagram - … надо соединить с помощью мыши поля, как указано в карточке.

• Закончив создание связи, закроем окно Diagram с сохранением в этой БД с именем по умолчанию.

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

- тип ключевого поля и поля связи (ссылки или Foreign Key) не совпадают;

- ни одно из пары связываемых полей не является Primary Key.

При работе с диаграммой можно выполнять такие функции, как (рис. 2.2):

- редактирование структуры таблицы (для этого на соответствующей таблице в контекстном меню выбрать пункт Table View/ Standart);

- для установки первичного ключа на соответствующем поле в контекстном меню выбрать Set Primary Key;

- для удавления первичного ключа на соответствующем поле в контекстном меню выбрать Remove Primary Key;

Рис. 2.2. Пример контекстного меню таблицы Authors в диаграмме

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

Задание 7. Создадим соединение через ODBC с БД и проект приложения в Access.

Для этого в операционной среде через ПУСК зайти в Панель управления, далее в разделе Производительность и обслуживание выбрать подраздел Администрирование, далее выбрать ссылку на утилиту Источники данных (ODBC). ODBC нужно запускать от имени администратора (в компьютерном классе попросить инженера или лаборанта запустить ODBC с правами администратора).

Далее выбрать тип «системный источник данных» (System Name или System DSN), добавить новый источник данных, выбрав в появившемся списке драйверов SQL Server. В следующем окне в качестве имени источника данных (Name) написать имя, указанное в карточке, в поле Server указать название вашего сервера, под управлением которого находится БД. В следующем окне выбрать тип проверки соединения (по умолчанию на уровне операционной системы, а также можно выбрать вариант проверки на уровне пользователя SQL Server, при этом нужно ввести его имя и пароль). Перед переходом к следующему окну выполняется проверка соединения с сервером от имени указанного пользователя. Если соединение выполнено успешно, то в следующем окне из списка выбрать вашу БД, в следующем окне оставить все без изменений. Проверить соединение, нажав Test Data Source…. В случае успешной проверки сохранить результат.

Теперь можно подключаться к БД через любой интерфейс, рассмотрим пример работы через MS Access.

Создадим новый проект БД в MS Access и сохраним его с названием, указанным в карточке. В разделе Таблицы в контекстном меню необходимо выбрать Связь с таблицами. В появившемся окне в качестве типа файлов выбрать ODBC Databases. Далее на второй вкладке Источники данных компьютера (Machine Source Name) выбрать имя соединения, которое вы создали. Далее в окне SQL Server ODBC Driver Connect ввести пользователя и пароль доступа. При успешном прохождении аутентификации появится окно Связь с таблицами, в котором необходимо выбрать ваши две таблицы. В случае, если в одной из таблиц не задан Primary Key, то система предложит указать поле таблицы, которое будет играть роль первичного ключа. Можно пропустить это окно, но лучше проверить свои таблицы, так как ключи должны были быть заданы.

Если все выполнено правильно, то в разделе вы сможете работать с таблицами SQL Server через Access так, как будто они являются частью созданного приложения в Access.

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

Задание 8. Создадим форму по таблице в приложении Access.

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

  • В окне БД выберем раздел [Формы], нажмем [Создать]. Появляется окно Новая форма. Выбрать тип создания формы [Автоформа в столбец], в качестве источника данных выберем таблицу, указанную в карточке (обратите внимание на то, что название таблицы в SQL Server будет отличаться от названия связи с таблицей в Access за счет приписки в начале названия имени собственника), щелкнув по кнопке со стрелкой, направленной вниз - так отмечается кнопка раскрытия списка. Нажать <ОК>.

  • Программа создаст форму, в которой справа - все поля таблицы выстроены в “столбец”, слева - надписи этих полей. На экран выводится одна из записей таблицы, расположенной на отдельной странице, что облегчает восприятие информации. Просмотреть другие записи можно, нажимая кнопки со стрелками, направленными влево, вправо или <PgDn> - следующая запись, <PgUp> - предыдущая запись. Можно перемещаться по полям записей, используя клавиши перемещения курсора, как в таблице. Можно изменять значения полей, как в таблице. В этом режиме можно таблицу дополнить новыми записями, удалить ненужные записи.

  • Закрыть Форму с сохранением, задав имя, указанное в карточке.

Задание 9. Создадим другой вариант формы по таблице.

  • В окне БД выберем раздел [Формы], нажмем [Создать]. Появляется окно Новая форма. Выбрать тип создания формы [Автоформа: ленточная], а из списка таблицу, указанную в карточке, нажать <ОК>.

  • Форма похожа на таблицу, но данные расположены не так компактно, как в таблице. Каждая запись занимает отдельную строку - “ленту”.

  • Закрыть Форму с сохранением, задав имя, указанное в карточке.

Задание 10. Подготовить Отчет.

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

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

Самый простой способ создать отчет - поручить программе строить автоотчеты двух типов: в столбец и ленточные.

Для этого в разделе [Отчеты] нажать кнопку [Создать], выбрать [Автоотчет: в столбец] и выбрать имя таблицы, указанное в карточке, нажав на кнопку раскрытия списка, <ОК>. Полученный отчет не самый удобный способ просмотра данных на экране, так как все поля могут не уместиться на одном листе.

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

Сохранить все изменения.

Внимание!!! Для того чтобы перенести работу домой или из дома в компьютерный класс и успешно запустить необходимо:

Для переноса на другую машину:

1. Скопировать созданное приложение Access.

2. Скопировать файлы БД из SQL Server так, как показано в конце прошлой работы.

Для запуска скопированного приложения на другой машине:

1. Присоединить БД к другому SQL Server, как показано в прошлой работе.

2. Скопировать приложение Access.

3. Создать ODBC соединение, как показано в задании 7.

4. Открыть приложение Access, удалить в разделе Таблицы связь с таблицами и создать эти связи заново, как показано в задании 7.