Глава 2. Базы данных как средство хранения и обработки информации

 

Базы данных — это совокупность сведений (о реальных объектах, процессах, событиях или явлениях), относящихся к определенной теме или задаче, организованная таким образом, чтобы обеспечить удобное представление этой совокупности, как в целом, так и любой ее части. Допустим, в одном файле вы храните даты рождения ваших друзей, в другом ваши совместные фотографии. Или можно создать несколько файлов электронных таблиц, где вы будете учитывать ваши доходы и расходы за определенные периоды. Если вы организованный человек, то, используя специальную структуру каталогов и подкаталогов, вы справитесь с сотней другой файлов. Но рано, или поздно, вы столкнетесь с такой задачей, которая будет слишком велика. Что делать? Что делать если какие-то данные должны использовать несколько приложений или людей, и при этом нельзя допустить чтобы одни и те же данные корректировали одновременно? Когда вы оказываетесь перед подобными проблемами, вам нужна система управления базами данных (СУБД).

Почти все современные системы основаны на реляционной (relational) модели управления базами данных. Реляционная база данных представляет собой множество взаимосвязанных таблиц, каждая из которых содержит информацию об объектах определенного типа. Название «реляционная» связано с тем, что каждая запись содержит информацию, относящуюся только к одному объекту. В таких базах данные не дублируются, а связываются по определенным полям. Например, при указании товаров и их категорий нецелесообразно упоминать все сведения о поставщике, которые хранятся в отдельной таблице. Достаточно связать эти товары, с выше указанной таблицей, по номеру (коду) поставщика.

Можно выделить три основные функции СУБД:

q определение данных (Data definition) – вы можете определить, какая именно информация будет храниться в вашей базе данных, задать структуру данных и их тип (например, максимальное количество цифр или символов), а также указать, как эти данные связаны между собой. В некоторых случаях вы можете также задать форматы и критерии проверки данных;

q обработка данных (Data manipulation) – данные можно обрабатывать самыми различными способами. Можно объединять данные с другой связанной с ними информацией и вычислять итоговые значения;

q управление данными (Data control) – вы можете указать, кому разрешено знакомиться с данными, корректировать их или добавлять новую информацию. Можно также определить правила коллективного пользования данными.

Система управления базами данных Microsoft Access является одним из самых популярных приложений в семействе настольных СУБД.

 

Запуск Microsoft Access. Создание базы данных

Для того, чтобы запустить Microsoft Access необходимо:

1. Нажать кнопку Пуск на Панели задач в нижней части рабочего стола.

2. Открыть в главном меню пункт Программы.

3. Выбрать программу Microsoft Access.

 


Лабораторная работа №1. Проектирование базы данных. Создание таблиц с использованием столбцов подстановки

 

Создание таблиц

 

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

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

Рисунок 2.1 – окно MS Access работы с таблицами

 

В Access используются два способа создания таблиц: путем ввода данных (by entering data) и с помощью Конструктора таблиц (in Design view), который является наиболее универсальным.

 

 

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

1. Перейти на вкладку Создание и нажать на кнопку Таблица.

2. Access автоматически перейдет в режим таблицы. В этом режиме необходимо нажать кнопку Вид и выбрать Конструктор. После чего необходимо ввести имя таблицы. Таблица автоматически откроется в режиме конструктора.

3. В окне Конструктора таблиц в столбец Имя поля(Field Name) ввести имена полей создаваемой таблицы.

4. В столбце Тип данных(Data Type) для каждого поля таблицы выбрать из раскрывающегося списка тип данных, которые будут содержаться в этом поле.

5. В столбце Описание(Description) можно ввести описание данного поля (не обязательно).

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

7. После описания всех полей будущей таблицы нажать кнопку Закрыть(в верхнем правом углу окна таблицы).

8. На вопрос Сохранить изменения макета или структуры таблицы <имя таблицы>?(Do you want to save changes to the design of table <имя таблицы>?), нажать кнопку Да (Yes).

9. В окне Сохранить как (Save As) в поле Имя таблицы (Table Name) ввести имя создаваемой таблицы и нажать кнопку ОК.

10.В ответ на сообщение Ключевые поля не заданы (There is no primary key defined) и вопрос Создать ключевое поле сейчас?(Do you want to create a primary key now?) нажмите кнопку Да (Yes) если ключевое поле необходимо, или кнопку Нет (No) если такого не требуется.

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

 

В Microsoft Access имеются следующие типы данных:

o Текстовый (Text) — символьные или числовые данные, не требующие вычислений. Размер текстового поля задается с помощью свойства Размер поля (FieldSize), в котором указывается максимальное количество символов, которые могут быть введены в данное поле.

o Поле MEMO (MEMO) — поле MEMO предназначено для ввода текстовой информации, по объему превышающей 255 символов. Этот тип данных отличается от типа Текстовый (Text) тем, что в таблице хранятся не сами данные, а ссылки на блоки данных, хранящиеся отдельно. За счет этого ускоряется обработка таблиц (сортировка, поиск и т. п.).

o Числовой (Number) — числовой тип применяется для хранения числовых данных, используемых в математических расчетах.

o Дата/Время (Date/Time) — тип для представления даты и времени.

o Денежный (Currency) — тип данных, предназначенный для хранения данных, точность представления которых колеблется от 1 до 4 десятичных знаков.

o Счетчик (AutoNumber) — поле содержит 4-байтный уникальный номер, определяемый Microsoft Access автоматически для каждой новой записи либо случайным образом, либо путем увеличения предыдущего значения на 1. Значения полей типа счетчика обновлять нельзя.

o Логический (Yes/No) — логическое поле, которое может содержать только два значения, интерпретируемых как Да/Нет, Истина/Ложь, Включено/Выключено.

