Что такое логический файл
Сайт учителя информатики. Технологические карты уроков, Подготовка к ОГЭ и ЕГЭ, полезный материал и многое другое.
Информатика. 7 класса. Босова Л.Л. Оглавление
Логические имена устройств внешней памяти компьютера
К каждому компьютеру может быть подключено несколько устройств внешней памяти. Основным устройством внешней памяти ПК является жёсткий диск. Если жёсткий диск имеет достаточно большую ёмкость, то его можно разделить на несколько логических разделов.
Наличие нескольких логических разделов на одном жёстком диске обеспечивает пользователю следующие преимущества:
- можно хранить операционную систему в одном логическом разделе, а данные — в другом, что позволит переустанавливать операционную систему, не затрагивая данные;
- на одном жёстком диске в различные логические разделы можно установить разные операционные системы;
- обслуживание одного логического раздела не затрагивает другие разделы.
Каждое подключаемое к компьютеру устройство внешней памяти, а также каждый логический раздел жёсткого диска имеет логическое имя.
В операционной системе Windows приняты логические имена устройств внешней памяти, состоящие из одной латинской буквы и знака двоеточия:
- для дисководов гибких дисков (дискет) — А: и В:;
- для жёстких дисков и их логических разделов — С:, D:, Е: и т. д.;
- для оптических дисководов — имена, следующие по алфавиту после имени последнего имеющегося на компьютере жёсткого диска или раздела жёсткого диска (например, F:);
- для подключаемой к компьютеру флеш-памяти — имя, следующее за последним именем оптического дисковода (например, G:).
В операционной системе Linux приняты другие правила именования дисков и их разделов. Например:
- логические разделы, принадлежащие первому жёсткому диску, получают имена hdal, hda2 и т. д.;
- логические разделы, принадлежащие второму жёсткому диску, получают имена hdbl, hdb2 и т. д.
Файл
Все программы и данные хранятся во внешней памяти компьютера в виде файлов.
Файл — это поименованная область внешней памяти.
Файловая система — это часть ОС, определяющая способ организации, хранения и именования файлов на носителях информации.
Файл характеризуется набором параметров (имя, размер, дата создания, дата последней модификации) и атрибутами, используемыми операционной системой для его обработки (архивный, системный, скрытый, только для чтения). Размер файла выражается в байтах.
Файлы, содержащие данные — графические, текстовые (рисунки, тексты), называют документами, а файлы, содержащие прикладные программы, — файлами-приложениями. Файлы-документы создаются и обрабатываются с помощью файлов-приложений.
Имя файла, как правило, состоит из двух частей, разделенных точкой: собственно имени файла и расширения. Собственно имя файлу даёт пользователь. Делать это рекомендуется осмысленно, отражая в имени содержание файла. Расширение имени обычно задаётся программой автоматически при создании файла. Расширения не обязательны, но они широко используются. Расширение позволяет пользователю, не открывая файла, определить его тип — какого вида информация (программа, текст, рисунок и т. д.) в нём содержится. Расширение позволяет операционной системе автоматически открывать файл.
В современных операционных системах имя файла может включать до 255 символов, причём в нём можно использовать буквы национальных алфавитов и пробелы. Расширение имени файла записывается после точки и обычно содержит 3-4 символа.
В ОС Windows в имени файла запрещено использование следующих символов: \, /. *, ?, «, , |. В Linux эти символы, кроме /, допустимы, хотя использовать их следует с осторожностью, так как некоторые из них могут иметь специальный смысл, а также из соображений совместимости с другими ОС.
Операционная система Linux, в отличие от Windows, различает строчные и прописные буквы в имени файла: например, FILE.txt, file.txt и FiLe.txt — это в Linux три разных файла.
В таблице приведены наиболее распространённые типы файлов и их расширения:
В ОС Linux выделяют следующие типы файлов:
- обычные файлы — файлы с программами и данными;
- каталоги — файлы, содержащие информацию о каталогах;
- ссылки — файлы, содержащие ссылки на другие файлы;
- специальные файлы устройств — файлы, используемые для представления физических устройств компьютера (жёстких и оптических дисководов, принтера, звуковых колонок и т. д.).
Каталоги
На каждом компьютерном носителе информации (жёстком, оптическом диске или флеш-памяти) может храниться большое количество файлов. Для удобства поиска информации файлы по определённым признакам объединяют в группы, называемые каталогами или папками.
Каталог также получает собственное имя. Он сам может входить в состав другого, внешнего по отношению к нему каталога. Каждый каталог может содержать множество файлов и вложенных каталогов.
Каталог — это поименованная совокупность файлов и подкаталогов (вложенных каталогов).
Каталог самого верхнего уровня называется корневым каталогом.
В ОС Windows любой информационный носитель имеет корневой каталог, который создаётся операционной системой без участия пользователя. Обозначаются корневые каталоги добавлением к логическому имени соответствующего устройства внешней памяти знака «\» (обратный слэш): А:\, В:\, С:\, D:\, Е:\ и т. д.
В Linux каталоги жёстких дисков или их логических разделов не принадлежат верхнему уровню файловой системы (не являются корневыми каталогами). Они «монтируются» в каталог mnt. Другие устройства внешней памяти (гибкие, оптические и флеш-диски) «монтируются» в каталог media. Каталоги mnt и media, в свою очередь, «монтируются» в единый корневой каталог, который обозначается знаком « / » (прямой слэш).
Файловая структура диска
Файловая структура диска — это совокупность файлов на диске и взаимосвязей между ними.
Файловые структуры бывают простыми и многоуровневыми (иерархическими).
Простые файловые структуры могут использоваться для дисков с небольшим (до нескольких десятков) количеством файлов. В этом случае оглавление диска представляет собой линейную последовательность имён файлов (рис. 2.8). Его можно сравнить с оглавлением детской книжки, которое содержит названия входящих в неё рассказов и номера страниц.
Иерархические файловые структуры используются для хранения большого (сотни и тысячи) количества файлов. Иерархия — это расположение частей (элементов) целого в порядке от высшего к низшим. Начальный (корневой) каталог содержит файлы и вложенные каталоги первого уровня. Каждый из каталогов первого уровня может содержать файлы и вложенные каталоги второго уровня и т. д. (рис. 2.9). В этом случае оглавление диска можно сравнить с оглавлением нашего учебника: в нём выделены главы, состоящие из параграфов, которые, в свою очередь, разбиты на отдельные пункты и т. д.
Пользователь, объединяя по собственному усмотрению файлы в каталоги, получает возможность создать удобную для себя систему хранения информации. Например, можно создать отдельные каталоги для хранения текстовых документов, цифровых фотографий, мелодий ит. д.; в каталоге для фотографий объединить фотографии по годам, событиям, принадлежности и т. д. Знание того, какому каталогу принадлежит файл, значительно ускоряет его поиск.
Графическое изображение иерархической файловой структуры называется деревом. В Windows каталоги на разных дисках могут образовывать несколько отдельных деревьев; в Linux каталоги объединяются в одно дерево, общее для всех дисков (рис. 2.10). Древовидные иерархические структуры можно изображать вертикально и горизонтально.
Полное имя файла
Чтобы обратиться к нужному файлу, хранящемуся на некотором диске, можно указать путь к файлу — имена всех каталогов от корневого до того, в котором непосредственно находится файл.
В операционной системе Windows путь к файлу начинается с логического имени устройства внешней памяти; после имени каждого подкаталога ставится обратный слэш. В операционной системе Linux путь к файлу начинается с имени единого корневого каталога; после имени каждого подкаталога ставится прямой слэш.
Последовательно записанные путь к файлу и имя файла составляют полное имя файла. Не может быть двух файлов, имеющих одинаковые полные имена.
Пример полного имени файла в ОС Windows:
Пример полного имени файла в ОС Linux:
Задача 1. Пользователь работал с каталогом С:\Физика\Задачи\Кинематика. Сначала он поднялся на один уровень вверх, затем ещё раз поднялся на один уровень вверх и после этого спустился в каталог Экзамен, в котором находится файл Информатика.dос. Каков путь к этому файлу?
Решение. Пользователь работал с каталогом С:\Физика\Задачи\Кинематика. Поднявшись на один уровень вверх, пользователь оказался в каталоге С:\Физика\Задачи. Поднявшись ещё на один уровень вверх, пользователь оказался в каталоге СДФизика. После этого пользователь спустился в каталог Экзамен, где находится файл. Полный путь к файлу имеет вид: С:\Физика\Экзамен.
Задача 2. Учитель работал в каталоге D:\Уроки\7 класс\Практические работы. Затем перешёл в дереве каталогов на уровень выше, спустился в подкаталог Презентации и удалил из него файл Введение, ppt. Каково полное имя файла, который удалил учитель?
Решение. Учитель работал с каталогом D:\Уроки\7 класс\Практические работы. Поднявшись на один уровень вверх, он оказался в каталоге D:\Уроки\8 класс. После этого учитель спустился в каталог Презентации, путь к файлам которого имеет вид: D:\Уроки\ 7 класс\Презентации. В этом каталоге он удалил файл Введение.ppt, полное имя которого D:\Уроки\8 класс\ Презентации \Введение.ррt.
Работа с файлами
Создаются файлы с помощью систем программирования и прикладного программного обеспечения.
В процессе работы на компьютере над файлами наиболее часто проводятся следующие операции:
- копирование (создаётся копия файла в другом каталоге или на другом носителе);
- перемещение (производится перенос файла в другой каталог или на другой носитель, исходный файл уничтожается);
- переименование (производится переименование собственно имени файла);
- удаление (в исходном каталоге объект уничтожается).
При поиске файла, имя которого известно неточно, удобно использовать маску имени файла. Маска представляет собой последовательность букв, цифр и прочих допустимых в именах файлов символов, среди которых также могут встречаться следующие символы: «?» (вопросительный знак) — означает ровно один произвольный символ; «*» (звездочка) — означает любую (в том числе и пустую) последовательность символов произвольной длины.
Например, по маске n*.txt будут найдены все файлы с расширением txt, имена которых начинаются с буквы «n», в том числе и файл n.txt. По маске п?.* будут найдены файлы с произвольными расширениями и двухбуквенными именами, начинающимися с буквы «n».
Вопросы
1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Дополняет ли презентация информацию, содержащуюся в тексте параграфа?
Логический диск- это определенная часть пространства физического диска которая в операционной системе отображается как отдельный жесткий диск. А винде по барабану она ставится на основной раздел диска.
Это диск который находится на физическом, многие просто делят физические диски на несколько томов C D E и т.д.
Перед установкой системы на жесткий диск он (диск) обычно разбивается на логические разделы, проще говоря, на части (не молотком, конечно, а спомощью ПО) . Система, как правило, устанавливается на раздел С: . Туда же устанаваются прикладные программы. Другие разделы D:, E: используются для хранения данных. К примеру, на одном разделе можно хранить свои рабочие проекты, на другом, например фото, музыку. Это во-первых, помогает быстрее найти то, что нужно, а во-вторых, и это главное, в случае падения системы все данные сохраняются. Если же жесткий диск не будет разбит на разделы, то данные будут потеряны вместе с системой. Кстати, разбить на разделы, добавить новый или удалить какой-то раздел можно на действующем ПК, не теряя данных, с помощью специальных программ, например,
Paragon Hard Disk Manager 2 или Paragon Partition Manager 7.0
Логический диск
Единица разбиения физического диска. Состоит из подряд расположенных физических секторов. Логический диск делится на загрузочный сектор, служебные секторы файловой системы, корневой каталог и область данных. Секторы, входящие в область данных, группируются в кластеры. Логическим дискам ставятся в соответствие заглавные символы (A:, B:, D: и т.д.). В пределах логического диска возможна логическая адресация к секторам.
Оптимальный вариант разметки дисков на разделы - 2 логических диска. Диск C должен иметь размер максимум 5 гигабайт. Этого хватит на ОС и на инсталляцию всех необходимых программ. Второй логический диск D должен иметь весь оставшийся размер. Ни в коем случае не делайте отдельный диск для фильмов, отдельный - для музыки, например. Все это прекрасно хранится в папках. Причем размер папки всегда ровно такой, сколько у вас фильмов или музыки, а размер логического диска - всегда фиксированный. А откуда вы наперед знаете, что у вас будет именно 20 гигабайт фильмов и именно 20 гигабайт музыки?! А вдруг у вас будет 30 гигабайт фильмов и всего 3 гигабайта музыки? Где вы будете хранить "лишние" фильмы? На диске с музыкой? Так и получается у всех моих знакомых, сделавших более двух логических дисков - не компьютер, а помойка.
В этом разделе мы рассмотрим различные компоненты базы данных AS/400. Я не ставил здесь перед собой задачу проинструктировать Вас, как использовать эту базу данных. Уже есть целый ряд хороших книг, посвященных внешним аспектам базы данных и использованию двух ее интерфейсов в программах 7 Моя любимая книга на эту тему — Paul Conte. Database Design and Programming for DB2/400. Duke Press .1997. Настоятельно рекомендую! . А я лишь хочу предложить Вам обзор характеристик СУБД и основ ее функционирования.
Раздел состоит из двух частей. В первой содержится описание основных функций, которые должны присутствовать в каждой СУБД , и их реализации в AS/400. Во второй — обзор других характеристик базы данных , некоторые из которых имеют отношение к производительности, а другие обеспечивают поддержку использования AS/400 в качестве сервера базы данных . После этого мы поговорим о внутренней реализации некоторых фундаментальных функций базы данных .
Функции СУБД
Есть много способов реализации реляционной базы данных, но любая система управления ею должна предоставлять следующие семь функций:
- определение и описание таблиц базы данных;
- операции управления данными (вставка, выборка, обновление и удаление);
- возможность определить, что представляют собой данные независимо от программы;
- возможность создавать новые проекции данных для удовлетворения изменяющихся требований прикладных программ;
- множественные проекции данных для разных прикладных программ;
- защита данных;
- целостность данных.
Теперь посмотрим, как эти функции реализованы в AS/400.
Описание данных и создание файлов
Для описания физических и логических файлов базы данных можно использовать "родной" язык СУБД AS/400 — DDS . Он содержит операторы, ключевые слова и параметры, позволяющие описывать как атрибуты самого файла, так и полей записей базы данных. DDS можно также применять для описания файлов устройств , используемых AS/400. Эти файлы устройств содержат информацию о формате и типах данных, используемых подключенными к системе физическими устройствами.
DDS позволяет определить несколько атрибутов полей записей базы данных. Среди них имя поля, его длина и род данных (текстовые или числовые). В зависимости от типа данных поля можно задать некоторые другие специфические атрибуты. Например, если поле содержит десятичные данные, можно задать общее число десятичных цифр и число цифр справа от запятой.
Операторы DDS помещаются в разделах исходных файлов, которые затем превращаются в файловые объекты с помощью команд OS/400 "CRTPF" ("Create Physical File") и "CRTLF" ("Create Logical File"). Для описания атрибутов файлов базы данных можно использовать и SQL. В отличие от DDS , представляющего собой только язык описания данных, один оператор SQL и описывает, и создает таблицы и проекции (view). В SQL определение файла неотделимо от команды создания. Например, оператор SQL "Create table" задает имя таблицы, имена столбцов (полей) и их атрибуты. Кроме того, при исполнении этого оператора создается и сама таблица.
Создание физических файлов и таблиц
Физические файлы или, в терминологии SQL, таблицы содержат собственно данные. Запись физического файла имеет фиксированный набор полей. Каждое поле может иметь (хотя и не часто) переменную длину. В терминологии SQL таблица содержит строки фиксированной длины со столбцами переменной длины 8 Чтобы избежать полной путаницы, я использую, где возможно, более привычную для пользователей AS/400 терминологию "родного" интерфейса, за исключением случаев, когда описывает ся реализация именно SQL. .
Физический файл состоит из двух частей. В первой находятся атрибуты файла и описания полей . В набор атрибутов файла входят его имя, владелец, размер, число записей, ключевые поля и некоторые другие характеристики. Описания полей задают атрибуты для каждого поля записей.
Вторая часть физического файла содержит собственно данные. Она может состоять из одного или нескольких разделов, позволяющих подразделять файл. Все записи во всех разделах обязательно имеют один и тот же формат. Это удобный способ разделения записей: например, информацию текущего месяца можно поместить в один раздел, а информацию прошлого — в другой. Каждый раздел имеет уникальное имя, которое можно использовать для доступа к записям. Таблицы SQL могут состоять только из одного раздела, что соответствует самой сути реляционной модели: все данные хранятся в двумерных таблицах. Файлы же имеющие несколько разделов — трехмерные.
Для создания физического файла используется системная команда "CRTPF". Она создает физический файл по операторам из исходного файла. Вновь созданный физический файл не содержит записей данных, для их добавления необходимо использовать отдельную программу или утилиту.
Как было отмечено ранее, оператор определения данных SQL также создает таблицу. Оператор "Create table" можно выполнить с помощью Query Manager, Interactive SQL , или вставив его в программу на ЯВУ . Таблица, созданная этим оператором, является физическим файлом, идентичным созданному с помощью "родного" интерфейса.
Создание логических файлов и проекций
Логические файлы дают возможность доступа к данным в формате, отличном от использующегося для их хранения в одном или нескольких физических файлах. Логические файлы обеспечивают независимость данных и программ, которая будет обсуждаться в следующем разделе. Они не содержат записей данных, а лишь относительный номер записи (индекс) данных в физическом файле. Часто говорят, что логический файл задает путь доступа к данным.
Структура логического файла может быть как очень простой, так и очень сложной. Логические файлы и проекции можно подразделить на четыре категории. Перечислю их.
- Простые логические файлы и проекции, которые отображают данные из одного физического файла или таблицы на другое описание логических записей.
- Многоформатные логические файлы , обеспечивающие доступ к нескольким физическим файлам, каждый из которых имеет собственный формат записей. Данный тип логического файла может быть создан только с помощью "родного" интерфейса; с помощью SQL его создать нельзя.
- Логические файлы объединения (join), задающие одно определение логической записи, построенное из любой комбинации полей двух или более физических файлов, таблиц, логических файлов или проекций. При этом общее число физических файлов и таблиц не должно превышать 32.
- Проекции SQL (view), которые похожи на логические файлы объединения и дают те же результаты, но реализованы совершенно иначе. Файлы объединения хранят путь доступа для каждого объединения. Проекции же SQL определяют пути доступа во время исполнения, руководствуясь хранящимся внутри шаблоном определения запроса (Query Definition Template).
Подобно физическому, логический файл состоит из двух частей. Первая — точно такая же, как и у физического файла. Она содержит атрибуты файла и описания полей . Вторая часть содержит относительные номера записей данных физического файла. Программе, использующей логический файл , видимы только те данные физического файла, которые соответствуют описанию полей логического файла .
Для создания логического файла используется системная команда "CRTLF". Она использует операторы DDS в исходном файле для создания логического файла . Операторы DDS в исходном файле задают имена одного или нескольких физических файлов, служащих основой для логического. Созданный логический файл содержит относительные номера записей данных из одного или нескольких физических файлов.
Оператор SQL " Create view " задает таблицу, представляемую проекцией, вместе с описанием столбцов проекции. Результат создания проекции — логический файл , идентичный создаваемому при использовании "родного" интерфейса.
Логические файлы выполняют три операции: форматирование, включая проекцию, объединение и создание производных полей (field derivation ); выборку записей; упорядочение. Логический файл , созданный с помощью DDS , может осуществлять все три операции. Файл, созданный с помощью SQL, может выполнять либо форматирование (проекция SQL), либо упорядочение (индекс SQL), но не обе сразу. На SQL нельзя создать проекций, выделяющих подмножество записей физического файла. Проекция SQL может быть создана с помощью DDS , но DDS обычно не используется для создания файлов, имеющих только возможности проекций SQL.
Словарь данных и каталоги
Описания компонентов всех физических и логических файлов содержатся на каждой AS/400 в одном месте. В терминах "родного" интерфейса это место называется словарем данных. Словарь данных — это специальный объект OS/400, который обслуживается менеджером базы данных и к которому могут обращаться пользователи для поиска информации о структуре и местах использования файлов. Менеджер базы данных автоматически обновляет информацию в словаре данных всякий раз при создании нового объекта СУБД.
Словарь данных позволяет разработчикам приложений и пользователям получить представление о структуре базы данных на любой системе. "Каковы форматы записей?", "Каковы атрибуты данных?", "Где в системе используется некое имя?", — с помощью словаря данных можно найти ответы на эти и другие вопросы.
В интерфейсе SQL словарь данных называется общесистемным каталогом. SQL также позволяет разработчикам создавать другие каталоги. Каждая коллекция (collection) SQL (библиотека в "нормальной" терминологии) может (хоть и необяза тельно) иметь собственный каталог.
Независимость данных и программ
Использование комбинации физических и логических файлов в AS/400 позволяет достичь независимости программ от используемых ими данных. Отделение описания данных от программ достигается тем, что прикладные программы рассматривают данные в формате, отличном от того в каком они хранятся физически. Концепция отделения программ и данных — одна из основ технологической независимости архитектуры System/38 и AS/400.
Рассмотрим структуру физического файла, содержащего помимо самих данных их описание, часто называемое внешним описанием файла. Как System/38, так и AS/ 400 имеют внешне описанные данные, которые не надо помещать в программу. Это означает, что программа не определяет, как данные должны физически храниться. Кроме того, одна прикладная программа может работать с файлами, содержащими данные в разных форматах.
Формат логического файла , так же как и формат физического — внешний, так что с помощью логических файлов можно переопределить формат записи программы. На рисунке 6.1 показан очень простой пример, иллюстрирующий некоторые функции логических файлов : использование программой логического файла для получения иного представления данных физического файла.
Обратите внимание на выделенные поля. Каждая запись физического файла содержит шесть полей; в то же время программа, посредством логического файла , "видит" только четыре из них. Возможность исключения полей из логического файла позволяет реализовывать защиту на уровне полей. Пользователи имеют доступ только к тем полям, которые им позволено видеть. Это лишь один прием защиты в AS/400 Более подробно тема защиты рассматривается в "Защита от несанкционированного доступа" .
Другая функция, отображенная на рисунке — возможность переупорядочения полей записи. Порядок следования в логической записи полей общего дохода (gross) и федерального подоходного налога (FIT) изменен на обратный. Другими словами, программа независима от порядка следования полей.
Кроме того, рисунок 6.1 иллюстрирует переопределение полей записи. В физическом файле поле общего дохода представляет собой упакованное десятичное число, содержащее 7 цифр, две из которых расположены справа от запятой. Однако программа написана так, что поле общего дохода должно иметь зонный десятичный формат с 8 цифрами, две из которых расположены справа от запятой. Логический файл обеспечивает нужное программе представление, а также осуществляет преобразование между упакованным и зонным десятичным форматами.
Использование множественных логических файлов , построенных над одним и темже физическим файлом, предоставляет альтернативные пути доступа к данным и обеспечивает разделение данных между программами. На рисунке 6.2 показан еще один логический файл для другой программы, который был добавлен к первому примеру. Теперь каждая программа имеет свое представление записей, хранящихся в физическом файле, и доступ только к тем полям, к которым он разрешен. Поля, присутствующие в обоих логических файлах, позволяют программам совместно использовать данные.
Очень важно подчеркнуть, что обе программы работают с теми же самыми физическими данными, — копирования данных нет. Обновление данных, выполненное одной программой, становится немедленно "видимо" другой. Эта возможность работы программ с текущими значениями данных, а не с копиями, используется в System/38 и AS/400 на протяжении уже почти 20 лет.
В этом разделе мы рассмотрим различные компоненты базы данных AS/400. Я не ставил здесь перед собой задачу проинструктировать Вас, как использовать эту базу данных. Уже есть целый ряд хороших книг, посвященных внешним аспектам базы данных и использованию двух ее интерфейсов в программах 7 Моя любимая книга на эту тему — Paul Conte. Database Design and Programming for DB2/400. Duke Press .1997. Настоятельно рекомендую! . А я лишь хочу предложить Вам обзор характеристик СУБД и основ ее функционирования.
Раздел состоит из двух частей. В первой содержится описание основных функций, которые должны присутствовать в каждой СУБД , и их реализации в AS/400. Во второй — обзор других характеристик базы данных , некоторые из которых имеют отношение к производительности, а другие обеспечивают поддержку использования AS/400 в качестве сервера базы данных . После этого мы поговорим о внутренней реализации некоторых фундаментальных функций базы данных .
Функции СУБД
Есть много способов реализации реляционной базы данных, но любая система управления ею должна предоставлять следующие семь функций:
- определение и описание таблиц базы данных;
- операции управления данными (вставка, выборка, обновление и удаление);
- возможность определить, что представляют собой данные независимо от программы;
- возможность создавать новые проекции данных для удовлетворения изменяющихся требований прикладных программ;
- множественные проекции данных для разных прикладных программ;
- защита данных;
- целостность данных.
Теперь посмотрим, как эти функции реализованы в AS/400.
Описание данных и создание файлов
Для описания физических и логических файлов базы данных можно использовать "родной" язык СУБД AS/400 — DDS . Он содержит операторы, ключевые слова и параметры, позволяющие описывать как атрибуты самого файла, так и полей записей базы данных. DDS можно также применять для описания файлов устройств , используемых AS/400. Эти файлы устройств содержат информацию о формате и типах данных, используемых подключенными к системе физическими устройствами.
DDS позволяет определить несколько атрибутов полей записей базы данных. Среди них имя поля, его длина и род данных (текстовые или числовые). В зависимости от типа данных поля можно задать некоторые другие специфические атрибуты. Например, если поле содержит десятичные данные, можно задать общее число десятичных цифр и число цифр справа от запятой.
Операторы DDS помещаются в разделах исходных файлов, которые затем превращаются в файловые объекты с помощью команд OS/400 "CRTPF" ("Create Physical File") и "CRTLF" ("Create Logical File"). Для описания атрибутов файлов базы данных можно использовать и SQL. В отличие от DDS , представляющего собой только язык описания данных, один оператор SQL и описывает, и создает таблицы и проекции (view). В SQL определение файла неотделимо от команды создания. Например, оператор SQL "Create table" задает имя таблицы, имена столбцов (полей) и их атрибуты. Кроме того, при исполнении этого оператора создается и сама таблица.
Создание физических файлов и таблиц
Физические файлы или, в терминологии SQL, таблицы содержат собственно данные. Запись физического файла имеет фиксированный набор полей. Каждое поле может иметь (хотя и не часто) переменную длину. В терминологии SQL таблица содержит строки фиксированной длины со столбцами переменной длины 8 Чтобы избежать полной путаницы, я использую, где возможно, более привычную для пользователей AS/400 терминологию "родного" интерфейса, за исключением случаев, когда описывает ся реализация именно SQL. .
Физический файл состоит из двух частей. В первой находятся атрибуты файла и описания полей . В набор атрибутов файла входят его имя, владелец, размер, число записей, ключевые поля и некоторые другие характеристики. Описания полей задают атрибуты для каждого поля записей.
Вторая часть физического файла содержит собственно данные. Она может состоять из одного или нескольких разделов, позволяющих подразделять файл. Все записи во всех разделах обязательно имеют один и тот же формат. Это удобный способ разделения записей: например, информацию текущего месяца можно поместить в один раздел, а информацию прошлого — в другой. Каждый раздел имеет уникальное имя, которое можно использовать для доступа к записям. Таблицы SQL могут состоять только из одного раздела, что соответствует самой сути реляционной модели: все данные хранятся в двумерных таблицах. Файлы же имеющие несколько разделов — трехмерные.
Для создания физического файла используется системная команда "CRTPF". Она создает физический файл по операторам из исходного файла. Вновь созданный физический файл не содержит записей данных, для их добавления необходимо использовать отдельную программу или утилиту.
Как было отмечено ранее, оператор определения данных SQL также создает таблицу. Оператор "Create table" можно выполнить с помощью Query Manager, Interactive SQL , или вставив его в программу на ЯВУ . Таблица, созданная этим оператором, является физическим файлом, идентичным созданному с помощью "родного" интерфейса.
Создание логических файлов и проекций
Логические файлы дают возможность доступа к данным в формате, отличном от использующегося для их хранения в одном или нескольких физических файлах. Логические файлы обеспечивают независимость данных и программ, которая будет обсуждаться в следующем разделе. Они не содержат записей данных, а лишь относительный номер записи (индекс) данных в физическом файле. Часто говорят, что логический файл задает путь доступа к данным.
Структура логического файла может быть как очень простой, так и очень сложной. Логические файлы и проекции можно подразделить на четыре категории. Перечислю их.
- Простые логические файлы и проекции, которые отображают данные из одного физического файла или таблицы на другое описание логических записей.
- Многоформатные логические файлы , обеспечивающие доступ к нескольким физическим файлам, каждый из которых имеет собственный формат записей. Данный тип логического файла может быть создан только с помощью "родного" интерфейса; с помощью SQL его создать нельзя.
- Логические файлы объединения (join), задающие одно определение логической записи, построенное из любой комбинации полей двух или более физических файлов, таблиц, логических файлов или проекций. При этом общее число физических файлов и таблиц не должно превышать 32.
- Проекции SQL (view), которые похожи на логические файлы объединения и дают те же результаты, но реализованы совершенно иначе. Файлы объединения хранят путь доступа для каждого объединения. Проекции же SQL определяют пути доступа во время исполнения, руководствуясь хранящимся внутри шаблоном определения запроса (Query Definition Template).
Подобно физическому, логический файл состоит из двух частей. Первая — точно такая же, как и у физического файла. Она содержит атрибуты файла и описания полей . Вторая часть содержит относительные номера записей данных физического файла. Программе, использующей логический файл , видимы только те данные физического файла, которые соответствуют описанию полей логического файла .
Для создания логического файла используется системная команда "CRTLF". Она использует операторы DDS в исходном файле для создания логического файла . Операторы DDS в исходном файле задают имена одного или нескольких физических файлов, служащих основой для логического. Созданный логический файл содержит относительные номера записей данных из одного или нескольких физических файлов.
Оператор SQL " Create view " задает таблицу, представляемую проекцией, вместе с описанием столбцов проекции. Результат создания проекции — логический файл , идентичный создаваемому при использовании "родного" интерфейса.
Логические файлы выполняют три операции: форматирование, включая проекцию, объединение и создание производных полей (field derivation ); выборку записей; упорядочение. Логический файл , созданный с помощью DDS , может осуществлять все три операции. Файл, созданный с помощью SQL, может выполнять либо форматирование (проекция SQL), либо упорядочение (индекс SQL), но не обе сразу. На SQL нельзя создать проекций, выделяющих подмножество записей физического файла. Проекция SQL может быть создана с помощью DDS , но DDS обычно не используется для создания файлов, имеющих только возможности проекций SQL.
Словарь данных и каталоги
Описания компонентов всех физических и логических файлов содержатся на каждой AS/400 в одном месте. В терминах "родного" интерфейса это место называется словарем данных. Словарь данных — это специальный объект OS/400, который обслуживается менеджером базы данных и к которому могут обращаться пользователи для поиска информации о структуре и местах использования файлов. Менеджер базы данных автоматически обновляет информацию в словаре данных всякий раз при создании нового объекта СУБД.
Словарь данных позволяет разработчикам приложений и пользователям получить представление о структуре базы данных на любой системе. "Каковы форматы записей?", "Каковы атрибуты данных?", "Где в системе используется некое имя?", — с помощью словаря данных можно найти ответы на эти и другие вопросы.
В интерфейсе SQL словарь данных называется общесистемным каталогом. SQL также позволяет разработчикам создавать другие каталоги. Каждая коллекция (collection) SQL (библиотека в "нормальной" терминологии) может (хоть и необяза тельно) иметь собственный каталог.
Независимость данных и программ
Использование комбинации физических и логических файлов в AS/400 позволяет достичь независимости программ от используемых ими данных. Отделение описания данных от программ достигается тем, что прикладные программы рассматривают данные в формате, отличном от того в каком они хранятся физически. Концепция отделения программ и данных — одна из основ технологической независимости архитектуры System/38 и AS/400.
Рассмотрим структуру физического файла, содержащего помимо самих данных их описание, часто называемое внешним описанием файла. Как System/38, так и AS/ 400 имеют внешне описанные данные, которые не надо помещать в программу. Это означает, что программа не определяет, как данные должны физически храниться. Кроме того, одна прикладная программа может работать с файлами, содержащими данные в разных форматах.
Формат логического файла , так же как и формат физического — внешний, так что с помощью логических файлов можно переопределить формат записи программы. На рисунке 6.1 показан очень простой пример, иллюстрирующий некоторые функции логических файлов : использование программой логического файла для получения иного представления данных физического файла.
Обратите внимание на выделенные поля. Каждая запись физического файла содержит шесть полей; в то же время программа, посредством логического файла , "видит" только четыре из них. Возможность исключения полей из логического файла позволяет реализовывать защиту на уровне полей. Пользователи имеют доступ только к тем полям, которые им позволено видеть. Это лишь один прием защиты в AS/400 Более подробно тема защиты рассматривается в "Защита от несанкционированного доступа" .
Другая функция, отображенная на рисунке — возможность переупорядочения полей записи. Порядок следования в логической записи полей общего дохода (gross) и федерального подоходного налога (FIT) изменен на обратный. Другими словами, программа независима от порядка следования полей.
Кроме того, рисунок 6.1 иллюстрирует переопределение полей записи. В физическом файле поле общего дохода представляет собой упакованное десятичное число, содержащее 7 цифр, две из которых расположены справа от запятой. Однако программа написана так, что поле общего дохода должно иметь зонный десятичный формат с 8 цифрами, две из которых расположены справа от запятой. Логический файл обеспечивает нужное программе представление, а также осуществляет преобразование между упакованным и зонным десятичным форматами.
Использование множественных логических файлов , построенных над одним и темже физическим файлом, предоставляет альтернативные пути доступа к данным и обеспечивает разделение данных между программами. На рисунке 6.2 показан еще один логический файл для другой программы, который был добавлен к первому примеру. Теперь каждая программа имеет свое представление записей, хранящихся в физическом файле, и доступ только к тем полям, к которым он разрешен. Поля, присутствующие в обоих логических файлах, позволяют программам совместно использовать данные.
Очень важно подчеркнуть, что обе программы работают с теми же самыми физическими данными, — копирования данных нет. Обновление данных, выполненное одной программой, становится немедленно "видимо" другой. Эта возможность работы программ с текущими значениями данных, а не с копиями, используется в System/38 и AS/400 на протяжении уже почти 20 лет.
Аннотация: Лекция посвящена рассмотрению развития основных понятий обработки данных, связанного с постоянным расширением классов решаемых на ЭВМ задач. Показывается необходимость интеграции данных при решении несколькими пользователями задач, использующих общие данные. Вводится понятие базы данных.
Цель лекции: показать, что с изменением вида решаемых на ЭВМ задач в программировании возникают новые виды представления данных, в том числе такой вид, как базы данных .
1.1. Развитие основных понятий представления данных
Любой вычислительный процесс представляет собой отображение (по определенному алгоритму) некоторых входных данных в выходные.
Соотношение сложности представления обрабатываемых данных и алгоритма вычислений определяет два класса задач:
- вычислительные задачи – достаточно простое представление данных и сложный, многооперационный процесс вычислений;
- задачи обработки данных (невычислительные задачи) – простой алгоритм обработки данных и сложное представление обрабатываемых данных .
На начальной стадии обучения программированию основное внимание уделяется разработке алгоритма решения задачи. Однако часто оказывается, что возможность (или невозможность) решения конкретной задачи зависит не только от выбранного алгоритма, но и от того, какие понятия используются для представления обрабатываемых данных.
Рассмотрим простейший пример вычисления по формуле:
где X и Y – определенные числа, которые являются здесь элементарными единицами данных ( элементами данных ).
При программировании алгоритма решения этой задачи ( программирование формулы) используется простейший вид данных – простая переменная ( X и Y представляются в программе простыми переменными). Заметим, что простая переменная в системах программирования характеризуется определенным типом ее значений, которые должны выбираться при программировании. Даже в этом простейшем случае необходимо правильно выбрать тип переменной , причем от этого выбора может зависеть возможность или невозможность решения конкретной прикладной задачи (например, для представления конкретных данных не хватит отведенных разрядов).
Рассмотрим другой пример:
Решение этой задачи в общем случае невозможно получить используя только простые переменные. Здесь обрабатывается не отдельное число, а последовательность чисел. В этом случае при программировании используется такой вид данных, как массив – совокупность элементов, с каждым из которых связан упорядоченный набор целых чисел, называемых индексами. Все элементы должны иметь одинаковый тип их значений, который и будет типом массива . В этом случае числа a1, a2. aN представляются в программе массивом A(1), A(2). A(N) .
Приведенные примеры показывают, что изменение вида задач обуславливает необходимость использования других видов данных.
Ранние языки программирования (ФОРТРАН, АЛГОЛ-60) были предназначены для решения научно-технических вычислительных задач. В этих языках использовались только вышеуказанные виды данных (простые переменные и массивы) что было вполне достаточно.
Начиная с конца 60-х годов компьютеры начинают интенсивно использоваться для решения так называемых невычислительных задач, связанных с обработкой различного рода документов. Рассмотрим появление новых видов данных на примере упрощенных задач обработки данных.
Задача 1. Начисление заработной платы.
Рассматриваем задачу при двух упрощающих предположениях:
- сотруднику начисляется заработная плата на основе его оклада;
- никакие налоги и вычеты не учитываются.
Необходимые для решения этой задачи сведения о сотруднике представлены в следующей карточке НАЧИСЛЕНИЕ:
Для каждого работника начисленная сумма за определенный месяц рассчитывается по следующей формуле:
где Kr – количество рабочих дней в данном месяце.
Для каждого сотрудника соответствующие данные имеют конкретное значение , например:
Эти значения имеют смысл только во взаимосвязи друг с другом. Отдельно выбранное число 1800 теряет свой содержательный смысл, поэтому использовать такой вид данных, как простая переменная , здесь нельзя. В то же время набор соответствующих значений, характеризующих конкретного сотрудника, имеет разные типы (символьный и числовой), т.е. использовать для его представления такой вид данных, как массив , также нельзя. Таким образом, понятий "простая переменная " и " массив " недостаточно, чтобы представить соответствующую карточку.
Для описания аналогичных представлений данных в предметной области невычислительных задач вводится ряд новых понятий [ [ 1.1 ] ].
Элемент данных (поле) – наименьшая единица поименованных данных.
Для данного примера элементами данных являются FIO, O, Ko, S .
Для описания карточки сотрудника используется понятие " Логическая запись ".
Логическая запись – поименованная совокупность элементов данных (полей).
Экземпляр логической записи – текущее значение элементов записи.
Для представления всего набора карточек сотрудников используется понятие " Логический файл "
Логический файл - поименованная совокупность всех экземпляров записей заданного типа.
Пример логического файла НАЧИСЛЕНИЕ:
Таким образом, с помощью введенных понятий можно описывать соответствующие данные. Для отображения этих понятий в современных языках программирования, предназначенных как для вычислительных задач, так и для задач обработки данных, введены новые виды данных.
Читайте также: