- •Базы данных
- •1. Введение в базы данных
- •1.1. Базы данных и информационные системы
- •1.2. Архигсюура информационной системы
- •1.3. Системы управления базами данных
- •1.4. Локальные информационные системы
- •1.5. Способы разработки и выполнения приложений
- •1.6. Схема обмена данными при работе с бд
- •2. Модели и типы данных
- •2.1. Иерархическая модель
- •Сотоудники
- •2.2. Сетевая модель
- •2.3. Реляционная модель
- •2.4. Постреляционная модель
- •2.5. Многомерная модель
- •1996 1994 Петров Смирнов Яковлев
- •2.6. Объектно-ориентированная модель
- •2.7. Типы данных
- •3. Реляционная модель данных
- •3.1. Определение реляционной модели
- •3.2. Индексирование
- •3.3. Связывание таблиц
- •3.4. Контроль целостности связей
- •3.5. Теоретические языки запросов
- •I аспределенное Удаленное Распределен- Удаленн! 1йдо- Распределен- предстаеление представление ная функция ступ к данным наяЬд
- •4.5. Информационные системы в Интернете и интранете
- •Часть 2. I Ъоектиросанн ? и использование бд
- •7. Средства автоматизации проектирования
- •7.1. Основные определения
- •7.8. Рекомендации по применению case-систем
- •9. Дополнительные вопросы применения баз данных
- •9.1. Программно-аппаратные платформы
- •9.2. Перспективы развития субд
- •9.3. Стандартизация баз данных
- •9.4. Характеристика технологии ado.Net
- •10.1. Общая характеристика
- •10.2. Новые возможности Microsoft Access 2002
- •10.3.Средства поддержки проектирования
- •10.4. Создание основных элементов бд
- •IQdbl mdb
- •Option Compare Database Public Function funl() beep End Function
- •10.5. Работа с гиперссылками
- •10.6. Использование языка sql
- •Аргументы макрокоманды ' Инструкция sQl. Select distinctrow tof
- •10.7. Защита баз данных
- •10.9. Обслуживание баз данный
- •10.10. Репликация баз данных
- •Реплицируемые объекты
- •Реплицируемые объекты
- •10.11. Работа с мультимедиа-данными
- •Тип объекта
- •Comic Chat Boom Microsoft Graph so Music Prop pry Page 2 1 Option f ropery Page21 Ры-ndox FableВидео-клип
- •10.12. Создание файлов приложений
- •10.13. Страницы доступа к данным
- •Краткая характеристика отличий сДд от форм и отчетом
- •10.14. Разработка проекта
- •Распределение атрибутов по вариантам
- •11.1. Пользовательский интерфейс
- •11.2. Характеристика проекта
- •11.3. Компиляция и выполнение проекта
- •11.4. Разработка приложения
- •11.5. Средства интегрированной среды разработки
- •Управление параметрами среды
- •11.6. Базы данных и средства работы с ними
- •Компоненты приложений для баз данных
- •11.7. Создание таблиц базы данных
- •11.8. Создание приложения bde
- •Значения свойств компонентов
- •11.9. Работа с отчетами
- •12. Субд Visual FoxPro 8.0
- •12.1. Общая характеристика
- •12.2. Новые возможности Visual FoxPro 8.0
- •12.3. Элементы проекта
- •12.4. Интерфейс Visual FoxPro
- •12.5. Средства автоматизации разработки
- •12.6. Создание баз данных
- •12.7. Таблицы и индексы
- •12.8. Организация межтабличных связей
- •12.9. Обеспечение ссылочной целостности
- •12.10. Создание запросов
- •Variables:
- •13. Microsoft sql Server 2000
- •13.1. Характеристика sql Server
- •13.2. Язык запросов Transact-sql
- •13.3. Системные базы данных и таблицы
- •13.4. Создание баз данных
- •13.5. Работа с таблицами
- •15.1. Принципы функционирования Web-приложений
- •15.2. Архитектура Web-приложений, публикующих бд
- •15.3. Обзор Web-серверов
- •15.4. Использование Personal Web-server
- •15.5. Использование Microsoft Internet Information Server
- •15.6. Использование Apache дляMicrosoft Windows 9х/2000
- •Вы видите это вместо ожидаемой страницы?
- •15.7. Варианты создания Web-узла
- •16. Интерфейсы программирования Web-приложений
- •16.1. Общий интерфейс взаимодействия cgi
- •18. Публикация бд средствами Microsoft Access
- •18.1. Характеристика вариантов публикации
1.3. Системы управления базами данных
В этом подразделе приводится классификация СУБД и рассматриваются основные их функции. В качестве основных классификационных признаков можно использовать следующие: вид программы, характер использования, модель данных. Названные признаки существенно влияют на целевой выбор СУБД и эффективность использования разрабатываемой информационной системы.
Клеи сификация СУБД.В общем случаепод СУБД можно понимать лю- оой программный продукт, по щерживающий процессы создания, ведения и использования БД. Рассмотрим, какие из имеющихся на рынке программ имеют отношение к БД и в какой мере они связаны с базами данных.
К СУБД относятся следующие основные виды программ:
полнофункционатьные СУБД;
серверы БД;
клиенты БД;
•средства разработки программ работы с БД.
Полнофункциональные СУБД(ПФСУБД) представляют собой традиционные СУБД, которые сначала нояви пись для бочыних машин, затем для мини машин и для ПЭВМ. Из числа всех СУБД современные ПФСУБД являются наиболее многочисленными и мощными по своим возможностям. К ПФСУБД относятся, например, такие пакеты, какClarionDatabaseDeveloper,Database,DataFlex,dBaseTV,MicrosoftAccess,MicrosoftFoxProиParadoxR:BASF,.
Обычно ПФСУБД имеют развитый интерфейс, позволяющий с помощью команд меню выполнять основные действия с БД: создавать и модифициро вать структуры таблиц, вводить данные, формировать запросы, разрабатывать отчеты, выводить их на печать и т. п. Для создания запросов и отчетов не обязательно поограммировяние, а удобно пользоваться языком QBE (Query By Example - формулировки запросов по образцу, см. подраздел 3.8). Многие ПФСУБД включают с редства программирования для профессиональных разработчиков.
Некоторые системы имеют в качестве вспомогат ельных и дополнительные средства проектирования схем БД или CASE подсистемы. Для обеспечения доступа к другим БД или к даннымSQL-сервепов полнофункциональные СУБД имеют факультативные модули.
Серверы БДпредназначены для организации центров обработки данных в сетях ЭВМ. Эта группа БД в настоящее время менее многочисленна, но их количество постепенно расчет. Серверы БД реализуют функции управления бязами данных, запрашиваемые другими (клиентскими) программами обычно с помощью операторовSQL.
Примерами серверов БД являются следующие программы: NetWareSQL(Novell),MSSQLServer(Microsoft),InterBase(Borland),SQLBaseServer(Gupta),IntelligentDatabase(Ingress).
В роли клиентских программдля серверов БД в общем случае могут использоваться различные программы: ПФСУБД, электронные таблицы, текстовые процессоры, программы э аектронной почты и т. д. При атом элементы пары «клиент — серзер» могут принадлежать одному или разным производителям программного обеспечения.
В случае, когда клиентская и серверная части выполнены одной фирмой. естественно ожидать, что распределение функции между ними выполнено рационально. В остальных случаях обычно преследуется цель обеспечения доступа к данным «любой ценой». Примером такого соединения является случай, когда одна из полнофункциональных СУБД играет роль сервера, а вторая СУБД (другого производителя) — роль клиента. Так, для сервера БД SQLServer(Microsoft) в роли клиентских (фронтальных) программ могут выступать многие СУБД, такие какdBASEIV,BIythSoftwareParadox,DataEase,Focus, 1-2 3,MDBSHI,Revelationи другие.
< pedcmea разоаоотки програм м раооты с БДмогут использоваться длясозданияразновидностей следующих программ:
клиентских программ;
серверов БД и их отдельных компонентов;
по. шзовательских приложений.
Программы первого и второго вида довольно ма точисленны, так как предназначены, главным образом, для системных программистов. Пакетов третьего вида гораздо больше, но меньше, чем полнофункциона льных СУБД.
К средствам разработки пользовате. [ьских приложений относятся системы программирования, например Clipper, разнообразные библиотеки программ для различных языков программирована, а также пакеты автомат изации разрг боток (в том числе систем типа клиент-сервер). В числе наиболее распространенных можно назвать следующие инструментальные системы:DelphiиPowerBuilder(BoiJand),VisualBasic(Microsoft),SILVERRUN(ConmuterAdvisersTnc.),S-Designor(SDPиPowersoft) иERwin(LogicWorks).
Кроме перечисленных средств, для управления данными и организации обе луживания БД используются различные дополнительные средства, к примеру мониторы транзакций (см. подраздел 4.2).
По характеру испо. гьзовани i СУБД делят на персонсыъныеи многопользовательские.
Персона иьные СУБДобычно обеспечи чают возможность создания пер сональных БД и недорогих п рил ожени"1, работающих с ними. Персональные СУБД или разработанные с их помощью приложения зачастую могут выступать в роли клиентской части многопользовательской СУБД. К персональным СУБД, например, относятсяVisualFoxPro,Paradox,Clipper,dBase,Accessи др.
Многопользовательские СУБДвключают в себя сервер БД и клиентску ю часть и, как п пав ил о. могут работат ь в неоднородной вычислительной среде (с разными типами ЭВМ и операционными системами). К многопользовательским СУБД относятся, например, СУБДOracle иInformix.
По используемой модели данных СУБД (как и БД), разделяют на иерархические, сетевые, реляционные, объектно-ориентированные и другие типы. Некоторые СУБД могут одновременно поддерживать несколько моделей данных.
С точки зрения пользователя, СУБД реализует функции:ранения. изменения (пополнения, редактирования и удаления) и обработки информации, а также разработки и получения различных выходных документов.
Для работы с хранящейся в базе данных информацисй СУБД предоставляет программам и пользователям следующие два типа языков-.
язык описания данных - высокоуровневый непроцедурный язык декларативного т ипа, предназначенный для описания логической структуры данных;
язык манипулир» тания данными — совокупность конструкций, обеспечивающих выполнение основных операций по работе с данными: ввод, модификацию и выбогасу данных по запросам.
Названные языки в различных СУБД могут иметь отличия. Наибольшее ра< прос I ранение получили два с гандартизованных языка: ОБЕ (Query Bv Example) — язык запросов по образцу иSQL (Structured Query language) — структурированный язык запросов.QBE в основном облада т свойп вами языка манипулированияданными,SQL сочетает в себе свойства языков обоих типов — описанияи манипулированияданными.
Перечисленные выше функции СУБД, в свою очередь, используют следующиеосновные функции более низкого урс^ня, которые назовем низкоуровневыми:
управление данными во внешней памят и:
управление буферами оперативной памяти;
управление транзакциями;
ведение журнала изменений в БД;
обеспечение целостности и безопасности БД.
Дадим краткую характеристику необходимости и особенностям реачиза- ции перечисленных функций в современных СУБД.
Реализация функции управления данными во внешней памятив разных системах может различаться и на уровне управления ресурсами (используя файловые системы ОС или непосредственное управление устройствами ПЭВМ), и по логике самих алгоритмов управления данными. В основном меточы и алгоритмы управления данными являются «внутренним делом» СУБД и прямого отношения к пользователю не имею г. Качество реализации этой функции наиболее сильно влияет на зффективность работы специфических ИС, например, с огромными БД, со сложными запросами, большим объемом обработки данных.
Необходимость буферизации данных и как следствие pea газации функции управления буферамиоперативной памяти обусловлено тем, что объем оперативной памяти меньше объема внешней памяти.
Буферыпредстав 1яют собой области оперативной памяти, предназначенные для ускорения обмена между внешней и оперативной памятью. В буферах временно хранятся фрагменты БД, данные из которых предполагается использовать при обращении к СУБД или планируется записать в базу после обработки.
Механизм транзакций используется в СУБД для поддержания це. юстно- сти данных в базе. Транзакциейназывается некоторая неделимая последовательность операций над данными БД, которая отслеживается СУБД от начала и до завершения. Если по каким-либо причинам (сбои и отказы оборудования, ошибки в программном обеспечении, включая приложение) транзакция остается незавершенной, то она отменяется.
Говорят, что транзакции прис ущи т ри основных свойства:
атомарность (выполняются все входящие в транзакции > операции или ни одна);
серализуемость (отсутствует взаимное влияние выполняемых в одно и го же время транзакций);
долговечность (даже крах системы не приводит к утрате резу штатов зафиксированной транзакции).
Примером транзакции является операция перевода денег с одного счета на другой в банковской системе. Здесь необходим, по крайней мере, двух- шаговый процесс. Сначала снимают деньги с одного счета, затем добавляют их к другому счету. Если хотя бы одно из действий не выполнится успешно, результат операции окажется неверным и будет нарушен баланс между счетами.
Контроль транзакций важен в однопользоват ельских и в многопользовательских СУБД, где транзакции могут быть запущены параллельно. В последнем случае говорят о сериализуемости транзакций. Под сериоли- защ-ейпараллельно выполнж мых транзакций понимается составление такого плана их выполнения (сериального плана), при котором суммарный эффект реализации транзакций эквивалентен эффекту их последовательного выполнения.
При параллельном выполнении смеси транзакций возможно возникновение конфликтов (блокировок), разрешение которых является функцией СУ БД. При обнаружении таких случаев обычно производится «откат» путем отмены изменений, произведенных одной или несколькими транзакциями.
Ведением урналп измененийв БД (журнатизация изменений) выполняется СУБД для обеспечения надежности хранения данных в базе при наличии ап паратных сбоев и отказов, а также ошибок в программном обеспечении.
Журнал СУБД — это особая БД или часть основной БД, непосредственно недоступная пользователю и используемая для записи информации обо всех изменениях базы данных. В различных СУБД в журнал могут заноситься записи, соответствующие изменениям в СУБД на разных уровнях: от минимальной внутренней операции модификации страницы внешней памяти до логической операции модификации БД (например, вставки записи, удаления столбца, изменение значения в поле) и даже транзакции.
Для эффективной реализации функции ведения журнала изменений в БД необходимо обеспечить повышенную надежность хранения и поддержания в рабочем состоянии самого журнала. Иногда для этого в системе хранят несколько копий журнал.
Обеспечение це. lot тностиБД составляет необходимое условие успешного функционирования БД, особенно для случая использования БД в сетях.
Целостность БДесть свойство базы данных, означающее, что в ней содержится полная, непротиворечивая и адекватно отражающая предметную область информация. Поддержание целостности БД включает проверку целостности и ее восстановление в случае обнаружения противоречий в базе данных Целостное состояние БД описывается с помощью осрапиче ний целостностив виде условий, которым должны удовлетворят ь хранимые в базе данные. Примером таких условий может служить ограничение диапазонов возможных значений атрибутов объектов, сведения о которых хранятся в БД, или отсутствие повторяющихся записей в таблицах реляционных БД.
Обеспечение безопасностидостш ается в СУБД шифрованием прикладных программ. данных, зашиты пгролем. поддержкой уровней доступа к базе данных и к отдельным ее элементам (таблицам, формам, отчетам и т. д.).