o Поле объекта OLE (OLE object) — содержит ссылку на OLE-объект (лист Microsoft Excel, документ Microsoft Word, звук, рисунок и т. п.). В поле объекта OLE могут храниться произвольные данные, в том числе и данные нескольких типов. Это позволяет обойти основное ограничение реляционных баз данных, которое требует, чтобы в каждом поле хранились данные только одного типа.

o Гиперссылка (Hyperlink) — дает возможность хранить в поле ссылку, с помощью которой можно ссылаться на произвольный фрагмент данных внутри файла или Web-страницы на том же компьютере, в Интернет.

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

Свойство Формат поля (Format) указывает формат отображения данных из поля в режиме Таблицы. Для определения формата полей текстового типа используются специальные символы форматирования. Для числовых полей значение формата можно выбрать из раскрывающегося списка. Для логических полей можно выбрать из списка следующие варианты: Да/Нет (Yes/No), Истина/Ложь (True/False), Вкл/Выкл (On/Off).

С помощью свойства Маска ввода (Input Mask) указывается маска, позволяющая автоматизировать проверку ввода символов в поле. Она применяется к таким полям, как номер телефона, дата и т. д. Задавать маску ввода можно вручную или с помощью Мастера.

Свойство Индексированное поле (Indexed) определяет, является ли данное поле индексированным, и если является, то в каком режиме. Существуют два режима индексирования: Совпадения допускаются (Duplicates OK) и Совпадения не допускаются (No duplicates). В первом случае поле может содержать повторяющиеся значения, во втором — нет.

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

q Условие на значение (Validation Rule) — свойство определяет условие (ограничение), накладываемое на вводимые в это поле данные. При несоответствии вводимых данных указанному условию выдается сообщение об ошибке.

q Сообщение об ошибке (Validation Text) — свойство определяет то сообщение, которое будет выдаваться пользователю, если при вводе данных не соблюдается условие, указанное в свойстве Условие на значение (Validation Rule).

Сделать более простым ввод значений в поле позволяет операция подстановки. Используя эту операцию, можно выбирать значения поля из списка. Список значений может быть как фиксированным, так и содержаться в таблице или запросе. Сформировать столбец подстановок для поля помогает Мастер подстановок (Lookup Wizard).

Выше неоднократно упоминалось понятие ключевого поля. Ключевое поле — это одно или несколько полей, комбинация значений которых однозначно определяет каждую запись в таблице. Если для таблицы определены ключевые поля, то Microsoft Access предотвращает дублирование или ввод пустых значений в ключевое поле. Ключевые поля используются для быстрого поиска и связи данных из разных таблиц при помощи запросов, форм и отчетов.

 

Практическое задание:

1. Создать свою папку в «Мои документы».

2. Запустить СУБД Access.

3. Создать новую БД Фирма.

4. Создать в ней таблицу Отдел, содержащую следующие поля:

Код (счетчик);

Наименование отдела (текстовый, 20 символов);

Кабинет (числовой, байт);

Телефон (текстовый, 8 символов, маска ввода 99-99-99);

Начальник отдела (текстовый, 20 символов).

5. Создать в базе данных таблицу Должность, содержащую следующие поля:

Код (счетчик);

Наименование должности (текстовый, 20 символов);

Образование (текстовый, подстановочное поле).

6. Создать в базе таблицу Семейное положение, содержащую следующие поля:

Код (счетчик);

Семейное положение (текстовый, 10 символов).

7. Создать в ней таблицу Служащий, содержащую следующие поля:

Код сотрудника (счетчик);

Фамилия работника (20 символов);

Имя работника (10 символов);

Отчество работника (текстовый, 20 символов);

Код отдела его работы (числовой);

Код должности (числовой);

Дата рождения (средний формат);

Пол (1 символ);

Оклад (денежный);

Код семейного положения (числовой);

Количество детей (байт).

8. Установить требуемый тип полей и их названия.

9. Поля, содержащие коды во всех таблицах определить как ключевые.

10. Сформировать меры контроля достоверности:

q маска для поля Дата рождения;

q поле-список для семейного положения из значений: холост, не замужем, женат, замужем;

q количество детей находится в диапазоне 0..6;

q поле-список для пола из двух значений: м и ж;

q оклад находится в диапазоне 1000..100000.

Создание связей

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

СЛУЖАЩИЙ

Код сотрудника ФИО сотрудника Отдел Должность Дата рождения Оклад
         

 

ОТДЕЛ

Код отдела Отдел Кабинет Телефон ФИО начальника
         

Рисунок 2.2 – Связи между таблицами «Служащий» и «Отдел»

 

Для связывания полей необязательно совпадение их имен (например, они могут называться в одной таблице как Отдел, а в другой – Код отдела), но обязательно совпадение их типов.

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

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

В диалоговом окне Изменение связей можно выбрать из списка названия связанных таблиц и полей для связывания. Если отношение между таблицами «один-ко-многим», то слева из списка Таблица/запрос выбирается главная таблица и поле в этой таблице, а справа из списка Связанная таблица/запрос – подчиненная и соответственно поле в ней. Если отношение «один-к-одному», то порядок таблиц значения не имеет. Если вы уже устанавливали связь графически, то все поля в списке уже выбраны, и нужно только определить правила ссылочной целостности.

Для этого устанавливают флажок Обеспечение целостности данных.

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

 

Практическое задание:

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

Сделать поля Код отдела, Фамилия + имя + отчество, Оклад индексными.

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

Заполнить таблицы – справочники, добавив 5 должностей, 3 отдела, семейное положение.

Заполнить таблицу Сотрудники 10-ю записями.