Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Microsoft Access

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

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

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

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

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

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

Значения свойств полей здаются: для элементов управления - в окне свойств; для полей - в окне свойств в режиме конструктора таблицы или в окне запроса (в окне свойств списка полей) в макросе или в программе Visual Basic.

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

Рассмотрим подробнее некоторые свойства полей:

Свойство "Формат поля" позволяет указать форматы вывода текста, чисел, дат и значений времени на экран и на печать. Например, для поля "Цена" разумно указать в свойстве Формат поля (Format) формат "Денежный" и установить для его свойства Число десятичных знаков (DecimalPlaces) значение 2 или "Авто". В этом случае введенное в поле значение 4321,678 будет отображаться как 4 321,68р. Свойство Формат поля (Format) определяет только способ отображения данных. Оно не влияет на способ их сохранения.

Свойство "Индексированное поле" (Indexed) определяет индекс, создаваемый по одному полю. Индекс ускоряет выполнение запросов, в которых используются индексированные поля, и операции сортировки и группировки. Например, если часто выполняется поиск по полю "Фамилия" в таблице "Сотрудники", следует создать индекс для этого поля.

Значение данного свойства можно задать только в окне свойств в режиме конструктора таблицы. Индекс по одному полю может быть определен путем установки свойства Индексированное поле (Indexed). Кроме того, можно выбрать команду Индексы в меню Вид или нажать кнопку "Индексы" на панели инструментов. Будет открыто окно индексов.

Вкладка Подстановка на бланке свойств поля используется для указания элемента управления, используемого по умолчанию для отображения поля. После выбора элемента управления на вкладке Подстановка выводятся все дополнительные свойства, необходимые для определения конфигурации элемента управления. Microsoft Access задает значения этих свойств автоматически, если в режиме конструктора таблицы для поля в столбце "Тип данных" выбирается "Мастер подстановок". Значения данного свойства и относящиеся к нему типы элементов управления влияют на отображение поля как в режиме таблицы, так и в режиме формы.

 

Рассмотрим некоторые из этих дополнительных свойств:

Свойство "Тип элемента управления" (DisplayControl) содержит раскрывающийся список типов элементов управления, доступных для выбранного поля. Для полей с типами "Текстовый" или "Числовой" для данного свойства возможен выбор поля, списка или поля со списком. Для логических полей возможен выбор поля, поля со списком или флажка.

Свойства "Тип источника строк" (RowSourceType), "Источник строк" (RowSource) определят источник данных для списка или поля со списком. Например, для того чтобы вывести в строках списка данные из запроса "Список клиентов", следует выбрать для свойства Тип источника строк значение "Таблица/запрос" и указать в свойстве Источник строк имя запроса "Список клиентов".

Если список должен содержать небольшое число значений, которые не должны изменяться, можно выбрать в свойстве Тип источника строк (RowSourceType) "Список значений" и ввести образующие список значения в ячейку свойства Источник строк (RowSource). Элементы списка отделяются друг от друга точкой с запятой.

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

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

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

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

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

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

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

 

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

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

 
 

отношение "многие-ко-многим": каждый сотрудник может работать в нескольких отделах и каждый отдел может иметь нескольких сотрудников.

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

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

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

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

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

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

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

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

Заключение

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

Дать задание на самостоятельную работу (отводимое время 1 час):

ó с целью более глубокого освоения материала повторить и более подробно изучить рассмотренную трехуровневую архитектуру СУБД. Литература: [1] с. 45…47, [2] с. 33…38, конспект лекций,

ó с целью более глубокого освоения материала повторить и более подробно изучить функциональные возможности типовой СУБД. Литература: [1] с. 47…50, [2] с. 38…61, конспект лекций.

При необходимости ответить на возникшие вопросы.

 

<== предыдущая лекция | следующая лекция ==>
Основные характеристики MySQL | Препараты для борьбы с вредителями декоративных растений
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 609; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.031 сек.