Файл: СПОСОБЫ ПРЕДОСТАВЛЕНИЯ ДАННЫХ В ИНФОРМАЦИОННЫХ СИСТЕМАХ.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.03.2023

Просмотров: 447

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Агрегация на уровне типов предполагает множество агрегаций на уровне знаков. Некоторый тип может выступать и как обобщение, и как агрегат одновременно. Например, тип ЛИЧНОСТЬ есть обобщение двух типов служащий и студент. В то же время тип ЛИЧНОСТЬ является одновременно агрегатом свойств ФИО, ВОЗРАСТ, АДРЕС (см. рис. 2.1). Агрегация позволяет раскрыть структуру объектов. Допускается многократное применение агрегации. Процесс обратный агрегации носит название пошаговой детализации и широко применяется в программировании. Обобщение и агрегация соотносятся с понятиями ЕСТЬ_ЧАСТЬ и ЕСТЬ _ НЕК, используемыми в проблематике искусственного интеллекта. Понятие ЕСТЬ _ ЧАСТЬ выражает тот факт, что тип объекта есть агрегат других типов (например, ФАМИЛИЯ ЕСТЬ_ЧАСТЬ СЛУЖАЩИЙ). Понятие ЕСТЬ_НЕК выражает факт обобщения одним типом объекта другого типа объекта (например, СЛУЖАЩИЙ ЕСТЬ_НЕК ЛИЧНОСТЬ). Оба эти понятия определяют связи между типами, подразумевающие и связи между знаками. Однако на уровне знаков эти понятия, как правило, не употребляются. Абстракции неформально давно применяются в управлении данными: агрегация – при конструировании файла для группирования полей в запись, обобщение – для представления множества записей общим типом объекта – файлом, а также для выборки из файла подмножества записей. Агрегация и обобщение могут применяться взаимодополняющим образом и выражать структурные и классификационные аспекты типизации. Структуру типа можно представить как агрегат базовых типов, а сам агрегат может служить объектом обобщения (классификации). Классификация типов может быть выражена иерархией обобщения, а структура – иерархией агрегации. Рис. 2.3 иллюстрирует абстракцию личности.[15]

Применяя подход «снизу вверх», абстракцию можно представить как процесс синтеза сложных объектов из простых. Вначале классификация знаков позволяет сформировать типы, затем путем обобщения и агрегации синтезируются новые обобщенные и агрегированные объекты. С другой стороны, аналитический подход «сверху вниз» дает возможность, начав со сложных объектов, путем их декомпозиции с применением специализации и порождения реализации, прийти к уровню знаков. Обычно подход «сверху вниз» применяют с целью понять сложные явления, а подход «снизу вверх» для конструирования сложных объектов. Оба подхода могут применяться одновременно. Множества: домены и атрибуты. Множество это собрание правильно идентифицированных объектов, удовлетворяющих условию принадлежности. Условие принадлежности может быть например сформулировано следующим образом: «все четные, целые, положительные» (т, е. {2, 4, 6, ...}) или «все десятичные цифры» (т. е. {0, 1, 2, ...9}). Множество бывает конечным или бесконечным. Так, первое из приведенных множеств является бесконечным, а второе конечным. Само множество может быть элементом других множеств (например, {{0}, {1, 3, 5, 7}, {2, 4, 6, 8}}). Пустое множество, обозначаемое { } или ∅, всегда является элементом множества множеств. В классической теории множеств не подразумевается упорядоченности элементов множества, а дубликаты не имеют смысла; кроме того, условие принадлежности не зависит от представления элементов множества. Поэтому, например, множества {1, 2, 3} и {3, 2, 3, 1, 3} считаются эквивалентными. Эквивалентными считаются множества {а / а = 0, 1} и {b / b – есть двоичная цифра};


они оба определяют множество двоичных цифр {0, 1}. В моделировании данных теория множеств применяется неформальным образом и ряд теоретических результатов классической теории не используется. Как уже отмечалось, понятие классического множества не связано с какой-либо упорядоченностью его элементов. Упорядоченность классического множества может быть задана с помощью двухместных кортежей. Например, упорядоченный вариант множества {а, b, с} это множество, состоящее из двухместных кортежей: {< 1, а >, < 2, b >, < 3, с >}. Двухместные кортежи определяются через вложение множеств. Так, множество множеств {{1}, {1, а}} определяет кортеж < 1, а >. Такое представление порядка носит достаточно произвольный характер и при нечетко зафиксированных соглашениях может привести к неоднозначности толкования. Проблема еще более усложняется при n-местных кортежах. В этом случае требуется ввести точные предположения относительно способа спецификации вложений.[16]

