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

Конспект_лекц_Кишкурно

.pdf
Скачиваний:
76
Добавлен:
09.03.2016
Размер:
2.88 Mб
Скачать

ЛЕКЦИЯ 11

БАЗЫ ДАННЫХ

Понятие «база данных» в информатике появилось в 60-х годах, когда объемы обработки информации на электронных носителях значительно выросли. И уже невозможно было, используя стандартные текстовые документы, электронные таблицы и т. п., обеспечить достижение поставленных целей.

Базы данных (БД) являются основой современных информационных систем и предназначены для выполнения двух основных задач: хранения больших объемов информации и обеспечения быстрого доступа к требуемой информации.

Любая БД содержит описание некоторой предметной области и является информационной моделью данных для реального объекта: банка, предприятия, фирмы, склада и т. п. Все составные части БД должны быть взаимосвязаны между собой и направлены на выполнение некоторой общей задачи. Например, БД крупного банка. В ней есть все необходимые сведения о клиентах, об их адресах, кредитной истории, состоянии расчетных счетов, финансовых операциях и т. д. Доступ к этой информации имеется у достаточно большого количества сотрудников банка, но среди них вряд ли найдется такое лицо, которое имеет доступ ко всей базе полностью и при этом способно единолично вносить в нее произвольные изменения. Кроме данных, база содержит методы и средства, позволяющие каждому из сотрудников оперировать только теми данными, которые входят в его компетенцию. В результате взаимодействия данных, содержащихся в базе, с методами, доступными конкретным сотрудникам, образуется информация, которой они владеют и на основании которой в пределах собственной компетенции производят вывод и редактирование данных.

11.1. Проектирование баз данных

Обычно с БД работают две категории сотрудников: проектиров-

щики и пользователи.

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

91

Рис. 11.1. Схематическое изображение иерархической БД

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

Пользователи получают БД от проектировщиков и занимаются ее наполнением и обслуживанием. Они не имеют доступа к структуре базы, а только к данным, да и то только к тем, работа с которыми предусмотрена только на этом рабочем месте.

Соответственно, и работа с базами данных имеет два режима:

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

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

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

Иерархические модели данных (рис. 11.1) представляются в виде древовидной структуры. Они обладают высокой скоростью доступа к требуемой информации в направлении от основания дерева к его вершинам и затрудненным доступом к информации в обратном направлении –

от периферии к основанию дерева.

Сетевые модели данных (рис. 11.2)

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

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

92

Рис. 11.2. Схематическое изображение сетевой БД

Однако наибольшее распространение в настоящее время получили

реляционные модели и БД (РБД).

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

В основе реляционной модели

данных лежит понятие отношения, или реляции (relation – англ. «отношение», отсюда и происходит термин «реляционные» БД).

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

В информационных моделях данных объекты одной природы, о которых надо хранить информацию в БД, иногда называют сущностью. Например, множество студентов некоторой группы, как совокупность объектов одной природы, может быть обозначено сущностью «Студенты». Свойства, характеризующие такую сущность, называют атрибутами. Например, атрибутами сущности «Студенты» могут являться: «Фамилия», «Имя», «Год рождения» и т. п. Между различными сущностями предметной области и их атрибутами могут существовать межсущностные и межатрибутные связи, необходимые для создания структуры БД как единой информационной системы.

Атрибут логически неделимый элемент, который характеризует некоторое свойство объекта. Атрибуты разделяются на атрибуты-

признаки и атрибуты-основания. Атрибут-признак является качест-

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

Группа значений атрибутов, представляющая собой экземпляр объекта, называется записью.

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

93

Таким образом, любая БД состоит из описания некоторых объектов, которые представляются записями в базе данных с определенным набором атрибутов, и содержит также информацию о связях между этими объектами.

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

11.2. Типы связей и ключей в РБД

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

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

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

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

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

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

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

94

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

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

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

Для того чтобы таблицу можно было считать отношением, должны выполняться следующие ограничения: поле, которое является первичным ключом, должно содержать уникальные значения; значения столбцов должны быть однотипными; должна соблюдаться ссылочная целостность для внешних ключей (т. е. значение поля первичного ключа должно совпадать со значением поля вторичного ключа).

11.3. Нормализация отношений в РБД

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

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

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

95

ЛЕКЦИЯ 12

CУБД MICROSOFT ACCESS 2007

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

ииспользуются такие СУБД, как dBase, FoxPro, Paradox, Access, Oracle и др. Однако несмотря на то, что они могут работать по-раз- ному с разными объектами и предоставляют пользователю различные функции и средства, большинство из них опирается на единый устоявшийся комплекс основных понятий. Это дает нам возможность рассмотреть основные приемы работы с БД на примере одной из них – СУБД Access 2007, которая входит в состав пакета прикладных про-

грамм Microsoft Office.

Система Microsoft Access входит в комплект Microsoft Office и представляет собой мощное средство для работы с БД. Основное назначение Access – создание и управление БД.

Впрограмме Access 2007 можно создавать базы данных следующих версий:

– Access 2000 (формат файла .mdb);

– Access 2002-2003 (формат файла .mdb);

– Access 2007 (формат файла .accdb).

Открывать и преобразовывать можно базы данных, созданных в более ранних версиях.

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

12.1. Объекты БД

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

Запрос – позволяет отобрать данные, удовлетворяющие заданным условиям, проанализировать их с помощью групповых операций и вычислений.

96

Форма – позволяет вводить, просматривать, изменять данные, являются средством поиска данных. С помощью форм данные можно не только вводить, но и отображать.

Отчет – предназначен для отображения данных при выводе на печать.

Пользовательский интерфейс СУБД Access реализован в виде ленточного меню с группами инструментов, контекстного меню.

12.2. Создание и модификация БД

Создать БД можно на основе готового шаблона либо «с нуля», в режиме проектирования таблиц.

Первый способ достаточно прост. Необходимо только найти шаблон, наилучшим образом отвечающий поставленной задаче.

Второй способ состоит из следующих этапов: создание структуры БД; описание структуры каждой таблицы, входящей в БД; определение связи между таблицами; ввод данных в таблицы.

После запуска программы Access 2007 появляется окно, в левой части которого список шаблонов, доступных для вашего компьютера, в середине из Интернета. Справа – список последних баз данных; в центре новая база данных.

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

После открытия базы данных Access автоматически активизирует заготовку новой Таблицы только с одним именем поля Код. Если ввести значение в пустой столбец, то появится новое имя поля Поле1. Access автоматически будет определять тип данных в зависимости от того, что вы будете вводить. Не распознанным данным присваивается тип Текстовый.

Переименовывать, удалять, вставлять поля можно с помощью контекстного меню поля (щелчком ПКМ по имени поля).

12.3. Создание таблиц в режиме конструктора

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

97

Конструктор таблиц на вкладке Создание в группе инструментов

Таблицы.

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

Имя поля состоит из комбинации букв, цифр, пробелов и специальных символов, за исключением: «.», «!», «'», «[ ]». Максимальная длина имени – 64 символа с учетом пробелов. Для элементов управления, которые могут быть расположены на формах и отчетах БД – не более 255 символов.

Тип данных определяется видом хранимой в поле информации.

Для хранения больших текстов рекомендуется выбирать тип данных Поле MEMO, который допускает запись текстов объемом до 64 Кбайт. Для телефонных, инвентарных и других номеров, которые не используются в математических вычислениях, вместо числового типа выбирают текстовый тип данных.

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

Логический – используется в том случае, когда данные могут принимать только значения «да» или «нет» («включено» или «выключено» и т. п.).

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

Поле объекта OLE (Object Linking and Embading – англ. «связь и внедрение объектов») – для хранения мультимедийных объектов (рисунков, звуков, видео и т. п.).

Внимание! Поля типов OLE и MEMO не могут быть ключевыми. При вводе типа данных одновременно можно задать свойства по-

ля, не совпадающие со значением, присваиваемым Access по умолчанию. К ним относятся:

Размер поля – определяет размер поля для числовой и текстовой информации;

Формат поля – определяет формат представления и внешний вид данных в поле;

98

Маска ввода – задает шаблон для ввода однотипных данных в поле (можно вызвать Мастер Создание масок ввода щелчком мыши по соответствующей кнопке);

Подпись – вводит название поля, которое появляется для него при просмотре таблицы в Режиме таблицы (иначе название поля будет совпадать с именем поля, присвоенного ему в режиме Конструктор);

Значение по умолчанию – задает значение поля в автоматическом режиме при вводе в него новых записей;

Условие на значение – задает условие, которое должно выполняться при вводе данных в это поле, иначе будет выдано сообщение об ошибке;

Индексированное поле – принимает значение Да для ключевых полей и Нет для всех других.

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

Для таблицы «Студенты» зададим следующие поля и их типы, представленные в табл. 12.1.

 

 

Таблица 12.1

Имена полей таблицы «Студенты», их типы данных и свойства

 

 

 

Имя поля

Тип данных

Свойства

 

 

 

Фамилия

Текстовый

255

№ зачетной книжки

Текстовый

6

 

 

 

Дата рождения

Дата/время

Краткий формат

 

 

 

Фотография

Поле объекта OLE

 

 

 

Мобильный телефон

Текстовый

12

 

 

 

№ группы

Текстовый

6

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

Поле «№ зачетной книжки» является первичным ключом этой таблицы. При необходимости можно удалить или заменить первичный ключ. Для этого необходимо выделить поле и нажать на кнопку

99

Ключевое поле. Индикатор ключа удаляется из поля, которое ранее было задано в качестве первичного ключа.

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

Если при создании структуры таблицы первичный ключ не был установлен, то при ее сохранении будет предложено создать этот ключ. Если ответить Да, приложение Access 2007 создаст поле Код с типом данных Счетчик для сохранения уникального значения для каждой записи. Если в таблице уже есть поле с таким типом данных, оно будет использовано в качестве первичного ключа. Можно ответить Нет, в этом случае таблица будет сохранена без первичного ключа.

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

Если при создании макета таблицы были допущены ошибки, то их можно исправить (используя контекстное меню либо соответствующие кнопки), например: порядок расположения полей в таблице можно изменить перетягиванием строки с помощью мыши на нужное место; удалить поле – используя клавишу «Del» либо используя контекстное меню.

12.4. Организация связей между таблицами

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

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

Для открытия диалогового окна Схема данных необходимо вы-

брать на вкладке Работа с базами в группе Показать или скрыть кнопку Схема данных.

100