Реферат Понятие и структура банка данных
Работа добавлена на сайт bukvasha.net: 2015-10-28Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
от 25%
договор
1. Понятие и структура банка данных.
БнД — это система специальным образом организованных данных, программных, технических, языковых, организационно-методических средств, предназначенных для обеспечения централизованного накопления и коллективного многоцелевого использования данных.
По своей структуре современный БнД является сложной человеко-машинной системой, включающей в свой состав различные взаимосвязанные и взаимозависимые компоненты (рис. 1.1).
ИК (Информационная компонента) – ее ядром является БД и метаданные.
БД – это совокупность используемых при функционировании АСУ данных, организованных по определенным правилам, предусматривающих общие принципы описания, хранения и манипулирования данными и независимых от прикладных программ.
Метаданные - это данные о данных.
ПС (Программные средства) - обеспечивают взаимодействие всех частей информационной системы при ее функционировании (рис. 1.2).
Основу программных средств БнД представляет СУБД.
СУБД - совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.
В состав СУБД входят: ядро СУБД; трансляторы языковых программ; языковые средства, обеспечивающие интерфейс пользователей разных категорий с БнД.
ЯС (Языковые средства) – подразделяются на языки описания данных ЯОД (DDL) и языки манипулирования данными ЯМД (DML).
ЯОД предназначен для описания структуры БД, а ЯМД для ведения БД (ввод, удаление, модификация) и формирование запросов к БД.
ЯМД делятся на процедурные и непроцедурные. При пользовании процедурными языками надо указать, какие действия и над какими объектами необходимо выполнить, чтобы получить результат. В непроцедурных языках указывается, что надо получить в ответ, а не как этого достичь.
ТС (Технические средства БнД) – это большие ЭВМ (IBM 9000), компьютеры, устройства визуального отображения.
ОМС (Организационно-методические средства) - различные инструкции, методические и регламентирующие материалы, предназначенные для пользователей разных категорий, взаимодействующих с банком данных.
АБнД (Администраторы банка данных) – группа специалистов или специалисты, которые отвечают за создание и эксплуатацию БнД.
2. Дайте определение БнД. Раскройте основные преимущества и требования к БнД.
БнД — это система специальным образом организованных данных, программных, технических, языковых, организационно-методических средств, предназначенных для обеспечения централизованного накопления и коллективного многоцелевого использования данных.
В приведенном определении подчеркивается, что банк данных является сложной системой, включающей в себя все обеспечивающие подсистемы, необходимые для функционирования любой системы автоматизированной обработки данных.
Использование БнД в автоматизированных системах позволяет получить следующие преимущества:
1. Обеспечивается непротиворечивость и целостность информации, возможность обращаться к ней не только при решении заранее предопределенных задач, но и с нерегламентированными запросами.
2. Сокращается избыточность хранимых данных, что приводит к сокращению затрат не только на создание и хранение данных, но и на поддержание их в актуальном состоянии.
3. Существенно изменяется деятельность организации, где он внедряется (сокращается документооборот, количество форм документов, перераспределяются функции между сотрудниками).
4. Обеспечивается возможность более полной реализации принципа независимости прикладных программ от данных, чем это возможно при организации локальных файлов.
5. Наличие в составе СУБД средств, ориентированных на разные категории пользователей, делает возможной работу с базой данных не только профессионалов в области обработки данных, но и практически любого, причем это использование может быть как для их профессиональных целей, так и для удовлетворения потребности в информации в быту и т. п.
Данные преимущества накладывают и определенные требования к БнД:
- адекватность отображения предметной области (полнота, целостность и непротиворечивость данных, актуальность информации, т. е. ее соответствие состоянию объекта на данный момент времени);
- возможность взаимодействия пользователей разных категорий и в разных режимах,, обеспечение высокой эффективности доступа для разных приложений;
- дружелюбность интерфейсов и малое время на освоение системы, особенно для конечных пользователей;
- обеспечение секретности и конфиденциальности для некоторой части данных; определение групп пользователей и их полномочий;
- обеспечение взаимной независимости программ и данных;
- обеспечение надежности функционирования БнД: защита данных от случайного и преднамеренного разрушения; возможность быстрого и полного восстановления данных в случае их разрушения; технологичность обработки данных, приемлемые характеристики функционирования БнД.
3. Назначение, средства и основные функции СУБД.
СУБД представляет собой программное обеспеченье, которое управляет доступом к базе данных.
Основными средствами типовой СУБД являются:
- средства задания (описания) структуры базы данных;
- средства конструирования экранных форм, предназначенных для ввода данных, просмотра и их обработки в диалоговом режиме;
- средства задания запросов для выборки данных при заданных условиях, а также выполнения операций по их обработке;
- средства создания отчетов из БД для вывода на печать результатов обработки в удобном для пользователя виде;
- языковые средства – макросы, встроенный алгоритмический язык (Dbase, Visual Basic или другой), язык запросов (QBE, SQL) и т.п., которые используются для реализации нестандартных алгоритмов обработки данных, а также процедур обработки событий в задачах пользователя;
- средства создания приложений пользователя (генераторы приложений, средства создания меню и панелей управления приложениями), позволяющие объединить различные операции работы с базой данных в единый технологический процесс.
Используя эти средства СУБД выполняет следующие функции:
Определение данных. СУБД должна допускать определение данных (внешние схемы, концептуальную схему, внутреннюю схему, а также все связанные отображения) в исходной форме и преобразовывать эти определения в форму соответствующих объектов. СУБД должна «понимать» синтаксис языка определений данных.
Обработка данных. СУБД должна иметь обрабатывать запросы пользователя на выборку, изменение или удаление существующих данных в базе данных или на добавление новых данных в базе данных. Данные операции должны выполняться с помощью планируемых и не планируемых запросов.
Планируемый запрос – необходимость которого предусмотрена заранее. Администратор базы данных должен настроить проект базы данных таким образом, чтобы гарантировать достаточное быстродействие для таких запросов.
Не планируемый запрос – это, наоборот, специальный запрос, необходимость которого не была предусмотрена заранее. Проекты БД могут подходить, а могут и не подходить для реализации этих запросов.
Целостность БД – есть свойство БД, означающее, что в ней содержится полная непротиворечивая и адекватно отражающая предметную область информация. Целостность состояния БД описывается с помощью ограничений целостности в виде условий, которым должны удовлетворять хранимые в базе данные.
Для обеспечения безопасности данных (т.е. незаконных обращений к БД) СУБД обеспечивает выполнение следующих операций: шифрование прикладных программ; шифрование данных; защиту паролем; ограничение уровня доступа (к базе данных, к таблице, к словарю, для пользователя); восстановление данных и дублирование.
Для восстановления данных и поддержания целостности в СУБД используется механизм транзакций.
Транзакцией называется некоторая неделимая последовательность операций над данными БД, которая отслеживается СУБД от начала и до завершения. Если по каким-либо причинам (сбои и отказы оборудования, ошибки в программном обеспечении) транзакция остается незавершенной, то она отменяется.
Транзакции должны быть присущи три основных свойства:
- атомарность (выполняются все входящие в транзакцию операции или ни одна);
- сериализуемость (отсутствует взаимное влияние выполняемых в одно и то же время транзакций);
- долговечность (даже крах системы не приводит к утрате результатов зафиксированной транзакции).
Ведение журнала изменений в БД. Выполняется СУБД для обеспечения надежности хранения данных в базе при наличии аппаратных сбоев, а также ошибок в программном обеспечении.
Журнал СУБД – это особая БД или часть основной БД, непосредственно недоступная пользователю и используемая для записи информации обо всех изменениях БД. Для поддержания надежности хранения и поддержания самого журнала в системе хранятся несколько его копий.
4. Использование СУБД в локальных и многопользовательских средах.
Локальная среда. Функциональные ИС могут размещаться на одном или на нескольких компьютерах. Организация функционирования локальной ИС на одном компьютере в среде некоторой ОС возможна с помощью следующих вариантов использования программных средств: «полной СУБД»; приложения с «усеченной» (ядра) СУБД; независимого приложения.
1. «Полная СУБД». В дисковой памяти ПК помещается вся СУБД. Взаимодействия пользователя с СУБД происходит напрямую через пользовательский (терминальный) интерфейс СУБД, либо с помощью приложения. Приложение выполняется в режиме интерпретации.
«+» – простота разработки и сопровождения БД.
«-» – большие затраты дисковой памяти на хранение программы СУБД.
2. Приложения с «усеченной» СУБД. Приложения с ядром СУБД используют для достижения следующих целей:
- уменьшение объема занимаемого СУБД пространства жесткого диска и оперативной памяти;
- повышение скорости работы приложения;
- защиты приложения от модификации со стороны пользователя (ядро не содержит средств разработки приложений).
«+»: меньшее потребление ресурсов памяти, ускорение работы приложения и возможность защиты приложения от модификации.
«-»: значительный объем расхода памяти.
3. Независимое приложение. Исходная программа (приложение) предварительно компилируется средствами СУБД. Результат – готовая к выполнению программа.
«+»: экономия внешней и оперативной памяти ПК, ускорение выполнения приложения и полная защита приложения от модификации.
«-»: трудоемкость доработки приложения и отсутствие возможности использования стандартных средств СУБД.
Многопользовательская среда. БД, как правило, содержат данные, необходимые многим пользователям. Получение одновременного доступа нескольких пользователей к общей базе данных возможно при установке СУБД в ЛВС и создании многопользовательской (распределенной БД).
Распределенная БД при архитектуре системы клиент – сервер включает корпоративную базу данных (КБД) и персональные базы данных (ПБД). Корпоративная БД размещается на компьютере – сервере, а персональная БД на компьютере клиента.
Сервером определенного ресурса в компьютерной сети называется компьютер (программа), управляющий этим ресурсом. В качестве ресурса могут выступать БД, файловые системы, службы печати, почтовые службы и др.
Архитектура клиент – сервер допускает различные варианты реализации.
Рассмотрим основные из них:
Сеть компьютер-сервер.
«-»: высокая интенсивность передаваемых данных. Зачастую передаются ненужные данные.
Сеть клиент-сервер.
При такой архитектуре сервер БД обеспечивает выполнение основного объема обработки данных. Формируемые пользователем или приложением запросы поступают к серверу БД в виде инструкций языка SQL. Сервер базы данных выполняет поиск и извлечение нужных данных, которые затем передаются на компьютер пользователя. Достоинство: меньший объем передаваемых данных.
5. Языковые средства БнД. Основные типы языков.
Языковые средства БнД. Языковые средства СУБД являются важнейшей компонентой банков данных, так как, в конечном счете, они обеспечивают интерфейс пользователей разных категорий с банком данных. Спектр языковых средств, применяемых в СУБД, широк. Можно выделить две концепции развития языковых средств: концепцию разделения и концепцию интеграции. При использовании концепции разделения различают языки описания данных (ЯОД), языки манипулирования данными (ЯМД), языки запросов и другие языковые средства.
В составе языков описания данных в зависимости от особенностей СУБД поддерживаются все или некоторые из следующих языков: язык описания схем, язык описания подсхем, язык описания хранимых данных, языки описания внешних данных (входных, выходных).
Языки манипулирования данными разделяются на две большие группы: процедурные и непроцедурные. При пользовании процедурными языками надо указать, какие действия и над какими объектами необходимо выполнить, чтобы получить результат. В непроцедурных языках указывается, что надо получить в ответе, а не как этого достичь.
Процедурные языки могут различаться по основным информационным единицам, которыми они манипулируют. Это могут быть языки, ориентированные на позаписную обработку данных, и языки, ориентированные на операции над множеством записей. Так, операции реляционной алгебры оперируют целиком отношением, а не каждой его записью. Примерами непроцедурных языков являются языки, основанные на реляционном исчислении. Представителем языков, основанных на реляционном исчислении кортежей, является широко используемый язык запросов SQL.
Языковые средства предназначаются для пользователей разных категорий: конечных пользователей, системных аналитиков, профессиональных программистов. Повышение уровня языковых средств, их дружелюбности приводит к тому, что все большее число функций выполняется пользователями-непрограммистами самостоятельно, без посредников.
6. Администратор БнД и его функции.
АБнД - это группа пользователей, которая на начальной стадии разработки банка данных отвечает за его оптимальную организацию с точки зрения одновременной работы множества конечных пользователей, на стадии эксплуатации отвечает за корректность работы данного банка информации в многопользовательском режиме. На стадии развития и реорганизации эта группа пользователей отвечает за возможность корректной реорганизации банка без изменения или прекращения его текущей эксплуатации.
Состав группы АБнД: системные аналитики; проектировщики структур данных и внешнего по отношению к банку данных информационного обеспечения; проектировщики технологических процессов обработки данных; системные и прикладные программисты; операторы и специалисты по техническому обслуживанию. Если речь идет о коммерческом банке данных, то важную роль здесь играют специалисты по маркетингу.
Функции группы АБнД.
1. Анализ предметной области: описание предметной области, выявление ограничений целостности, определение статуса (доступности, секретности) информации, определение потребностей пользователей, определение соответствия «данные—пользователь», определение объемно-временных характеристик обработки данных.
2. Проектирование структуры БД: определение состава и структуры файлов БД и связей между ними, выбор методов упорядочения данных и методов доступа к информации, описание БД на языке описания данных (ЯОД).
3. Задание ограничений целостности при описании структуры БД и процедур обработки БД:
- задание декларативных ограничений целостности, присущих предметной области;
- определение динамических ограничений целостности, присущих предметной области в процессе изменения информации, хранящейся в БД;
- определение ограничений целостности, вызванных структурой БД;
- разработка процедур обеспечения целостности БД при вводе и корректировке данных;
- определение ограничений целостности при параллельной работе пользователей в многопользовательском режиме.
4. Первоначальная загрузка и ведение БД:
- разработка технологии первоначальной загрузки БД, которая будет отличаться от процедуры модификации и дополнения данными при штатном использовании базы данных
- разработка технологии проверки соответствия введенных данных реальному состоянию предметной области. База данных моделирует реальные объекты некоторой предметной области и взаимосвязи между ними, и на момент начала штатной эксплуатации эта модель должна полностью соответствовать состоянию объектов предметной области на данный момент времени;
- в соответствии с разработанной технологией первоначальной загрузки может понадобиться проектирование системы первоначального ввода данных.
5. Защита данных:
- определение системы паролей, принципов регистрации пользователей, создание групп пользователей, обладающих одинаковыми правами доступа к данным;
- разработка принципов защиты конкретных данных и объектов проектирования; разработка специализированных методов кодирования информации при ее циркуляции в локальной и глобальной информационных сетях;
- разработка средств фиксации доступа к данным и попыток нарушения системы защиты;
- тестирование системы защиты;
- исследование случаев нарушения системы защиты и развитие динамических методов защиты информации в БД.
6. Обеспечение восстановления БД:
- разработка организационных средств архивирования и принципов восстановления БД;
- разработка дополнительных программных средств и технологических процессов восстановления БД после сбоев.
7. Анализ обращений пользователей БД: сбор статистики по характеру запросов, по времени их выполнения, по требуемым выходным документам
8. Анализ эффективности функционирования БД:
- анализ показателей функционирования БД;
- планирование реструктуризации (изменение структуры) БД и реорганизации БнД.
9. Работа с конечными пользователями:
- сбор информации об изменении предметной области;
- сбор информации об оценке работы БД;
- обучение пользователей, консультирование пользователей;
- разработка необходимой методической и учебной документации по работе конечных пользователей.
10. Подготовка и поддержание системных средств:
- анализ существующих на рынке программных средств и анализ возможности и необходимости их использования в рамках БД;
- разработка требуемых организационных и программно-технических мероприятий по развитию БД;
- проверка работоспособности закупаемых программных средств перед подключением их к БД;
- курирование подключения новых программных средств к БД. 11.Организационно-методическая работа по проектированию БД:
- выбор или создание методики проектирования БД;
- определение целей и направления развития системы в целом;
- планирование этапов развития БД;
- разработка общих словарей-справочников проекта БД и концептуальной модели;
- стыковка внешних моделей разрабатываемых приложений;
- курирование подключения нового приложения к действующей БД;
- обеспечение возможности комплексной отладки множества приложений, взаимодействующих с одной БД
7. Модели баз данных: иерархическая, сетевая.
Иерархическая МД. В иерархической модели связи между данными можно описать с помощью упорядоченного графа (или дерева). Упрощенно представление связей между данными в иерархической модели показано на рис. 3.
Для описания структуры (схемы) иерархической БД на некотором языке программирования используется тип данных «дерево». Тип «дерево» схож с типами данных «структура» языков программирования ПЛ/1 и Си и «запись» языка Паскаль. В них допускается вложенность типов, каждый из которых находится на некотором уровне.
Тип «дерево» является составным. Он включает в себя подтипы («поддеревья»), каждый из которых, в свою очередь, является типом «дерево». Каждый из типов «дерево» состоит из одного «корневого» типа и упорядоченного набора (возможно пустого) подчиненных типов. Каждый из элементарных типов, включенных в тип «дерево», является простым или составным типом «запись». Простая «запись» состоит из одного типа, например, числового, а составная «запись» объединяет некоторую совокупность типов, например, целое, строку символов и указатель (ссылку). Пример типа «дерево» как совокупности типов показан на рис. 4.
Рис. 4. Пример типа «дерево».
Корневым называется тип, который имеет подчиненные типы и сам не является подтипом. Подчиненный тип (подтип) является потомком по отношению к типу, который выступает для него в роли предка (родителя). Потомки одного и того же типа являются близнецами по отношению друг к другу.
Иерархическая БД представляет собой упорядоченную совокупность экземпляров данных типа «дерево» (деревьев), содержащих экземпляры типа «запись» (записи). Часто отношения родства между типами переносят на отношения между самими записями. Поля записей хранят собственно числовые или символьные значения, составляющие основное содержание БД. Обход всех элементов иерархической БД обычно производится сверху вниз и слева направо.
Сетевая МД. СМД позволяет отображать разнообразные взаимосвязи элементов данных в виде произвольного графа, обобщая тем самым иерархическую модель данных. Наиболее полно концепция сетевых БД впервые была изложена в предложениях группы KODASYL.
Для описания схемы сетевой БД используется две группы типов: «запись» и «связь». Тип «связь» определяется для двух типов «запись»: предка и потомка. Переменные типа «связь» являются экземплярами связей.
Сетевая БД состоит из набора записей и набора соответствующих связей. На формирование связи особых ограничений не накладывается. Если в иерархических структурах запись-потомок могла иметь только одну запись-предка, то в сетевой модели данных запись-потомок может иметь произвольное число записей-предков (сводных родителей).
Пример схемы простейшей сетевой БД показан на рис.7. Типы связей здесь обозначены надписями на соединяющих типы записей линиях.
Рис. 7. Пример схемы сетевой БД.
Физическое размещение данных в базах сетевого типа может быть организовано практически теми же методами, что и в иерархических базах данных.
«+» СМД является возможность эффективной реализации по показателям затрат памяти и оперативности. В сравнении с иерархической моделью сетевая модель предоставляет большие возможности в смысле допустимости образования произвольных связей.
«-» СМД является высокая сложность и жесткость схемы БД, построенной на ее основе, а также сложность для понимания и выполнения обработки информации в БД обычным пользователем. Кроме того, в сетевой модели данных ослаблен контроль целостности связей вследствие допустимости установления произвольных связей между записями.
Наиболее известными сетевыми СУБД являются следующие: IDMS, db_VistaIII, СЕТЬ, СЕТОР и КОМПАС.
8. Модели баз данных: реляционная и постреляционная.
Реляционная МД. Она была предложена сотрудником фирмы IBM Эдгаром Коддом в 1970 году. РМД представляет собой совокупность взаимосвязанных отношений (таблиц). Каждое отношение содержит сведения об определенном типе объекта. Например, студент, преподаватель и т.д.
Отношение состоит из колонок и строк. Название колонки называется атрибутом. Атрибут – это свойство объекта.
Множество допустимых значений называется доменом. Строка в таблице характеризует конкретный экземпляр объекта и называется кортежем. Отношение – это совокупность кортежей. Один или несколько атрибутов, о значениях которых можно однозначно определить один кортеж называется ключом. Ключ может быть простым (из одного атрибута) или составным (из нескольких атрибутов). Совокупность атрибутов одного отношения называется схемой отношений. Совокупность схем отношений плюс имя БД называется схемой БД.
Между отношениями могут быть установлены следующие типы связей:
1:1 – это когда в любой момент времени каждому кортежу отношения А соответствует 0 или 1 кортеж отношения В и наоборот.
1:М (М:1) – это когда каждому кортежу отношения А соответствует в любой момент времени 0, 1 или более кортежей отношения М, но не наоборот.
Требования реляционной модели: в отношении не должно быть одинаковых кортежей; на пересечении строки и колонки может находиться только единственное значение.
Пример. 1. Схема отношений. 2. Атрибут. 3. Ключевой атрибут. 4. Кортеж. 5. Домен. 6. Отношения.
«+» РМД заключается в простоте, понятности и удобстве физической реализации на ЭВМ. Именно простота и понятность для пользователя явились основной причиной их широкого использования. Проблемы же эффективности обработки данных этого типа оказались технически вполне разрешимыми.
«-» РМД: отсутствие стандартных средств идентификации отдельных записей и сложность описания иерархических и сетевых связей.
Примерами зарубежных реляционных СУБД для ПЭВМ являются следующие: DB2 (IBM), R:BASE (Microrim), Ingres (ASK Computer Systems) и Oracle (Oracle). К отечественным СУБД реляционного типа относятся системы: ПАЛЬМА, и HyTech (МИФИ).
Постреляционная МД. Она представляет собой расширенную РМД. В ней допускаются многозначные поля т.е. на пересечении колонки и строки находится несколько значений. Такая область оформляется отдельной таблицей, встроенной в основную таблицу.
Пример.
«+»: ПМД позволяет несколько реляционных таблиц заменить постреляционной, что обеспечит более высокую наглядность и сократит затраты на обработку дынных.
«-»: сложная реализация.
ПМД поддерживается СУБД uniVers, Bubba и Dasdb.
9. Основные элементы реляционной модели данных (отношение, атрибут, домен, кортеж, ключ отношения, схема отношения, схема БД).
Отношение состоит из колонок и строк.
Название колонки называется атрибутом. Атрибут – это свойство объекта.
Множество допустимых значений называется доменом.
Строка в таблице характеризует конкретный экземпляр объекта и называется кортежем.
Отношение – это совокупность кортежей.
Один или несколько атрибутов, о значениях которых можно однозначно определить один кортеж называется ключом.
Ключ может быть простым (из одного атрибута) или составным (из нескольких атрибутов).
Совокупность атрибутов одного отношения называется схемой отношений.
Совокупность схем отношений плюс имя БД называется схемой БД.
1. Схема отношений.
2. Атрибут.
3. Ключевой атрибут.
4. Кортеж.
5. Домен.
6. Отношения.
10. Модели баз данных: многомерная и объектно-ориентированная.
Многомерный подход к представлению данных в базе появился практически одновременно с реляционным, но свое развитие получил только в последние годы в связи с развитием технологии OLAP (Online Analytical Processing — оперативная аналитическая обработка).
МнБД представляет собой гиперкуб. В многомерных моделях используются следующие понятия:
Измерение (Dimension) — это множество однотипных данных, образующих одну из граней гиперкуба. Примерами наиболее часто используемых временных измерений являются Дни, Месяцы, Кварталы и Годы. В качестве географических измерений широко употребляются Города, Районы, Регионы и Страны. В многомерной модели данных измерения играют роль индексов, служащих для идентификации конкретных значений в ячейках гиперкуба.
Ячейка (Cell) или показатель — это поле, значение которого однозначно определяется фиксированным набором измерений. Тип поля чаще всего определен как цифровой. В зависимости от того, как формируются значения некоторой ячейки, обычно она может быть переменной (значения изменяются и могут быть загружены из внешнего источника данных или сформированы программно) либо формулой (значения, подобно формульным ячейкам электронных таблиц, вычисляются по заранее заданным формулам).
В существующих МСУБД используются два основных варианта организации данных: гиперкубическая и поликубическая.
В поликубической схеме предполагается, что в БД может быть определено несколько гиперкубов с различной размерностью и с различными измерениями в качестве граней. Примером системы, поддерживающей поликубический вариант БД, является сервер Oracle Express Server.
В случае гиперкубической схемы предполагается, что все показатели определяются одним и тем же набором измерений. Это означает, что при наличии нескольких гиперкубов БД все они имеют одинаковую размерность и совпадающие измерения. Очевидно, в некоторых случаях информация в БД может быть избыточной (если требовать обязательное заполнение ячеек).
Пример:
Основные операции с многомерной моделью:
1. «Срезы» (Slice) – представляет собой подмножество гиперкуба, полученное в результате фиксации одного или нескольких измерений.
2. «Вращение» (Rotate) – применяется при двухмерном представлении данных. Суть ее заключается в изменении порядка измерений при визуальном представлении данных.
3. Операции «агрегация» (Drill Up) и «детализация» (Drill Down) означают соответственно переход к более общему и к более детальному представлению информации пользователю из гиперкуба.
«+»: удобство и эффективность аналитической обработки больших объемов данных, связанных со временем.
«–»: громоздкость для простейших задач обычной оперативной обработки информации.
Объектно-ориентированная модель была описана в стандарте ODMG-93 (Object Database Management Group - группа управления объектно-ориентированными базами данных).
Структура ООМД графически представлена в виде дерева, узлами которого являются объекты. Свойства объектов описываются стандартным типом, например sprint, или типа конструируемым пользователем (типа class).
Значением свойства типа string является строка символов. Значение свойства типа class есть объект, являющийся экземпляром соответствующего класса. Каждый объект-экземпляр класса считается потомком объекта, в котором он определен как свойство. Объект-экземпляр класса принадлежит своему классу и имеет одного родителя. Родовые отношения в БД образуют связную иерархию объектов.
Для ООМД характерны основные принципы ОО программирования (инкапсуляция, наследование, полиморфизм).
Инкапсуляция ограничивает область видимости имени свойства пределами того объекта, в котором оно определено.
Наследование, наоборот, распространяет область видимости свойства на всех потомков объекта.
Полиморфизм в объектно-ориентированных языках программирования означает способность одного и того же программного кода работать с разнотипными данными. Другими словами, он означает допустимость в объектах разных типов иметь методы (процедуры или функции) с одинаковыми именами. Во время выполнения объектной программы одни и те же методы оперируют с разными объектами в зависимости от типа аргумента.
«+»: возможность отображения любых связей между объектом.
«–»: высокая понятийная сложность, громоздкость для решения простейших задач.
11. Структура процесса проектирования базы данных.
Процесс проектирования удобно рассматривать в сопоставлении с этапами жизненного цикла системы БД.
Жизненный цикл БД можно разбить на две стадии:
1). Системного анализа и проектирования;
2). Реализации и эксплуатации.
Первую стадию можно детализировать следующими этапами:
- информационно-логическое проектирование;
- концептуальное проектирование;
- логическое проектирование;
- физическое проектирование.
Стадия реализации и эксплуатации:
- реализация базы данных;
- анализ функционирования;
- модернизация и адаптация.
Взаимосвязь данных этапов можно представить в следующем виде:
Функциональную модель организационной системы будем представлять совокупностью схем и описаний технологической последовательности процедур и действий должностных лиц системы по переработке информации, включая описание задач, запросов, документооборота по всем уровням организации. Основной задачей является сбор всех требований, предъявляемых к содержанию и процессу обработки данных всеми известными и потенциальными пользователями информационных ресурсов системы.
Информационно-логическая модель данных обеспечивает первоначальную формализацию описания информационного содержания автоматизируемых процессов, согласовывая и объединяя в себе представления всех категорий пользователей. Основными критериями оценки качества ИЛМ являются ее полнота и простота понимания. детальность, ясность и согласованность описаний элементов. Соответственно методы, средства и технология, применяемые на данном этапе, должны обеспечивать достижение указанных свойств модели.
Концептуальное проектирование имеет целью создания обобщенной точки зрения на информационную систму всех категорий пользователей АС, а также создание модели обработки данных (транзакций) в виде последовательности взаимосвязанных действий с базой данных в процессе ее ведения.
Логическое проектирование состоит из двух взаимосвязанных процессов: проектирования логической модели БД (пере формулирование КМ в терминах ЯОД конкретной СУБД) и проектирование программ обработки данных (модели транзакций на ЯМД). В результате этого этапа разрабатывается логическая схема данных и структурированное описание обрабатывающих программ в терминах языковых средств конкретной системы.
Физическое проектирование состоит в определении способов размещения БД на носителях информации и в окончательной отладке программ обработки данных, специфицированных на предыдущем этапе. Результатом этого этапа является полностью готовая к внедрению система БД.
12. Модель функционирования. Назначение и основные элементы диаграммы потоков данных (
DFD-диаграммы).
Для построения функциональной модели предметной области широкое распространение нашел структурный подход. Суть структурного подхода заключается в следующем: в начела систему рассматривают с общих позиций, за тем осуществляется декомпозиция ее на подсистемы.
Для наглядного представления функциональной модели используется диаграммная техника. Наиболее широко используются:
- функциональные диаграммы SADT;
- диаграммы потоков данных DFD;
- диаграммы переходов STD и др.
Диаграммы потоков данных DFD лежат в основе методологии моделирования потоков данных, при котором модель системы строится как иерархия диаграмм потоков данных, описывающих процесс преобразования от ее входа до выдачи пользователю.
Диаграммы верхних уровней иерархии, или контекстные диаграммы, определяют основные процессы или подсистемы информационной системы с внешними входами и выходами. Их декомпозиция выполняется с помощью диаграмм более низкого уровня, вплоть до элементарных процессов.
Основными компонентами диаграмм потоков данных являются:
1. Сущность – потребитель или генератор данных.
2. Процесс – осуществляет обработку данных в соответствии с определенным алгоритмом.
3. Система/подсистема – осуществляют входных данных в выходные.
4. Хранилище – абстрактное или реальное устройство, в котором содержатся данные.
5. Поток данных – передача информации через некоторый канал связи.
Примеры фрагментов диаграммы потоков данных с изображением перечисленных компонентов приведены на рис. 2
13. Модель функционирования. Назначение и основные элементы
SADT- диаграммы.
Для построения функциональной модели предметной области широкое распространение нашел структурный подход. Суть структурного подхода заключается в следующем: в начела систему рассматривают с общих позиций, за тем осуществляется декомпозиция ее на подсистемы.
Для наглядного представления функциональной модели используется диаграммная техника. Наиболее широко используются:
- функциональные диаграммы SADT;
- диаграммы потоков данных DFD;
- диаграммы переходов STD и др.
Методология функционального моделирования SADT служит для построения функциональной модели объекта какой-либо предметной области. Последняя отображает функциональную структуру объекта - выполняемые им действия и связи между ними.
Функциональная модель информационной системы состоит из имеющих ссылки друг к другу диаграмм, фрагментов текстов и глоссария. На диаграммах представляются функции ИС и взаимосвязи (интерфейсы) между ними в виде блоков и дуг. Место соединения дуги с блоком определяет тип интерфейса. Управляющая информация указывается сверху, обрабатываемая информация - с левой стороны блока, выводимая информация - с правой стороны, выполняющий операцию механизм (человек, программа или устройство), представляется дугой снизублока.
При использовании методологии SADT выполняется постепенное наращивание степени детализации в построении модели информационной системы. На рис. 4 показана декомпозиция исходного блока системы на три составляющих компонента. Каждый из блоков определяет подфункции исходной функции и, в свою очередь, может быть декомпозирован аналогичным образом для обеспечения большей детализации.
В общем случае функциональная модель ИС представляет собой серию диаграмм с документацией, декомпозирующих сложный объект на составные компоненты в виде блоков. Блоки на диаграмме нумеруются. Для указания положения диаграммы или блока в иерархии диаграмм используются номера диаграмм. Например, обозначение А32 указывает на диаграмму, детализирующую блок 2 на диаграмме A3. В свою очередь, диаграмма АОЗ детализирует блок 3 на диаграмме АО.
На диаграммах функциональной модели SADT последовательность и время явно не указываются. Обратные связи, итерации, процессы и перекрывающиеся по времени функции можно отобразить с помощью дуг.
В методологии функционального моделирования существенным свойством является отображение возможных типов связей между функциями. Можно выделить следующие семь типов связей в порядке возрастания значимости:
- случайные связи, означающие, что связь между функциями мала или отсутствует;
- логические связи, означающие, что данные и функции относятся к одному классу или набору элементов, но функциональных отношений между ними нет;
- временные связи представляют функции, связанные во времени, когда данные используются одновременно или функции включаются параллельно, а не последовательно;
- процедурные связи означают, что функции группируются вместе, так как выполняются в течение одной и той же части цикла или процесса;
- коммуникационные связи означают, что функции группируются вместе, так как используют одни и те же входные данные и/или порождают одни и те же выходные данные;
- последовательные связи служат для обозначения причинно-следственной зависимости - выходные данные одной функции являются входными данными другой функции;
- функциональные связи обозначают случай, когда все элементы функции влияют на выполнение только одной функции.
14. Информационно-логическая модель данных (Определение ИЛМ, основные элементы
ER- диаграммы).
Цель инфологического моделирования – обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в создаваемой базе данных. Поэтому инфологическую модель данных пытаются строить по аналогии с естественным языком (последний не может быть использован в чистом виде из-за сложности компьютерной обработки текстов и неоднозначности любого естественного языка). Основными конструктивными элементами инфологических моделей являются сущности, связи между ними и их свойства (атрибуты).
Сущность – любой различимый объект, информацию о котором необходимо хранить в базе данных. Сущностями могут быть люди, места, самолеты, рейсы, вкус, цвет и т.д.
Атрибут – поименованная характеристика сущности. Его наименование должно быть уникальным для конкретного типа сущности, но может быть одинаковым для различного типа сущностей
Ключ
(индентификатор) – минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности. Минимальность означает, что исключение из набора любого атрибута не позволяет идентифицировать сущность по оставшимся.
Связь – ассоциирование двух или более сущностей. Если бы назначением базы данных было только хранение отдельных, не связанных между собой данных, то ее структура могла бы быть очень простой. Однако одно из основных требований к организации базы данных – это обеспечение возможности отыскания одних сущностей по значениям других, для чего необходимо установить между ними определенные связи.
Для графического отображения модели сущность-связь используются ER-диаграммы.
Сущность на ER-диаграмме представляется в виде прямоугольника с указаниями имени сущности в единственном числе вв именительном падеже.
Связи на ER-диаграмме отображаются в виде ромба или шестигранника с указанием имени связи в глагольной форме и вида связи.
15.
Основные элементы
ER
-диаграммы. Объяснить виды отношений 1:1, 1:М, М:1,
N
:
M
.
Для графического отображения модели сущность-связь используются ER-диаграммы.
Сущность на ER-диаграмме представляется в виде прямоугольника с указаниями имени сущности в единственном числе вв именительном падеже.
Связи на ER-диаграмме отображаются в виде ромба или шестигранника с указанием имени связи в глагольной форме и вида связи.
Типы связей:
1:1 - в каждый момент времени каждому экземпляру сущности А соответствует 1 или 0 представителей сущности В.
1:М - одному представителю сущности А соответствуют 0, 1 или несколько представителей сущности В.
М:М – каждому экземпляру сущности А, соответствуют 0, 1 и много экземпляров сущности В.
Пример. Если связь между сущностями МУЖЧИНЫ и ЖЕНЩИНЫ называется БРАК, то существует четыре возможных представления такой связи:
16.
Назначение и классификация языков манипулирования данными.
Для формулирования запросов пользователем к базе данных предназначены языки манипулирования данными (ЯМД). Помимо пользователя, конкретный ЯМД используется программистом для организации обмена данными между базой данных и пользовательскими программами. В связи с этим сам по себе ЯМД не является полным языком. Он предполагает использование так называемого включающего языка программирования, который является для ЯМД «каркасом» и обеспечивает процедурные возможности, необходимые для манипулирования данными.
Можно указать следующие основные функции ЯМД:
- формулировка запросов к базе данных. В связи с этим языки манипулирования данными иногда называют языками запросов или входными языками;
- оперирование с данными в смысле ввода в базу данных новых данных и удаление из нее устаревших данных.
При изучении ЯМД можно выделить две стороны:
1). Теоретические основы построения ЯМД;
2). Конкретные языки манипулирования или языки запросов конкретных автоматизированных систем.
Рассмотрим ЯМД в первом, теоретическом аспекте. Оказывается, что в этом плане наиболее глубоко разработана теория языков манипулирования для реляционной модели данных. ЯМД для реляционной модели развиваются на два класса:
1. Алгебраические языки, позволяющие формулировать запросы с помощью операций, выполняемых над отношениями реляционной модели. Совокупность этих операций над отношениями образует реляционную алгебру. Соответствующие алгебраические ЯМД называются языками реляционной алгебры.
2. Языки исчисления предикатов, в которых запросы описывают требуемую структуру отношения-ответа путем спецификации предиката, которому должны удовлетворять кортежи отношения-ответа. Этот класс Языков называется языками реляционного исчисления, представляющего по существу частный случай исчисления предикатов.
В свою очередь, языки реляционного исчисления делятся на две основные группы:
1). Языки с переменными-кортежами;
2). Языки с переменными на доменах.
В рамках данной лекции рассмотрим теоретические аспекты построения алгебраических языков.
17. Основные теоретико-множественные операции реляционной алгебры (проекция, селекция, декартово произведение, объединение, разность).
1. Проекция. Суть операции проекции состоит в исключении некоторых столбцов у отношения R и (или) в переупорядочивании оставшихся столбцов. Пусть R — отношение арности n, столбцы которого имеют номера 1, 2, 3, .... . Обозначим m из этих номеров, , через .
Проекцией отношения R на столбцы называется отношение
,
где , составленное из m-ок таких, что существует некоторый принадлежащий R кортеж длины п, удовлетворяющий условию: .
Операция проекции позволяет в отношении R, описывающем свойства объектов , входящих в набор Е, исключить компоненты кортежей, описывающие свойства, второстепенные для данного рассмотрения.
2. Селекция (выборка кортежей). Пусть F — правильно построенная формула логики предикатов (принимающая значения «истина» или «ложь»), образованная:
- операндами, являющимися константами, именами или номерами столбцов отношения;
- арифметическими операторами сравнения <, =, >,
£ ,
¹,
³;
- логическими операторами /\ (и), \/ (или) и ù (не). Тогда есть отношение с кортежами t, принадлежащими отношению R, и такими, что при подстановке i-го компонента кортежа t вместо любого вхождения номера i в формулу F для всех i она станет истинной.
Результат операции селекции формально определяется в виде
Операция селекции формирует из R новое отношение путем удаления из R кортежей, для которых формула F принимает значение истинности «ложь».
Эта операция позволяет отобрать в отношении кортежи (и соответствующие этим кортежам объекты еi, входящие в набор объектов Е), обладающие свойствами, которые задаются формулой F.
3. Объединение. Объединением отношений R и S, имеющих одинаковую арность, называется множество кортежей, каждое из которых принадлежит либо R, либо S, либо им обоим:
4. Разность. Разностью отношений R и S, имеющих одну и ту же арность, называется множество кортежей, принадлежащих R, но не принадлежащих S:
5. Декартово произведение. Декартовым произведением отношений R и S с арностями и соответственно называется множество кортежей длины , у которых первые компонентов образуются из кортежей, принадлежащих R, a последние компонентов — из кортежей, принадлежащих S. Формально операция декартова произведения определяется в виде:
,
где через обозначена конкатенация r и s (слияние строк).
Отметим, что в операциях проекции, селекции и декартова произведения имена атрибутов соответственно сохраняются. Помимо рассмотренных основных операций, в реляционной алгебре используется ряд дополнительных операций, которые могут быть выражены через основные операции. К ним относятся пересечение, частное, соединение, естественное соединение и другие.
18. Дополнительные операции реляционной алгебры (пересечение,
q-соединение).
6. Пересечение. Пересечением отношений называется разность отношений , представляющая множество кортежей, содержащихся одновременно и в R и в S. Ясно, что R и S должны иметь один и тот же состав атрибутов и одинаковую арность.
7. Деление. Пусть R и S - отношения арности n и m соответственно, n>m, а отношение S содержит ненулевое число кортежей. Частным от деления R на S называется множество кортежей t длины таких, что для каждого из кортежей s, принадлежащих S, кортеж принадлежит R. Частное от деления R на S обозначается R S, запись означает конкатенацию, т. е. слияние кортежей t и s. Таким образом, частное от деления R на S определяется формально в виде .
8.
Q -соединение. Пусть R и S — отношения, где R имеет арность п, и пусть Q-арифметический оператор сравнения (=, < и т. д.). Q-соединением R и S по столбцам i и j, записываемым в виде , называется операция селекции над декартовым произведением RS по столбцам i и n+
j, т. е. .
Таким образом, Q-соединение R и S представляет множество таких кортежей в декартовом произведении RS, что i-й компонент R находится в отношении Q с j-ым компонентом S. Если Q является оператором =, то в этом частном случае Q-соединение называется эквисоединением.
Операция соединения позволяет из двух наборов объектов E1, E2 формировать пары объектов, удовлетворяющие некоторым условиям.
19. Дополнительные операции реляционной алгебры (
q-соединение и естественное соединение).
8.
Q -соединение. Пусть R и S — отношения, где R имеет арность п, и пусть Q-арифметический оператор сравнения (=, < и т. д.). Q-соединением R и S по столбцам i и j, записываемым в виде , называется операция селекции над декартовым произведением RS по столбцам i и n+
j, т. е. .
Таким образом, Q-соединение R и S представляет множество таких кортежей в декартовом произведении RS, что i-й компонент R находится в отношении Q с j-ым компонентом S. Если Q является оператором =, то в этом частном случае Q-соединение называется эквисоединением.
Операция соединения позволяет из двух наборов объектов E1, E2 формировать пары объектов, удовлетворяющие некоторым условиям.
9. Естественное соединение. Операция естественного соединения применима к паре отношений R и S, когда в R и S есть одинаковые атрибуты. В результате этой операции, обозначаемой , формируется новое отношение, представляющее проекцию от селекции RxS. Формально эта операция записывается в виде
,
где i1, i2 ,…..im — упорядоченный список всех компонентов за исключением компонентов S.
A1,... ,
S.
Ak, . где S.
A1,... ,
S.
Ak, — имена столбцов в , соответствующих столбцам в S, совпадающим, в свою очередь, со столбцами в R.
В соответствии с (8.10) операция естественного соединения - выполняется в следующей последовательности:
- вычисляется ;
- из выбираются те кортежи, у которых совпадают значения у всех атрибутов, одинаковых для R и S;
- находится проекция полученного в п. 2 множества кортежей на все атрибуты за исключением атрибутов типа - S.
A, где S.
A — атрибут в , соответствующий атрибуту А в S, где, в свою очередь, А — атрибут, одинаковый в R и S.
20. Объяснить сущность концептуального проектирования. Основные результаты концептуального проектирования.
Концептуальное проектирование заключается в определении числа и структуры таблицы, определении схем и связей отношений и распределении отношений по уровням в зависимости от ввода и удаления данных, разработки алгоритмов целостности и согласованности БД, разработки алгоритма работы с БД.
Для формирования структуры БД используются следующие методы:
1). Создание универсального отношения (заключается в сведении всех атрибутов в одну таблицу; используется при боьлшом количестве атрибутов).
2). Метод декомпозиции без потерь: на основе исходных отношений по определенному правилу определяются отношения БД, для которых отсутствуют проблемы вставки, модификации и удаления данных.
3). Метод сущность-связь: состоит с том, что на основе определенных правил осуществляется преобразование ER-диаграммы в схемы БД.
4). Метод синтеза: при реализации его осуществляется формирование таблицы БД на основе заданных атрибутов и функциональных зависимостях.
При реализации данных методов возможно дублирование данных. Различают простое дублирование и избыточное.
Пример избыточного дублирования:
ФИО | Номер комнаты | Телефон |
Петров | 1 | 23-35 |
Сидоров | 10 | 23-40 |
Иванов | 1 | 23-35 |
Избыточное дублирование данных создает проблемы при обработке кортежей отношений. Такие проблемы называют аномалиями.
Аномалиями будем называть такую ситуацию в таблицах БД, которая приводит к противоречиям в БД, либо существенно усложняет обработку данных.
Выделяют три вида аномалий:
1). Аномалии модификации проявляются в том, что изменение значения одного данного может повлечь за собой просмотр всей таблицы и соответствующее, изменение некоторых других записей таблицы.
2). Аномалии удаления состоят в том, что при удалении какого-либо данного из таблицы может пропасть и другая информация, которая не связана напрямую с удаляемым данным.
3). Аномалии добавления возникают в случаях, когда информацию в таблицу нельзя поместить до тех пор, пока она неполная, либо вставка новой записи требует дополнительного просмотра таблицы.
21. Основные проблемы проектирования БД. Объясните сущность нормализации отношений.
Проблемы при проектировании БД. Различают простое дублирование и избыточное.
Пример избыточного дублирования:
ФИО | Номер комнаты | Телефон |
Петров | 1 | 23-35 |
Сидоров | 10 | 23-40 |
Иванов | 1 | 23-35 |
Избыточное дублирование данных создает проблемы при обработке кортежей отношений. Такие проблемы называют аномалиями.
Аномалиями будем называть такую ситуацию в таблицах БД, которая приводит к противоречиям в БД, либо существенно усложняет обработку данных.
Выделяют три вида аномалий:
1). Аномалии модификации проявляются в том, что изменение значения одного данного может повлечь за собой просмотр всей таблицы и соответствующее, изменение некоторых других записей таблицы.
2). Аномалии удаления состоят в том, что при удалении какого-либо данного из таблицы может пропасть и другая информация, которая не связана напрямую с удаляемым данным.
3). Аномалии добавления возникают в случаях, когда информацию в таблицу нельзя поместить до тех пор, пока она неполная, либо вставка новой записи требует дополнительного просмотра таблицы.
Для устранения рассмотренных аномалий осуществляется нормализация отношений, т.е. их декомпозиция на более мелкие. Для определения качества нормализации Э.Коддом предложен аппарат нормальных форм.
Рассмотрим нормальные формы отношений.
1. Отношение находится в первой нормальной форме тогда и только тогда, когда на пересечении каждого столбца и каждой строки находятся только элементарные значения атрибутов.
Первая нормальная форма является точкой отсчета, если отношения удовлетворяют требованиям реляционной модели, то она находится в первой нормальной форме.
Пример:
а). ненормализованная таблица:
ФИО | Вид спорта | |
Гиря | Бег | |
Петров | 1 | 5 |
Сидоров | 2 | 4 |
б). нормализованная таблица:
ФИО | Вид спорта: гиря | Вид спорта: бег |
Петров | 1 | 5 |
Сидоров | 2 | 4 |
2. Отношение находится во второй нормальной форме тогда и только тогда, когда оно находится в первой нормальной форме и не содержит неполных функциональных зависимостей непривычных атрибутов от атрибутов первичного ключа
3. Отношение находится в третьей нормальной форме тогда и только тогда, когда оно находится во второй нормальной форме и не содержит транзитивных зависимостей.
4. Отношение находится в нормальной форме Бойса—Кодда, если оно находится в третьей нормальной форме и отсутствуют зависимости ключевых атрибутов от не ключевых.
22. Функциональные зависимости.
Функциональные зависимости бывают:
1). Частичная зависимость (неполная) – это зависимость ключевого атрибута от части составного ключа (детерминанты).
2). Полная ФЗ: зависимость не ключевых атрибутов от всего ключа.
3). Транзитивная ФЗ: если существует фундаментальная зависимость вида: А определяет В, В определяет С, то говорят что существует транзитивная ФЗ А определяет С.
23. Нормальные формы отношений.
Для определения качества нормализации Э.Коддом предложен аппарат нормальных форм. Рассмотрим нормальные формы отношений.
1. Отношение находится в первой нормальной форме тогда и только тогда, когда на пересечении каждого столбца и каждой строки находятся только элементарные значения атрибутов.
Первая нормальная форма является точкой отсчета, если отношения удовлетворяют требованиям реляционной модели, то она находится в первой нормальной форме.
Пример:
а). ненормализованная таблица:
ФИО | Вид спорта | |
Гиря | Бег | |
Петров | 1 | 5 |
Сидоров | 2 | 4 |
б). нормализованная таблица:
ФИО | Вид спорта: гиря | Вид спорта: бег |
Петров | 1 | 5 |
Сидоров | 2 | 4 |
2. Отношение находится во второй нормальной форме тогда и только тогда, когда оно находится в первой нормальной форме и не содержит неполных функциональных зависимостей непривычных атрибутов от атрибутов первичного ключа
3. Отношение находится в третьей нормальной форме тогда и только тогда, когда оно находится во второй нормальной форме и не содержит транзитивных зависимостей.
4. Отношение находится в нормальной форме Бойса—Кодда, если оно находится в третьей нормальной форме и отсутствуют зависимости ключевых атрибутов от не ключевых.
5. В отношении R (А, В, С) существует многозначная зависимость (
multi
valid
dependence,
MVD) R.A -» R.B в том и только в том случае, если множество значений В, соответствующее паре значений А и С, зависит только от А и не зависит от С.
6. Отношение R находится в четвертой нормальной форме (4NF) в том и только в том случае, если в случае существования многозначной зависимости А -» В все остальные атрибуты R функционально зависят от А.
7. Отношение R находится в пятой нормальной форме (нормальной форме проекции-соединения — PJ/NF) в том и только в том случае, когда любая зависимость соединения в R следует из существования некоторого возможного ключа в R.
24. Объясните сущность проектирования концептуальной схемы БД методом “декомпозиции без потерь”.
Суть данного метода заключается в следующем: пусть дано отношение , которое не находится в БКН. Декомпозиция выполняется в два этапа:
1). Определяются ФЗ, которые мешают нахождению отношения в БКН.
Пусть .
2). Исходное отношение разбивается на два отношения следующим образом:
,
.
Далее, полученные отношения проверяем на предмет их принадлежности к БКН. Если нет, то возвращаемся к шагу 1.
Декомпозиция называется без потерь потому, что исходное отношение может быть получено из полученных отношений путем применения к ним операции естественного соединения.
Пример. Пусть дано отношение:
25. Объясните сущность проектирования концептуальной схемы БД методом “сущность-связь”.
Данный метод позволяет получить исходные отношения, т.е. отношения, которые не находятся в БКН. По отношению к ним используется метод декомпозиции без потерь. Исходными данными для данного метода является модель «сущность-связь».
Преобразование ER-диаграммы в таблицы осуществляется по правилам. Правила формирования отношения основываются на учете следующего:
- степени (вида связи): 1:1; 1:М; М:1; М:М.
- класса принадлежностей экземпляра сущностей.
Класс принадлежности экземпляра сущности называется обязательным, если все экземпляры охвачены данной связью.
Пример:
Обычным отношением, описывающим сущность, или просто обычным отношением сущности будем называть отношение, в которое входят вссе атрибуты обычного отношения сущности, а также ключ связанной сущности.
Расширенным отношением сущности будем называть отношение, в которое входят все атрибуты обычного отношения сущности, а также ключ связанной сущности.
Обычным отношением связи будем называть отношение, в которое входят все атрибуты данной связи и ключ связи и только они одни.
Расширенным отношением связи. будем называть отношение, в которое входят все атрибуты связи и все атрибуты связанных сущностей.
Правила.
1. Если степень бинарных связей 1:1 и класс принадлежности обеих сущностей обязательный, то формируется одно отношение.
2. Если степень связей 1:1 и класс принадлежности одной сущности обязательный, а второй не обязательный, то под каждую из сущностей формируется по отношению с первичными ключами, являющимися ключами соответствующих сущностей.
3. Если степень связей 1:1 и класс принадлежности обеих сущностей не обязательный, то необходимо использовать три отношения, два отношения соответствуют связываемым сущностям, ключи которых являются первичными в этих сущностях, третье отношение является связным между первыми двумя.
4. Если степень связей 1:М (М:1) и класс принадлежности М-связных сущностей является обязательным, то достаточно формирование двух отношений. При этом первичными ключами этих отношений являются ключи их сущностей.
5. Если степень связей 1:М (М:1) и класс принадлежности М-связных сущностей является не обязательным, то необходимо формирование трех отношений. Два отношения соответствуют связываемым сущностям, ключи которых являются первичными в этих отношениях, третье отношение является связным между первыми двумя.
6. Если степень связей М:М, то независимо от класса принадлежности сущности формируется три отношения: два отношения соответствуют связываемым сущностям и их ключи являются первичными ключами этих отношений, третье отношение является связным между первым и вторым.
26. Назначение и архитектура СУБД
ACCESS.
Microsoft Access является 32-разрядной системой управления базами данных нового поколения работающих в ОС Windows. Access входит в состав интегрированного пакета Microsoft Office различных версий наряду с текстовым процессором Word, табличным процессором Excel, редактором презентаций PowerPoint. Такая интеграция программных продуктов позволяет на на современном уровне организовать работу любого органа управления, в том числе и военного назначения.
Для работы Microsoft Access необходима следующая конфигурация ПЭВМ: класс машины Pentium (для последних версий) и не менее 8 Мбайт оперативной памяти.
Данная СУБД поддерживает реляционную модель БД и ориентирована на работу с объектами, к которым относятся таблицы БД, формы, запросы, макросы, модули. Таким образом, архитектуру СУБД Microsoft Access можно представить следующим образом.
Таблица – объект, который определяется и используется для хранения данных. Каждая таблица включает информацию об однородных объектах определенного типа, например, о курсантах. Таблица содержит поля (столбцы), в которых хранятся различные данные, и записи (строки). В записи собрана вся информация о конкретном объекте, например, о курсанте). Для каждой таблицы можно определить одно или несколько полей, которые имеют уникальное значение для каждой записи и один или несколько индексов с целью увеличения скорости доступа к данным.
Запрос – объект, который позволяет пользователю получить нужные данные из одной или нескольких таблиц. Для создания запросов используется язык QBE (запрос по образцу) или инструкции SQL. Можно создать запросы на выбор, обновление, удаление или добавление данных и создания новых таблиц.
Форма – объект, предназначенный в основном для ввода, просмотра и корректировки взаимосвязанных данных, отображения их на экране или управления работой приложения.
Отчет – объект, предназначенный для создания документа, который впоследствии может быть распечатан или включен в документ другого приложения.
Макрос – объект, представляющий собой структурированное описание одного или нескольких действий, которые должен выполнить СУБД в ответ на определенное событие.
Макросу соответствует макрокоманда, которая реализует некоторое элементарное действие над данными в базе данных.
С помощью макрокоманд можно запрограммировать достаточно сложное приложение по обработке данных в соответствии с функциональными задачами конкретного пользователя.
Модуль – объект, содержащий программный модуль. С его помощью опытный пользователь может реализовать какие-либо специфические функции.
Разработка БД в СУБД Access заключается в разработке данных объектов. Осуществим разработку БД для учет успеваемости и анкетных данных курсантов
27. Этапы проектирования БД в СУБД
ACCESS.
Процесс создания БД, состоящего из трех отношений в среде Access включает следующие этапы:
1. Создание файла БД. {Файл\создать\новая БД\ок}. Access хранит информацию о всех объектах БД в одном файле. Поэтому в среде Access необходимо создать файл с уникальным именем и расширением MDB.
2. Создание таблиц базы данных. {Вкл.Таблицы\вкл. Создать\Конструктор\ОК}.
При создании таблицы базы данных необходимо описать ее структуру, а затем произвести ее заполнение. Описание структуры таблицы осуществляется в режиме “Конструктор”. При этом определяются: имена полей таблицы (столбцы); тип данных; общие свойства поля; поля, входящие в состав ключа. После создания таблицы ее можно просмотреть в режиме “Таблица”.
3. Определение связей. {Сервис\Схема данных}. Для определения связей между таблицами необходимо открыть схему данных, которая поначалу будет пустой. В схему данных необходимо добавить все созданные связанные таблицы. Таблицы должны отвечать всем требования нормализации. В соответствии с концептуальной моделью БД необходимо определить связи между таблицами с указанием типа связей (1:1, 1:М).
Тип связей Access определяет автоматически руководствуясь следующим правилом.
Если поле, по которому нужно установить связь, является уникальным ключом, как в главной таблице, так и подчиненной, Access устанавливает связь 1:1. Если поле связи является уникальным ключом в главной таблице, а в подчиненной таблице является не ключевым или входит в составной ключ, Access устанавливает связь 1:М от главной таблицы к подчиненной.
4. Создание форм. {Вкл. Формы\вкл. Создать\Выбрать способ создания\ОК}.
Для создания форм имеются заготовки, которые реализуются с помощью мастера форм. Можно также создать форму по своему вкусу. Форме, как объекту, присваивается имя при сохранении.
Если форма включает данные из нескольких таблиц, то выборка полей в форму осуществляется последовательным выбором соответствующих таблиц. После создания формы и ее сохранения ее можно отредактировать. После редактирования форму необходимо сохранить.
5. Формирование запросов к базе данных. {Вкл. Запросы\Конструктор\ОК}.
Для получения информации из БД используются запросы. Запросы представляют широкие возможности для выбора, сортировки и проведения вычислений с данными. Причем, эти данные могут извлекаться как из одной таблицы, так и из нескольких одновременно.
Могут быть сформированы запросы-выборки, которые представляют пользователю данные, отобранные по каким-либо критериям. Запрос может быть одноразовым, либо использоваться неоднократно.
Результатом формирования запроса является таблица, столбцами которой являются поля из нескольких таблиц по усмотрению пользователя. Для отбора записей устанавливаются признаки. Для этого в нижней панели конструктора выбрать условия отбора и отметить поля для включения в результирующую таблицу, а также порядок сортировки записей.
Условия отбора задаются в соответствующих полях. В одной строке условия соединяются автоматически логической операцией AND. Условия отбора, помещенные в разных строках, соединяются логическим OR. После формирования запроса его необходимо сохранить с указанием имени запроса.
6. Формирование отчетов. {Вкл. Отчеты\вкл.Создать\Автоотчет в столбец\Ок}.
Отчеты можно использовать для того, чтобы выбрать данные из нескольких таблиц, произвести над ними вычисления, подвести итоги и вывести их на экран или печать. Главная функция отчета – представление данных в виде документа для печати. Для создания отчетов, так же как и других объектов, имеется мастер отчетов. При необходимости можно самому сконструировать отчет.
В основу содержания отчета берется, как правило, результирующая таблица запроса.
При конструировании макета отчета определяются:
- заголовок (печатается в начале отчета);
- верхний колонтитул (выводится в верхней части каждой страницы);
- область данных (основная часть, содержащая выбранные сведения по отображаемым записям);
- нижний колонтитул (выводится в нижней части страницы);
- примечание (выводится в конце отчета).
Отчет необходимо сохранить под своим именем.
28. Язык запроса
QBE. Использование функций
BETWEEN,
LIKE,
IN в языке
QBE.
QBE (Query by example) — способ создания запросов к БД, с использованием образцов в виде текстовой строки, названия документа или списка документов. Система QBE преобразует пользовательский ввод в формальный запрос к базе данных, что позволяет пользователю делать сложные запросы без необходимости изучать более сложные языки запросов таких как SQL. Этот метод отбора данных впервые предложен компанией IBM в 1970 г.
Преимуществом поиска QBE является то, что для формирования запроса не требуется изучать язык запросов. Когда вы инициируете поиск, на экран выводится окно, в котором указаны все поля данных, встречающиеся в каждой записи данных; введите информацию, которая ограничивает поиск только указанными критериями: те поля, которые не будут заполнены, могут соответствовать чему угодно.
BETWEEN - позволяет задать диапазон значений, например: Between 50 And 100 означает - > = 50 And < = 100 ;
IN - позволяет задать список значений для сравнения, например: IN (“А”, “В”, “С”) означает - “А”OR “В” OR “С”.
LIKE - используется при поиске образцов в текстовых полях. В образец поиска, кроме символов * и ? можно включать следующие символы:
#, обозначающий, что в данной позиции должна быть цифра;
[ ], обозначающий допустимый диапазон символов для данной позиции ([0-9] - наличие любой цифры от 0 до 9, [A - N] - наличие любой буквы от A до N );
! , обозначающий исключение [ ! 0 -9 ] - наличие любого символа, кроме цифр от 0 до 9 ).
Выражение LIKE “?[a-z]r[0-9]*” проверяет наличие произвольного символа в первой позиции, буквы от a до z во второй, буквы r в третьей, любого символа от 0 до 9 в четвертой, произвольного числа символов в конце строки.
29. Язык запросов
SQL. Оператор языка
SQL для создания таблицы.
Стандарт ISO не определяет, как должна создаваться база данных, и каждая СУБД использует в этом вопросе свой подход. В соответствии со стандартом компоненты базы данных существуют в некоторой среде, которая включает ряд каталогов, а те, в свою очередь, — наборы схем.
В указанной иерархии в стандарте предусмотрены только средства регламентации механизма создания и удаления схем — самой нижней ступени данной иерархии. Механизмы создания всего остального закладываются в саму СУБД. Оператор создания схемы БД определяется следующим образом:
CREATE SCHEMA [Имя_схемы | AUTHORIZATION Имя_пользователя]
Следовательно, если пользователю Иванову требуется создать схему факультет, то данный оператор, осуществляющий подобные действия, будет выглядеть следующим образом:
CREATE SCHEMA ФАКУЛЬТЕТ AUTHORIZATION Иванов
Для удаления раннее созданной схемы определен следующий оператор:
DROP SCHEMA Имя_схемы [RESTRICT | CASCADE]
По умолчанию принимается установка режима restrict, при которой удаление выполняется только в том случае, если схема пуста. В противном случае данный оператор не выполняется. Использование альтернативного режима cascade должно производиться с большой осторожностью, так как реализация его приводит к автоматическому удалению всех связанных с удаляемой схемой объектов.
Хотя рассмотренные два оператора определены в стандарте, на практике они реализованы в очень редких случаях. Вместо операторов create schema и drop schema успешно используются не нуждающиеся в дополнительных пояснениях операторы:
CREATE DATABASE Имя_БД
DROP DATABASE Имя_ БД
Однако конкретные реализации данных операторов могут содержать дополнительную информацию. После выполнения второго оператора уничтожается вся база данных вместе с содержащимися в ней данными.
30. Операторы языка
SQL изменения состава полей таблицы и создания (удаления) индекса.
Главными компонентами базы данных являются ее таблицы, представляющие отношения проекта БД. Создание таблицы осуществляется посредством оператора create table. Его упрощенная версия выглядит следующим образом:
CREATE TABLE Имя_таблицы (Имя_столбца Тип_даных [NULL | NOT NULL] [,...])
Оператор такого вида приведет к созданию таблицы с именем <Имя_таблицы>, которая будет содержать столько столбцов, сколько их задано в операторе. При определении столбца необходимо задать его имя, тип данных, к которому будут относиться значения этого столбца, а также определить, можно ли в качестве значения рассматриваемого столбца использовать ключевое слово null. Ключевым словом null помечается такой столбец, который может содержать неопределенные значения.
Определения столбцов первичных ключей отношений всегда должны содержать ключевые слова not null. Любая попытка ввести в такой столбец NULL-значение будет отвергнута, и, следовательно, будет заблокирована возможность нарушения ссылочной целостности данных
Полное описание оператора create table должно включать средства поддержки целостности данных. Такие средства представляют собой спецификаторы, позволяющие задать ограничения для предотвращения попыток нарушить согласованность данных. Базовое определение оператора create table имеет следующий формат:
CREATE TABLE имя_таблицы
({ имя_столбца тип_даных [NOT NULL] [UNIQUE]
[DEFAULT значение по умолчанию] [CHECK (условие проверки на допустимость)] [,...]}
[PRIMARY KEY (список столбцов),]
{[UNIQUE (список столбцов),] [,...]}
{[FORING KEY (список столбцов внешних ключей)
REFERENCES имя родительской таблицы [(список столбцов ключей-кандидатов)],
[MATCH {PARTIAL | FULL}
[ON UPDATE правило ссылочной целостности]
[ON DELETE правило ссылочной целостности]] [,...]}
{[CHECK (условие проверки на допустимость)] [,...]})
Спецификатор check предназначен для задания ограничений для доменов атрибутов. Так, например, для столбца Оценка можно задать следующее определение: Оценка SMALLINT CHECK(Оценка >= 2 AND Оценка <= 5);
Присутствие в определении таблицы строки со спецификатором primary Key призвано обеспечить категорную целостность данных. Обеспечение категорной целостности состоит в том, что первичный ключ таблицы должен иметь уникальное непустое значение в каждой ее строке.
Для связывания строк родительской и дочерней таблиц используются внешние ключи. Каждая строка дочерней таблицы, содержащая этот ключ, связывается со строкой родительской таблицы, у которой потенциальный ключ имеет такое же значение, что внешний ключ у дочерней таблицы. Ссылочная целостность обеспечивается тогда, когда поле внешнего ключа дочерней таблицы имеет такое значение, которое обязательно присутствует в качестве значения соответствующего потенциального ключа в родительской таблице.
Способ обработки значений внешнего ключа может быть уточнен определителем match. Если для таблицы указывается определитель match full, to предполагается, что все компоненты внешнего ключа имеют либо некоторое конкретное значение, либо значение null.
При использовании определителя match partial предполагается, что все компоненты внешнего ключа либо имеют значение null, либо в родительской таблице должна существовать по крайней мере одна строка, удовлетворяющая всем непустым значениям внешних ключей.
Обновление таблиц. В уже созданную таблицу изменения могут быть внесены с помощью оператора alter table, который имеет следующий обобщенный формат:
ALTER TABLE имя_таблицы [ADD [COLUMN] имя столбца тип_даных [NOT NULL] [UNIQUE]
[DEFAULT значение по умолчанию] [CHECK (условие проверки на допустимость)]]
[DROP [COLUMN] ] имя_столбца [RISTRICT | CASCADE]] [ADD [CONSTRAINT [имя ограничения]] ограничение] [DROP CONSTRAINT имя ограничения [RISTRICT | CASCADE]] [ALTER [COLUMN] SET DEFAULT значение по умолчанию] [ALTER [COLUMN] DROP DEFAULT]
Ставшая ненужной таблица может быть удалена из базы данных оператором
DROP TABLE имя таблицы [RISTRICT | CASCADE].
Ключевые слова ristrict и cascade используются для определения условий удаления таблицы в том случае, если в базе данных присутствуют ее дочерние таблицы. Ключевое слово ristrict при наличии в базе данных зависимых от удаляемой таблицы объектов вызовет отмену удаления. Ключевое слово cascade в этой ситуации вызовет автоматическое удаление всех объектов базы данных, существование которых зависит от данной таблицы.
Для увеличения скорости выборки в БД обычно используют специальную структуру, которая называется индексом. Стандарт языка SQL не предусматривает использование индексов. Но тем не менее разработчики СУБД охотно идут на включение средств поддержки индексов в систему, несмотря на то, что наличие индекса увеличивает нагрузку на систему из-за необходимости обновлять его при каждом изменении данных таблицы, поскольку существенное повышение скорости запросов окупает данные затраты.
Операторы создания и удаления индекса имеют следующий формат.
Создать индекс:
CREATE [UNIQUE] INDEX имя_индекса
ON имя_таблицы (столбец [ASC| DESC] [,...])
Удалить индекс:
DROP INDEX имя_индекса
Если в операторе create index используется квалификатор unique, то уникальность значений индекса автоматически поддерживается системой. Для каждого из ключевых столбцов можно указать порядок следования значений: по возрастанию — asc (используется по умолчанию) и по убыванию — desc.
31. Операторы языка
SQL для создания и удаления представлений.
Представление – это виртуальная таблица, которая создана на базе реально существующих таблиц БД, с данной таблицей можно работать как с реальной.
Для создания и удаления представлений существуют команды, определенные DDL (Data Definition Language - подмножество SQL, см. глоссарий), которые мы сейчас рассмотрим.
Чтобы создать представление в InterBase, необходимо использовать предложение следующего синтаксиса:
CREATE VIEW viewname [ (view_column [, view_column...] ) ]
AS <SELECT> [WITH CHECK OPTION];
Здесь viewname - имя представления, которое должно быть уникальным в пределах базы данных, далее идет группа не всегда обязательных наименований полей, входящих в представление: [(view_column [, view_column...])]. Обязательно необходимо определить предложение <SELECT>, которое выбирает данные, включаемые в представление.
Чтобы изменить какое-либо представление, придется его пересоздать, т.е. удалить и создать заново. При удалении представления необходимо также удалить все зависимые от него объекты - триггеры, хранимые процедуры и другие представления. В этом заключается одно из главных неудобств работы с представлениями - необходимость пересоздавать дерево использующих представление объектов (существуют утилиты, которые позволяют сделать это более "безболезненно", например IBAUerView). Чтобы удалить представление, необходимо воспользоваться следующей командой DDL: DROP VIEW viewname;
32. Организация запросов к БД на языке
SQL. Оператор
SELECT.
Оператор SELECT предназначен для выборки и отображения данных из одной или нескольких таблиц БД.
Синтаксис оператора
select:
SELECT [DISTINCT| ALL] {*| [<список полей>]} FROM <список таблиц>
[WHERE <предикат-условие выборки или соединения>]
[GROUP BY <список полей результата>]
[HAVING <предикат-условие для группы>]
[ORDER BY <список полей, по которым требуется упорядочить вывод>]
В указанном операторе обязательными являются фразы select и from. Все остальные части оператора могут быть использованы по усмотрению программиста.
1. Фраза
select:
- наличие ключевого слова all (по умолчанию) означает, что в результирующую таблицу включаются все строки, удовлетворяющие условиям запроса, что может привести к появлению в результирующей таблице одинаковых строк;
- ключевое слово distinct предназначено для приведения таблицы в соответствие с принципами теории отношений, где предполагается отсутствие дубликатов строк;
- символ "*" определяет очень часто встречаемую ситуацию, когда в результирующий набор включаются все столбцы из исходной таблицы запроса. Таким образом, программист может выбрать один из возможных вариантов формирования результирующих таблиц: включение только указанных столбцов или включение всех столбцов таблицы.
2. Во фразе from задается перечень исходных таблиц запроса.
3. Во фразе where определяются условия отбора строк результата или условия соединения строк исходных таблиц, подобно операции условного соединения в реляционной алгебре. exist и not exist, используемые во встроенных подзапросах.
4. Во фразе group
by задается список полей группировки.
5. Во фразе having задаются предикаты-условия, накладываемые на каждую группу.
6. Во фразе order
by задается список полей упорядочения результата, то есть список полей, который определяет порядок сортировки в результирующей таблице.
Рассмотрим особенности оператора SELECT на примере:
Kafedra
Kod_kaf
Name_kaf
Nomer_TLF
Nomer_audit
Col_sotr
Zav_kaf
1). Вывести сведения о всех кафедрах университета.
SELECT * FROM Kafedra
2). Вывести на экран все названия кафедр с указанием их номера телефона.
SELEСT Name_kaf, Nomer_TLF
FROM Kafedra
Для упорядочивания данных можно использовать оператор ORDER BY. Сортировка по возрастанию – ASC; по убыванию –DESC.
Пример: вывод наименования кафедр по возрастанию и их телефона.
SELECT Name_kaf, Nomer_TLF
FROM Kafedra
ORDER BY Name_kaf ASC
33. Простые и сложные критерии отбора записей в операторе
SELECT.
Задание условий отбора осуществляется с помощью фразы where. В предложение where можно включить одно или несколько условий отбора строк. В качестве условий отбора могут быть использованы следующие предикаты:
- сравнения " = , <>, >, <, >=, <=" - для сравнения результатов вычисления двух выражений; более сложные выражения строятся с помощью логических операторов AND, OR, NOT; значения выражений вычисляются в порядке, который определяется приоритетом используемых операторов и наличием скобок в выражении;
-
between
a
and в — предикат истинен, когда вычисленное значение выражения попадает в заданный диапазон (предикат not between a and в истинен тогда, когда сравниваемое значение не попадает в заданный интервал);
-
in — предикат истинен тогда, когда сравниваемое значение входит в множество заданных значений; при этом множество значений может быть задано простым перечислением или встроенным подзапросом (предикат not in истинен тогда, когда сравниваемое значение не входит в заданное множество);
-
like и
not
like — предикаты, смысл которых противоположен, требуют задания шаблона, с которым сравнивается заданное значение; предикат like истинен тогда, когда сравниваемое значение соответствует шаблону, и ложен в противном случае;
-
is
null — предикат, применяющийся для выявления равенства значения некоторого атрибута неопределенному значению:
- <имя атрибута>
is
null — принимает значение true, если в данной строке указанный атрибут имеет неопределенное значение и значение false, в противном случае: - <имя атрибута> IS NOT NULL — все ПРОИСХОДИТ Наоборот.
Пример 1: составить запрос на вывод данных о кафедрах, у которых номер аудитории в диапазоне от 1 до 30.
SELEСT *
FROM Kafedra
WHERE Nomer_audit Between 1 and 30
Пример 2: вывести всю информацию о кафедрах с номером аудиторий от 1 до 30 и количеством сотрудников более 100.
SELEСT *
FROM Kafedra
WHERE (Nomer_audit Between 1 and 30) and (Col_sotr > 10)
34. Группировка и сортировка записей средствами языка
SQL.
В стандарте языка SQL определено несколько агрегатных функций:
- count — возвращает количество значений в указанном столбце;
- sum — возвращает сумму значений в указанном столбце;
- avg — возвращает усредненное значение в указанном столбце;
- min — возвращает минимальное значение в указанном столбце;
- мах — возвращает максимальное значение в указанном столбце.
В качестве операнда данных функций может использоваться наименование только одного столбца, и все они возвращают единственное значение. С функциями sum и avg могут использоваться только числовые поля. С функциями count, max и min могут использоваться как числовые, так и символьные поля. При вызове всех перечисленных выше функций, кроме функции count (*), осуществляется исключение всех пустых значений и только после этого операция применяется к оставшимся значениям столбца. Функция count (*) призвана осуществлять подсчет всех строк таблицы независимо от того, какие значения в них находятся.
Пример 1: подсчитать и вывести общее число кафедр.
SELEСT count (*) AScount //AScount – псевдоним, под которым будет выведен результат.
FROM Kafedra
Пример 2: определить среднее число сотрудников на кафедре.
SELEСT AVG (Col_sotr) ASsr
FROM Kafedra
Агрегатные функции нельзя использовать в предложении where, потому что предикаты оцениваются в терминах одиночной строки, а агрегатные функции — в терминах групп строк.
Выбираемые пользователем данные могут быть подвергнуты различного рода анализу и обобщению, и язык SQL имеет для этого свои средства. Только что рассмотренные агрегатные функции являются примером таких средств. В приведенных выше запросах агрегатные функции применялись ко всей таблице и выдавали сводные данные на основании обработки значений всего выделенного столбца. Такие результаты обычно размещаются в конце отчета и сжимаются в итоговую строку.
Однако часто встречаются ситуации, когда в отчет необходимо поместить и промежуточные результаты, опирающиеся на вычисления обобщенных групповых значений. Для применения агрегатных функций в подобных случаях предполагается предварительная операция группировки. Суть операции группировки состоит в том, что все множество строк таблицы разбивается на группы, в каждой из которых собираются строки, имеющие одинаковые значения атрибутов, которые заданы в списке группировки. Обработка такой информации реализуется путем применения агрегатных функций уже к каждой отдельной группе и выдаче полученных итогов.
В языке SQL для осуществления операции группировки в оператор select включается фраза group by. Запрос, в котором присутствует фраза group by, называется группирующим запросом, а столбцы, перечисленные в этой фразе, называются группирующими столбцами.
Пример 3: пусть дана БД НИР.
Для каждого специалиста определить сумму, выплаченную за работу по данной теме и количество сделанных выплат.
SELEСT ФИО, COUNT (Начисления) AScount
SUM (Начисления) ASsum
FROM НИР
GROUP BY ФИО
Результат:
Сортировка по возрастанию – ASC; по убыванию –DESC.
Пример: вывод наименования кафедр по возрастанию и их телефона.
SELECT Name_kaf, Nomer_TLF
FROM Kafedra
ORDER BY Name_kaf ASC
35. Операторы языка
SQL для операции соединения таблиц.
Стандарт языка позволяет в тело одного оператора select внедрять другой оператор select. В такой ситуации можно рассматривать внешний и внутренний (внедряемый) операторы запроса. Обычно внутренний запрос генерирует значение, которое проверяется в предикате внешнего запроса (в предложении where или having), определяющего, верно оно или нет. Если внутренний оператор запроса помещен в предложения where и having внешнего оператора select, to создается ситуация вложенных запросов (подзапросов).
Подзапросы могут быть нескольких видов:
- скалярный подзапрос, возвращающий единственное значение;
- строковый подзапрос, возвращающий несколько значений в виде одной строки;
- табличный подзапрос, возвращающий данные в виде таблицы.
Подзапрос может указываться непосредственно после операторов сравнения (=, <, >, <=, >=), его текст должен быть заключен в скобки.
Пример 1. Разработать запрос который позволяет вывести сведения об участниках НИР, для которых начисления превысили среднее значение всех начислений.
SELECT *
FROM НИР
WHERE Начисления > (SELECT AVG (Начисления) FROM НИР)
Реализация вложенных запросов требует соблюдения определенных правил и ограничений.
1. В подзапросах не должна использоваться фраза order by.
2.Список в предложении select может включать только имена столбцов и составленные из них выражения.
3. По умолчанию имена столбцов в подзапросе относятся к таблице, указанной во фразе from.
4. Подзапрос, участвующий в операции, может быть только правым операндом.
В стандарте SQL2 операторы сравнения расширены до многократных сравнений с использованием ключевых слов any и all. Это расширение используется при сравнении значения определенного столбца со столбцом данных, возвращаемым вложенным запросом.
Ключевое слово any, поставленное в любом предикате сравнения, означает, что предикат будет истинен, если хотя бы для одного значения из подзапроса предикат сравнения истинен. Ключевое слово all требует, чтобы предикат сравнения был бы истинен при сравнении со всеми строками подзапроса.
Пример 2. Определить начисления, которые превышают начисления любого специалиста выполнившего этап 1.
SELECT ФИО, Этап, Начисления
FROM НИР
WHERE Начисления > ALL
(SELECT Начисления FROM НИР WHERE Этап = ‘Этап 1’)
Многотабличный запрос. Запросы, которые основываются на нескольких таблицах называют многотабличными.
При формировании запросов необходимо:
1). Во фразе SELECT обязательно указать имя_табл.имя_столбца.
2). Во фразе FROM указать таблицы, перечислив их через запятую или выполнить соответствующее их соединение.
Inner Join – внутреннее соединение;
Left Join – левостороннее соединение;
Right Join – правостороннее соединение.
3). Если во фразе FROM перечислены таблицы через запятую, то в предложении WHERE необходимо включить в условие элементы (WHERE (R.A = S.A). Если данной фразы не будет, то на выходе будет декартово произведение таблицы.
Пример 3. БД для вывода данных о студенте Петрове и его результатах по математике.
SELECT Студент . ФИО, Успеваемость . Предмет, Успеваемость . Оценка
FROM (Студент, Успеваемость)
WHERE (Студент . № зачетки = Успеваемость . № зачетки) and
(Студент . ФИО = ‘Петров’) and
(Успеваемость . Предмет = ‘Математика’)
36. Редактирование, вставка и удаление записей средствами языка
SQL.
Оператор вставки: INSERT.
Формат:
INSERT INTO имя_табл
[(<список_столбцов>)]
VALVES (<список_значений>)
Между списком имен столбцов и списком значений должно быть следующее соответствие:
1). Количество элементов в обоих списках должно быть одинакового.
2). Между положением элементов в списках должно быть строгое соответствие, которое определяется слева на право.
3). Типы данных соответствующих элементов списков должны быть одинаковые и принадлежности к одному и тому же домену.
Данный оператор позволяет ввести одну строку. Для ввода нескольких строк используется дополнительная таблица.
Формат:
INSERT INTO имя_табл
[(<список_столбцов>)]
<SELECT>
Оператор удаления данных: DELETE.
Позволяет удалить одну или несколько строк из таблицы в соответствии с условием.
DELETE FROM имя_табл
[WHERE (условие_отбора)]
Оператор обновления данных: UPDATE.
Формат:
UPDATE имя_табл
SET имя_столбца1 = значение […]
[WHERE условие_отбора]
Пример: замена фамилий.
UPDATE S1
SET ФИО = ‘Сидоров’
WHERE ФИО = ‘Петров’
37. Физическая организация данных. Доступ к БД.
Поиск и предоставление данных пользователю осуществляются с помощью нескольких программ доступа данных и включают в себя три основных этапа (рис. 1).
- Определяется искомая запись, для извлечения которой запрашивается диспетчер файлов.
- Диспетчер файлов определяет страницу, на которой находится искомая запись, и для извлечения этой страницы запрашивает диспетчер дисков.
- Диспетчер дисков определяет физическое положение искомой страницы на диске и посылает соответствующий вопрос на ввод-вывод данных.
Следует отметить, что организация хранения данных предполагает использование технологии кластеризации данных, представляющей собой важнейшее условие высокой производительности. Эта технология обеспечивает как молено более близкое физическое размещение на диске логически связанных между собой и часто используемых данных. Выделяют внутри файловую и меж файловую кластеризацию. В современных СУБД администратором БД в соответствии с требованиями, предъявляемыми к производительности СУБД, могут устанавливаться нескольких различных типов кластеризации данных из разных файлов.
38. Физическая организация данных. Страничная организация данных в СУБД.
Из-за того, что СУБД подчиняется несколько иным принципам и стратегиям управления внешней памятью, чем те, которые используют большинство пользовательских процессов или задач, СУБД вынуждены брать на себя непосредственное управление внешней памятью. При этом пространство внешней памяти полностью управляется СУБД, а операционная среда не получает непосредственного доступа к этому пространству.
При распределении дискового пространства рассматриваются две схемы структуризации: физическая, которая определяет хранимые данные (рис. 2).
Рис. 2. Классификация объектов физической модели данных
Страница данных — основная единица осуществления операций обмена (ввода-вывода).
Чанк — представляет собой часть диска, физическое пространство на диске, которое" ассоциировано одному процессу.
Экстент — это непрерывная область дисковой памяти.
Страницы
Blob предназначены для хранения слабоструктурированной информации, содержащей тексты большого объема, графическую информацию, двоичные коды.
Страницы данных. Основными единицами осуществления операций обмена являются страницы данных, управляемые диспетчером дисков. Все данные хранятся постранично. Таким образом, с точки зрения СУБД база данных выглядит как набор записей, которые просматриваются с помощью диспетчера файлов. С точки зрения диспетчера файлов база данных выглядит как набор страниц, которые могут просматриваться с помощью диспетчера дисков.
На одной странице хранятся однородные данные, например, только данные или только индексы. Все страницы данных имеют одинаковую структуру, представленную на рис. 3.
Заголовок страницы используется для задания посредством указателей логической последовательности страниц в данном наборе. Он также содержит информацию о физическом дисковом адресе страницы, которая логически следует за данной страницей.
Заголовки страниц и указатели на следующие страницы обрабатываются только диспетчером дисков и скрыты от диспетчера файлов. Для выполнения своих функций в распоряжении диспетчера дисков имеется каталог (страница 0), содержащий информацию обо всех имеющихся на данном диске наборах страниц вместе с указателями на первые страницы этих наборов.
С помощью диспетчера дисков удается решить и проблему сохранения логически связанных страниц в физически близко расположенных местах.
Слоты характеризуют размещение строк данных на странице. На одной странице хранится не более 255 строк.
Каждая запись обладает уникальным идентификатором, не изменяемым во все время ее существования, он имеет определенную длину и состоит из номера страницы, на которой данная запись находится, и байта смещения слота от конца страницы, который в свою очередь содержит байт смещения записи от начала страницы (рис. 5). Подобная схема идентификации записи сочетает в себе быстроту непосредственной адресации и гибкость косвенной адресации, тем самым обеспечивая требуемую эффективность поиска информации.
Обычно каждая запись хранится целиком в одной странице. Из этого следует, что максимальная длина записи любого отношения ограничена размерами страницы.
Рис. 5. Структура идентификационного номера записи
При переполнении страниц создается специальный вид страниц, называемых страницами переполнения. Строки, не уместившиеся на основной странице, связываются со своим продолжением на страницах переполнения с помощью ссылок-указателей "вперед", которые содержат номер страницы и номер слота на странице. При следующем переполнении страницы запись опять перемещается таким же образом на новую страницу переполнения.
39. Файловые структуры БД.
Файлы и файловые структуры, широко применяемые практически во всех СУБД для хранения информации во внешней памяти, можно классифицировать следующим образом (рис. 6).
Так как файл — это линейная последовательность записей, то всегда в файле можно определить текущую запись, предшествующую ей и следующую за ней.
Рис.6. Классификация файлов, используемых в системах баз данных
Для каждого файла в системе хранится следующая информация:
- имя файла;
- тип файла (например, расширение или другие характеристики);
- размер записи;
- количество занятых физических блоков;
- базовый начальный адрес;
- ссылка на сегмент расширения;
- способ доступа.
Известно, что в соответствии с методами управления доступом различают устройства внешней памяти произвольного и последовательного доступа.
На устройствах последовательного доступа могут быть организованы файлы только последовательного доступа.
Вообще файлы могут иметь постоянную или переменную длину записи. Файлы с переменной длиной записи всегда являются файлами последовательного доступа. Файлы с постоянной длиной записи, расположенные на устройствах прямого доступа, являются файлами прямого доступа.
Наиболее перспективным в системах баз данных считается использование файлов прямого доступа, поскольку посредством их обеспечивается наиболее быстрый доступ к произвольным записям. Для файлов с постоянной длиной записи физический адрес расположения нужной записи может быть вычислен по номеру записи. Но доступ по номеру записи в базах данных весьма неэффективен. Чаще всего в базах данных необходим поиск по ключу, для которого необходимо определить соответствующий ему номер записи, а следовательно, предпочтительнее связывать между собой не номер записи и физический адрес, а значение ключа записи и номер записи файла.
При организации файлов прямого доступа в некоторых очень редких случаях возможно построение линейной обеспечивающей однозначное соответствие функции, которая по значению ключа однозначно вычисляет номер записи файла. Однако чаще всего такой подход оказывается неприемлемым и тогда приходится искать выход в привлечении других технологий.
40. Физическая организация данных. Хеширование и индексирование.
Хешированием называется технология быстрого прямого доступа к хранимой записи на основе заданного значения некоторого поля, которое может быть даже не ключевым.
Технология хеширования предполагает следующие моменты:
1). Каждая запись БД размещается по адресу, вычисляемому путем применения к значению ключа некоторой функции свертки (хеш-функции), вырабатывающей значение меньшего размера. Свертка значения ключа применяется для того, чтобы избежать неэффективного использования дискового пространства.
2). Свертка значения ключа используется и для доступа к записи. Ее полученное значение берется в качестве адреса начала поиска, тем самым ограничивается время поиска (количество дополнительных шагов) для окончательного получения адреса.
В файле может быть только одна структура хеширования или, иначе говоря, одно хеш-поле.
Основным требованием к хеш-функции является равномерное распределение значения свертки, где одному значению хеш-функции может соответствовать одно значение ключа. Если для нескольких значений ключа получается одна и та же свертка, то образуются цепочки переполнения. Подобные ситуации называются коллизиями. Значения ключей, которые имеют одно и то же значение хеш-функции, называются синонимами.
Главным ограничением этого метода является фиксированный размер таблицы. Если таблица заполнена слишком сильно или переполнена, то возникает слишком много цепочек переполнения и утрачивается главное преимущество хеширования: доступ к записи почти всегда за одно обращение к таблице. Расширение таблицы требует ее полной переделки на основе новой хеш-функции (со значением свертки большего размера).
Индексирование. Хотя технология хеширования и может дать высокую эффективность, но для ее реализации не всегда удается найти соответствующую функцию, поэтому при организации доступа к данным широко используются индексные файлы.
Основное назначение индексов состоит в обеспечении эффективного прямого доступа к записи таблицы по ключу. Различают индексированный файл и индексный файл.
Индексированный файл — это основной файл, содержащий данные отношения, для которого создан индексный файл.
Индексный файл — это файл особого типа, в котором каждая запись состоит из двух значений: данных и указателя. Данные представляют поле, по которому производится индексирование, а указатель осуществляет связывание с соответствующим кортежем индексированного файла.
Если индексирование осуществляется по ключевому полю, то индекс называется первичным. Такой индекс к тому же обладает свойством уникальности, т. е. не содержит дубликатов ключа.
Основное преимущество использования индексов заключается в значительном ускорении процесса выборки данных, а основной недостаток — в замедлении процесса обновления данных (при каждом добавлении новой записи в индексированный файл потребуется также добавить новый индекс в индексный файл).
Индексы позволяют:
- осуществлять последовательный доступ к индексированному файлу в соответствии со значениями индексного поля для составления запросов на поиск наборов записей;
- осуществлять прямой доступ к отдельным записям индексированного файла на основе заданного значения индексного поля для составления запросов для заданных значений индекса;
- организовать запросы, не требующие обращения к индексированному файлу, а лишь приводящие к проверке наличия данного значения в индексном файле.
41. Виды угроз и основные задачи по защите данных.
Базы данных являются основным информационным ресурсом при реализации современных информационных технологий. В этой связи обеспечение безопасности БД приобретает решающее значение для безопасности организации в целом. Система защиты БД закладывается с начала ее разработки и выполнятся на всех этапах жизненного цикла. Создаваемая система защиты должна быть многоуровневой, адаптируемой к новым условиям функционирования, включать в себя рационально организованную совокупность имеющихся средств, методов и мероприятий. Защита должна быть от злоумышленников и от некомпетентных действий пользователей и обслуживающего персонала.
Для эффективного построения системы защиты необходимо:
- выделить уязвимые элементы информационной технологии;
- выявить угрозы для выделенных элементов;
- сформировать требования к системе защиты;
- выбрать методы и средства удовлетворения предъявленным требованиям.
Безопасность баз данных нарушается вследствие реализации одной или нескольких потенциальных угроз.
Под угрозой понимается возможность преднамеренного или случайного действия, которое может привести к нарушению безопасности хранимой и обрабатываемой в АС информации, в том числе и программ.
Виды угроз: использование прав доступа другого человека; несанкционированное изменение или копирование данных; изменение программ; подключение к кабельным сетям; ввод хакерами некорректных данных; шантаж; похищение данных, программ и оборудования; недостаточная обученность персонала; физическое повреждение оборудования; пожары (по причине коротких замыканий, ударов молний, поджогов), наводнения, диверсии; просмотр и раскрытие засекреченных данных; отказ систем защиты, вызвавший превышение допустимого уровня и т.п.
Можно выделить три основные задачи защиты БД:
- защита информации от хищения;
- защита информации от потери;
- защита от сбоев и отказов.
Защита информации от хищения подразумевает предотвращение физического хищения устройств и носителей хранения информации, несанкционированного получения информации (копирования, подсмотра, перехвата и т. д.) и несанкционированного распространения программ.
Защита информации от потери подразумевает поддержание целостности и корректности информации, что означает обеспечение физической, логической и семантической целостности информации. Информация в системе может быть потеряна как из-за несанкционированного доступа в систему пользователей, программ (в том числе и компьютерных вирусов), некорректных действий пользователей и их программ, обслуживающего персонала, так и в случаях сбоев и отказов в ВС.
Защита от сбоев и отказов аппаратно-программного обеспечения вычислительной системы (ВС) является одним из необходимых условий нормального функционирования системы. Если ВС является ненадежной, информация в ней часто искажается и иногда утрачивается. Основная нагрузка на обеспечение хорошей защиты от сбоев и отказов в системе ложится на системные аппаратно-программные компоненты: процессор, основную память, внешние запоминающие устройства, устройства ввода-вывода и другие устройства, а также программы операционной системы. При недостаточно надежных системных средствах защиту от сбоев следует предусматривать в прикладных программах. Под надежностью ПО понимается способность точно и своевременно выполнять возложенные на него функции. Степень надежности ПО определяется качеством и уровнем автоматизации процесса разработки, а также организацией его сопровождения.
42. Методы и средства защиты данных в вычислительных системах.
Программная защита БД реализуется с помощью различных программ: ОС, программ обслуживания, антивирусных пакетов, СУБД, специализированных программ защиты и готовых прикладных программ. Защита БД перечисленными программными комплексами может осуществляться на двух уровнях:
- внутренний уровень (средствами СУБД);
- внешний уровень (средства ОС, антивирусных пакетов и специальные программы администрирования вычислительного процесса).
В отношении рассмотренных угроз на внутреннем уровне обычно используются следующие программные методы обеспечения защиты БД:
Авторизация и аутентификация пользователей.
Авторизация – это предоставление прав (или привилегий), позволяющих их владельцу иметь законный доступ к системе или к ее объектам. Средства авторизации пользователей могут быть встроены непосредственно в программное обеспечение и управлять не только предоставленными пользователям правами доступа к системе или объектам, но и набором операций, которые пользователи могут выполнять с каждым доступным ему объектом.
Представление - это динамический результат одной или нескольких реляционных операций с базовыми отношениями с целью создания некоторого иного отношения. Представление является виртуальным отношением, которого реально в базе данных не существует, но которое создается по требованию отдельного пользователя в момент поступления этого требования.
Резервное копирование – это периодически выполняемая процедура получения копии базы данных и ее файла журнала (а также, возможно, программ) на носителе, сохраняемом отдельно от системы.
Поддержка целостности. Средства поддержки целостности данных также вносят определенный вклад в общую защищенность базы данных. К ним относятся:
- встроенные средства контроля значений данных в соответствии с типами;
- повышения достоверности вводимых данных;
- обеспечения целостности связей таблиц;
- организации совместного использования объектов БД в сети.
Встроенные средства контроля значений данных в соответствии с типами позволяют пользователю вводить данные только соответствующие типу поля. В противном случае (например, в числовое поле заносится текстовая информация), СУБД с помощью средств контроля значении блокирует ввод и сообщает пользователю об ошибке звуковым сигналом, изменением цвета вводимых символов или другим способом.
Шифрование – это кодирование данных с использованием специального алгоритма, в результате чего данные становятся недоступными для чтения любой программой, не имеющей ключа дешифрования.
Шифрование для защиты данных в СУБД используется с целью предупреждения возможной угрозы несанкционированного доступа с внешней стороны (по отношению к СУБД). Некоторые СУБД включают средства шифрования, предназначенные для использования в подобных целях. Подпрограммы таких СУБД обеспечивают санкционированный доступ к данным (после их декодирования), хотя это будет связано с некоторым снижением производительности, вызванным необходимостью перекодировки. Шифрование также может использоваться для защиты данных при их передаче по линиям связи.
43. Назначение и технология работы с
CASE средством
Erwin.
Современные CASE-средства (Computer Aided Software Engineering) предназначены для автоматизации методологий структурного системного анализа и проектирования ИС. Рынок программных средств насчитывает около трехсот различных CASE-средств, наиболее мощные из которых используются практически всеми ведущими западными фирмами и получают все большее распространение на российском рынке ПО. CASE-средства являются необходимыми инструментами мастерской разработчика современных РИС. Поэтому имеет смысл рассмотреть состав, структуру и функциональные возможности современных CASE. В основе развитого CASE-пакета лежит конкретная методология проектирования.
CASE-технологии предлагают новую, основанную на автоматизации, модель жизненного цикла автоматизированной системы, которая несколько отличается от моделей традиционной разработки (рис. 1). При традиционном подходе основные усилия затрачиваются на кодирование и тестирование (65 % всех трудозатрат). Кроме того, осуществляется вручную документирование проекта, составление проектных спецификаций, кодирование. CASE-технологии значительно упрощают, практически заменяют трудоемкий этап анализа за счет быстрого итеративного прототипирования разрабатываемой системы. С помощью генераторов форм, меню и других CASE-средств генерируется прототип будущей системы.
Прототипированию подлежат интерфейс пользователя и известные, наиболее простые, хорошо структурированные функции. Кроме того, CASE-средства обеспечивают автоматический контроль проекта, автоматическую кодогенерацию и автоматическую генерацию проектных документов. Основные усилия в случае выбора CASE-модели тратятся на анализ и проектирование, что составляет 80 % трудозатрат. Это дает огромные преимущества, так как ошибки, допущенные, например, на этапе кодирования, исправить значительно проще, чем ошибки, допущенные при анализе и/или проектировании системы, которые могут привести к краху всего проекта в целом.
Рис. 1. Простейшие модели жизненного цикла автоматизированной системы: а) традиционная модель; б) CASE-модель
Обычно к CASE-средствам относят любой программный продукт, автоматизирующий разработку и обладающий следующими характерными особенностями:
- наличие мощных графических средств для описания и документирования информационных систем, обеспечивающих удобный интерфейс с разработчиком;
- возможность интеграции отдельных компонент CASE-средств, обеспечивающей легкость передачи данных между различными компонентами и управляемость процессом разработки ИС;
- использование репозитория — компьютерного хранилища для всей проектной информации.
Интегрированное CASE-средство (комплекс средств), поддерживающее полный жизненный цикл программного обеспечения, содержит следующие компоненты:
- репозиторий, являющийся основой CASE-средства. Репозиторий обеспечивает хранение версий проекта и его отдельных проектных решений, синхронизацию поступления информации от различных разработчиков группы, контроль метаданных на полноту и непротиворечивость;
- графические средства ввода/вывода;
- графические средства анализа и проектирования, обеспечивающие создание и сопровождение иерархически связанных диаграмм (DFD, ERD, STD и др.), образующих модель проектируемой системы;
- редства разработки приложений, включая языки 4GL и генераторы кодов;
- средства конфигурационного управления;
- средства документирования;
- средства тестирования;
- средства управления проектом;
- средства реинжиниринга.
Семейство продуктов
ERWin предназначено для моделирования и создания схемы баз данных на основе ER-модели. В настоящее время ERWin является наиболее популярным пакетом, благодаря поддержке широкого спектра СУБД: SQL-серверов Oracle, Informix, Sybase SQL Server, MS SQL Server, Progress, DBR, SQLBase, Ingress и других и настольных СУБД: Clipper, dBase, FoxPro, MS Access, Paradox и др.
С помощью ERWin создается ER-модель, определяются атрибуты сущностей, характеристики связей, индексов и бизнес-правил. Пакет автоматически генерирует SQL-код для создания таблиц. индексов и других объектов базы данных. По заданным бизнес-правилам генерируются стандартные триггеры поддержки целостности. Для более сложных бизнес-правил можно создавать собственные триггеры, используя библиотеку шаблонов.
Для создания клиентской части приложения имеются специальные версии пакета, обеспечивающие интеграцию с такими инструментами, как Power Builder, Visual Basic, Delphi.
44. Назначение и технология работы с
CASE средством
BPrwin.
Современные CASE-средства (Computer Aided Software Engineering) предназначены для автоматизации методологий структурного системного анализа и проектирования ИС. Рынок программных средств насчитывает около трехсот различных CASE-средств, наиболее мощные из которых используются практически всеми ведущими западными фирмами и получают все большее распространение на российском рынке ПО. CASE-средства являются необходимыми инструментами мастерской разработчика современных РИС. Поэтому имеет смысл рассмотреть состав, структуру и функциональные возможности современных CASE. В основе развитого CASE-пакета лежит конкретная методология проектирования.
CASE-технологии предлагают новую, основанную на автоматизации, модель жизненного цикла автоматизированной системы, которая несколько отличается от моделей традиционной разработки (рис. 1). При традиционном подходе основные усилия затрачиваются на кодирование и тестирование (65 % всех трудозатрат). Кроме того, осуществляется вручную документирование проекта, составление проектных спецификаций, кодирование. CASE-технологии значительно упрощают, практически заменяют трудоемкий этап анализа за счет быстрого итеративного прототипирования разрабатываемой системы. С помощью генераторов форм, меню и других CASE-средств генерируется прототип будущей системы.
Прототипированию подлежат интерфейс пользователя и известные, наиболее простые, хорошо структурированные функции. Кроме того, CASE-средства обеспечивают автоматический контроль проекта, автоматическую кодогенерацию и автоматическую генерацию проектных документов. Основные усилия в случае выбора CASE-модели тратятся на анализ и проектирование, что составляет 80 % трудозатрат. Это дает огромные преимущества, так как ошибки, допущенные, например, на этапе кодирования, исправить значительно проще, чем ошибки, допущенные при анализе и/или проектировании системы, которые могут привести к краху всего проекта в целом.
Рис. 1. Простейшие модели жизненного цикла автоматизированной системы: а) традиционная модель; б) CASE-модель
Обычно к CASE-средствам относят любой программный продукт, автоматизирующий разработку и обладающий следующими характерными особенностями:
- наличие мощных графических средств для описания и документирования информационных систем, обеспечивающих удобный интерфейс с разработчиком;
- возможность интеграции отдельных компонент CASE-средств, обеспечивающей легкость передачи данных между различными компонентами и управляемость процессом разработки ИС;
- использование репозитория — компьютерного хранилища для всей проектной информации.
Интегрированное CASE-средство (комплекс средств), поддерживающее полный жизненный цикл программного обеспечения, содержит следующие компоненты:
- репозиторий, являющийся основой CASE-средства. Репозиторий обеспечивает хранение версий проекта и его отдельных проектных решений, синхронизацию поступления информации от различных разработчиков группы, контроль метаданных на полноту и непротиворечивость;
- графические средства ввода/вывода;
- графические средства анализа и проектирования, обеспечивающие создание и сопровождение иерархически связанных диаграмм (DFD, ERD, STD и др.), образующих модель проектируемой системы;
- редства разработки приложений, включая языки 4GL и генераторы кодов;
- средства конфигурационного управления;
- средства документирования;
- средства тестирования;
- средства управления проектом;
- средства реинжиниринга.
Пакет
BPWin основан на методологии IDEF0 и предназначен для функционального моделирования и анализа деятельности предприятия. Полученная на выходе BPWin функциональная модель представляет собой совокупность SADT-диаграмм, каждая из которых описывает отдельный процесс, разбивая его на шаги и подпроцессы. Имеется возможность указать стоимость, время и частоту выполнения для отдельного процесса, что позволяет определить общую стоимость затрат. Продукт BPWin требует 16 M6RAM, 10 MбHDD, операционная система — MS Windows 95/98/NT [40].
45. Структура приложения
DELPHI (
BUILDER) для БД. Основные компоненты для работы с БД.
Построение приложения Delphi выполняется посредством выбора соответствующих компонентов и сборки их вместе так, чтобы они сформировали единое взаимодействующее целое. Построение приложений для БД в Delphi в этом отношении ничем не отличается.
Обобщенная модель для создания программ для баз данных с помощью Delphi на рисунке 1 иллюстрирует типичную архитектуру организации компонентов в приложении для баз данных, построенном с помощью Delphi.
Рис.1 Архитектурные детали приложения для базы данных Delphi
DataSource состоит в осуществлении взаимодействия между таблицей, с одной стороны, и набором работающих с данными элементов, которые отображают данные этой таблицы, — с другой.
Каждый экземпляр компонента DataSource в форме взаимодействует только с одним компонентом доступа к данным типа Таble или Query. Компонент Table ответственен за абстракцию и инкапсуляцию функциональных возможностей таблицы базы данных. Он выполняет это, либо непосредственно взаимодействуя с BDE, либо делая свои данные доступными для компонентов DataSource, которые могут их затребовать.
Стандартная библиотека классов Delphi имеет две основные группы компонентов для БД:
- компоненты доступа к данным непосредственно управляют таблицами данных. Они позволяют получать и изменять значения полей внутри записей, а также получать и обрабатывать мета-данные (данные о данных) в БД, типа определений таблиц, списков таблиц, определенных внутри базы данных и т.д.
- связанные с данными управляющие элементы – это визуальные управляющие элементы типа окон списков, полей редактирования, выпадающих комбо-окон и т.д., которые представляют собой не только экранные управляющие элементы, но также предназначены и способны к отображению полей данных таблицы
Компоненты доступа к данным. Компоненты доступа к данным способны устанавливать соединения с физическими базами данных посредством BDE, но они не обеспечивают никаких средств для физического отображения данных в форме.
1. Компонент Table (класс Ttable) инкапсулирует концепцию таблицы базы данных. Он позволяет обращаться к записям, удалять существующие в таблице записи и вставлять в нее новые записи.
Свойства Ttable:
DatabaseName – задает к какой БД принадлежит таблица с которой вы будите работать.
TableName – определяет конкретную таблицу к которой подключается компонент Ttable.
ReadOnLy – установка свойства равным TRUE предотвращает любые попытки изменения данных в таблице.
MasterSource – используется, чтобы связать две таблицы в отношении «владелец-детали».
MasterFields – определяет по каким полям осуществляется связь между таблицами.
Active – установите свойство Active таблицы Table равным TRUE, чтобы фактически открыть таблицу, то есть установить соединение с таблицей базы данных и сделать ее данные доступные для извлечения, отображения и обработки.
2. Компонент Query (класс TQuery) обеспечивает доступ к базе данных посредством операторов языка SQL. С помощью компонента Query вы можете строить запросы SQL и выполнять SQL-операторы как над локальными таблицами dBASE и Paradox, так и над базами данных на удаленных серверах SQL.
3. Компонент
TDbEdit. Компонент DbEdit не определяет никаких специфических методов или событий, отличных от определенных стандартным управляющим элементом редактирования. Все, что вы можете делать со стандартным компонентом Edit, вы может также делать и с DbEdit.
4. Компонент TDbCrid. Он позволяет вам перестраивать порядок колонок сетки во время выполнения.
5. Компонент
TField. Компонент Field содержит свойства, описывающие структуру колонки (тип данных), текущее значение, форматы отображения и редактирования и так далее.
6. Компонент
Database (класс TDatabase) позволяет определить дальнейшие подробности соединения с базой данных в дополнение к возможностям, обеспеченным потомком DataSet (ТТаЫе, TQuery). Используя экземпляры класса TDatabase, вы можете поддерживать постоянные соединения с базами данных, обеспечивать безопасность вашей базы данных посредством системы паролей и воспользоваться преимуществами управления транзакциями в Borland Database Engine.
46. Технология создания БД в среде визуального программирования
DELPHI (
BUILDER).
1. Создание псевдонима базы данных. Локальная БД размещается в каталоге на диске и хранится в виде набора файлов. Для хранения одной таблицы (отношения) создается отдельный файл. Такие же отдельные файлы создаются для хранения индексов таблицы и мемо-полей. Обращение к БД из утилит и программы осуществляется по псевдониму базы данных. Псевдоним должен быть зарегистрирован в файле конфигурации конкретного компьютера при помощи утилиты BDE Administrator.
2. Создание таблиц базы данных.
а). Объявление полей. Для создания таблиц базы данных необходимо запустить утилиту Database Desktop (DBD) из меню Tools. Для создания таблицы БД нужно выбрать элемент главного меню File \ New | Table. В появившемся окне Create Table оставьте без изменения тип создаваемой таблицы (Paradox 7) и нажмите кнопку ОК. После этого появится окно определения структуры таблицы БД.
б). Запоминание таблицы. Нажмите кнопку Save As и в появившемся окне укажите имя с расширением .db.
в). Определение индексов. Всем полям назначьте атрибут Required (требование обязательного существования значения у поля на момент его запоминания в БД). Установите для таблицы Prihod языковый драйвер Pdox ANSI Cyrillic. Нажмите кнопку Define. В появившемся диалоговом окне в поле Fields содержится список полей определяемой нами таблицы. Поле Index Fields предназначено для хранения полей, входящих в создаваемый индекс. Чтобы скопировать конкретное поле из списка Fields в список Index Fields, нужно нажать кнопку с изображением правой стрелки. Последовательность добавления полей в список важна, она определяет порядок чередования полей в списке. После того как вы Поместили нужные поля в список Index Fields, нажмите кнопку ОК. В появившемся диалоговом окне запрашивается имя индекса. Введите имя Sort_DatPrich_Tovar и нажмите ОК.
г). Определение связей между таблицами. Открыть таблицу (элемент меню File \ Table Open) и затем выбрать режим изменения структуры таблицы (Table \ Restructure). В выпадающем списке Table Properties выберать элемент Refrential Integrity и нажать кнопку Define. Сначала указать поле связи для дочерней таблицы.
Переключатели Update rules определяют вид каскадных воздействий на таблицу при изменении значения поля связи в таблице или при удалении в ней записи:
- Cascade - разрешены каскадные изменения и удаления подчиненных записей в дочерней таблице;
- Prohibit - запрещены изменения полей связи или удаление записи в родительской таблице, если для данной записи есть связанные записи в дочерней таблице.
3. Создание приложения. Создайте в каталоге в котором будет размещаться проект приложения. В палитре компонентов на странице Data Access выберите мышью компонент Table, щелкните на нем мышью и затем щелкните мышью на форме. После этого изображение компонента останется в форме.
В окне Инспектора Объектов установите в свойство DatabaseName (псевдоним БД) значение псевдонима БД при помощи выпадающего списка или вручную. Таким же образом установите имя таблицы БД в свойстве TableName. Для свойства Active установите значение True. В этот момент произойдет реальное связывание компонента Table (он по умолчанию имеет имя Table1) с таблицей.
Расположите на форме компонент DataSource. Он служит в качестве связующего звена между невизуальными компонентами (в данном случае Table1) и визуальными компонентами, которые мы добавим в форму позднее. Поэтому компоненты DataSource часто называют источниками данных. Установите в свойство DataSet (имя набора данных) компонента значение Table1, выбрав его из выпадающего списка.
Расположим в форме компонент DBGrid, взяв его из палитры компонентов на странице Data Controls. Установите в свойство DataSource компонента значение DataSource1 (это имя, присвоенное по умолчанию созданному нами перед этим компоненту DataSource), выбрав его из выпадающего списка. Компонент DBGrid служит для отображения записей набора данных в табличной форме.
Сохраните форму и проект на диске и запустите программу (используйте меню RUN).
Для добавления записи нужно нажать на клавиатуре клавишу Insert или, находясь на последней записи набора данных, клавишу смещения курсора вниз. Таблица автоматически перейдет в режим добавления новой записи. После ввода значений в поля записи запомнить запись в наборе данных можно, перейдя на другую запись при помощи клавиш управления курсором. Отказаться от запоминания записи можно, нажав кнопку Esc.
Для изменения записи следует переместить указатель текущей записи в нужное место и изменить значения там, где это необходимо. Набор данных автоматически перейдет в режим редактирования.
Для удаления записи следует установить на нее указатель текущей записи и нажать Ctrl+Del.