Базы данных Лекция 1 Эволюция устройств внешней памяти и программных систем управления данными.

Презентация:



Advertisements
Похожие презентации
Базы данных Лекция 04 Общая характеристика понятий БД.
Advertisements

Лекция 6. Способы адресации в микропроцессорных системах.
Физические модели баз данных Файловые структуры, используемые для хранения информации в базах данных.
Демидов А.В г. Операционные системы Лекция 4 Работа с файлами.
Операционные системы и среды. Схема устройства жесткого диска Дорожка N Сектор (блок) Пластина 1 Пластина 2 Цилиндр 0 сторона Диск – одна или несколько.
Лекция 2. Уровни представления БД. Свойства БД. Отличия от файловых систем. простая информационная система, поддерживающая учет сотрудников некоторой организации.
Введение. Цели и задачи. Основные понятия и определения. Требования к базам данных.
Сетевые службы Для конечного пользователя сеть это не компьютеры, кабели и концентраторы и даже не информационные потоки, для него сеть это, прежде всего,
Технология хранения, поиска и сортировки информации в базах данных
Лекция 1. История возникновения СУБД направления использования вычислительной техники применение вычислительной техники для выполнения численных расчетов,
Лекция 6 Лекция 6 Введение в обработку данных. Среда хранения и средства обработки информационных массивов. Эволюция и характеристика концепций обработки.
Подходы к построению проблемно- ориентированных интерфейсов для пакетов прикладных программ в ГридННС А. П. Гулин, А. К. Кирьянов, Н. В. Клопов, С. Б.
Информационные системы. Базы данных. Информационная система – любая система обработки информации (шир)
Базы данных Лекция 4 Базисные средства манипулирования реляционными данными: реляционная алгебра Кодда.
Схема данных в Access Преподаватель: Французова Г.Н.
Организация данных на жестком диске компьютера Макаренков Д.Е.
Модели транзакций Журнализация и буферизация. Зачем нужна буферизация Если бы запись об изменении базы данных, которая должна поступить в журнал при выполнении.
6.5. Создание реляционной БД в среде СУБД ACCESS Общие сведения Реляционные отношения в СУБД ACCESS представлены в двух формах: в виде таблиц и в виде.
Что такое связи между таблицами В реляционной базе данных связи позволяют избежать избыточности данных. Например, в ходе создания базы данных, содержащей.
Файловая система 1.Файлы. Имена файлов 2.Соглашение Длинные имена файлов 4.Каталоги 5.Файловые операции 1 Разработала: учитель информатики СОШ 2.
Транксрипт:

Базы данных Лекция 1 Эволюция устройств внешней памяти и программных систем управления данными

Базы данных Устройства внешней памяти Лекция 1 Информационная система представляет собой программный комплекс, функции которого состоят в поддержке надёжного хранения информации в памяти компьютера, выполнении специфических для данного приложения преобразований информации и/или вычислений, предоставлении пользователям удобного и легко осваиваемого интерфейса. О надёжном и долговременном хранении информации можно говорить только при наличии запоминающих устройств, сохраняющих информацию после выключения электропитания.

Базы данных Устройства внешней памяти Лекция 1 В первые десятилетия развития вычислительной техники использовались два вида устройств внешней памяти: магнитные ленты; магнитные барабаны. Магнитные ленты: Ёмкость пропорциональна длине; Быстрый доступ к данным невозможен. Магнитные барабаны: Сравнительно быстрый доступ к данным; Маленький объём.

Базы данных Устройства внешней памяти Лекция 1 Требования информационных систем: Большой объём хранимых данных; Высокая средняя скорость выполнения операций. В результате появились устройства внешней памяти со съёмными пакетами магнитных дисков и подвижными головками чтения/записи, что явилось революцией в истории вычислительной техники.

Базы данных Устройства внешней памяти Лекция 1 Магнитные диски пакеты магнитных пластин (поверхностей), между которыми на одном рычаге двигается пакет магнитных головок. Для задания обмена с магнитным диском на уровне аппаратуры нужно указать номер цилиндра, номер поверхности, номер блока на соответствующей дорожке и число байтов, которое нужно записать или прочитать от начала этого блока. С появлением магнитных дисков началась история систем управления данными во внешней памяти.

Базы данных Файловые системы Лекция 1 Файл это именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные. Правила именования файлов, способ доступа к данным, хранящимся в файле, и структура этих данных зависят от конкретной системы управления файлами и, возможно, от типа файла. Система управления файлами берёт на себя распределение внешней памяти, отображение имен файлов в соответствующие адреса внешней памяти и обеспечение доступа к данным.

Базы данных Файловые системы: структуры файлов Лекция 1 Во всех современных файловых системах явно или неявно выделяется уровень, обеспечивающий работу с базовыми файлами, которые представляют собой наборы блоков, последовательно нумеруемых в адресном пространстве файла и отображаемых на физические блоки диска.

Базы данных Файловые системы: структуры файлов Лекция 1 В некоторых файловых системах базовый уровень был доступен пользователю, но чаще он прикрывался некоторым более высоким уровнем, стандартным для пользователей. Существуют два основных подхода: пользователи представляют файл как последовательность записей. Каждая запись это последовательность байтов, имеющая постоянный или переменный размер. любой файл представляется как непрерывная последовательность байтов. Из файла можно прочитать указанное число байтов, либо начиная с его начала, либо предварительно выполнив его позиционирование на байт с указанным номером.

Базы данных Файловые системы: логическая структура ФС Лекция 1 Во всех современных файловых системах обеспечивается многоуровневое именование файлов за счёт наличия во внешней памяти каталогов дополнительных файлов со специальной структурой. Каждый каталог содержит имена каталогов и/или файлов, хранящихся в данном каталоге. Таким образом, полное имя файла состоит из списка имён каталогов плюс имя файла в каталоге, непосредственно содержащем данный файл. По месту нахождения корневого каталога ФС делятся на: изолированные; централизованные.

Базы данных Файловые системы: авторизация доступа к файлам Лекция 1 Способы авторизации доступа: мандатный для каждого существующего файла указываются действия, которые разрешены или запрещены данному пользователю, каждый пользователь имеет отдельный мандат для работы с каждым файлом или не имеет его; дискреционный каждому зарегистрированному пользователю соответствует пара целочисленных идентификаторов: идентификатор группы, к которой относится пользователь, и его собственный идентификатор, для каждого файла контролируется возможность выполнения трёх действий: чтение, запись и выполнение владельцем, группой и всеми остальными пользователями;

Базы данных Файловые системы: многопользовательский доступ Лекция 1 В файловых системах обычно применялся следующий подход. В операции открытия файла помимо прочих параметров указывался режим работы чтение или изменение. Если к моменту выполнения этой операции от имени некоторого процесса A файл уже был открыт некоторым другим процессом B, причем существующий режим открытия был несовместим с требуемым режимом, то в зависимости от особенностей системы либо процессу A сообщалось о невозможности открытия файла в нужном режиме, либо процесс A блокировался до тех пор, пока процесс B не выполнит операцию закрытия файла.

Базы данных Файловые системы: области применения файлов Лекция 1 Файловые системы обычно обеспечивают хранение слабо структурированной информации, оставляя дальнейшую структуризацию прикладным программам. Это преимущество используется при разработке любой новой прикладной системы: опираясь на простые, стандартные и сравнительно дешёвые средства файловой системы, можно реализовать те структуры хранения, которые наиболее точно соответствуют специфике данной прикладной области.

Базы данных Потребности информационных систем Лекция 1 На начальном этапе использования вычислительной техники для построения информационных систем проблемы структуризации данных решались индивидуально в каждой информационной системе. Производились необходимые надстройки над файловыми системами (библиотеки программ), подобно тому, как это делается в компиляторах, редакторах и т. д.

Базы данных Потребности информационных систем Лекция 1 Стремление выделить общую часть информационных систем, ответственную за управление сложно структурированными данными, явилось первой побудительной причиной создания СУБД. Очень скоро стало понятно, что невозможно обойтись общей библиотекой программ, реализующей над стандартной базовой файловой системой более сложные методы хранения данных.

Базы данных Пример информационной системы Лекция 1 Требуется реализовать простую информационную систему, поддерживающую учёт служащих некоторой организации. Система должна выполнять следующие действия: выдавать списки служащих по отделам; поддерживать возможность перевода служащего из одного отдела в другой; обеспечивать средства поддержки приема на работу новых служащих и увольнения работающих служащих.

Базы данных Пример информационной системы Лекция 1 Кроме того, для каждого отдела должна поддерживаться возможность получения: имени руководителя отдела; общей численности отдела; общей суммы зарплаты служащих отдела, среднего размера зарплаты и т. д. Для каждого служащего должна поддерживаться возможность получения: номера удостоверения по полному имени служащего (для простоты допустим, что имена всех служащих различны); полного имени по номеру удостоверения; информации о соответствии служащего занимаемой должности и о размере его зарплаты.

Базы данных Пример информационной системы: структуры данных Лекция 1 Предположим, что мы решили основывать эту информационную систему на файловой системе и пользоваться одним файлом СЛУЖАЩИЕ, расширив базовые возможности файловой системы за счёт специальной библиотеки функций. Поскольку минимальной информационной единицей в нашем случае является служащий, в этом файле должна содержаться одна запись для каждого служащего. Чтобы можно было удовлетворить указанные выше требования, запись о служащем должна иметь следующие поля: полное имя служащего ( СЛУ_ИМЯ ); номер его удостоверения ( СЛУ_НОМЕР ); данные о соответствии служащего занимаемой должности ( СЛУ_СТАТ ; для простоты «да» или «нет»); размер зарплаты ( СЛУ_ЗАРП ); номер отдела ( СЛУ_ОТД_НОМЕР ).

Базы данных Пример информационной системы: структуры данных Лекция 1 Поскольку мы решили ограничиться одним файлом СЛУЖАЩИЕ, та же запись должна содержать имя руководителя отдела ( СЛУ_ОТД_РУК ). Чтобы информационная система могла эффективно выполнять свои базовые функции, необходимо обеспечить многоключевой доступ к файлу СЛУЖАЩИЕ по уникальным ключам СЛУ_ИМЯ и СЛУ_НОМЕР. Кроме того, должна обеспечиваться возможность эффективного выбора всех записей с общим значением СЛУ_ОТД_НОМЕР, т. е. доступ по неуникальному ключу.

Базы данных Пример информационной системы: структуры данных Лекция 1 При реализации даже такой простой информационной системы на базе файловой системы возникают следующие затруднения: требуется создание достаточно сложной надстройки для многоключевого доступа к файлам; возникает существенная избыточность данных (для каждого служащего повторяется имя руководителя его отдела); требуется выполнение массовой выборки и вычислений для получения суммарной информации об отделах.

Базы данных Пример информационной системы: структуры данных Лекция 1 Для улучшения ситуации можно было бы поддерживать два многоключевых файла: СЛУЖАЩИЕ и ОТДЕЛЫ. Первый файл должен был бы содержать поля СЛУ_ИМЯ, СЛУ_НОМЕР, СЛУ_СТАТ, СЛУ_ЗАРП и СЛУ_ОТД_НОМЕР, а второй ОТД_НОМЕР, ОТД_РУК (номер удостоверения служащего, являющегося руководителем отдела), ОТД_СЛУ_ЗАРП (общий размер зарплаты служащих данного отдела) и ОТД_РАЗМЕР (общее число служащих в отделе). При таком переходе наша информационная система должна обладать некоторыми новыми особенностями, сближающими её с СУБД.

Базы данных Пример информационной системы: целостность данных Лекция 1 Теперь система должна «знать», что она работает с двумя информационно связанными файлами, должна иметь информацию о структуре и смысле каждого поля. Например, системе должно быть известно, что у полей СЛУ_ОТД_НОМЕР в файле СЛУЖАЩИЕ и ОТД_НОМЕР в файле ОТДЕЛЫ один и тот же смысл номер отдела. Кроме того, система должна учитывать, что в ряде случаев изменение данных в одном файле должно автоматически вызывать модификацию второго файла, чтобы общее содержимое файлов было согласованным. Например, если на работу принимается новый служащий, то нужно добавить запись в файл СЛУЖАЩИЕ, а также должным образом изменить поля ОТД_СЛУ_ЗАРП и ОТД_РАЗМЕР в записи файла ОТДЕЛЫ, соответствующей отделу этого служащего.

Базы данных Пример информационной системы: целостность данных Лекция 1 Понятие согласованности, или целостности, данных является ключевым понятием баз данных. Фактически, если информационная система поддерживает согласованное хранение данных в нескольких файлах, можно говорить о том, что она поддерживает базу данных (БД). Если же некоторая вспомогательная система управления данными позволяет работать с несколькими файлами, обеспечивая их согласованность, можно назвать её системой управления базами данных (СУБД). Уже только требование поддержания согласованности данных в нескольких файлах не позволяет при построении информационной системы обойтись библиотекой функций: такая система должна обладать некоторыми собственными данными (их принято называть метаданными), определяющими целостность данных. В нашем примере информационная система должна отдельно сохранять метаданные о структуре файлов СЛУЖАЩИЕ и ОТДЕЛЫ, а также правила, определяющие условия целостности данных в этих файлах.

Базы данных Пример информационной системы: языки запросов Лекция 1 Но обеспечение целостности данных это далеко не всё, что обычно требуется от СУБД. Начнём с того, что даже в нашем примере пользователю информационной системы будет не слишком просто получить, например, общую численность отдела, в котором работает Петр Иванович Сидоров. Придётся сначала узнать номер отдела, в котором работает указанный служащий, а затем установить численность этого отдела. Было бы гораздо проще, если бы СУБД позволяла сформулировать такой запрос на языке, более близком пользователям. Такие языки называются языками запросов к базам данных.

Базы данных Пример информационной системы: языки запросов Лекция 1 Например, на языке запросов SQL наш запрос можно было бы выразить в следующей форме: SELECT ОТД_РАЗМЕР FROM СЛУЖАЩИЕ, ОТДЕЛЫ WHERE СЛУ_ИМЯ = 'ПЕТР ИВАНОВИЧ СИДОРОВ AND СЛУ_ОТД_НОМЕР = ОТД_НОМЕР; Это пример запроса на языке SQL с полусоединением: c одной стороны, запрос адресуется к двум файлам СЛУЖАЩИЕ и ОТДЕЛЫ, но с другой стороны, данные выбираются только из файла ОТДЕЛЫ. Условие СЛУ_ОТД_НОМЕР = ОТД_НОМЕР всего лишь «ограничивает» интересующий нас набор записей об отделах до одной записи, если Петр Иванович Сидоров действительно работает на данном предприятии. Если же Петр Иванович Сидоров не работает на предприятии, то условие СЛУ_ИМЯ = 'ПЕТР ИВАНОВИЧ СИДОРОВ' не будет удовлетворяться ни для одной записи файла СЛУЖАЩИЕ, и поэтому запрос выдаст пустой результат.

Базы данных Пример информационной системы: языки запросов Лекция 1 Возможна и другая формулировка того же запроса: SELECT ОТД_РАЗМЕР FROM ОТДЕЛЫ WHERE ОТД_НОМЕР = (SELECT СЛУ_ОТД_НОМЕР FROM СЛУЖАЩИЕ WHERE СЛУ_ИМЯ = 'ПЕТР ИВАНОВИЧ СИДОРОВ'); Это пример запроса на языке SQL с вложенным подзапросом. Во вложенном подзапросе выбирается значение поля СЛУ_ОТД_НОМЕР из записи файла СЛУЖАЩИЕ, в которой значение поля СЛУ_ИМЯ равняется строковой константе 'ПЕТР ИВАНОВИЧ СИДОРОВ'. Если такая запись существует, то она единственная, поскольку поле СЛУ_ИМЯ является уникальным ключом файла СЛУЖАЩИЕ. Тогда результатом выполнения подзапроса будет единственное значение номер отдела, в котором работает Петр Иванович Сидоров. Во внешнем запросе это значение будет ключом доступа к файлу ОТДЕЛЫ, и снова будет выбрана только одна запись, поскольку поле ОТД_НОМЕР является уникальным ключом файла ОТДЕЛЫ. Если же на данном предприятии Петр Иванович Сидоров не работает, то подзапрос выдаст пустой результат, и внешний запрос тоже выдаст пустой результат.

Базы данных Пример информационной системы: языки запросов Лекция 1 Если же, например, возникнет потребность в получении списка служащих, не соответствующих занимаемой должности, то достаточно обратиться к системе с запросом: SELECT СЛУ_ИМЯ, СЛУ_НОМЕР FROM СЛУЖАЩИЕ WHERE СЛУ_СТАТ = "НЕТ"; и система сама выполнит необходимый полный просмотр файла СЛУЖАЩИЕ, поскольку поле СЛУ_СТАТ не является ключевым, и другого способа выполнения не существует.

Базы данных Пример информационной системы: транзакции Лекция 1 Далее, представим себе, что в первоначальной реализации информационной системы, основанной на использовании библиотек расширенных методов доступа к файлам, обрабатывается операция принятия на работу нового служащего. Следуя требованиям согласованного изменения файлов, информационная система вставляет новую запись в файл СЛУЖАЩИЕ и собирается модифицировать соответствующую запись файла ОТДЕЛЫ (или вставлять в этот файл новую запись, если служащий является первым в своем отделе), но именно в этот момент происходит (например) аварийное выключение питания компьютера. Очевидно, что после перезапуска системы её база данных будет находиться в рассогласованном состоянии. Потребуется выяснить это (а для этого нужно явно проверить соответствие данных в файлах СЛУЖАЩИЕ и ОТДЕЛЫ ) и привести данные в согласованное состояние.

Базы данных Пример ИС: транзакции и журнализация Лекция 1 Настоящие СУБД берут такую работу на себя, поддерживая транзакционное управление и журнализацию изменений базы данных. Прикладная система не обязана заботиться о поддержке корректности состояния базы данных, хотя и должна знать, какие цепочки операций изменения данных являются допустимыми.

Базы данных Пример ИС: многопользовательский режим Лекция 1 Представим теперь, что в информационной системе требуется обеспечить параллельную (например, многотерминальную) работу с базой данных служащих и отделов. Если опираться только на использование файлов, то для обеспечения корректности на все время модификации любого из двух файлов доступ других пользователей к этому файлу будет блокирован. Таким образом, зачисление на работу Петра Ивановича Сидорова существенно затормозит получение информации о служащем Иване Сидоровиче Петрове, даже если они работают в разных отделах. Настоящие СУБД обеспечивают гораздо более тонкую синхронизацию параллельного доступа к данным.

Базы данных СУБД как независимый системный компонент Лекция 1 До сих пор мы не вычленяли СУБД из состава информационной системы, имея в виду общую организацию системы: Здесь видны два дефекта: СУБД должна поддерживать достаточно развитую функциональность. Повторять эту функциональность в каждой ИС неразумно. набор файлов можно назвать базой данных только при наличии метаданных. В данном случае, метаданные являются принадлежностью ИС, и поэтому, например, файлы СЛУЖАЩИЕ и ОТДЕЛЫ можно эффективно использовать только через нашу гипотетическую систему регистрации служащих.

Базы данных СУБД как независимый системный компонент Лекция 1 Так мы приходим к следующей организации системы: Здесь мы видим три информационные системы, которые через одну СУБД работают с двумя разными базами данных, причем первая и вторая системы работают с общей базой данных. Это возможно, поскольку метаданные каждой базы данных содержатся в самих базах данных, и достаточно лишь указать СУБД, с какой базой данных желает работать данное приложение.

Базы данных СУБД как независимый системный компонент Лекция 1 Поскольку СУБД функционирует отдельно от приложений, и её работа с базами данных регулируется метаданными, совместное использование одной базы данных двумя информационными системами не вызовет потери согласованности данных, и доступ к данным будет должным образом синхронизироваться. Приведённая схема вплотную приближает нас к наиболее распространённой в последние десятилетия архитектуре «клиент- сервер». СУБД играет роль «сервера», обсуживающего нескольких «клиентов» прикладных информационных систем. Таким образом, СУБД решают множество проблем, которые затруднительно или вообще невозможно решить при использовании файловых систем. При этом существуют приложения, для которых вполне достаточно файлов; приложения, для которых необходимо решать, какой уровень работы с данными во внешней памяти для них требуется, и приложения, для которых, безусловно, нужны базы данных.