Базы данных


Содержание

База данных — это что такое? Базы данных и их предназначение

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

СУБД – термины и определения

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

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

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

Сравнение Access и Excel

Какие же преимущества имеют БД перед другими хранилищами информации, например, электронными таблицами, текстовыми редакторами и так далее? Для сравнения лучше всего подходят база данных Access и электронные таблицы Excel. Такой выбор обусловлен тем, что оба приложения входят в один пакет и применяются для хранения данных. Access – это, по сути, бесплатная база данных, идущая бонусом к текстовому редактору Word и таблицам Excel.

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

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

Количество строк в Excel не может превышать 65536, в Access же количество записей вообще не ограничено. Существует только лимит на общий размер файла – не более 2Гб.

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

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

Классификация баз данных

Базы данных можно разделить по 4 признакам:

1. Применяемый язык программирования. Открытые базы опираются на один из универсальных языков. В замкнутых базах используются собственный язык программирования.

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

3. Сфера применения. Различают универсальные БД и специализированные, предназначенные для решения конкретных задач.

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

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

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

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

Модели баз данных

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

1. Иерархическая модель может быть представлена в виде дерева. На первом уровне расположен один объект. Ниже располагаются подчиненные ему объекты 2-го уровня. Каждый объект может иметь несколько подчиненных ему низшего уровня, но всегда связан только с одним объектом уровня выше. Примером иерархической модели служит операционная система Windows.

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

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

Реляционная модель баз данных

Большинство современных СУБД используют реляционную модель построения базы данных.

1. Все таблицы имеют одинаковую структуру.

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

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

Сфера применения баз данных

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

Access – сама распространенная БД

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

Краткий обзор Access

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

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

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

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

Отчет — это шаблон документа, при открытии которого в него вносятся данные из запроса или таблицы. В Access создана гибкая система обмена данными, прежде всего между различными приложениями пакета Office. Данные из Access легко переносятся в Word или Excel. После чего их можно отправить по электронной почте, провести необходимые вычисления и опять экспортировать в Access.

База данных – это еще и среда программирования. В Access встроен мощный язык программирования – Visual Basic for Application(VBA). Он позволяет создавать достаточно сложные приложения, в том числе и для коммерческого применения.

Тенденции развития баз данных

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

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

Базы данных

12.1. Понятие о базах данных

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

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

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

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

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

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

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

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

12.2. Типы баз данных

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

В иерархической БД существует упорядоченность элементов в записи, один элемент считается главным, остальные – подчиненными. Данные в записи упорядочены в определенную последовательность, как ступеньки лестницы, и поиск данных может осуществляться лишь последовательным «спуском» со ступеньки на ступеньку. Поиск какого-либо элемента данных в такой системе может оказаться довольно трудоемким из-за необходимости последовательно проходить несколько предшествующих иерархических уровней. Иерархическую БД образует каталог файлов, хранимых на диске; дерево каталогов, доступное для просмотра в Norton Commander, – наглядная демонстрация структуры такой БД и поиска в ней нужного элемента (при работе в операционной системе MS-DOS). Такой же базой данных является родовое генеалогическое дерево.

Рисунок 12.1. Иерархическая модель базы данных

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

Рисунок 12.2. Сетевая модель базы данных

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

Рисунок 12.3. Реляционная модель базы данных

Совокупность БД и программы СУБД образует информационно-поисковую систему, называемую банком данных.

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

2. По способу доступа к данным базы данных делятся на базы данных с локальным доступом и базы данных с удаленным (сетевым доступом). Системы централизованных баз данных с сетевым доступом предполагают различные архитектуры таких систем: файл-сервер; клиент-сервер.

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

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

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

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

Различают 2 класса СУБД:

1) системы общего назначения;

2) специализированные системы.

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

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

Современные СУБД имеют следующие возможности:

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

2) позволяют вставлять, удалять, обновлять и извлекать информацию из базы данных посредством языка запросов (SQL);

3) большинство СУБД могут работать на компьютерах с разной архитектурой и под разными операционными системами;

4) многопользовательские СУБД имеют развитые средства администрирования баз данных.

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

Для работы с базой данных СУБД должна обеспечивать:

• возможность внесения и чтения информации;

• работу с большим объемом данных;

• быстроту поиска данных;

• целостность данных (их непротиворечивость);

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

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

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

На рынке программного обеспечения можно выделить такие наиболее востребованные СУБД, как Microsoft Access, Microsoft Visual FoxPro, Borland dBase, Borland Paradox, Oracle, MySQL.

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

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

К областям применения Microsoft Access можно отнести следующие:

• в малом бизнесе (бухгалтерский учет, ввод заказов, ведение информации о клиентах, ведение информации о деловых контактах);

• в работе по контракту (разработка внутриотраслевых приложений, разработка межотраслевых приложений);

• в крупных корпорациях (приложения для рабочих групп, системы обработки информации);

• в качестве персональной СУБД (справочник по адресам, ведение инвестиционного портфеля, поваренная книга, каталоги книг, пластинок, видеофильмов и т. п.).

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

База данных (БД, data base, DB) – совокупность взаимосвязанных данных, используемых под управлением СУБД.

В самом общем смысле база данных – это набор записей и файлов, организованных специальным образом.

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

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

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

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

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

12.5. Архитектура Microsoft Access

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

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

2. Запрос. Объект, который позволяет пользователю получить нужные данные из одной или нескольких таблиц. Для создания запроса можно использовать бланк QBE (запрос по образцу) или инструкции SQL (структурированный язык запросов). Можно создать запросы на выборку, обновление, удаление или добавление данных. С помощью запросов можно также создавать новые таблицы, используя данные из одной или нескольких существующих таблиц.

3. Форма. Объект, предназначенный в основном для ввода данных, отображения их на экране или управления работой приложения. Формы можно также распечатать.

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

5. Макрос. Объект, представляющий собой структурированное описание одного или нескольких действий, которые должен выполнить Access в ответ на определенное событие.

6. Модуль. Объект, содержащий программы, написанные на языке Visual Basic для приложений.

Событие – любое изменение состояния объекта Microsoft Access. Например, событием является открытие формы, закрытие формы, ввод новой строки в форму, изменение содержимого текущей записи или элемента управления (объекта формы или отчета, который может содержать данные). Для обработки события вы можете создать макрос или процедуру Visual Basic для приложений.

12.6. Создание базы данных

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

Для создания пустой базы данных выберите команду Файл—>Создать (кнопка

), а затем в окне диалога Создание щелкните дважды по значку Новая база данных. После этого откроется окно диалога Файл новой базы данных. В раскрывающемся списке Папка выберите нужный диск и папку, например, диск С:, папка Мои документы. После этого в поле Имя файла введите имя новой базы данных. Access автоматически добавит к имени файла расширение. MDB. Теперь остается только нажать на кнопку Создать и на экране появится окно базы данных, представленное на рис. 12.1.

Рисунок 12.4. Главное окно базы данных

Создание новой пустой таблицы

В Microsoft Access существуют четыре способа создания пустой таблицы:

1. Мастер по созданию базы данных позволяет создать сразу все таблицы, формы и отчеты в базе данных. Этот мастер создает новую базу данных; его нельзя использовать для добавления новых таблиц, форм или отчетов в существующую базу данных.

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

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

4. В режиме конструктора можно непосредственно указать параметры всех элементов структуры таблицы.

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

Для примера определим таблицу твузы для базы данных «Профконсультант средней школы». Перейдите на вкладку Таблицы и нажмите кнопку Создать. В окне диалога Новая таблица выберите Конструктор и нажмите кнопку Ok. Access выведет окно пустой таблицы в режиме конструктора. На рис. 12.2 показана таблица твузы в режиме таблицы с уже определенными полями.

Рисунок 12.5. Окно таблицы базы данных в режиме Таблицы

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

Размер текстового поля может находиться в пределах от 1 до 255 символов.

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

байт – целые числа в пределах от 0 до 255;

целое – целые числа от –32768 до 32767;

длинное целое – целые числа от – 2147483648 до 2147483647;

с плавающей точкой (4 байта) – числа в пределах от –3,402823ЕЗ8 до 3,402823ЕЗ8;

с плавающей точкой (8 байт) – числа в пределах от 1,79769313486232ЕЗ08 до 1,79769313486232ЕЗ08;

Для типа данных Дата/Время существует набор форматов поля, приведенный ниже вместе с примерами:

По умолчанию денежный формат представляет собой числа, записанные с двумя знаками после запятой, с разделением групп разрядов и обозначением «р.» в конце. Пользователь может записать в строке Формат поля шаблон для своего формата. Допустим, необходимо вводить суммы в долларах. Тогда надо установить курсор на слово Денежный и заменить его шаблоном формата, например таким: # ###$.

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

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

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

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

Поле объекта OLE (Object Linking and Embedding) – последний выбираемый из списка тип поля. Он имеет всего два свойства: подпись и параметр «обязательное поле». Поля данного типа не хранят информацию как таковую, а содержат ссылки на объекты, которые могут быть включены в БД с использованием OLE-протокола обмена данными. Такими объектами могут быть, например, графические файлы.

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

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

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

Адрес – это текст, задающий путь и имя файла для открываемого документа. Путь может представлять собой путь к файлу, записанному на жестком диске, являться адресом в формате UNC или адресом URL в Интернете.

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

12.7. Многотабличные базы данных. Отношения между таблицами

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

1. Отношение «один к одному» означает, что каждая запись в одной таблице соответствует только одной записи в другой таблице. Одному гражданину страны соответствует только один номер паспорта, в то же время как один номер паспорта соответствует только одному человеку.

2. Отношение «один ко многим» означает, что каждой записи в одной таблице соответствует одна или несколько записей в другой таблице. Один абитуриент может поступать во многие вузы и в тоже время в один вуз может поступать много абитуриентов.

3. Отношение «многие ко многим» возникает между двумя таблицами в тех случаях, когда:

• одна запись из первой таблицы может быть связана более чем с одной записью из второй таблицы;

• одна запись из второй таблицы может быть связана более чем с одной записью из первой таблицы.

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

В большинстве случаев любые две таблицы связаны отношением «один – ко многим».

Создание связей между таблицами

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

1. Таблица тАбитуриенты:

КодАб является ключевым полем.

2. Таблица пересечения тСвязьАбВУЗ:

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

