Автор: Пользователь скрыл имя, 17 Октября 2011 в 21:20, реферат
Теория баз данных — сравнительно молодая область знаний Возраст ее составляет немногим более 30 лет. Однако изменился ритм времени, оно уже не бежит, а летит, и мы вынуждены подчиняться ему во всем. И действительно, современный мир информационных технологий трудно представить себе без использования баз данных.
Проектирование баз и хранилищ данных
Теория
баз данных — сравнительно молодая
область знаний Возраст ее составляет
немногим более 30 лет. Однако изменился
ритм времени, оно уже не бежит, а
летит, и мы вынуждены подчиняться
ему во всем. И действительно, современный
мир информационных технологий трудно
представить себе без использования баз
данных. Практически все системы в той
или иной степени связаны с функциями
долговременного хранения и обработки
информации.
Фактически информация становится фактором,
определяющим эффективность любой сферы
деятельности. Увеличились информационные
потоки и повысились требования к скорости
обработки данных, и теперь уже большинство
операций не может быть выполнено вручную,
они требуют применения наиболее перспективных
компьютерных технологий. Любые административные
решения требуют четкой и точной оценки
текущей ситуации и возможных перспектив
ее изменения. И если раньше в оценке ситуации
участвовало несколько десятков факторов,
которые могли быть вычислены вручную,
то теперь таких факторов сотни и сотни
тысяч, и ситуация меняется не в течение
года, а через несколько минут, а обоснованность
принимаемых решений требуется большая,
потому что и реакция на неправильные
решения более серьезная, более быстрая
и более мощная, чем раньше. И, конечно,
обойтись без информационной модели производства,
хранимой в базе данных, в этом случае
невозможно.
История развития баз данных
В истории вычислительной техники можно проследить развитие двух основных областей ее использования. Первая область — применение вычислительной техники для выполнения численных расчетов, которые слишком долго или вообще невозможно производить вручную. Развитие этой области способствовало интенсификации методов численного решения сложных математических задач, появлению языков программирования, ориентированных на удобную запись численных алгоритмов, становлению обратной связи с разработчиками новых архитектур ЭВМ. Характерной особенностью данной области применения вычислительной техники является наличие сложных алгоритмов обработки, которые применяются к простым по структуре данным, объем которых сравнительно невелик.
Вторая
область — это использование
средств вычислительной техники
в автоматических или автоматизированных
информационных системах.
Информационная система представляет
собой программно-аппаратный комплекс,
обеспечивающий выполнение следующих
функций:
. надежное хранение информации в памяти компьютера;
. выполнение
специфических для данного
. предоставление пользователям удобного и легко осваиваемого интерфейса.
Обычно такие системы имеют дело с большими объемами информации, имеющей достаточно сложную структуру. Классическими примерами информационных систем являются банковские системы, автоматизированные системы управления предприятиями, системы резервирования авиационных и железнодорожных билетов, мест в гостиницах и т.д.
Вторая
область использования
Говорить о надежном и долговременном
хранении информации можно только при
наличии запоминающих устройств, сохраняющих
информацию после выключения электрического
питания. Оперативная (основная) память
компьютеров этим свойством обычно не
обладает. В первых компьютерах использовались
два вида устройств внешней памяти — магнитные
ленты и барабаны. Емкость магнитных лент
была достаточно велика, но по своей физической
природе они обеспечивали последовательный
доступ к данным. Магнитные же барабаны
(они ближе всего к современным магнитным
дискам с фиксированными головками) давали
возможность произвольного доступа к
данным, но имели ограниченный объем хранимой
информации.
Эти ограничения не являлись слишком существенными для чисто численных расчетов, Даже если программа должна обработать (или произвести) большой объем информации, при программировании можно продумать расположение этой информации во внешней памяти (например, на последовательной магнитной ленте), обеспечивающее эффективное выполнение этой программы. Однако в информационных системах совокупность взаимосвязанных информационных объектов фактически отражает модель объектов реального мира. А потребность пользователей в информации, адекватно отражающей состояние реальных объектов, требует сравнительно быстрой реакции системы на их запросы. И в этом случае наличие сравнительно медленных устройств хранения данных, к которым относятся магнитные ленты и барабаны, было недостаточным.
Можно предположить, что именно требования нечисловых приложений вызвали появление съемных магнитных дисков с подвижными головками, что явилось революцией в истории вычислительной техники. Эти устройства внешней памяти обладали существенно большей емкостью, чем магнитные барабаны, обеспечивали удовлетворительную скорость доступа к данным в режиме произвольной выборки, а возможность смены дискового пакета на устройстве позволяла иметь практически неограниченный архив данных.
С появлением магнитных дисков началась история систем управления данными во внешней памяти. До этого каждая прикладная программа, которой требовалось хранить данные во внешней памяти, сама определяла расположение каждой порции данных на магнитной ленте или барабане и выполняла обмены между оперативной памятью и устройствами внешней памяти с помощью программно-аппаратных средств низкого уровня (машинных команд или вызовов соответствующих программ операционной системы). Такой режим работы не позволяет или очень затрудняет поддержание на одном внешнем носителе нескольких архивов долговременно хранимой информации. Кроме того, каждой прикладной программе приходилось решать проблемы именования частей данных и структуризации данных во внешней памяти.
Файлы и файловые системы
Важным
шагом в развитии именно информационных
систем явился переход к использованию
централизованных систем управления файлами.
С точки зрения прикладной программы,
файл — это именованная область внешней
памяти, и которую можно записывать и из
которой можно считывать данные. Правила
именования файлов, способ доступа к данным,
хранящимся в файле, и структура этих данных
зависят от конкретной системы управления
файлами и, возможно, от типа файла. Система
управления файлами берет на себя распределение
внешней памяти, отображение имен файлов
в соответствующие адреса во внешней памяти
и обеспечение доступа к данным.
Такие системы иногда называются файловыми.
Несмотря на относительную простоту организации,
файловые системы имеют ряд недостатков:
1. Избыточность
данных. Файловые системы
2. Несогласованность данных. Учитывая, что одна и одна и та же информация может размещаться в разных файлах, технологически тяжело проследить за внесением изменений одновременно во все файлы. Из-за этого может возникнуть несогласованность данных, когда одно и одно и то же поле в разных файлах может иметь разные значения.
3. Зависимость
структур данных и прикладных
программ. При файловой организации
логическая и физическая
Пользователи видят файл как линейную последовательность записей и могут выполнить над ним ряд стандартных операций:
. создать файл (требуемого типа и размера);
. открыть ранее созданный файл;
. прочитать из файла некоторую запись (текущую, следующую, предыдущую, первую, последнюю);
. записать в файл на место текущей записи новую, добавить новую запись в конец файла.
В разных
файловых системах эти операции могли
несколько отличаться, но общий смысл
их был именно таким. Главное, что
следует отметить, это то, что
структура записи файла была известна
только программе, которая с ним работала,
система управления файлами не знала ее.
И поэтому для того, чтобы извлечь некоторую
информацию из файла, необходимо было
точно знать структуру записи файла с
точностью до бита. Каждая программа, работающая
с файлом, должна была иметь у себя внутри
структуру данных, соответствующую структуре
этого файла. Поэтому при изменении структуры
файла требовалось изменять структуру
программы, а это требовало новой компиляции,
то есть процесса перевода программы в
исполняемые машинные коды. Такая ситуации
характеризовалась как зависимость программ
от данных. Для информационных систем
характерным является наличие большого
числа различных пользователей
(программ), каждый из которых имеет свои
специфические алгоритмы обработки информации,
хранящейся в одних и тех же файлах. Изменение
структуры файла, которое было необходимо
для одной программы, требовало исправления
и перекомпиляции и дополнительной отладки
всех остальных программ, работающих с
этим же файлом. Это было первым существенным
недостатком файловых систем, который
явился толчком к созданию новых систем
хранения и управления информацией.
Для иллюстрации
обратимся к примеру, приведенному
в книге: У.Девис,
Операционные системы, М., Мир, 1980:
«Несколько лет назад почтовое ведомство
(из лучших побуждений) пришло к решению,
что все адреса должны обязательно включать
почтовый индекс. Во многих вычислительных
центрах это, казалось бы, незначительное
изменение привело к ужасным последствиям.
Добавление к адресу нового поля, содержащего
шесть символов, означало необходимость
внесения изменений в каждую программу,
использующую данные этой задачи в соответствии
с изменившейся суммарной длиной полей.
Тот факт, что какой-то программе для выполнения
ее функций не требуется знания почтового
индекса, во внимание не принимался: если
в некоторой программе содержалось обращение
к новой, более длинной записи, то в такую
программу вносились изменения, обеспечивающие
дополнительное место в памяти.
В условиях автоматизированного управления
централизованной базой данных все такие
изменения связаны с функциями управляющей
программы базы данных.
Программы, не использующие значения почтового
индекса, не нуждаются в модификации -
в них, как и прежде, в соответствии с запросами
посылаются те же элементы данных. В таких
случаях внесенное изменение неощутимо.
Модифицировать необходимо только те
программы, которые пользуются новым элементом
данных».
Далее,
поскольку файловые системы являются
общим хранилищем файлов, принадлежащих,
вообще говоря, разным пользователям,
системы управления файлами должны
обеспечивать авторизацию доступа к файлам.
В общем виде подход состоит в том, что
по отношению к каждому зарегистрированному
пользователю данной вычислительной системы
для каждого существующего файла указываются
действия, которые разрешены или запрещены
данному пользователю.
В большинстве современных систем управления
файлами применяется подход к защите файлов,
впервые реализованный в ОС UNIX. В этой
ОС каждому зарегистрированному пользователю
соответствует пара целочисленных идентификаторов:
идентификатор группы, к которой относится
этот пользователь, и его собственный
идентификатор в группе. При каждом файле
хранится полный идентификатор пользователя,
который создал этот файл, и фиксируется,
какие действия с файлом может производить
его создатель, какие действия с файлом
доступны для других пользователей той
же группы и что могут делать с файлом
пользователи других групп. Администрирование
режимом доступа к файлу в основном выполняется
его создателем-владельцем, Для множества
файлов, отражающих информационную модель
одной предметной области, такой децентрализованный
принцип управления доступом вызывал
дополнительные трудности. И отсутствие
централизованных методов управления
доступом к информации послужило еще одной
причиной разработки СУБД.
Следующей
причиной стала необходимость
В системах управления файлами обычно применялся следующий подход. В операции открытия файла (первой и обязательной операции, с которой должен начинаться сеанс работы с файлом) среди прочих параметров указывался режим работы (чтение или изменение). Если к моменту выполнения этой операции некоторым пользовательским процессом PR1 файл был уже открыт другим процессом PR2 в режиме изменения, то и зависимости от особенностей системы процессу PR1 либо сообщались и невозможности открытия файла, либо он блокировался до тех пор, пока в процессе PR2 не выполнялась операция закрытия файла.