Лучшие системы управления базами данных для малого бизнеса. Определения основных понятий. Сетевая база данных

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

База данных (БД) – совокупность специально организованных и логически упорядоченных данных.

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

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

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

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

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

  • иерархическую;
  • сетевую;
  • реляционную.

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

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

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

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

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

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

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

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

Прежде всего рассмотрим три главных элемента пользовательского интерфейса MS Access 2010 (МА 2010).

  • Лента . Область вверху окна приложения, которая содержит группы команд.
  • . Перечень команд на вкладке Файл, которая помещается на ленте.
  • . Область в левой части окна МА 2010, созданная для работы с объектами базы данных. Область навигации заменила собой окно базы данных в Access 2007.

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

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

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

Режим Backstage является новинкой, созданной в МА 2010. Этот режим включает команды и сведения, которые можно применить ко всей базе данных, например Сжать и восстановить, и команды, которые в более ранних версиях МА находились в меню Файл, например Печать.

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

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

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

Рис. 3.24.

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

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

  • 1. Активировать МА при помощи меню Пуск
  • 2. Запустить одну из приведенных ниже процедур.
  • а) Создание веб-базы данных:
    • – в группе Доступные шаблоны выбрать пункт Пустая веб-база данных;
    • – справа в разделе Пустая веб-база данных в поле Имя файла
    • – щелкнуть кнопку Создать.
  • б) Создание базы данных на компьютере:
    • – в группе Доступные шаблоны нажать пункт Пустая база данных;
    • – справа в разделе Пустая база данных в поле Имя файла набрать наименование файла базы данных или воспользоваться наименованием по умолчанию;
    • – нажать кнопку Создать.

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

МЛ 2010 включает перечень шаблонов, к тому же существует возможность загрузки дополнительных шаблонов с веб-сайта Office.com. Шаблон МА является готовой базой данных с таблицами, разработанными на профессиональном уровне, а также содержащей формы и отчеты. Шаблоны дают возможность сократить время прохождения начальных этапов создания базы данных.

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

  • Пуск или воспользовавшись ярлыком. Запустится представление Backstage.
  • 2. Нажать пункт Образец шаблона и просмотреть перечень доступных шаблонов.
  • 3. Выбрать нужный шаблон.
  • 4. Справа в окне "Имя файла" набрать наименование файла или воспользоваться наименованием по умолчанию.
  • 5. Щелкнуть кнопку Создать.

Приложение МА 2010 на основе выбранного шаблона создаст новую базу данных и откроет ее.

Существует возможность загрузить дополнительные шаблоны МА 2010 с веб-сайта Office.com через представление Backstage.

Создание базы данных из шаблона Office.com.

  • 1. Активировать МА 2010 при помощи меню Пуск или с использованием ярлыка. Запустится представление Backstage.
  • 2. На панели Шаблоны Office.com отметить категорию и необходимый шаблон. Нужный шаблон можно найти также с помощью окна поиска.
  • 3. В поле Имя файла набрать наименование файла или использовать наименование по умолчанию.
  • 4. Щелкнуть кнопку Загрузить.

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

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

  • 1. Активировать МА 2010.
  • 2. В представлении Backstage нажать пункт Недавние и выбрать базу данных, которую требуется открыть. Приложение МА откроет базу данных.

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

  • 1. Активировать М А 2010.
  • 2. На вкладке Файл щелкнуть кнопку Открыть. В диалоговом окне Открытие отметить файл и щелкнуть кнопку Открыть. Откроется база данных.

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

Когда база данных открывается, лента отображается вверху главного окна МА 2010. В этот момент она включает команды активной вкладки команд (рис. 3.25).

Рис. 3.25.

Лента включает перечень вкладок с командами. В МА 2010 главные вкладки команд – Файл, Главная, Создание, Внешние данные и Работа с базами данных . Любая вкладка включает группу взаимосвязанных команд, которые, в свою очередь, открывают другие новые компоненты интерфейса, например коллекцию – совершенно новый элемент управления, который позволяет наглядно выбирать варианты управления.