Рисунок 12.6. Схема данных

Чтобы определить связи, необходимо использовать команду Сервис->Схема данных (кнопка

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

). После этого окно Схемы данных должно выглядеть примерно так, как показано на рис. 3 (кроме линий соединения). Чтобы установить связь между таблицами твузы и тСвязьАбвуз, надо выделить поле Кодвуза в таблице твузы (щелкнуть левой кнопкой «мыши»), перетащить и опустить его на поле Кодвуза в таблице тСвязьАбвуз. Аналогично устанавливается связь между двумя другими таблицами.

Когда вы отпустите кнопку мыши, Microsoft Access откроет окно диалога Связи, представленное на рис. 12.7.

Рисунок 12.7. Настройка связей между полями таблиц

После установки флажка Обеспечение целостности данных, Access делает доступными еще два флажка: Каскадное обновление связанных полей и Каскадное удаление связанных записей. При установленном флажке Каскадное обновление связанных полей Microsoft Access обновляет все значения чужих ключей в дочерних таблицах (то есть в таблицах на стороне отношения «многие» при связи «один ко многим») при изменении значения первичного ключа в родительской таблице, которая находится на стороне отношения «один» при связи «один ко многим». Если же вы установите флажок Каскадное удаление связанных записей, Microsoft Access удалит дочерние строки (связанные строки в дочерних таблицах) при удалении родительской строки (связанная строка в родительской таблице). Установите флажок Каскадное обновление связанных полей, чтобы при изменении кода вуза Access автоматически обновлял записи в таблице тСвязьАбвуз.

После нажатия кнопки Создать Access создаст связь и нарисует линию между двумя таблицами, указывающую на наличие связи между ними. Заметьте: когда вы просите обеспечить целостность данных, Access изображает на конце линии у таблицы, находящейся на стороне отношения «один», цифру 1, а на другом конце у таблицы со стороны отношения «многие» – символ бесконечности. Чтобы удалить связь, щелкните по ее линии и нажмите клавишу Del. Если вы хотите отредактировать или изменить существующую связь, дважды щелкните по соответствующей линии, чтобы снова открыть окно диалога Связи.

12.8. Работа с данными при помощи запросов

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

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

Выбор данных из одной таблицы

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

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

Рисунок 12.8. Запрос в режиме Конструктор

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

Если была выполнена команда Вид->Имена таблиц, во второй строке бланка запроса Access выведет имя таблицы, из которой выбрано поле. В третьей строке бланка можно задать сортировку по возрастанию или по убыванию.

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

Для ввода условия отбора записей используется строка Условие отбора и строки или. На рис. 12.5 показан запрос на выборку фамилий тех студентов, которые имеют оценки от 4 до 5 баллов.

Включение полей в запрос

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

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

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

«+» – складывает два арифметических выражения;

«– » – вычитает из первого арифметического выражения второе;

«*» – перемножает два арифметических выражения;

«/» – делит первое арифметическое выражение на второе;

«\» – округляет два арифметических выражения до целых значений и делит первое на второе, результат округляется до целого;

«^» – возводит первое арифметическое выражение в степень, задаваемую вторым арифметическим выражением;

«MOD» – округляет оба арифметических выражения до целых значений, делит первое на второе и возвращает остаток;

«&» – создает текстовую строку как результат присоединения второй строки к концу первой. Если один из операндов является числом, то оно автоматически преобразуется в строку символов.

На рис. 12.9 показан пример вычисляемого поля для таблицы тАттестат. Вычисляемое поле Среднее выводит средний балл по трем предметам: Русский, Математика, Физика.

Рисунок 12.9. Вычисляемое поле

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

чтобы в бланке QBE появилась строка Групповые операции.

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

Итоговые функции Access:

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

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

Min – возвращает наименьшее значение, найденное в этом поле внутри каждой группы.

Max – возвращает наибольшее значение, найденное в этом поле внутри каждой группы.

Count – возвращает число записей, в которых значения данного поля отличны от Null.

Илон Маск рекомендует:  Что такое код asp logfilelocaltimerollover

StDev – стандартное отклонение всех значений данного поля в каждой группе.

Var – вычисляет дисперсию значений данного поля в каждой группе.

First – возвращает первое значение этого поля в группе.

Last – возвращает последнее значение этого поля в группе.

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

Рисунок 12.10. Окно запроса с применением групповой операции

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

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

на панели инструментов. В окне диалога Новый запрос выберите Конструктор, а затем в окне конструктора выберите команду Запрос->Перекрестный. Access добавит в бланк запроса строку Перекрестная таблица. В этой строке для каждого поля перекрестного Запроса может быть выбрана одна из четырех установок: Заголовки строк, Заголовки столбцов, Значение (выводимое в ячейках перекрестной таблицы) и Не отображается. Для перекрестного запроса надо определить, по крайней мере, одно поле в качестве заголовков строк, одно для заголовков столбцов и одно поле значений. Каждое поле, являющееся заголовком столбцов, должно иметь в строке Групповая операция установку Группировка. Для поля, использующегося в качестве заголовков строк, в строке Групповая операция должна быть установлена операция Группировка, выбрана одна из итоговых функций (Count, Min, и т. д.) или введено выражение, содержащее итоговую функцию. Для поля с установкой Значение выбирается одна из итоговых функций или вводится выражение, использующее итоговую функцию.

Построить перекрестный запрос можно другим, более простым способом, с помощью мастера. Для этого в окне диалога Новый запрос надо выделить пункт Перекрестный запрос и нажать Ok. Затем мастер выведет на экран последовательно ряд окон, в которых запросит необходимые данные для построения перекрестного запроса. Пример результата выполнения перекрестного запроса показан на рис. 12.11.

Рисунок 12.11. Результаты перекрестного запроса

12.9. Построение и применение форм

Формы являются основным средством организации интерфейса пользователя в приложениях Microsoft Access.

Рассмотрим основные виды форм, которые можно построить в Access.

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

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

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

Подчиненные формы. Подчиненные формы используются для представления данных, находящихся на стороне «многие» отношения «один – ко многим». Например, форма фАбитуриент показывает одного студента и несколько вузов, в которые студент поступает (рис. 12.12).

Рисунок 12.12. Окно Формы в обычном режиме

Чтобы начать создание формы, необходимо в окне базы данных выбрать таблицу или запрос, выполнить команду Вставка->Форма или выбрать Новая форма

в раскрывающемся списке кнопки Новый объект

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

Выберите Конструктор в этом окне диалога и нажмите кнопку Ok. Access откроет окно формы в режиме конструктора и выведет на экран несколько инструментов конструктора форм (рис. 12.13). В нашем примере окно формы находится на заднем плане, панель элементов располагается третьей в панели инструментов, список полей – в верхней части окна, окно свойств формы – в правом нижнем углу. В новой форме будет присутствовать только область данных (с серой сеткой). Для добавления в форму областей заголовка и примечания используется команда Вид-> Заголовок/примечание формы, для добавления колонтитулов – Вид-> Колонтитулы. Увеличить или уменьшить размер любой области можно, если установить указатель мыши на краю этой области и перетащить его. Удаление сетки выполняется командой Вид-> Сетка.

Рисунок 12.13. Создание формы в режиме Конструктор

Панель элементов – это своеобразный «командный центр» создания формы. Её можно переместить, перетащив заголовок окна в нужное место на экране, или изменить её форму, перетащив края или углы панели (см. рис. 12.10).

Чтобы в режиме конструктора форм вывести на экран панель элементов, нужно выбрать команду Вид->Панель элементов или нажать кнопку Панель элементов

на панели инструментов.

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

Ниже перечислены кнопки панели элементов.

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

– кнопка Мастера элементов. Если кнопка нажата, то при создании группы, поля со списком, списка или командной кнопки активизируется мастер по созданию этих элементов управления.

– кнопка Надпись используется для создания элемента управления Надпись, содержащего постоянный текст.

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

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

и Флажок используются для создания элементов управления, принимающих значение Вкл/Выкл, Истина/Ложь или Да/Нет. Состоянию Вкл, Истина или Да соответствует число –1, а состоянию Выкл, Ложь или Нет соответствует 0. При выборе одного из Выключателей, Переключателей или Флажков (т. е. переводе его во включенное состояние) любой ранее нажатый элемент группы будет переведен в выключенное состояние.

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

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

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

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

– кнопка Рисунок позволяет поместить в форму статический рисунок. Его нельзя будет редактировать в форме. (Свойство формы Рисунок позволяет использовать некоторое изображение в качестве подложки (фона) формы.)

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

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

– кнопка Конец страницы позволяет вставлять разрыв страницы в многостраничной форме.

– кнопка Подчиненная форма/отчет используется для включения в текущую форму некоторой другой формы.

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

– кнопка Прямоугольник используется для включения в форму прямоугольников и улучшения ее внешнего вида.

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

на панели инструментов или командой Вид – Свойства. Поскольку форма имеет более 70 свойств, а большинство элементов управления – более 30, то окно свойств содержит несколько вкладок.

12.10. Основные сведения об отчетах

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

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

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

В окне диалога Новый отчет можно выбрать один из шести вариантов.

Конструктор. Используется для создания отчета «с нуля» или для редактирования ранее созданного отчета.

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

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

Автоотчет: ленточный. В отчете этого типа записи базового запроса или таблицы выводятся в одной строке.

Диаграмма. Этот мастер помогает построить диаграмму и создает в отчете свободную рамку объекта OLE с внедренной диаграммой Microsoft Graph.

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

Разработка отчета в режиме конструктора

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

Верхний и нижний колонтитулы будут печататься соответственно вверху и внизу каждой страницы отчета. Добавить или удалить верхний и нижний колонтитулы можно с помощью команды Вид->Колонтитулы. Можно задать заголовок отчета, который будет печататься только в самом начале отчета, и примечание отчета, печатающееся в конце отчета. Чтобы добавить в отчет эти разделы, выберите Формат-> Заголовок/примечание отчета.

Упражнения для самостоятельной работы

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

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

1. Загрузите Microsoft Access.

2. В появившемся окне Microsoft Access выберите переключатель Новая база данных. Нажмите кнопку .

3. В ниспадающем списке Папка окна Файл новой базы данных установите свой сетевой диск и свой каталог. В наборном поле Имя файла введите имя создаваемой базы данных Student. Нажмите кнопку Создать.

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

