- •Национальный исследовательский ядерный университет «мифи» Волгодонский инженерно-технический институт – филиал нияу мифи
- •Определение базы данных (бд) и банка данных (БнД)
- •Основные признаки классификации банка данных (БнД).
- •Основные этапы эволюции систем обработки данных
- •Взаимосвязь этапов создания базы данных (бд) и используемых моделей предметной области. Классификационная схема моделей базы данных (бд).
- •Первичный и вторичный ключ записи
- •Понятие ключа и индекса. Прямая и инвертированная формы индекса. Примеры.
- •Сходство и отличие процессов обработки данных средствами файловой системы и системы управления (су) базы данных (бд).
- •Характерные свойства и отличия линейных и нелинейных структур. Нелинейные структуры. Примеры.
- •Типология простых запросов
- •Назначение и особенности этапов проектирования базы данных (бд)
- •Концептуальные модели данных
- •Реляционная модель данных. Получение реляционной схемы из er-диаграммы.
- •Классификация режимов работы с базой данных (бд)
- •Технологии обработки данных
- •Целостность базы данных (бд). Понятие транзакции.
- •Виды конфликтов при параллельном выполнении транзакций
- •Сериализация транзакций. Захват и освобождение объекта.
- •Язык определения данных и язык манипулирования данными
- •Команды языка sql
- •Sql. Изменение структуры таблицы.
- •Добавление столбца.
- •2. Модификация столбца.
- •4. Добавление ограничений на уровне таблицы.
- •6. Удаление таблиц.
- •Sql. Ограничения целостности.
- •Импорт таблицы в приложение Microsoft Access
- •Создайте запрос.
- •Укажите альтернативные наборы условий с помощью оператора or.
- •Сценарии извлечения данных сразу из нескольких таблиц.
- •Использование данных из связанных таблиц для повышения информативности запроса
- •Использование мастера запросов для построения запроса на основе главной и связанной таблицы
- •Пример, использующий учебную базу данных «Борей»
- •Использование мастера запросов для построения запроса
- •Построение запроса на выборку с использованием таблиц, связанных отношением «многие-ко-многим»
- •Пример, использующий учебную базу данных «Борей»
- •Построение запроса в режиме конструктора
- •Создание запроса на объединение с использованием двух таблиц
Характерные свойства и отличия линейных и нелинейных структур. Нелинейные структуры. Примеры.
К линейным структурам относятся массивы и последовательности, таблицы. Порядок следования (и, соответственно, выборки) элементов таких структур имеет линейный характер и соответствует порядку расположения элементов в памяти: один за другим без каких-либо промежутков. Адрес элемента соответствует его положению и определяется индексом – порядковым номером элемента в последовательности размещения. К элементу имеется прямой доступ, если известен его индекс. Особенностью линейной структуры является то, что при последовательной организации (размещении) она допускает возможность прямого доступа к произвольному элементу, поскольку условие однородности (однотипности) предполагает, что все элементы занимают расположенные строго последовательно области одинакового размера, что и позволяет достаточно просто вычислять значение физического адреса элемента по значению его индекса. Массив представляет собой совокупность однотипных элементов, причем число элементов массива известно до его размещения, что позволяет строить гибкие многомерные системы адресации.
Последовательность, так же, как и массив, представляет собой совокупность однотипных элементов. Однако число элементов до размещения неизвестно. И, хотя каждая конкретная последовательность имеет конечную длину, до начала обработки (и, соответственно, размещения) необходимо считать длину последовательности бесконечной. Принципиальность такого предположения выражается в том, что необходимо предусматривать специальную процедуру использования памяти (выделения/освобождения) и, возможно, алгоритм обработки последовательности по частям. Важность рассмотрения такого типа данных обусловлена тем, что именно он превалирует операциях ввода/вывода с устройствами внешней памяти. Именно последовательный доступ позволяет организовать «потоковые» операции: однородность позволяет рассматривать пересылаемые данные как непрерывный поток. Поток не может быть прерван по контекстно определяемому условию, например, при пересылке текста – по значению кода «первой строки», и это не заставляет программу анализировать значение каждого очередного элемента. И, кроме того, последовательный доступ – это простота управления памятью и устройством ввода-вывода.
Таблица – это последовательности, обычно представляемые строками – совокупностями разнотипных элементов. Или, иначе, таблица – это множество записей, каждая из которых представляет набор поименованных полей. Однако с точки зрения размещения элементов таблица может быть представлена как одномерный массив (или, в случае БД – последовательность)) с однородными композиционными элементами, каждый из которых представляет собой совокупность разнотипных элементов. Именно это позволяет свести ввод/вывод таких типов структур к последовательным элементарным операциям. Кроме того, разнотипность элементов позволяет ввести отличную от перечислительной схему идентификации записей, определив одно из полей как ключ записи. Обычно ключ содержит значение, используемое в процедурах упорядочения и поиска записей. Линейные — структуры данных, в которых переход от одного элемента данных к другому не зависит от каких-либо логических условий, т.е. в линейных структурах используются лишь безусловные связи элементов; нелинейные — структуры данных, в которых переход от одного элемента данных к другому может зависеть от выполнения некоторого логического условия, т.е. в нелинейных структурах могут использоваться условные связи элементов. В качестве примеров нелинейных структур рассмотрим списки, деревья и сети. Порядок следования (и, соответственно, выборки) элементов таких структур может не соответствовать порядку расположения элементов в памяти. Списки представляют собой пример линейного упорядочения, деревья – двумерного, сети – произвольного. Соответственно различаются методы и средства, обеспечивающие последовательность выборки элементов данных. Обычно для обеспечения возможности прямого доступа к произвольному элементу необходимо использовать вспомогательные структуры типа инвертированных списков. Списки. Как и массив, список представляет собой совокупность однотипных элементов. Однако порядок выборки элементов может отличаться от порядка следования в памяти, определенного при размещении. Наиболее очевидный способ установления однонаправленного порядка выборки элементов – это сопоставить каждому элементу списка ссылку, указывающую на следующий элемент. Соответственно, для организации двунаправленного списка, допускающего также выборку в обратном порядке, каждый элемент должен иметь ссылку на предыдущий. Такая организация уже не допускает возможности прямого доступа, например, по номеру элемента. Кроме того, число элементов списка, как и в случае последовательностей, может быть неизвестно до размещения, и до начала обработки (и, соответственно, размещения) необходимо считать длину списка бесконечной, что ведет к необходимости предусматривать специальную процедуру выделения/освобождения памяти. Таким образом, с точки зрения физической реализации элемент списка должен быть составным, включающим собственно информативные данные, несущие смысловое значение, и дополнительные данные (ссылки), определяющие порядок доступа к информативным элементам. Понятие списка достаточно универсально. В общем случае ссылки могут указывать ответвления к другим спискам – подспискам. В зависимости от способа построения списка и предполагаемых путей доступа к элементам различают следующие виды ссылок: перекрестные, боковые, иерархические, множественные, что позволяет изменять «естественный» последовательный порядок прохода по элементам списка. Деревья. Дерево представляет собой иерархию элементов, называемых узлами. На самом верхнем уровне иерархии имеется только один узел – корень. Каждый узел, кроме корня, связан с одним узлом на более высоком уровне, называемым исходным узлом для данного узла. Каждый элемент имеет только один исходный. Каждый элемент может быть связан с одним или несколькими элементами на более низком уровне, которые называются порожденными. Элементы, расположенные в конце ветви, т.е. не имеющие порожденных, называются листьями. Существует несколько способов представления структуры дерева. Например, дерево может быть определено как иерархия узлом с попарными связями, в которой: 1. Самый верхний уровень иерархии имеет один узел, называемый корнем. 2. Все узлы, кроме корня, связываются с одним и только одним узлом на более высоком уровне по отношению к ним самим. Такое определение в части организации связей совпадает со списком, и, в частности, список представляет вырожденный случай дерева, в котором каждая вершина имеет не более одного поддерева. В логическом описании данных деревья используются для определения связей между элементами структуры, а при определении физической организации данных – для определения набора указателей, реализующих связи между ними. Использование ссылок для организации доступа к отдельным элементам структуры не позволяет сократить процедуру поиска, в основу которой положен последовательный перебор. Процедура поиска будет эффективнее, если будет предварительно установлен некоторый порядок перехода к следующему элементу дерева. Такой порядок в ряде случаев определяется в отношении метода обхода и регулярности итераций, определяемой длиной пути и кратностью деления вершины. Выделяют три метода обхода: сверху вниз, слева направо, снизу вверх. Регулярность обхода дерева может быть связана с упорядоченными деревьями, к которым относятся сбалансированные и двоичные деревья. Сбалансированное дерево в каждом узле имеет одинаковое число ветвей, причем процесс включения новых ветвей в узлы дерева идет сверху вниз, а на каждом уровне дерева – слева направо. Для дерева с фиксированным числом ветвей физическая организация данных будет более простой. Однако большая часть логических организаций данных не может быть задана в виде сбалансированной древовидной структуры, и для их представления требуется переменное число ветвей в каждом узле. В то же время индексы могут быть построены в виде сбалансированных древовидных структур. Двоичные деревья – это особая категория сбалансированных древовидных структур, в которой допускается не более двух ветвей для одного узла. Любые связи в дереве можно представить в виде двоичных древовидных структур. При таком представлении каждый элемент может иметь указатель как на порожденные, так и на подобные элементы. Различные виды двоичных деревьев, для которых характерно наличие жесткой схемы управления их ростом, достаточно эффективно используется для построения больших поисковых индексов, размещаемых обычно на устройствах внешней памяти. Кроме того, для таких деревьев можно организовать специальное «страничное» хранение поддеревьев, что сократит число физических обращений к устройству. Деревья поисковых индексов являются однородными структурами: каждый узел представлен элементами одного типа. Однако большинство баз должно поддерживать организацию данных, имеющих различную природу. В этом случае при работе с неоднородными структурами разной глубины, гарантировать регулярность, обеспечивающую эффективность процедур доступа, становится затруднительно. В сетевой структуре любой элемент может быть связан с любым другим элементом. Так же, как и в древовидных структурах, сетевую структуру можно описать с помощью исходных и порожденных элементов. Удобно представлять ее так, чтобы порожденные элементы располагались ниже исходных. При рассмотрении некоторых сетевых структур естественно говорить об уровнях, так же как и в случае древовидных структур. Во многих сетевых структурах, задающих связи между элементами, представление отношений между исходными и порожденными элементами аналогично представлению отношений в случае дерева: отношение исходный-порожденный является сложным (указывается сдвоенными стрелками), а отношение порожденный-исходный – простым (указывается одинарными стрелками). В некоторых случаях один элемент данных может быть связан с целой совокупностью других элементов данных. Например, одно изделие может поставляться несколькими поставщиками, каждый из которых установил свою цену на это изделие. Элемент данных ЦЕНА не может быть ассоциирован только с элементом ИЗДЕЛИЕ или только с элементом ПОСТАВЩИК, а должен быть связан одновременно с двумя. Информация такого рода, т.е. данные, ассоциированные с совокупностью элементов, называют иногда данными пересечения. Некоторые структуры содержат циклы. Циклом считается ситуация, в которой предшественник узла является в то же время его последователем. Отношения «исходный-порожденный» образуют при этом замкнутый контур. Например, завод выпускает различную продукцию. Некоторые изделия производятся на других заводах-субподрядчиках. С одним контрактом может быть связано производство нескольких изделий. Представление этих отношений и образует цикл. Иногда элементы связаны с другими элементами того же типа. Такая ситуация называется петлей. В массиве служащих специфицированы связи, существующие между некоторыми служащими. В базу данных списка материалов введено дополнительное усложнение: некоторые узлы сами состоят из узлов. Разделение сетевых структур на простые и сложные необходимо потому, что сложные структуры требуют более сложных методов физического представления. Это не всегда является недостатком, поскольку сложную сетевую структуру можно (а в большинстве случаев и следует) преобразовать к простому виду.
