
- •Раздел 1. Основы информационного обеспечения процессов и систем.
- •1.1. Понятие и содержание информационного обеспечения. (вопросы 1, 2)
- •1.1.1. Понятие информационного обеспечения. (вопросы 1, 2)
- •1.1.2. Понятие информации. (вопрос 1)
- •1.1.3. Понятие данных и их структуры. (вопрос 1)
- •1.1.4. Документированная информация. (вопрос 1)
- •1.1.5. Информационная система. (вопрос 1)
- •1.1.6. Службы информационного обеспечения. (вопрос 1)
- •1.1.7. Функциональная структура информационного обеспечения. (вопрос 2)
- •1.2. Организационная структура и классификация аис. (вопрос 3)
- •1.2.1. Организационная структура аис.
- •1.2.2. Классификация аис.
- •1.3. Система представления аис. Уровни представления. (вопрос 4)
- •1.3.1. Информационно – логическая модель. Концептуальная модель.
- •1.3.2. Логическая структура данных.
- •1.3.3. Внутренняя схема базы данных.
- •Раздел 2. Системы управления базами данных фактографических информационных систем.
- •2.1. Функции, классификация и структура субд. (вопросы 5, 6)
- •2.1.1. Функции, реализуемые субд. (вопрос 5)
- •2.1.2. Структура и взаимодействие компонент субд. (вопрос 6)
- •2.2. Реляционная модель организации данных. (вопросы 7,8)
- •2.2.1. Структурная составляющая. (вопрос 7)
- •2.2.2. Целостная составляющая. (вопрос 8)
- •2.2.3. Манипуляционная составляющая реляционной модели (операции над данными). (вопрос 8)
- •2.3. Внутренняя схема баз данных. (вопросы 9-14)
- •2.3.1. Состав внутренней схемы базы данных. (вопрос 9)
- •2.3.2. Физические структуры организации файлов данных. (вопрос 10, 11)
- •2.3.3. Индексирование данных.
- •2.3.3.1. Линейные структуры индексов. (вопрос 12)
- •2.3.3.2. Нелинейные структуры индексов. (вопрос 13)
- •2.3.4. Расстановка (хеширование) записей. (вопрос 14)
- •2.3.4.1. Расстановка записей по числовому значению ключей.
- •2.3.4.2. Расстановка записей по текстовым ключевым полям.
- •Раздел 3. Каноническое проектирование автоматизированных информационных систем.
- •3.1. Требования стандартов. Стадии и этапы создания аис.
- •3.2. Состав стадий и этапов канонического проектирования аис. (вопрос 15)
- •3.3. Состав и содержание работ на предпроектной стадии создания аис. (вопрос 16)
- •3.3.1. Сбор материалов обследования. (вопросы 17-23)
- •3.3.2. Формализация материалов обследования. Системные спецификации. (вопросы 24, 25)
- •3.3.3. Матричная модель экономической информационной системы объекта. (вопрос 26)
- •3.3.4. Анализ материалов обследования. (вопрос 27)
- •3.3.5. Составление тэо и формирование тз. (вопрос 28)
- •3.4. Состав и содержание работ на стадии «Техно - рабочего проектирования». (вопросы 29-35)
- •3.4.1. Техническое проектирование. (вопросы 29-33)
- •3.4.2. Рабочее проектирование. (вопросы 34, 35)
- •3.5. Состав и содержание работ на стадиях внедрения, эксплуатации и сопровождения проекта. (вопросы 36-38)
- •Раздел 4. Концептуальное проектирование аис.
- •4.1. Разработка концептуальной модели службы документационного обеспечения управления. (вопросы 39-42)
- •4.1.1. Изучение области использования ис. (вопрос 39)
- •4.1.2. Формирование и анализ круга функций и задач аис. (вопрос 40)
- •4.1.3. Определение основных объектов-сущностей. (вопрос 41)
- •4.1.4. Формализованное описание концептуальной схемы банка данных. (вопрос 42)
- •Раздел 5. Проектирование логической структуры базы данных.
- •5.1. Этапы проектирования схем реляционных баз данных. (вопрос 43)
- •5.2. Проектирование и создание схем таблиц. (вопросы 44-49)
- •5.2.2. Правила генерации таблиц из er-диаграмм со связями степени 1:1. (вопрос 45)
- •5.2.4. Правила генерации таблиц из er-диаграмм со связями 1: n. (вопрос 47)
- •5.2.5. Предварительные таблицы для бинарных связей степени «многие – ко - многим». (вопрос 48)
- •5.2.6. Правила генерации таблиц со связями m:n. (вопрос 49)
- •5.3. Определение и установление индексов. (вопрос 50)
- •5.4. Создание списков (словарей) для полей с перечислительным характером значений данных. (вопрос 51)
- •5.5. Установление ограничений целостности по полям таблиц и связям. (вопрос 53)
- •5.6. Нормализация таблиц. (вопрос 54)
- •5.6.1. Первая нормальная форма. (вопрос 55)
- •5.6.2. Вторая нормальная форма. (вопрос 56)
- •5.6.3. Третья нормальная форма. (вопрос 57)
- •5.7. Способы создания таблиц, ключей, связей. (вопрос 58)
2.2. Реляционная модель организации данных. (вопросы 7,8)
2.2.1. Структурная составляющая. (вопрос 7)
В реляционной модели объекты-сущности инфологической схемы предметной области АИС представляются плоскими таблицами данных.
Столбцы таблицы (колонки), называемые полями базы данных, соответствуют атрибутам объектов-сущностей инфологической схемы предметной области.
Множество атомарных значений атрибута называют доменом.
Строки таблицы содержат сведения о представленных в ней фактах (или документах, или людях одним словом – об однотипных объектах).
Строки таблицы представляют различные сочетания значений полей из доменов и называются также записями (кортежами).
На пересечении столбца и строки находятся конкретные значения содержащихся в таблице данных. Данные в таблицах удовлетворяют следующим принципам.
-
Каждое значение, содержащееся на пересечении строки и колонки, должно быть атомарным (то есть не расчленяемым на несколько значений).
-
Значения данных в одной и той же колонке должны принадлежать к одному и тому же типу, доступному для использования в данной СУБД.
-
Каждая запись в таблице уникальна, то есть не существует двух записей с полностью совпадающим набором значений ее полей.
-
Каждое поле имеет уникальное имя.
-
Последовательность полей в таблице несущественна.
-
Последовательность записей также несущественна.
Несмотря на то, что строки таблиц считаются неупорядоченными, любая СУБД позволяет сортировать строки и колонки в выборках нужным пользователю способом.
Поскольку последовательность полей (колонок) в таблице несущественна, обращение к ним производится по имени, и эти имена для данной таблицы уникальны, но не обязаны быть уникальными для всей базы данных.
Ключи и связи. Для иллюстрации некоторых положений рассмотрим примеры, воспользовавшись базой данных North Wind, входящей в комплект поставки Microsoft SQL Server и Microsoft Access.
Рассмотрим фрагмент таблицы Клиенты (рис. 2.2).
Рис. 2.2. Фрагмент таблицы Клиенты.
Поскольку строки в таблице не упорядочены, необходимо создавать поле (колонку) или несколько полей (колонок) для уникальной идентификации каждой строки (конкретного экземпляра объекта).
Этот набор колонок называется первичным ключом (primary key - PK). Первичный ключ любой таблицы должен содержать уникальные непустые значения для каждой строки. Если ключ состоит из нескольких полей (колонок), он называется составным первичным ключом (composite primary key).
Совокупность определенных для именованной таблицы - отношения полей, их свойства (ключи и пр.) составляют схему таблицы отношения.
Как уже отмечалось, таблица в реляционной модели отражает определенный объект – сущность из инфологической схемы предметной области АИС. Типичная база данных обычно состоит из нескольких связанных таблиц.
Отношения связей объектов сущностей устанавливаются через введение в таблицах дополнительных полей, которые дублируют ключевые поля связанной таблицы. Рассмотрим фрагмент таблицы Заказы (рис. 2.3.).
Рис. 2.3. Фрагмент таблицы Заказы.
Поле Клиент ID этой таблицы содержит идентификатор клиента, разместившего заказы. Если нужно узнать, как называется компания, разместившая заказы, мы должны отыскать это же значение идентификатора клиента в поле Клиент ID таблицы Клиенты и в найденной строке прочитать значение поля Наименование компании. Другими словами нужно связать две таблицы Клиенты и Заказы по полю Клиент ID.
Поля, дублирующие ключ, указывающие на запись в другой таблице, называется внешним ключом (foreign key - FK). Как видно, в случае таблицы Заказы внешним ключом является поле Клиент ID (Рис. 2.4.).
Рис. 2.4. Первичные и внешние ключи в таблице Клиенты и Заказы.
Подобное взаимоотношение между таблицами и называется связью (relationship). Связь между двумя таблицами устанавливается путем присваивания значений первичного ключа одной таблицы значениям внешнего ключа другой таблицы.
Если каждый клиент в таблице Клиенты может разместить только один заказ, говорят, что эти две таблицы связаны соотношением «один – к - одному» (one-to-one relationship).
Если же каждый клиент в таблице Клиенты может поместить ноль, один или много заказов, говорят, что эти две таблицы связаны соотношением «один - ко - многим» (one-to-many relationship) или соотношением master-detail. Именно такие соотношения между таблицами используются наиболее часто. И в этом случае, таблица, содержащая внешний ключ, называется detail-таблицей, а таблица, содержащая первичный ключ, определяющий возможные значения внешнего ключа, называется master-таблицей. В некоторых таблицах роль ключа могут играть сразу несколько полей – группа полей (рис. 2.5.).
Так как значения первичного ключа уникальны, то есть не могут повторяться, в таблице «Отделы» может быть только один кортеж по 123 отделу, например. Значения других полей, и, в частности, внешнего ключа могут повторяться. Например, в таблице «Сотрудники» может быть несколько кортежей по 123 отделу. Такой механизм автоматически обеспечивает связь типа «один – ко - многим».
Рис. 2.5. Несколько полей образуют первичный ключ. Связь « один – ко - многим».
Связи «один - к - одному» обеспечиваются автоматически при одинаковых первичных ключах. Например, между таблицей «Сотрудник» с ключом Табельный номер, и таблицей «Паспорт» с таким же ключом (рис. 2.6).
Рис. 2.6. Реализация связи « один - к - одному».
Из анализа данного механизма реализации связей вытекает, что реляционная модель не может непосредственно отражать связи типа «многие – ко - многим».
Группа связанных таблиц называется схемой базы данных. Информация о таблицах, их колонках (имена, тип данных, длина поля), первичных и внешних ключах, а также иных объектах базы данных называется метаданными (metadata).
Любые манипуляции с данными в базах данных, такие как выбор, вставка, удаление, обновление данных, изменение или выбор метаданных, называются запросом (query) к базе данных. Запросы формулируются, на каком либо языке, который может быть как стандартным для разных СУБД, так и индивидуальным для конкретной СУБД.
Индексирование полей. Теоретико-множественный характер реляционных таблиц требует отсутствия упорядоченности записей и полей. Отсутствие упорядоченности записей усложняет поиск нужных кортежей при обработке таблиц.
На практике для создания условий быстрого нахождения нужной записи таблицы без постоянного переупорядочения записей при любых изменениях данных вводят индексирование полей (обычно ключевых). Индексирование полей состоит в построении дополнительной упорядоченной информационной структуры для быстрого доступа к записям.
В большинстве реляционных СУБД ключи реализуются с помощью объектов, называемых индексами.
Индексы можно определить как список номеров записей, указывающий, в каком порядке их представлять. В каждый конкретный момент времени любая запись занимает определенное физическое место в файле базы данных, которое в процессе редактирования данных или в результате «внутренней деятельности» СУБД может изменяться.
Рис. 2.7. Фрагмент таблицы с индексами.
Пусть в какой-то момент времени записи в таблице «Клиенты» хранились в таком порядке как это представлено на (Рис.2.7.). Теперь предположим, что нужно получить эти данные, упорядоченные по полю Клиент ID. Опустив технические детали, мы можем сказать, что индекс по этому полю – это последовательность номеров записей, в соответствии с которой их нужно выводить, то есть:
1, 6, 4, 2, 5, 3.
Если мы пожелаем упорядочить записи по полю адреса, последовательность номеров будет другой:
5, 4, 1, 6, 2, 3.
Очевидно, что хранение индексов требует существенно меньше места, чем хранение по-разному отсортированных версий самой таблицы. Если нас интересуют данные о клиентах, у которых значение поля «Клиент ID» начинается с символов «BO», мы с помощью индекса можем определить местоположение этих записей. В данном случае - это позиции 2 и 5. Очевидно, что в индексе номера этих записей идут подряд. После этого нужно прочесть только вторую и пятую записи, вместо того чтобы просматривать всю таблицу.
Таким образом, использование индексов снижает время выборки данных.