Мировые информационные ресурсы Базы данных как информационный ресурс
Литература М. П. Малыхина. Базы данных. Основы, проектирование, использование. БХВ- Петербург, 2006 г. К. Дж. Дейт. Введение в системы баз данных. 8-е изд. М.: Вильямс, 2006 г. В. В. Дунаев: Базы данных. Язык SQL для студента. БХВ-Петербург, 2007 г.
Предметная область Предметная область – это набор объектов, представляющих интерес для пользователей, когда реальный мир отображается совокупностью конкретных или абстрактных понятий, между которыми фиксируются определенные связи.
именованная совокупность структурированных данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области. База данных (БД) - именованная совокупность структурированных данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области. Система управления базами данных (СУБД) - это система, обеспечивающая ввод данных в БД, их хранение и восстановление в случае сбоев, манипулирование данными, поиск и вывод данных по запросу пользователя.
Системы управления базами данных В СУБД можно выделить ядро СУБД, обеспечивающее организацию ввода, обработки и хранения данных, а также средства тестирования и утилиты, обеспечивающие выполнение вспомогательных функций. Важной компонентой СУБД являются трансляторы или компиляторы для используемых ею языковых средств.
Языковые средства Языковые средства должны обеспечить интерфейс пользователей и прикладных приложений разных категорий с БД. Примером языкового средства, широко применяемого при манипулировании информацией в БД, являются различные модификации языка структурированных запросов (SQL).
Пользователи БД Администратор БД лицо, определяющее правила манипулирования данными в БД, устанавливает доступ различных пользователей к различным участках информационной базы. В задачи администратора входит определение общих правил работы с информацией в базе данных, выполнение установочных и регламентных работ по обеспечению сохранности информации. Пользователь БД лицо, выполняющее операции по вводу информации в БД, запуск различных модулей обработки данных, вывода информации в электронном виде или на бумажных носителях. Права пользователей устанавливаются администратором системы и определяются организационной схемой управления предприятием.
Локальные и распределенные БД Базы данных могут быть расположены на одном компьютере (локальные базы данных) или на нескольких, соединенных между собой вычислительной сетью, компьютерах (распределенные базы данных). Локальные базы эффективны при работе одного или нескольких пользователей. В этом случае разграничение полномочий осуществляется административным путем. Распределенные базы данных позволяют организовать доступ к информации множества удаленных пользователей, и требует развитых форм администрирования доступа к данным. Такими требованиями являются: –централизованное управление распределенными данными, –поддержка целостности, актуальности и непротиворечивости данных, –обеспечение защиты информации, –повышение эффективности доступа к данным.
По функциональному назначению БД делят на: системы оперативной обработки транзакций (OLTP-системы, Online Transaction Processing); системы делового анализа / хранилища данных (OLAP-системы, Online Analysis Processing).
Это основа каждодневного функционирования предприятия: принятие заказов клиентов, учет сырья, складской учет, учет оплаты продукции, т.е. главным образом учетные функции. Базы данных оперативной обработки транзакций
Используются для принятия решений на основе сбора и анализа большого объема информации. Их главные пользователи менеджеры, служащие планового отдела и отдела маркетинга. Базы данных делового анализа
Если в БД оперативной обработки транзакций основные операции это небольшие по объему транзакции, состоящие из простых запросов как на выборку, так и на вставку и обновление небольшого количества строк, то в БД делового анализа практически 100% операций являются операциями выборки (чтения) строк, причем количество отбираемых (анализируемых) строк может достигать нескольких миллионов.
БД, которые являются мировыми ресурсами, т.е используются в мировой сети, имеют приоритет международных. Доступ в такие БД может быть ограничен.
Система разграничения прав доступа должна выполнять следующие функции: блокировать доступ незарегистрированных пользователей в систему; определять права пользователей в системе и ограничивать действия пользователей в соответствии с этими правами; вести журнал регистрации системных событий.
Информационно-логические модели Организация хранения информации в базе данных требует использования определенной абстрактной модели. Основное назначение логической модели данных систематизация различной информации и отражение ее свойств по содержанию, структуре связям с учетом требования удовлетворения потребностей различных пользователей. Эффективность логической модели зависит от степени отражения моделируемой предметной области. При построении логических моделей данных выбирается один из подходов: иерархический, сетевой, реляционный.
Распределенная обработка данных
Системы распределенной обработки данных. Системы распределенных баз данных.
Пользователь БД программа или человек, обращающийся к БД на ЯМД. Запрос процесс обращения пользователя к БД с целью ввода, получения или изменения информации в БД. Транзакция последовательность операций модификации данных в БД, переводящая БД из одного непротиворечивого состояния в другое непротиворечивое состояние. Логическая структура БД определение БД на физически независимом уровне, ближе всего соответствует концептуальной модели БД. Топология БД = Структура распределенной БД схема распределения физической БД по сети. Локальная автономность означает, что информация локальной БД и связанные с ней определения данных принадлежат локальному владельцу и им управляются.
Удаленный запрос запрос, который выполняется с использованием средств удаленной связи. Возможность реализации удаленной транзакции обработка одной транзакции, состоящей из множества SQL-запросов на одном удаленном узле. Поддержка распределенной транзакции допускает обработку транзакции, состоящей из нескольких запросов SQL, которые выполняются на нескольких узлах сети (удаленных или локальных), но каждый запрос в этом случае обрабатывается только на одном узле, т. е. запросы не являются распределенными. При обработке одной распределенной транзакции разные локальные запросы могут обрабатываться в разных узлах сети. Распределенный запрос запрос, при обработке которого используются данные из БД, расположенные в разных узлах сети.
Модели «клиент-сервер» в технологии баз данных Термин «клиент-сервер» исходно применялся к архитектуре ПО, которое описывало распределение процесса выполнения по принципу взаимодействия двух программных процессов, один из которых в этой модели назывался «клиентом», а другой «сервером». Клиентский процесс запрашивал некоторые услуги, а серверный процесс обеспечивал их выполнение. При этом предполагалось, что один серверный процесс может обслужить множество клиентских процессов.
Основной принцип технологии «клиент-сервер» применительно к технологии баз данных заключается в разделении функций стандартного интерактивного приложения на 5 групп, имеющих различную природу: функции ввода и отображения данных (Presentation Logic); прикладные функции, определяющие основные алгоритмы решения задач приложения (Business Logic); функции обработки данных внутри приложения (Database Logic), функции управления информационными ресурсами (Database Manager System); служебные функции, играющие роль связок между функциями первых четырех групп.
Структура типового приложения, работающего с базой данных
В централизованной архитектуре (Host-based processing) эти части приложения располагаются в единой среде и комбинируются внутри одной исполняемой программы. В децентрализованной архитектуре эти задачи могут быть по-разному распределены между серверным и клиентским процессами. В зависимости от характера распределения можно выделить следующие модели распределений : распределенная презентация (Distribution presentation, DP); удаленная презентация (Remote Presentation, RP); распределенная бизнес-логика (Remote business logic, RBL); распределенное управление данными (Distributed data management, DDM); удаленное управление данными (Remote data management, RDA).
Двухуровневые модели Модель удаленного управления данными. Модель файлового сервера Модель удаленного управления данными также называется моделью файлового сервера (File Server, FS). В этой модели презентационная логика и бизнес-логика располагаются на клиенте. На сервере располагаются файлы с данными и поддерживается доступ к файлам. Функции управления информационными ресурсами в этой модели находятся на клиенте.
Модель удаленного доступа к данным В модели удаленного доступа (Remote Data Access, RDA) БД хранится на сервере. На сервере же находится ядро СУБД. На клиенте располагается презентационная логика и бизнес-логика приложения. Клиент обращается к серверу с запросами на языке SQL.
Модель сервера баз данных Данную модель поддерживают большинство современных СУБД: Informix, Ingres, Sybase, Oracle, MS SQL Server. Основу данной модели составляет механизм хранимых процедур как средство программирования SQL-сервера, механизм триггеров как механизм отслеживания текущего состояния информационного хранилища и механизм ограничений на пользовательские типы данных, который иногда называется механизмом поддержки доменной структуры. Триггеры - это программы, которые выполняются ядром СУБД перед или после обновления (UPDATE, INSERT, DELETE) таблицы БД. Они позволяют автоматически поддерживать целостность БД.
Модель сервера приложений Эта модель является расширением двухуровневой модели и в ней вводится дополнительный промежуточный уровень между клиентом и сервером.
Модели серверов баз данных Взаимодействие пользовательских и клиентских процессов в модели «один- к-одному»
Многопотоковая одно серверная архитектура
Архитектура с виртуальным сервером
Многопотоковая мультисерверная архитектура
Примеры серверов баз данных MS SQL Server PostgreSQL Oracle MySQL
Сервер данных MySQL и его возможности MySQL это популярный сервер данных, применяемый при создании Web-сайтов.
MySQL весьма быстрый и нетребовательный к ресурсам компьютера сервер данных. Возможностей MySQL вполне хватает для создания Web-сайтов. MySQL распространяется бесплатно, более того его исходные тексты открыты для изучения и доработки. MySQL прекрасно работает в связке с РНР, технологии создания активных серверных Web-страниц.
MySQL поддерживает запросы SQL, одновременный доступ нескольких пользователей к базам данных, индексы, права, множество типов данных и пр.
Можно давать отдельные права на выполнение разных видов запросов SQL. Атрибут прав SELECT дает пользователю возможность извлекать данные из таблицы. Права на добавление записей дает атрибут INSERT, на изменение UPDATE, а на удаление DELETE. Также можно дать права на создание, изменение и удаление таблиц и индексов, выполнение служебных операций и пр.
Сервер данных MySQL и его возможности MySQL это популярный сервер данных, применяемый при создании Web-сайтов.
Можно также задать интернет-адрес компьютера, с которого данный пользователь может подключаться к серверу. Фактически интернет-адрес компьютера в MySQL является частью имени пользователя, которое в этом случае записывается вот то есть как адрес электронной почты.
Схема взаимодействия клиента данных с сервером : 1. Клиент данных формирует запрос на языке SQL. 2. Клиент данных передает сформированный запрос клиентской части сервера данных, установленной на клиентском компьютере. 3. Клиентская часть "упаковывает" принятый запрос в сетевые пакеты и передает его серверу данных. 4. Сервер данных принимает запрос, расшифровывает его, выполняет и отсылает результат обратно. 5. Клиентская часть сервера данных принимает результат, "распаковывает" его и возвращает клиенту данных. 6. Клиент данных принимает результат и выводит его на экран либо предпринимает какие-то действия (например, сообщает пользователю об ошибке).
Например: Пользователь root имеет право подключаться к серверу данных только с локального компьютера (localhost).
Пользователь remote_user может подключиться к серверу только с компьютера dev.domain.ru и ни с какого другого (даже локального).
Если нужно дать пользователю возможность подключаться с любого компьютера, нужно будет вместо интернет-адреса подставить шаблон %, задающий любой интернет-адрес. Например: Пользователь travelling_user может подключаться к серверу с любого компьютера и локального, и удаленного.
Шаблон % можно использовать и вместо имени пользователя; тогда он будет задавать любого пользователя. Так, если написать localhost то с локального компьютера к серверу сможет подключиться любой пользователь (с любым именем, даже если оно явно не записано в списке пользователей). А если записать то к серверу сможет подключиться любой пользователь с любого компьютера (такому пользователю будет нужно дать минимальные права).
MySQL весьма быстрый и нетребовательный к ресурсам компьютера сервер данных. Возможностей MySQL вполне хватает для создания Web-сайтов. MySQL распространяется бесплатно. MySQL прекрасно работает в связке с РНР, технологии создания активных серверных Web-страниц.
Возможности MySQL аналогичны возможностям других серверов данных. MySQL поддерживает запросы SQL, одновременный доступ нескольких пользователей к базам данных, индексы, права, множество типов данных и пр.
ОСНОВНЫЕ ПОНЯТИЯ И КОМПОНЕНТЫ MySQL Каталог данных - содержит всю информацию, которая управляется серверной СУБД MySQL (базы данных, таблицы, файлы состояния). База данных - каждая БД представляет собой подкаталог в каталоге «каталога данных» Таблица - это три специальных файла размещенных внутри каталога «базы данных» для каждой таблицы. файл формы (описания)(.frm) файл данных (.MYD) файл индексов (.MYI)
Примеры файлов состояний MySQL.err журнал ошибок.log общий журнал.nnn журнал обновлений
Оболочка phpMyAdmin
Можно давать отдельные права на выполнение разных видов запросов SQL. Так, чтобы дать пользователю возможность извлекать данные из таблицы с помощью запроса SELECT, нужно использовать атрибут прав, который так и называется SELECT. Соответственно, права на добавление записей дает атрибут INSERT, на изменение UPDATE, а на удаление DELETE. Также можно дать права на создание, изменение и удаление таблиц и индексов, выполнение служебных операций и пр.
Кроме имени пользователя и пароля, MySQL позволяет также задать интернет-адрес компьютера, с которого данный пользователь может подключаться к серверу. Фактически интернет-адрес компьютера в MySQL является частью имени пользователя, которое в этом случае записывается вот то есть как адрес электронной почты.
Например: Пользователь root имеет право подключаться к серверу данных только с локального компьютера (интернет- адрес localhost) (пользователь root обычно является администратором сервера и, соответственно, имеет максимальные права).
А пользователь remote_user может подключиться к серверу только с компьютера dev.domain.ru и ни с какого другого (даже локального). Если нужно дать пользователю возможность подключаться с любого компьютера, нужно будет вместо интернет-адреса подставить шаблон %, задающий любой интернет-адрес. Например: Пользователь travelling_user может подключаться к серверу с любого компьютера и локального, и удаленного
Шаблон % можно использовать и вместо имени пользователя; тогда он будет задавать любого пользователя. Так, если написать localhost то с локального компьютера к серверу сможет подключиться любой пользователь (с любым именем, даже если оно явно не записано в списке пользователей). А если записать то к серверу сможет подключиться любой пользователь с любого компьютера. Конечно, такому пользователю будет нужно дать минимальные права.
MySQL свободная система управления базами данных (СУБД).свободнаясистема управления базами данных MySQL является собственностью компании Sun Microsystems, осуществляющей разработку и поддержку приложения.Sun Microsystems Распространяется под GNU General Public License и под собственной коммерческой лицензией, на выбор. Помимо этого разработчики создают функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.GNU General Public Licenseрепликации MySQL является решением для малых и средних приложений. Входит в LAMP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.LAMP Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.MyISAM InnoDB