Создание структуры новой таблицы

5. В появившемся окне Student: База данных выберите объект Таблицы и нажмите кнопку Создать.

6. В появившемся окне Новая таблица выберите режим работы Конструктор. Нажмите кнопку .

7. В первой строке в столбце Имя поля введите: Фамилия. Нажмите клавишу вправо – >.

8. Щелкните на появившейся стрелке раскрывающегося списка ячейки Тип данных и выберите пункт Текстовый.

9. В нижней части экрана, в Свойствах поля, на вкладке Общие в строке Размер поля установите 20.

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

11. Установите курсор в первой строке в столбце Описание. Введите: Фамилия студента.

12. Во второй строке в столбце Имя поля введите: Имя. Установите тип данных – текстовый.

13. В поле Описание введите: Имя студента. Установите Размер поля – 10.

14. В третьей строке в столбце Имя поля введите: Группа. Установите тип данных – числовой.

15. В раскрывающемся списке Размер поля выберите Целое.

16. В поле Описание введите: Номер группы.

17. В четвертой строке в столбце Имя поля введите: Дата рождения.

18. Установите тип данных Дата/время. Установить курсор в наборном поле Формат поля.

19. В раскрывающемся списке Формат поля установите – Краткий формат даты.

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

21. В появившемся диалоговом окне Создание масок ввода выберите Краткий формат даты. Нажмите кнопку Далее.

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

23. Обратите внимание, что в первой строке Microsoft Access автоматически добавил дополнительное ключевое поле Код, которое играет роль уникального идентификатора записей, и установил для него Тип данных Счетчик.

24. В шестой строке в столбце Имя поля введите Домашний адрес.

25. Установите тип данных Поле MEMO. В поле Описание введите Домашний адрес.

26. Закройте текущее окно Таблица 1: таблица с сохранением изменений.

27. В окне Student: База данных выберите объект Таблицы, установите курсор на названии Таблица 1 и нажмите кнопку Открыть.

28. В поле Фамилия введите свою фамилию, в поле Имя введите свое имя и в поле Группа введите номер своей группы.

29. Переместите курсор в поле Дата рождения и введите дату своего рождения в формате ДД.ММ.ГГ, например 12.05.79. Примечание: вводить следует только числа, а остальное Microsoft Access подставит автоматически по заданной маске.

30. Переместите курсор в поле Домашний адрес и введите свой домашний адрес.

31. Подобным образом введите еще 7 записей. В поле Группа в любых двух строках введите № группы – 271 группу, в остальных– 272. Если потребуется изменить ширину столбца, то это можно сделать при помощи мыши аналогично работе в Excel.

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

33. Нажмите на значок закрытия текущего окна Таблица 1: таблица.

34. В окне Student: База данных установите курсор мыши на слове Таблица 1 и правой кнопкой мыши вызовите контекстное меню.

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

36. В окне Student: База данных снова установите курсор на слове Таблица 1 и вызовите контекстное меню.

37. Выберите команду Переименовать. Введите новое имя таблицы Т Студенты.

38. В окне Student: База данных выберите объект Запросы. Нажмите кнопку Создать.

39. В появившемся окне Новый запрос выберите Конструктор. Нажмите кнопку .

40. В окне Добавление таблицы выберите объект Таблицы Т Студенты. Нажмите кнопки Добавить и Закрыть.

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

42. Поочередно щелкните два раза левой кнопкой мыши на следующих полях: Код, Фамилия, Имя, Группа, Дата рождения, Домашний адрес.

43. Установите курсор в нижней части окна в столбце Фамилия в поле Сортировка. В раскрывающемся списке этого поля установите По возрастанию.

44. Нажмите на значок закрытия текущего окна Запрос 1: запрос на выборку. Подтвердите сохранение структуры запроса.

45. В наборном поле Имя запроса в окне Сохранение введите имя запроса Список всех студентов. Нажмите кнопку .

46. Откройте и просмотрите запрос Список всех студентов. Обратите внимание, что в записях фамилии расположены в алфавитном порядке. Закройте запрос.

47. Установите курсор на запрос Список всех студентов.

48. Нажмите клавишу и, ухватившись за значок запроса, переместите курсор мыши в сторону. Отпустите кнопку. Возникнет новый ярлык Копия Список всех студентов.

49. Установите курсор на новый ярлык и переименуйте его в Список студентов 271 группы.

50. Откройте запрос Список студентов 271 группы.

51. В меню Вид выберите режим работы Конструктор.

52. В столбце Группа в строке Условие отбора введите 271.

53. Нажмите на значок закрытия текущего окна, подтвердите сохранение макета Список студентов 271 группы: запрос на выборку.

54. Откройте запрос Список студентов 271 группы. Просмотрите содержимое запроса. Закройте текущее окно.

55. В исходной таблице в одной из записей измените номер группы на номер 271. Закройте таблицу.

56. Вновь откройте запрос Список студентов 271 группы. Убедитесь, что содержание запроса изменилось.

Создание формы при помощи Мастера форм

57. В окне Student: База данных выберите объект Формы, нажмите кнопку Создать.

58. В окне Новая форма выберите Мастер форм, а в качестве источника данных с помощью кнопки раскрывающегося списка выберите таблицу ТСтуденты. Нажмите кнопку .

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

60. В первом окне Мастера форм, в списке Таблицы и запросы указана выбранная таблица Т Студенты.

61. Щелкните на кнопке», чтобы добавить в список Выбранные поля: все поля таблицы.

62. Выделите пункт Код и щелчком на кнопке . По умолчанию рисунки вставляются в форме урезания рисунка рамкой элемента.

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

86. В списке Установка размеров открывшегося окна параметров выберите пункт Вписать в рамку.

87. Закройте окно параметров.

88. Щелкните на кнопке Кнопка

89. Перенесите указатель мыши в область формы и щелкните левой кнопкой мыши внизу формы.

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

91. Во втором окне Мастера создания кнопок выберите рисунок на кнопку, например, Стрелка вправо (синяя). Нажмите кнопку Далее.

92. В третьем окне Мастера создания кнопок выберите название кнопки – Следующая запись. Нажмите кнопку Готово.

93. Используя пункты 88–92, создайте кнопки Предыдущая запись, Найти запись, Выход из формы.

94. Установите режим работы с формой (команда меню Вид – Режим формы).

95. Проверьте действие кнопок.

96. В окне Student: База данных выберите объект Отчеты и нажмите кнопку Создать.

97. В окне Новый отчет выберите режим Конструктор, а в качестве источника данных выберите таблицу ТСтуденты. Нажмите кнопку .

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

98. На панели элементов нажмите пиктограмму Надпись

99. Щелкните мышью в области Верхний колонтитул и введите надпись Список студентов —> .

100. В области надписи правой кнопкой мыши откройте контекстное меню и выберите команду Свойства.

101. В открывшемся окне параметров во вкладке Макет выберите размер шрифта —16. Закройте окно параметров.

102. В области надписи снова откройте контекстное меню, выберите команду Размер по размеру данных, Цвет текста – розовый.

103. Аналогично Верхнему колонтитулу оформите в Нижнем колонтитуле надпись Инженерно-физический факультет.

104. Щелкните мышью на пиктограмме Поле

в Панели элементов.

105. Затем щелкните мышью в первой строке первого столбца Области данных. Access создаст элемент управления типа поле (Свободный), а также Поле № для надписи.

106. Щелкните на элементе Поле № и удалите элемент клавишей .

107. На элементе Свободный откройте контекстное меню, выберите команду Свойства, на вкладке Данные в строке Данные наберите = 1.

108. В строке Сумма с накоплением при помощи кнопки выбора установите Для всего. Закройте окно свойств.

109. Поместите указатель мыши на пункт Фамилия окна Т Студенты, нажмите кнопку мыши и перетащите этот пункт в область формы. Access снова создаст элемент управления типа поле справа, а также поле для надписи – слева. Удалите поле для надписи.

110. Проделайте аналогичную операцию для пунктов Имя, Группа, Дата рождения.

111. Оформите новые элементы области данных разными шрифтами, фонами и т. д. по своему выбору.

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

113. Закройте текущее окно Конструктора. Дайте название отчету О Список студентов —> ОК.

114. В окне STUDENT: База данных выберите объект Отчеты, откройте отчет О Список студентов.

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

116. Закройте отчет. Закройте базу данных.

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

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

1. Откройте базу данных «Student».

2. В режиме Конструктора создайте в базе данных новую таблицу, состоящую из двух столбцов: Название предмета (тип данных—текстовый, размер поля – 20) и Семестр (тип данных—числовой, размер поля – байт).

3. Закройте текущее окно, задав макету имя тПредметы и подтвердив создание ключевого поля. Access автоматически добавит к созданным Вами двум полям еще одно поле Код с типом данных Счетчик, определив это поле как ключевое.

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

5. Создайте еще одну таблицу в режиме Конструктора. Назовите ее Т.

6. Создайте поля: Фамилия (тип данных – текстовый, размер поля – 20, описание – Фамилия преподавателя), Имя (тип данных текстовый, размер поля – 20), Отчество (тип данных – текстовый, размер поля – 20), Код предмета (тип данных – числовой, размер поля – длинное целое, описание – Предмет, который ведет преподаватель).

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

8. Откройте таблицу для заполнения.

9. Занесите в таблицу имена, отчества и фамилии 5 преподавателей, ведущих предметы, перечисленные в таблице тПредметы. Разные преподаватели могут вести один и тот же предмет. В столбце Код предмета проставьте цифры, соответствующие кодам предметов из таблицы Т_Предметы.

10. Нажмите на значок закрытия текущего окна тПреподаватели:

11. Нажмите на кнопку Схема данных

12. В открывшемся окне Добавление таблицы во вкладке Таблицы установите курсор на тПредметы и нажмите кнопку Добавить

13. Установите курсор на тПреподаватели и снова нажмите кнопку Добавить. Закройте окно Добавление таблицы.

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

15. Поместите указатель мыши на пункт Код таблицы тПредметы.

16. Нажмите кнопку мыши и перетащите указатель на поле Код предмета таблицы тПреподаватели.

17. В открывшемся окне диалога установите флажок «Обеспечение целостности данных» и щелкните на кнопке Создать. Между двумя таблицами в окне Схема данных появится линия связи типа «один ко многим».

