КПпоПБД №3-4. Лабораторная работа 3 Создание базы данных
Скачать 0.84 Mb.
|
Лабораторная работа № 3-4.1. Создание базы данныхЦель любой информационной системы (ИС) – обработка данных об объектах реального мира, они характеризуются огромными объёмами хранимых данных. Ядро ИС составляет её база данных. База данных (БД) – это совокупность сведений об объектах реального мира в какой-то предметной области. Под предметной областью понимаем часть реального мира, подлежащую изучению для организации управления или автоматизации, например, предприятие, вуз и т.д. Система управления базами данных (СУБД) – это комплекс программных и языковых средств, необходимых для создания баз данных, поддержания их в рабочем состоянии и организации поиска в них необходимой информации, подготовки и выдачи отчётов. СУБД Access, являющаяся частью пакета Microsoft Office, даёт возможность квалифицированному пользователю создать свою базу данных. Файл базы данных Access имеет расширение .mdb и содержит таблицы, формы, запросы и отчёты. Как правило, для каждой задачи создаётся своя база данных. Таблицы Основной частью каждой базы данных являются её таблицы. В них хранится информация. Каждая таблица описывает некоторый класс объектов выбранной предметной области. Таблица базы данных во многом похожа на электронную таблицу. В таблице Access каждый элемент хранится в отдельной строке. Эта строка называется записью. Каждая запись содержит информацию о конкретном объекте. Например, сведения о клиентах фирмы содержат должность и фамилию контактного лица, его телефон. Каждый тип сведений хранится в своём столбце, называемом полем. Поле описывает один из атрибутов данного объекта. В каждом файле базы данных может быть много таблиц. Например, одна таблица может содержать список покупателей, другая - список товаров, третья список продавцов и т.д. В СУБД Access определены следующие типы данных: текстовый, длиной от 1 до 255 символов. Количество символов определяется пользователем в процессе создания таблицы. По умолчанию СУБД устанавливает длину текстового поля равной 50; числовой, для которого существуют следующие форматы: байт (целые значения в диапазоне 0..255); целое (целые значения в диапазоне -32768..+32767); длинное целое (целые значения в диапазоне -2147483648 .. +2147483647); с плавающей точкой (4 байта). Вещественные числа в диапазоне -3.402823*1038 .. +3.402823*1038; с плавающей точкой (8 байт). Вещественные числа в диапазоне -1.79769313486232*10308 .. +1.79769313486232*10308. По умолчанию СУБД устанавливает формат числового поля с плавающей точкой (8 байт). дата/время. Возможны следующие форматы дат: полный; длинный; средний; краткий. Аналогично, для времени также существуют три последних формата. денежный. Аналогичен числовому типу с плавающей точкой. Позволяет вводить числа длиной до 15 знаков в целой части и 4 - в дробной; счетчик. Значения данного типа автоматически увеличиваются на 1 для каждой новой записи. Пользователь не может сам модифицировать значения поля данного типа; логический. Допускаются только два значения для полей данного типа: Да/Нет (True/False); МЕМО (комментарий). Текстовое поле произвольной длины. Может хранить текст длиной до 64 000 байт. Формы Все данные, введённые в базу данных, помещаются в таблицы, в которых они будут храниться. Вы можете вводить информацию непосредственно в таблицу, но это не всегда удобно. Большинство пользователей предпочитают создавать на экране специальные формы и вводить данные с их помощью. Форма похожа на обычный бланк с полями, которые вы должны заполнить. Access связывает форму с таблицей и помещает в таблицу введённую с её помощью информацию. Отчёты Если формы разрабатываются для использования их на экране, то отчёты предназначены для вывода данных на печать. Отчёты - это специально оформленные данные, организованные именно так, как вам удобнее с ними работать. Запросы Запрос - это способ отобрать интересующую вас информацию, удалив из рассмотрения информацию, которую вы не хотите видеть. На основе информации, отобранной с помощью запроса, часто выполняется построение отчётов. Все таблицы, формы, отчёты и запросы одной базы данных взаимосвязаны, даже если вы создаёте их в разное время. Мастера Access Мастер - это небольшая программа, которая задаёт вам вопросы, о том, что бы вы хотели сделать. Затем на основе ваших ответов программа создаёт таблицу, отчёт, запрос и т. д. Каждый раз при создании нового объекта, например таблицы, вы можете либо самостоятельно создать её с нуля, либо использовать для этого мастер. Планирование базы данных Перед тем, как приступить к созданию базы данных, вам необходимо обдумать следующие вопросы: Какие данные вы собираетесь хранить и как их организовать наилучшим образом? (Это определит, какие вам потребуются таблицы); Какие действия с входными данными вы собираетесь производить в ходе повседневной работы? (Это определит то, какие вам понадобятся формы); Какая нужна информация о состоянии дел? (Это определит то, какие вам понадобятся отчёты). Минимум, который необходим для функционирования базы данных - это одна таблица. Но это самая распространённая ошибка, которую допускают пользователи при работе с Access. Другая распространённая ошибка - это то, что пользователи стараются, чтобы каждая таблица выглядела, как хороший отчёт. СУБД Access - это реляционная база данных. При работе с Access вы можете работать с большим количеством таблиц и устанавливать между ними связи. Существуют правила, определяющие то, как в реляционной базе данные должны группироваться в таблицы (отношения). Это правила нормализации. Нормализация отношений - это формальный аппарат ограничений, который позволяет устранить дублирование, обеспечивает непротиворечивость хранимых в базе данных, уменьшает трудозатраты на ведение (ввод, корректировку) базы данных. База данных, построенная на основе нормализованных отношений, удовлетворяет следующим требованиям: 1. Отсутствие повторяющихся полей. Допустим, вы хотите хранить информацию о своих заказчиках и обо всех заключённых с ними сделках. Если бы вы хранили данные в одной таблице, то вам бы пришлось каждый раз при вводе новой записи повторять название, номер телефона, адрес заказчика. Более удобно хранить данные в двух таблицах: сведения о заказчиках и сведения о сделках. При этом целесообразно каждому заказчику присвоить свой код и ввести это поле в обе таблицы. 2. Каждая запись в любой таблице должна быть уникальной. Это означает, что значение некоторого поля или некоторых полей не повторяются ни в одной записи таблицы. Это поле называется первичным ключом.Каждая таблица должна иметь первичный ключ, который может состоять из одного или нескольких полей. 3. Для каждого значения первичного ключа набор значений в столбцах данных должен относиться к объекту таблицы и полностью его описывать. 4. Независимость полей. Вы должны иметь возможность изменять значения любого поля (не входящего в первичный ключ) без воздействия на данные других полей. Связи между таблицами Если ваша база данных состоит из нескольких таблиц, необходимо сообщить Access, как они связаны друг с другом. В дальнейшем Access сможет связывать эти таблицы при их использовании в запросах, формах, отчётах. В большинстве случаев любые две таблицы связаны отношением "один- ко- многим". Это означает, что любая запись в первой таблице может быть связана с несколькими записями во второй. Однако любая запись второй таблицы связана при этом только с одной записью первой. Иногда возникает необходимость разбить таблицу на более мелкие. Проблема может быть вызвана тем, что какие-то данные не предназначены для общего использования (например, заработок сотрудника). В этом случае обе таблицы имеют один и тот же первичный ключ, а связь между двумя таблицами имеет тип "один- к- одному". Создание базы данных Сразу после запуска Access на экране появляется диалоговое окно "Создание файла", которое позволяет вам создать или открыть базу данных. При создании базы данных вы можете выбрать создание новой БД или вызвать мастера БД (создание с помощью шаблона). В появившемся окне надо выбрать подходящий вам вариант базы данных, например: Главная книга. Заказы на работы. Мероприятия. Расходы. Склад и т.д. Создание таблиц в режиме конструктора таблиц Этот способ создания таблицы наиболее универсален, так как позволяет создать таблицу "с нуля". Вы полностью управляете процессом создания таблицы. Запуск конструктора приводит к открытию бланка описания структуры таблицы (рис. 1), состоящего из четырех столбцов. Во втором столбце указывается имя поля. Переход в третий столбец приводит к появлению кнопки раскрытия (чёрной стрелки), щелчок по которой отображает список допустимых типов полей. Выбор типа также может производиться левой клавишей мыши, а затем в строке Размер поля производится его конкретизация. Четвертый столбец является вспомогательным, в нем хранятся комментарии к создаваемым полям. Индикатор в первом столбце показывает текущее поле обработки. При установке ключа необходимо установить индикатор в требуемое поле и щелкнуть левой клавишей мыши по значку КЛЮЧЕВОЕ ПОЛЕ в панели инструментов. Если в качестве ключа определяется несколько полей, то их сначала выделяют, а затем выполняют щелчок на значке КЛЮЧЕВОЕ ПОЛЕ. Для выделения нескольких полей щелчок выполняют при нажатой клавише
Рис. 1 После описания структуры таблицы переходят к ее заполнению. Для этого необходимо выполнить щелчок на значке ВИД . При этом СУБД попросит указать имя создаваемой таблицы и отобразит пустой бланк созданной таблицы, готовый к заполнению. Перемещение по полям таблицы осуществляется клавишами , , , , В процессе работы с таблицей можно в любой момент вернуться в режим конструктора для изменения её структуры щелкнув мышью на значке , который отображается в панели инструментов при переходе в табличный режим. Изменению могут быть подвергнуты названия полей, их тип и последовательность. Для удаления некоторого поля таблицы необходимо его выделить щелчком правой клавиши мыши в первом столбце и вызвать команду УДАЛИТЬ СТРОКУ в панели инструментов. Контроль достоверности данныхСУБД автоматически осуществляет проверку достоверности данных, вводимых в поля определенного типа. Например, нельзя ввести букву в числовое поле. Уровень контроля может быть повышен пользователем путем задания дополнительных ограничений на значения полей в области конструктора Свойства поля (см. рис. 1). Для этого можно использовать следующие свойства: Значения по умолчанию. Если в каком-либо поле преобладает одно значение, то целесообразно установить его в качестве значения по умолчанию и оно будет появляться в данном поле автоматически при создании новой записи. Например, если в таблицу заносится город проживания студента и преобладает «Ижевск», то целесообразно именно его установить в качестве значения по умолчанию. При занесении другого города данное значение необходимо стереть, например, сочетанием клавиш Ctrl/Backspace. Обязательное поле. Установка данного поля в значение Да приводит к тому, что переход к новой записи не будет разрешен, пока пользователь не заполнит обязательное поле. Условие на значение. После перехода в данное поле необходимо ввести условие, если условие сложное, то для его формирования можно использовать построитель выражений, который вызывается щелчком на кнопке . Например, можно установить условие на экзаменационные оценки в виде ограничения >1 And <6, что позволит вводить только цифры 2, 3, 4 и 5. Маска ввода. Данное свойство используется для установки ввода данных по определенному формату. Маска формируется из следующих символов: 0 - знакоместо для цифры, ввод ее обязателен; 9 - знакоместо для цифры или пробела, ввод не обязателен; # - знакоместо для цифры или пробела, ввод не обязателен, пустые символы преобразуются в пробелы; L - буква, ввод обязателен; ? - буква, ввод не обязателен; А - буква или цифра, ввод обязателен; а - буква или цифра, ввод не обязателен; & - любой символ или пробел, ввод обязателен; с - любой символ или пробел, ввод не обязателен; < - принудительный перевод всех последующих символов в нижний регистр; > - принудительный перевод всех последующих символов в верхний регистр; ! - заполнение маски справа налево (символ ! можно ставить в любую позицию маски); \ - следующий символ является текстовой константой. Стандартно маска состоит из двух частей, разделяемых символом (;). В первой части фиксируется собственно маска, во второй определяется режим занесения постоянных строковых констант, добавляемых в маску: 0 указывает, что постоянные символы автоматически добавляются в каждое заносимое значение, 1 или пустое значение - сохраняются только те символы, которые введены пользователем.
Достаточно сложно реализовать маску для ввода ФИО в виде Фамилия И.О. Если предположить, что сама фамилия содержит не более 15 символов и не короче 2 символов, то маска имеет вид >L Если в маске отсутствует вторая компонента, то точки после инициалов необходимо вводить самому пользователю. Еще один вариант повышения достоверности вводимых данных - использование полей-списков фиксированных данных. Например, для оценки знаний студентов используются только четыре значения: неуд., удовл., хор. и отл. Для их фиксации используется мастер подстановок, запускаемый в списке допустимых типов данных. Далее СУБД запрашивает способ формирования перечня значений. В данном случае необходимо выбрать вариант Фиксированный набор значений и нажать кнопку ДАЛЕЕ. Затем система запросит количество столбцов для ввода данных (при небольшом количестве значений целесообразно выбирать один столбец) и предоставит место для ввода этих значений. При заполнении поля-списка в нем появляется кнопка раскрытия, нажатие на которую приводит к отображению введенных ранее значений. Выбор конкретного значения осуществляется щелчком мыши. Создание связей между таблицами Из любого места базы данных вызвать команду СХЕМА ДАННЫХ из подменю СЕРВИС. В окне Добавление таблицы щёлкните на таблице, которую вы хотите использовать для связи и нажмите кнопку Добавить. Таким образом добавьте в схему данных все таблицы, между которыми вы хотите устанавливать связи, а затем нажмите кнопку Закрыть. В окне схемы данных появляются все заданные вами таблицы с перечнем составляющих их полей. Выделите нужное поле в окне одной таблицы и перетащите указатель к нужному полю другой таблицы. Появляется диалоговое окно "Связи". Установите необходимые переключатели - обеспечение целостности данных, каскадное обновление связанных полей, каскадное удаление связанных полей. Щёлкните кнопку Создать. Целостность данных помогает нам избежать ошибок при вводе, т. е. вся информация в связанных полях должна совпадать. Каскадное обновление связанных полей. Если при установленном этом переключателе вы внесёте изменение в связанную таблицу, то Access внесёт это изменение и в другую таблицу. Каскадное удаление связанных полей. При установленном переключателе Access удалит значение в связанной таблице, если в другой таблице оно больше не присутствует. Задание № 1 1. В рабочей папке создать новую базу данных, содержащую сведения о некоторой организации, присвоив ей своё имя 2. В этой базе данных с помощью конструктора таблиц создать таблицу Отделы, включающую следующие поля: Название_ отдела (текстовое 20), ключевое поле; Начальник_ отдела (текстовое 20); Телефон_ отдела (текстовое 8); Аудитория (числовое, байт). Для ввода значений в поле Телефон _отдела предусмотреть маску 3. С помощью конструктора таблиц создать таблицу Должности, включающую следующие поля: Название_ должности (текстовое 20), ключевое поле ; Образование (текстовое 15). Для ввода значений в поле Образование предусмотреть подстановку из фиксированного списка значений (среднее, среднее специальное, высшее, неполное высшее). 4. С помощью конструктора таблиц создать таблицу Служащие, содержащую следующие поля: ФИО (текстовое 20), ключевое поле; Название_ отдела. (текстовое 20); Название_ должности (текстовое 20); Дата рождения (краткий формат даты); Пол (текстовое 1); Оклад ( денежный); Семейное_ положение (текстовое 10); Количество_ детей (числовое, байт). Предусмотреть ограничения на значения полей Количество_детей и Оклад, маску ввода для поля ФИО, подстановку из списка (м, ж) для поля Пол.5. Разработать схему базы данных, установив связи между таблицами. 6. Заполнить таблицы Отделы, Должности и Служащие 5-ю записями. Внимание! Поля название_ отдела, название _должности в таблице Служащие могут содержать только те значения, которые вы ввели в соответствующие поля таблиц Отделы и Должности. |