
- •Для чего нужны базы данных? Основные термины и определения. Компоненты субд.
- •Системы, основанные на файлах. Свойства, недостатки и пути их устранения.
- •Основные типы данных и их классификация. Модели данных и их компоненты. Типы моделей субд.
- •Методы доступа к данным. Поиск по дереву. Хеширование.
- •Назначение модели «сущность-связь». Элементы модели «сущность-связь».
- •Обор нотаций, используемых при построении диаграмм «сущность-связь». Нотация Чена
- •Нотация idef1x
- •Нотация Баркера
- •Иерархическая модель данных. Структура данных. Операции над данными. Ограничения целостности.
- •Сетевая модель данных. Структура данных. Операции над данными. Ограничения целостности.
- •10. Реляционная модель данных. Структура данных. Отношения. Свойство отношений.
- •Целостность реляционных данных. Null – значения. Трехзначная логика. Потенциальные ключи. Целостность сущностей.
- •Целостность реляционных данных. Внешние ключи. Родительские и дочерние отношения. Целостность внешних ключей.
- •Целостность реляционных данных. Операции, влияющие на целостность внешних ключей. Стратегии поддержания ссылочной целостности.
- •Этапы разработки баз данных. Критерии оценки качества логической модели данных.
- •15. Нормальные формы отношений. Первая нормальная форма (1нф). Аномалии обновления 1нф.
- •1Нф (Первая Нормальная Форма)
- •Третья нормальная форма (3нф). Сравнение нормализованных и ненормализованных моделей данных. Oltp и olap-системы.
- •Нормальная форма Бойса-Кодда (нфбк).
- •Многозначная зависимость. Четвертая нормальная форма (4нф).
- •Зависимость соединения. Пятая нормальная форма (5нф).
- •Обзор реляционной алгебры. Замкнутость реляционной алгебры. Отношения, совместимые по типу. Оператор переименования атрибутов.
- •Операции реляционной алгебры: объединение, пересечение, вычитание.
- •Операции реляционной алгебры: декартово произведение, выборка, проекция.
- •Операции реляционной алгебры: соединение, разновидности соединения, общая операция соединения, тэта-соединение.
- •Операции реляционной алгебры: соединение, разновидности соединения, экви-соединение, естественное соединение.
- •Операции реляционной алгебры: деление.
- •27.Язык sql. История развития. Структура языка. Типы данных sql.
- •Язык sql. Операторы создания и модификации схемы базы данных (database, table). Примеры написания операторов.
- •Язык sql. Операторы создания индексов. Операторы управления правами доступа. Примеры написания операторов
- •Язык sql. Команды модификации данных, условия отбора записей. Примеры написания операторов.
- •31.Язык sql. Оператор select. Синтаксис оператора, простые формы оператора, условия отбора записей. Примеры написания операторов.
- •32.Язык sql. Выборка из нескольких таблиц, синтаксис соединения таблиц. Примеры написания операторов.
- •33. ЯзыкSql. Использование алиасов и псевдонимов, вложенные запросы (подзапросы). Примеры написания операторов.
- •34.ЯзыкSql.Вычисления внутри оператора, группировка данных, сортировка данных, операция объединения. Примеры написания операторов
- •Оператор select. Формальный порядок выполнения оператора select. Как на самом деле выполняется оператор select.
- •37.ЯзыкSql. Использование представлений (View). Изменение данных в представлениях. Хранимые процедуры. Триггеры.
- •38.Транзакции, блокировки и многопользовательский доступ к данным.
- •1. Концептуальное проектирование;
- •2. Логическое проектирование;
- •3. Физическое проектирование.
- •41.Концептуальное моделирование. Пример построения модели «сущность-связь».
- •43.Проектирование реляционной базы данных на основе декомпозиции универсального отношения.
- •44.Создание приложений, работающих с базами данных при помощи языка sql. Общие подходы. Специализированные библиотеки доступа. Cli-интерфейс уровня вызова.
- •46.Архитектура "клиент-сервер". Структура сервера базы данных.
1. Концептуальное проектирование;
2. Логическое проектирование;
3. Физическое проектирование.
Концептуальное проектирование
Во время концептуального проектирования окончательно формируется замысел будущей базы данных, но без учета любых физических аспектов ее реализации.
Пока его основной интерес направлен на создание общей модели, отражающей представления будущих пользователей БД об автоматизируемом участке компании (складе, бухгалтерии, отделе кадров, производственных цехах и т. п.). Все необходимая для этого информация уже должна быть собрана на предыдущем этапе жизненного цикла БД.
Логическое проектирование
Фаза логического проектирования предназначена для преобразования обобщенной концептуальной модели в завершенную логическую.
Разработчик уточняет все требования, выявленные на концептуальной стадии проектирования, и стремится несколько упростить решение (не снижая его функциональные возможности). Для этого ER-модель проверяют с помощью правил нормализации. В результате мы получаем неизбыточные реляционные таблицы, свободные от присущих ненормализованным данным аномалиям вставки, редактирования и удаления.
Помимо нормализации, на логическом этапе осуществляют следующие действия:
- уточняют ограничения на данные;
- определяют домены данных;
- вводят бизнес-правила и корпоративные ограничения целостности.
Физическое проектирование
К следующей (физической) фазе проектирования БД переходят после выбора целевой СУБД, именно она определяет особенности будущего программного продукта. С этого момента все остальные фазы проектирования и этапы жизненного цикла БД приобретают зависимость от СУБД.
Физическое проектирование — это уточнение решения с учетом имеющихся в наличии разработчика технологий, возможности реализации и требуемой производительности. Только на заключительной фазе проектирования БД на смену так нелюбимой программистами бумажной деятельности приходит реальная работа на компьютере. Во время физического проектирования задачей проектировщика становится перенос логической модели на платформу целевой СУБД.
С этой целью разработчик делает следующее:
- создает таблицы и связи между ними;
- назначает вторичные индексы таблиц;
- реализует бизнес-логику БД (в первую очередь, с помощью триггеров и хранимых процедур);
- определяет функциональные характеристики транзакций;
- разрабатывает представления;
- внедряет механизмы защиты (как минимум предусматривает авторизацию пользователей и назначает правила доступа к данным).
Полученная БД тщательным образом документируется. Особенно важно определить пользовательские типы данных, описать таблицы и связи между ними, задать порядок поддержки бизнес-логики, установить назначение порядок вызова хранимых процедур и триггеров.
40.Инструментальные средства проектирования информационных систем. CASE-технология. Этапы процесса разработки. Методология функционального моделирования.
Во многих случаях эффективную информационную систему не удается построить вручную. Это объясняется следующими причинами:
- не обеспечивается достаточно глубокий анализ требований к данным;
- большая длительность процесса структурирования;
- трудность учета и согласования изменений, сделанных в системе несколькими разработчиками;
- ограничения сроков на разработку системы;
- и т.д.
Для преодоления сложностей начальных этапов разработки предназначен структурный анализ - метод исследования, которое начинается с общего обзора системы и затем детализуется, приобретая иерархическую структуру со все большим числом уровней. На каждом уровне рассматривается ограниченное число элементов (обычно от 3 до 6-8), каждый из которых в свою очередь может быть декомпозирован на составляющие детали на следующем уровне. При этом соблюдаются строгие формальные правила записи информации (обычно используются диаграммы различных типов).
Такая технология получила название CASE (ComputerAidedSoftwareEngeneering - создание программного обеспечения с помощью компьютера).
Основные черты CASE - технологии:
- использование методологии структурного проектирования "сверху-вниз“;
- разработка прикладной системы представляется в виде последовательных четко определенных этапов:
- поддержка всех этапов жизненного цикла информационной системы, начиная с самых общих описаний предметной области до получения и сопровождения готового программного продукта;
- поддержка репозитария, хранящего спецификации проекта информационной системы на всех этапах ее разработки;
- возможность одновременной работы с репозитарием многих разработчиков;
- автоматизация различных стандартных действий по проектированию и реализации приложения.
Как правило, CASE-системы поддерживают следующие этапы процесса разработки:
- Моделирование и анализ деятельности пользователей в рамках предметной области (Методология функционального моделирования). Здесь осуществляется функциональная декомпозиция, определение иерархий (вложенности) функций, построение диаграмм потоков данных. Перечень информационных объектов, которыми манипулируют функции, передается на следующий этап проектирования.
- Концептуальное моделирование - создание модели "сущность-связь" на основе перечня объектов, полученного на предыдущем этапе. Здесь уточняются характеристики каждого объекта (атрибуты), устанавливаются связи между объектами.
- Реляционное моделирование - преобразование модели "сущность-связь" в соответствии с требованиями реляционной модели (реляционная модель допускает только бинарные связи, не разрешает существование атрибутов у связей, не поддерживает связи типа n : m).
- Генерация схемы базы данных. Результатом выполнения данного этапа является набор SQL-операторов, описывающих создание схемы базы данных (CREATE TABLE, CREATE INDEX,...), с учетом особенностей целевой СУБД.
- Генерация прототипов программных модулей по иерархии функций и потокам данных. Для каждого модуля автоматически подготавливается описание используемых им фрагментов данных (таблицы, атрибуты, индексы), а также создаются заготовки экранных форм или отчетов.
CASE-системы поддерживают следующие этапы процесса разработки:
- Функциональное моделирование;
- Концептуальное моделирование;
- Реляционное моделирование;
- Генерация схемы базы данных;
- Генерация прототипов программных модулей по иерархии функций и потокам данных.
Методологии функционального моделирования
Существуют различные методологии функционального моделирования, например:
- Диаграммы потоков данных (DFD - DataFlowDiagramm);
- Методология SADT (Structured Analisys and Design Technique);
- другие методологии.
Методология функционального моделирования, позволяют выделить первичные информационные объекты, из которых затем строятся концептуальная и реляционная модели данных.
Рассмотрение этих методов выходит за рамки данного курса.
Приведем пример DFD-диаграммы для предприятия, строящего свою деятельность по принципу "изготовление на заказ".
DFD-диаграмма
IDEF0-модель (Методология SADT )