18. Закройте текущее окно, подтвердив сохранение.

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

19. Откройте таблицу тПреподаватели в режиме Конструктора.

20. В столбце Тип данных для поля Код предмета выберите пункт Мастер подстановок.

21. В первом окне Мастера оставьте выбранным положение переключателя Объект «столбец подстановки» будет использовать значение из таблицы или запроса и щелкните на кнопке Далее.

22. Три положения переключателя второго окна Мастера выводят на экран список таблиц, запросов или объединяют эти два списка. Выберите таблицу тПредметы на роль источника подстановки. Щелкните на кнопке Далее.

23. Третье окно Мастера предлагает выбрать из таблицы тПредметы поля, участвующие в подстановке. Этот список обязан содержать то поле, содержание которого должно отображаться вместо численного значения, помещаемого из поля Код.

24. Выберите поле. Щелкните на кнопке Далее.

25. Следующее окно Мастера продемонстрирует столбец таблицы-источника.

26. В поле последнего окна введите название Предмет, которое заменит имя столбца Код предмета, и щелкните на кнопке Готово.

27. В появившемся окне диалога щелчком на кнопке Да подтвердите необходимость сохранения построенной структуры.

28. Находясь в окне тПреподаватели: таблица, перейдите в режим таблицы (меню Вид – Режим таблицы).

29. Теперь в четвертом столбце вместо чисел стоят названия предметов, соответствующие этим числам. Access автоматически ищет соответствующую запись в таблице тПредметы и выводит в ячейку таблицы тПреподаватели текст поля Название предмета из выбранного в списке Мастера подстановок.

30. Введите еще одну запись в таблицу тПреподаватели. При вводе данных в столбец Предмет используйте список Мастера подстановок.


31. Закройте текущее окно.

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

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

3. Создать отчет на основе двух таблиц тПредметы и Т Преподаватели.

Урок 1. Введение в базы данных

Что такое база данных

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

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

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

Структура базы данных

Телефонный справочник представляет собой так называемую “плоскую” базу данных, в которой вся информация располагается в единственной таблице. Каждая запись в этой таблице содержит идентификатор конкретного человека — имя и фамилию и его номер телефона. Таким образом таблица состоит из записей, информация в которых разделена на несколько частей — полей. В данном случае полями являются “ФИО” и “Номер телефона”, как показано на рис.1.1.

Рис.1.1. Таблица, запись и поле.

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

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

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

Так как Visual Basic использует ту же систему управления базами данных (MS Jet Engine), что и MS Access, то несмотря на наличие в Visual Basic средств работы со многими форматами БД, все таки в приложениях предпочтительно использовать файлы баз данных в формате MS Access. Эти файлы имеют расширение MDB и здесь в основном будут описаны приемы работы с файлами именно такого формата.

Перейдем теперь к исследованию базы данных с библиографией. Для этого откройте файл BIBLIO.MDB при помощи MS Access или VisData.

Содержимое файла базы данных BIBLIO.MDB показано на рис.1.2. В базу данных входят таблицы (Tables), запросы (Queries), формы (Forms), отчеты (Reports), макросы (Macros) и модули (Modules). Макросы, формы и модули нам не интересны, так как это вотчина разработчиков, применяющих Visual Basic for Applications или, сокращенно, VBA.

Рис.1.2. Содержимое файла BIBLIO.MDB

Из рисунка видно, что база данных состоит из таблиц: PUBLISHERS, AUTHORS и TITLES. Каждая из таблиц содержит информацию об объектах одного типа. Из названий таблиц становиться понятно, что данные в каждой таблице принадлежат одной и той же группе объектов. Каждая строка в этих таблицах однозначно определяет один объект из соответствующей группы. Вообще, база данных может состоять из одной или нескольких таблиц. Запись, в свою очередь, состоит из нескольких полей, каждое из которых содержит элемент данных об объекте.

Типы данных, которые можно поместить в таблицу, зависят от формата файла базы данных. В таблице 1.1 приведены некоторые типы данных, которые поддерживаются системой управления базами данных Visual Basic для файлов MS Access.

Таблица 1.1

Название Описание
Text Строки алфавитно-цифровых символов. Например, адрес, номер телефона, почтовый индекс и т.п. Текстовое поле может содержать от 0 до 255 символов.
Memo Длинные строки. Например, комментарии. Максимальный размер ограничен 1.2 Гбайт.
Yes/No Yes/No, True/False, On/Off, 0 или 1.
Byte Целые числа в диапазоне от 0 до 255.
Integer Целые числа в диапазоне от -32768 до +32767.
Long Целые числа в диапазоне от -2147483648 до 2147483647.
Single Вещественные числа в диапазоне от -3.4? 10 38 до 3.4? 10 38 .
Double Вещественные числа в диапазоне от -1.8? 10 308 до 1.8? 10 308 .
Date/Time Дата и время.
Currency Используется для обозначения денежных сумм. Запоминаются 11 знаков слева от десятичной точки и 4 знака справа от десятичной точки.
Counter Длинные целые с автоматическим приращением.
OLE OLE-объекты, созданные в других программах с использованием протокола OLE. Размер ограничен 1.2 Гбайт.
Binary Любой двоичный объект размером до 1.2 Гбайт. Этот тип обычно используется для хранения рисунков и двоичных файлов.

Таблица PUBLISHERS (Издатели) содержит информацию об издательствах (имя компании, ее адрес, телефон, факс и др.). На рис. 1.3 и 1.4 показаны структура таблицы PUBLISHERS и ее содержимое в табличном виде.

Рис.1.3. Структура таблицы PUBLISHERS

Рис.1.4. Содержимое таблицы PUBLISHERS

Таблица AUTHORS (Авторы) содержит информацию о авторах — ФИО и год рождения. Структура этой таблицы и ее содержимое показаны на рис.1.5 и 1.6 соответственно.

Рис.1.5. Структура таблицы AUTHORS

Рис.1.6. Содержимое таблицы AUTHORS

Таблица TITLES (Заголовки) содержит данные о самих книгах — название книги, год издания, код ISBN, издатель, краткое описание и др. Структура таблицы TITLES и ее содержимое показаны на рис.1.7 и 1.8 соответственно.

Рис.1.7. Структура таблицы TITLES

Рис.1.8. Содержимое таблицы TITLES

Из рис.1.2 видно, что в базе данных BIBLIO.MDB присутствует еще и таблица TITLE AUTHOR. На первый взгляд непонятно зачем она нужна. Ведь в базе данных есть таблица TITLES с заголовками книг и таблица AUTHORS с данными об авторах. Однако все же эта таблица нужна и для чего она так необходима станет понятно, когда в дальнейшем будем рассматривать отношения между таблицами.

Отношения между таблицами

Отношения между таблицами устанавливают связь между данными находящимися в разных таблицах базы данных.

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

Отношения между таблицами базы данных BIBLIO.MDB показаны на рис.1.9.

Рис.1.9. Отношения между таблицами базы данных BIBLIO.MDB.

Отношение один-к-одному

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

Примером такого отношения может служить отношение между таблицами. Таблица AUTHORS (Авторы) рассмотрена выше (рис. 1.5 и 1.6) и содержит краткую информацию о авторах (ФИО и год рождения). Таблица PERSON (Личность) содержит персональную информацию о авторах (домашний адрес, телефон, образование и др.) Структура таблицы PERSON показана на рис.1.10. Следует отметить, что в базе данных BIBLIO.MDB никакой таблицы PERSON нет и мы упоминаем о ней только как о иллюстрации отношения между таблицами — один-к-одному.

Рис.1.10. Структура таблицы PERSON

Между таблицами AUTHORS и PERSON существует отношение один-к-одному, так как одна запись, идентифицирующая автора, однозначно соответствует только одной записи в таблице PERSON, содержащей персональные данные об авторе.

Связь между таблицами определяется с помощью совпадающих полей: Au_ID в таблице AUTHORS и в таблице PERSON.

Отношение один-ко-многим

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

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

Отношение много-к-одному

Отношение много-к-одному полностью аналогично рассмотренному выше отношению один-ко-многим.

Отношение много-ко-многим

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

Для удобства работы с таблицами, имеющими отношение много-ко-многим, обычно в базу данных добавляют еще одну таблицу, которая находится в отношении один-ко-многим и много-к-одному к соответствующим таблицам. В случае базы данных BIBLIO.MDB такой таблицей является TITLE AUTHOR.

Нормализация баз данных

Рассмотрим процесс нормализации базы данных на примере базы данных BIBLIO.MDB. Вообще говоря, все данные о книгах, авторах и издательствах можно разместить в одной таблице, названной, например, BIBLIOS. Структура этой таблицы показана на рис. 1.11. В принципе, можно работать и с такой таблицей. С другой стороны понятно, что такая структура данных является неэффективной. В таблице BIBLIOS будет достаточно много повторяющихся данных, например сведения об издательстве или авторе будут повторяться для каждой опубликованной книги. Такая организация данных приведет к следующим проблемам, с которыми столкнется конечный пользователь вашей программы:

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

Ввод пользователем большого количества повторяющейся информации неизбежно приведет к возникновению ошибок.

Изменение, например, номера телефона издательства потребует значительных усилий по корректировке каждой записи, содержащей данные об издателе.

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

Илон Маск рекомендует:  Точка трансформации

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

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

Для того, чтобы построить достаточно эффективную структуру данных, достаточно придерживаться нескольких простых правил:

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

  • PUBLISHERS — содержит информацию об издательствах;
  • AUTHORS — содержит информацию об авторах книг;
  • TITLES — содержит информацию об изданных книгах.

2. Если в вашей таблице появляются поля, содержащие аналогичные данные, разделите таблицу.

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

4. Используйте вспомогательные таблицы. Например, если в вашей таблице есть поле Страна, то может быть стоит ввести вспомогательную таблицу Country, которая будет содержать соответствующие записи (Россия, Украина, США и т.п.). Этот прием также поможет уменьшить количество ошибок при вводе данных, допускаемых пользователями.

Ключи и индексы

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

Первичный ключ однозначно определяет запись в таблице. В примере с базой данных BIBLIO.MDB таблицы PUBLISHERS, AUTHORS и TITLES имеют первичные ключи PubID, Au_ID и ISBN соответственно. Таблица TITLES также имеет два внешних ключа PubID и Au_ID для связи с таблицами PUBLISHERS и AUTHORS. Таким образом, первичный ключ однозначно определяет запись в таблице, в то время как внешний ключ используется для связи с первичным ключом другой таблицы.

Ключевой поле может иметь определенный смысл, как например ключ ISBN в таблице TITLES. Однако, очень часто ключевое поле не несет никакой смысловой нагрузки и является просто идентификатором объекта в таблице. Во многих случаях удобно использовать в качестве ключа поле счетчика (Counter field). При этом вся ответственность по поддержанию уникальности ключевого поля снимается с пользователя и перекладывается на процессор баз данных. Поле счетчика представляет собой четырехбайтовое целое число (Long) и автоматически увеличивается на единицу при добавлении пользователем новой записи в таблицу.

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

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

Индекс представляет собой таблицу, которая содержит ключевые значения для каждой записи в таблице данных и записанные в порядке, требуемом для пользователя. Ключевые значения определяются на основе одного или нескольких полей таблицы. Кроме того, индекс содержит уникальные ссылки на соответствующие записи в таблице. На рис.1.12 показан фрагмент таблицы CUSTOMERS, содержащей информацию о покупателях, и индекс IDX_NAME, построенный на основе поля Name таблицы CUSTOMERS. Индекс IDX_NAME содержит значения ключевого поля Name, упорядоченные в алфавитном порядке, и ссылки на соответствующие записи в таблице CUSTOMERS.

Рис.1.12. Связь между таблицей и индексом.

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

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

При разработке приложений, работающих с базами данных, наиболее широко используются простые индексы. Простые индексы используют значения одного поля таблицы. Примером простого индекса в базе данных BIBLIO.MDB может служить код ISBN, идентификатор автора Au_ID или идентификатор издательства PubID.

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

Какие бывают базы данных

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

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

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

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

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

Рассмотрим каждый из них.

Иерархическая база данных

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

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

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

В качестве примера можно привести базу данных на языке XML, содержащую в себе очерки о состоянии сельского хозяйства в регионах России. В этом случае родительским элементом выступит государство, далее пойдёт разделение на субъекты, а в рамках субъектов будет своё разветвление. В данном случае от верхнего элемента к нижнему идёт строго одно обращение.

Сетевая база данных

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

В этом случае также примером выступает база данных на основе языка XML.

Реляционная база данных

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

Таблица здесь является способом хранения введённых в неё данных и способна реагировать на любые обращения со стороны СУБД. Главная проблема в работе с реляционными базами данных состоит в их правильном проектировании.

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

  1. база данных должна быть компактной и не содержать избыточных компонентов;
  2. обработка базы данных должны происходить просто.

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

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

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

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

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

Неструктурированные базы данных (NoSQL) создают структуру по ходу и убирают необходимость в создании жёстко определённых связей между данными. Здесь можно экспериментировать с разными способами доступа к тем или иным видам данных.

К реляционным базам данных относятся:

Из них наиболее распространённой является база данных MySQL, но остальные тоже имеют популярность и с ними можно столкнуться.

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

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

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

Сравнение SQL и NoSQL

  1. Если SQL-системы основаны исключительно на строгом представлении данных, то NoSQL-системы предоставляют свободу и способны работать с любым типом данных.
  2. SQL-системы стандартизированы, за счёт чего запросы формируются с использованием языка SQL. В то же время NoSQL-системы базируются на специфической для каждой из них технологии, что является недостатком.
  3. Масштабируемость. Обе СУБД способны обеспечить вертикальное масштабирование, то есть увеличить объём системных ресурсов на обработку данных. При этом NoSQL, будучи более новой разновидностью баз данных, позволяет применять простые методы горизонтального масштабирования.
  4. В плане надёжности SQL обладает уверенным лидерством.
  5. У SQL-баз есть качественная техническая поддержка за счёт их продолжительной истории, в то время как NoSQL-системы весьма молоды и и решить какую-либо проблему сложнее.
  6. Хранение данных и доступ к их структурам в рамках реляционных систем лучше всего происходит в SQL-системах.

Таким образом, хоть NoSQL и является стремительно развивающейся разновидностью систем управления базами данных, однако на данном этапе рекомендуется остановить свой выбор на SQL.

Надёжность SQL-систем, особенно MySQL, подтверждается временем и массовостью. Сегодня любой уважающий себя ресурс использует для хранения данных именно систему MySQL.

SQL и NoSQL: разбираемся в основных моделях баз данных

С незапамятных времен память была одной из самых важных и необходимых составляющих компьютера. Несмотря на разницу в методах реализации, большинство вычислительных машин оснащены необходимым аппаратным обеспечением для обработки и хранения информации. В наше время невозможно представить работу какого-либо приложения, хоть игры, хоть сайта, без получения, обработки и записи определённого типа данных. Системы управления базами данных (СУБД) — это высокоуровневое программное обеспечение, работающее с низкоуровневыми API. Для решения различных проблем создавались новые виды СУБД (реляционные, NoSQL и т.д.) и их новые реализации (MySQL, PostgreSQL, MongoDB, Redis и т.д.). В этой статье мы разберемся в основах баз данных и СУБД.

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

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

СУБД основаны на моделях баз данных — определённых структурах для обработки данных. Каждая СУБД создана для работы с одной из них с учётом особенностей операций над информацией.

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

Модели баз данных

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

Хотя она и является весьма мощной и гибкой, есть ситуации, решения которых она предложить не может. Тут на помощь придёт сравнительно новая модель, называемая NoSQL. Она набирает популярность и предлагает весьма интересные решения и дополнительный функционал. Из-за того, что эти системы не используют строгую структуризацию данных, они предлагают большую свободу действий при обработке информации.

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

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

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

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

Безмодельный (NoSQL) подход

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

Популярные СУБД

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

РСУБД

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

РСУБД требуют чётких и ясных схем — не стоит путать со специфическим определением для PostgreSQL — для работы с данными. Эти рамки, определённые пользователем, задают способ их хранения и использования. Схемы очень похожи на таблицы, столбцы которых отражают порядковый номер и тип информации в каждой записи, а строки — содержимое этих записей.

Самыми популярными РСУБД сейчас являются:

  • SQLite: очень мощная встраиваемая РСУБД.
  • MySQL: самая популярная и часто используемая РСУБД.
  • PostgreSQL: самая продвинутая и гибкая РСУБД.

NoSQL-СУБД

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

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

NoSQL базы данных не используют общий формат запроса (как SQL в реляционных базах данных). Каждое решение использует собственную систему запросов.

Сравнение SQL и NoSQL

Для того, чтобы прийти к простому и понятному выводу, давайте проанализируем разницу между SQL- и NoSQL-подходами:

  • Структура и тип хранящихся данных: SQL/реляционные базы данных требуют наличия однозначно определённой структуры хранения данных, а NoSQL базы данных таких ограничений не ставят.
  • Запросы: вне зависимости от лицензии, РСУБД реализуют SQL-стандарты, поэтому из них можно получать данные при помощи языка SQL. Каждая NoSQL база данных реализует свой способ работы с данными.
  • Масштабируемость: оба решения легко растягиваются вертикально (например, путём увеличения системных ресурсов). Тем не менее, из-за своей современности, решения NoSQL обычно предоставляют более простые способы горизонтального масштабирования (например, создания кластера из нескольких машин).
  • Надёжность: когда речь заходит о надёжности, SQL базы данных однозначно впереди.
  • Поддержка: РСУБД имеют очень долгую историю. Они очень популярны, и поэтому получить поддержку, платную или нет, очень легко. Поэтому, при необходимости, решить проблемы с ними гораздо проще, чем с NoSQL, особенно если проблема сложна по своей природе (например, при работе с MongoDB).
  • Хранение и доступ к сложным структурам данных: по своей природе реляционные базы данных предполагают работу с сложными ситуациями, поэтому и здесь они превосходят NoSQL-решения.

Основные понятия и определения

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

Файл – информация, хранимая на электронном носителе после завершения отдельных заданий и рассматриваемая в процессе обработки как единое целое. Файл имеет имя и требует некоторого объема памяти носителя, в качестве которого может выступать дискета, винчестер, компакт-диск (CD).

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

Домен – совокупность значений одного поля.

Универсум – совокупность значений всех полей.

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

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

Запись физическая (совокупность данных записываемых/считываемых одним блоком) характеризует расположение данных в физической памяти ПК.

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

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

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

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

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

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

Архитектура – разновидность (обобщение) структуры, в которой какой-либо элемент может быть заменен на другой элемент, характеристики входов и выходов которого идентичны первому элементу. Понятие «принцип открытой архитектуры» используется при построении компьютера. Этот принцип означает, что вместо принтера одной марки (например, Epson) к компьютеру может быть подключен принтер другого типа (например, Hewlett Packard).

Безопасность – защита от преднамеренного или непреднамеренного нарушения секретности, искажения или разрушения.

Блокировка – неделимая операция, которая позволяет только одному процессу иметь доступ к совместно используемому ресурсу.

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

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

Внутренняя схема – описание данных на физическом уровне.

Время доступа – промежуток времени между выдачей команды записи (считывания) и фактическим получением данных.

Время отклика – промежуток времени от момента запроса к БД до фактического получения данных.

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

Доступ – операция поиска, чтения данных или записи их.

Задание (работа) – программа или совокупность программ и преобразуемые этими программами данные.

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

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

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

Кортеж – совокупность полей или запись (строка).

КОДАСИЛ (CODASIL) – набор стандартов для сетевых баз данных.

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

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

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

Многозначная зависимость (MV-зависимость, зависимость 1:М) – для подсхем X, Y, Z, принадлежащих схеме R, Z = R – (XY) и кортежей t2(X) = t1(Х) и t3(Y) = t1(Y) справедливо t3(Z) = t1(Z) и t3(Z) = t2(Z).

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

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

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

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

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

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

Отношение r на множествах (доменах) S1, . Sn – подмножество декартова произведения S,& . &Sn. Понятие «отношение» является основным в реляционных БД. Пусть имеется таблица с двумя полями S1 и S2 по два значения в каждом (S1 = и S2 = , т. е. в каждом домене по два значения). «Полная» таблица имеет четыре возможных записи (al, bl; al, b2; а2, М; а2, b2), которые и образуют декартово произведение. Отношением является и часть этой таблицы (например, al, bl; а2, b1). Отношение может быть и составным: r – (r1, . rn), составленным, например, из нескольких связанных таблиц.

