Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Глава 2
Работа в СУБД Access
Лабораторная работа 1: Создание новой базы данных.
Цель работы
Приобретение навыков создания базы данных (БД), то есть создания структуры таблиц, составляющих БД, занесения в них информации, установки постоянных связей между таблицами.
Общие сведения.
Система управления базами данных (СУБД) Access – это СУБД реляционного типа.
БД в терминологии Access – это приложение, ориентированное на определенную категорию пользователей и состоящее из взаимосвязанных таблиц, в которых хранится вся необходимая для работы информация, запросов, обеспечивающих доступ к этой информации, а также элементов интерфейса: экранных форм, меню и отчетов. Кроме того, в состав приложения могут входить макросы и/или модули. БД Access – это файл с расширением mdb. Создание приложения начинается с создания таблицы. Не имея ни одной таблицы, бессмысленно говорить о создании всех остальных компонентов приложения.
Для создания таблицы необходимо выполнить две операции: создать структуру или определение таблицы и заполнить таблицу данными. Создать структуру новой таблицы можно самостоятельно в режиме конструктора или с помощью Мастера, который предоставляет образцы готовых таблиц. Первый способ рассматривается в лабораторной работе (ЛР), как основной, работу с Мастером студентам предлагается освоить самостоятельно (см. раздел "Задания для самостоятельной работы").
Создать структуру таблицы – значит задать информацию обо всех ее полях. Для каждого поля необходимо указать его имя (может совпадать с заголовком столбца), тип и свойства. Перечень свойств поля, которые можно задать, зависит от типа этого поля. В лабораторной работе рассматриваются поля трех типов: текстовые, числовые и дата/время.
Для текстовых и числовых полей обязательно указание размера поля. Для текстовых полей размер указывается в символах и может изменяться от 1 до 255, по умолчанию размер текстового поля задается равным 50.
Для числовых полей размер выбирается из списка типов чисел (числа могут находиться в разных диапазонах, быть целыми или с плавающей точкой).
Размер поля типа дата/время устанавливается автоматически. Для полей этого типа желательно установить такие свойства, как Формат поля – формат представления данных при выводе на экран и Маска ввода – символы, которые пользователь видит при вводе данных в поле. Значения этих свойств выбираются из соответствующих списков и не должны вступать в противоречие друг с другом.
Свойства Условие на значение и Сообщение об ошибке могут быть заданы для любых используемых в ЛР типов полей. В свойстве Условие на значение задается выражение, истинность которого проверяется при вводе или изменении значения поля. Если вводимое значение не удовлетворяет заданному условию, выводится сообщение, текст которого можно задать в свойстве Сообщение об ошибке. При задании проверяемого условия используются операторы сравнения (>, <, >=, <=, =, <>), логические операторы - OR, AND и NOT, предикаты - IN(<список>), BETWEEN<нижняя граница> AND <верхняя граница>, LIKE "<шаблон>". Например, если требуется, чтобы вводимое значение находилось в диапазоне от 0 до 5, можно задать условие >= 0 AND <= 5 или BETWEEN 0 AND 5 или 0 OR 1 OR 2 OR 3 OR 4 OR 5 или IN (0,1,2,3,4,5).
Шаблоны предиката LIKE кроме последовательностей букв и цифр могут содержать следующие символы: ? – один произвольный символ, * - любое количество произвольных символов, # - любая цифра. В позиции текстового поля могут быть символы из списка, указанного в квадратных скобках, например [АВС]. Список может содержать диапазон, например [А-Я],[3-7]. Если в позиции допускается любой символ кроме указанного в списке, список должен начинаться со знака!, например, список [!1-9АВ] означает, что в данной позиции может быть любой символ кроме цифр и букв А или В. Если операндом является константа типа дата, она заключается в символы #, например, #01.12.03#.
Свойства Обязательное поле и Пустые строки могут принимать только значения Да и Нет. Значение Да свойства Обязательное поле означает, что значение Null для этого поля не допускается, например, для первичного ключа свойству Обязательное поле автоматически. присваивается значение Да. Значение Да свойства Пустые строки разрешает ввод пустых строк в качестве значения поля. Разницу между пустой строкой и значением поля, равным Null легко понять на примере значения поля НомерТелефона. Мы заносим значение номера телефона, если знаем его, заносим значение пустой строки, если знаем, что телефона у человека нет, и значение Null, если нет информации о наличии или отсутствии у человека телефона.
Свойство Подпись поля в качестве значения может содержать любой текст, в том числе и текст с пробелами (пробелы в имени поля не допускаются). Это свойство целесообразно использовать, если имя поля недостаточно содержательно. Если значение свойства не задано, в заголовке соответствующего столбца используется имя поля.
Установка первичного ключа завершает создание структуры таблицы. Если первичный ключ вами не установлен, система сама предлагает создать его при сохранении структуры таблицы. В качестве первичного ключа она генерирует поле типа Счетчик, в которое при создании каждой новой строки таблицы будет помещать номер этой строки.
После того, как структура таблицы создана, можно заносить в нее данные. Для этого из режима конструирования надо перейти в режим таблицы.
База данных обычно содержит несколько таблиц. Как правило, эти таблицы связаны между собой. Связи используются для контроля ссылочной целостности, а также в экранных формах, отчетах и запросах, если необходимо обеспечить одновременный доступ к данным из нескольких таблиц. Связь устанавливается от главной или родительской таблицы к подчиненной или дочерней по одному или нескольким полям и может быть единичной или множественной. Поле (поля) связи при этом должно быть первичным ключом родительской таблицы. Обязательно совпадение типов и размеров полей связи обеих таблиц, совпадение имен не требуется. При включенном флажке целостности данных система контролирует соответствие информации в связанных таблицах. Нельзя ввести в дочернюю таблицу строку со значением поля связи, отсутствующим в родительской таблице, или удалить из родительской таблицы строку, имеющую в дочерней таблице связанные с ней строки. Система позволяет также решить проблему сохранения целостности данных иначе. Вы можете установить флажки Каскадное обновление связанных полей и Каскадное удаление связанных записей. Первая установка означает, что при изменении значения ключа родительской таблицы изменятся соответствующие значения во всех строках дочерней таблицы, а вторая - что при удалении строки родительской таблицы будут удалены все связанные с ней строки дочерней таблицы. Стандартная логическая связь между таблицами предполагает объединение только тех записей, в которых поля обеих таблиц совпадают, такое объединение называют симметричным. В некоторых случаях необходимо изменить логику объединения таблиц, выбрав установку "Объединение всех записей из таблицы 1 и только тех записей из таблицы 2, в которых связанные поля совпадают" или наоборот.
Порядок выполнения работы.
Запустите Access. Для этого нажмите на кнопку Пуск в левом нижнем углу экрана и из меню Программы выберите строку Microsoft Access. Оказавшись в прикладном окне Access, выберите индикатор Новая база данных и нажмите ОК. В диалоговом окне создания БД выполните следующие действия:
l Создайте на своем рабочем диске папку с именем ACS и перейдите в нее.
l Замените предложенное системой имя db1.mdb в поле имя файла на имя будущей БД, например teach. mdb.
l Щелкните по кнопке Создать.
На экране в рамках окна Access появляется окно БД, имеющее кнопки: Создать, Открыть, Конструктор, а также корешки: таблица, запрос, форма, отчет, макрос, модуль. Корешок таблицы выбран по умолчанию.
Для создания новой таблицы щелкните на кнопке Создать и выберите режим Конструктор. Access перейдет в режим создания определения таблицы. В этом режиме для каждого поля создаваемой таблицы необходимо указать его имя и тип, можно также прокомментировать назначение поля в третьей колонке.
Создайте таблицу, схема которой имеет вид: PREP(FIO, Categ, Nagr, Contract). Поля FIO и Categ имеют текстовый тип данных. Это соответственно фамилии и инициалы преподавателей и их категории (профессор, доцент, ассистент, асс. к.н.). Тип поля Nagr - числовой. Это годовая нагрузка преподавателя, которая может изменяться в пределах от 0 до 999 часов. Поле Contract представляет собой дату заключения контракта с преподавателем и имеет тип Дата/Время. Размеры полей указываются в первой строке области Свойства Поля. Укажите для FIO размер 25 символов, для Categ - 10, для Nagr - целое, для поля Contract размер поля указывать не надо, он устанавливается по умолчанию. Для каждого из полей в относящейся к этому полю области Свойства Поля введите значения элемента Подпись поля, например, для поля FIO введите Ф. И.О., для поля Categ - Категория, для поля Nagr - Нагрузка, а для поля Contract – Дата контракта. Укажите, что все поля, кроме Nagr, должны быть заполнены (свойство Обязательное поле должно иметь значение Да). Для поля FIO задайте Условие на значение Like “* ?.?.”, это означает, что сначала следует ввести несколько символов, представляющих собой фамилию, а затем две буквы с точками после них – инициалы. Свойству Сообщение об ошибке поля FIO можно, например, присвоить значение «О. с ошибкой». Текст сообщения об ошибке может быть и другим, но желательно коротким и точно указывающим, при вводе в какое поле произошла ошибка и какая. Для поля Nagr задайте Условие на значение >=0 And <=999 и Сообщение об ошибке – «Нагрузка должна быть в диапазоне от 0 до 999». Для поля Contract установите выбором из списка формат поля в значение Краткий формат даты и с помощью построителя маски (кнопка с тремя точками...) Маску ввода - Краткий формат даты. Завершив спецификацию полей таблицы, задайте ее первичный ключ. Для этого щелкните слева от поля FIO, чтобы выделить его, а затем щелкните по пиктограмме ключа или выполните команду Правка4Ключевое поле. Сохраните созданную структуру таблицы, выполнив команду Файл4Сохранить как, введите имя таблицы PREP и щелкните OK.
Теперь можно заполнять таблицу данными. Для этого перейдите из режима проектирования таблицы в режим ее заполнения, щелкнув по пиктограмме таблицы, или, выполнив команду Вид4Режим таблицы, и введите следующие данные:
Ф. И.О. | Категория | Нагрузка | Дата_Контракта |
асс. к.н. | 780 | 25/03/98 | |
доцент | 650 | 02/01/99 | |
асс. к.н. | 760 | 12/01/02 | |
профессор | 580 | 17/05/97 | |
доцент | 790 | 09/01/96 | |
ассистент | 800 | 05/01/96 | |
профессор | 620 | 20/01/96 | |
доцент | 720 | 31/08/01 | |
профессор | 95 | 01.03.97 |
Для перехода к новому полю и к новой строке используйте клавишу ТАВ.
Создайте таблицу PREP1(FIO, FAK, DIS, GR), выполнив копирование таблицы PREP, а затем удалив все поля кроме FIO и добавив поля FAK, DIS и GR. Для этого закройте таблицу, вернитесь в окно БД и выполните:
l команду Правка4Копировать по отношению к таблице PREP;
l команду Правка4 Вставить и в диалоговом окне Вставка Таблицы введите имя таблицы PREP1, параметр вставки Структура и данные установлен по умолчанию, можно было бы скопировать только структуру или только данные, но в данном случае нам нужно и то и другое;
l щелкните OK.
В списке таблиц БД teach появилась еще одна таблица с именем PREP1. Выберите ее и перейдите в режим Конструктора. В этом режиме удалите все поля таблицы PREP1 кроме FIO. Для этого выделите все ненужные поля (полностью строку)и нажмите Del. Access выведет диалоговое окно с предупреждением, что при удалении полей будет утрачено их содержимое. Щелкните OK, и удаление будет завершено. После удаления ненужных полей добавьте следующие поля:
Поле | Тип данных | Описание | Размер поля |
FAK | текстовый | Сокращенное название факультета | 4 |
DIS | текстовый | Сокращенное название предмета | 5 |
GR | текстовый | номер группы | 4 |
В качестве значений элементов Подпись поля введите соответственно Факультет, Дисциплина, Группа. Для всех полей кроме FIO укажите Да в качестве значения элемента Обязательное поле. Для поля GR задайте Условия на значение - Like “#[1-7]#[1-6]”. Это означает, что номер группы состоит из четырех цифр, из которых первая и третья могут быть любыми, вторая не может быть равна 0,8,9, а четвертая не может быть равна 0,7,8,9. Свойству Сообщение об ошибке присвойте значение «Неверный номер группы». Снимите установку первичного ключа с поля FIO, щелкнув при выделенном поле по пиктограмме ключа, поскольку запрет повторения фамилии преподавателя в этой таблице является семантически неверным. Каждый преподаватель может вести занятия в нескольких группах и/или читать несколько предметов.
Сохраните созданную структуру таблицы и перейдите в режим ее заполнения. Должны быть введены следующие данные:
Ф. И.О. | Факультет | Дисциплина | Группа |
ФАВТ | БДиБЗ | 5341 | |
ФАВТ | ТУ | 2351 | |
ФЭТ | ОП | 3422 | |
ФЭТ | ОП | 4441 | |
ФАВТ | ОП | 2351 | |
ФКЭА | ОП | 5531 | |
ФАВТ | ОСРВ | 2351 | |
ФАВТ | ТУ | 2352 | |
ФАВТ | ОП | 3456 | |
ФЭТ | ОП | 3421 | |
ФАВТ | БДиБЗ | 5342 | |
ФАВТ | ТУ | 3456 | |
ФКЭА | ТУ | 2345 |
Определите связи между таблицами.
Для этого вернитесь в окно БД, закрыв текущее окно таблицы, и выполните команду Сервис4Схема данных. Откроется пустое окно Схема Данных, а затем диалоговое окно Добавление таблицы. Выбирайте по очереди таблицы PREP и PREP1 и щелкайте по кнопке Добавить. Затем щелкните по кнопке Закрыть. В окне Схема Данных появятся заголовки обеих таблиц со списками их полей. Таблица PREP должна быть связана с таблицей PREP1 отношением один-ко-многим (устанавливается по умолчанию), так как каждый преподаватель может вести несколько предметов и преподавать в разных группах. Для первичного ключа FIO таблицы PREP существует соответствующий ему внешний ключ FIO в таблице PREP1. Для установки связи щелкните по полю FIO таблицы PREP, перетащите и опустите его на поле FIO таблицы PREP1. В открывшемся диалоговом окне Связи щелкните по флажку Обеспечение целостности данных и по флажкам Каскадное обновление связанных полей и Каскадное удаление связанных записей. Щелкните также по кнопке Объединение и выберите установку 2, чтобы обеспечить возможность найти преподавателя, который ничего не преподает. Для завершения процесса создания связи щелкните Создать. Для удаления связи достаточно щелкнуть по изображающей ее линии и нажать Del, но не стоит делать это сейчас. Чтобы отредактировать связь, надо щелкнуть по ней дважды. Закройте окно Схема данных. Вы завершили установку связей между таблицами БД и создание БД в целом.
Установить связь между таблицами удается не всегда. Не удастся сделать это в следующих случаях:
l таблицы, между которыми устанавливается связь, открыты;
l поле связи не является первичным ключом родительской таблицы;
l типы или размеры полей, по которым устанавливается связь, не совпадают;
l нарушена ссылочная целостность данных, то есть в подчиненной таблице есть значения поля связи, отсутствующие в родительской таблице, например, в таблице Prep1 есть какая – то фамилия и инициалы, отсутствующие в таблице Prep.
Задание для самостоятельной работы.
Самостоятельно изучите возможности Мастеров по созданию БД и составляющих ее таблиц.
1. Чтобы воспользоваться услугами Мастера по созданию БД, то есть Мастера, который создает копию готового приложения, имеющегося в библиотеке Access, после запуска MS Access выберите установку Запуск мастера, если вы работаете в Access 97, или, если вы работаете в Access 2000, выполните команду Файл4Создать… и в окне создания БД щелкните по корешку Базы данных. Вам будут предложены примеры готовых баз данных. Выберите любую из них. Если вы работаете в Access 97, можно выбрать БД "Студенты и занятия". При создании БД не забудьте установить индикатор "Да, включить образцы данных". Это поможет вам при изучении созданного приложения. Ознакомьтесь с составом таблиц, входящих в БД, проанализируйте установленные между ними связи. Познакомьтесь с составом и возможностями интерфейса приложения.
2. Создайте БД "Студенты_Занятия", выберите для этого установку Новая база данных (Access97) или, если вы работаете в Access 2000, выполните команду Файл4Создать… и в окне создания БД, щелкнув по корешку Общие, выберите База данных. Дайте новой БД указанное имя, а затем воспользуйтесь услугами Мастера таблиц для создания таблиц "Студенты" и "Студенты и занятия", таблицу "Занятия" создайте вручную в режиме Конструктора. При создании таблицы "Студенты" с помощью Мастера поменяйте имя поля "НомерСтудента" на "НомерЗачетки", а в таблице "Студенты и занятия" исключите поле "КодЗанятийСтудента", измените тип поля "Балл", замените его на целое число, которое может принимать значения от 0 до 10. Установите необходимые связи между созданными таблицами. Для уточнения структуры таблиц, которые должны получиться в итоге и межтабличных связей воспользуйтесь приложением к лабораторной работе 1.
Приложение к ЛР №1
Таблица: Занятия
Имя | Тип | Размер |
КодЗанятий | Числовой (длинное целое) | 4 |
ТемаЗанятий | Текстовый | 50 |
КодОтдела | Числовой (длинное целое) | 4 |
НомерОтделения | Числовой (целое) | 2 |
КодПреподавателя | Числовой (длинное целое) | 4 |
Семестр | Текстовый | 30 |
Единицы | Текстовый | 30 |
Год | Числовой (целое) | 2 |
Место | Текстовый | 255 |
Расписание | Текстовый | 20 |
Заметки | Поле МЕМО | - |
Таблица: Студенты
Имя | Тип | Размер |
КодСтудента | Числовой (длинное целое) | 4 |
Имя | Текстовый | 50 |
Фамилия | Текстовый | 50 |
Адрес | Текстовый | 255 |
Город | Текстовый | 50 |
ОбластьКрайРеспублика | Текстовый | 20 |
ПочтовыйИндекс | Текстовый | 20 |
НомерТелефона | Текстовый | 30 |
Специализация | Текстовый | 50 |
НомерЗачетки | Текстовый | 30 |
Таблица: Студенты и занятия
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |


