Реляционная модель

В реляционной модели (рис. 1.3) данные представляются в виде таблиц, состоящих из строк и столбцов. Каждая строка таблицы – информация об одном конкретном объекте, столбцы содержат свойства этого объекта. Взаимоотношения между объектами задаются с помощью связей между столбцами таблиц. Реляционная модель на сегодняшний день наиболее распространена. Она достаточно универсальна и проста в проектировании.

Объектная модель

В этой модели данные представляются в форме объектов. Объект имеет набор свойств, называемых атрибутами, и может включать в себя также процедуры для обработки данных, которые называют методами. Объекты, имеющие одинаковые наборы атрибутов и различающиеся только их значениями, образуют некоторый класс объектов. Например, класс «клиент» может иметь следующие атрибуты: «фамилия», «имя», «отчество», «номер кредитной карты».

Для каждого объекта из этого класса определены конкретные значения перечисленных атрибутов. Говорят, что объект является экземпляром класса. На основе существующего класса могут создаваться новые, наследующие свойства исходного. При этом исходный класс именуется родителем нового класса. Производный класс называют потомком исходного. При этом объекты – экземпляры класса-потомка принадлежат также и родительскому классу, поскольку обладают всеми его атрибутами. Пример: на основе класса «клиент» может быть определен класс «постоянный клиент». Новый класс наследует атрибуты родительского и при этом добавляется новый атрибут – «процент скидки». Все постоянные клиенты продолжают оставаться клиентами в прежнем понимании, но о них имеется еще и дополнительная информация. В настоящее время не существует единого подхода к реализации объектных баз данных. Объектный подход – набор общих принципов, которые могут применяться при проектировании различных приложений.

Гибридные модели

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

В данном пособии мы будем рассматривать реляционные БД.

Информация в реляционных БД хранится в виде двумерных таблиц. В каждой таблице содержатся сведения о наборе объектов определенного типа (людях, товарах и т.д.). Строки таблицы называются записями. Любая запись в таблице содержит информацию об отдельном объекте (человеке, товаре). Столбцы таблицы называются полями. В нем содержится информация о каком-либо свойстве описываемых объектов. Все записи состоят из одинакового набора полей.

Например, если таблица содержит сведения о студентах, то в каждой ее записи (строке) хранится информация о конкретном студенте (объекте). В одно поле (столбец) помещается его код, в другое — номер учебной группы, в третье — фамилия и т.д. Значения в каждом поле относятся к одному типу данных: числа, строки символов, даты (см. рис.1.4).

Свойства объекта - поля

 


КодСч Фамилия Имя Отчество Специальность Курс Группа
1 Иванова Елена Петровна МГТ 1 107

Сам объект (Иванова Елена Петровна) - запись

Рис. 1.4

Пересечение отдельной записи и отдельного поля называется ячейкой, а сами данные в отдельной ячейке называются значением в поле или элементом таблицы. В каждой ячейке указываются значения свойств объекта: какая именно фамилия, какое именно имя и т.д.

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

1.2. Система управления базами данных Access

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

Что представляет собой современная СУБД?

Полномасштабная СУБД состоит из трех интегрированных комплексов программных продуктов, которые обеспечивают практически любую потребность заказчика, а также поддерживающих их комплекс услуг:

1. Комплекс базы

2. Комплекс инструментов

3. Комплекс приложений

Главные задачи, которые решает СУБД:

– Хранение данных

– Поддержание целостности данных

– Предоставление инструментария для манипулирования данными

Основные функции СУБД

К основным функциям, выполняемым системами управления базами данных, обычно относят следующие:

1. Непосредственное управление данными во внешней памяти включает в себя обеспечение необходимых структур внешней памяти как для хранения непосредственных данных, так и для служебных целей.

2. Управление буферами оперативной памяти.

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

3. Управление транзакциями.

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

4. Сохранение целостности данных – журнализация и протоколирование.

СУБД должна быть в состоянии восстановить последнее согласованное состояние базы данных после аппаратного или программного сбоя. Это требует избыточности хранения данных, причем та их часть, которая используется для восстановления, должна храниться особо надежно. Наиболее распространенный метод поддержания такой избыточности - это ведение журнала изменений базы данных. Во всех случаях придерживаются “упреждающей “ записи в журнал (протокол WAL). Эта стратегия заключается в том, что запись об изменении любого объекта базы данных должна попасть во внешнюю память журнала раньше, чем она попадет во внешнюю память основной части базы данных.

5. Поддержка языков баз данных

Для работы с БД используются специальные языки, называемые языками баз данных. Чаще всего выделяются два: язык определения схемы БД (SDL - Shema Defininatiоn Language) и язык манипулирования данными (DML - Data Manipulation Language). В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с базой данных, обеспечивающий базовый пользовательский интерфейс с базами данных. Стандартным языком в наиболее распространенных реляционных СУБД является язык SQL. Прежде всего он сочетает средства SDL и DML, т.е. позволяет определять схему реляционной базы данных и манипулировать данными.

Одной из наиболее распространенных СУБД для персонального компьютера является СУБД Access, входящая в состав пакета Microsoft Office. В отличие от других СУБД, рассчитанных на профессиональных программистов, освоить Access и эффективно использовать его в своей работе вполне по силам и обычному пользователю, не знающему программирования.

Access позволяет пользователю решать следующие задачи:

– создавать БД и вводить в нее данные;

– просматривать и редактировать содержимое таблиц;

– устанавливать связи между таблицами;

– обеспечить защиту целостности и секретность данных;

– выполнять различные запросы к данным;

