Technologiya baz dannyh i znaniy

С.П. Толмачев, Е.С. Толмачева, С.Л. Замковец
















ТЕХНОЛОГИИ БАЗ ДАННЫХ И ЗНАНИЙ

Курс лекций

















Минск
Современные знания
2008
УДК 004.6(075.8)
Т 52


Р е ц е н з е н т ы:
Сапун О.Л., кандидат педагогических наук, доцент, завкафедрой информатики БГАТУ;
Аксенов А.И., кандидат технических наук, старший научный сотрудник, доцент кафедры информационных процессов и технологий Института управления и предпринимательства.


Толмачев, С.П.
Г 67 Технологии баз данных и знаний [Электронный ресурс] / С.П. Толмачев, Е.С. Толмачева, С.Л. Замковец. Минск: Современные знания, 2008. 141 с.



ISBN 978-985-6776-92-5



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




УДК 004.6(075.8)







ISBN 978-985-6776-92-5 © Толмачев С.П., Толмачева Е.С.,
Замковец С.Л., 2008
© ЧУО «Институт современных знаний
имени А.М. Широкова», 2008
© Оформление. ЗАО «Современные
знания», 2008



СОДЕРЖАНИЕ
13 TOC \o "1-3" \h \z \u 1413 LINK \l "_Toc188264923" 14ВВЕДЕНИЕ 13 PAGEREF _Toc188264923 \h 1451515
13 LINK \l "_Toc188264924" 14Тема 1. ЭКОНОМИЧЕСКАЯ ИНФОРМАЦИЯ В АВТОМАТИЗИРОВАННЫХ ИНФОРМАЦИОННЫХ СИСТЕМАХ 13 PAGEREF _Toc188264924 \h 1471515
13 LINK \l "_Toc188264925" 141.1. Экономическая информация, ее виды и структурные единицы 13 PAGEREF _Toc188264925 \h 1471515
13 LINK \l "_Toc188264926" 141.2. Понятие и классификация экономических информационных систем 13 PAGEREF _Toc188264926 \h 1481515
13 LINK \l "_Toc188264927" 141.3. Состав информационного обеспечения автоматизированных информационных систем 13 PAGEREF _Toc188264927 \h 14101515
13 LINK \l "_Toc188264928" 141.4. Внемашинная организация экономической информации 13 PAGEREF _Toc188264928 \h 14111515
13 LINK \l "_Toc188264929" 141.5. Внутримашинная организация экономической информации 13 PAGEREF _Toc188264929 \h 14151515
13 LINK \l "_Toc188264930" 141.5.1. Файловая организация данных, ее недостатки 13 PAGEREF _Toc188264930 \h 14151515
13 LINK \l "_Toc188264931" 141.5.2. Понятие базы данных. Преимущества базы данных 13 PAGEREF _Toc188264931 \h 14161515
13 LINK \l "_Toc188264932" 14Вопросы для самопроверки 13 PAGEREF _Toc188264932 \h 14171515
13 LINK \l "_Toc188264933" 14Тема 2. МОДЕЛИ ДАННЫХ 13 PAGEREF _Toc188264933 \h 14181515
13 LINK \l "_Toc188264934" 142.1. Трехуровневая модель организации баз данных 13 PAGEREF _Toc188264934 \h 14181515
13 LINK \l "_Toc188264935" 142.2. Модели представления данных 13 PAGEREF _Toc188264935 \h 14201515
13 LINK \l "_Toc188264936" 142.2.1. Иерархическая модель данных 13 PAGEREF _Toc188264936 \h 14201515
13 LINK \l "_Toc188264937" 142.2.2. Сетевая модель данных 13 PAGEREF _Toc188264937 \h 14211515
13 LINK \l "_Toc188264938" 142.2.3. Реляционная модель данных 13 PAGEREF _Toc188264938 \h 14221515
13 LINK \l "_Toc188264939" 142.2.4. Постреляционная модель данных 13 PAGEREF _Toc188264939 \h 14251515
13 LINK \l "_Toc188264940" 142.2.5. Многомерная модель данных 13 PAGEREF _Toc188264940 \h 14261515
13 LINK \l "_Toc188264941" 142.2.6. Объектно-ориентированная модель данных 13 PAGEREF _Toc188264941 \h 14281515
13 LINK \l "_Toc188264942" 142.2.7. Объектно-реляционная модель данных 13 PAGEREF _Toc188264942 \h 14301515
13 LINK \l "_Toc188264943" 14Вопросы для самопроверки 13 PAGEREF _Toc188264943 \h 14301515
13 LINK \l "_Toc188264944" 14Тема 3. ФИЗИЧЕСКАЯ ОРГАНИЗАЦИЯ БАЗ ДАННЫХ 13 PAGEREF _Toc188264944 \h 14321515
13 LINK \l "_Toc188264945" 143.1. Устройства для размещения баз данных 13 PAGEREF _Toc188264945 \h 14321515
13 LINK \l "_Toc188264946" 143.2. Физический доступ к базе данных 13 PAGEREF _Toc188264946 \h 14321515
13 LINK \l "_Toc188264947" 143.3. Понятие о хешировании и индексировании 13 PAGEREF _Toc188264947 \h 14341515
13 LINK \l "_Toc188264948" 14Вопросы для самопроверки 13 PAGEREF _Toc188264948 \h 14371515
13 LINK \l "_Toc188264949" 14Тема 4. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ 13 PAGEREF _Toc188264949 \h 14391515
13 LINK \l "_Toc188264950" 144.1. Требования, предъявляемые к базе данных 13 PAGEREF _Toc188264950 \h 14391515
13 LINK \l "_Toc188264951" 144.2. Этапы жизненного цикла базы данных 13 PAGEREF _Toc188264951 \h 14391515
13 LINK \l "_Toc188264952" 144.3. Модель «сущность–связь» (ER-модель) 13 PAGEREF _Toc188264952 \h 14421515
13 LINK \l "_Toc188264953" 144.4. Получение реляционной схемы из ER-схемы 13 PAGEREF _Toc188264953 \h 14431515
13 LINK \l "_Toc188264954" 144.5. Нормализация таблиц 13 PAGEREF _Toc188264954 \h 14441515
13 LINK \l "_Toc188264955" 14Вопросы для самопроверки 13 PAGEREF _Toc188264955 \h 14451515
13 LINK \l "_Toc188264956" 14Тема 5. ОБЩАЯ ХАРАКТЕРИСТИКА СУБД MICROSOFT ACCESS 13 PAGEREF _Toc188264956 \h 14461515
13 LINK \l "_Toc188264957" 145.1. Характеристика и функциональные возможности СУБД Microsoft Access 13 PAGEREF _Toc188264957 \h 14461515
13 LINK \l "_Toc188264958" 145.2. Структура Microsoft Access 13 PAGEREF _Toc188264958 \h 14471515
13 LINK \l "_Toc188264959" 145.3. Проектирование базы данных 13 PAGEREF _Toc188264959 \h 14481515
13 LINK \l "_Toc188264960" 145.4. Типы данных, обрабатываемые Microsoft Access 13 PAGEREF _Toc188264960 \h 14491515
13 LINK \l "_Toc188264961" 145.5. Выражения Microsoft Access и их элементы. Операторы 13 PAGEREF _Toc188264961 \h 14531515
13 LINK \l "_Toc188264962" 14Вопросы для самопроверки 13 PAGEREF _Toc188264962 \h 14541515
13 LINK \l "_Toc188264963" 14Тема 6. ТЕХНОЛОГИИ РАБОТЫ С БАЗОЙ ДАННЫХ MICROSOFT ACCESS 13 PAGEREF _Toc188264963 \h 14551515
13 LINK \l "_Toc188264964" 146.1. Типы запросов в Microsoft Access 13 PAGEREF _Toc188264964 \h 14551515
13 LINK \l "_Toc188264965" 146.2. Способы проектирования форм. Элементы графического интерфейса формы 13 PAGEREF _Toc188264965 \h 14571515
13 LINK \l "_Toc188264966" 146.3. Способы проектирования отчетов 13 PAGEREF _Toc188264966 \h 14591515
13 LINK \l "_Toc188264967" 146.4. Автоматизация работы с базой данных 13 PAGEREF _Toc188264967 \h 14611515
13 LINK \l "_Toc188264968" 14Вопросы для самопроверки 13 PAGEREF _Toc188264968 \h 14611515
13 LINK \l "_Toc188264969" 14Тема 7. СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ 13 PAGEREF _Toc188264969 \h 14621515
13 LINK \l "_Toc188264970" 147.1. Понятие СУБД 13 PAGEREF _Toc188264970 \h 14621515
13 LINK \l "_Toc188264971" 147.2. Языковые и программные средства СУБД 13 PAGEREF _Toc188264971 \h 14621515
13 LINK \l "_Toc188264972" 147.3. Архитектура СУБД 13 PAGEREF _Toc188264972 \h 14631515
13 LINK \l "_Toc188264973" 147.4. Классификация СУБД 13 PAGEREF _Toc188264973 \h 14651515
13 LINK \l "_Toc188264974" 147.5. Основные функциональные возможности СУБД 13 PAGEREF _Toc188264974 \h 14661515
13 LINK \l "_Toc188264975" 147.6. Режимы работы пользователя с СУБД 13 PAGEREF _Toc188264975 \h 14671515
13 LINK \l "_Toc188264976" 147.7. Направления развития СУБД 13 PAGEREF _Toc188264976 \h 14681515
13 LINK \l "_Toc188264977" 14Вопросы для самопроверки 13 PAGEREF _Toc188264977 \h 14711515
13 LINK \l "_Toc188264978" 14Тема 8. МОДЕЛИ ПРЕДСТАВЛЕНИЯ ЗНАНИЙ 13 PAGEREF _Toc188264978 \h 14721515
13 LINK \l "_Toc188264979" 148.1. Знания. Их виды. Базы знаний. Модели представления знаний 13 PAGEREF _Toc188264979 \h 14721515
13 LINK \l "_Toc188264980" 14Модели представления знаний 13 PAGEREF _Toc188264980 \h 14751515
13 LINK \l "_Toc188264981" 148.2. Продукционные модели. Работа машины вывода. Стратегии управления выводом 13 PAGEREF _Toc188264981 \h 14761515
13 LINK \l "_Toc188264982" 148.3. Семантические сети. Виды отношений 13 PAGEREF _Toc188264982 \h 14841515
13 LINK \l "_Toc188264983" 148.4. Фреймы. Их примеры, виды, структура. Сети фреймов, наследование свойств 13 PAGEREF _Toc188264983 \h 14871515
13 LINK \l "_Toc188264984" 148.5. Краткие сведения о формальных логических моделях 13 PAGEREF _Toc188264984 \h 14911515
13 LINK \l "_Toc188264985" 14Вопросы для самопроверки 13 PAGEREF _Toc188264985 \h 14921515
13 LINK \l "_Toc188264986" 14Тема 9. ВВЕДЕНИЕ В ЯЗЫК SQL 13 PAGEREF _Toc188264986 \h 14941515
13 LINK \l "_Toc188264987" 149.1. Назначение и возможности языка SQL в СУБД 13 PAGEREF _Toc188264987 \h 14941515
13 LINK \l "_Toc188264988" 149.2. Основные директивы (команды) языка SQL 13 PAGEREF _Toc188264988 \h 14951515
13 LINK \l "_Toc188264989" 149.3. Типы данных, используемых в командах SQL 13 PAGEREF _Toc188264989 \h 14981515
13 LINK \l "_Toc188264990" 149.3. Примеры написания основных команд SQL 13 PAGEREF _Toc188264990 \h 14991515
13 LINK \l "_Toc188264991" 14Вопросы для самопроверки 13 PAGEREF _Toc188264991 \h 141051515
13 LINK \l "_Toc188264992" 14Тема 10. СИСТЕМЫ ОБРАБОТКИ МНОГОПОЛЬЗОВАТЕЛЬСКИХ БАЗ ДАННЫХ 13 PAGEREF _Toc188264992 \h 141061515
13 LINK \l "_Toc188264993" 1410.1. Эволюция концепций обработки данных 13 PAGEREF _Toc188264993 \h 141061515
13 LINK \l "_Toc188264994" 1410.2. Принципы передачи данных по сети 13 PAGEREF _Toc188264994 \h 141071515
13 LINK \l "_Toc188264995" 1410.3. Системы удаленной обработки данных 13 PAGEREF _Toc188264995 \h 141101515
13 LINK \l "_Toc188264996" 1410.4. Системы совместного использования файлов 13 PAGEREF _Toc188264996 \h 141111515
13 LINK \l "_Toc188264997" 1410.5. Системы обработки распределенных баз данных (РаБД) 13 PAGEREF _Toc188264997 \h 141141515
13 LINK \l "_Toc188264998" 14Гомогенные и гетерогенные распределенные базы данных 13 PAGEREF _Toc188264998 \h 141181515
13 LINK \l "_Toc188264999" 14Двенадцать правил К. Дейта 13 PAGEREF _Toc188264999 \h 141181515
13 LINK \l "_Toc188265000" 1410.6. Хранилища данных 13 PAGEREF _Toc188265000 \h 141211515
13 LINK \l "_Toc188265001" 14Вопросы для самопроверки 13 PAGEREF _Toc188265001 \h 141241515
13 LINK \l "_Toc188265002" 14Тема 11. АДМИНИСТРИРОВАНИЕ БАЗ ДАННЫХ 13 PAGEREF _Toc188265002 \h 141261515
13 LINK \l "_Toc188265003" 1411.1. Структурная схема администрирования базы данных 13 PAGEREF _Toc188265003 \h 141261515
13 LINK \l "_Toc188265004" 1411.2. Защита баз данных 13 PAGEREF _Toc188265004 \h 141271515
13 LINK \l "_Toc188265005" 1411.3. Методы защиты баз данных 13 PAGEREF _Toc188265005 \h 141281515
13 LINK \l "_Toc188265006" 1411.4. Восстановление базы данных 13 PAGEREF _Toc188265006 \h 141331515
13 LINK \l "_Toc188265007" 1411.5. Оптимизация работы базы данных 13 PAGEREF _Toc188265007 \h 141341515
13 LINK \l "_Toc188265008" 1411.6. Правовая охрана баз данных 13 PAGEREF _Toc188265008 \h 141351515
13 LINK \l "_Toc188265009" 14Вопросы для самопроверки 13 PAGEREF _Toc188265009 \h 141371515
13 LINK \l "_Toc188265010" 14ЛИТЕРАТУРА 13 PAGEREF _Toc188265010 \h 141381515
15 ВВЕДЕНИЕ

Дисциплина «Технологии баз данных и знаний» является логическим продолжением дисциплины «Компьютерные информационные технологии». В ней изучаются современные технологии баз данных, которые широко применяются для повышения эффективности во всех сферах бизнеса и экономической деятельности производстве, торговле, маркетинге, финансах, бухгалтерском учете, менеджменте и др. Дается представление об исследованиях и разработках в области технологий баз знаний.
Цель дисциплины изучение теоретических сведений о современных технологиях организации, хранения и обработки данных в базах и формирование практических навыков по созданию баз данных и работе с ними, а также ознакомление с достижениями в области технологий баз знаний.
Предлагаемый курс лекций по дисциплине «Технологии баз данных и знаний» соответствует типовой программе данной дисциплины для экономических специальностей высших учебных заведений, утвержденной в 2007 году Учебно-методическим объединением вузов Республики Беларусь по экономическому образованию (Регистрационный № ТД-270/тип).
Задачей изучения курса лекций является приобретение теоретических знаний о:
представлениях экономической информации в автоматизированных информационных системах;
концепциях моделирования данных, принципах организации баз данных и их проектирования;
физической организации и проектировании баз данных, а также о назначении, архитектуре, функциональных возможностях современных систем управления базами данных (СУБД );
возможностях языка баз данных SQL и технологиях обработки многопользовательских баз данных;
администрировании, основных методах защиты и восстановления баз данных;
моделях представления знаний и возможности использования баз знаний в практической деятельности специалистов-менеджеров в предметной области.
Кроме того, задачей изучения дисциплины является приобретение первичных практических навыков по технологии создания и работы с базой данных Microsoft Access.
Знания и практические навыки, приобретенные студентами в процессе освоения данной дисциплины, будут востребованы в дальнейшем при:
изучении дисциплины «Корпоративные информационные системы» и специальных дисциплин;
выполнении научных, курсовых, дипломных работ и в будущей профессиональной деятельности.
Тема 1. ЭКОНОМИЧЕСКАЯ ИНФОРМАЦИЯ В АВТОМАТИЗИРОВАННЫХ ИНФОРМАЦИОННЫХ СИСТЕМАХ
1.1. Экономическая информация, ее виды и структурные единицы

Под экономической информацией (ЭИ) понимается информация, характеризующая производственные отношения в обществе и включающая сведения (данные) о процессах производства; материальных ресурсах; финансовых процессах и т.п.
Существуют различные признаки классификации экономической информации, которые различают по:
функциям управления (плановая, учетная, статистическая, нормативно справочная и др.)
месту возникновения внутренняя (полученная внутри предприятия ) и внешняя (поступающая из вышестоящих организаций);
истинности достоверная, недостоверная;
способу представления цифровая, алфавитно-цифровая, графическая.
Структурными единицами экономической информации являются реквизиты, показатели, документы, массивы.
Реквизиты выражают определенные свойства объекта и подразделяются на реквизиты-признаки и реквизиты-основания.
Реквизит простейшая структурная единица, отражающая качественную или количественную характеристику объекта (процесса). Реквизиты имеют наименования и значения. Если реквизит описывает качественную характеристику объекта (время или место действия, Ф.И.0. исполнителя и ар.), то его называют реквизит-признак. Если же реквизит представляет количественную характеристику объекта (объем продукции в штуках, цена в рублях и пр.), то его называют реквизит-основание.
Сочетание одного реквизита-основания с одним или несколькими соответствующими ему реквизитами-признаками образует показатель. Показатель качественно определенная величина, дающая количественную характеристику отображаемому объекту (предмету, процессу, явлению), имеющая экономический смысл.
Например, информационная совокупность «три пары детской обуви» состоит из реквизита-основания «три» и трех реквизитов-признаков: «пара», «детская» и «обувь», имеет экономический смысл и поэтому является показателем.
На основе показателей строятся документы. Документ материальный объект, содержащий информацию, оформленную в установленном порядке, и имеющий в соответствии с действующим законодательством правовое значение.
Совокупность документов, объединенных по определенному признаку, образует массив.

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



1.3. Состав информационного обеспечения автоматизированных информационных систем

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

1.4. Внемашинная организация экономической информации

Внемашинная информация это та часть экономической информации, которая представлена и может быть воспринята пользователем без использования технических средств.
Формой представления внемашинной информации являются документы.
Документы классифицируются по различным признакам.
По способу фиксации информации документы делятся на письменные, графические, фото- и кинодокументы, электромагнитные.
По содержанию документы подразделяются на организационно-распорядительные, финансово-расчетные, снабженческо-сбытовые и т.д.
По видам документы бывают типовые, примерные, индивидуальные и трафаретные.
По степени сложности различают простые документы, содержащие один вопрос, и сложные, содержащие несколько вопросов.
По направленности документопотока документы разделяют на входящие, исходящие и внутренние.
Информация, расположенная в документе, имеет строго определенное назначение и местоположение на листе бумаги. Как правило, структура документа должна включаться следующие разделы:
заголовочную часть, которая включает: наименование объекта, характеристику документа (индекс), наименование документа, зону для проставления кодов, постоянных реквизитов-признаков;
содержательную часть в виде таблицы, где располагаются показатели;
оформляющую часть, в которой содержатся подписи юридических лиц, ответственных за правильность его составления, а также дата составления.
Для представления информации, содержащейся в документах, в форме, удобной для ввода и обработки данных с помощью компьютеров, используются классификация и кодирование информации.
Классификация система распределения объектов, процессов и т. д. по группам в соответствии с определенным признаком. Под объектом понимается любой предмет, процесс, явление и т. п. как материального так и не материального свойства. Группа объектов, которую можно охарактеризовать рядом общих свойств, называется классом.
При любой классификации необходимо соблюдать следующие требования:
максимально возможная полнота охвата объектов рассматриваемой области;
однозначность реквизитов не допускающая их двойственного толкования;
возможность добавления новых объектов.
При проведении классификации широко используется понятие классификационного признака, который позволяет установить сходство или различие объектов. Например, в качестве признака классификации группы людей можно использовать возраст, укладывающийся в определенный диапазон значений: до 20 лет, от 20 до 30 лет, старше 30 лет.
Существуют два метода классификации объектов иерархическая и фасетная.
Иерархическая система
Исходное множество элементов составляет 0-й уровень и делится в зависимости от классификационного признака на классы, которые образуют 1-й уровень. Затем выделенные классы разбиваются, по определенным признакам, на подклассы, составляющие 2-й уровень и т.д.
Достоинствами данной системы являются:
простота построения;
использование не зависимых признаков в различных ветвях иерархической структуры.
Недостатки:
жесткая структура, не позволяющая свободно вносить изменения в систему, после внесения изменений приходиться перераспределять все классификационные группировки;
невозможность группировать объекты по заранее не предусмотренным признакам.
Фасетная система классификации.
Данная система позволяет выбирать признаки классификации независимо друг от друга. Признаки классификации здесь называются фасетами. Каждый фасет содержит совокупность однородных значений определенного классификационного признака. Например, фасет цвет содержит значения: белый, красный, голубой и т. д.
Данная система обычно отображается в виде таблицы, в которой названия столбцов соответствуют определенным фасетам, а в ячейках располагаются их конкретные значения. Сама процедура классификации состоит в присвоении каждому объекту соответствующих значений из фасетов, при этом не обязательно использование всех фасетов.
Достоинствами данной системы являются:
возможность создания большой емкости классификации;
возможность простой модификации всей системы без изменения структуры существующих групп.
Недостаток:
сложность построения, из-за необходимости учитывать все многообразие классификационных признаков.
Далее рассмотрим системы кодирования. Они предназначены для замены названий объектов на условные обозначения (код) для обеспечения удобной и более эффективной работы по обработке информации.
Системой кодирования называют совокупность правил кодового обозначения объектов.
Присваиваемый код характеризуется:
длиной количеством позиций символов;
структурой порядком расположения в коде символов.
Процедуру присвоения объекту кода называют кодированием.
По методу кодирования различают две системы.
Классификационная ориентирована на проведение предварительной классификации объектов с последующим их кодированием. При этом различают:
последовательное кодирование применяется для иерархической классификационной структуры. Код составляется следующим образом, сначала записывается код 1 уровня, затем 2 уровня и т.д.;
параллельное применяется для фасетной классификационной структуры. В этом случае все фасеты кодируются, независимо друг от друга. Для значений каждого фасета выделяется определенное количество разрядов кода. Длина кода определяется количеством фасетов.
Регистрационная применяется для однозначной идентификации объектов путем присвоения уникального кода, не требует предварительной классификации. Различают:
Порядковое кодирование когда объектам присваиваются последовательные номера из чисел натурального ряда. Например, простенький инвентарный список.
Серийно-порядковое кодирование когда предварительно выделяются группы объектов со сходными признаками, которые образуют серию, а затем уже внутри серии производится порядковая нумерация объектов. Примером этой системы кодирования может служить лотерейный билет.
1.5. Внутримашинная организация экономической информации
1.5.1. Файловая организация данных, ее недостатки
Предшественниками систем баз данных являются файловые системы наборы программ, выполняющие для пользователей некоторые операции, например, ввод данных, их обработку и формирование некоторых отчетов.
Файловым системам присущи следующие ограничения:
разделение и изоляция данных, содержащихся в отдельных файлах;
дублирование данных в файлах;
зависимость структуры программ от данных;
несовместимость форматов файлов;
слабая адаптация приложения к изменению требований (фиксированные запросы);
быстрое увеличение объема приложения.
Названные ограничения файловых систем являются следствиями двух факторов: определение данных содержится внутри приложений, а не хранятся отдельно и независимо от них; помимо приложений не предусмотрено никаких других инструментов доступа к данным и их обработки.
1.5.2. Понятие базы данных. Преимущества базы данных
База данных совместно используемый набор структурированных, логически связанных данных, предназначенных для удовлетворения информационных потребностей пользователей организации.
База данных это единое, интегрированное, большое хранилище данных, используемое одновременно многими пользователями.
Система баз данных включает сами по себе данные, сохраняемые в базе данных, аппаратное обеспечение, программное обеспечение, пользователей различных категорий (прикладные программисты, конечные пользователи, администратор базы данных).
К преимуществам систем баз данных относятся:
физическая независимость данных от пользовательских приложений;
возможность совместного доступа к данным нескольких существующих приложений базы данных;
сокращение избыточности данных;
устранение противоречивости данных;
обеспечение целостности (корректности) данных в базе;
организация защиты данных;
возможность введения стандартизации данных.
База данных, как правило, состоит из четырех основных компонент: данных пользователя, метаданных, индексов и метаданных приложений.
Данные пользователя представляются в виде группы таблиц, состоящих из строк (записей) и столбцов (полей).
Метаданные представляют собой описание структуры базы данных с помощью так называемых системных таблиц.
Индексы являются средством ускорения операций поиска, извлечения, модификации и сортировки данных.
Метаданные приложений описывают структуру и формат форм, отчетов и других компонентов приложений базы данных.