Подсхема – описание логического представления пользователя данной группы. Иными словами, это схема отдельного пользователя БД, если их несколько. Из подсхем может быть составлена схема БД (для всех пользователей). Нетрудно видеть, что при наличии одного пользователя подсхема является схемой.

Программа – полное и точное описание алгоритма на некотором формальном языке программирования.

Процедура – некоторая подпрограмма.

Распределенная база данных (РЕД) – единая БД, представленная в виде отдельных (возможно, избыточных и перекрывающихся) разделов на разных вычислительных средствах.

Связь – ассоциация между экземплярами примитивных или агрегированных объектов (записей) данных.

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

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

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

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

Системный журнал – журнал регистрации всех изменений БД.

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

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

Структура – совокупность элементов и нх связей.

Сущность – примитивный объект данных, отображающий элемент предметной области (человек, место, вещь и т. д.).

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

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

Функциональная зависимость (F-зависимость, зависимость 1:1): схема Y функционально зависит от X, если для кортежей t,(X) = t2(X), справедливо t1(Y) = t2(Y), причем схемы X и Y могут принадлежать схеме R.

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

Хранилище данных – предметно-ориентированный, интегрированный, привязанный ко времени и неизменный набор данных, предназначенный для поддержки принятия решений.

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

Элемент данных – наименьшая единица данных, имеющая смысл при описании информации; наименьшая единица поименованных данных.

Экземпляр – отдельный экземпляр объекта, записи, элемента данных.

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

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

Язык описания данных (ЯОД) – предназначен для описания данных на концептуальном, логическом и физическом уровнях на основе соответствующих схем. Речь идет о командах по формированию структуры (шапки) таблиц и связей между ними. Эти операции могут быть обеспечены визуальным языком программирования QBE или директивным языком программирования SQL.

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

Следует отметить, что три группы операций с БД (описание, манипулирование, запрос) совмещены в языке SQL, а в некоторых СУБД – и в языке QBE.

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

Что такое базы данных и зачем их изучать?

Компьютер создавался как электронно-вычислительная машина – до сих пор в старых учебниках и методичках можно встретить аббревиатуру ЭВМ, которая именно так и расшифровывается.

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

Что такое информационная система? Представь библиотеку с ее отделами, огромным количеством книг (каждая из которых находится на «своей» полке), читателями, сотрудниками…

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

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

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

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

  • Ученики школы – даты рождения, биографии, сведения о родителях, успеваемость, склонности и увлечения…
  • Пользователи сайта – регистрационные данные, личная переписка (да-да, твои сообщения могут быть доступны третьим лицам), посты и комментарии к ним…
  • Документы в архиве – авторы, названия, даты создания, краткое содержание, количество страниц…

Пожалуй, этот список можно продолжать бесконечно.

Отдельно стоит сказать, что такое «система управления базам данных» (СУБД). Здесь все просто: СУБД – это комплекс программных и лингвистических средств для управления БД. Проще говоря, это некая программная оболочка, которая позволяет взаимодействовать с базами данных и с информацией внутри них.

Какими бывают базы данных?

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

  • Иерархическая модель. Такие базы данных имеют древовидную структуру, компоненты которой разделяются на «родителей» и «потомков». Отличительной чертой иерархических БД является то, что у каждого «потомка» может быть только один «предок».
  • Сетевая модель. Разновидность иерархической модели с той разницей, что в сетевой БД у любого «потомка» может быть множество «предков».
  • Реляционная модель. Данные в реляционной базе представлены в виде множества таблиц, каждая из которых состоит из столбцов и записей (строк). Каждый столбец имеет название, а каждая строка содержит определенную информацию. Взаимодействие с реляционной БД строится на уровне логики, которая подвластна каждому, кто успешно закончил 5 классов средней школы. Кстати, на курсе «Пользователь ПК» в нашей Академии ребята знакомятся именно с реляционной моделью БД на примере простой, но полезной программы MS Access.

Зачем изучать базы данных?

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

  • Складывает в сознании научную картину мира
  • Понимает, как важно уметь работать с многообразием цифровой информации
  • Хочет стать программистом

Остановимся подробнее на последнем пункте из списка. Зачем программисту базы данных?

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

Еще показательный пример: некоторые выпускники нашего курса «Web-программирование» в качестве дипломного проекта создают новостной портал, который отличается наличием огромного количества контента – как текстового, так и графического и даже медийного. Повторим вопрос: где хранить все это многообразие информации – статьи, изображения, ссылки на видео? Конечно, в базе данных. Мы просто обращаемся к БД и с помощью специального языка запросов вытаскиваем нужную нам информацию для вывода на экран.

Разумеется, взаимодействие с БД принимает различные формы – мы не только вынимаем данные, но и легко ими манипулируем: редактируем, удаляем, добавляем новые. Кстати, для изучения на курсе «Web-программирование» мы выбрали базы данных MySQL, которые сегодня используют не только начинающие разработчики, но и такие IT-гиганты, как Facebook, Google, LinkedIn.

Таким образом, понимание баз данных и умение с ними работать – важнейшее качество не только программиста, но и каждого, кто считает себя продвинутым пользователем. Или стремится им стать. Ты ведь относишься к их числу?

Базы данных

Урок » Основные понятия БД «

Любой из нас, начиная с раннего детства, многократно сталкивался с «базами данных». Это — всевозможные спра­вочники (например, телефонный), энциклопедии и т. п. За­писная книжка — это тоже «база данных», которая есть у каждого из нас.

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

Например, база данных «Записная книжка» хранит информацию о людях, каждый из которых имеет фамилию, имя, телефон и так далее. Библиотечный каталог хранит информацию о книгах, каждая из которых имеет название, автора, год издания и так далее.

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

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

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

Иерархические базы данных

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

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

Например: иерархической базой данных является Каталог папок Windows , с которым можно работать, запустив Проводник. Верхний уровень занимает папка Рабочий стол. На втором уровне находятся папки Мой компьютер, Мои документы, Сетевое окружение и Корзина, которые являются потомками папки Рабочий стол, а между собой является близнецами. В свою очередь, папка Мой компьютер является предком по отношению к папкам третьего уровня — папкам дисков (Диск 3,5(А:), (С:), ( D :), ( E :), ( F :)) и системным папкам (Принтеры, Панель управления и др.)

Сетевые базы данных

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

Сетевой базой данных фактически является Всемирная пау mu н a глобальной компьютерной сети Интернет. Гиперссылки связывают между собой сотни миллионов документов в единую распределенную сетевую базу данных.

Табличные базы данных

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

Рассмотрим, например, базу данных: Телефонный справочник

Основные понятия теории баз данных

Понятие базы данных

Базу данных (БД) можно определить как унифицированную совокупность данных, совместно используемую различными задачами в рамках некоторой единой автоматизированной информационной системы (ИС).
Теория управления базами данных как самостоятельная дисциплина начала развиваться приблизительно с начала 50-х годов двадцатого столетия. За это время в ней сложилась определенная система фундаментальных понятий. Приведем некоторые из них.
Предметной областью принято называть часть реального мира, подлежащую изучению с целью организации управления в этой сфере и последующей автоматизации процесса управления. В рамках данной книги для нас в первую очередь представляют интерес предметные области, так или иначе связанные со сферой экономики и финансов.
Объектом называется элемент информационной системы, сведения о котором хранятся в базе данных. Иногда объект также называют сущностью (от англ, entity). Классом объектов называют их совокупность, обладающую одинаковым набором свойств.
Атрибут — это информационное отображение свойств объекта. Каждый объект характеризуется некоторым набором атрибутов.
Ключевым элементом данных называются такой атрибут (или группа атрибутов), который позволяет определить Значения других элементов-данных. Запись данных (англ, эквивалент record) — это совокупность значений связанных элементов данных.
Первичный ключ — это атрибут (или группа атрибутов), который уникальным образом идентифицируют каждый экземпляр объекта (запись). Вторичным ключом называется атрибут (или группа атрибутов), значение которого может повторяться для нескольких записей (экземпляров объекта). Прежде всего вторичные ключи используются в операциях поиска записей.
Процедуры хранения данных в базе должны подчиняться некоторым общим принципам, среди которых в первую очередь следует выделить:
o целостность и непротиворечивость данных, под которыми понимается как физическая сохранность данных, так и предотвращение неверного использования данных, поддержка допустимых сочетаний их значений, защита от структурных искажений и несанкционированного доступа;
o минимальная избыточность данных обозначает, что любой элемент данных должен храниться в базе в единственном виде, что позволяет избежать необходимости дублирования операций, производимых с ним.
Программное обеспечение, осуществляющее операции над базами данных, получило название СУБД — система управления базами данных. Очевидно, что его работа должна быть организована таким образом, чтобы выполнялись перечисленные принципы.

Илон Маск рекомендует:  Что такое код cnsearch frontend

Модели организации данных

Набор принципов, определяющих организацию логической структуры хранения данных в базе, получил название модели данных. Модели баз данных определяются тремя компонентами:
— допустимой организацией данных;
— ограничениями целостности;
— множеством допустимых операций.
В теории систем управления базами данных выделяют модели четырех основных типов: иерархическую, сетевую, реляционную и объектно-реляционную.
Терминологической основой для иерархической и сетевой моделей являются понятия: атрибут, агрегат и запись. Под атрибутом (элементом данных) понимается наименьшая поименованная структурная единица данных. Поименованное множество атрибутов может образовывать агрегат данных. В некоторых случаях отдельно взятый агрегат может состоять из множества экземпляров однотипных данных, или, как еще говорят, являться множественным элементом. Наконец, записью называют составной агрегат, который не входит в состав других агрегатов. В иерархической модели все записи, агрегаты и атрибуты базы данных образуют иерархически организованный набор, то есть такую структуру, в которой все элементы связаны отношениями подчиненности, и при этом любой элемент может подчиняться только одному какому-нибудь другому элементу. Такую форму зависимости удобно изображать с помощью древовидного графа (схемы, состоящей из точек и стрелок, которая связна и не имеет циклов). Пример иерархической структуры базы данных приведен на рис. 1.