Существует несколько причин, по которым в информационных системах необходимо манипулировать n-местными упорядоченными кортежами. Вопервых, данные должны быть в конечном итоге заложены в память ЭВМ, которая по своей природе есть упорядоченное множество ячеек. Следовательно, данные должны быть отображены в упорядоченное множество слов, байтов и т. п. Другая, еще более важная причина, состоит в том, что порядок часто используется для представления более глубоких семантических свойств, например, времени. Хотя в компьютерной системе время как часть реального мира может быть представлено так называемыми временными штемпелями, большинство моделей данных не предусматривает явного управления временем, что объясняется известными сложностями реализации. В этом случае последовательность возникновения явлений или выполнения операций представляется с помощью упорядочения.

1.3. Типы данных

Данным приписываются несколько классификационных признаков. Важнейшим из них является тип данных. Тип данных определяет:

· набор их допустимых значений;

· правила их обработки (преобразования);

· порядок их размещения в ОЗУ и ВЗУ при хранении;

· порядок доступа к ним (т.е. обращение и извлечение при необходимости с места хранения).[17]

Допустимый набор типов данных и их особенности определяются программной системой или языком программирования, на котором система написана. При этом возможности языков по разнообразию допустимых типов данных, а также построению новых типов различаются весьма сильно. Ясно, что чем более широкой и гибкой оказывается типизация данных в программной системе или языке, тем больше возможностей предоставляется пользователю в решении задачи оптимального представления, хранения и применения данных. Типизация данных влияет и на компактность самой исполняемой программы. Например, в языке BASIC отсутствует тип данных «записи»; в результате для создания и использования базы данных пришлось бы организовывать параллельную обработку нескольких массивов.[18]


Следующим признаком является деление данных на элементарные (одиночные, простые) и структурированные (сложные).

К элементарным данным относятся символы, числа (целые и вещественные) и логические данные. Общей и обязательной особенностью одиночных данных является то, каждое из них имеет одно значение и собственное имя. Значение - это содержимое тех ячеек памяти, где данное располагается. Имя (его называют также идентификатор) - это обозначение данного в тексте программы. Правила построения идентификаторов элементарных данных определяются языком программирования написанной программы.

Элементарные данные являются «кирпичиками», путем объединения которых строятся сложные данные. Вариантов объединения существует много - это приводит к появлению множества типов структур данных.

Информационный массив, объединяющий данные и связи (отношения) между ними называется структурированными данными.

Перечень объединяемых одиночных данных, их характеристики, а также особенности связей между ними образуют структуру данных.

Примерами структурированных данных является страница из классного журнала с фамилиями учеников, датами занятий и отметками, телефонный справочник, организационная структура учреждения и т.п.[19]

Перечень допустимых структур данных, как уже было сказано, определяется языком программирования или прикладной программой. Он может быть фиксированным (нерасширяемым), как в языке BASIC или прикладных программах без встроенных возможностей программирования. В развитых языках программирования (PASCAL, С и др.) и ряде прикладных систем наряду с зарезервированными типами структур данных допускается создание новых типов, причем, элементами структуры могут быть сложные данные, например, массив записей.

Сложные данные, как и элементарные, имеют значения и идентификаторы. Значения размещаются в ячейках ОЗУ по определенным схемам (см. п.6.3.3.). Правила построения идентификаторов устанавливаются языком программирования или программной системой. Исключение составляют правила формирования имен файлов - они задаются операционной системой и должны соблюдаться всеми работающими в ней программами и языками. Например, в MS-DOS в качестве имен файлов допустимы комбинации из латинских букв, цифр и некоторых спецсимволов общей длиной не более 8 знаков; в Windows 95 (98), имеющую 32-х разрядную файловую систему, разрешены имена длиной до 255 знаков без ограничений применяемого набора символов.[20]


По возможности изменения значений данных (как простых, так и структурированных) в ходе общей обработки их подразделяют на переменные и постоянные (константы). Из названия очевидно, что переменные могут изменять свое значение по ходу исполнения программы, а константы - нет. На уровне операционной системы различие между переменными и постоянными величинами отсутствует, поэтому у них одинаковый порядок размещения в ОЗУ и доступа к ним. Разделение может производиться в языке программирования и, соответственно, в созданной с его помощью прикладной программе; такое разделение служит дополнительной мерой синтаксического контроля корректности программы.

В зависимости от того, на каком этапе обработки данные используются, они подразделяются на исходные (входные), промежуточные и выходные. К исходным относятся данные, необходимые для исполнения программы и вводимые в нее до или в процессе работы. Исходные данные могут быть предварительно записаны на некотором носителе и вводиться с него, поступать по линиям связи от каких-то датчиков или с других компьютеров, вводиться пользователем программы посредством устройств ввода. Промежуточные данные формируются в ходе исполнения программы и, чаще всего, пользователю недоступны; они не отображаются на устройствах вывода, но существуют в ОЗУ или на ВЗУ. Идентификаторы промежуточным данным присваивает разработчик программы или задает сама программа по заложенным в нее правилам. Выходные данные являются результатом работы программы - ради них и производится обработка входных. Выходные данные, предназначенные для человека, представляются в требуемой для него форме (тексты, рисунки, звуки); при хранении выходных данных на носителях или передаче по сетям сохраняется двоичный компьютерный формат их представления. Таким образом, работу программы можно рассматривать как действия по преобразованию входных данных в выходные через необходимые для этого промежуточные. С точки зрения самой программы все эти виды равноправны, т.е. обрабатываются только в соответствии с их типом, а не функциональным назначением или этапом.

Представление данных при их хранении и обработке требует решения трех основных задач:

· определить способы представления элементарных (простых) данных;

· определить способы объединения данных в структуры;

· установить способы размещения информации на материальном носителе.[21]

Выделяют три уровня представления данных - концептуальный, логический и физический. На концептуальном уровне определяется общая структура информационного массива - она называется моделью данных. Известны и используются несколько моделей данных: иерархическая, сетевая, реляционная, объектно-ориентированная. В соответствии с выбранной моделью данных строится информационная система, в которой данные будут храниться, а также программы, ведущие их обработку (манипулирование данными). Логический уровень определяет способы представления элементарных данных, их перечень при объединении в структуру, а также характер связей между ними в рамках выбранной модели данных. Физический уровень определяет форматы размещения созданной логической структуры данных на внешних носителях информации (магнитных или оптических дисках, бумаге, в памяти компьютера). Представление данных является важным фактором, обеспечивающим компактный (т.е. экономный с точки зрения расходования носителя) способ записи информации при хранении и быстрый доступ к нужным данным при их использовании. [22]


Глава 2. Виды способов предоставления данных в информационных системах

2.1. Элементарные и линейные данные и их хранение

Элементарные данные и их хранение Элементарные данные (числа, символы, логические данные, указатели) имеют определенное машинное представление и занимают вполне определенные единицы памяти ЭВМ. Это позволяет рассчитывать объем памяти, необходимый для размещения информационных массивов. Числовые данные присутствуют во всех языках программирования. К ним относятся целые, вещественные и комплексные числа. Для представления чисел наиболее часто используется позиционная система счисления с каким-либо основанием. В ЭВМ наиболее употребительными являются системы счисления с двоичным, восьмеричным и шестнадцатеричным основанием. При любом основании числа в ЭВМ представляются в виде двоичных кодов (двоичных слов) фиксированной длины. Разряды двоичного числа (0, 1) называются битами. Двоичные слова в современных ЭВМ обычно разбиваются на фиксированные части по 8 бит, называемые байтами. В ЭВМ приняты две формы представления чисел: с фиксированной точкой (запятой) и с плавающей точкой (запятой). [23]

Эти формы называют также соответственно естественной и полулогарифмической. Положение точки фиксируется: для целых чисел – после младшего разряда, для дробных чисел – перед старшим цифровым разрядом. Для представления знака числа выделяется знаковый разряд (обычно крайний слева). Плюс в этом разряде кодируется нулем, а минус – единицей. Для выполнения арифметических операций над числами обеих полярностей в ЭВМ используются прямой, обратный и дополнительный коды. В современных ЭВМ преимущественно используется дополнительный код. Знак 44 числа в дополнительном коде кодируется двумя крайними слева битами. Плюс кодируется как 00, минус – как 11. Примеры представления целых и дробных двоичных чисел с фиксированной точкой при использовании дополнительного кода приведены на рис. 4.1, а, б соответственно. При обработке чисел с фиксированной точкой диапазон их представления жестко определяется разрядной сеткой машины. Для целых чисел: 1} x } 2n. Для дробных чисел: 2-(n+1) } x } 2-1. При выходе чисел за пределы указанных диапазонов возникает необходимость дополнительного их масштабирования (см. приложение 1).