Команды ленты должны соответствовать объекту, который в настоящее время активен. Например, если открыть таблицу в режиме таблицы и щелкнуть по кнопке Форма на вкладке Создание в группе Формы , приложение МА 2010 создаст форму на основе активной таблицы. Таким образом, наименование активной таблицы будет указано в свойстве формы RecordSource (источник записей). Необходимо учитывать, что определенные вкладки ленты отображаются исключительно в соответствующем контексте. Например, вкладка Конструктор отображается исключительно в момент открытия объекта в режиме конструктора.

Работа с лентой может быть удобна при использовании некоторых комбинаций клавиш. При этом все комбинации клавиш из предшествующей версии МА действуют по-прежнему. Однако вместо клавиш активации меню, которые применялись в предыдущих версиях МА, действует система доступа к элементам управления с клавиатуры. Эта система использует специальные индикаторы с одной или несколькими буквами, появляющиеся на ленте при нажатии клавиши ALT. Данные индикаторы указывают на клавиши, которые соответствуют элементам управления.

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

Выбор вкладки с командами . Чтобы осуществить это действие, необходимо выполнить следующее.

  • 1. Активировать МА 2010.
  • 2. Выбрать требуемую вкладку.
  • 1. Активировать МА 2010.
  • 2. Нажать и отпустить клавишу ALT. После этого отобразятся подсказки по доступу с клавиатуры.
  • 3. Щелкнуть клавишу или клавиши, которые указаны в подсказке возле требуемой вкладки.

Существует несколько вариантов исполнения команд. Самый простой из них – это использование комбинаций клавиш, которые связаны с командами. Комбинациями клавиш из предшествующей версии МА можно воспользоваться и в МА 2010.

Выполнение команды:

  • 1) активировать МА 2010;
  • 2) выбрать вкладку с требуемой командой;
  • 3) нажать элемент управления, который соответствует команде. Если комбинация клавиш для данной команды уже известна из предшествующей версии МА, нажмите ее;
  • 1) нажать и отпустить клавишу ALT. Отобразятся подсказки по доступу с клавиатуры;
  • 2) щелкнуть клавишу или клавиши, которые указаны в подсказке, связанной с требуемой командой.

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

Таблица 3.1

Вкладки и команды Access 2010

Вкладка команд

Возможные действия

Выбор другого представления

Копирование и вставка данных из буфера обмена

Задание свойств текущего шрифта

Установка текущего выравнивания шрифта

Применение форматирования к полю MEMO

Работа с записями (обновление, создание, сохранение, удаление, итоги, орфография, дополнительно)

Сортировка и фильтрация записей

Поиск записей

Создание

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

Создание таблицы на основе шаблона

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

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

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

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

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

Создание запроса, макроса, модуля или модуля класса

Внешние данные

Импорт или связывание внешних данных

Экспорт данных

Сбор и обновление данных по электронной почте

Создание сохраненных операций импорта и экспорта

Запуск диспетчера связанных таблиц

Работа с базами данных

Перенос некоторых или всех частей базы данных на новый или существующий сайт SharePoint

Запуск редактора Visual Basic или выполнение макроса

Создание и просмотр отношений между таблицами

Показ или скрытие зависимостей объектов

Запуск архивариуса или анализ производительности

Перемещение данных в Microsoft SQL Server или базу данных Access (только таблицы)

Управление надстройками Access

Создание или изменение модуля VBA

Кроме обычных вкладок команд в МА 2010 появились также контекстные вкладки (рис. 3.26). В соответствии с контекстом (т.е. с тем, каким объектом пользователь занят в данный момент и какие именно действия он исполняет) рядом с обычными вкладками команд могут отображаться контекстные вкладки.

Рис. 3.26.

Для активации контекстной вкладки с командами нужно сделать следующее:

Нажать контекстную вкладку;

  • нажать и отпустить клавишу ALT. Отобразятся подсказки по доступу с клавиатуры;
  • щелкнуть клавишу или клавиши, которые указаны в подсказке около контекстной вкладки.

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

Коллекции . Кроме всего прочего на ленте находится элемент управления, который получил название Коллекция . Этот элемент был создан для привлечения внимания к требуемым результатам. Коллекция – это элемент управления, который не только показывает команды, но еще и отображает результат исполнения этих команд (рис. 3.27). Главная цель создания этого элемента состоит в том, чтобы дать пользователю возможность найти и выбрать необходимые действия в МА 2010 по виду, сосредоточившись на результате, а не на самих командах.

Рис. 3.27.

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

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

Скрытие и восстановление ленты.

  • 1. Дважды щелкнуть выделенную вкладку команд.
  • 2. Чтобы восстановить ленту, опять дважды щелкнуть текущую вкладку команд.

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

Настройка панели быстрого доступа. Для осуществления этого действия нужно выполнить следующее.

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

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

  • 3. В диалоговом окне Параметры Access выбрать команду или команды, которые необходимо добавить, и щелкнуть кнопку Добавить.
  • 4. Чтобы удалить команду, необходимо выделить ее в перечне команд, который находится справа, и щелкнуть кнопку Удалить. Кроме того, существует возможность просто дважды щелкнуть команду в перечне.
  • 5. Когда действия по удалению команды завершены, щелкнуть кнопку ОК.

Когда открываются уже существующие или вновь созданные базы данных, наименования объектов базы данных отображаются в области навигации (рис. 3.28). К объектам базы данных можно отнести таблицы, формы, отчеты, страницы, макросы и модули. Область навигации по сути выполняет функции окна базы данных, которое присутствовало в предыдущих версиях МА, т.е. если в предыдущих версиях программы для запуска и выполнения задач служило окно базы данных, то в МА 2010 для этого используется область навигации. Например, для добавления строки в таблицу в режиме таблицы необходимо открыть таблицу из области навигации. В веб-браузерах область навигации обычно недоступна. Для того чтобы воспользоваться ей в веб-базе данных, сначала необходимо открыть базу данных в Access.

Рис. 3.28.

Для открытия объекта базы данных или применения к нему команды нужно кликнуть его ПКМ и выбрать команду в контекстном меню. Команды контекстного меню отображаются в зависимости от типа объекта.

Открытие объекта базы данных (например, таблицы, формы или отчета).

Дважды нажать объект в области навигации;

Отметить объект в области навигации и щелкнуть клавишу ВВОД;

В области навигации отметить объект ПКМ и выбрать в контекстном меню команду Открыть.

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

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

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

Отображение и скрытие области навигации. Для осуществления этого действия нужно выполнить следующее:

Щелкнуть кнопку в правом верхнем углу области навигации или клавишу F11.

Для отмены отображения области навигации по умолчанию

нужно выполнить следующее:

  • – на вкладке Файл выбрать пункт Параметры. Отобразиться диалоговое окно Параметры Access;
  • – в левой области отметить пункт Текущая база данных; в разделе Переходы убрать флажок Область переходов и щелкнуть кнопку ОК.

Начиная с Access 2007, для отражения объектов базы данных в программе появилась возможность пользоваться вкладками документов, а не перекрывающимися окнами (рис. 3.29). Это более удобный инструмент. Отображение и скрытие вкладок документов можно настроить при помощи параметров МА 2010. Если пользователь изменяет эти параметры, нужно закрыть и снова открыть базу данных, тогда изменения войдут в силу.

Рис. 3.29.

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

  • 1. На вкладке Файл щелкнуть кнопку Параметры. Отобразится диалоговое окно Параметры Access.
  • 2. В левой области отметить элемент Текущая база данных.
  • 3. В разделе Параметры приложения в группе Параметры окна документа установить переключатель в положение Вкладки.
  • 4. Установить или убрать флажок Если флажка нет, вкладки документов отключены.
  • 5. Щелкнуть кнопку ОК.

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

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

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

Отобразить или убрать строку состояния можно в диалоговом окне Параметры Access.

Отображение и скрытие строки состояния. Для осуществления этого действия нужно выполнить следующее.

  • 1. На вкладке Файл найти пункт Параметры. Отобразится диалоговое окно Параметры Access.
  • 2. Слева отметить пункт Текущая база данных.
  • 3. В разделе Параметры приложений поставить или убрать флажок Строка состояния. Если флажка нет, то строка состояния не отображается.
  • 4. Щелкнуть кнопку ОК.

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

Рис. 3.30.

Форматирование текста с помощью мини-панели инструментов.

  • 1. Отметить текст, который предназначен для форматирования. Над отмеченным текстом отобразится прозрачная мини-панель инструментов.
  • 2. Воспользоваться мини-панелью инструментов для форматирования.

Если необходимо прояснить какие-то вопросы, нужно вызвать справку, нажав клавишу F1 или щелкнув вопросительный знак в правой части ленты (рис. 3.31).

Рис. 3.31.

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

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

В современном мире нужны инструменты, которые бы позволяли хранить, систематизировать и обрабатывать большие объемы информации, с которыми сложно работать в Excel или Word. Подобные хранилища используются для разработки информационных сайтов, интернет-магазинов и бухгалтерских дополнений. Основными средствами, реализующими данный подход, являются MS SQL и MySQL. Продукт от Microsoft Office представляет собой упрощенную версию в функциональном плане и более понятную для неопытных пользователей. Давайте рассмотрим пошагово создание базы данных в Access 2007.

Описание MS Access

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

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

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

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

  1. Предметная область – множество созданных таблиц в базе данных, которые связаны между собой с помощью первичных и вторичных ключей.
  2. Сущность – отдельная таблица базы данных.
  3. Атрибут – заголовок отдельного столбца в таблице.
  4. Кортеж – это строка, принимающая значение всех атрибутов.
  5. Первичный ключ – это уникальное значение (id), которое присваивается каждому кортежу.
  6. Вторичный ключ таблицы «Б» – это уникальное значение таблицы «А», использующееся в таблице «Б».
  7. SQL запрос – это специальное выражение, выполняющее определенное действие с базой данных: добавление, редактирование, удаление полей, создание выборок.

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

Создание БД

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

Итак, выполните следующее:


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

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

После успешного создания БД на экране появится пустая таблица. Для формирования ее структуры и заполнения выполните следующее:



Совет! Для тонкой настройки формата данных перейдите на ленте во вкладку «Режим таблицы» и обратите внимание на блок «Форматирование и тип данных». Там можно кастомизировать формат отображаемых данных.

Создание и редактирование схем данных

Перед тем, как приступить к связыванию двух сущностей, по аналогии с предыдущим пунктом нужно создать и заполнить таблицу «Экзамены». Она имеет следующие атрибуты: «Номер зачетки», «Экзамен1», «Экзамен2», «Экзамен3».

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


Конструктор должен автоматически создать связь, в зависимости от контекста. Если же этого не случилось, то:


Выполнение запросов

Что же делать, если нам нужны студенты, которые учатся только в Москве? Да, в нашей БД только 6 человек, но что, если их будет 6000? Без дополнительных инструментов узнать это будет сложно.

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

Виды запросов

SQL синтаксис реализует принцип CRUD (сокр. от англ. create, read, update, delete - «создать, прочесть, обновить, удалить»). Т.е. с помощью запросов вы сможете реализовать все эти функции.

На выборку

В этом случае в ход вступает принцип «прочесть». Например, нам нужно найти всех студентов, которые учатся в Харькове. Для этого нужно:


А что делать, если нас интересуют студенты из Харькова, стипендии у которых больше 1000? Тогда наш запрос будет выглядеть следующим образом:

SELECT * FROM Студенты WHERE Адрес = «Харьков» AND Стипендия > 1000;

а результирующая таблица примет следующий вид:

На создание сущности

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

  1. Перейти во вкладку «Создание».
  2. Нажать кнопку «Конструктор запросов» в блоке «Другие».
  3. В новом окне нажмите на кнопку SQL, после чего в текстовое поле введите команду:

CREATE TABLE Преподаватели
(КодПреподавателя INT PRIMARY KEY,
Фамилия CHAR(20),
Имя CHAR (15),
Отчество CHAR (15),
Пол CHAR (1),
Дата_рождения DATE,
Основной_предмет CHAR (200));

где «CREATE TABLE» означает создание таблицы «Преподаватели», а «CHAR», «DATE» и «INT» - типы данных для соответствующих значений.


Внимание! В конце каждого запроса должен стоять символ «;». Без него выполнение скрипта приведет к ошибке.

На добавление, удаление, редактирование

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


Создание формы

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


Все базовые функции MS Access 2007 мы уже рассмотрели. Остался последний важный компонент – формирование отчета.

Формирование отчета

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

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

  1. Перейдите во вкладку «Создание».
  2. Нажмите на кнопку «Мастер отчетов» в блоке «Отчеты».

  3. Выберите интересующую таблицу и поля, нужные для печати.

  4. Добавьте необходимый уровень группировки.

  5. Выберите тип сортировки каждого из полей.

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

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

В этой статье

Совместное использование данных с помощью сетевых папок

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

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

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

Совместное использование базы данных с помощью сетевой папки

    Если общая сетевая папка отсутствует, ее нужно настроить.

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

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

    1. Запустите Access и на вкладке Файл выберите пункт Параметры .

      В окне Параметры Access выберите пункт Параметры клиента .

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

    На компьютере каждого пользователя создайте ярлык для файла базы данных. В диалоговом окне "Свойства ярлыка" укажите путь к файлу базы данных в свойстве Цель , используя вместо буквы подключенного диска UNC-адрес. Например, вместо пути F:\sample.accdb укажите путь \\имя_компьютера\shared.accdb .

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

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

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

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

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

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

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

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

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

Если этот метод вам подходит, перейдите к инструкциям в статье Разделение базы данных Access .

Совместное использование базы данных на сайте SharePoint

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

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

Примечание: Если на компьютере установлено приложение Access, можно использовать клиентские объекты из веб-базы данных, а не только объекты веб-базы данных.

Службы Access предоставляют платформу для создания без данных, которые можно использовать в Интернете. Веб-базы данных конструируются и публикуются с использованием Access 2010 и SharePoint, после чего можно использовать веб-базу данных через веб-браузер.

Формы, отчеты и макросы интерфейса выполняются внутри браузера.

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

Запросы и макросы данных выполняются на сервере: вся обработка SQL-кода выполняется на сервере. Это повышает производительность сети, так как по ней передаются лишь результирующие наборы.

Сохранение базы данных в библиотеке документов

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

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

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

    На вкладке Файл выберите пункт Сохранить как .

    Примечание: Если вы используете Access 2010, выберите элементы Файл > Сохранить и опубликовать > Сохранить базу данных как > SharePoint .

    В диалоговом окне Сохранение в SharePoint перейдите к соответствующей библиотеке документов.

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

Дополнительные сведения см. в статьях Публикация в службах Access и Импорт и связывание данных со списком SharePoint .

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

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

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

    Перемещение данных в списки SharePoint.

    Создание ссылок на эти списки.

    Распространение файла базы данных.

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

Использование мастера экспорта таблиц в SharePoint

    На вкладке Работа с базами данных в группе Перенос данных щелкните элемент SharePoint .

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

    Следуйте указаниям мастера экспорта таблиц в SharePoint; в частности, укажите расположение сайта SharePoint. Чтобы отменить процесс, нажмите кнопку Отмена .

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

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

    Когда все действия мастера будут завершены, нажмите кнопку Готово .

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

Примечание: Чтобы просмотреть списки на сайте SharePoint, щелкните в области быстрого запуска кнопку Списки или выберите пункт Просмотреть все содержимое узла . Может потребоваться обновить страницу в веб-браузере. Чтобы отобразить списки в области быстрого запуска на сайте SharePoint или изменить другие параметры (например, включить отслеживание версий), можно изменить параметры списков на сайте SharePoint. Дополнительные сведения см. в справке для сайта SharePoint.

Совместное использование базы данных с помощью сервера

Совместное использование базы данных можно организовать с помощью приложения Access и сервера баз данных (например, сервера SQL Server). Этот способ обеспечивает много преимуществ, но для него требуется дополнительное программное обеспечение - сервер баз данных.

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

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

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

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

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

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

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

Основные этапы использования Access с сервером баз данных

Факторы, которые следует учитывать при выборе метода

Требования метода

Разделение базы данных

Сетевая папка

Сайт SharePoint

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

Необходимость наличия программного обеспечения сервера баз данных

Необходимость наличия SharePoint

Необходимость наличия служб Access на сервере SharePoint

Зависит от сценария:

связывание со списками и сохранение в библиотеке документов не требует наличия служб Access;

публикация в виде веб-базы данных или веб-приложения требует наличия служб Access.

Доступность данных

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

Наилучшая. Подходит для сценариев автономного использования.

Наилучшая

Безопасность

Зависит от дополнительных мер

Наименее безопасный способ

Наилучшая

Наилучшая

Гибкость

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

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

Гибкий способ. Использование разрешений SharePoint для управления доступом и изменения структуры. Позволяет использовать некоторые объекты базы данных, например формы, на основе браузера.

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

1. Понятие СУБД.

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

3. Виды баз данных.

4. Виды структур баз

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

Внесение объекта в базу – только полдела. Его еще нужно как-то характеризовать, связать с ним определенное значение. И тут нужно ввести понятие "данное". Данное – это определенный показатель, характеризующий объект и наделяющий его определенным значением. Причем не обязательно, чтобы объект был определен одним данным – их может быть много. Представь, что ты имеешь дело с хакерской структурой. Хакерство – это объект. А вот данные - это уже хакерские течения, стаж незаконной деятельности, количество написанных эксплойтов и взломанных машин и т.п. Другими словами, данные – это характеристики определенного объекта. Именно это больше всего интересует клиента, обратившегося к пока еще будущей БД.

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

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

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

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

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

Начнем с реляционной модели. В далеком 1969 году американский математик доктор Э.Ф. Кодд (Е.F. Codd) проанализировал сложившуюся к тому времени ситуацию по базам данных и пришел к выводу, что дело плохо. Во всех имевшихся в то время моделях были существенные недостатки: избыточность данных, сложность обработки и отсутствие безопасности хранения информации и т.п. После тягостных раздумий Кодд решил создать свою модель - реляционную. Для тех, кто злостно прогуливал английский, напомню, что relation переводится как "отношение" или просто "таблица". Гениальный доктор просто реализовал хранение данных в табличной форме, то есть организовал такие "хранилища" в виде логических структур (физические методы хранения могут быть любыми). Тем самым Кодд сумел добиться наглядности представления информации и удобства ее обработки. Благодаря достижению этого гения для формирования таблицы данных стало достаточно выполнить определенный логический запрос, подчиняющийся законам булевой алгебры. Среди операторов манипуляции данными существуют минимум три операции: извлечение строк (SELECT), извлечение столбцов (PROJECT) и объединение таблиц (JOIN). В результате этих действий мы получаем таблицу. И простой вывод из всего этого: результатом любой операции в реляционной модели является объект того же рода, что и объект, над которым осуществлялось действие.

Это и есть основное свойство описываемой модели.

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

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

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

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

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

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

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

В теории СУБД выделяется три вида связей: один-к-одному, один-ко-мно-гим и многие-ко-многим. Расскажу подробно о каждом виде.

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

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

3. Многие о ногим. Суть этого типа связи в том, что ключ в одной таблице связывается с ключом другой и наоборот. С этим типом в реляционной модели дела обстоят очень плохо. Точнее, эту связь напрямую вообще никак не реализовать. Чтобы обойти этот недостаток, используется классическое решение: добавляется промежуточное отношение, которое будет связано типом "один-ко-многим" как с первой, так и со второй таблицей. Опять наглядный пример. Имеем два отношения: информация о хакерах и данные о серверах, которые когда-то были взломаны. Если подумать, то мы владеем следующей структурой: одним злоумышленником могут быть хакнуты несколько серверов (так часто и бывает в жизни), а на один сер-вак могут поселиться несколько хакеров (одновременно или последовательно), если админ вовремя не про-патчил баг. Чтобы реализовать подобную схему в реляционной БД, мы добавим промежуточное отношение из двух полей: ник хакера и адрес сервера. Таким образом, эта вспомогательная таблица будет иметь связь "один-ко-многим" как с первым, так и со вторым отношением. Конечно, в этом случае повысится избыточность данных, поэтому эксперты рекомендуют избегать таких связей.

Для каждой модели БД существует свой язык управления. Для реляционной модели таким языком является SQL (Structured Query Language, или структурированный язык запросов). Создатели этого языка стремились максимально приблизить свое детище к человеческому (английскому) языку и при этом наполнить его логическим смыслом.

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

Все SQL-запросы очень похожи на логические условия булевой алгебры (кто не прогуливал матан, тот меня поймет:)). Ты сам в этом убедишься, если посмотришь на врезку с основными командами языка.

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

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

Основные языки обращений к БД все же основываются на простом SQL-синтаксисе и имеют своего рода расширение, применимое к объектам. Примерами таких языков служат ORION, Iris и O2 Reloop.

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

Для нужд обычного человека (то есть тебя) вполне хватит реляционных СУБД, которые применяются повсеместно. Это и всенародно любимый MySQL, и менее любимый Access, и MSSQL. Подобных систем управления масса, определись и выбери ту, что тебе больше по сердцу. А сделать этот нелегкий выбор, как всегда, поможет этот уникальный СПЕЦвыпуск;).

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

Какие бывают базы данных? В большинстве случаев решения программистов ограничиваются двумя типами: локальная и клиент-серверная. В первом случае получается шампунь "все-в-одном". Во втором мы разделяем данные и клиентское приложение и получаем два уровня.

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

ЛОКАЛЬНАЯ БАЗА

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

Яркими и наиболее распространенными представителями такого рода баз являются Dbase (файлы с расширением.dbf), Paradox (расширение.db) и Access (расширение.mdb). Форматы Dbase и Paradox - это даже не базы данных, а таблицы, потому что в одном файле может храниться только одна таблица данных. Индексы, ускоряющие поиск и осуществляющие сортировку, находятся в отдельных файлах. Таким образом, одна база данных может состоять из множества файлов, и это иногда приводит к определенным проблемам при поставке приложения конечному пользователю.

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

Самый главный недостаток локальных баз данных, как говорит юморист М. Задорнов, – "они тупые". Да-да. Качество и скорость доступа напрямую зависит от драйвера. В большинстве из них не было оптимизаторов SQL-запросов и какого-либо кеширо-вания. Возможности железа использовались минимально, поэтому на больших базах запросы выполняются крайне медленно.

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

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

СЕТЕВАЯ БАЗА ДАННЫХ

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

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

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

Я бы побил того, кто придумал такую технологию, потому что это самое настоящее издевательство над системой. Представляешь, что будет, если надо выполнить запрос на базе данных в 1 Гб с телефонным соединением в 34 Кб/с? Это то же самое, что заставить

добывать нефть через трубочку для молочных коктейлей.

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

Но страшнее всего начали вести себя индексы. У таблиц Paradox, если они находились на расшаренном диске Win95, мне приходилось ремонтировать индексы как минимум раз в неделю. Когда я убрал файлы базы данных на сетевой диск сервера NetWare 3.11 (это был где-то 1998 год), проблемы с нарушением индексации сразу исчезли (наверное, потому что это действительно сервер, а не корявый Windows 9x).

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

КЛИЕНТ-СЕРВЕР

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

В технологии клиент-сервер драйвер уже изменил свое назначение, и теперь он уже должен только знать, как подключится к серверу и передать ему запрос. Остальное перекладывается на плечи сервера. Такая технология намного сокращает трафик, особенно при хорошем программировании. Допустим, пользователю нужно увидеть все данные, в которых имя определенной колонки содержит слова на букву "А". Клиен ту достаточно направить серверу всего лишь такой текст:

FROM Имя таблицы

WHERE Колонка LIKE ‘А%’

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

Получив нужные данные, сервер возвращает только их и ничего больше. Таким образом, клиент в любой момент может запросить у сервера нужные данные и не будет необходимости гонять по сети всю базу данных. При хорошо построенном приложении и оптимальных запросах клиент сможет работать с базой данных любого размера даже через модем в 56 Кбит/с. Неплохо? Главное - запрашивать только то, что нужно, и маленькими кусками.

ОСОБЕННОСТИ КЛИЕНТ-СЕРВЕРА

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

В более солидных клиент-серверных базах (MS SQL Server, Oracle и т.д.)

есть следующие дополнительные возможности:

1. вьюшки – более подробно обсуДим в статье по безопасности;

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

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

хранимые процедуры и функции, которые выполняются на сервере по мизерному запросу клиента и могут содержать целые подпрограммы с логикой, которые будут выполнять какие-либо действия; для написания таких программ используется уже не просто язык SQL, а его расширение – Transact-SQL (для MS баз) и PL/SQL (для Oracle и др.).

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

ИНДЕКСЫ НА СЕРВЕРЕ

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

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

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

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

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

ТРЕТИЙ УРОВЕНЬ

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

Я работал в одной фирме (не будем тыкать в нее вилами), у которой было несколько офисов по России, и в каждом из них - парк компьютеров из 20-30 штук. В московском офисе эта цифра превышала сотню. Корпоративные программы обновлялись каждые две недели (вносились изменения, добавления и т.д.). Бедные админы в момент обновлений работали по субботам, чтобы пропатчить софт на каждой машине и убедиться в функциональности. Как решить эту проблему?

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

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

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

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

Виды структур баз

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

Цели использования баз данных

Использование БД в основном обеспечивает:

1. независимость данных и программ;

2. реализацию отношений между данными;

3. совместимость компонентов БД;

4. простоту изменения логической и физической структур БД;

5. целостность, восстановление и защиту БД и др.

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

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

Независимость данных и программ объясняется двумя основными причинами.

1. В разных приложениях одни и те же данные могут понадобиться в различной форме. Например, значения некоторой переменной в программе А нужны в десятичной, а в программе В - в двоичной форме. Эти две формы представления данных могут быть интегрированы, т.е. объединены в одном файле, а существующая избыточность устранена, если программное обеспечение системы данных выполняет необходимые преобразования данных.

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

Отношения между данными . Данные об объектах в БД связаны между собой отношениями (связями). Отношение между объектами А и В обозначим следующим образом:

где F(х) - вид связи объекта А с объектом В; G(х) - вид связи объекта В с объектом А. Функции F(х) и G(х) могут принимать значения U и N - единичная и множественная связи соответственно. Обычно рассматривают четыре типа отношений.

1. Отношение

(один к одному) означает, что каждому экземпляру объ­екта А В и, наоборот, любому экземпляру объекта В может соответствовать только один экземпляр объекта А. Например:

ПРЕДПРИЯТИЕ -- ДИРЕКТОР

2. Отношение

A -- B (1: N )

(один ко многим) означает, что могут существовать экземпляры объекта А, которым соответствует более одного экземпляра объекта В, но каждому экземпляру объекта В может соответствовать только один экземпляр объекта А. Например:

ОРГАНИЗАЦИЯ -- ПОДРАЗДЕЛЕНИЕ (1:N)

3. Отношение

A -- B (1:N )

(многие к одному) означает, что каждому экземпляру объекта А может соответствовать только один экземпляр объекта В и среди экземпляров объекта В могут быть такие, которым соответствует несколько экземпляров объекта А. Очевидно, что если 1: N - тип отношения между А и В, то N : 1 - тип отношения между В и A . Например:

РАБОЧИЙ -- ПРЕДПРИЯТИЕ

4. Отношение

A -- B (M: N )

(многие ко многим, или групповое) означает, что может существовать экземпляр объекта А, которому соответст­вует несколько экземпляров объекта В, и, наоборот, од­ному экземпляру объекта В может соответствовать не­сколько экземпляров объекта А. Очевидно, что если М: N А и В, то N:М - тип отношения между объектами В и А. Например:

ПОСТАВЩИК -- ПРОДУКТ

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

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

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

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

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

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

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

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

mob_info