Объекты базы данных

СУБД Microsoft Access

Кроме таблиц база данных может содержать и другие типы объектов. Привести полную классификацию возможных объектов баз данных затруднительно, поскольку каждая система управления базами данных может реали­зовать свои типы объектов. Однако основные типы объектов мы можем рассмотреть на примере СУБД Microsoft Access, которая относится к системам, ориентированным на пользователя.

Таблицы – это основные объекты любой базы данных; информационная модель реальной системы. Во-первых, в таблицах хранятся все данные, имеющиеся в базе, а во-вторых, таблицы хранят и структуру базы (поля, их типы и свойства).

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

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

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

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

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

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

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

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

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

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

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

Страницы – это специальные объекты баз данных, реализованные в последней вер­сии СУБД Microsoft Access. Правда, более корректно их называть страницами доступа к данным. Физически это особый объект, выполненный в коде HTML, размещаемый на Web-странице и передаваемый клиенту вместе с ней. Сам по себе этот объект не является базой данных, но содержит компоненты, через кото­рые осуществляется связь переданной Web-страницы с базой данных, остающейся на сервере. Пользуясь этими компонентами, посетитель Web-узла может просматривать записи базы в полях страницы доступа. Таким образом, страницы доступа к данным осуществляют интерфейс между клиентом, сервером и базой данных, размещенной на сервере. Эта база данных не обязательно должна быть базой данных Microsoft Access. Страницы доступа, созданные средствами Microsoft Access, позволяют работать также с базами данных Microsoft SQL Server.

Разработчик базы данных имеет также два типа дополнитель­ных объектов: макросы и модули. Эти категории объектов предназначены как для автоматизации повторяющихся операций при работе с системой управления базами данных, так и для создания новых функций путем программирования. Эти объекты создают в тех случаях, когда стандартных средств управления базой данных оказывается недостаточно для выполнения операций, необхо­димых заказчику системы. С помощью макросов создают мак­рокоманды, упрощающие наиболее утомительные операции с базой, а с помощью модулей, написанных на языке програм­мирования Visual Basic, создают программные процедуры для выполнения нестандартных операций.

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

Модули – это программные процедуры, написанные на каком-либо языке программирования, создаются в других программах (средствами внеш­него языка программирования, например, языка Visual Basic for Applications). Это одно из средств, с помощью которых разработчик базы может заложить в нее нестандартные функциональные возможности, удовлетворить специфические требо­вания заказчика, повысить быстродействие системы управления, а также уровень ее защищенности.

 

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

Данные в базах хранятся в виде таблиц.

Мы знаем, что структуру двумерной таблицы образуют столбцы и строки. Их анало­гами в структуре простейшей базы данных являются поля (столбцы таблицы) и записи (строки таблицы). Если записей в таблице пока нет, значит, ее структура образована только набором полей. Изменив состав полей базовой таблицы (или их свойства), мы изменяем структуру базы данных и, соответственно, получаем новую базу данных.

Таблица – информационная модель реальной системы.

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

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

Уникальное (ключевое) поле – это поле, значения в котором не могут повторяться (например, номер телефона).

Ключевое поле (первичный (главный) ключ) – очевидный кандидат для создания связей; это поле, значение которого однозначно определяет запись в таблице.

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

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

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

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

 

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

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

Перечислим основные свойства полей таблиц баз данных на примере СУБД Microsoft Access:

- Имя поля – определяет, как следует обращаться к данным этого поля при авто­матических операциях с базой (по умолчанию имена полей используются в качестве заголовков столбцов таблиц).

- Тип поля – определяет тип данных, которые могут содержаться в данном поле.

- Размер поля – определяет предельную длину (в символах) данных, которые могут размещаться в данном поле.

- Формат поля – определяет способ форматирования данных в ячейках, принад­лежащих полю.

- Маска ввода – определяет форму, в которой вводятся данные в поле (средство автоматизации ввода данных).

- Подпись – определяет заголовок столбца таблицы для данного поля (если подпись не указана, то в качестве заголовка столбца используется свойство Имя поля).

- Значение по умолчанию – то значение, которое вводится в ячейки поля авто­матически (средство автоматизации ввода данных).

- Условие на значение – ограничение, используемое для проверки правильности ввода данных (средство автоматизации ввода, которое используется, как пра­вило, для данных, имеющих числовой тип, денежный тип или тип даты).

- Сообщение об ошибке – текстовое сообщение, которое выдается автоматически при попытке ввода в поле ошибочных данных (проверка ошибочности выпол­няется автоматически, если задано свойство Условие на значение).

- Обязательное поле – свойство, определяющее обязательность заполнения дан­ного поля при наполнении базы;

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

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

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

Для каждого поля определяется тип и формат данных. Так, например, базы данных Microsoft Access работают со следующими типами данных.

- Текстовый – тип данных, используемый для хранения обычного неформатиро­ванного текста ограниченного размера (до 255 символов).

- Поле Мемо – специальный тип данных для хранения больших объемов текста (до 65 535 символов). Физически текст не хранится в поле. Он хранится в другом месте базы данных, а в поле хранится указатель на него, но для пользователя такое разделение заметно не всегда.

- Числовой – тип данных для хранения действительных чисел.

- Дата/время – тип данных для хранения календарных дат и текущего времени.

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

- Счетчик – специальный тип данных для уникальных (не повторяющихся в поле) натуральных чисел с автоматическим наращиванием. Естественное использо­вание – для порядковой нумерации записей.

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

- Поле объекта Ole – специальный тип данных, предназначенный для хранения объектов Ole, например мультимедийных. Реально, конечно, такие объекты в таблице не хранятся. Как и в случае полей MEMO, они хранятся в другом месте внутренней структуры файла базы данных, а в таблице хранятся только указа­тели на них (иначе работа с таблицами была бы чрезвычайно замедленной).

- Гиперссылка – специальное поле для хранения адресов URL Web-объектов Интернета. При щелчке на ссылке автоматически происходит запуск браузера и воспроизведение объекта в его окне.

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


Виды логической связи между таблицами

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

Существуют следующие типы информационных связей:

- один-к-одному;

- один-ко-многим;

- многие-ко-многим.

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

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

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