Вопросы для самопроверки
Какие существуют признаки классификации экономической информации?
Назовите структурные единицы экономической информации?
Как классифицируются экономические информационные системы?
Из каких элементов состоит автоматизированная информационная система?
Назовите формы представления внемашинной организации экономической информации?
Какова структура документа?
Каковы различия иерархической и фасетной систем классификации объектов?
Что подразумевают под системой кодирования информации?
Какие ограничения присущи файловым системам организации данных?
Из каких компонентов состоит база данных?

Тема 2. МОДЕЛИ ДАННЫХ
2.1. Трехуровневая модель организации баз данных

Концепции многоуровневой архитектуры СУБД служат основой современной технологии БД. Эти идеи впервые были сформулированы в отчете рабочей группы по базам данных Комитета по планированию стандартов Американского национального института стандартов (ANSI/X3/SPARC), опубликованному в 1975 г. В нем была предложена обобщенная трехуровневая модель архитектуры СУБД, включающая внешний, концептуальный и внутренний уровни (рис. 2.1).









Рис. 2.1. Трехуровневая модель архитектуры СУБД
Внешний уровень архитектуры БД предназначен для различных групп пользователей. Этот уровень определяет точку зрения на БД отдельных приложений. Каждое приложение видит и обрабатывает только те данные, которые необходимы именно этому приложению. Например, система распределения работ использует сведения о квалификации сотрудника, но ее не интересуют сведения об окладе, домашнем адресе и телефоне сотрудника, и наоборот, именно эти сведения используются в подсистеме отдела кадров.
Концептуальный уровень центральное управляющее звено, здесь база данных представлена в наиболее общем виде, который объединяет данные, используемые всеми приложениями, работающими с данной базой данных. Фактически концептуальный уровень отражает обобщенную модель предметной области (объектов реального мира), для которой создавалась база данных. Как любая модель, концептуальная модель отражает только существенные, с точки зрения обработки, особенности объектов реального мира. Концептуальный уровень это попытка представить требования к базе со стороны организации. И этот уровень не должен содержать никаких сведений о методах хранения данных. Здесь должны быть отражены: все сущности, включаемые в базу, их атрибуты и связи; накладываемые на данные ограничения; семантическая информация о данных; информация о мерах обеспечения безопасности и поддержки целостности данных.
Внутренний уровень служит для адаптации концептуальной модели к конкретной СУБД. На этом архитектурном уровне БД представлена в полностью “материализованном” виде, тогда как на других уровнях идет работа на уровне отдельных экземпляров или множества экземпляров записей. Внутренний уровень предназначен для достижения оптимальной производительности и обеспечения оптимального использования дискового пространства. На этом уровне осуществляется взаимодействие СУБД с методами доступа операционной системы. Описание БД на внутреннем уровне называется внутренней схемой или схемой хранения. Здесь хранится информация: о распределение дискового пространства для хранения данных и индексов; описание подробностей хранения данных; сведения о размещении записей; сведения о сжатии данных и методах их шифрования.
Эта архитектура позволяет обеспечить логическую (между уровнями 1 и 2) и физическую (между уровнями 2 и 3) независимость при работе с данными. Логическая независимость предполагает возможность изменения одного приложения без корректировки других приложений, работающих с этой же базой данных. Физическая независимость предполагает возможность переноса хранимой информации с одних носителей на другие при сохранении работоспособности всех приложений, работающих с данной базой данных. Это именно то, чего не хватало при использовании файловых систем. Выделение концептуального уровня позволило разработать аппарат централизованного управления базой данных.
2.2. Модели представления данных
Модель представления данных, или модель данных, множество допустимых типов данных и отношений между ними, ограничений и действий над этими типами данных и отношений. Множество допустимых типов данных и отношений называют структурой данных. Модель данных является ядром базы данных.
Наиболее широко распространенными являются три модели данных: иерархическая, сетевая и реляционная.
2.2.1. Иерархическая модель данных
Иерархическая модель позволяет строить БД с иерархической древовидной структурой.
Дерево это связный неориентированный граф, который не содержит циклов. Обычно при работе с деревом выделяют какую-то конкретную вершину, определяют ее как корень дерева и рассматривают особо в эту вершину не заходит ни одно ребро. В этом случае дерево становится ориентированным. Ориентация определяется от корня. Конечные вершины, то есть вершины, из которых не выходит ни одной дуги, называются листьями дерева.
В иерархических моделях данных используется ориентация древовидной структуры от корня к листьям. Графическая диаграмма схемы базы данных называется деревом определения. Пример иерархической модели данных приведен на рис. 2.2.
Иерархическая модель является наиболее простой, поэтому исторически она появилась первой. К достоинствам иерархической модели можно отнести достаточно эффективное использование памяти и неплохие временные показатели выполнения операций над данными. Недостатками же являются достаточно сложные логические связи, определенная трудность в обработке данных и сложность включения новых объектов в заданное структурное «дерево».










Рис. 2.2. Иерархическая модель структуры предприятия
2.2.2. Сетевая модель данных
На разработку этого стандарта большое влияние оказал американский ученый Ч. Бахман. Основные принципы сетевой модели данных были разработаны в середине 60-х гг., эталонный вариант сетевой модели данных описан в отчетах рабочей группы по языкам баз данных (COnference on DAta SYstem Languages) CODASYL (1971 г.). Сетевая модель представляет собой структуру, у которой любой элемент может быть связан с любым другим элементом.(рис. 2.3). Организация данных в сетевой модели соответствует структуризации данных по версии CODASYL. В соответствии с ней описание схемы БД осуществляется на языке COBOL, а манипулирование данными с помощью включающего языка программирования высокого уровня.















Рис. 2.3. Сетевая модель структуры банка
Каждая вершина графа хранит экземпляры сущностей (записи) и сведения о групповых отношениях с сущностями других типов. Каждая запись может хранить произвольное количество значений атрибутов (элементов данных и агрегатов), соответствующих экземпляру сущности.
Основным достоинством сетевой модели данных является высокая эффективность затрат памяти и оперативность. К недостаткам следует отнести трудность восприятия схемы базы, а также сложность ее понимания, программирования и контроля целостности вследствие допустимости установления произвольных связей.
2.2.3. Реляционная модель данных
Реляционная модель данных была предложена математиком Э.Ф. Коддом в 1970 г. Она является наиболее широко распространенной моделью данных и единственной из трех основных моделей данных, для которой разработан теоретический базис с использованием теории множеств.
Реляционная модель данных представляет собой комплекс двухмерных взаимосвязанных таблиц (отношений) (рис. 2.4):







Рис. 2.4. Схема данных реляционной модели
Информация об объектах определенного типа хранится в таблице, каждое поле (столбец таблицы) которой содержит значения определенной характеристики объектов, а запись (строка таблицы) представляет собой описание отдельного объекта. Даже когда вы запрашиваете информацию из одной или нескольких таблиц, результат запроса представляется в виде таблицы.
При построении реляционных моделей применима строгая математическая теория отношений. В этом случае термину таблица сопоставляется термин отношение.
Отношение представляет собой двумерную таблицу, содержащую некоторые данные.
Столбец содержит элементы данных атрибуты. Столбцы таблицы со значениями соответствующих атрибутов именуются доменами, а строки со значениями разных атрибутов (А) кортежами (K). В результате отношение (R) состоит из нескольких кортежей:

R = {Ki}, i= 1, , n,

где Ki = {A1i, A2i,,Ami} кортеж; i номер кортежа; n число кортежей; m число доменов.

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




Рис. 2.5. Связь один-к-одному

Связь 1:М означает, что одному значению первичного ключа может соответствовать несколько значений вторичного ключа (рис. 2.4).
Связь М:1 означает, что одному значению вторичного ключа может соответствовать несколько значений первичного (рис. 2.4).

Реляционная целостность это сохранность данных, которая должна соблюдаться при любых модификациях структуры и данных в базе. Целостность данных обеспечивается каскадным обновлением связанных полей и удалением связанных записей.
К достоинствам реляционной модели можно отнести:
наличие математической теории ее построения;
простоту и удобство табличного представления данных;
минимальную избыточность данных при нормализации отношений;
полноту, равнозначность данных;
возможность использования всех типов связей между объектами;
легкость модернизации ( изменение структуры и количества данных ).
Недостатки:
нормализация отношений приводит к разъединению данных;
значительные затраты на разработку и реализацию модели;
недостаточная производительность обработки очень больших объемов данных.
Использование строгой математической теории отношений для построения реляционной модели позволяет применять языки манипулирования данными на основе реляционной алгебры. Существует пять основных операций реляционной алгебры проекция, селекция, декартово произведение, разность, объединение и три вспомогательных: соединение, пересечение и деление.

2.2.4. Постреляционная модель данных
Постреляционная модель данных представляет собой расширенную реляционную модель, снимающую ограничение неделимости данных, хранящихся в записях таблиц. Постреляционная модель данных допускает многозначные поля поля, значения которых состоят из подзначений. Набор значений многозначных полей считается самостоятельной таблицей, встроенной в основную таблицу (рис. 2.6, 2.7).






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







Рис. 2.7. Постреляционная модель
Как видно из рисунков, по сравнению с реляционной моделью в постреляционной модели данные хранятся более эффективно, а при обработке не требуется выполнять операцию соединения данных из двух таблиц.
Достоинством постреляционной модели является возможность представления совокупности связанных реляционных таблиц одной постреляционной таблицей. Это обеспечивает высокую наглядность представления информации и повышение эффективности ее обработки.
Недостатком постреляционной модели является сложность решения проблемы обеспечения целостности и непротиворечивости хранимых данных.
2.2.5. Многомерная модель данных
Многомерный подход к представлению данных в базе появился практически одновременно с реляционным, но реально работающих многомерных СУБД до настоящего времени было очень мало. С середины 90-х гг. интерес к ним стал приобретать массовый характер. Реляционные СУБД предназначались для информационных систем оперативной обработки информации и в этой области были весьма эффективны. В системах аналитической обработки они показали себя несколько неповоротливыми и недостаточно гибкими. Более эффективными здесь оказываются многомерные СУБД.
Многомерные СУБД являются узкоспециализированными СУБД, предназначенными для интерактивной аналитической обработки информации. Информация в многомерной модели представляется в виде многомерных массивов, называемых гиперкубами.
По сравнению с реляционной моделью многомерная организация данных обладает более высокой наглядностью и информативностью. Для иллюстрации на рисунках 2.8 и 2.9 приведены реляционное и многомерное представления одних и тех же данных об объемах продаж продуктов питания.






Рис. 2.8. Реляционное представление данных




Рис. 2.9. Многомерное представление данных
Базовыми понятиями многомерной модели являются понятия измерение и ячейка.
Измерение это множество однотипных данных, образующих одну из граней гиперкуба. В многомерной модели данных измерения играют роль индексов, служащих для идентификации конкретных значений в ячейках гиперкуба.
Ячейка это поле, значение которого однозначно определяется фиксированным набором измерений.
В существующих многомерных СУБД используются два основных варианта (схемы) организации данных: гиперкубическая и поликубическая.
В поликубической схеме предполагается, что в БД может быть определено несколько гиперкубов с различной размерностью и с различными измерениями в качестве граней. Примером системы является сервер Oracle Express Server.
В случае гиперкубической схемы предполагается, что все показатели определяются одним и тем же набором измерений. Это означает, что при наличии нескольких гиперкубов БД все они имеют одинаковую размерность и совпадающие измерения.
Основным достоинством многомерной модели данных является удобство и эффективность аналитической обработки больших объемов данных, связанных со временем. При организации обработки аналогичных данных на основе реляционной модели происходит нелинейный рост трудоемкости операций в зависимости от размерности БД и существенное увеличение затрат оперативной памяти на индексацию.
Недостатком многомерной модели данных является ее громоздкость для простейших задач обычной оперативной обработки информации.
2.2.6. Объектно-ориентированная модель данных
В объектно-ориентированной модели при представлении данных имеется возможность идентифицировать отдельные записи базы. Между записями базы данных и функциями их обработки устанавливаются взаимосвязи с помощью механизмов, подобных соответствующим средствам в объектно-ориентированных языках программирования. Стандартизованная объектно-ориентированной модель описана в рекомендациях стандарта ODMG-93 (Object Database Management Group группа управления объектно-ориентированными базами данных).
Структура объектно-ориентированной БД графически представима в виде дерева, узлами которого являются объекты. Свойства объектов описываются некоторым стандартным типом (например, строковым string) или типом, конструируемым пользователем (определяется как class).
Объектно-ориентированная модель в своей основе предполагает присутствие в своем составе объектов. Основные особенности, которых:
объекты обладают определенными свойствами (внутренней структурой), которые идентифицируются уникальными внутренними ключами;
объекты подразделяются на классы, являющиеся типами объектов;
операции над объектами называются методами, они осуществляются в виде изменения свойств объектов. Эти свойства могут быть изменены двумя путями: 1) на этапе создания модели; 2) в ходе выполнения специальной команды, в процессе работа с БД.
Логическая структура объектно-ориентированной БД внешне похожа на структуру иерархической БД. Основное отличие между ними состоит в методах манипулирования данными.
Для выполнения действий над данными в рассматриваемой модели БД применяются логические операции, усиленные объектно-ориентированными механизмами инкапсуляции, наследования и полиморфизма.
Наследование позволяет уже запрограммированные функциональные возможности для одного объекта использовать и для других объектов.
Инкапсулирование означает, что объекты наделяются некоторой структурой, обладают определенным набором операций и внутреннее содержимое объекта защищено от внешних воздействий. Изменение его состояния возможны лишь с использованием специальных методов.
Полиморфизм означает, что различные объекты могут получать одинаковые сообщения, но реагировать на них по-разному, в соответствии с тем, каким образом реализованы у них методы управления.
Основным достоинством объектно-ориентированной модели данных в сравнении с реляционной является возможность отображения информации о сложных связях объектов. Объектно-ориентированная модель данных позволяет идентифицировать отдельную запись базы данных и определять функции их обработки.
Недостатками объектно-ориентированной модели являются сложность ее понимания, неудобство обработки данных и низкая скорость выполнения запросов.
2.2.7. Объектно-реляционная модель данных
Другой способ объединения возможностей реляционного и объектно-ориентированного подхода к управлению данными предложил известный американский ученый [ Cкачайте файл, чтобы посмотреть ссылку ]. Согласно его воззрениям реляционную СУБД нужно просто дополнить средствами доступа к сложным данным. При этом ядро СУБД не требует переработки и сохраняет все присущие реляционным системам достоинства. Объектные расширения реализуются в виде надстроек, которые динамически подключаются к ядру.
Примером объектно-реляционной модели является масштабируемая объектно-реляционной база данных фирмы IBM DB2 Universal Database, которая содержит существенно улучшенные возможности для поддержки электронного бизнеса, хранилищ данных и систем интеллектуального анализа данных, средства сопряжения с Internet и расширенный доступ к данным вне базы данных.
В отличие от обычных реляционных баз объектно-реляционная БД компании Informix допускает прямую интеграцию и интеллектуальную обработку информации любого типа данных, например, документов HTML, видео, аудио и др.
Недостатками объектно-реляционной модели являются:
отсутствие унифицированной теории, которая есть в реляционных моделях;
отсутствие формальной методологии проектирования баз данных, как нормализация в реляционных базах;
отсутствие специальных средств создания запросов;
отсутствие общих правил определения целостности и др.
Вопросы для самопроверки
Какова архитектура трехуровневой модели организации баз данных?
Какие основные модели представления данных существуют?
Какова структура иерархической модели представления данных?
Какова структура сетевой модели представления данных?
Что представляет собой реляционная модель данных?
Что называется полем и записью в таблице реляционной базы данных?
Какое поле в таблице базы данных называют ключевым?
Какие типы связей в реляционной базе данных существуют?
Какова структура многомерной модели представления данных?
В чем основные отличия объектно-ориентированной и объектно-реляционной моделей данных?
Тема 3. ФИЗИЧЕСКАЯ ОРГАНИЗАЦИЯ БАЗ ДАННЫХ
3.1. Устройства для размещения баз данных
Организация (размещение) данных во внутри машинной сфере может рассматриваться на двух уровнях физическом и логическом.
Физическая организация данных определяет способ размещения данных непосредственно на машинном носителе. В современных прикладных программных средствах БД этот уровень организации обеспечивается автоматически без вмешательства пользователя.
Пользователь, как правило, оперирует в прикладных и универсальных программных средствах представлениями о логической организации данных.
Логическая организация данных на машинном носителе зависит от используемых программных средств и технических возможностей БД.
Основными преимуществами БД являются большие объемы хранимой информации и возможность обработки данных (сортировка, фильтрация, группировка, производство вычислений и т.п.) в момент извлечения их из БД.
3.2. Физический доступ к базе данных
По технологии обработки данных БД подразделяются на централизованные и распределенные, по способу доступа на БД с локальным доступом и БД с сетевым доступом.
Централизованные БД с сетевым доступом обычно имеют архитектуры:
Файл-сервер, при использовании которой сервер по запросу передает файлы БД для обработки на рабочие станции (клиентам);
Клиент-сервер, при использовании которой сервер передает запрошенные данные (но не файлы БД) клиентам на рабочие станции.
Доступ к БД обычно осуществляется путем использования технологий:
ODBC (Open Database Connectivity открытый доступ к БД);
DAO (Data Access Object доступ к данным элементов управления);
DDE (Dinamic Data Exchange динамический обмен данными).
В последнее время широко распространяется новая технология доступа к базам данных ADO.NET. ADO.NET (ActiveX Data Objects for the .NET Framework ) это основная технология доступа к данным для платформы .NET. Более конкретно это набор объектов, при помощи которых программист может осуществить подключение к серверу БД для выборки данных и/или их модификации. Однако,
во-первых, на самом деле ADO.NET это вовсе не элемент ActiveX, а обычная управляемая сборка .NET !
во-вторых, при всей своей «управляемости», в ADO.NET местами все же прослеживаются элементы системы COM.
Для ADO.NET источниками данных могут быть не только серверы баз данных, но и файлы XML.
ADO была разработана для архитектуры «клиент-сервер», которая пришла на смену архитектуре «файл-сервер». Потом все нарастающая сложность систем обработки данных потребовала качественного изменения архитектуры: кроме двух уровней клиент и сервер БД появляются дополнительные уровни серверы, реализующие бизнес-логику приложений.
ADO.NET очередная попытка навести порядок в сегменте многоуровневых приложений и сделать их разработку относительно простым и приятным занятием.
В СУБД можно выделить функции диспетчеров файлов и дисков по организации, размещении компонентов базы данных и доступу к данным.
Диспетчер файлов (File Manager) обеспечивает:
размещение файлов баз данных и журналов регистрации транзакций;
оптимизацию баз данных путем группирования файлов;
определение местоположения файлов базы данных и журналов транзакций по рабочим режимам и отказоустойчивости;
поддержку технологии OLE (Object Linking and Embedding)
Кроме того, диспетчер файлов создает временные и резервные файлы, чтобы дать возможность пользователю вернуться к начальному файлу данных после его изменения. Поэтому, чтобы изменить файл данных, программе необходимо по меньшей мере вдвое больше дискового пространства, чем занимает изменяемый файл.
Некоторые операции (например, импорт/экспорт, технология OLE) используют промежуточные временные файлы, для которых также требуется дополнительное место.
Диспетчер дисков обеспечивает:
выделение дискового пространства и оперативной памяти для размещение файлов БД и приложений;
оптимизацию БД с помощью аппаратных дисковых массивов (RAID);
расчет дискового пространства, необходимого для пополнения и модернизации БД.
Большинство операций выполняются при взаимодействии работы программ Диспетчера файлов и Диспетчера дисков.
Физическая организация БД выполняется с применением специализированных программных средств и имеет свои особенности.
1. При их создании и работе с ней пользователя вся информация базы размещается не в оперативной памяти, как при работе с другими программными продуктами, например, с текстовым редактором Word и табличным процессором Excel, а непосредственно на жестком диске.
2. Все изменения, вносимые в таблицы базы данных, сохраняются сразу же на жестком диске без запроса программы и без команды пользователя на их сохранение.
3. Учитывая то, что быстродействие работы процессора с жестким диском (винчестером) во много раз медленнее, чем работа с ОЗУ, применяются специальные меры, получившие название хеширование и индексирование.
3.3. Понятие о хешировании и индексировании
Для повышения скорости обмена информацией процессора с базой данных используется специальный прием, получивший название хеширование, при котором операционная система обеспечивает в процессе работы с БД сохранение части прочитанных данных в специальной области ОЗУ, называемой дисковым хэшем. Данная функция включается в ядро системы и работает автоматически без участия пользователя. При необходимости повторного обращения к этим же данным процессор их считывает уже не с диска, а из ОЗУ, что значительно ускоряет обработку данных.
Общеизвестным недостатком табличных и иерархических структур является трудоемкость записи адреса нового элемента данных и сложность последующего их упорядочения. Более того, информация в базу данных вводится в произвольном порядке и в этом же порядке сохраняется на диске. Для быстрого поиска требуемой записи можно применить предварительное индексирование, которое заключается в том, что каждому атрибуту данных пользователь может присвоить свой уникальный индекс.
Таблица, содержащая данные, может иметь несколько индексов. В зависимости от количества полей, используемых в индексе, различают простые индексы (по одному полю) и составные индексы (по нескольким полям).
Индексы создаются, обычно, по вторичным ключам, которые могут устанавливаться в отличие от первичных ключей на такие поля, которые могут содержать повторяющиеся значения (данные).
Для каждого значения индекса в индексном файле содержится уникальная ссылка, указывающая на местоположение в таблице записи, соответствующей данному индексу. Поэтому при поиске записи осуществляется не последовательный просмотр всей таблицы, а прямой доступ к записи на основании упорядоченных значений индекса.
Можно создавать индексы трех типов:
1) уникальный индекс, в котором две строки не могут иметь одинаковые значения индекса;
2) индекс первичного ключа автоматически создается при задании первичного ключа и является особым типом уникального индекса;
3) кластерный индекс, в котором физический порядок строк в таблице совпадает с логическим (индексированным) порядком ключевых значений. Таблица может содержать только один кластерный индекс.
Кластерный индекс обычно обеспечивает более быстрый доступ к данным по сравнению с не кластерными индексами.
В основном требуется индексировать поля, в которых часто осуществляется поиск, сортировка или поля, объединенные путем запросов с полями из других таблиц.
Следует иметь в виду, что индексы могут замедлить выполнение некоторых запросов на изменение или добавление данных, при выполнении которых потребуется обновление индексов многих полей.
Поля с типом данных «OLE» индексировать нельзя. Для остальных полей индексирование используется, если выполняются следующие условия:
поле имеет тип данных «Текстовый», «Числовой», «Денежный» или «Дата/время»;
предполагается выполнение поиска значений в поле;
предполагается выполнение сортировки значений в поле.
Если предполагается частое выполнение одновременной сортировки или поиска в нескольких полях, можно создать для этих полей составной индекс, например, для полей «Имя» и «Фамилия».
Составные индексы позволяют различать записи, в которых в одном столбце имеются одинаковые значения.
В составной индекс можно включить до 10 полей.
Индексы занимают дополнительное место на диске и могут замедлить операции добавления, удаления и обновления данных, содержащихся в нескольких таблицах. Поэтому при частом обновлении данных в приложении или при ограничениях на дисковое пространство следует ограничивать их количество.
Перед созданием индекса необходимо принять решение, какие поля (атрибуты) использовать и какой тип индекса следует выбрать.
Пусть, например, имеются таблица 1 и таблица 2. В табл. 1 уже есть индекс первичного ключа поле Код клиента, с помощью которого она связана со всеми другими таблицами по финансовым операциям клиентов банка, в том числе и с табл. 2.


На рис. 3.1. показано, как можно построить логическую структуру табл. 2 с помощью индексации полей: Дата, Кредитная линия, ФИО (клиента), Выдана сумма.
Индекс даты
Индекс линии
Индекс клиента
Индекс суммы

Дата
№ записи
Кредитная линия, $
№ записи
ФИО
№ записи
Выдана сумма, $
№ записи

01.09.06
1
100 000
3
Иванов П.И.
2
15 000
3

06.09.06
2
180 000
2
Петров Н.С
3
20 000
2

08.09.06
3
200 000
1
Сидоров А.И
1
50 000
1


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

Тема 4. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ
4.1. Требования, предъявляемые к базе данных
Проектирование базы данных это процесс создания проекта базы данных, предназначенной для поддержки функционирования экономического объекта и способствующей достижению его целей.
Методология проектирования может рассматриваться как совокупность методов и средств, последовательное применение которых обеспечивает разработку проекта базы данных, удовлетворяющего целям проектирования. Задачей процесса проектирования является построение структуры базы данных, адекватно отражающей описываемую проблемную среду, реализуемой с помощью технических и программных средств. При создании эффективного приложения, работающего с информацией, хранящейся в БД, основное внимание должно быть уделено проектированию такой структуры базы данных, которая должна обеспечивать выполнение следующих требований:
обеспечение целостности БД;
неизбыточность данных;
мобильность прикладного программного обеспечения;
простой и понятный пользователю ввод информации в базу данных и ее обновление;
быстрое нахождение и выборка требуемой информации;
защищенность от случайных сбоев и несанкционированного доступа.
4.2. Этапы жизненного цикла базы данных

Организационную основу проектирования системы баз данных составляет жизненный цикл системы. Жизненный цикл базы данных (ЖЦБД) это процесс проектирования, реализации и поддержки базы данных. Жизненный цикл состоит из следующих этапов:
1) предварительное планирование;
2) проверка осуществимости;
3) определение требований;
4) концептуальное проектирование;
5) логическое проектирование;
6) физическое проектирование;
7) реализация и загрузка БД.
8) тестирование и отладка БД.
9) оценка работы и поддержка базы данных.
10) завершение эксплуатации и утилизация.
Опишем главные задачи каждого этапа.
1. Предварительное планирование базы данных планирование самого эффективного способа реализации этапов жизненного цикла системы. На этом этапе собирается информация об используемых и находящихся в процессе разработки прикладных программах и файлах, связанных с ними. Для поддержки планирования разработки БД может быть создана обобщенная концептуальная модель данных, отображающая наиболее важные данные и связи между ними, а также их отношение к различным функциональным сферам организации. Обычно обобщенная концептуальная модель имеет вид упрощенной ER- диаграммы.
2. Проверка осуществимости. На этом этапе определяется: наличие необходимого оборудование и программное обеспечение для реализации базы данных, наличие соответствующего персонала для осуществления создания базы данных. Производится предварительная оценка экономической эффективности проекта.
3. Определение требований. На этом этапе определяется диапазон действия и границ системы, состав пользователей и область применения. Составляется список входных и выходных данных, с которыми работает заказчик. Конкретизируются требования к используемому оборудованию и программному обеспечению.
4. Концептуальное проектирование имеет целью построение независимой от СУБД информационной структуры путем объединения информационных требований пользователей. Результат проектирования часто представляется в виде диаграммы «сущность-связь» или ER-диаграммы.
5. Логическое проектирование обеспечивает построение модели данных. Первоначально осуществляется выбор СУБД, далее строится соответствующая модель данных. В качестве такой модели может использоваться реляционная модель данных. Также на этом этапе осуществляется проектирование интерфейса пользователя, транзакций, прикладных программ, предназначенных для работы с БД.
6. Физическое проектирование заключается в выборе физической структуры базы данных. Результатом физического проектирования является полностью готовая к реализации структура БД. На этом этапе также производится окончательная отладка программных модулей, определенных ранее.
7. Реализация и загрузка данных физическая реализация базы данных и разработанных приложений. Реализация базы данных и написанных приложений осуществляется посредством создания ее описания на языке определения данных (ЯОД) выбранной СУБД. Загрузка данных заполнение данными БД, ввод их с помощью оператора.
8. Тестирование и отладка БД. Тестирование процесс выполнения прикладных программ с целью поиска ошибок. При успешном проведении тестирования вскрываются имеющиеся ошибки, подтверждается соответствие системы БД спецификациям и требованиям пользователей. Кроме того, осуществляется сбор статистики, позволяющий установить показатели надежности и качества созданного программного обеспечения.
9. Оценка и поддержка БД. Оценка включает опрос пользователей на предмет выяснения, какие их информационные потребности остались неучтенными. При необходимости в спроектированную базу данных вносятся изменения. Пользователи обучаются работе с базой данных. По мере расширения и изменения потребностей бизнеса поддержка базы данных обеспечивается путем внесения изменений, добавления новых данных, разработки новых прикладных программ, работающих с базой данных.

4.3. Модель «сущность–связь» (ER-модель)
Средством моделирования предметной области на этапе концептуального проектирования является модель «сущность–связь». Часто ее называют ER-моделью (Entity сущность, Relation связь). Моделирование предметной области базируется на использовании графических диаграмм, включающих небольшое число разнородных компонентов. В связи с наглядностью представления концептуальных схем баз данных ER-модели получили широкое распространение в системах CASE, поддерживающих автоматизированное проектирование реляционных баз данных.
Основными понятиями ER-модели являются сущность, связь и атрибут.
Сущность это реальный или представляемый объект, информация о котором должна сохраняться и быть доступна. В диаграммах ER-модели сущность представляется в виде прямоугольника, содержащего имя сущности. При этом имя сущности это имя типа, а не некоторого конкретного экземпляра этого типа (рис. 4.1).



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


Рис. 4.2
В изображенном примере связь между сущностями БИЛЕТ и ПАССАЖИР связывает билеты и пассажиров. Каждый БИЛЕТ предназначен для одного и только одного ПАССАЖИРА. Каждый ПАССАЖИР может иметь один или более БИЛЕТОВ.
Атрибутом сущности является любая деталь, которая служит для уточнения, идентификации, классификации, числовой характеристики или выражения состояния сущности. Имена атрибутов заносятся в прямоугольник, изображающий сущность, под именем сущности и изображаются малыми буквами, возможно, с примерами.
4.4. Получение реляционной схемы из ER-схемы
Шаг 1. Каждая простая сущность превращается в таблицу. Простая сущность сущность, не являющаяся подтипом и не имеющая подтипов. Имя сущности становится именем таблицы.
Шаг 2. Каждый атрибут становится возможным столбцом с тем же именем; может выбираться более точный формат. Столбцы, соответствующие необязательным атрибутам, могут содержать неопределенные значения; столбцы, соответствующие обязательным атрибутам, не могут.
Шаг 3. Компоненты уникального идентификатора сущности превращаются в первичный ключ таблицы. Если имеется несколько возможных уникальных идентификатора, выбирается наиболее используемый. Если в состав уникального идентификатора входят связи, к числу столбцов первичного ключа добавляется копия уникального идентификатора сущности, находящейся на дальнем конце связи (этот процесс может продолжаться рекурсивно). Для именования этих столбцов используются имена концов связей и/или имена сущностей.
Шаг 4. Связи многие-к-одному (и один-к-одному) становятся внешними ключами. Т.е. делается копия уникального идентификатора с конца связи «один», и соответствующие столбцы составляют внешний ключ. Необязательные связи соответствуют столбцам, допускающим неопределенные значения; обязательные связи столбцам, не допускающим неопределенные значения.
Шаг 5. Индексы создаются для первичного ключа (уникальный индекс), внешних ключей и тех атрибутов, на которых предполагается в основном базировать запросы.
Шаг 6. Если в концептуальной схеме присутствовали подтипы, то возможны два способа:
1) все подтипы в одной таблице, т.е. таблица создается для наиболее внешнего супертипа, а для подтипов могут создаваться представления. В таблицу добавляется по крайней мере один столбец, содержащий код ТИПА; он становится частью первичного ключа;
2) для каждого подтипа отдельная таблица, т.е. для каждого подтипа первого уровня (для более нижних представления) супертип воссоздается с помощью представления UNION (из всех таблиц подтипов выбираются общие столбцы столбцы супертипа).
Шаг 7. Имеется два способа работы при наличии исключающих связей:
1) если остающиеся внешние ключи все в одном домене, то создаются два столбца: идентификатор связи и идентификатор сущности. Столбец идентификатора связи используется для различения связей, покрываемых дугой исключения. Столбец идентификатора сущности используется для хранения значений уникального идентификатора сущности на дальнем конце соответствующей связи;
2) если результирующие внешние ключи не относятся к одному домену, то для каждой связи, создаются явные столбцы внешних ключей; все эти столбцы могут содержать неопределенные значения.
4.5. Нормализация таблиц
Нормализацией таблиц называется процесс минимизации избыточности данных. Методику нормализации таблиц разработал американский ученый А.Ф. Кодд в 1970 г. Ее суть сводится к приведению таблиц к той или иной нормальной форме. Приведем краткие и неформальные определения трех первых нормальных форм.
В первой нормальной форме ER-схемы устраняются повторяющиеся атрибуты или группы атрибутов, т.е. производится выявление неявных сущностей.
Во второй нормальной форме устраняются атрибуты, зависящие только от части уникального идентификатора. Эта часть уникального идентификатора определяет отдельную сущность.
В третьей нормальной форме устраняются атрибуты, зависящие от атрибутов, не входящих в уникальный идентификатор. Эти атрибуты являются основой отдельной сущности.

Вопросы для самопроверки
Каковы основные требования, предъявляемые к базе данных?
Назовите основные этапы жизненного цикла базы данных?
На каком из этапов ЖЦ производится предварительная оценка экономической эффективности проекта?
Результатом какого этапа ЖЦ является построение ER-диаграммы?
Что представляет собой ER-модель?
Как изображается сущность на ER-диаграмме?
Как изображается связь на ER-диаграмме?
Для чего применяется нормализация таблиц?
Как преобразовать ER-модель в реляционную?
Тема 5. ОБЩАЯ ХАРАКТЕРИСТИКА СУБД MICROSOFT ACCESS
5.1. Характеристика и функциональные возможности СУБД Microsoft Access
В настоящее время существует множество систем управления базами данных и других программ, выполняющих сходные функции. Среди них СУБД Microsoft Access 2000 заслуживает особого внимания пользователей. Эта СУБД входит в программный комплекс Microsoft Office 2000 и работает в среде Windows 95 и выше.
Microsoft Access 2000 это функционально полная реляционная СУБД. К достоинствам которой можно отнести интеграцию с другими средствами Microsoft Office, поддержку технологии ActiveX, возможность работы в Internet и корпоративных сетях. СУБД представляет полный контроль над процессом определения данными, их обработкой и совместным использованием. Она также существенно облегчает каталогизацию и обработку больших объемов информации, хранящихся в многочисленных таблицах.
Основными функциями СУБД Microsoft Access являются:
определение данных (определение типов данных их свойств и связей между ними);
обработка данных (выборка, фильтрация, сортировка, группировка данных и др.);
управление данными (разграничение прав использования данных).
Access –это не только мощная и простая СУБД, но и система для разработки приложений баз данных. С помощью нее можно создавать приложения, работающие в среде Windows и полностью соответствующие потребностям в обработке и управлении данными. Создание большинства приложений не требует написание программного кода, но если необходимо, то на этот случай Access предоставляет мощный язык программирования Visual Basic для приложений (VBA). Данное приложение может непосредственно использовать файлы dBASE, базы данных Paradox и FoxPro, а также другие базы данных, поддерживающие стандарт ODBC.
5.2. Структура Microsoft Access
Microsoft Access ориентирована на работу с объектами базы данных. К основным объектам относятся таблицы, формы, запросы, отчеты, страницы, макросы и модули.
Таблица объект, используемый для хранения данных. Каждая таблица содержит информацию о субъектах определенного типа.
Запрос объект позволяющий получить нужные данные из одной или нескольких таблиц. С помощью запросов можно также создавать, редактировать, обновлять таблицы и производить вычисления над полями.
Форма объект, предназначенный в основном для ввода данных, отображения их на экране или управления работой приложения.
Отчет объект, предназначенный для форматирования, вычисления итогов и печати данных.
Страница доступа к данным объект, представляющий собой диалоговую Web-страницу поддерживающую динамическую связь с базой данных и позволяющую, с использованием браузера Internet Explorer, просматривать, редактировать и вводить данные в базу.
Макрос объект, представляющий собой описание одного или нескольких действий, которые должны быть выполнены Access в ответ на определенное событие.
Модуль объект, содержащий программы (процедуры) на языке Visual Basic для приложений.
Все объекты, за исключением страниц доступа к данным, можно хранить в одном файле файле базы данных с расширением .mdb. Страницы доступа к данным сохраняются как самостоятельные файлы с расширением .html. Отчеты можно сохранять в файле с расширением .snp (формат снимка отчета). С целью защиты форм, отчетов и модулей, а также оптимизации использование памяти и повышения быстродействия, база данных может быть сохранена в файле с расширением .mde.
5.3. Проектирование базы данных
В Microsoft Access прежде чем создавать таблицы, формы и другие объекты необходимо задать структуру базы данных. Хорошая структура базы данных является основой для создания адекватной требованиям, эффективной базы данных.
Этапы проектирования базы данных
1. Определение цели создания базы данных.
2. Создание структур таблиц, которые должна содержать база данных.
3. Определение необходимых в таблице полей.
4. Задание ключевых полей.
5. Определение связей между таблицами.
6. Добавление данных в таблицы.
7. Создание других объектов базы данных (запросов, форм, отчетов, макросов и пр.).
Определение цели создания базы данных
На первом этапе проектирования базы данных необходимо определить цель создания базы данных, основные ее функции и информацию, которую она должна содержать. То есть нужно определить основные таблицы базы данных и информацию, которую будут содержать поля таблиц.
Создание структур таблиц, которые должна содержать база данных
Одним из наиболее сложных этапов в процессе проектирования базы данных является разработка таблиц, так как результаты, которые должна выдавать база данных (отчеты, формы и др.) не всегда дают полное представление о структуре таблицы.
При проектировке таблиц, рекомендуется руководствоваться следующими основными принципами:
информация в таблице не должна дублироваться;
не должно быть повторений между таблицами;
каждая таблица должна содержать информацию только на одну тему.


Определение необходимых в таблице полей
Каждая таблица содержит информацию на отдельную тему, а каждое поле в таблице содержит отдельные сведения по теме таблицы. Например, в таблице с данными о клиенте могут содержаться поля с названием компании, адресом, городом, страной и номером телефона. При разработке полей для каждой таблицы необходимо помнить:
каждое поле должно быть связано с темой таблицы;
не рекомендуется включать в таблицу данные, которые являются результатом вычислений;
в таблице должна присутствовать вся необходимая информация.
Задание ключевых полей
С тем чтобы Microsoft Access мог связать данные из разных таблиц, например, данные о клиенте и его заказы, каждая таблица должна содержать поле или набор полей, которые будут задавать индивидуальное значение каждой записи в таблице. Такое поле или набор полей называют основным ключом.
Определение связей между таблицами
После распределения данных по таблицам и определения ключевых полей необходимо выбрать схему для связи данных в разных таблицах. Для этого нужно определить связи между таблицами.
Добавление данных в таблицы
Если структуры таблиц отвечают поставленным требованиям, то можно вводить в них данные.
Создание других объектов базы данных
Затем можно создавать любые запросы, формы, отчеты, страницы, макросы и модули.
5.4. Типы данных, обрабатываемые Microsoft Access
В Microsoft Access существует различные способы создания таблиц.
С помощью мастера таблиц, позволяющего выбирать поля для данной таблицы из множества определенных ранее таблиц, таких как деловые контакты, список личного имущества, рецепты и пр.
Вводом данных непосредственно в пустую таблицу в режиме таблицы. При сохранении новой таблицы в Microsoft Access данные анализируются, и каждому полю присваивается необходимый тип данных и формат.
Определением всех параметров макета таблицы в режиме конструктора.
Связыванием или импортированием таблиц из другой базы данных Microsoft Access или из множества форматов файлов других программ.
Используя запрос на создание таблицы.
При создании таблиц в режиме конструктора необходимо, прежде всего, описать поля согласно требованиям Access: присвоить имена, указать их тип и свойства (рис. 5.1).
















Рис. 5.1. Таблица в режиме конструктора

Имена полей должны удовлетворять следующим требованиям: имя не должно содержать более 64 символов; запрещается использование точки (.), восклицательного знака (!), апострофа (), квадратных скобок ([]) и управляющих символов с кодами ASCII от 0 до 31.
В Access существует девять типов данных: текстовый, поле МЕМО, числовой, денежный, дата/время, счетчик, логический, поле объекта OLE, мастер подстановок и гиперссылка.
Текстовый служит для ввода текста или цифр, не участвующих в расчетах. Число символов в поле не должно превышать 255.
Поле МЕМО служит для ввода текстовых данных длиной до 64000 символов.
Числовой служит для ввода числовых данных, используемых в математических вычислениях.
Денежный служит для ввода денежных значений и числовых данных, используемых в расчетах, проводящихся с точностью до 15 знаков в целой и до 4 знаков в дробной части.
Дата/время служит для ввода значений даты или времени, относящихся к годам с 100 по 9999 включительно. Длина поля 8 байт.
Счетчик тип данных поля, в которое для каждой записи автоматически вводятся уникальные целые последовательно возрастающие (на 1) или случайные числа. Значения этого поля нельзя изменить или удалить.
Логический служит для ввода логических данных, имеющих одно из двух возможных значений Да/Нет (Истина/Ложь).
Поле объекта OLE служит для ввода объекта ( например, электронной таблицы Microsoft Exсel, документа Microsoft Word, рисунка, звукозаписи и др), связанного или внедренного в таблицу Access.
Мастер подстановок выбор этого типа данных запускает мастер подстановок.
Гиперссылка в полях этого типа хранятся гиперссылки, которые представляют собой путь к файлу на жестком диске, либо адрес в сети Inernet.
Для каждого поля таблицы можно задать значения свойств, в зависимости от выбранного типа данных.

Размер поля. Определяет максимальную длину текстового или числового поля. Для числового поля часто используемыми являются значения:
байт целые числа от 0 до 255 (поле занимает 1 байт);
целое целые числа от -32 768 до 32 767 (2 байта);
длинное целое целые числа от -2 147 483 648 до 2 147 483 647 (4 байта).
Используются также одинарное с плавающей точкой и двойное с плавающей точкой.
Формат поля. Определяет способ отображения текста, чисел, дат и значений времени на экране и на печати.
Число десятичных знаков. Определяет количество разрядов в дробной части числа.
Маска ввода. Определяет шаблон для ввода данных. Например, можно установить разделители при вводе телефонного номера.
Подпись. Определяет текст, который выводится в подписях полей в таблицах, запросах, формах, отчетах.
Значение по умолчанию. Содержит значение, устанавливаемое по умолчанию в данном поле таблицы.
Условие на значение. Определяет множество значений, которые можно вводить в поле таблицы.
Сообщение об ошибке. Позволяет указать текст сообщения, выводящегося на экран, если вводимые данные не удовлетворяют условию на значения.
Обязательное поле. Указывает, требует ли поле обязательного ввода значения.
Пустые строки. Определяет, допускается ли ввод в текстовое поле пустых строк.
Индексированное поле. Определяет простые индексы для ускорения поиска записей в поле.
5.5. Выражения Microsoft Access и их элементы. Операторы
Каждое выражение может содержать один или несколько операторов и одну или несколько констант, идентификаторов или функций.
Константы характеризуют неизменные значения. Значения констант определяются пользователем при вводе выражения.
Идентификаторы это имена объектов в Access (например, полей таблиц или запросов), которые при вычислении выражений заменяются (часто используется термин возвращают) их текущими значениями. Существует несколько встроенных констант, служащих идентификаторами: True, False, Yes, No и Null.
Функции возвращают в выражение значение вместо имени функции. В отличие от идентификаторов, большинство функций требуют заключать в скобки свои аргументы идентификаторы или значения подвыражений. Например, функция Time(), имеющая пустой список аргументов, возвращает текущее время.
Операторы обычные значки арифметических операций (+, -, *, /) и другие символы и аббревиатуры. Большинство из них эквивалентны операторам традиционных языков программирования.
Для создания выражений в Access существует несколько категорий операторов: арифметические, операторы присваивания и сравнения, логические операторы, операторы конкатенации.
Арифметические: + (сложение), (вычитание), * (умножение), / (деление), % (проценты), ^ (возведение в степень) и др.
Операторы присваивания и сравнения: = (равно), > (больше), < (меньше), >= (больше или равно), <= (меньше или равно), <> (не равно).
Логические операторы: AND (логическое И), OR (логическое ИЛИ), NOT (логическое отрицание), XOR (исключающее ИЛИ) и др.
Операторы конкатенации: Стандартный значок оператора конкатенации, амперсант (&), является более предпочтительным, чем значок плюса (+), хотя оба они приводят к одинаковому результату: объединению двух текстовых значений в единую строку символов.
Кроме традиционных знаков математических действий существует еще несколько операторов:
Оператор Between позволяет задать интервал для числового значения. Например, Between 10 And 100 эквивалентен условию >= 10 And <=100.
Оператор In позволяет выполнить проверку на равенство любому значению из списка. Например, In («Математика»; «История»)
Оператор Like используется для создания масок при определении строк с неизвестными символами и требует дополнительных специальных символов и правил синтаксиса. Например, Like «Л*» или Like «*л»
Специальные символы, используемые в Access:
* обозначает любую последовательность символов.
? обозначает любой одиночный символ.
# обозначает любую неизвестную цифру.

Вопросы для самопроверки
Назовите основные функциональные возможности СУБД Microsoft Access.
Из каких объектов состоит база данных?
Каковы основные этапы проектирования базы данных?
Какие типы данных существуют в Access?
Назовите основные свойства полей?
Каким требованиям должны удовлетворять имена полей таблицы?
Какие существуют категории операторов в Access?
В каких случаях используется оператор Between?
Когда используют оператор Like?
Тема 6. ТЕХНОЛОГИИ РАБОТЫ С БАЗОЙ ДАННЫХ MICROSOFT ACCESS
6.1. Типы запросов в Microsoft Access

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











Рис. 6.1. Запрос в режиме конструктора
В Access существует несколько типов запросов: запросы на выборку, перекрестные запросы, запросы действия.
Наиболее часто используемым запросом является запрос на выборку. Запрос на выборку возвращает данные из одной или нескольких таблиц, а также результаты, которые при желании пользователь может изменить (с некоторыми ограничениями). Также можно использовать запрос на выборку, чтобы сгруппировать записи для вычисления сумм, средних значений, пересчета и других действий. Для этих целей могут использоваться статистические функции: Sum, Avg, Max, Min, Count, First, Last и др.
Sum сумма значений поля для группы.
Avg среднее от всех значении поля в группе.
Max максимальное значение поля в группе.
Min минимальное значение поля в группе.
Count число значений поля в группе без учета пустых значений.
First значение поля из первой записи в группе.
Last значение поля из последней записи в группе.
Разновидностью запроса на выборку является запрос с параметрами это запрос, при выполнении которого в его диалоговом окне пользователю выдается приглашение ввести данные, например условие для возвращения записей или значение, которое должно содержаться в поле. В данном случае необходимо в условие отбора вставить квадратные скобки [ ], подразумевающие, что перед выполнением запроса должно быть активизировано окно диалога с приглашением ввести параметр, являющийся критерием отбора. Выражение в скобках выводится в этом окне в качестве сообщения-подсказки. Можно создать запрос, в результате которого выводится приглашение на ввод нескольких данных, например, двух дат. В результате будут возвращены все записи, находящиеся между указанными двумя датами. Также запросы с параметрами удобно использовать в качестве основы для форм и отчетов. Например, на основе запроса с параметрами можно создать годовой отчет о прибылях и убытках. При выводе данного отчета, на экране появится приглашение ввести год, прибыли и убытки которого интересуют пользователя. После ввода года на экране будет представлен требуемый отчет.
Перекрестный запрос вычисляет сумму, среднее значение, число элементов и значения других статистических функций, группируя данные и выводя их в компактном виде, напоминающем электронную таблицу. Эти результаты группируются по двум наборам данных, один из которых расположен в левом столбце таблицы, а второй в верхней строке.
Запрос действия это запрос, который за одну операцию вносит изменения в несколько записей. Существует четыре типа запросов на изменение: на удаление, на обновление и добавление записей, а также на создание таблицы.
Запрос на удаление удаляет группу записей из одной или нескольких таблиц. Например, запрос на удаление позволяет удалить записи о товарах, поставки которых прекращены. С помощью запроса на удаление можно удалять только всю запись, а не отдельные поля внутри нее.
Запрос на обновление записей вносит общие изменения в группу записей одной или нескольких таблиц. Например, на 15% поднимаются цены на хлебобулочные изделия или на 5% увеличивается зарплата сотрудников предприятия. Запрос на обновление записей позволяет изменять данные в существующих таблицах.
Запрос на добавление добавляет группу записей из одной или нескольких таблиц в конец одной или нескольких таблиц. Например, появилось несколько новых поставщиков, а также база данных, содержащая сведения о них. Чтобы не вводить все данные вручную, их можно добавить в таблицу используя запрос на добавление.
Запрос на создание таблицы основан на запросе выборки, но в отличие от него результат запроса сохраняется в новой таблице. Например, создание резервной копии, какой либо таблицы.
6.2. Способы проектирования форм. Элементы графического интерфейса формы
Формы являются основным средством организации интерфейса пользователя в приложениях Microsoft Access. Вы можете создавать формы с различными целями: ввод данных, вывод и редактирование данных, управление работой приложения (используя в формах макросы и процедуры VBA), вывод различных сообщений.
Форму можно создать с помощью Конструктора (самостоятельно проектируя ее структуру), с помощью Мастера форм (руководящего процессом создания формы) и используя Автоформу (выбрать готовую форму из предложенных).
Формы могут содержать следующие разделы: заголовок, верхний колонтитул, область данных, нижний колонтитул и примечание (рис. 6.2).










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






Рис. 6.3. Панель элементов
Ниже перечислены основные элементы управления и их назначение.
Инструмент Выбор объекта используется для выделения, изменения размера, перемещения и редактирования элементов управления.
Кнопка Мастера активирует мастера по созданию элементов управления.
Инструмент Надпись используется для отображения текста.
Инструмент Поле используется для просмотра, ввода, вывода и редактирования данных в базовой таблице или запросе.
Инструменты Выключатель, Переключатель, Флажок используются для отображений логического поля в форме.
Инструменты Поле со списком и Список используются для создания перечня возможных значений поля.
Инструмент Кнопка используется для создания командной кнопки, запускающей макрос или процедуру VBA.
Инструмент Рисунок позволяет вставить в форму рисунок.
Инструменты Свободная и Присоединенная рамка объекта используется для включения в форму объекта OLE.
Инструмент Подчиненная форма/отчет используется для внедрения в текущую форму другой формы.
Инструмент Набор вкладок позволяет создавать в форме несколько вкладок.

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
















Рис. 6.4. Отчет в режиме просмотра
Access предоставляет большие возможности по оформлению отчетов: шрифтовое, фоновое и цветовое оформление, обрамление, рисунки, графика, вставка различных объектов других приложений.
Существует три способа создания отчета: с помощью Конструктора (самостоятельное создание отчета «с нуля»), с помощью Мастера отчетов (отвечая на вопросы мастера, вы выбираете поля для отчета, задаете формат вывода данных, условия группировки и итоговые функции) и автоматическое создание  Автоотчет (автоматическое создание отчета в столбец или ленточного).
6.4. Автоматизация работы с базой данных
Access предоставляет различные типы макрокоманд, позволяющие автоматизировать работу приложения. Для этих целей используются макросы, выполняющие следующие действия:
запуск и выход из приложения;
открытие и закрытие различных объектов базы данных (таблиц, форм, запросов, отчетов);
выполнение, каких либо, действий в зависимости от значений элементов управления в форме;
применение различных фильтров, перехода по записям и поиска данных в таблицах или запросах;
создание специальных меню пользователя;
выполнение команд меню Access;
работа с окнами форм базы данных (перемещение, изменение размера, сворачивание и др.);
вывод на экран различных сообщений и звуковых сигналов и пр.
Это далеко не полный перечень возможностей макросов в Access. В тех же случаях, когда выполнение задач с помощью макросов все-таки невозможно или затруднено, целесообразно использовать процедуры Visual Basic для приложений.
Вопросы для самопроверки
Назовите основные статистические функции.
Назовите основные отличия функции Sum от Count.
В каких случаях в условиях отбора используют квадратные скобки?
Назовите основные запросы действия.
Для каких целей используется запрос на создание таблицы?
Для каких целей используются формы?
Каковы основные способы проектирования форм и отчетов?
Назовите основные «элементы управления» формы.
Как автоматизировать работу с базой данных?
Тема 7. СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ
7.1. Понятие СУБД
Система управления базой данных (СУБД) это комплекс языковых и программных средств, предназначенных для создания, ведения и совместного использования базы данных (БД) многими пользователями.
Система управления базой данных включает пакет программ, обеспечивающий ввод, хранение, корректировку, сохранность и перемещение данных, формирование ответов на запросы, связь с другими программными средствами.
Совокупность одной или нескольких баз данных, справочника базы данных, системы управления базами данных, библиотеки запросов и прикладных программ называют банком данных (англ. databank).
Выбор управляющих программ определяется типом логической модели, имеющимися программными и техническими средствами. Основные критерии выбора системы управления базой данных: минимизация сложности освоения системы, ее внедрения и использования; качество технической документации, уровень сопровождения.
Удобство работы пользователя определяется пользовательским интерфейсом частью системы управления базой данных, ориентированной на взаимодействие пользователя с компьютером. Доступ к данным осуществляется в виде запросов, которые формулируются на стандартном языке запросов. Действие, осуществляемое над базой данных, называется транзакцией. Особенность современных, реляционных баз данных их распределенный характер (distributed databank), т.е. размещение общей (корпоративной) БД в виде фрагментов из нескольких локальных баз данных, которые располагаются на различных узлах сети компьютеров и, возможно, управляются разными системами управления базами данных.
7.2. Языковые и программные средства СУБД
Языковые средства включают в себя:
язык описания данных (ЯОД) обеспечивает в БД идентификацию файлов, объектов, полей и их типов, определяет длину записей полей, порядок полей в записи, диапазоны допустимых значений данных и т.д., а также определяет размещение данных в памяти, способы адресации и поиска (работу с файлами, полями, записями и их параметрами).
яЯзык манипулирования данными (ЯМД) дает возможность реорганизации БД (добавления, удаления, обновления данных).
язык запросов обеспечивает доступ к данным и извлечение их по запросам пользователей (включая фильтрацию, группирование и т.п.).
Благодаря языковым средствам обеспечивается доступ пользователей к БД в абстрактных терминах, не связанных со способами хранения данных в конкретном компьютере (сервере).
Программные средства СУБД обеспечивают работу с физической БД и выполнение всех ее функций, включая разработку приложений, экспорт данных в другие БД и импорт данных из них (в том числе и через Internet). Эти средства обеспечивают также управление БД и, в основном, ориентированы на непрофессиональных пользователей.
7.3. Архитектура СУБД
Под архитектурой СУБД понимают структуру построения и совокупность основных характеристик аппаратных и программных средств, обеспечивающих работу СУБД.
Большинство СУБД работает в среде универсальных операционных систем и взаимодействует с ними при обработке обращений к БД, а также может быть связано с СУБД других информационных систем или с другими распределенными базами данных данной информационной системы.
В общем виде в архитектуре СУБД принято выделять (рис. 7.1):
ядро СУБД;
непосредственно базу данных (данные) и подсистему обработки данных;
программные и языковые средства СУБД;
интерактивные средства проектирования;
интерфейсы администратора и пользователей, используемые для управления СУБД и работы с данными;
интерфейсы связи с другими СУБД (в том числе удаленных и распределенных баз данных);
сервисные программы (внешние утилиты), обеспечивающие ряд дополнительных возможностей по обслуживанию системы.

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

7.4. Классификация СУБД
СУБД можно классифицировать по многим признакам, например:
универсальности (общего назначения и специализированные СУБД, которые разрабатываются для решения специализированных задач в тех случаях, когда СУБД общего назначения не могут обеспечить требуемой производительности и/или удовлетворить другие нужные технические параметры объем памяти, особые режимы работы, защищенность и т.п.);
поддерживаемым моделям данных (иерархическая, сетевая, реляци-онная, постреляционная, объектно-ориентированная, объектно-реляционная, многомерная и др.);
поддерживаемому режиму работы (локальные, технологии файл-сервер, технологии клиент-сервер, распределенные и т.д.);
принципу обработки запросов к БД (настольные и серверные).
В качестве квалификационного признака можно рассматривать также среду функционирования СУБД (платформу) класс ПК и ОС, под управлением которых работает СУБД;
наличию диалоговых и инструментальных средств для конструирования объектов БД;
возможности встроенного языка СУБД и использования OLE технологий;
возможности работы с нетрадиционными данными (данными не являющимися текстом, числами и датами);
обеспечению интеграции данных из БД, созданных в разных СУБД, и др.
7.5. Основные функциональные возможности СУБД
Современные СУБД имеют следующие функциональные возможности:
создание БД и работа с ней в однопользовательском и/или в многопользовательском режиме;
извлечение данных из БД путем запросов, которые могут создаваться с использованием программных и языковых средств СУБД;
создание приложений;
взаимодействие с другими СУБД и информационными объектами, а также установление доступа и организация связей с использованием технологий ODBC (Open Data Base Connectivity) открытый доступ к БД, DDE (Dynamic Data Exchange) динамический обмен данными. OLE (Object Linking and Embedding) связывание и внедрение объектов, DAO (Data Access Object)  доступ к данным элементов управления и др.;
создания документов HTML (Hyper Text Markup Language) язык разметки гипертекста;
администрирование и управление, обеспечивающие поддержку целостности БД с помощью механизма транзакций, защиту от несанкционированного доступа и сбоев в работе, восстановление БД в случаях ее повреждения и т.д.
Одной из важнейших характеристик СУБД является ее производительность. Применительно к средствам вычислительной техники под производительностью понимают количество выполняемых операций или команд в единицу времени. Производительность СУБД зависит от быстродействия выполнения операций по обработке данных (приему и загрузке данных, их выборке, сортировке, группированию, вычислению, обновлению, преобразованию, передаче в другие СУБД и удалению).
Как уже отмечалось в теме 3, при работе с базой данных процессор обменивается данными напрямую с жестким диском и за счет этого производительность СУБД резко снижается. Повысить производительность СУБД можно за счет:
Повышения быстродействия посредством административных мер:
установкой БД на собственном жестком диске, а не на сервере;
работой с БД в монопольном режиме;
закрытием при работе с данными всех приложений кроме СУБД;
увеличением объема оперативной памяти;
сжатием базы данных и выполнением дефрагментации диска;
установкой параметров виртуальной памяти.
Повышения быстродействия фильтров, путем изменения их параметров.
Повышения быстродействия при поиске и замене данных, путем использования индексов.
Повышения быстродействия форм и подчиненных форм. Это достигается: закрытием не использующихся форм, исключением лишних рисунков и графиков, использованием черно-белых изображений, созданием кнопок с макросами и гиперссылками, вместо кнопок, использующих процедуры обработки событий, созданием подчиненных форм не на базе таблиц, а на базе запросов.
Повышения быстродействия списка и поля со списком, посредством их создания на базе запроса, а не на базе инструкции SQL, включения только крайне необходимых полей в списки и т.п.
Повышения быстродействия отчетов и подчиненных отчетов, путем индексации полей, по которым производится сортировка и группировка, исключения цветных и излишних рисунков, создания отчетов на базе запросов, а не таблиц.
Повышения быстродействия страниц доступа к данным, путем закрытия неиспользуемых объектов базы и применения оптимальных действий к рисункам и графическим объектам.
Для оптимизации быстродействия базы данных часто используется анализатор быстродействия, который по результатам работы выдает три типа рекомендаций по оптимизации: совет, предложение и мысль.
7.6. Режимы работы пользователя с СУБД
Наличие графического пользовательского интерфейса обычно предусматривает возможность работы пользователя в трех режимах:
1. Через меню системы. После загрузки приложения СУБД пользователю предоставляется интерфейс системы, в составе которого имеется ряд команд, обеспечивающих создание файла БД с использованием общих шаблонов и шаблонов баз данных, расположенных как на персональном компьютере, так и на серверах. Для создания таблиц, форм, запросов, отчетов и обработке данных меню СУБД обычно предусматривает возможность использование различных вспомогательных средств. Например, в Ms.Access такую работу можно проводить с помощью «Мастера» или «Конструктора».
2. В командном режиме с использованием предусмотренных конструкций встроенного языка команд, в том числе языка SQL. Команды на языке SQL набираются с использованием определенных директив, основные из которых будут рассмотрены в теме 9. При наборе команд и выражений в Ms.Access может, например, использоваться специальное средство «Построитель выражений», а также достаточно хорошая справочная система Ms.Access. Командный режим при работе в Ms.Access может обеспечиваться путем использования Макросов и Модулей с применением языка VBA (Visual Basic for Application).
3. В программном режиме, обеспечивающем организацию доступа к данным и управления ими из прикладных программ.
При работе в данном режиме возможно создание объектов СУБД путем составления программных кодов с использованием языковых и программных средств, которые представлены в СУБД в виде языков программирования высокого уровня и встроенных языков декларативного типа.
В настоящее время широкое распространение получили компьютерные сети, пользователи которых могут работать с СУБД в однопользовательском и многопользовательском режимах, обеспечивающих доступ к БД и работу в перечисленных выше режимах (одного из них или многих одновременно).
7.7. Направления развития СУБД
Развитие СУБД начиналось с настольного варианта (dBASE, FoxBASE, Paradox и др. в том числе, первая версия Ms Access первая версия настольной реляционной СУБД для 16-разрядной версии Windows).
При работе с настольной СУБД сами базы данных расположены на том же компьютере, что и СУБД, осуществляющая доступ к ним.
Однако база данных, как правило, содержит данные, необходимые многим пользователям, что может быть обеспечено при создании сетевой многопользовательской базы данных. Сеть обеспечивает аппаратурную и программную поддержку обмена данными между компьютерами. СУБД следит за разграничением доступа разных пользователей к базе данных и обеспечивает защиту данных при одновременной работе пользователей с общими данными. Разграничение доступа осуществляется в соответствии с правами, предоставленными отдельным пользователям в сетевой операционной системе.
Этапом развития настольных СУБД стало появление их сетевых многопользовательских версий, а также расширение типов обрабатываемых данных.
Появились версии dBase III, dBase III Plus и Visual dBase 2000, которая имеет средства для работы с данными всех версий dBase и FoxPro, а также с Internet и Web-клиентами.
Версия Paradox 9, являющаяся частью Corel Office Professional и средства для работы с данными других версий Paradox и dBase, а также с Internet и Web-клиентами.
СУБД FoxPro, приобретенная Microsoft, начиная с версии 3.0, называется Visual Fox Pro. Одна из последних версий Visual Fox Pro 6.0 имеет отличные средства визуального моделирования объектов, публикации данных в Internet, хорошо интегрируется с другими продуктами Microsoft, в том числе и с Microsoft SQL Server.
Общая тенденция развития СУБД показывает, что распределенные системы становятся преобладающими. На сегодняшний день существуют две параллельно развивающиеся и конкурирующие технологии распределенных СУБД:
Технология COM Component Object Model компонентная модель объектов корпорации Microsoft.
Технология COM предназначена для того, чтобы одна программа (клиент) смогла заставить работать объект, являющийся частью другой программы (частью сервера). При этом обе программы могут быть размещены на разных компьютерах, а также написаны на разных языках, работающих под разными ОС. Даже компьютеры могут быть разного типа.
CORBA Common Object Require Broker Architecture архитектура с поставщиком требуемых общих объектов независимой группы.
Технология CORBA значительно сложнее COM как в понимании деталей ее работы, так и в практической реализации.
Распределенные технологии баз данных на сегодняшний день становятся близкими по своему назначению и работе с Web-технологиями и практически наступает взаимная интеграция этих технологий.
Работая с распределенной базой данных и используя тип данных гиперссылка, достаточно щелчка левой кнопки мыши на ссылке и автоматически происходит запуск браузера и воспроизведение объекта в его окне. Пользователь может и сам задать URL, при этом Web-браузер отправит запрос соответствующему Web-серверу. В ответ на запрос Web-сервер отправляет текст указанного документа, а Web-браузер отображает его.
Тенденция развития всемирной паутины в настоящее время указывает на то, что вся информация, кроме закрытой (конфиденциальной), может располагаться на Web-серверах Интернета и фактически является глобальной распределенной базой данных. В таком контексте СУБД фактически превращаются в базы знаний, что и подтверждается в настоящее время на практике. Любую интересующую нас информацию мы можем получить, не выходя из дома, лишь подключившись к Интернету.
Развитие БД первоначально было мотивировано потребностью в эффективных системах накопления, хранения, модификации и извлечения большого количества разнообразных данных.
По мере того, как в достижении этих целей был достигнут успех, возникла возможность задавать БД правила (вопросы), применяемые к хранимым фактам (данным), позволяющие выводить из БД другие факты, сведения и знания, т.е. превращать БД в базы знаний (БЗ).
Эволюция перехода от БД к БЗ связана с эволюцией перехода понятий: данные, факты, сведения и затем знания.
Система управления базами знаний (СУБЗ) обладает всеми стандартными возможностями СУБД, касающимися хранения данных и манипулирования ими, а также создания правил вывода, их хранения и применения к хранимым таблицам данных.
База данных содержит факты, относящиеся к статусу конкретного предмета из заданной области.
База знания хранит и накапливает знания в определенной предметной области по изменению статуса конкретных предметов.
Программное обеспечение базы знаний, помимо основных функций, управляет работой Машины выбора выводов, которая в зависимости от запроса на основании логического умозаключения делает выводы по конкретной заданной проблеме.
Более подробно вопросы назначения, построения и использования базы знаний рассматриваются в теме 8.
Вопросы для самопроверки
Дайте определение понятия СУБД.
Какие языковые средства используются в СУБД?
Назначение и функции программных средств СУБД?
Назовите основные элементы архитектуры СУБД и их назначение.
Для каких целей разрабатываются специализированные СУБД?
Как классифицируются СУБД по поддерживаемой модели данных и поддерживаемому режиму работы СУБД?
Назовите основные способы повышения производительности СУБД.
В каких режимах пользователь может работать с СУБД?
Охарактеризуйте основные направления развития СУБД.
В чем заключается эволюционное преобразование баз данных в базы знаний?

Тема 8. МОДЕЛИ ПРЕДСТАВЛЕНИЯ ЗНАНИЙ
8.1. Знания. Их виды. Базы знаний. Модели представления знаний
Что же такое знания и чем они отличаются от обычных данных, обрабатываемых ЭВМ? Можно предложить несколько рабочих определений, в рамках которых это становится очевидным.
Данные это отдельные факты, характеризующие объекты, процессы и явления в предметной области и их свойства.
Знания основаны на данных, полученных эмпирическим путем. Они представляют собой результат мыслительной деятельности человека, направленной на обобщение его опыта, полученного в результате выполнения какой-либо практической деятельности.
Знания это закономерности предметной области (принципы, связи, законы), полученные в результате практической деятельности и профессионального опыта, позволяющие специалистам ставить и решать задачи в этой области.
Часто используются такие определения знаний: «Знания это хорошо структурированные данные» или «Знания это данные о данных метаданные».
Знания могут быть классифицированы по следующим категориям:
поверхностные знания о видимых взаимосвязях между отдельными событиями и фактами в предметной области;
глубинные абстракции, аналогии, схемы, отображающие структуру и процессы в предметной области.
Можно привести следующий пример: поверхностные знания «Если нажать на кнопку звонка, раздастся звук»; глубинные знания «Принципиальная электрическая схема звонка и проводки».
Современные интеллектуальные системы, включающие базы знаний, работают, в основном, с поверхностными знаниями. Это связано с тем, что на данный момент нет универсальных методик, позволяющих выявлять глубинные структуры знаний и работать с ними.
Иногда знания также подразделяют на знания первого и второго рода.
Знания первого рода общедоступные, хорошо известные, признанные в данной предметной области, общезначимые факты, явления, определения, закономерности-истины, теории, которые обычно изложены и зафиксированы, достаточно хорошо освещены в специальной литературе (книгах, статьях, учебниках, справочниках и т. п.) по данной предметной области.
Знания второго рода это эмпирические правила, интуитивные соображения и факты, которые, как правило, отсутствуют в литературе, но которые дают возможность опытному эксперту на основе собственного опыта, накопленного в результате многолетней практики, эффективно принимать решения даже в условиях неполных и противоречивых исходных данных. Эти личные знания в значительной степени состоят из эмпирических правил, которые называют эвристиками.
Кроме того, применительно к области искусственного интеллекта, знания традиционно делят на процедурные и декларативные. Исторически первичными были процедурные знаний, т.е. знания, «растворенные» в алгоритмах. Они управляли данными. Для их изменения требовалось изменять программы. Однако с развитием искусственного интеллекта приоритет данных постепенно изменялся, и все большая часть знаний сосредотачивалась в структурах данных (таблицы, списки, абстрактные типы данных), то есть увеличивалась роль декларативных знаний.
При обработке на ЭВМ знания трансформируются, условно проходя следующие этапы:
знания в памяти человека как результат мышления;
материальные носители знаний (учебники, методические пособия);
поле знаний условное описание основных объектов предметной области, их атрибутов и закономерностей, их связывающих;
знания, описанные на языках представления знаний (продукционные модели, семантические сети, фреймы);
базы знаний на машинных носителях.
Базы знаний это особого рода базы данных, разработанные для управления знаниями, то есть сбором, хранением, поиском и выдачей знаний.
Простые базы знаний можно использовать для хранения данных, которые могут помочь менее опытным людям найти существующее описание способа решения какой-либо проблемы предметной области.
Сложные базы знаний являются одним из главных компонентов систем искусственного интеллекта, в частности экспертных систем. Они предназначены для построения способа решения специализированных проблем, основываясь на записях базы знаний и на пользовательском описании ситуации.
В интеллектуальной системе база знаний это совокупность знаний о предметной области, организованных в соответствии с принятой моделью представления знаний.
Многие базы знаний интеллектуальных систем поддерживают особенности этих систем такие как: самообучение возможность модификации базы знаний в процессе работы системы и [ Cкачайте файл, чтобы посмотреть ссылку ] ее к проблемной области (аналог человеческой способности «набирать опыт») и автоматическое доказательство (вывод) способность системы выводить новые знания из старых, находить закономерности в базе знаний.
База знаний содержит факты (или утверждения) и правила. Факты представляют собой краткосрочную информацию в том отношении, что они могут изменяться (например, в ходе консультации). Правила представляют более долговременную информацию о том, как порождать новые факты или гипотезы из того, что сейчас известно.
База знаний записывается на машинный носитель в форме, понятной и эксперту (знания которого были заложены в базу) и пользователю, обычно на некотором языке, приближенном к естественному. Параллельно такому «человеческому» представлению существует база знаний во внутреннем «машинном» представлении.
При необходимости база знаний интеллектуальной системы может пополняется новой или недостающей информацией с помощью специальной программы редактора баз знаний. Редактор включает в себя систему вложенных меню, шаблонов языка представления знаний, подсказок и других сервисных средств, облегчающих работу с базой знаний.
При создании баз знаний решаются две основные задачи:
1. Получение знаний (передача потенциального опыта решения проблемы от некоторого источника знаний) и его преобразование в вид, который позволяет использовать эти знания в программе.
2. Представление знаний отыскание методов формального описания больших массивов полезной информации с целью их последующей обработки с помощью символических вычислений.
Модели представления знаний
Представление знаний это множество соглашений по синтаксису и семантике, согласно которым описываются объекты. Хорошее правило при проектировании представления знаний это организация знаний в такой форме, которая позволяет легко осуществлять доступ к ним с помощью естественных и простых механизмов.
Специфика представления знаний, организации базы знаний и поиска решений зависят от особенностей проблемной области, от характера имеющихся знаний о ней и от сложности поставленной задачи.
Особенности проблемной области это степень сложности объекта, его количественная сложность (размер, количество элементов) и его качественная сложность (сложность его организации и поведения статический, динамический, развивающийся).
Особенности знаний о проблемной области это полнота, определенность, точность знаний о ней (полнота, определенность, точность данных об объекте, а также полнота и адекватность модели объекта).
Особенности поставленной задачи это сложность подлежащей разрешению задачи, количество искомых решений (одно, несколько или все) и качество требуемых решений (наличие ограничений, оптимальность, время, память, точность и т.п.).
По этим признакам наиболее простая проблемная ситуация возникает в том случае, когда проблемная область мала, статична и однородна; имеются полные, точные данные и единая адекватная модель; задача состоит в отыскании любого одного решения без каких-либо особенных ограничений. Примером такого рода проблемы может быть проверка наличия заданного типа товара на складе небольшой торговой фирмы.
Напротив, наиболее сложная проблемная ситуация возникает, если проблемная область велика, неоднородна, имеет сложную и меняющуюся организацию; данные о ней неполны, неточны и сомнительны, а модель проблемной области неоднородна и не вполне адекватна; задача же состоит в отыскании всех решений в условиях множества различных ограничений. Примером такого рода проблем могут служить проблема оптимального планирования развития большого предприятия или региона.
Модели представления знаний обычно делят на эвристические (формализованные) и формальные логические.
Эвристические модели имеют разнообразный набор средств, передающих специфические особенности той или иной предметной области. Именно поэтому эвристические модели превосходят логические как по возможности адекватно представить проблемную среду, так и по эффективности используемых правил вывода.
К наиболее распространенным эвристическим моделям можно отнести продукционные, семантические (сетевые) и фреймовые модели представления знаний. Они отличаются от формальных систем тем, что используют более сложные конструкции правил, а также содержат эвристическую информацию о специфике проблемной среды.
8.2. Продукционные модели. Работа машины вывода. Стратегии управления выводом
Способ представления знаний в виде продукционной модели основан на понятии «формальной системы продукций», которое в начале 50-х годов ввел в обращение американский логик Пост. Он показал, что любая формальная система может быть представлена как система продукций, т.е. как совокупность правил {Ri :
·i
·i }, где выражение Ri :
·i
·i означает, что в данной формальной системе по правилу Ri из посылки
·i непосредственно выводится заключение
·i .
Сегодня продукционные модели являются наиболее популярными средствами представления знаний в системах искусственного интеллекта. Продукции, с одной стороны, близки к логическим моделям, что позволяет организовывать на них эффективные процедуры вывода, а с другой стороны, более наглядно отражают знания, чем классические логические модели. В них отсутствуют жесткие ограничения, характерные для логических исчислений, что дает возможность изменять интерпретацию элементов продукции.
Продукционная модель, или модель, основанная на правилах, позволяет представить знания в виде предложений типа «Если А (условие), то В (действие)».
Под «условием» понимается некоторое предложение-образец, по которому осуществляется поиск в базе знаний, а под «действием» действия, выполняемые при успешном исходе поиска.
При использовании продукционных моделей для представления знаний создается продукционная система набор продукций, организованный по определенному принципу. Для систем продукций создаются также определенные процедуры управления их функционированием, на которые обычно возлагается решение следующих задач:
выявление совокупности активных правил продукций, условия для применения которых выполнены (правил, которые могут действовать);
разрешение конфликтов между правилами (с учетом приоритетов, эффективности, эвристик) и выбор правила для применения (правила, которое должно действовать);
применение выбранного правила, то есть выполнение действий, предписываемых правой частью продукции (исполнение действия).
В самом общем виде продукционное правило представляет собой набор (I, Q, P, AB, N) следующих компонент:
I имя продукции, с помощью которого данная продукция выделяется из всего множества продукций (имя может выражать суть продукции, смысл выполняемого ей действия).
Q область применения продукции часто система продукций может быть разделена на подсистемы, каждая из которых связана с решением определенного типа задачи в комплексе задач, что позволяет экономить время на поиск нужных знаний.
P условие применимости ядра продукции. Обычно Р представляет собой логическое выражение (когда Р принимает значение «истина», ядро продукции активизируется, а если Р «ложно», то ядро продукции не может быть использовано).
AB ядро продукции основной элемент продукционной системы.
N постусловия применения продукции другие последствия и изменения, обусловленные применением данного правила, не учтенные в правой части В его ядра. Они актуализируются только в том случае, если ядро продукции реализовалось. Постусловия продукции описывают действия и процедуры, которые необходимо выполнить после реализации В. Выполнение N может происходить сразу после реализации ядра продукции.
Ядра продукции можно классифицировать по различным основаниям. Прежде всего все ядра делятся на два больших типа:
детерминированные при актуализации ядра и при выполнимости А правая часть ядра выполняется обязательно, т.е. предложение реализуется с необходимостью;
недетерминированные при актуализации ядра и при выполнимости А правая часть ядра может выполняться или не выполняться, т.е. предложение реализуется с возможностью (интерпретация ядра в этом случае может, например, выглядеть так: «если А, то возможно В»).
Возможность может определяться некоторыми оценками реализации ядра. Например, если задана вероятность выполнения В при актуализации А, то продукция может быть такой: «если А, то с вероятностью р реализовать В». Оценка реализации ядра может быть лингвистической, связанной с понятием терм-множества лингвистической переменной, например: «если А, то с большей долей уверенности В». Возможны иные способы реализации ядра.
Детерминированные продукции могут быть однозначными и альтернативными. Во втором случае в правой части ядра указываются альтернативные возможности выбора, которые оцениваются специальными весами выбора. В качестве таких весов могут использоваться вероятностные оценки, лингвистические оценки, экспертные оценки и т.п.
Особым типом являются прогнозирующие продукции, описывающие последствия, ожидаемые при актуализации А, например: «если А, то с вероятностью р можно ожидать В».
Основными элементами продукционных систем являются следующие:
База данных структура данных (исходных фактов), используемая продукционной системой. В зависимости от конкретной задачи она может быть простой, как обычная матрица чисел, или сложной, как большая реляционная индексированная файловая структура.
База знаний множество правил (продукций).
Машина вывода, которая формирует заключения, используя базу знаний и базу данных.
Работа машины вывода
Машина вывода является системой управления продукционной системы и выполняет функции просмотр существующих фактов из рабочей памяти (базы данных) и правил из базы знаний и добавление (по мере возможности) в рабочую память новых фактов, а также определение порядка просмотра и применения правил.
Машина вывода управляет процессом консультации, сохраняя для пользователя информацию о полученных заключениях, и запрашивает у него информацию, когда для срабатывания очередного правила в рабочей памяти оказывается недостаточно данных.
В подавляющем большинстве систем, основанных на знаниях, машина вывода представляет собой небольшую по объему программу и включает два компонента один реализует собственно вывод, другой управляет этим процессом.
Компонент вывода действует на основании правила: «Если известно, что истинно утверждение А и существует правило вида “ЕСЛИ А, ТО В”, тогда утверждение В также истинно».
Правила срабатывают, когда находятся факты, удовлетворяющие их левой части: если истинна посылка, то должно быть и истинно и заключение.
Компонент вывода должен функционировать даже при недостатке информации. Полученное решение может быть и неточным, однако система не должна останавливаться из-за того, что отсутствует какая-либо часть входной информации.
Управляющий компонент определяет порядок применения правил и выполняет следующие функции:
сопоставление образец правила сопоставляется с имеющимися фактами;
выбор если в конкретной ситуации может быть применено сразу несколько правил, то из них выбирается одно, наиболее подходящее по заданному критерию (разрешение конфликта);
срабатывание если образец правила при сопоставлении совпал с какими-либо фактами из рабочей памяти, то правило срабатывает.
действие рабочая память подвергается изменению путем добавления в нее заключения сработавшего правила. Если в правой части правила содержится указание на какое-либо действие, то оно выполняется.
Машина вывода работает циклически. В каждом цикле она просматривает все правила, чтобы выявить те, посылки которых совпадают с известными на данный момент фактами из рабочей памяти. После выбора правило срабатывает, его заключение заносится в рабочую память, и затем цикл повторяется сначала.
В одном цикле может сработать одно правило. Если несколько правил успешно сопоставлены с фактами, то машина вывода производит выбор по определенному критерию единственного правила, которое срабатывает в данном цикле. Схема цикла работы машины вывода представлена на рис. 8.1.

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

Рис. 8.2. Схема работы машины вывода
Стратегии управления выводом в продукционной системе
От выбранного метода поиска, то есть стратегии вывода, будет зависеть порядок применения и срабатывания правил. Процедура выбора сводится к определению направления поиска и способа его осуществления. Процедура, реализующие поиск, обычно «зашиты» в машину вывода, поэтому в большинстве систем инженеры по знаниям не имеют к ним доступа и, следовательно, не могут в них ничего изменить по собственному желанию.
При разработке стратегии управления выводом важно определить два вопроса:
1. Какую точку в пространстве состояний принять в качестве исходной? От выбора этой точки зависит и метод осуществления поиска в прямом или обратном направлении.
2. Какими методами можно повысить эффективность поиска решения? Эти методы определяются выбранной стратегией перебора в глубину, в ширину, по подзадачам или иначе.
Существуют два метода осуществления поиска (способа вывода заключений):
прямой вывод путем построения прямой (от данных к цели поиска) цепочки рассуждений;
обратный вывод путем построения обратной (от цели, для ее подтверждения к данным) цепочки рассуждений.
В прямых цепочках рассуждений вывод очередного заключения осуществляется путем сопоставления данных, содержащихся в базе данных, с левыми частями правил, и если находится правило, где сопоставление происходит, правая часть этого правила в качестве заключения по этому правилу помещается в базу данных (или исполняется предписываемое правой частью этого правила действие, соответствующим образом изменяющее содержимое базы данных).
В обратных цепочках рассуждений вывод начинается от поставленной цели, то есть выдвигается некоторая цель (гипотеза), а затем машина вывода как бы возвращается назад, переходя к правилам, пытаясь найти те, которые ее подтверждают. Если находится правило, правая часть (заключение) которого сопоставляется с этой целью, то левая часть (посылка) правила принимается за подцель. Этот процесс обратного вывода повторяется до тех пор, пока не будет получено совпадение подцелей с данными.
Обратный поиск обычно применяется в тех случаях, когда цели известны и их сравнительно немного.
Существуют системы, в которых вывод основывается на сочетании прямой и обратной цепочки рассуждений. Такой комбинированный метод получил название циклического.
В системах, базы знаний которых насчитывают сотни правил, желательным является использование стратегии управления выводом, позволяющей минимизировать время поиска решения и тем самым повысить эффективность вывода. К числу таких стратегий относятся: поиск в глубину, поиск в ширину, разбиение на подзадачи и альфа-бета алгоритм.
При поиске в глубину в качестве очередной подцели выбирается та, которая соответствует следующему, более детальному уровню описания задачи. Например, диагностирующая система, сделав на основе известных симптомов предложение о наличии определенного заболевания, будет продолжать запрашивать уточняющие признаки и симптомы этой болезни до тех пор, пока полностью не опровергнет выдвинутую гипотезу.
При поиске в ширину, напротив, система вначале проанализирует все симптомы, находящиеся на одном уровне пространства состояний, даже если они относятся к разным заболеваниям, и лишь за тем перейдет к симптомам следующего уровня детальности.
Разбиение на подзадачи подразумевает выделение подзадач, решение которых рассматривается как достижение промежуточных целей на пути к конечной цели. Примером, подтверждающим эффективность разбиения на подзадачи, является поиск неисправностей в компьютере сначала выявляется отказавшая подсистема (питание, память и т.д.), что сравнительно сужает пространство поиска. Если удается правильно понять сущность задачи и оптимально разбить ее на систему иерархически связанных целей-подцелей, то можно добиться того, что путь к ее решению в пространстве поиска будет минимальным.
Альфа-бета алгоритм позволяет уменьшить пространство состояний путем удаления ветвей, неперспективных для успешного поиска. Поэтому просматриваются только те вершины, в которые можно попасть в результате следующего шага, после чего неперспективные направления исключаются. Альфа-бета алгоритм нашел широкое применение в основном в системах, ориентированных на различные игры, например, в шахматных программах.
Продукционная модель привлекает разработчиков своей наглядностью, высокой модульностью, легкостью внесения дополнений и изменений и простотой механизма логического вывода.
В ряде систем искусственного интеллекта используют комбинации сетевых и продукционных моделей представления знаний. В таких моделях декларативные знания описываются в сетевом компоненте модели, а процедурные знания в продукционном.
К достоинствам продукционной модели можно отнести: модульность структуры, естественность вывода (аналогия с рассуждениями человека-эксперта), простота модернизации и расширения (для внесения изменений в структуру, а, следовательно, и в процесс обработки, достаточно изменить правило).
8.3. Семантические сети. Виды отношений
Термин семантическая означает смысловая, а сама семантика это наука, устанавливающая отношения между символами и объектами, которые они обозначают, т.е. наука, определяющая смысл знаков.
В основе семантических моделей лежит понятие сети, образованной помеченными вершинами и дугами. Вершины сети представляют некоторые сущности (абстрактные или конкретные объекты, процессы, события, явления), а дуги отношения между сущностями, которые они связывают (связи типа «это», «имеет частью», «принадлежит» и т.п.). Наложив ограничения на описание дуг и вершин, можно получить сети различного вида. Если вершины не имеют собственной внутренней структуры, то соответствующие сети называются простыми. Если вершины обладают некоторой структурой, то такие сети называют иерархическими.
Характерной особенностью семантических сетей является обязательное наличие трех типов отношений: класс элемент класса, свойство значение и пример элемента класса.
В самом общем случае сетевая модель это информационная модель предметной области. В сетевой модели представляются множество информационных единиц (объекты и их свойства, классы объектов и их свойств) и отношения между этими единицами.
В зависимости от типов отношений между информационными единицами различают сети:
классификационные, в которых используются отношения (типа часть-целое, род, вид, индивид), описывающие структуру предметной области, что позволяет отражать в базах знаний разные иерархические отношения между информационными единицами;
функциональные (их часто называют вычислительными моделями), позволяющие описывать процедуры «вычислений» одних информационных единиц через другие;
каузальные (называемые также сценариями), использующие причинно-следственные отношения, а также отношения типа «средство результат», «орудие действие» и т.п.
смешанные, использующие разнообразные типы отношений.
Если в сетевой модели допускаются отношения различного типа, то ее обычно называют семантической сетью.
Важной чертой семантических сетей является возможность представлять знания более естественным и структурированным образом, чем это делается с помощью других формализмов.



Виды отношений
При разработке представлений в виде семантических сетей важную роль играют следующие отношения:
«является», отражающее принадлежность объекта некоторому классу объектов;
«имеет», указывающее на то, что одно понятие представляет часть другого;
«есть», указывающая на то, что одно понятие служит атрибутом другого.
Можно предложить несколько классификаций семантических сетей, связанных с типами отношений между понятиями. По количеству типов отношений сети делятся на однородные (с единственным типом отношений) и неоднородные (с различными типами отношений). По типам отношений их можно классифицировать как бинарные (в которых отношения связывают два объекта) и n-арные (в которых есть специальные отношения, связывающие более двух понятий).
Семантические отношения бывают:
Лингвистическими (глагольными, атрибутивными и падежными) отображают смысловую взаимосвязь между событиями, между событиями и понятиями или свойствами. Они бывают глагольными, атрибутивными и падежными.
Логическими операциями, используемыми в алгебре логики (дизъюнкция, конъюнкция, инверсия и импликация).
Теоретико-множественными отношениями подмножества, части целого, множества и элемента.
Квантифицированными логическими кванторами общности и существования. Они используются для представления таких знаний как «Существует работник А, обслуживающий склад В» и т.д.
Наиболее часто в семантических сетях используются следующие отношения:
связи типа «часть целое» («класс подкласс», «элемент множество» и т.п.);
функциональные связи (определяемые обычно глаголами «производит», «влияет» и т.п.);
качественные связи (больше, меньше, равно и т.д.);
пространственные связи (далеко от, близко от, за, под, над и т.п.);
временные связи (раньше, позже, в течение и т.д.);
атрибутивные связи (иметь свойство, иметь значение и т.п.);
логические связи (и, или, не);
и другие.
Проблема поиска решения в базе знаний типа семантической сети сводится к задаче поиска фрагмента сети, соответствующего некоторой подсети, соответствующей поставленному вопросу.
8.4. Фреймы. Их примеры, виды, структура. Сети фреймов, наследование свойств
Автором теории фреймов является профессор Массачусетского технологического института Мервин Минский, который в 70-е гг. предложил фрейм как структуру знаний для восприятия пространственных сцен. В основе этой теории лежат психологические представления о том, как мы видим, слышим и концентрируем воспринимаемое. Сам Минский считал теорию фреймов скорее теорией постановки задач, чем продуктивной теорией, и суть ее излагал следующим образом. Каждый раз, попадая в некую ситуацию, человек вызывает из своей памяти соответствующую ситуации структуру, именуемую фреймом. Минский определил фрейм как единицу представления знания (абстрактного образа или ситуации), заполненную в прошлом, детали которой по необходимости изменяются и уточняются применительно к ситуации. Каждый фрейм может быть дополнен различной информацией, касающейся способов применения данного фрейма, последствий этого применения и т.п. Например, образ жизни каждого человека это, большей частью, череда типовых ситуаций, различающихся каждый раз в деталях, но в общем и целом повторяющихся.
Фрейм это структура знаний (т.е. декларативное представление), предназначенная для предоставления некоторой стандартной ситуации. С каждым фреймом ассоциируется разнообразная информация (в том числе и процедуры). Фрейм можно представить в виде сети, состоящей из вершин и отношений (дуг). Родственные фреймы связаны в систему фреймов. Система содержит описание зависимостей (причинных, временных и т.п.) между входящими в нее фреймами. Для выражения указанных зависимостей фреймы, входящие в систему, имеют общее множество слотов. Представление зависимостей в явном виде позволяет предсказать переход от одного состояния к другому, зависимому от него, состоянию и осуществить этот переход эффективно.
Для фреймовой модели характерно:
представление знаний в виде достаточно крупных, содержательно завершенных единиц, называемых фреймами;
иерархическая структура фреймов, где иерархия основана на степени абстрактности фреймов;
совмещение во фреймах декларативных и процедурных знаний.
Модель фрейма является достаточно универсальной, поскольку позволяет отобразить все многообразие знаний о мире через следующие виды фреймов:
фреймы-структуры, для обозначения объектов и понятий (заем, залог, вексель);
фреймы-роли (менеджер, кассир, клиент);
фреймы-сценарии (банкротство, собрание акционеров, празднование именин);
фреймы-ситуации (тревога, авария, рабочий режим устройства)
и другие.
Фрейм имеет иерархическую структуру: на верхнем уровне располагаются фиксированные характеристики ситуации, на последующих уровнях (в так называемых «слотах» отсеках) уточняющая и конкретизирующая информация. Различают также пользовательское и машинное представление фреймов.
С точки зрения пользователя различают три уровня общности фреймов:
а) скелетный, пустой фрейм (шаблон), превращаемый после его заполнения в общее или конкретное понятие;
б) фрейм общего понятия (прототип или образец) шаблон, заполненный не конкретными значениями, константами, а переменными;
в) фрейм конкретного понятия (экземпляр) прототип, заполненный конкретными значениями, константами.
Фреймы-образцы хранятся в базе знаний, а фреймы-экземпляры создаются для отображения реальных фактических ситуаций на основе поступающих данных.
Структура фрейма может выглядеть следующим образом:

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

имя слота
тип слота
значение слота
присоединенная процедура






Внутреннее (машинное) представление фрейма имеет более сложную организацию и содержит средства для создания иерархии фреймов, их взаимодействия, обмена информацией, порождения конкретных фреймов из общих и общих фреймов из скелетных.
При конкретизации фрейма ему и его слотам присваиваются конкретные имена, а затем слоты заполняются значениями. Переход от исходного фрейма-прототипа к фрейму-экземпляру может быть многошаговым (за счет постепенного уточнения значений слотов).
Имя фрейма это идентификатор, присваиваемый фрейму, уникальный во всей фреймовой системе. Фрейм состоит из произвольного числа слотов, часть из которых определяется системой.
Имя слота это идентификатор слота, уникальный в пределах фрейма.
Во фреймовых системах иерархического типа, основанных на отношениях «абстрактное конкретное» создаются указатели наследования, которые показывают, какую информацию об атрибутах слотов верхнего уровня наследуют слоты с такими же именами во фреймах нижнего уровня.
Указатель атрибутов слота это указатель типа данных слота. К таким типам относятся FRAME (указатель); INTEGER (целое); REAL (вещественное); BOOL (булево); LISP (присоединенная процедура); TEXT (текст); LIST (список); TABLE (таблица); EXPRESSION (выражение) и др.
Каждый слот предназначен для заполнения определенной структурой данных (в скелетном фрейме все они пусты, кроме первого, который имеет значение).
Значение слота значение, соответствующее типу данных слота и удовлетворяющее условиям наследования. Значением слота может быть практически все, что угодно: числа или математические соотношения, тексты на естественном языке или программы, правила вывода или ссылки на другие слоты данного фрейма или других фреймов (сети фреймов).
У фреймовых моделей представления знаний нет специального механизма управления выводом и пользователь должен создавать его сам. Для этого используется три способа управления выводом: с помощью механизма наследования, демонов и присоединенных процедур.
Наследование свойств, заимствованное из теории семантических сетей, является важнейшим свойством теории фреймов. Во фреймах (как и в семантических сетях) наследование происходит по AKO-связям (A-Kind-Of = это). Слот AKO указывает на фрейм более высокого уровня иерархии, откуда неявно наследуются, т.е. переносятся значения аналогичных слотов.
Существуют несколько способов получения слотом значений во фрейме-экземпляре:
по умолчанию от фрейма образца (Default-значение);
через наследование свойств от фрейма, указанного в слоте AKO;
по формуле, указанной в слоте;
через присоединенную процедуру;
явно из диалога с пользователем;
из баз данных.
В моделях представления знаний фреймами объединяются декларативные и процедурные знания. В качестве процедурных знаний выступают демоны и присоединенные процедуры.
Демон процедура, автоматически запускаемая при обращении к слоту при выполнении некоторого условия: IF-NEEDED «если нужно», запускается, если в момент обращения к слоту его значение не было установлено; IF-ADDED «если добавлено», запускается при подстановке значения в слот; IF-REMOVED «если удалено», запускается при стирании значения слота. Демон это разновидность присоединенной процедуры.
Присоединенная процедура это служебная программа процедурного типа, используемая в качестве значения слота, запускается по сообщению, переданному из другого фрейма (например, если поступает сообщение об изменении значения слота «зарплата» во фрейме ПЕТРОВ, то автоматически должна быть запущена процедура пересчета налога на Петрова во фрейме НАЛОГ).
Основным преимуществом фреймов как модели представления знаний является способность отражать концептуальную основу организации памяти человека, а также ее гибкость и наглядность.
8.5. Краткие сведения о формальных логических моделях
В основе логических моделей представления знаний лежит понятие формальной системы (теории). В них используется исчисление предикатов первого порядка, дополненное рядом эвристических стратегий, когда предметная область или задача описываются в виде набора аксиом. Эти методы являются системами дедуктивного типа, т.е. в них используется модель получения вывода из заданной системы посылок с помощью фиксированной системы правил вывода.
В логических моделях представления знаний отношения, существующие между отдельными единицами знаний, выражаются только с помощью тех средств, которые представляются синтаксическими правилами используемой формальной системы.
Формальные системы (ФС) имеют и недостатки, которые заставляют искать иные формы представления. Главный недостаток это «закрытость» ФС, их негибкость. Модификация и расширение здесь всегда связаны с перестройкой всей ФС, что для практических систем сложно и трудоемко. В них очень сложно учитывать происходящие изменения. Поэтому ФС как модели представления знаний используются в тех предметных областях, которые хорошо локализуются и мало зависят от внешних факторов.
Вопросы для самопроверки
Что такое знания и чем они отличаются от обычных данных?
Каким образом можно классифицировать знания?
Что такое база знаний?
Какую роль играют факты и правила в базе знаний?
Что такое представление знаний?
Назовите наиболее распространенные эвристические модели представления знаний.
Какие задачи решаются при создании баз знаний?
Каким образом представлены знания в продукционных моделях?
Что такое продукционная система?
Чем отличается продукция с детерминированным ядром от продукции с недетерминированным ядром?
Что такое прогнозирующая продукция?
Назовите основные элементы продукционных систем.
Как работает машина вывода продукционной системы?
Какие стратегии вывода используются в продукционной системе?
Что лежит в основе семантической модели представления знаний?
Что такое семантическая сеть?
Назовите основные отношения, используемые в семантических сетях.
Перечислите виды семантических отношений?
Что такое фрейм?
Что является характерным для фреймовой модели представления знаний?
Перечислите основные виды фреймов.
Из чего состоит фрейм?
Что такое демон и присоединенная процедура?
Что лежит в основе логических (формальных) моделей представления знаний?