– представлять информацию в виде форм и отчетов;

– вставлять в формы и отчеты рисунки и графики;

– осуществлять операции импорта и экспорта данных;

– публиковать БД на web-страницах в Internet;

– создавать собственные программы для работы с БД, содержащие меню, диалоговые окна и командные кнопки;

– обеспечивать многопользовательский режим доступа к информации, хранящейся в БД.

1.3. Объекты Access

Отдельные компоненты БД, которые используются для хранения и представления информации, называются объектами. Каждый объект имеет имя, которое может содержать до 64 символов, включая пробелы. В Access основными объектами являются: таблицы, запросы, формы, отчеты, макросы и модули.

Таблица используется для хранения информации в БД. Запрос позволяет выбрать нужные данные из одной или нескольких таблиц. С помощью запросов можно модифицировать существующие таблицы, а также создавать новые таблицы. Форма используется для ввода данных в таблицу и для просмотра в заданном формате данных из таблицы или запроса. С ее помощью можно также запустить на выполнение макрос или процедуру. Отчет предназначен для создания документа на основе данных из таблицы или запроса. Этот документ можно распечатать или включить в документ другого приложения, например, Word или Excel. Макрос представляет собой описание стандартных действий, которые нужно выполнить в ответ на определенное событие. Например, можно определить макрос, который в ответ на выбор некоторого элемента в одной форме открывает другую форму. Модуль — это программа, написанная на языке Visual Basic for Applications (VBA). Использование модулей позволяет автоматизировать выполнение сложных действий, которые нельзя описать с помощью макросов.

Для создания таких объектов, как: таблицы, запросы, формы или отчеты можно использовать специальные средства — мастера. Мастер задает пользователю вопросы и создает объект в соответствии с его ответами.


Глава 2. Построение базы данных

2.1. Основные принципы проектирования БД

Создание БД должно начинаться с ее проектирования, которое включает следующие основные этапы:

1. Определение назначения БД - формируем список задач, решаемых с ее помощью, и определяем необходимые данные.

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

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

– Каждому из таких наборов данных должна соответствовать отдельная таблица. Например, сведения о студентах и о полученных ими оценках в сессию должны храниться в разных таблицах. Тогда при удалении сведений об оценках студента информация о нем останется в БД.

– Информация в таблице не должна дублироваться. Не должно быть повторений и между таблицами. Это исключает возможность несовпадения информации в разных таблицах и делает работу с БД более эффективной.

3.Определение полей. Каждая таблица содержит информацию о наборе объектов одного типа. При разработке полей для таблицы необходимо помнить следующее:

– В таблице должна присутствовать вся необходимая информация о данном наборе объектов.

– Каждое поле должно содержать сведения о том или ином свойстве именно этого, а не других наборов объектов. Исключением могут являться поля, используемые для связи с другими таблицами.

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

– Информацию следует разбивать на наименьшие логические единицы. Например, в таблицу со сведениями об адресах студентов лучше включить поля Общежитие и Комната, а не общее поле Адрес. Это даст возможность осуществить в БД поиск студентов, живущих в данной комнате, или произвести сортировку записей по номерам комнат.

4. Определение ключевых полей. Для того чтобы Access мог связать данные из разных таблиц, каждая таблица должна содержать первичный ключ, или просто ключ - одно или несколько полей, совокупность значений которых однозначно определяет каждую запись в таблице. Наличие ключа в таблице исключает возможность появления в ней двух одинаковых записей. При создании новой таблицы Access предлагает построить ключ путем добавления дополнительного поля с уникальными значениями.

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

 

2.2. Создание новой базы данных

Для создания БД нужно, прежде всего, запустить уже упомянутую выше программу MS Access 2007 и выбрать в меню одну из предлагаемых возможностей либо один из предлагаемых шаблонов – Основные фонды, Учащиеся, События и т.д., либо - команду Новая база данных (см. рис. 2.1). В этом случае слева будет открыто диалоговое окно Создание.

Рис.2.1.

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

Рис.2.2

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

Для создания таблицы нужно щелкнуть по вкладке Создание главного меню окна БД, а затем — по кнопке Таблица. Access 2007 открывает окно Новая таблица и предлагает два способа создания таблицы - Режим таблицы (непосредственный ввод) и Конструктор (рис.2.3).

Рис.2.3.

Рассмотрим их подробнее:

1. Режим таблицы

При выборе варианта Режим таблицы появляется заготовка таблицы, содержащая 2 строки и 2 столбца - Код поля и Добавить поле (см. рис. 2.4.)

Рис. 2.4.

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

Использование режима таблицы не позволяет установить нужные свойства полей. Для этого следует перейти в режим конструктора таблицы, вызываемый нажатием кнопки Конструктор окна БД.

2. Режим конструктора

При создании таблицы в этом режиме на экране вы увидите такое окно (см. рис. 2.5).

Рис.2.5.

В верхней его части находится пустой бланк таблицы, содержащей три графы: Имя поля, Тип данных и Описание. Для создания таблицы нужно заполнить, по крайней мере, две из них: Имя поля и Тип данных. В нижней части окна расположены графы, позволяющие настроить Свойства поля – его размер, формат и др. (см. рис. 2.6.).

Рис. 2.6.

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

– ввести имя поля таблицы (до 64 алфавитно-цифровых символов, включая пробелы);

– определить тип данных поля (текстовый или, раскрыв список, выбрать нужный тип данных);

– ввести описание поля (необязательно) - пояснительный текст о содержащихся в поле данных;

– задать свойства поля (необязательно) – позволяют задавать условия хранения и отображения данных.