Содержание
- 2. Виды данных в программировании – основополагающее понятие. Классификация данных позволяет определить, где они хранятся, что собой
- 4. Различают базовые и производные виды данных в программировании:
- 5. РАЗНОВИДНОСТИ БАЗОВЫХ ТИПОВ ДАННЫХ В ПРОГРАММИРОВАНИИ Числовые виды данных в программировании Целочисленные. Виды данных в программировании
- 6. Учитывая восприятие компьютерными устройствами целого значения, в ячейке памяти из n бит может храниться и 2n-1
- 8. ВЕЩЕСТВЕННЫЕ. Значения этого типа имеют плавающую запятую. Плавающая запятая — форма представления действительных чисел, в которой
- 9. Например: 14 441 544 = 1,4 441 544 ∗ 107; 0,0 004 785 = 4,785 ∗
- 10. СИМВОЛЬНЫЙ ТИП ДАННЫХ В ПРОГРАММИРОВАНИИ. В символьном типе переменная имеет только один символ, целое число. В
- 11. ПЕРЕЧИСЛИМЫЙ ВИД ДАННЫХ В ПРОГРАММИРОВАНИИ. Для внутреннего представления этот вид аналогичен целочисленному, но в нем программист
- 12. МАССИВЫ ДАННЫХ. Теперь рассмотрим сложные виды данных в программировании. И на первом месте – массив. Массив
- 13. СТРУКТУРА. До этого мы разобрали встроенные виды данных в программировании. Далее рассмотрим пользовательский тип данных. Структура
- 14. Примеры видов данных в программировании В языке Рython используются следующие типы данных программирования: int — целочисленный;
- 15. Язык программирования JavaScript содержит следующие типы данных: srting — тип данных «строка»; number — «число»; object
- 16. ТИП ДАННЫХ — «ЧИСЛО». В таком виде данных могут быть как дробные, так и целые числа.
- 17. ЛОГИЧЕСКИЕ (БУЛЕВЫЕ) ТИПЫ ДАННЫХ В ПРОГРАММИРОВАНИИ — boolean. Принимая решение, что необходимо выполнить далее, компьютер анализирует
- 18. Основой языка программирования Паскаль, как и любого другого языка, является алфавит — набор допустимых символов, которые
- 19. Для обозначения констант, переменных, программ и других объектов используются имена — любые отличные от служебных слов
- 20. ТИПЫ ДАННЫХ, ИСПОЛЬЗУЕМЫЕ В ЯЗЫКЕ ПАСКАЛЬ В языке Паскаль используются различные типы данных. Мы будем пользоваться
- 21. integer — основной, но не единственный тип для работы с целочисленными данными. Дополнительную информацию по этому
- 22. Имена переменных одного типа перечисляются через запятую, затем после двоеточия указывается их тип; описание каждого типа
- 23. ОПЕРАТОР ПРИСВАИВАНИЯ Основное преобразование данных, выполняемое компьютером, — присваивание переменной нового значения, что означает изменение содержимого
- 24. При выполнении оператора а:=10 в ячейку оперативной памяти компьютера с именем а заносится значение 10; при
- 25. САМОЕ ГЛАВНОЕ Паскаль — универсальный язык программирования, получивший своё название в честь выдающегося учёного Блеза Паскаля.
- 26. Общий вид программы:
- 29. ИНФОРМАЦИЯ И СУБД Появление компьютеров не сразу привело к разработке информационных систем. На заре вычислительной техники
- 30. СУБД – СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ. Понятие согласованности данных является ключевым понятием баз данных. Если информационная
- 31. Если информационная система поддерживает два согласованных файла сотрудники и отделы и была добавлена запись файл сотрудники,
- 32. 1) В СУБД определяется искомая запись и затем для ее извлечения запрашивается диспетчер файлов. Запись –
- 33. ДИСПЕТЧЕР ДИСКОВ Диспетчер дисков является компонентом ОС. При выполнении дисковых операций необходимо знать физические адреса на
- 34. Файлом называется набор однотипных записей. Основными операциями выполняемыми диспетчером файлов являются: 1) извлечь запись R из
- 35. КЛАСТЕРИЗАЦИЯ Это процесс как можно более близкого физического размещения на диске, логически связанных между собой и
- 36. ФИЗИЧЕСКОЕ РАЗМЕЩЕНИЕ ДАННЫХ НА ДИСКЕ Логическая последовательность страниц задается с помощью указателей, то есть логически близко
- 37. Записи в пределах страницы также можно разместить в соответствии с логическим порядком. Записи идентифицируются с помощью
- 38. Индексирование Пример: Поставщики
- 39. При наличии индекса, имеется несколько стратегий доступа к данным из файла поставщики. Пример: найти поставщиков из
- 40. Использование индексов на ряду с ускорением выборки имеет недостаток , который связан с замедлением процесса обновления
- 41. ПЛОТНОЕ И НЕПЛОТНОЕ ИНДЕКСИРОВАНИЕ Плотный индекс имеет вход для каждой записи индексированного файла. В индексе используются
- 42. СТРУКТУРА ТИПА B-TREE Дерево состоит из двух множеств: множество вершин и множество дуг. Корневой называется вершина
- 43. НАБОР ИНДЕКСОВ Обеспечивает быстрый непосредственный доступ к наборам последовательностей (последовательным данным). Фактически набор индексов является индексным
- 44. Для вставки нового значения V в структуру типа B-tree порядка n. Пусть V = 41. Например,
- 45. Далее этот процесс следует повторить для вставки среднего значения W в родительский элемент P на более
- 46. КЭШИРОВАНИЕ Стилем и порядком дерева называется максимально допустимое количество дочерних узлов для каждого родительского узла. Большие
- 47. Для выбора «хорошей» функции хэширования необходимо знать, во первых примерное число записей в файле и во
- 48. Функция хэширования выбирается таким образом чтобы максимально удовлетворить следующим условиям: 1)каждое ее значение должно быть целым
- 49. НЕПРИГОДНОСТЬ ФАЙЛОВ С ХЭШ АДРЕСАЦИЕЙ К ГРУППОВОЙ ОБРАБОТКЕ Прямой доступ имеет место, когда требуется найти одно
- 50. ЦЕПОЧКИ УКАЗАТЕЛЕЙ Для выполнения запроса типа “найти поставщиков из города N” можно применить способ хранения данных
- 51. НЕДОСТАТКИ СТРУКТУРЫ Для доступа к Nму поставщику требуется перебрать все предыдущие записи поставщиков. В худшем случае,
- 52. МЕРЫ ПО УЛУЧШЕНИЮ СТРУКТУРЫ 1) Указатели можно задать также и в обратном направлении. При этом существенно
- 53. УПРАВЛЕНИЕ ДАННЫМИ РАСПОЛОЖЕННЫМИ В ОПЕРАТИВНОЙ ПАМЯТИ Возможность размещать базу данных целиком в оперативной памяти появилась в
- 54. В традиционной СУБД узел B-tree представляет собой страницу диска и содержит максимально возможное число указателей на
- 56. Скачать презентацию
Слайд 2Виды данных в программировании – основополагающее понятие. Классификация данных позволяет определить, где
Виды данных в программировании – основополагающее понятие. Классификация данных позволяет определить, где
Виды данных в программировании – это варианты представления переменных конкретного объекта. Чтобы генерировать нужный код программирования, информация о типах данных должна быть доступна программисту и транслятору.
Виды данных = формат + размерные характеристики, диапазон показателей + операции.
Слайд 4Различают базовые и производные виды данных в программировании:
Различают базовые и производные виды данных в программировании:
Слайд 5РАЗНОВИДНОСТИ БАЗОВЫХ ТИПОВ ДАННЫХ В ПРОГРАММИРОВАНИИ
Числовые виды данных в программировании
Целочисленные.
Виды данных в
РАЗНОВИДНОСТИ БАЗОВЫХ ТИПОВ ДАННЫХ В ПРОГРАММИРОВАНИИ
Числовые виды данных в программировании
Целочисленные.
Виды данных в
У беззнаковых данных диапазон больше в 2 раза, чем у знаковых. Это – из-за компьютерного восприятия: в знаковых типах бит отражает знак числа, где 0 является положительным значением, а 1 – отрицательным.
Слайд 6Учитывая восприятие компьютерными устройствами целого значения, в ячейке памяти из n бит
Учитывая восприятие компьютерными устройствами целого значения, в ячейке памяти из n бит
Тип short (короткий целый.) Для него в памяти отведено 16 бит, то есть 2 байта (216 = 65 536). Диапазон значений, который может принять тип short со знаком – это [-32 768; 32 767].
Переменный тип long (длинный целый). Этому типу выделено 64 бита, то есть 8 байт. (264 = 1,8 446 744 * 1 019). Он имеет внушительный диапазон: в случае знакового типа это [-9 223 372 036 854 775 808 9 223 372 036 854 775 807]. Также модификатор long может использоваться в связке с другими типами (long будет указан перед наименованием типа, допустим, long double). Благодаря этому увеличивается диапазон возможных значений.
Слайд 8ВЕЩЕСТВЕННЫЕ.
Значения этого типа имеют плавающую запятую.
Плавающая запятая — форма представления действительных чисел,
ВЕЩЕСТВЕННЫЕ.
Значения этого типа имеют плавающую запятую.
Плавающая запятая — форма представления действительных чисел,
N = M ∗ 10p,
где N — записываемое число;
M — мантисса;
p (целое) — порядок.
Слайд 9Например: 14 441 544 = 1,4 441 544 ∗ 107; 0,0 004 785 =
Например: 14 441 544 = 1,4 441 544 ∗ 107; 0,0 004 785 =
1,4441544E+7; 4,785E–4.
Таким образом, в предназначенном месте памяти хранится целое число фиксированной длины и последовательность вносимого значения. Разберем пример типа данных, хранящихся в 64 битах. Мантисса будет равна 53 битам: 1 для знака числа и 52 для её значения; порядок 10 битов: 1 бит для знака и 10 для значения. Здесь можно порассуждать о диапазоне точности, а именно какое самое большое и самое маленькое число может хранить рассматриваемый тип данных: от 4,94 * 10−324 до 1,79 * 10308.
Но мы помним, что компьютерная память не резиновая, поэтому сохраняются первые разряды мантиссы. По-другому их ещё именуют значащими.
Итог: вещественные виды данных в программировании, примеры которых мы привели, характеризуются количеством значащих разрядов и диапазоном точности, что отличает их от целочисленных.
Слайд 10СИМВОЛЬНЫЙ ТИП ДАННЫХ В ПРОГРАММИРОВАНИИ.
В символьном типе переменная имеет только один символ,
СИМВОЛЬНЫЙ ТИП ДАННЫХ В ПРОГРАММИРОВАНИИ.
В символьном типе переменная имеет только один символ,
В соответствии с кодировкой, он преобразуется в некий символ.
Символьному виду данных в программировании присущ только размер выделяемой под них памяти.
ЛОГИЧЕСКИЙ ТИП ДАННЫХ В ПРОГРАММИРОВАНИИ.
У этого типа данных могут быть следующие значения: false (ложь) или true (правда). Ему соответствуют в языках С# и C++ тип bool, в Java – boolean.
Слайд 11ПЕРЕЧИСЛИМЫЙ ВИД ДАННЫХ В ПРОГРАММИРОВАНИИ.
Для внутреннего представления этот вид аналогичен целочисленному, но
ПЕРЕЧИСЛИМЫЙ ВИД ДАННЫХ В ПРОГРАММИРОВАНИИ.
Для внутреннего представления этот вид аналогичен целочисленному, но
Для более точного представления разберем пример на языке С++ (в С# и Java – аналогично):
enum Forms {shape, sphere, cylinder, polygon};
В данном случае переменные перечислимого вида данных Forms могут иметь только те значение, которые указаны в примере. Это удобно, поскольку мы работает не с числами, а определенными смысловыми значениями. Но компьютер считывает данные как целые числа.
Слайд 12МАССИВЫ ДАННЫХ.
Теперь рассмотрим сложные виды данных в программировании. И на первом месте
МАССИВЫ ДАННЫХ.
Теперь рассмотрим сложные виды данных в программировании. И на первом месте
Каждый массив определяется типом данных составляющих его элементов, а они могут быть абсолютно любыми. В программировании не допускается использование всего массива, работа осуществляется с определенной его частью. Для того, чтобы добраться до него, в трёх указанных выше языках применяют оператор «[]»:
array[0].
Индексом массива является целое число, ссылающее на определенную часть массива. Индекс, как правило, имеет вид int.
Слайд 13СТРУКТУРА.
До этого мы разобрали встроенные виды данных в программировании. Далее рассмотрим пользовательский
СТРУКТУРА.
До этого мы разобрали встроенные виды данных в программировании. Далее рассмотрим пользовательский
Структура хранит в себе комплект переменных различных видов. В программировании структуры нужны для того, чтобы объединить близкие по значению вещи.
КЛАСС.
Другим пользовательским видом данных в программировании является класс. Класс наделен теми же возможностями, что и структура, но, помимо параметров, он ещё имеет и методы. Также класс поддерживает большое число вещей, которые объединены объектно-ориентированным программированием.
Слайд 14Примеры видов данных в программировании
В языке Рython используются следующие типы данных программирования:
int
Примеры видов данных в программировании
В языке Рython используются следующие типы данных программирования:
int
char — символьный;
bool — логический;
float —с плавающей запятой;
double —с плавающей запятой двойной точности.
Слайд 15Язык программирования JavaScript содержит следующие типы данных:
srting — тип данных «строка»;
number —
Язык программирования JavaScript содержит следующие типы данных:
srting — тип данных «строка»;
number —
object — тип данных, хранящих свойства и методы;
undefined — тип данных, значения которых не определены;
boolean — логический;
null —с «пустыми» значениями.
Слайд 16ТИП ДАННЫХ — «ЧИСЛО».
В таком виде данных могут быть как дробные, так
ТИП ДАННЫХ — «ЧИСЛО».
В таком виде данных могут быть как дробные, так
int — целые, то есть числа без дробной части;
number — числовые данные (в JavaScript);
double — тип данных с плавающей запятой двойной точности;
float — вещественные, дробные числа с десятичной точкой.
Целые числа используют для подсчета, а вещественные — для измерения таких свойств, как вес.
Слайд 17ЛОГИЧЕСКИЕ (БУЛЕВЫЕ) ТИПЫ ДАННЫХ В ПРОГРАММИРОВАНИИ — boolean.
Принимая решение, что необходимо выполнить
ЛОГИЧЕСКИЕ (БУЛЕВЫЕ) ТИПЫ ДАННЫХ В ПРОГРАММИРОВАНИИ — boolean.
Принимая решение, что необходимо выполнить
Существуют ещё такие виды данных в программировании, как null, undefined, object (объект) — в JavaScript или list (список), dict (словарь), tuple (кортеж) — в Рython. Но чтобы познать азы программирования, достаточно будет знаний типов данных «строка», «число» и логическое значение.
Слайд 18Основой языка программирования Паскаль, как и любого другого языка, является алфавит — набор
Основой языка программирования Паскаль, как и любого другого языка, является алфавит — набор
В качестве неделимых элементов (составных символов) рассматриваются следующие последовательности символов: := (знак операции присваивания); >= и <= (знаки ≥ и ≤); (* и *) (начало и конец комментария).
В языке существует также некоторое количество различных цепочек символов, рассматриваемых как единые смысловые элементы с фиксированным значением. Такие цепочки символов называются служебными словами.
Слайд 19Для обозначения констант, переменных, программ и других объектов используются имена — любые
Для обозначения констант, переменных, программ и других объектов используются имена — любые
Прописные и строчные буквы в именах не различаются.
Длина имени может быть любой. Для удобства мы будем пользоваться именами, длина которых не превышает 8 символов.
Слайд 20ТИПЫ ДАННЫХ, ИСПОЛЬЗУЕМЫЕ В ЯЗЫКЕ ПАСКАЛЬ
В языке Паскаль используются различные типы данных.
ТИПЫ ДАННЫХ, ИСПОЛЬЗУЕМЫЕ В ЯЗЫКЕ ПАСКАЛЬ
В языке Паскаль используются различные типы данных.
Слайд 21integer — основной, но не единственный тип для работы с целочисленными данными.
integer — основной, но не единственный тип для работы с целочисленными данными.
В вещественном числе целая часть от дробной отделяется точкой, при этом перед точкой и после неё должно быть, по крайней мере, по одной цифре. Пробелы внутри числа недопустимы.
СТРУКТУРА ПРОГРАММЫ НА ЯЗЫКЕ ПАСКАЛЬ
В программе, записанной на языке Паскаль, можно выделить:
1) заголовок программы;
2) блок описания используемых данных;
3) блок описания действий по преобразованию данных (программный блок).
Заголовок программы состоит из служебного слова program и имени программы. После имени программы ставится точка с запятой.
Блок описания данных состоит из раздела описания констант (const), раздела описания переменных (var) и некоторых других разделов 2. В разделе описания переменных указываются имена используемых в программе переменных и их типы.
Слайд 22Имена переменных одного типа перечисляются через запятую, затем после двоеточия указывается их
Имена переменных одного типа перечисляются через запятую, затем после двоеточия указывается их
Программа может не иметь заголовка; в ней может отсутствовать блок описания данных. Обязательной частью программы является программный блок. Он содержит команды, описывающие алгоритм решения задачи. Программный блок начинается со слова begin и заканчивается словом end с точкой.
Ниже приведён общий вид программы:
Операторы — языковые конструкции, с помощью которых в программах записываются действия, выполняемые над данными в процессе решения задачи.
Точка с запятой служит разделителем между операторами, а не является окончанием соответствующего оператора.
Перед оператором end точку с запятой ставить не нужно.
Слайд 23ОПЕРАТОР ПРИСВАИВАНИЯ
Основное преобразование данных, выполняемое компьютером, — присваивание переменной нового значения, что означает
ОПЕРАТОР ПРИСВАИВАНИЯ
Основное преобразование данных, выполняемое компьютером, — присваивание переменной нового значения, что означает
Общий вид оператора:
<имя переменной>:=<выражение>
Операция присваивания допустима для всех приведённых в табл. 3.2 типов данных. Выражения в языке Паскаль конструируются по рассмотренным ранее правилам для алгоритмического языка.
Рассмотрим процесс выполнения операторов присваивания на следующем примере: а:=10; b:=5; s:=а+b
Слайд 24При выполнении оператора а:=10 в ячейку оперативной памяти компьютера с именем а
При выполнении оператора а:=10 в ячейку оперативной памяти компьютера с именем а
При выполнении оператора s:=a+b значения ячеек оперативной памяти с именами а и b переносятся в процессор, где над ними выполняется операция сложения.
Полученный результат заносится в ячейку оперативной памяти с именем s
Слайд 25САМОЕ ГЛАВНОЕ
Паскаль — универсальный язык программирования, получивший своё название в честь выдающегося учёного
САМОЕ ГЛАВНОЕ
Паскаль — универсальный язык программирования, получивший своё название в честь выдающегося учёного
В языке Паскаль используются различные типы данных: целочисленный (integer), вещественный (real), символьный (char), строковый (string), логический (boolean) и другие.
В программе, записанной на языке Паскаль, можно выделить: 1) заголовок программы; 2) описание используемых данных; 3) описание действий по преобразованию данных (программный блок).
Слайд 26Общий вид программы:
Общий вид программы:
Слайд 29ИНФОРМАЦИЯ И СУБД
Появление компьютеров не сразу привело к разработке информационных систем. На
ИНФОРМАЦИЯ И СУБД
Появление компьютеров не сразу привело к разработке информационных систем. На
Стремление выделить и обобщить общую часть информационных систем , ответственную за управление сложно-структурированными данными является одной из побудительных причин создания СУБД.
Слайд 30СУБД – СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ.
Понятие согласованности данных является ключевым понятием баз
СУБД – СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ.
Понятие согласованности данных является ключевым понятием баз
Для обеспечения параллельной работы с базой данных использование файлов не дает возможности одновременной модификации данных, т.к. первый же процесс накладывает блокировки на весь файл целиком, что приводит к генерации ошибки для параллельных процессов. СУБД обеспечивают более тонкую синхронизацию параллельного доступа к данным.
Слайд 31Если информационная система поддерживает два согласованных файла сотрудники и отделы и была
Если информационная система поддерживает два согласованных файла сотрудники и отделы и была
СТРУКТУРЫ ХРАНЕНИЯ ДАННЫХ И МЕТОДЫ ДОСТУПА К НИМ
Структурой хранения называется любое упорядочение данных на диске. Могут быть реализованы различные структуры хранения. Более того эти структуры могут меняться по мере изменения требований к производительности системы.
ДОСТУП К БАЗЕ ДАННЫХ
Поиск и предоставление данных пользователю осуществляется с помощью нескольких программ. При этом можно выделить следующие уровни доступа к данным: СУБДß(запрос данных)(возвращение данных)àДиспетчер файловß(запрос файла)(возвращение файла)àДиспетчер дисковß(дисковая операция ввода, вывода)(чтение данных с диска)àБД.
Слайд 321) В СУБД определяется искомая запись и затем для ее извлечения запрашивается
1) В СУБД определяется искомая запись и затем для ее извлечения запрашивается
Запись – хранимая информация об объекте базы данных.
2) Диспетчер файлов определяет страницу, на которой находится искомая запись, а затем для извлечения этой страницы запрашивают диспетчер диска.
Страницей (блоком) устройства ввода/вывода называется количество данных, передаваемых из вешней памяти в оперативную за одно обращение. Размер страницы обычно кратен одному килобайту.
3) Диспетчер дисков определяет физическое положение искомой страницы на диске, и посылает соответствующий запрос на ввод/вывод данных. Если в результате предыдущих запросов искомая страница уже находится в оперативной памяти, то этот пункт не выполняется.
С точки зрения СУБД база данных представляет собой набор записей, которые могут просматриваться с помощью диспетчера файлов. Диспетчер файлов рассматривает базу данных как набор страниц, просматривая с помощью диспетчера дисков. Диспетчер дисков непосредственно работает с диском.
Слайд 33ДИСПЕТЧЕР ДИСКОВ
Диспетчер дисков является компонентом ОС. При выполнении дисковых операций необходимо знать
ДИСПЕТЧЕР ДИСКОВ
Диспетчер дисков является компонентом ОС. При выполнении дисковых операций необходимо знать
Соответствие физических номер на диске и номеров страниц достигается с помощью диспетчера дисков. Преимуществом такого подхода является аппаратная независимость программных компонентов высокого уровня.
Один из наборов страниц называется набором пустых страниц и содержит все имеющиеся свободные страницы.
Основные операции выполняемы диспетчером диска:
1) извлечь страницу P из набора страниц S
2) заменить страницу P из набора страниц S
3) добавить новую страницу в набор страниц S (то есть извлечь одну страницу из набора пустых страниц и возвратить новую страницу с номером P)
4) удалить страницу P из набора S (то есть возвратить страницу с номером P в набор пустых страниц)
Слайд 34Файлом называется набор однотипных записей. Основными операциями выполняемыми диспетчером файлов являются:
1) извлечь
Файлом называется набор однотипных записей. Основными операциями выполняемыми диспетчером файлов являются:
1) извлечь
2) заменить запись M из файла F
3) добавить новую запись R в файл F
4) удалить запись R из файла F
5) создать новый файл F
6) удалить F
В одних системах диспетчер файлов является компонентом ОС а в других поставляется в составе СУБД.
Слайд 35КЛАСТЕРИЗАЦИЯ
Это процесс как можно более близкого физического размещения на диске, логически связанных
КЛАСТЕРИЗАЦИЯ
Это процесс как можно более близкого физического размещения на диске, логически связанных
Сегментà экстент (непрерывная последовательность блоков).
Различают внутрифайловую и межфайловую кластеризацию. Например, у нас есть два файла: файл поставщиков и файл товаров. Если нам нужно получить поставщиков с номерами идентификаторов от ИД1 до ИД9, то оптимальным будет выполнение кластеризации поставщиков в соответствии с возрастанием убыванием) идентификаторов.
Если требуется одновременно получать информацию о поставщике и его товарах, то записи из двух разных файлов должны располагаться рядом. Для эффективного доступа. Это пример межфайловой кластеризации.
В каждый момент времени кластеризацию можно осуществить только одним из способов поскольку это связано с физическим размещением данных на диске.
Слайд 36ФИЗИЧЕСКОЕ РАЗМЕЩЕНИЕ ДАННЫХ НА ДИСКЕ
Логическая последовательность страниц задается с помощью указателей, то
ФИЗИЧЕСКОЕ РАЗМЕЩЕНИЕ ДАННЫХ НА ДИСКЕ
Логическая последовательность страниц задается с помощью указателей, то
С целью сохранения близкого расположения логически связанных страниц на диске диспетчер дисков обычно размещает или удаляет страницы в наборах не по одной, а экстентами.
Для получения информации о размещении различных наборов страниц, диспетчеру дисков достаточно знать расположение только первой страницы в группе, расположение остальных определяется с помощью указателей в заголовках страниц. Все имеющиеся наборы страниц вместе с указателями на первые страницы каждого из наборов перечислены в отдельном месте на диске. Это место, а именно страница часто называется таблицей содержания диска, каталогом набора страниц или просто страницей «нуль».
Слайд 37Записи в пределах страницы также можно разместить в соответствии с логическим порядком.
Записи
Записи в пределах страницы также можно разместить в соответствии с логическим порядком.
Записи
Согласно выше – изложенному, для каждого файла всегда можно осуществить последовательный доступ ко всем записям. Такая последовательность называется физической хотя она не обязательно соответствует физическому размещению данных на диске. Запись может содержать дополнительную информацию в так называемой приставке, в частности здесь может содержаться информация об идентификационном номере файла, которому принадлежит запись (в случае межфайловой кластеризации), длина записи (для записи переменной длины), флаг удаления, указатель при связывании записей в цепочку и тд.
Слайд 38Индексирование
Пример: Поставщики
Индексирование
Пример: Поставщики
Слайд 39При наличии индекса, имеется несколько стратегий доступа к данным из файла поставщики.
При наличии индекса, имеется несколько стратегий доступа к данным из файла поставщики.
Если доля поставщиков из Ростова, по отношению к их количеству достаточно мала, то 2я стратегия будет эффективней 1й. Это связано с тем, что в силу упорядоченности записей в файле города, поиск будет прекращен с следующего за ростовом названия города, во вторых, если придется просмотреть файл городов полностью, то при этом потребуется значительно меньше операций ввода вывода. Поскольку файл городов имеет размер меньший чем файл поставщиков.
В просматриваемом примере файл городов называется индексным файлом или просто индексом по отношению к файлу поставщиков. Индексный файл это файл, который содержит данные из другого файла, который называется индексированным (в примере файл поставщики) и вид указателя фактические данные (файл поставщики). RID указатель служит для связывания записи индексного файла с записью индексируемого файла.
Слайд 40Использование индексов на ряду с ускорением выборки имеет недостаток , который связан
Использование индексов на ряду с ускорением выборки имеет недостаток , который связан
Индексы так же могут использоваться для проверки наличия некоторого значения. Например для ответа на вопрос, если поставщики из города Батайск, достаточно будет просмотреть только индексный файл. Файл может иметь несколько индексов, которые могут использоваться совместно. Кроме того индексы могут быть составными, которые эффективно могут использоваться при поиске значений в первом столбце или в первом втором, третьем.
Индексы часто называют инвертированными списками. Файл с индексами по каждому полю называется полностью инвертированным.
Слайд 41ПЛОТНОЕ И НЕПЛОТНОЕ ИНДЕКСИРОВАНИЕ
Плотный индекс имеет вход для каждой записи индексированного файла.
ПЛОТНОЕ И НЕПЛОТНОЕ ИНДЕКСИРОВАНИЕ
Плотный индекс имеет вход для каждой записи индексированного файла.
Для данного файла может быть построено любое число плотных индексов и только 1 неплотный индекс.
Слайд 42СТРУКТУРА ТИПА B-TREE
Дерево состоит из двух множеств: множество вершин и множество дуг.
СТРУКТУРА ТИПА B-TREE
Дерево состоит из двух множеств: множество вершин и множество дуг.
Необходимость создания структуры B tree заключается в желании заключается в желании в избежание просмотра всего содержимого индексного файла. Идея состоит в том, чтобы создать для индексного файла еще 1 индекс и так далее. При этом индекс на каждом из уровней будет не плотным по отношению к нижнему индексированному уровню. Такой многоуровневый индекс состоит из двух частей: набора последовательностей и набора индексов.
Набор последовательностей включает одноуровневый индекс для реальных данных, который обычно является, при этом записи внутри индекса сгруппированы по страницам, а страницы связаны в цепочку, что дает возможность организовать быстрый последовательный доступ к индексированным данным.
Слайд 43НАБОР ИНДЕКСОВ
Обеспечивает быстрый непосредственный доступ к наборам последовательностей (последовательным данным). Фактически набор
НАБОР ИНДЕКСОВ
Обеспечивает быстрый непосредственный доступ к наборам последовательностей (последовательным данным). Фактически набор
Одним из недостатков иерархических структур является несбалансированность их работы после удаления или вставки некоторых элементов. В результате элементы с реальными данными могут оказаться на разных расстояниях от корневого элемента.
Продолжительность поиска в несбалансированной структуре может оказаться непредсказуемой. Преимуществом структуры типа B tree является возможность сбалансированной вставки или удаление значений.
Слайд 44Для вставки нового значения V в структуру типа B-tree порядка n. Пусть
Для вставки нового значения V в структуру типа B-tree порядка n. Пусть
Например, может быть использован следующий алгоритм:
1) на самом низком уровне набора индексов следует найти элемент содержащий 2m индексных записей. Нам нужно отложит элемент N содержащий 2m индексных записей. Если элемент N содержит свободное пространство, то значение вставляется в него и на этом процесс завершается.
2) в противном случае (если свободного пространства нет) элемент N разделяем на два элемента N1 и N2. Обозначим символом S множество 2m+1 значений, в котором 2m несходных значений и 42. Первые m значений этой логической последовательности и среднее между ними значение W необходимо поместить в элемент N1. А последние m в элемент N2. Значение W необходимо поместить в родительский элемент P на более высоком структурном уровне. В последствии при осуществлении поиска некоторого значения U, достижения элемента P, поиск будет перенаправлен в сторону элемента N1 (если U<=W), либо в сторону элемента N (если U> W).
Слайд 45Далее этот процесс следует повторить для вставки среднего значения W в родительский
Далее этот процесс следует повторить для вставки среднего значения W в родительский
В худшем случае процесс разделения элемента структуры может продлиться вплоть до корневого элемента с образованием нового иерархического уровня.
Для удаления элемента следует применить аналогичный алгоритм в обратном порядке.
Слайд 46КЭШИРОВАНИЕ
Стилем и порядком дерева называется максимально допустимое количество дочерних узлов для каждого родительского
КЭШИРОВАНИЕ
Стилем и порядком дерева называется максимально допустимое количество дочерних узлов для каждого родительского
Слайд 47Для выбора «хорошей» функции хэширования необходимо знать, во первых примерное число записей
Для выбора «хорошей» функции хэширования необходимо знать, во первых примерное число записей
Слайд 48Функция хэширования выбирается таким образом чтобы максимально удовлетворить следующим условиям:
1)каждое ее значение
Функция хэширования выбирается таким образом чтобы максимально удовлетворить следующим условиям:
1)каждое ее значение
2) она должна быть удобной для вычислений, то есть вычисления значения функции должно происходить быстро,
3) для множества реальных значения ключа значения функции хэширования должны быть явно вероятными.
Если хэш функция удовлетворяет 3му условию, то говорят, что она перемешивает значения ключа. Если это условие нарушено, то может оказаться так, что часть блоков окажется переполненной, в то время как остальные будут заполнены незначительно, что отрицательно скажется на эффективности доступа.
Слайд 49НЕПРИГОДНОСТЬ ФАЙЛОВ С ХЭШ АДРЕСАЦИЕЙ К ГРУППОВОЙ ОБРАБОТКЕ
Прямой доступ имеет место, когда
НЕПРИГОДНОСТЬ ФАЙЛОВ С ХЭШ АДРЕСАЦИЕЙ К ГРУППОВОЙ ОБРАБОТКЕ
Прямой доступ имеет место, когда
Назовем коэффициентов активности отношение числа ответов к числу записей в файле. Коэффициент активности близок к единице, когда требуется получить почти все записи из файла (например платежная ведомость).
Прямой доступ имеет место, когда коэффициент активности близок к нулю. То есть нужно найти одну запись. При групповой обработке использовать последовательный файл бывает выгодней чем файл с хэш адресацией.
Для того чтобы правильно выбрать организацию файла, необходимо хотя бы приблизительно знать коэффициент активности файла.
Слайд 50ЦЕПОЧКИ УКАЗАТЕЛЕЙ
Для выполнения запроса типа “найти поставщиков из города N” можно применить
ЦЕПОЧКИ УКАЗАТЕЛЕЙ
Для выполнения запроса типа “найти поставщиков из города N” можно применить
Из файла поставщиков извлекается атрибут город, который формирует родительскую структуру городов. Файл поставщиков по отношению к этому родительскому файлу называется дочерним. При выполнении запроса в такой дочерней структуре в файле городов находится нужный город, а затем по цепочке указателей извлекаются записи поставщиков из данного города.
При таком способе не будет выполняться чтение записей поставщиков из других городов. Другим преимуществом данной структуры является более простое выполнение вставки и удаления записей по сравнению с индексной структурой. Кроме того эта структура занимает меньше места на диске, поскольку нет повторения названия городов.
Слайд 51НЕДОСТАТКИ СТРУКТУРЫ
Для доступа к Nму поставщику требуется перебрать все предыдущие записи поставщиков.
НЕДОСТАТКИ СТРУКТУРЫ
Для доступа к Nму поставщику требуется перебрать все предыдущие записи поставщиков.
Структура весьма неэффективна для обратного запроса: «найти город данного поставщика». Дело в том, что для поиска названия города приходится просматривать всю цепочку. В итоге часто совместно с цепочкой указателей приходится использовать другие структуры.
Создать родительско – дочернюю структуру в уже имеющемся наборе записей не так просто, поскольку цепочки указателей пронизывают все записи. А значения соответствующих полей необходимо извлечь и выстроить родительский файл. Выполнить же индексирование имеющегося набора гораздо проще.
Слайд 52МЕРЫ ПО УЛУЧШЕНИЮ СТРУКТУРЫ
1) Указатели можно задать также и в обратном направлении.
МЕРЫ ПО УЛУЧШЕНИЮ СТРУКТУРЫ
1) Указатели можно задать также и в обратном направлении.
2) В записи дочерней структуры можно добавить указатель на родительскую запись.
3) Можно не удалять атрибут город из дочерней структуры.
В данном файле можно задать как любое количество индексов так и любое количество цепочек указателей.
Слайд 53УПРАВЛЕНИЕ ДАННЫМИ РАСПОЛОЖЕННЫМИ В ОПЕРАТИВНОЙ ПАМЯТИ
Возможность размещать базу данных целиком в оперативной
УПРАВЛЕНИЕ ДАННЫМИ РАСПОЛОЖЕННЫМИ В ОПЕРАТИВНОЙ ПАМЯТИ
Возможность размещать базу данных целиком в оперативной
При простом перемещении данных «дисковой» СУБД в оперативную память, ожидаемого повышения производительности не произойдет. Дело в том, что реляционная база данных функционирует исходя из предположения, что обрабатываемые данные в основном находятся на диске. Алгоритмы оптимизации, управление буферным пулом и технология извлечения данных на основе индексов – все это существенным образом ориентировано на дисковое хранение данных.
Оптимизация запросов также выполняется исходя из предположения о хранении данных на диске. При работе с данными резидентно находящимися в ОП, надобность в буферном пуле отпадает.
Слайд 54В традиционной СУБД узел B-tree представляет собой страницу диска и содержит максимально
В традиционной СУБД узел B-tree представляет собой страницу диска и содержит максимально
В Times Ten используется индекс типа T-tree оптимизированный для доступа к ОП. Для навигации по дереву используется указатели <= и >, представляющие собой непосредственно ссылки на адрес памяти, а не на дисковую страницу.
В Times Ten используются технологии индексирования двух типов: Хэш-индексы и T-tree. Хэш индексы используются, когда требуется найти точные совпадения с образцом, а T-tree более подходит для поиска значений в диапазоне. Хэшированные индексы создаются автоматически, когда в данных задается первичный ключ, а T-tree создаются при помощи команды.