Тема 9. ВВЕДЕНИЕ В ЯЗЫК SQL
9.1. Назначение и возможности языка SQL в СУБД
Структурированный язык запросов SQL (Structure Query Language) был предложен научно-исследовательской лабораторией IBM и создан в начале 1970 годов в связи с развитием реляционных моделей представления БД, разработанных Э.Ф. Кодом.
SQL соответствует стандарту ANSI/ISO (American National Standards Institute/International Standards Organization ).
SQL в 1986 году был официально утвержден как стандарт ANSI, а в 1987 г. в качестве стандарта ISO. В последующие годы происходили незначительные доработки стандарта SQL (особенно в 1989 и 1992 гг.) для применения в различных коммерческих БД и их приложениях.
Поэтому каждый новый продукт (приложение) реляционных БД использует язык SQL с некоторым диалектом, не существенно отличающимся от универсального SQL.
Значительное сходство диалектов SQL позволяет использовать его основы в самых разных приложениях: Microsoft Excel, Microsoft Access, Microsoft SQL Server, и т.д. с учетом конкретных особенностей того или иного приложения.
Сам по себе язык SQL не является ни СУБД, ни отдельным программным продуктом. Это неотъемлемая часть СУБД, инструмент, посредством которого осуществляется связь пользователя с БД.
SQL служит в качестве «клея» ядра СУБД с компонентами СУБД и представляет следующие возможности:
SQL структурированный язык запросов, дополняющий и расширяющий возможности пользователя по созданию в интерактивном режиме (конструктора) запросов по образцу на ввод, чтение, выборку и обработку данных из БД;
SQL язык программирования БД. Операторы SQL встраиваются в базовый язык, например, СИ и дают возможность получать доступ к БД;
SQL язык администрирования БД. Администратор БД использует его для определения структуры БД и управления доступом к данным;
SQL язык для организации связи клиентской системы с серверной в архитектуре клиент-сервер, позволяя каждой системе сосредоточиться на выполнении своих функций;
SQL язык распределения данных. В распределенных СУБД (РаСУБД) он помогает распределять данные между взаимодействующими вычислительными системами;
SQL язык шлюзов БД. В компьютерных сетях с различными СУБД он позволяет устанавливать связь между отдельными СУБД;
SQL язык доступа к данным в среде Интернет.
Хотя название SQL предполагает, что это язык запросов, он включает в себя более широкие возможности (создание, удаление таблиц, полей, записей, ввод новых и изменение, удаление имеющихся данных, т.е. обновление БД, выборку данных по заданным условиям, определение представления данных и привилегий доступа, и т.п.).
9.2. Основные директивы (команды) языка SQL
Структура языка SQL определяется заданными директивами (инструкциями) на выполнение конкретных действий и синтаксисом написания команд.
При описании структуры и правил использования любого языка программирования употребляется определенная система обозначений. Для описания форматов команд языка SQL используем так называемую форму Бэкуса-Наура (БНФ), в которой приняты следующие обозначения:
< > (угловые скобки) информация, определенная пользователем;
[ ] (квадратные скобки) выделяют конструкции, которые могут отсутствовать;
{ } (фигурные скобки) объединяют последовательность элементов в логическую группу;
... (многоточие) указывает на допустимость повторения элемента или группы элементов один или несколько раз;
( (вертикальная черта) означает альтернативный выбор;
( ) (круглые скобки) заключают аргументы команды;
(пробелы) используются для разделения элементов команды.
Язык SQL, соответствующий последним стандартам SQL:2003, SQL:1999, представляет собой очень богатый и сложный язык, все возможности которого трудно сразу осознать и тем более понять. Поэтому приходится разбивать язык на уровни. В одной из классификаций, предусмотренных стандартом SQL, этот язык разбивается на «базовый» (entry), «промежуточный» (intermediate) и «полный» (full) уровни. Базовый уровень содержит около сорока команд, которые можно сгруппировать в категории по их функциональному назначению. Ниже приводится краткое описание подмножества изучаемых в настоящем курсе команд SQL базового уровня по категориям.
К категории Описание данных относятся команды, позволяющие создавать, изменять и удалять БД и объекты БД, такие как таблицы и представления (таблицы, содержимое которых извлекается из других таблиц БД), а также таблиц. Некоторые команды из этой категории приведены в табл. 9.1.

Таблица 9.1
Команды описания данных
Команда
Назначение
Краткий формат

CREATE TABLE
Создает структуру таблицы
CREATE TABLE <имя таблицы> ({<имя поля> <тип данных> [<размер> ] [<ограничения на поле>] [<значение поля по умолчанию>] },...)

DROP TABLE
Удаляет таблицу
DROP TABLE <имя таблицы>

ALTER TABLE
Изменяет описание таблицы (добавляет и удаляет поля)
ALTER TABLE <имя таблицы> ADD ({<имя поля> <тип данных> [<размер>] [<ограничения на поле>] [<значение поля по умолчанию>] },...)



ALTER TABLE <имя таблицы> DROP({<имя поля>},...)


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

INSERT
Добавляет новые записи в таблицу
INSERT INTO <имя таблицы> [{<имя поля>}, ...] VALUES ({<значение>}, ...)

DELETE
Удаляет записи из таблицы
DELETE FROM <имя таблицы> [WHERE <условие>]

UPDATE
Обновляет данные таблицы
UPDATE <имя таблицы> SET {<имя поля> = <выражение>}, ... [WHERE <условие>]

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

SELECT
Извлекает данные из БД
SELECT [DISTINCT(ALL] {<выражение>}, (*FROM {<имя таблицы>}, ... [WHERE <условие>] [ORDER BY {<имя поля> [ASC(DESC]}, ...] [GROUP BY {<имя поля>}, ...] [HAVING <условие>]


Как видно из приведенных выше таблиц:
текст команды начинается с директивы, слова которой и все дополнения к ней разделяются пробелом;
имена таблиц, полей, индексов пишутся без пробелов, перечень полей и значений данных заключаются в круглые скобки и разделяются запятой, предложение команды должно заканчиваться точкой с запятой;
имя_таблицы обычно следует через «пробел» после предложений TABLE или INTO, или FROM, или UPDATE, или JOIN; после слова ON обычно через «пробел» следует Имя_таблицы.Имя_Поля;
WHERE задает условия выполнения директивы, т.е. определяет, какие записи из таблиц, перечисленных в предложении FROM, следует включить в результат выполнения инструкции SELECT, UPDATE или DELETE;
GROUP BY позволяет выделять в результирующем множестве группы. Группой являются записи с совпадающими значениями в столбцах, перечисленных после данного ключевого слова. GROUP BY может объединять записи с одинаковыми значениями в указанном списке полей в одну запись и создавать сводное значение для каждой записи, если в инструкцию SELECT включена статистическая функция SQL, такая как Sum или Count;
ORDER BY задает порядок сортировки результирующего множества. Для сортировки записей таблицы по значениям одного поля в предложении добавляются слова ASC (возрастание значений) и DESC (убывание значений). В предложение можно включать дополнительные поля. В этом случае, сначала записи сортируются по полю, указанному первым в предложении ORDER BY, затем для записей с равными значениями первого поля выполняется сортировка по полю, указанному вторым, и так далее. При отсутствии слов ASC или DESC сортировка выполняется по возрастанию;
Предложения GROUP BY и ORDER BY обычно является последним пунктом в инструкции SQL, не являются обязательным предложением, не позволяют выполнять группировку и сортировку по полям, содержащим данные типа «Memo» или «Объект OLE»;
Предложение HAVING определяет групповую запись, отображаемую в инструкции SELECT с предложением GROUP BY. После того как GROUP BY сгруппирует записи, HAVING покажет те записи, которые отвечают условиям предложения HAVING.
Другие особенности синтаксиса команд будут показаны в приведенных примерах написания основных команд и закреплены в процессе проведения лабораторной работы по данной теме.
9.3. Типы данных, используемых в командах SQL
Список наиболее часто встречающихся типов данных приведен в табл. 9.4. Для многих типов данных задается максимальная ширина отображения, указываемая в скобках (max). К примеру, запись INT(2) означает, что значение данного поля не может превышать двух символов (числа 99).
Типы данных можно разделить на числовые, дата/время, денежные, строковые (текстовые) и др.
К числовым типам относятся целые числа и числа с плавающей точкой. Для чисел с плавающей точкой, кроме максимальной ширины отображения можно также указывать число значащих цифр после запятой (P).

Таблица 9.4
Перечень основных типов данных
Типы данных
Обозначение в SQL

INT[(max)]
Обычные целые числа

SMALLINT[(max)]
Маленькие целые числа диапазона -3276832767

FLOAT[(max,P)]
Числа с плавающей точкой одинарной точности

DOUBLE[(max,P)]
Числа с плавающей точкой двойной точности

DECIMAL[(max,P)]
Числа с плавающей точкой, приведенные к типу char

CURRENCY или MONEY
Денежный формат, масштабируемое целое

DATE
Дата в формате ДД.ММ.ГГГГ или ДД/ММ/ГГГГ

TEXT
Строковые данные (может использоваться для полей MEMO) до 65536 символов

CHAR(n) или TEXT(n)
Строковые данные фиксированной длины (n) до 255 символов

COUNTER
СЧЕТЧИК Автоматическая вставка уникальных последовательных (увеличивающихся на 1) или случайных чисел при добавлении записи.


9.3. Примеры написания основных команд SQL
1. Команда создания таблицы СПИСОК, включающую поля Номер, Фамилия, Имя, Сред_балл, Дата_оплаты, Сумма:
CREATE TABLE СПИСОК (Номер int Not Null Primary Key, Фамилия char(25), Имя text(15), Сред_балл short, Дата_оплаты date,Сумма currency).
Возможно для поля Номер определить тип данных Counter, исключив Параметры Not Null Primary Key
2. Команда добавления в таблицу СПИСОК нового поля Долг:
ALTER TABLE СПИСОК ADD Долг money.
3. Команда удаления из таблицы СПИСОК поля Сред_балл:
ALTER TABLE СПИСОК DROP Сред_балл;
4. Команда заполнения таблицы (добавление в таблицу новой записи):
INSERT INTO СПИСОК (Номер, Фамилия, Имя, Дата_оплаты, Сумма, Долг) VALUES (1, «Котов», «Семен», «23.03.2007», 120000, 50000).
5. Команда удаления из таблицы записи номер 4:
DELETE FROM СПИСОК WHERE Номер = 4.
Если <условия выборки> WHERE не заданы, то удаляются ВСЕ записи !
В общем случае, выражение WHERE может включать имена полей (столбцов) и математические (логические) операторы (функции), например:
+, –, *, /, =, >, <, >=, <=, <>, AND, OR, NOT, IN, BETWEEN, LIKE, IS NULL и др.
6. Команда внесения изменения в таблицу (например, значение в поле Долг надо увеличить на 15%, если долг >=50000):
UPDATE СПИСОК SET Долг = Долг * 1.15 WHERE Долг >= 50000.
7. Команда выбора из таблицы всех записей:
SELECT *FROM СПИСОК.
Можно в директиве SELEST указать условия выбора WHERE, например:
SELECT *FROM СПИСОК WHERE Номер BETWEEN 10 AND 25 выбор записей с номерами от 10 до 25;
SELECT *FROM СПИСОК WHERE Дата_оплаты<=[Введите дату оплаты] выбор записи с указанием даты в окне параметрического запроса;
SELECT *FROM СПИСОК WHERE Дата_оплаты >= #3/30/2007# выбор записи с указанной датой (дату нужно вводить в формате ММ/ДД/ГГГГ).
Оператор SELECT является одним из самых широко применяемых средств языка SQL для выборки различных данных из одной или нескольких таблиц БД в соответствие с заданными условиями WHERE, а также для выборки и вычисления над данными с использованием предикатов отбора: ALL, DISTINCT, DISTINCTROW или TOP.
Назначение предикатов отбора:
ALL используется по умолчанию, если предикаты отсутствуют.
DISTINCT исключает из выборки записи, которые содержат повторяющиеся значения в выбранных полях.
DISTINCTROW опускает при выборке данные, основанные на целиком повторяющихся записях, а не отдельных повторяющихся полях.
(Компонент DISTINCTROW действует только при выборе полей из некоторых, но не всех таблиц, используемых в запросе; он не учитывается, если запрос включает только одну таблицу или если поля извлекаются из всех таблиц).
TOP N или TOP N Persent возвращает заданное число N или N процентов записей, находящихся в начале Desc или в конце Asc диапазона, описанного с помощью выражения упорядочивания ORDER BY.
Например, можно написать следующие команды на выборку записей из созданной ранее таблицы СПИСОК:
1. SELECT DISTINCT Имя FROM СПИСОК ORDER BY Имя (выбор из таблицы СПИСОК отсортированных по алфавиту не повторяющиеся имен).
2. SELECT *FROM СПИСОК ORDER BY Фамилия [ALL] (выбор всех записей, отсортированных по алфавиту фамилий).
3. SELECT TOP 3 Фамилия, Имя, Долг FROM СПИСОК ORDER BY Долг [Asc] (выбор трех первых записей, включающих поля Фамилия, Имя, Долг, отсортированных по возрастанию по полю Долг, т.е. выбор трех должников с малыми значениями долга).
4. SELECT TOP 3 Фамилия, Имя, Долг FROM СПИСОК ORDER BY Долг Desc (выбор трех первых записей, включающих поля Фамилия, Имя, Долг, отсортированных по убыванию полю Долг, т.е. выбор трех должников с самыми большими значениями долга).
5. TOP 40 PERCENT Фамилия, Имя, Долг FROM СПИСОК ORDER BY Долг [Asc] или ORDER BY Долг Desc (выбор первых в списке 40% записей, включающих поля Фамилия, Имя, Долг, отсортированных по полю Долг по возрастанию или по убыванию, т.е. выбор 40% должников с самыми малыми большими или с самыми большими значениями долга).
В заключение приведем пример более сложного варианта применения операции SELECT совместно с операцией INNER JOIN для создания новой таблицы (Нов_Табл) с новым вычисляемым полем (Сумма_Оплаты) из двух имеющихся в БД таблиц: ТОВАРЫ (рис 9.3) и ПОСТАВКИ (рис.9.4).
Товары

Код_товара
Наименование
Цена

1
Молоко
750,00р.

2
Масло
1 320,00р.

3
Сметана
1 760,00р.


Рис. 9.3. Имеющаяся Таблица Товары

Поставки

Код_товара
Количество
Дата_доставки

1
100
10.11.2007

1
300
01.11.2007

1
300
28.11.2007

2
500
12.11.2007

2
300
20.11.2007

2
800
16.11.2007

2
700
15.11.2007

3
250
24.11.2007

3
700
22.11.2007

3
300
20.11.2007












Рис. 9.4. Имеющаяся Таблица Поставки

Запрос на создание Нов_Табл будет выглядеть следующим образом:
SELECT Товары.Наименование, Поставки.Количество, Товары.Цена, Товары!Цена*Поставки!Количество AS [Сумма_оплаты], Поставки.Дата_доставки INTO Нов_Табл FROM Товары INNER JOIN Поставки ON Товары.Код_товара=Поставки.Код_товара GROUP BY Товары.Наименование, Поставки.Дата_доставки, Поставки.Количество, Товары.Цена.
В полученной Нов_Табл (рис. 9.5) данные в новом поле [Сумма_оплаты] вычисляются путем умножения значений поля Цена из таблицы Товары на значение поля Количество из Таблицы Поставки Товары!Цена*Поставки!Количество.
Нов_Табл

Наименование
Количество
Цена
Сумма_оплаты
Дата_доставки

Масло
500
1 320,00р.
660 000,00р.
12.11.2007

Масло
700
1 320,00р.
924 000,00р.
15.11.2007

Масло
800
1 320,00р.
1 056 000,00р.
16.11.2007

Масло
300
1 320,00р.
396 000,00р.
20.11.2007

Молоко
300
750,00р.
225 000,00р.
01.11.2007

Молоко
100
750,00р.
75 000,00р.
10.11.2007

Молоко
300
750,00р.
225 000,00р.
28.11.2007

Сметана
300
1 760,00р.
528 000,00р.
20.11.2007

Сметана
700
1 760,00р.
1 232 000,00р.
22.11.2007

Сметана
250
1 760,00р.
440 000,00р.
24.11.2007


Рис. 9.3. Полученная в результате запроса Нов_Табл

Кроме операции INNER JOIN для создания новых таблиц из полей существующих таблиц могут использоваться операции LEFT JOIN и RIGHT JOIN.
Операция LEFT JOIN используется, чтобы создать левое внешнее объединение. С помощью левого внешнего объединения выбираются все записи первой (левой) таблицы, даже если они не соответствуют записям во второй (правой) таблице.
Операция RIGHT JOIN используется, чтобы создать правое внешнее объединение. С помощью правого внешнего объединения выбираются все записи второй (правой) таблицы, даже если они не соответствуют записям в первой (левой) таблице.
Например, если имеются две таблицы «Отделы» (левая) и «Сотрудники» (правая), причем в левой таблице могут быть отделы, за которыми не закреплены сотрудники, а в правой таблице могут быть сотрудники, не закрепленные за конкретным отделом. В этом случае можно использовать операцию LEFT JOIN для выборки из обеих таблиц перечня всех отделов, включая тех, за которыми не закреплены сотрудники. Чтобы выбрать всех сотрудников, включая тех, которые не закреплены за каким-либо отделом, можно аналогично использовать операцию RIGHT JOIN.
Операции LEFT JOIN и RIGHT JOIN могут быть вложены в операцию INNER JOIN, но операция INNER JOIN не может быть вложена в операцию LEFT JOIN или RIGHT JOIN. Чтобы узнать, как составлять вложенные объединения, см. обсуждение вложений в Справке Microsoft Access по операции INNER JOIN.
Можно также связывать несколько предложений ON. Чтобы узнать, как это происходит, см. обсуждение связи предложений в Справке Microsoft Access по операции INNER JOIN.
Нельзя операциями INNER JOIN, LEFT JOIN, RIGHT JOIN объединить поля, содержащие данные типа поле MEMO или поле объекта OLE.
Привилегии устанавливаются и отменяются специальными операторами языка SQL GRANT (РАЗРЕШИТЬ) и REVOKE (ОТМЕНИТЬ). Пример написания команд на установление и отмену привилегии по обработке данных в конкретной таблице конкретным пользователем будет приведен в теме 11.
Более подробно с возможным перечнем команд, директив (ключевых слов, аргументов и предикатов) языка SQL, а также синтаксисом команд можно ознакомиться в Справке Microsoft Access.
Следует предупредить о необходимости соблюдения осторожности при выполнении запросов на создание и изменение таблиц, чтобы случайно безвозвратно не удалить таблицу с нужными данными. Microsoft Access предупреждает об этом перед выполнением соответствующих запросов! Диалоговые окна Предупреждений показаны на рис. 9.6.






Рис. 9.6. Предупреждения программы Microsoft Access о безвозвратном изменении данных в таблице или удалении существующей таблицы под именем, приведенном в запросе
Вопросы для самопроверки
Назовите основные цели и задачи языка SQL.
Перечислите функциональные возможности языка SQL по управлению СУБД.
На основании каких стандартов строится SQL? Что такое диалекты SQL?
Приведите общую структуру команд языка SQL.
Как обозначаются типы данных Microsoft Access на языке SQL?
Какие элементы и выражения в команде SQL заключается в круглые скобки ( ), в квадратные скобки [ ], в фигурные скобки { }, в угловые скобки < >?
Приведите пример команды SQL для:
создания структуры новой таблицы и ее заполнения;
добавления (удаления) поля;
изменения значения данных в поле таблицы;
выбора данных в соответствии с заданными условиями;
создания в таблице нового поля путем производства математических действий над имеющимися полями;
создания новой таблицы из выбранных полей других таблиц.
Для каких целей в командах SQL используются операторы GROUP BY и ORDER BY?
Какое назначение имеют предикаты отбора All, Distinct, top?
Тема 10. СИСТЕМЫ ОБРАБОТКИ МНОГОПОЛЬЗОВАТЕЛЬСКИХ БАЗ ДАННЫХ
10.1. Эволюция концепций обработки данных
Первоначально информация создавалась и обрабатывалась на одной ЭВМ. В начале 60-х гг. XX в. начали развиваться интерактивные многопользовательские многотерминальные системы (рис. 10.1).


Рис. 10.1. Многопользовательская вычислительная система

В таких системах мощный центральный компьютер (ЭВМ) отдавался в распоряжение нескольким пользователям. Каждый пользователь получал в свое распоряжение терминал (монитор с клавиатурой без системного блока), с помощью которого он мог вести диалог с компьютером. Компьютер по очереди обрабатывал программы и данные, поступающие с каждого терминала.
Следующим этапом в развитии систем обработки информации стали соединения не только «терминал компьютер», но и «компьютер компьютер». Компьютеры получили возможность обмениваться данными в автоматическом режиме, что явилось началом создания базового механизма компьютерной сети.
В 1964 г. Была разработаны концепция и архитектура первой в мире компьютерной сети ARPANET, в 1967 г. впервые введено понятие протокола компьютерной сети. В сентябре 1969 г. произошла передача первого компьютерного сообщения между компьютерными узлами Калифорнийского и Стенфордского университетов. В 1977 г. сеть ARPANET насчитывала уже 111 узлов, а в 1983 г. 4000 узлов. Сеть ARPANET прекратила свое существование в 1989 г., не выдержав конкуренции с набирающей силу сетью Интернет.
Аналогичный путь развития прошли и базы данных, создаваемые на персональных компьютерах. Развитие СУБД начиналось с настольного варианта (dBASE, FoxBASE, Paradox и др. в том числе, первая версия Ms Access первая настольная реляционная СУБД для 16 разрядной версии Windows).
При работе с настольной СУБД сами базы данных расположены на том же компьютере, что и СУБД, осуществляющая доступ к ним.
Однако, база данных, как правило, содержит данные, необходимые многим пользователям, что может быть обеспечено при создании сетевой многопользовательской базы данных.
Разработанные стандартные сетевые технологии, а также использование персональных компьютеров значительно упростили процесс создания компьютерных сетей, которые нашли широкое применение при создании систем обработки многопользовательских и распределенных баз данных
10.2. Принципы передачи данных по сети
Компьютерная сеть совокупность компьютеров, взаимосвязанных через каналы передачи данных и обеспечивающих пользователей средствами обмена информацией и коллективного использования ресурсов сети: аппаратных, программных и информационных.
Объединение компьютеров в сеть позволяет:
совместно использовать оборудование;
иметь общие программные средства и данные;
обеспечить простой, удобный и надежный доступ пользователя к распределенным общесетевым ресурсам;
обеспечить удобные и надежные средства передачи данных между пользователями сети и др.
Компьютерные сети сложный комплекс, включающий в себя технические, программные и информационные средства (рис. 10.2.).


Рис. 10.2. Состав технических средств компьютерных сетей

В качестве единых правил взаимодействия различных технических средств в компьютерных сетях стала коммуникационная модель OSI Open System Interconnection (Взаимодействие открытых систем). Данная модель была утверждена в 1984 году Международной организацией по стандартизации ISO  International Organization of Standardization и стала в дальнейшем единой моделью, обеспечивающей взаимодействие компьютеров любой сети, начиная от самой простой локальной сети до глобальной сети Интернет.
В модели OSI все протоколы сети делятся на семь уровней:
1. Физический передача битов информации по физическим линиям (цепям) связи (стандартизируются входные и выходные характеристики электрических сигналов, уровни напряжения и тока, тип кодировки информации, скорость передачи сигналов, а также типы разъемов и назначение каждого контакта в разъеме).
2. Канальный обеспечение надежной передачи данных через физический канал. Канальный уровень оперирует блоками данных, называемыми кадрами. Основной задачей канального уровня является прием кадра из сети и отправка его в сеть. При выполнении этой задачи канальный уровень осуществляет физическую адресацию передаваемых сообщений, контролирует соблюдение правил использования физического канала, выявляет неисправности, управляет потоками информации.
3. Сетевой служит для образования единой системы, объединяющей несколько сетей. Сети соединяются между собой специальными устройствами, называемыми маршрутизаторами.
Маршрутизатор это устройство, которое собирает данные о топологии межсетевых соединений и на ее основании пересылает пакеты информации из одной сети в другую. Последовательность маршрутизаторов, через которые проходит пакет, называется маршрутом, а выбор маршрута маршрутизацией.
На этом уровне действуют три протокола: сетевой; маршрутизации и разрешения адресов.
4. Транспортный предназначен для оптимизации передачи данных от отправителя к получателю с той степенью надежности, которая требуется. Основная задача транспортного уровня обнаружение и исправление ошибок в сообщениях, пришедших с описанных выше уровней.
Начиная с транспортного уровня, все дальнейшие протоколы реализуются программным обеспечением компьютера, обычно включаемого в состав сетевой операционной системы.
5. Сеансовый управляет диалогом между двумя компьютерами. На этом уровне устанавливаются правила начала и завершения взаимодействия. На сеансовом уровне определяется, какая из сторон является активной в данный момент, а какая принимает данные.
6. Представительский выполняет преобразование данных между устройствами с различными форматами данных, не меняя при этом содержания. На этом уровне, как правило, происходят шифрование и дешифрование данных, благодаря которым обеспечивается секретность передаваемого сообщения.
7. Прикладной является пользовательским интерфейсом для работы с сетью (непосредственно взаимодействует с пользовательскими прикладными программами, предоставляя им доступ в сеть). С помощью протоколов этого уровня пользователи сети получают доступ к разделяемым ресурсам, таким, как файлы, принтеры, гипертекстовые Web-страницы, электронная почта и т.д.
Три нижних уровня модели OSI физический, канальный и сетевой зависят от сети, т.е. их протоколы тесно связаны с технической реализацией сети и используемым коммутационным оборудованием.
Три верхних уровня сеансовый, представительский и прикладной ориентированы на программное обеспечение и мало зависят от особенностей построения сети (топологии, оборудования и т.д.).
Транспортный уровень является промежуточным. Он скрывает детали функционирования нижних уровней от верхних. Благодаря ему можно разрабатывать приложения, не зависящие от технических средств транспортировки сообщений.
Модель OSI является открытой системой, т.к. она имеет опубликованные, общедоступные спецификации и стандарты, принятые в результате достижения согласия многих разработчиков и пользователей после всестороннего обсуждения. Указанная модель доступна всем разработчикам и для ее использования не требуется получения специальных лицензий.
10.3. Системы удаленной обработки данных
Современные информационные технологии находятся на таком уровне развития, когда без применения компьютерной техники и без объединения ее в информационную сеть фактически невозможно получить полную информацию об интересующем объекте.
Развитие экономики и создание крупных корпораций, включающих большое число разнообразных объектов, которые нуждаются в постоянном обеспечении как общей, так и индивидуальной информацией, привело к необходимости создания многопользовательских баз данных, позволяющих осуществлять удаленную обработку информации.
Для работы систем удаленной обработки информации требуется обеспечить ее каналами связи (прямыми и/или коммутируемыми) и возможностью доступа к распределенным базам данных.
Коммутация это предоставление физических каналов во время сеансов связи между компьютерами в сети.
Существуют три различные схемы коммутации в сетях:
1. Коммутация каналов образование составного канала из последовательно соединенных отдельных канальных участков для прямой передачи данных между узлами сети. В сети с коммутацией каналов перед передачей данных всегда необходимо выполнить процедуру установления соединения.
2. Коммутация пакетов разработана для сетей, где различные компьютеры сети могут иметь различное быстродействие. При коммутации пакетов все передаваемые сообщения разбиваются передающим компьютером на небольшие части, называемые пакеты, которые транспортируются в сети как независимые информационные блоки.
3. Коммутация сообщений передача единого блока данных через промежуточные транзитные компьютеры с временной буферизацией данного блока на диске каждого компьютера. Сообщение хранится в транзитном компьютере на диске, причем время хранения может быть достаточно большим. По такой схеме обычно передаются сообщения, не требующие немедленного ответа, чаще всего сообщения электронной почты.
10.4. Системы совместного использования файлов
Характерной особенностью созданных с помощью СУБД программ для работы с многопользовательскими базами данных является использование ODBC (Open Database Connectivity) открытый интерфейс доступа к данным.
Открытый интерфейс ODBC осуществляет роль моста, связывающего программу пользователя и БД. Схема доступа к БД показана рис. 10.3.
Драйверы ODBC имеют 32-битовую разрядную сетку и используются практически в любых БД с удаленным доступом, организованных по принципу: файл/сервер и клиент/сервер.
В таких системах все обязанности по передаче данных возложены на ODBC, являющимся в настоящий момент стандартом индустрии баз данных.
Упрощенная схема работы системы файл/сервер показана на рис.10.4.


Рис. 10.3. Схема доступа к БД Рис. 10.4. Схема работы системы
файл/сервер

В файл серверных БД данные располагаются на сетевом сервере, который может быть доступен одновременно нескольким пользователям, поэтому к таким БД возможен многопользовательский режим доступа.
Данные в БД хранятся в единственном экземпляре. Каждый клиент в каждый момент времени работает с некоторой локальной копией этих данных.
Управление данными целиком возлагается на клиентские программы. Они должны заботиться о синхронизации локальных копий данных на каждом клиентском месте с содержимым основной (единственной) базы данных.
Архитектура файл/сервер неэффективна по трем основным причинам:
1. При выполнении каждого запроса происходит передача по сети с сервера на компьютер пользователя локальной копии реальной БД или ее полное обновление (при последующих запросах). Это приводит к нерациональной загрузке сети и снижает безопасность работы.
2. Целостность БД обеспечивается, в основном, клиентскими программами. Это потенциальный источник ошибок.
3. В такой архитектуре трудно обеспечить секретность данных и их защиту.
Эффективнее управлять БД из единого места по единым законам, что и обеспечивается в архитектуре клиент/сервер.
Упрощенная схема работы системы клиент/сервер показана на рис. 10.5.
В архитектуре клиент/сервер функции клиентского приложения и серверной СУБД разделены.

Рис. 10.5.Упрощенная схема работы системы клиент/сервер

Сервер является более мощным компьютером, что обеспечивает большое быстродействие, надежность и безопасность работы.
На клиентских компьютерах освобождается память, так как основной объем данных и приложения хранятся на сервере.
Клиент формирует запрос к серверу на языке запросов SQL. При этом ресурсы клиентского компьютера не участвуют в выполнении запроса.
Клиентский компьютер получает результат, преобразует его необходимым образом и представляет пользователю.
По сети передаются только запросы и те данные, которые действительно нужны клиенту. В итоге снижается нагрузка на сеть (сетевой трафик).
Повышается степень безопасности данных, поскольку правила целостности данных определяются на сервере и являются едиными для всех приложений, (всех пользователей), использующих эту БД.
Данные в серверной БД физически хранятся на диске в виде одного большого файла, что в сочетании с назначенными каждому пользователю паролями повышает защиту данных от намеренной порчи и хищений.
В клиент-серверной системе в качестве сервера может выступать любой сервер БД, имеющий драйвер ODBC (MS SQL Server, Oracle, Informix и др.).
Три главные задачи ODBC: создание подключения, обработка запросов, управление наборами записей.
ODBC это общее определение языка и наборов протоколов.
Протокол это формат передаваемых сообщений, соглашения и правила, по которым происходит обмен информацией между компьютерами и системами.
Для использования ODBC в сети необходима специальная коммуникационная программа администратор ODBC и средства коммуникации между машиной, на которой находятся данные, и станцией, где они будут просматриваться, модифицироваться и пополнятся. Доступ к источнику данных например к базе данных и серверу, на котором она находится, осуществляется с помощью драйверов.
ODBC позволяет приложению взаимодействовать с источником данных разных типов посредством драйверов СУБД, и использования администратора ODBC для установки соединений.
Диспетчеры драйверов и сами драйверы находятся в библиотеке DLL.
10.5. Системы обработки распределенных баз данных (РаБД)
Распределенная обработка данных выполняется тогда, когда разные компьютеры соединяются в коммуникационную сеть, так, что каждая конкретная задача обработки данных может распределяться между ними.
Компьютеры могут быть удалены географически и иметь программное обеспечение для управления сетью распределенную СУБД (РаСУБД).

Преимущества распределенных СУБД:
возможна параллельная обработка, что повышает производительность;
одна распределенная база данных может быть использована несколькими отдельными клиентскими системами.
Возможны различные модификации построения клиент-серверных систем:
выполнение сервера на одном основном компьютере;
выполнение серверов на узловых компьютерах;
выполнение серверов и клиентов на многих компьютерах.
Для реализации коммуникационной сети (физическая реализация) используются Hubs (хабы), Switche’s (переключатели), Routers (маршрутизаторы).
На большие расстояния информация передается по выделенным линиям связи (проводным, кабельным, радио и радиорелейным, оптическим, оптоволоконным, спутниковым), а также по коммутируемым и выделенным стандартным телефонным каналам связи с использованием модемов, а также через Internet, виртуальные частные сети (VPN Virtual Private Network) и через различные сотовые мобильные сети.
На верхнем уровне клиент-серверной системы устанавливаются 8-16-портовые Hubs с высокой производительностью передачи данных (до десятков и сотен Гбайт в секунду). По мере снижения уровня сети используются Switche's. Соединения LAN to LAN или WAN's осуществляются посредством маршрутизаторов. Определенный интерес в последнее время проявляется к созданию специальных мобильных информационных систем с параметрами не хуже чем у стационарных систем.
Основные термины, используемые в компьютерных сетях РаБД
Метод доступа к компьютерной сети метод, обеспечивающий выполнение совокупности правил, по которым абоненты сети получают доступ к ресурсам (в первую очередь определяется время передачи и приема сообщений заданных типов).
Маркер служебное сообщение определенного формата, в которое абоненты сети могут помещать свои информационные пакеты.
Мост устройство, соединяющее две сети, использующие одинаковые методы передачи данных (одинаковые протоколы обмена).
Маршрутизатор устройство, соединяющее сети разного типа, но использующие одну операционную систему.
Шлюз устройство, позволяющее организовывать обмен данными между двумя сетями, использующими различные протоколы взаимодействия (построенные по разным стандартам).
Мосты, маршрутизаторы и шлюзы могут конструктивно выполняться в виде плат, которые устанавливаются в компьютере.
Архитектура вычислительной сети описание ее общей модели.
Открытая система система (сеть), взаимодействующая с другими системами (сетями) в соответствии с принятым стандартом.
Пакет группа байтов, передаваемых абонентами друг другу.
Протокол набор правил, определяющий взаимодействие двух одноименных уровней открытых систем, моделей или ЭВМ.
При обмене информацией между абонентами компьютерной сети желательно обеспечить скорость передачи данных, не снижающую быстродействие (производительность) ЭВМ. Если учесть, что скорость считывания информации в ПЭВМ (порядка 250300 Кбит/с с дискеты и 510 Мбит/с и более с винчестера), то желательно иметь скорость обмена информацией между абонентами в сети порядка 1 Мбит/с и выше, что на сегодняшний день не во всех сетях может быть обеспечено.
Пример организации сложной клиент-серверной системы РаБД, включающей три сервера с наборами рабочих станций показан на рис. 10.6.
Схема построения типичной распределенной базы данных показана на рис. 10.7.
13 SHAPE \* MERGEFORMAT 1415
Рис. 10.6. Пример организации сложной клиент-серверной системы распределенной базы данных, включающей три сервера с наборами рабочих станций


Рис. 10.7. Схема типичной распределенной базы данных

Гомогенные и гетерогенные распределенные базы данных
Гомогенная РаБД состоит из объектов (БД) одного и того же типа, включенных в однородную (гомогенную) информационную сеть, использующую одинаковые протоколы и интерфейсы доступа ко всем объектам сети, включая локальные базы дынных.
Гетерогенная РаБД состоит из объектов (локальных БД, модулей, контуров) различных фирм-производителей, включающих разнотипные технические средства и фрагменты разнородных сетей разной топологии, которые могут работать по различным протоколам (интерфейсам доступа).
Гетерогенные РаБД облегчают интеграцию разнородных информационных источников, структурированных (с наличием нормализованной схемы), слабоструктурированных и иногда даже неструктурированных.
Обычно гетерогенная (разнородная) РаБД конструируется с использованием центральной БД, которая фактически управляет базами данных компонентов, так что пользователи получают однородные интерфейсы доступа к данным, сохраненным в БД различных объектов и богатые функциональные возможности разнородной системы. Такая разнородная ИС называется системой объединенных мультибаз данных (MDBS).
MDBS представляет для пользователя иллюзию одиночной базы данных, поддерживающую только глобальную схему. Глобальная схема интегрирует схемы локальных БД, фактически поддерживающих все данные пользователя.
MDBS фактически управляет множественными шлюзами (или драйверами), чтобы поддержать непротиворечивость данных внутри локальных БД.
Двенадцать правил К. Дейта
В 1981 г К. Дейт опубликовал свои 12 правил для разработки распределенных БД, которые в сокращенном виде могут быть сформулированы следующим образом:
Локальная автономность. Локальные данные должны находиться под локальным владением и управлением, включая функции безопасности, целостности, представления данных в памяти.
Никакой конкретный сервис не должен возлагаться на какой-либо специально выделенный центральный узел.
Непрерывность функционирования. Система не должна останавливаться в случае необходимости добавления нового узла или удаления в распределенной среде некоторых данных.
Независимость от местоположения. Пользователи и приложения не обязаны знать о том, где физически располагаются данные.
Независимость от фрагментации. Фрагменты (называемые также разделами) данных должны поддерживаться и обрабатываться средствами РаСУБД таким образом, чтобы пользователи или приложения могли бы вообще ничего не знать об этом.
Независимость от тиражирования. Те же принципы независимости и прозрачности относятся и к механизму тиражирования.
Распределенная обработка запросов. Обработка запросов должна производиться распределенным образом.
Управление распределенными транзакциями. На распределенные базы данных необходимо распространить механизмы управления транзакциями и управления одновременным доступом.
Независимость от оборудования. Одно и то же программное обеспечение РаСУБД должно выполняться на различных аппаратных платформах и функционировать в системе в качестве равноправного партнера. (На практике достичь этого исключительно сложно отмечал уже сам К. Дейт).
Независимость от операционных систем. Эта проблема тесно связана с предыдущей, и она также разрешается аналогичным образом.
Независимость от сети. Узлы могут быть связаны между собой с помощью множества разнообразных сетевых и коммуникационных средств. Многоуровневая модель, присущая многим современным информационным системам (например, семиуровневая модель OSI, модель TCP/IP, уровни SNA и DECnet), обеспечивает решение этой проблемы не только в среде РБД, но и для информационных систем вообще.
Независимость от СУБД. Локальные СУБД должны иметь возможность участвовать в функционировании РаСУБД
Однако несмотря на всю привлекательность этих правил и на давность их возникновения степень реализации их в современных коммерческих СУБД очень низкая отмечается в современной научно-технической литературе по распределенным базам данных.
Рассмотрим подробнее одно из приведенных выше правил по обработке распределенных запросов, которая заключается в том, что при выполнении данной операции следует всегда использовать принцип оптимизации, обеспечивающей минимизацию использования сети.
Вопрос оптимизации является более важным для распределенной системы, чем для централизованной системы. Причина в том, что для выполнения запроса, охватывающего несколько узлов, существует множество способов перемещения данных по сети. И здесь важно найти наиболее эффективную стратегию. При этом время отклика системы варьируется от минимального, составляющего десятые доли секунды, до максимального, исчисляемого несколькими часами.
Таким образом, время отклика в такой системе может оказаться меньше времени отклика в централизованной системе. На самом грубом уровне процесс обработки распределенных запросов можно разбить на следующие фазы:
1. В узле, в котором инициирован запрос, производится грамматический разбор предложения SQL с построением внутреннего представления запроса в виде дерева. На основе информации каталогов узлов производится замена имен объектов, фигурирующих в запросе, на их системные идентификаторы.
2. Затем формируется глобальный план выполнения запроса с применением техники оптимизации.
3. Если в глобальном плане выполнения запроса участвуют дополнительные узлы, производится его декомпозиция на части, каждую из которых можно выполнить в одном узле, и эти части рассылаются в эти дополнительные узлы.
4. В каждом узле, участвующем в глобальном плане выполнения запроса, выполняются заключительные фазы: оптимизация и генерация машинных кодов. А также производится проверка прав пользователя, обрабатываются представления базы данных.
РаСУБД обладают следующими преимуществами:
- позволяют соединить децентрализованные и централизованные системы обработки распределенных баз данных, тем самым распределить нагрузку между различными компонентами системы;
обладают лучшими адаптивными свойствами (приспособлением к возникающим условиям) против других систем;
обеспечивают высокую надежность, доступность и низкую чувствительность к выходу из строя отдельных компонентов.
К недостаткам РаСУБД можно отнести следующие факторы:
- наличие значительного большего числа функций против обычных СУБД;
необходимость синхронизации при обработке поисковых и корректирующих запросов;
усложнение задач проектирования БД как на логическом, так и на физическом уровнях;
включение при проектировании дополнительных уровней моделей данных, что влечет за собой увеличение времени обработки;
более высокая стоимость передачи данных и более низкая надежность передачи данных по сравнению с централизованными БД.
10.6. Хранилища данных
Для того чтобы принимать обоснованные решения, организации необходима надежная система данных. Такая система должна включать как текущие, так и исторические данные, чтобы можно было выявлять динамику процессов и прогнозировать будущие результаты.
Технология интеграции данных ключевой фактор для объединения этих данных и создания информационной инфраструктуры, которая включает Хранилища данных, витрины данных и операционные склады данных.
По определению автора и основоположника концепции хранилищ данных (Data Warehouse) Уильяма Инмона:
Хранилище данных это предметно ориентированные, интегрированные, неизменчивые, поддерживающие хронологию наборы данных, организованные с целью поддержки управления, призванные выступать в роли единого и единственного источника истины, обеспечивающего менеджеров и аналитиков достоверной информацией, необходимой для оперативного анализа и принятия решений
Создание Хранилища данных (или, в более ограниченном масштабе, витрины данных, содержащей данные только об одном предмете) существенно упрощает доступ к необходимым данным и их аналитическую обработку. Аналитическая обработка данных необходима для анализа тенденций изменения и прогнозирования бизнес-процессов, что требует сбора данных с отметками времени из многочисленных источников в единое Хранилище или витрину данных.
Таким образом, задачей интеграции данных является получение единой и цельной картины корпоративных бизнес-данных и тенденции их изменения.
Существует три основных метода интеграции данных: консолидация, федерализация и распространение.
Консолидация данных. При использовании этого метода данные собираются из нескольких первичных систем и интегрируются в одно постоянное место хранения. Такое место хранения может быть использовано для подготовки отчетности и проведения анализа, как в случае Хранилища данных, или как источник данных для других приложений, как в случае операционного склада данных.
Преимуществом консолидации данных является то, что этот подход позволяет осуществлять трансформацию значительных объемов данных (реструктуризацию, согласование, очистку и/или агрегирование) в процессе их передачи от первичных систем к конечным местам хранения. Некоторые сложности, связанные с данным подходом, это значительные вычислительные ресурсы, которые требуются для поддержки процесса консолидации данных, а также существенные ресурсы памяти, необходимые для поддержки конечного места хранения. Но с учетом постоянно совершенствования аппаратных средств это не проблема.
В среде Хранилищ данных одной из самых распространенных технологий поддержки консолидации является технология ETL (извлечения, преобразования и загрузки extract, transform, and load). Еще одна распространенная технология консолидации данных управление содержанием корпорации ECM (enterprise content management). Большинство решений ECM направлены на консолидацию и управление неструктурированными данными, такими как документы, отчеты и web-страницы.
При использовании этого метода обычно существует некоторая задержка между моментом обновления информации в первичных системах и временем, когда данные изменения появляются в конечном месте хранения. В зависимости от потребностей бизнеса такое отставание может составлять несколько секунд, часов или дней. Термин «режим, приближенный к реальному времени» часто используется для описания конечных данных, обновление которых отстает от источника на несколько секунд, минут или часов. Данные, не отстающие от источника, считаются данными в режиме реального времени, но это трудно достижимо при использовании метода консолидации данных.
Федерализация данных обеспечивает единую виртуальную картину одного или нескольких первичных файлов данных.
По определению, процесс федерализации данных всегда заключается в извлечении данных из первичных систем на основании внешних требований. Все необходимые преобразования данных осуществляются при их извлечении из первичных файлов. Интеграция корпоративной информации EII (Enterprise information integration) пример технологии, которая поддерживает федеративный подход к интеграции данных.
Считается, что основное преимущество федеративного подхода тот факт, что он обеспечивает доступ к текущим данным и избавляет от необходимости консолидировать первичные данные в новой БД (Хранилище данных).
Федерализацию данных целесообразно использовать в тех случаях, когда стоимость консолидации данных перевешивает бизнес-преимущества, которые она предоставляет.
Приложения распространения данных осуществляют копирование данных из одного места в другое, работая в оперативном режиме.
Обновления в первичной системе могут передаваться в конечную систему синхронно или асинхронно. Независимо от используемого типа синхронизации, метод распространения гарантирует доставку данных в систему назначения.
Примерами технологий распространение данных, являются интеграция корпоративных приложений EAI (Enterprise application integration) и тиражирование корпоративных данных EDR (Еnterprise data replication).
Большим преимуществом метода распространения данных является то, что он может быть использован для перемещения данных в режиме реального времени или близком к нему. Другие достоинства включают гарантированную доставку данных и двустороннее распространение данных.
При использовании этого метода обычно существует некоторая задержка между моментом обновления информации в первичных системах и временем, когда данные изменения появляются в конечном месте хранения. В зависимости от потребностей бизнеса такое отставание может оставлять несколько секунд, часов или дней. Термин «режим, приближенный к реальному времени» часто используется для описания конечных данных, обновление которых отстает от источника на несколько секунд, минут или часов. Данные, не отстающие от источника, считаются данными в режиме реального времени, но это трудно достижимо при использовании метода консолидации данных.
Вопросы для самопроверки
В чем заключается эволюция концепции обработки данных?
Какие основные достоинства использования компьютерных сетей?
На какие уровни в модели OSI подразделяются все протоколы сети?
В чем состоит сущность удаленной обработки данных?
Какое программное средство применяется в системах совместного использования файлов для работы с многопользовательскими базами данных?
Принцип удаленного доступа при использовании архитектур файл/сервер и клиент/сервер.
Перечислите причины неэффективности архитектуры файл/сервер.
Какие основные преимущества имеет система клиент/сервер?
Какую архитектуру и преимущества имеют распределенные СУБД?
Назовите отличия гомогенных и гетерогенных распределенных баз данных.
Какие основные требования предложил К. Дейт в своих 12-ти правилах для распределенных БД?
Перечислите основные преимущества и недостатки РаСУБД.
Для каких целей создаются Хранилища данных?
Тема 11. АДМИНИСТРИРОВАНИЕ БАЗ ДАННЫХ
11.1. Структурная схема администрирования базы данных
Базы данных требуют не только хороших технических характеристик, но и хорошего управления (администрирования).
Общий вид структурной схемы администрирования базы данных представлен на рисунке 11.1. Основными элементами (действующими лицами и объектами) администрирования являются:
Пользователи это отдельные лица или организации (предприятия, фирмы), пользующиеся услугами базы данных.
Администратор БД это лицо или группа лиц, ответственных за проектирование, состояние, развитие и целевое использование БД пользователями.
Пользовательский интерфейс обеспечивает возможность взаимодействия пользователей с системой управления базой данных (СУБД)

Рис. 11.1. Структурная схема администрирования базы данных
Основные функции администратора БД:
сбор данных об объектах предметной области и связях между ними;
проектирование баз данных и обучение пользователей;
размещение данных в БД, редактирование и удаление данных,
контроль новизны, полноты, достоверности и не противоречивости данных;
поддержание целостности БД в пределах заданных ограничений;
поддержание работоспособности БД, обеспечение ее быстродействия, качества и доступности информации для пользователей;
согласование требований пользователей и разработчиков программного обеспечения БД, физическая организация и совместимость компонентов БД;
обеспечение необходимого уровня защиты БД в зависимости от степени конфиденциальности и важности хранящейся в ней информации.
резервирование БД; восстановление БД в аварийных ситуациях, поиск и анализ источников отказов.
Различают понятия администратор данных это менеджер, отвечающий за определение общей политики и процедур информационной системы предметной области и администратор БД это менеджер, отвечающий за управление техническими аспектами системы управления БД. (В небольших БД эти должности могут быть объединены )
11.2. Защита баз данных
Как только данные структурированы и сведены в базу данных, возникает проблема организации защиты данных от несанкционированного доступа к ним, изменения или удаления их пользователями и посторонними лицами. Очевидно также, что нельзя позволить всем без исключения пользователям беспрепятственный доступ ко всем элементам базы данных. В любой базе данных существует конфиденциальная информация, доступ к которой и, тем более, внесения изменений может быть разрешен лишь ограниченному кругу пользователей. Так, в банковской системе особо конфиденциальной может считаться, например, информация о выданных кредитах, номерах счетов, защитных кодах и т.п. Защита БД совокупность организационных мероприятий, методов, аппаратных и программных средств, используемых для предотвращения несанкционированного доступа к структуре и информации, хранящейся в базе данных (чтения, записи, удаления или модификации данных).
Необходимость защиты БД возникает из-за возможности нарушения ее целостности:
путем действий отдельных физических и юридических лиц по причинам любознательности, неосторожности, гипертрофированного чувства мести, корыстных целей, а также не знания или не выполнения соответствующих законов, инструкций и правил работы с различными техническими средствами и ПО СУБД;
локальных действий агентов иностранных государств и отдельных корпораций (предприятий, фирм) с целью политического, экономического или промышленного шпионажа;
случайных сбоев в работе аппаратуры БД, ПО, системах электропитания, каналах и сетях связи и т.п.
11.3. Методы защиты баз данных
Различают следующие методы и средства защиты баз данных:
1. Физические средства предназначены для защиты территории, зданий, помещений и оборудования от проникновения посторонних лиц. Они выполняется в форме внешней охраны территории объектов, установки ограждений, дверей, перегородок, решеток, замков, сейфов, шкафов и др. Современную элементную базу таких систем составляют различные датчики, сигналы которых обрабатываются микропроцессорами, электронные интеллектуальные ключи и замки на микропроцессорах, устройства определения биометрических характеристик человека и т.д.
2. Аппаратные средства защиты представляют собой различные электронные, электронно-механические и другие устройства, непосредственно встроенные в серийные блоки электронных систем БД, обработки и передачи данных или оформленные в виде самостоятельных устройств и сопрягающиеся с модулями и блоками БД. Они предназначаются для внутренней защиты структурных элементов БД, средств и систем вычислительной техники: терминалов, устройств ввода-вывода, процессоров, периферийного оборудования, линий связи и т.д.
3. Программные средства защиты предназначены для выполнения логических и интеллектуальных функций защиты и включаются либо в состав программного обеспечения БД, либо в состав средств, комплексов и систем аппаратуры контроля.
Программные средства защиты информации являются наиболее распространенным видом защиты, чему способствуют такие положительные свойства данных средств защиты, как универсальность, гибкость, простота реализации, возможности изменения и развития. Это обстоятельство делает их одновременно и самыми распространенными, и самыми уязвимыми элементами защиты информационных систем.
4. Аппаратно-программные средства защиты связаны с совместным использованием программных и аппаратных средств защиты. Данные средства защиты широко используются при реализации биометрических методов аутентификации пользователей БД.
Аутентификация проверка идентификатора (подлинности личности) пользователя, обычно осуществляемая перед разрешением доступа к ресурсам БД или пропуска на территорию объекта, в помещение.
5. Криптографические методы зашиты представляют собой методы защиты данных с помощью криптографического преобразования, под которым понимается преобразование данных шифрованием.
Шифрование является самым надежным способом защиты данных, так как защищаются сами данные, а не доступ к ним.
Практические приемы шифрования разрабатываются на основе науки «криптология», название которой идет от греческих слов criptos тайна и logos слово.
К основным криптографическим методам зашиты БД относятся:
шифрование данных с применением алгоритмов асимметричного и симметричного шифровании;
защита паролем доступа к данным;
использование электронной цифровой подписи (ЭЦП);
использование специальной Хэш-функции.
использование при передаче данных по сети протокола SSL (Secure Socket Layer) и технологии SET (Secure Electronic Transactions) и другие методы.
Электронная цифровая подпись (ЭЦП) является электронным эквивалентом собственноручной подписи и служит не только для аутентификации отправителя сообщения, но и для проверки его целостности.
Хэш-функция это процедура обработки сообщения, в результате действия которой формируется строка символов (дайджест сообщения) фиксированного размера. Малейшие изменения в тексте сообщения приводят к изменению дайджеста при обработке сообщения хэш-функцией. Таким образом, любые искажения, внесенные в текст сообщения, отразятся в дайджесте.
Более подробно перечисленные выше криптографические методы зашиты будут рассмотрены при изучении дисциплины «Корпоративные информационные системы»
Для всех категорий и видов БД одним из самых важных и необходимых методов защиты является разграничение прав доступа пользователей к элементам базы данных и действием (операциям) с данными.
В самом общем виде требования по разграничению прав доступа формулируются следующим образом:
Данные в любой таблице должны быть доступны не всем пользователям, а лишь некоторым из них.
Только некоторым пользователям должно быть разрешено обновлять данные в таблицах, в то время как для других допускается лишь выбор данных из этих же таблиц.
Для некоторых таблиц необходимо обеспечить выборочный доступ к ее столбцам (полям).
Некоторым пользователям должен быть запрещен непосредственный (через запросы) доступ к таблицам, но разрешен доступ к этим же таблицам в диалоге с прикладной программой.
Пользователю предоставляется доступ только к определенным файлам.
В большинстве реальных СУБД, особенно РаСУБД, авторизация доступа осуществляется с помощью привилегий. Установление и контроль привилегий  прерогатива администратора базы данных.
Привилегии устанавливаются и отменяются специальными операторами языка SQL GRANT (РАЗРЕШИТЬ) и REVOKE (ОТМЕНИТЬ). Оператор GRANT указывает конкретного пользователя, который получает конкретные привилегии доступа к указанной таблице. Например, оператор
GRANT SELECT, INSERT ОN Деталь TO Битов
устанавливает привилегии пользователю Битов на выполнение операций выбора и включения над таблицей Деталь. Как видно из примера, оператор GRANT устанавливает соответствие между операциями, пользователем и объектом базы данных (таблицей в данном случае).
Привилегии легко установить, но легко и отменить. Отмена привилегий выполняется оператором REVOKE. Пусть, например, пользователь Битов утратил доверие администратора базы данных и последний решил лишить его привилегий на включение строк в таблицу Деталь. Он сделает это посредством команды SQL:
REVOKE INSERT ON Деталь FROM Битов
Конкретный пользователь СУБД опознается по уникальному идентификатору (user-id). Любое действие над базой данных, любая команда языка SQL выполняется не анонимно, но от имени конкретного пользователя. Идентификатор пользователя определяет набор доступных объектов базы данных для конкретного физического лица или группы лиц. Однако он ничего не сообщает о механизме его связи с конкретным оператором SQL. Например, когда запускается интерактивный SQL, как СУБД узнает, от имени какого пользователя осуществляется доступ к данным? Для этого в большинстве СУБД используется сеанс работы с базой данных. Для запуска на компьютере-клиенте программы переднего плана (например, интерактивного SQL) пользователь должен сообщить СУБД свой идентификатор и пароль. Все операции над базой данных, которые будут выполнены после этого, СУБД свяжет с конкретным пользователем, который запустил программу.
Рассмотренный выше так называемый добровольный или дискреционный контроль доступа (discretionary access control) опирается на то, что владелец данных по собственному усмотрению ограничивает круг пользователей, имеющих доступ к данным, которыми он владеет.
Несмотря на то что в целом этот метод обеспечивает безопасность данных, разработана концепция многоуровневой безопасности, которая, по оценкам экспертов, в ближайшие годы будет использована в большинстве СУБД и других информационных систем. Согласно этой концепции в БД нужно производить обязательный или принудительный контроль доступа (mandatory access control). Принцип данного способа контроля основан на отказе от понятия владельца данных и опирается на так называемые метки безопасности (security labels), которые присваиваются данным при их создании. Каждая из меток соответствует некоторому уровню безопасности. Метки служат для классификации данных по уровням. Например, для правительственных и коммерческих организаций такая классификация выглядит, как показано на рис. 11.2.

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

11.4. Восстановление базы данных
Не менее важным методами защиты БД являются средства обеспечение возможности восстановления данных после их искажения, потери или несанкционированного изменения (разрушения, удаления). Основными средствами, позволяющими восстанавливать БД после случайных сбоев в работе или умышленных действий являются:
резервирование данных создание их резервных копий на другом машинном носителе с последующим систематическим обновлением копий при изменениях оригинала;
репликации баз данных создание репликации (копии) всей распределенной базы данных. Пользователь работает с репликой в те периоды, когда он не имеет доступа к оригиналу. При появлении доступа к оригиналу производится синхронизация реплики с оригиналом.
архивирование данных запись и отдельное хранение данных в одном архивном файле с применением методов сжатия данных,
протоколирование состояния БД (сохранение копий БД) в контрольных точках и ведение протокола транзакций;
восстановление БД через откат-накат.
ТРАНЗАКЦИЯ это программный блок для внесения изменений в БД (процедура обработки данных) без нарушения целостности базы данных.
Транзакция это последовательность операций над данными, которая является логически неделимой, то есть рассматривается как единая макрооперация. Транзакция либо выполняется полностью, либо не выполняется совсем. Никакая другая процедура или операция не могут обратиться к данным, которые обрабатываются стартовавшей транзакцией, до тех пор, пока последняя не закончит свою работу.
Восстановление базы данных есть процесс возвращения БД в правильное (исходное) состояние после сбоя в работе любого происхождения.
На рис. 11.3 проиллюстрирован процесс восстановления БД.
Например, отказ системы произошел во время выполнения транзакции Т4 (в момент времени t отк). В этом случае система возвращает свое состояние по данным последней работоспособной контрольной точки (откат в точку t kт-n):
результат транзакции Т1 не пересматривается;
транзакции Т2 и Т3 перезаписываются по данным журнала;
транзакция Т4 отменяется и после восстановления системы она должна быть выполнена заново.


Рис. 11.3. Иллюстрация процесса восстановления БД после сбоя в работе
11.5. Оптимизация работы базы данных
Под оптимизацией работы базы данных понимается достижение ее максимальной эффективности по критерию быстродействие/качество.
Задачи по оптимизации БД возлагаются на администратора базы данных и включают следующие вопросы:
анализ и обработка сообщений о проблемах. Создаются системы сообщений о проблемах и информирования АБД об ошибках. На каждое сообщение должен быть дан официальный ответ;
мониторинг оборудования и программного обеспечения. Систематическая проверка состояния всего оборудования и программного обеспечения;
тестирование. Проверка рабочих характеристик всех процедур, программного обеспечения и оборудования. Контроль и оптимизация структуры БД;
защита. Классификация групп пользователей по их доступу и действиям с БД. Ведение автоматизированного журнала доступа пользователей к БД (место, время и т.д.);
резервные копии, репликация, архивация и восстановление для гарантированного восстановления БД. Разработка плана действий в чрезвычайных обстоятельствах;
оценка рабочих характеристик. Сбор статистики об объеме транзакций, времени отклика, частоте повторения сбоев, коэффициенте использования БД. Опросы пользователей по их оценке системы. Анализ протоколов аварийных окончаний;
контроль целостности. Разработка плана проверки целостности данных, хранящихся в БД.
11.6. Правовая охрана баз данных
Являясь информационной структурой, база данных может содержать информационные ресурсы большой ценности и в зависимости от места их использования может содержать в себе секреты различных уровней: государственного, коммерческого или личного.
Продвижение нашей страны по пути развития рыночной экономики обусловило необходимость принятия законодательных актов, регулирующих вопросы формирования и использования информационных ресурсов. Эти акты предусматривают меры, направленные на создание и охрану национальных информационных ресурсов как общегосударственного национального достояния, а также охрану корпоративных и личных информационных ресурсов и БД.
Авторское право распространяется на программы для ЭВМ и базы данных, являющиеся результатом творческой деятельности автора (соавторов). Творческий характер деятельности автора предполагается до тех пор, пока не доказано обратное.
Правовая охрана распространяется на базы данных, представляющие собой результат творческого труда по подбору и организации данных. Базы данных охраняются независимо от того, являются ли данные, на которых они основаны или которые они включают, объектами авторского права.
Авторское право на программы для ЭВМ и базы данных не связано с правом собственности на их материальный носитель
Авторское право на базу данных признается при условии соблюдения авторского права на каждое из произведений, включенных в эту базу данных.
Авторское право на базу данных не препятствует другим лицам осуществлять самостоятельный подбор и организацию произведений и материалов, входящих в эту базу данных.
Исключительное право на программу для ЭВМ или базу данных, созданные работником (автором) в связи с выполнением трудовых обязанностей или по заданию работодателя, принадлежит работодателю, если договором между ним и работником (автором) не предусмотрено иное, а работник (автор) имеет право на вознаграждение.
Выпуск под своим именем чужой программы для ЭВМ или базы данных либо незаконное воспроизведение или распространение таких произведений влечет за собой уголовную ответственность в соответствии с законом
Основными законодательными и нормативными правовых актами, обеспечивающими охрану информации, содержащейся в базах данных, являются:
Закон Республики Беларусь от 29.11.94 г. «О государственных секретах»;
Закон Республики Беларусь от 16.05.96 г. « Об авторском праве и смежных правах»;
Закон Республики Беларусь от 6.09.95 г. «Об информатизации»;
Закон Республики Беларусь от 5.05.99 г. «О научно-технической информации»;
Постановление Совета Министров Республики Беларусь от 28.08.2000 г. «О государственной регистрации информационных ресурсов»;
Закон «Об информатизации, информации и защите информации» (принят на пленарном заседании Межпарламентской Ассамблеи государств участников СНГ в ноябре 2005 года) и др.
Вопросы для самопроверки
Дайте определение терминам: Пользователи БД, Администратор БД, Пользовательский интерфейс.
Какие основные функции имеет администратор БД?
Какие причины, вызывают необходимость защиты БД
Какие организационные мероприятия и методы используются для защиты БД?
Перечислите основные криптографические методы защиты БД.
В чем заключаются требования по разграничению прав доступа к данным?
Какими специальными операторами языка SQL могут устанавливаться и отменяться привилегии доступа к данным?
С помощью каких основных средств можно восстанавливать БД?
Какие способы применяются для оптимизации работы базы данных?
В чем заключается правовая охрана баз данных?
ЛИТЕРАТУРА
Основная
Гаврилова, Т.А. Базы знаний интеллектуальных систем: учеб. пособие для вузов / Т.А. Гаврилова, В.Ф. Хорошевский. СПб.: Питер, 2001.
Карпова, Т.С. Базы данных: модели, разработка, реализация: учеб. для вузов / Т.С. Карпова. СПб.: Питер, 2001.
Малыхина М.П. Базы данных: учеб. пособие / М.П. Малыхина. СПб.: БХВ-Петербург, 2004.
Оскерко, В.С. Практикум по технологии баз данных: учеб. пособие / В.С. Оскерко, З.В. Пунчик, О.А. Сосновский. Минск: БГЭУ, 2007.
Оскерко, В.С. Практикум по технологиям баз данных: учеб. пособие / В.С. Оскерко, З.В. Пунчик. Минск: БГЭУ, 2004.
Базы данных: учеб. для вузов / А.Д. Хомоненко, В.М. Цыганков, М.Г. Мальцев; под ред. А.Д. Хомоненко. СПб.: КОРОНА принт, 2004.
Моркес, Д. Microsoft Access 2003 / Д. Моркес. М.: Наука, 2006.
[ Cкачайте файл, чтобы посмотреть ссылку ], С. Разработка приложений в MS Access / С. [ Cкачайте файл, чтобы посмотреть ссылку ]. М.: [ Cкачайте файл, чтобы посмотреть ссылку ], 2006.
Резниченко, В. Язык запросов SQL. Учебный курс / В. Резниченко. СПб.: Питер, 2006.

Дополнительная
Автоматизированные информационные технологии в экономике. учебник для вузов / В.В. Брага, Н.Г. Бубнова, Л.А. Вдовенко [и др.]; под ред. Г.А. Титоренко. М.: ЮНИТИ, 2002.
Аксенов, А.И. Основы технологий баз данных и знаний / А.И. Аксенов, А.А. Гордич. Минск: ЧИУП, 2007.
Базы данных. Интеллектуальная обработка информации / В.В. Корнеев, А.Ф. Гареев, С.В. Васютин [и др.] М.: Издатель С.В. Молгачева: Нолидж, 2001.
Государственная программа информатизации Республики Беларусь на 20032005 гг. и на перспективу до 2010 года «Электронная Беларусь» (Постановление Совета Министров Республики Беларусь от 27.12.2002 № 1819).
Кренке, К. Теория и практика построения баз данных / К. Кренке. СПб.: Питер, 2005.
Козырев, А.А. Информационные технологии в экономике и управлении: Учебник / А.А. Козырев. Изд. 4-е, перераб. и доп. СПб: Издательство Михайлова В.А., 2005.
Миронов, Д.A. Создание Web-страниц в MS Office 2000: учеб. пособие / Д.A. Миронов. СПб.: БХВ-Петербург, 2000.
Microsoft Access 2000. Библия пользователя. М.: Диалектика, 2000.
Олифер, В.Г. Компьютерные сети. Принципы, технологии, протоколы / В.Г. Олифер, Н.А. Олифер. СПб: Питер, 2004.
Оскерко, В.С. Технологии организации, хранения и обработки данных. Система дистанционного обучения: учеб.-практ. пособие / В.С. Оскерко. Минск: БГЭУ, 2002.
Петров, В. Н. Информационные системы / В.Н. Петров. СПб.: Питер, 2002.
Пупков, К.А. Интеллектуальные системы / К.А. Пупков, В.Г. Коньков. М.: Изд-во МГТУ им. Н.Э. Баумана, 2003.
Рикарди, Грег. Системы баз данных. Теория и практика использования в Internet и среда Java / Грег Рикарди. М.: Издательский дом «Вильямс», 2001.
Риордан, Ребекка М. Программирование в Microsoft SQL Server 2000 / Ребекка М. Риордан. М.: ЭКОМ, 2002.
Толмачева, Е.С. Базовые средства информационных технологий: учебно-метод. пособие / Е.С. Толмачева, С.П. Толмачев. Минск: ИСЗ, 2003.
Толмачева, Е.С. Корпоративные информационные системы: курс лекций / Е.С. Толмачева, С.П. Толмачев. Минск: Современные знания, 2008.
Толмачева, Е.С. Компьютерные информационные технологии: курс лекций / Е.С. Толмачева. Минск: Современные знания, 2007.
Эйткен, П. Разработка приложений на VBA в средеOffice XP / П. Эйткен, М.: Вильямс, 2003.



Учебное электронное издание



Толмачев Сергей Петрович
Толмачева Елена Сергеевна
Замковец Сергей Леонтьевич



ТЕХНОЛОГИИ БАЗ ДАННЫХ И ЗНАНИЙ

Курс лекций

[Электронный ресурс]


Редактор И.П. Сергачева
Компьютерная верстка Т. В. Харьковской



Требования к системе:
Windows98/2000/XP, Adobe Acrobat Reader 7,0.


Подписано в печать с оригинал-макета 21.01.08.
Гарнитура Times Roman. Объем 1,5 Мб.


ЗАО «Современные знания».
ЛИ № 02330/0133076 от 30.04.04.
220023, г. Минск, ул. Филимонова, 69.


13 EMBED CorelBarCode.11 1415










13PAGE 15


13PAGE 1414215







Наименование товара
Объем продаж по месяцам


Январь
Февраль
Март

Сыр
22
18
15

Масло
30
26
32



Наименование товара
Месяц
Объем продаж

Сыр
Январь
22

Сыр
Февраль
18

Сыр
Март
15

Масло
Январь
30

Масло
Февраль
26

Масло
Март
32



№ накладной
Клиент
Наименование товара
Кол-во

12354
ООО «Ветразь»
Соль Перец
5
4

76523
УП «Слава»
Рыба
Сыр
Сок
2
7
3



1 М

№ накладной
Наименование товара
Кол-во

12354
Соль
5

12354
Перец
4

76523
Рыба
2

76523
Сыр
7

76523
Сок
3



№ накладной
Клиент

12354
ООО «Ветразь»

76523
УП «Слава»



№ группы

ФИО студента



№ группы

Кол-во студентов



1 1







База данных

Внутренний уровень

Концептуальный уровень


Внешний уровень

ПАССАЖИР

БИЛЕТ

имеет

1 М


АЭРОПОРТ например,
Минск 2









t















Выбор объектов
Надпись
Группа переключателей
Переключатель
Поле со списком
Кнопка
Свободная рамка объекта
Разрав страницы
Подчиненная форма/отчет
Прямоугольник


Мастера
Поле
Выключатель
Флажок
Список
Рисунок
Присоединенная рамка объекта
Набор вкладок
Линия
Другие элементы








Root Entry

Приложенные файлы

  • doc 9655387
    Размер файла: 2 MB Загрузок: 0

Добавить комментарий