Рис. 1. Схема иерархической модели данных

Типичным представителем семейства баз данных, основанных на иерархической модели, является Information Management System (IMS) фирмы IBM, первая версия которой появилась в 1968 г.
Концепция сетевой модели данных связана с именем Ч. Бахмана. Сетевой подход к организации данных является расширением иерархического. В иерархических структурах запись-потомок должна иметь в точности одного предка; в сетевой структуре данных потомок может иметь любое число предков (рис. 7.2).

Рис. 7.2. Схема сетевой модели данных

Сетевая БД состоит из набора записей и набора связей между этими записями, точнее, из набора экземпляров записей заданных типов (из допустимого набора типов) и набора экземпляров из заданного набора типов связи. Примером системы управления данными с сетевой организацией является Integrated Database Management System (IDMS) компании Cullinet Software Inc., разработанная в середине 70-х годов. Она предназначена для использования на «больших» вычислительных машинах. Архитектура системы основана на предложениях Data Base Task Group (DBTG), Conference on Data Systems Languages (CODASYL), организации, ответственной за определение стандартов языка программирования Кобол.
Среди достоинств систем управления данными, основанных на иерархической или сетевой моделях, могут быть названы их компактность и, как правило, высокое быстродействие, а среди недостатков — неуниверсальность, высокая степень зависимости от конкретных данных.

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

Концепции реляционной модели впервые были сформулированы в работах американского ученого Э. Ф. Кодда. Откуда происходит ее второе название — модель Кодда.

Рис. 7.3. Схема реляционной модели данных

В реляционной модели объекты и взаимосвязи между ними представляются с помощью таблиц (рис. 7.3). Для ее формального определения используется фундаментальное понятие отношения. Собственно говоря, термин «реляционная» происходит от английского relation — отношение. Если заданы произвольные конечные множества D1, D2 ,…, Dn, то декартовым произведением этих множеств D1 ? D2 ? … ? Dn называют множество всевозможные наборов вида (d1, d2 . dn), где
d1 D1, d2 D2. dn Dn. Отношением R определенным на множествах D1, D2 ,…, Dn,, называется подмножество декартова произведения Dl x D2x . х Dn. При этом множества D1 ? D2 ? … ? Dn называются доменами отношения, а элементы декартова произведения — кортежами отношения. Число я определяет степень отношения, а количество кортежей — его мощность. Наряду с понятиями домена и кортежа при работе с реляционными таблицами используются альтернативные им понятия поля и записи.
В реляционной базе данных каждая таблица должна иметь первичный ключ (ключевой элемент) — поле или комбинацию полей, которые единственным образом идентифицируют каждую строку в таблице.
Важным преимуществом реляционной модели является то, что в ее рамках действия над данными могут быть сведены к операциям реляционной алгебры, которые выполняются над отношениями. Это такие операции, как объединение, пересечение, вычитание, декартово произведение, выборка, проекция, соединение, деление.
Важнейшей проблемой, решаемой при проектировании баз данных, является создание такой их структуры, которая бы обеспечивала минимальное дублирование информации и упрощала Процедуры обработки и обновления данных. Код-дом был предложен некоторый набор формальных требований универсального характера к организации данных, которые позволяют эффективно решать перечисленные задачи. Эти требования к состоянию таблиц данных получили название нормальных форм. Первоначально были сформулированы три нормальные формы. В дальнейшем появилась нормальная форма Бойса-Кодда и нормальные формы более высоких порядков. Однако они не получили широкого распространения на практике.
— Говорят, что отношение находится в первой нормальной форме, если все его атрибуты являются простыми.
— Говорят, что отношение находится во второй нормальной форме, если оно удовлетворяет требованиям первой нормальной формы и каждый не ключевой атрибут функционально полно зависит от ключа (однозначно определяется им).
— Говорят, что отношение находится в третьей нормальной форме, если оно удовлетворяет требованиям второй нормальной формы и при этом любой не ключевой атрибут зависит от ключа нетранзитивно. Заметим, что транзитивной называется такая зависимость, при которой какой-либо не ключевой атрибут зависит от другого не ключевого атрибута, а тот, в свою очередь, уже зависит от ключа.
Принципиальным моментом является то, что для приведения таблиц к состоянию, удовлетворяющему требованиям нормальных форм, или, как еще говорят, для нормализации данных над ними, должны быть осуществлены перечисленные выше операции реляционной алгебры.
Основным достоинством реляционной модели является ее простота. Именно благодаря ей она положена в основу подавляющего большинства реально работающих СУБД.

Язык SQL

В разработанной Коддом реляционной модели были определены как требования к организации таблиц, содержащих данные, так и язык, позволяющий работать с ними. Впоследствии этот язык получил название SQL (Structured Query Language — структурированный язык запросов). SQL был впервые реализован фирмой I в начале 70-х годов двадцатого века под названием Structures English Query Language (SEQUEL). Он был ориентирован на управление прототипом реляционной базы данных IBM-System R. В дальнейшем SQL стал стандартом de facto языка работы с реляционными базами данных. Этот его статус был впервые зафиксирован в 1986 году Американским национальным институтом стандартов (ANSI). Другими достаточно известными стандартами SQL стали стандарты ANSI SQL-92 ISO SQL-92, X/Open. В составе SQL могут быть выделены следующие группы инструкций:
— язык описания данных — DDL (Data Definition Language);
— язык манипулирования данными — DML (Data Manipulation Language);
— язык управления транзакциями.
Инструкции DDL предназначены для создания, изменения и удаления объектов базы данных. Их описание приведено в табл. 1.

Таблица 1. Инструкции языка определения данных (DDL)

Инструкция Назначение
CREATE Создание новых объектов (таблиц, полей, индексов и т. д.)
DROP Удаление объектов
ALTER Изменение объектов

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

CREATE TABLE Фирмы
( КодФирмы TEXT (5),
НазвФирмы TEXT (30),
АдресФирмы TEXT (40),
УстФонд DOUBLE );

Отметим, что допустимые имена полей создаваемой таблицы и типы содержащихся в них данных могут варьироваться для различных версий и диалектов SQL Если нам понадобится изменить структуру таблицы Фирмы — допустим, добавит! к ней еще одну колонку с фамилией директора, то сделать это можно с помощью SQL-инструкции:

ALTER TABLE Фирмы ADD COLUMN Директор TEXT.(30);

а выражение, дающее Команду на уничтожение таблицы, будет выглядеть так:

DROP TABLE Фирмы;

Инструкции DML (табл. 7.2) позволяют выбирать данные из таблиц, а также добавлять, удалять и изменять их.

Таблица 7.2. Инструкции языка манипулирования данными (DML)

Инструкция Назначение
SELECT Выполнение запроса к базе данных с целью отбора записей, удовлетворяющих заданным критериям
INSERT Добавление записей в таблицы базы данных
UPDATE Изменение значений отдельных записей и полей
DELETE Удаление записей из базы данных

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

Таблица 7.3. Основные предложения языка SQL

Инструкция Назначение
FROM Указывает имя таблицы, из которой должны быть отобраны данные
WHERE Специфицирует условия, которым должны удовлетворять выбираемые данные
GROUP BY Определяет, что выбираемые записи должны быть сгруппированы
HAVING Задает условие, которому должна удовлетворять каждая группа отобранных записей
ORDER BY Специфицирует порядок сортировки записей

Примером простейшего применения инструкции SELECT может служить команда на выборку всех данных из таблицы Фирмы:

SELECT * FROM Фирмы;

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

SELECT Int([УстФонд]/500)*500 AS Диапазон,
Count(КодФирмы) AS ЧислоФирм
FROM Фирмы
GROUP BY Int([УстФонд]/500)*500;

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

Таблица 7.4. Инструкции языка управления транзакциями

Инструкция Назначение
COMMIT Фиксация в базе данных всех изменений, сделанных текущей транзакцией
SAVEPOINT Установка точки сохранения (начала транзакции)
ROLLBACK Откат изменений, сделанных с момента начала транзакции

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

Программные системы управления базами данных

Кратко остановимся на конкретных программных продуктах, относящихся к классу СУБД. На самом общем уровне все СУБД можно разделить:
— на профессиональные, или промышленные;
— персональные (настольные).
Профессиональные (промышленные) СУБД представляют собой программную основу для разработки автоматизированных систем управления крупными экономическими объектами. На их базе создаются комплексы управления и обработки информации крупных предприятий, банков или даже целых отраслей. Первостепенными условиями, которым должны удовлетворять профессиональные СУБД, являются:
— возможность организации совместной параллельной работы большого количества пользователей;
— масштабируемость, то есть возможность роста системы пропорционально расширению управляемого объекта;
— переносимость на различные аппаратные и программные платформы;
— устойчивость по отношению к сбоям различного рода, в том числе наличие многоуровневой системы резервирования хранимой информации;
— обеспечение безопасности хранимых данных и развитой структурированной системы доступа к ним.
Промышленные СУБД к настоящему моменту имеют уже достаточно богатую историю развития. В частности, можно отметить, что в конце 70-х — начале 80-х годов в автоматизированных системах, построенных на базе больших вычислительных машин, активно использовалась СУБД Adabas. В настоящее время характерными представителями профессиональных СУБД являются такие программные продукты, как Oracle, DB2, Sybase, Informix, Ingres, Progress.
Основоположниками СУБД Oracle стала группа американских разработчиков (Ларри Эллисбн, Роберт Майнер и Эдвард Оутс), которые более двадцати лет тому назад создали фирму Relational Software Inc. и поставили перед собой задачу создать систему, на практике реализующую идеи, изложенные в работах Э. Ф. Кодда И К. Дж. Дейта. Результатом их деятельности стала реализация переносимой реляционной системы управления базами данных с базовым языком обработки SQL. В 1979 г. заказчикам была представлена версия Oracle для мини-компьютеров PDP-11 фирмы Digital Equipment Corporation сразу для нескольких операционных систем: RSX- 11, IAS, RSTS и UNIX. Чуть позже Oracle был перенесен на компьютеры VAX под управлением VAX VMS. Значительная часть кода была написана на ассемблере, и поэтому процесс переноса системы на новую платформу требовал значительных усилий. Основным отличием Oracle очередной, третьей версии было то, что она была полностью написана на языке С. Такое решение обеспечивало переносимость системы на многие новые платформы, в частности, на различные клоны UNIX. Второй важной особенностью новой (1983 г.) версии была поддержка концепции транзакции. Примерно в это же время фирма получила новое имя — Oracle Corporation — и заняла лидирующее место на рынке производителей СУБД. Четвертая версия Oracle характеризовалась расширением перечня поддерживаемых платформ и операционных систем. Oracle был перенесен как на большие ЭВМ фирмы IBM (мэйнфреймы), так и на персональные компьютеры, работающие под управлением MS DOS. Именно в четвертой версии был сделан важный шаг в развитии технологии поддержки целостности баз данных. Для многопользовательских систем было предложено оригинальное решение Oracle поддержки «непротиворечивости чтения». В пятой версии была впервые реализована СУБД с архитектурой «клиент- сервер». Последующие версии СУБД Oracle были ориентированы на построение крупномасштабных систем обработки транзакций, изменение методов реализации систем ввода/вывода, буферизации, подсистем управления параллельным доступом, резервирования и восстановления. Также была реализована поддержка симметричных мультипроцессорных архитектур.
Проект и экспериментальный вариант СУБД Ingres были разработаны в университете Беркли под руководством одного из наиболее известных в мире ученых и специалистов в области баз данных Майкла Стоунбрейкера. С самого начала СУБД Ingres разрабатывалась как мобильная система, функционирующая в среде ОС UNIX. Первая версия Ingres была рассчитана на 16-разрядные компьютеры и работала главным образом на машинах серии PDP. Это была первая СУБД, распространяемая бесплатно для использования в университетах. Впоследствии группа Стоунбрейкера перенесла Ingres в среду ОС UNIX BSD, которая также была разработана в университете Беркли. Семейство СУБД Ingres из университета Беркли принято называть университетской Ingres. В начале 80-х была образована компания RTI (Relational Technology Inc.), которая разработала и стала продвигать коммерческую версию СУБД Ingres. В настоящее время коммерческая Ingres поддерживается, развивается и продается компанией Computer Associates. Сейчас это одна из наиболее развитых коммерческих реляционных СУБД. В то же время, по поводу университетской Ingres имеется много высококачественных публикаций. Более того, университетскую Ingres можно опробовать на практике и даже посмотреть ее исходные тексты.
Перечисленные выше (для СУБД Oracle) тенденции носят универсальный характер и определяют пути развития других программных продуктов, что вполне объясняется жесткой конкурентной ситуацией, сложившейся на данном рынке.
Персональные системы управления данными — это программное обеспечение, ориентированное на решение задач локального пользователя или компактной группы пользователей и предназначенное для использования на микроЭВМ (персональном компьютере). Это объясняет и их второе название — настольные. Определяющими характеристиками настольных систем являются:
— относительная простота эксплуатации, позволяющая создавать на их основе работоспособные приложения как «продвинутым» пользователям, так и тем, чья квалификация невысока;
— относительно ограниченные требования к аппаратным ресурсам.
Исторически первой среди персональных СУБД, получивших массовое распространение, стала Dbase фирмы Ashton-Tate (впоследствии права на нее перешли к фирме Borland, а с 1999 г. данная программа поддерживается фирмой dBASE Inc.). В дальнейшем серия реляционных персональных СУБД пополнилась такими продуктами, как FoxBase/FoxPRO (Fox Software, в дальнейшем — Microsoft), Clipper (Nantucket, затем — Computer Associates), R:base (Microrim), Paradox (Borland, на настоящий момент правами владеет фирма Corel), Access (Microsoft), Approach (Lotus).
Завоевавшие широкую популярность в России системы Dbase, FoxPRO и Clipper работали с таблицами данных, размещавшихся в файлах, имевших расширение *.dbf (термин dbf-формат стал общепринятым). Впоследствии семейство этих баз данных получило интегрированное наименование Xbase.
Несмотря на неизбежные различия, обусловливавшиеся замыслами разработчиков, все перечисленные системы в ходе своей эволюции приобрели ряд общих конструктивных черт, среди которых, прежде всего, могут быть названы:
— наличие визуального интерфейса, автоматизирующего процесс создания средств манипуляции данными, — экранных форм, шаблонов отчетов, запросов и т. п.;
— наличие инструментов создания объектов базы данных в режиме диалога: Experts в Paradox, Wizards в Access, Assistants в Approach;
— наличие развитого инструментария создания программных расширений в рамках единой среды СУБД: язык разработки приложений PAL в Paradox, VBA (Visual Basic for Applications) в Access, Lotus Script в Approach;
— встроенная поддержка универсальных языков управления данными, например SQL или QBE (Query By Example).
Среди СУБД, которые, условно говоря, занимают промежуточное положение между настольными и промышленными системами, могут быть названы SQLWindows/ SQLBase фирмы Centura (до 1996 г. Gupta), InterBase (Borland), наконец, Microsoft SQL Server.
В завершении раздела необходимо отметить, что в последние годы наметилась устойчивая тенденция к стиранию четких граней между настольными и профессиональными системами. Последнее, в первую очередь, объясняется тем, что разработчики в стремлении максимально расширить потенциальный рынок для своих продуктов постоянно расширяют набор их функциональных характеристик.

Базы данных

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

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

• хранение данных и их защита;

• изменение (обновление, добавление и удаление) хранимых данных;

• поиск и отбор данных по запросам пользователей;

• обработка данных и вывод результатов.

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

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

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

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

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

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

Такая независимость достигается поддерживаемым СУБД многоуровневым представлением данных в БД на логическом (пользовательском) и физическом уровнях.

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

Средства для создания баз данных

Файловые системы

Развитие основных понятий представления данных

Любой вычислительный процесс представляет собой отображение некоторых входных данных в выходные.

Соотношение сложности представления обрабатываемых данных и алгоритма вычислений определяет два класса задач:

— вычислительные задачи – достаточно простое представление данных и сложный процесс вычислений;

— задачи обработки данных (невычислительные задачи) – простой алгоритм обработки данных и сложное представление обрабатываемых данных.

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

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

Недостатки файловых систем

1. Структура записи файла известна только программе, в которой он создан. Изменение структуры требует изменения программ, использующих этот файл с данными. Таким образом, программы зависят от данных.

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

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

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

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

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

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

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

Основные функции системы управления базами данных.

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

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

3. Обеспечение независимости прикладных программ и (логической и физической независимости).

4. Защита логической целостности базы данных.

5. Защита физической целостности.

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

7. Синхронизация работы нескольких пользователей.

8. Управление ресурсами среды хранения.

9. Поддержка деятельности системного персонала.

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

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

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

4. Защита логической целостности базы данных.

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

5. Защита физической целостности. При работе ЭВМ возможны сбои в работе (например, из-за отключения электропитания), повреждение машинных носителей данных. При этом могут быть нарушены связи между данными, что приводит к невозможности дальнейшей работы. Развитые СУБД имеют средства восстановления базы данных. Важнейшим используемым понятием является понятие «транзакции». Транзакция – это единица действий, производимых с базой данных. В состав транзакции может входить несколько операторов изменения базы данных, но либо выполняются все эти операторы, либо не выполняется ни один. СУБД, кроме ведения собственно базы данных, ведет также журнал транзакций.

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

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

Использование механизма транзакций позволяет находить решение в этом и подобных случаях. Перед выполнением первого действия выдается команда начала транзакции. В транзакцию включается операция снятия денег на одном счете и увеличения суммы на другом счете. Оператор завершения транзакций обычно называется COMMIT. Поскольку после выполнения первого действия транзакция не была завершена, изменения не будут внесены в базу данных. Изменения вносятся (фиксируются) только после завершения транзакции. До выдачи данного оператора сохранения данных в базе не произойдет. В нашем примере, поскольку оператор фиксации транзакции не был выдан, база данных «откатится» в первоначальное состояние – иными словами, суммы на счетах клиентов останутся те же, что и были до начала транзакции. Администратор базы данных может отслеживать состояние транзакций и в необходимых случаях вручную «откатывать» транзакции.

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

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

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

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

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

7. Синхронизация работы нескольких пользователей.

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

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

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

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

8. Управление ресурсами среды хранения.

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

9. Поддержка деятельности системного персонала.

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

Классификация СУБД

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

По характеру использования СУБД делят на персональные (СУБДП) и многопользовательские (СУБДМ).

К персональным СУБД относятся Visual FoxPro , Paradox , Clipper , dBase , Access и др. К многопользовательским СУБД относятся, например, СУБД Oracle и Informix . Многопользовательские СУБД включают в себя сервер БД и клиентскую часть, работают в неоднородной вычислительной среде — допускаются разные типы ЭВМ и различные операционные системы. Поэтому на базе СУБДМ можно создать информационную систему, функционирующую по технологии клиент-сервер. Универсальность многопользовательских СУБД отражается соответственно на высокой цене и компьютерных ресурсах, требуемых для их поддержки.

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

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

Управляющим компонентом многих СУБД является ядро, выполняющее следующие функции:

— управление данными во внешней памяти;

— управление буферами оперативной памяти (рабочими областями, в которые осуществляется подкачка данных из базы для повышения скорости работы);

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

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

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

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

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

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

Поддержка функционирования в сети обеспечивается:

• средствами управления доступом пользователей к совместно используемым данным, т. е. средствами блокировки файлов (таблиц), записей, полей, которые в разной степени реализованы в разных СУБДП;

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

Поддержка взаимодействия с Windows-приложениями позволяет СУБДП внедрять в отчет сведения, хранящиеся в файлах, созданных с помощью других приложений, например, в документе Word или в рабочей книге Excel , включая графику и звук. Для этого в СУБДП поддерживаются механизмы, разработанные для среды Windows , такие как: DDE < Dynamic Data Exchange динамический обмен данными) и OLE < Object Linking and Embedding связывание и внедрение объектов).

Уровни представления данных

Современные подходы к созданию БД предполагают их трёхуровневую организацию. Этот способ организации БД был предложен American National Standards Institute ( ANSI ) и используется повсеместно.

На самом верхнем (внешнем) уровне может быть множество моделей. Этот уровень определяет точку зрения на БД отдельных пользователей (приложений). Каждое приложение видит и обрабатывает только те данные, которые необходимы именно ему.

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

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

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

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

Классификация моделей данных

Модель данных – это набор правил, по которым организуются данные.

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

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

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL