Базы данных и системы управления базами данных. 2
Нижегородский Государственный Университет им. Лобачевского
Специальность «Финансы и кредит»
Курсовая работа
по предмету: «Информационные системы в экономике»
На тему:
«Базы данных и системы управления базами данных»
г. Кстово 2009 г.
Содержание
Введение
Глава 1. Понятие, состав информационной системы
1.1 Виды структур данных
1.2 Виды баз данных
1.3 Реляционные базы данных
Глава 2. Системы управления базами данных (СУБД)
2.1 Основные функции СУБД
2.2 Классификация СУБД
2.3 Механизмы доступа
2.4 Что такое sql?
Глава 3. Анализ качества баз данных
3.1 О надежности в терминах ISO 9126
Глава 4. Тенденции в мире систем управления базами данных
Заключение
Список используемой литературы
Введение
База данных - это реализованная с помощью компьютера информационная структура (модель), отражающая состояние объектов и их отношения.
Надо отметить, что база данных - это, собственно, хранилище информации и не более того. Однако, работа с базами данных трудоемкая и утомительная. Для создания, ведения и осуществления возможности коллективного пользования базами данных используются программные средства, называемые системами управления базами данных (СУБД).
Базы данных на ПК развивались по направлению от настольных (desktop), или локальных приложений, когда реально с БД могло работать одно приложение, до систем коллективного доступа к БД. Локальное приложение устанавливалось на единичном ПК; там же располагалась и база данных (БД), с которой работало данное приложение. Однако необходимость коллективной работы с одной и той же БД повлекло за собой перенос БД на сервер. Приложение, работающее с БД, располагалось также на сервере.
Для анализа свойств баз данных предлагается выделять характеристики качества системы управления базой данных и содержащейся в ней информации. Состав этих характеристик рекомендуется систематизировать на основе требований международного стандарта ISO 9126.
Современные базы данных — один из тех объектов в сфере информатизации, от которых иногда требуется особенно высокое качество и наличие возможности его оценки.
Глава 1. Понятие, состав информационной системы
База данных - это реализованная с помощью компьютера информационная структура (модель), отражающая состояние объектов и их отношения.
Базы данных - важнейшая составная часть информационных систем. Информационные системы предназначены для хранения и обработки больших объемов информации. Изначально такие системы существовали в письменном виде. Для этого использовались различные картотеки, папки, журналы, библиотечные каталоги и т.д. Любая информационная система должна выполнять три основные функции: ввод данных, запросы по данным, составление отчетов.
Ввод данных. Система должна предоставлять возможность накапливания и упорядочивания данных. Необходимо обеспечить просмотр этих данных, внесение в них изменений и дополнений с тем, чтобы поддерживать актуальность информации.
Запросы по данным. В системе должна существовать возможность находить и просматривать отдельные части накопленной информации.
Составление отчетов. Время от времени возникает необходимость обобщать и анализировать большую группу данных (или даже все данные) информационной системы, представляя ее в виде документа.
Обслуживание информационных систем, реализованных в письменном (бумажном) виде, сопряжено со многими трудностями: чем больше информационная система, тем больше бумаги (карточек) и места требуется для их хранения (в этом можно убедиться на примере библиотеки); много времени тратится на поиск нужной информации. Сложности возникают при обновлении, анализе и обработке данных.
Предположим мы хотим собрать информацию про альбомы музыкальных групп. Пусть имеется информация о некоторых альбомах: 1965, Led Zeppelin 4, Lp, Help!, Atlantic, 1971. Lp (England), EMI. 1970, Flash Gordon, Parlophone, 1980, Led Zeppelin 3, Soundtrack, Lp, Atlantic. Этот список мало о чем говорит. Извлечь какую-либо информацию из этого набора данных практически невозможно.
Представим данные в виде табл. 1.
Таблица 1. Информация об альбомах музыкальных групп
Название альбома |
Год выпуска |
Тип |
Фирма альбома |
Help! |
1965 |
Lp (England) |
Parlophone |
Led Zeppelin 4 |
1971 |
Lp |
Atlantic |
Led Zeppelin 3 |
1970 |
Lp |
Atlantic |
Flash Gordon |
1980 |
Soundtrack |
EMI |
Теперь воспринимать и использовать информацию стало гораздо удобнее. Представленная таблица является информационной моделью. Объектами, отраженными в этой модели, являются музыкальные альбомы (групп), причем все данные взаимосвязаны.
1.1 Виды структур данных
В информатике совокупность взаимосвязанных данных называется информационной структурой, или структурой данных. В моём примере объектами модели являются музыкальные альбомы. Свойства же этих объектов находятся в столбцах таблицы (“Название альбома”, “Год выпуска”, “Тип альбома”, “Фирма”), их называют атрибутами объектов. Таким образом, каждая строка таблицы - есть совокупность атрибутов объекта. Такую строку называют записью, а столбец - полем записи.
Помимо сведений, указанных в атрибутах, табличная организация данных позволяет получить дополнительную информацию. К примеру, нетрудно узнать (в предположении, что наша табл. заполнена данными):
• какая группа выпустила больше альбомов за определенный период;
• число альбомов данной группы;
• сколько имеется альбомов типа Soundtrack (музыка к фильму);
• какая фирма выпустила наибольшее число альбомов данной группы.
Табличная организация данных называется также реляционной. Кроме табличной структуры данных существуют другие виды структурной организации данных.
Для иерархических структур (рис. 1) характерна подчиненность объектов нижнего уровня объектам верхнего уровня. Важно отметить, что в дереве, между верхними и нижними объектами, задано отношение “один ко многим” (т.е. одной группе соответствует много альбомов, одному альбому соответствует много песен).
Рис. 1. Пример иерархической организации данных
Несмотря на то, что в атрибутах, описывающих песню, нет названия альбома, глядя на дерево по линиям связи можно сказать, какая песня принадлежит альбому. Благодаря линиям связи можно определить принадлежность альбома группе. Из данной иерархической структуры можно узнать:
• в каком альбоме больше песен;
• число альбомов выпущенных группой;
• есть ли в альбомах одинаковые песни и т.д.
Сетевую структуру данных можно представить в виде схемы, рис. 2.
Рис. 2. Пример сетевой организации данных
Глядя на рис. 2, можно определить, какими инструментами владеет музыкант, является ли он вокалистом. В этом случае есть два уровня взаимосвязанных объектов, но отношение между ними “многие ко многим”.
Пусть в этой сетевой структуре данные о музыкантах и “инструментах” состоят из следующих атрибутов: музыкант - ФИО, рост, цвет волос, время рождения; инструмент- название инструмента, какой фирмой изготовлен инструмент.
Тогда схема позволяет ответить на следующие вопросы:
• гитары какой фирмы предпочитает большинство музыкантов;
• какой музыкант владеет наибольшим количеством инструментов и др.
Построение структуры данных происходит в следующем порядке:
• определяются объекты описания;
• определяются структуры этих объектов;
• выбирается тип структуры, отображающий отношения между объектами (табличная, иерархическая, сети);
• строится конкретная информационная структура.
1.2 Виды баз данных
Поскольку основу любой базы данных составляет информационная структура, базы данных делят на три рассмотренные выше типа: табличные (реляционные), сетевые, иерархические.
Опыт использования баз данных позволяет выделить общий набор их рабочих характеристик:
• полнота - чем полнее база данных, тем вероятнее, что она содержит нужную информацию (однако, не должно быть избыточной информации);
• правильная организация - чем лучше структурирована база данных, тем легче в ней найти необходимые сведения;
• актуальность - любая база данных может быть точной и полной, если она постоянно обновляется, т.е. необходимо, чтобы база данных в каждый момент времени полностью соответствовала состоянию отображаемого ею объекта;
• удобство для использования - база данных должна быть проста и удобна в использовании и иметь развитые методы доступа к любой части информации.
Соответственно возможностям организации реляционных, иерархических и сетевых информационных структур, существуют и аналогичные виды баз данных. В них данные представлены в формах, адекватных соответствующим структурам. Однако иерархические и сетевые базы данных являются гораздо менее распространенными, чем реляционные и не могут быть реализованы с помощью наиболее популярных СУБД, входящих в состав программного обеспечения ЭВМ.
1.3 Реляционные базы данных
Наиболее распространенными в практике являются реляционные базы данных. Название “реляционная” (в переводе с английского relation - отношение) связано с тем, что каждая запись в таблице содержит информацию, относящуюся только к одному конкретному объекту.
Всякое отношение должно иметь свое имя. Пусть есть отношение с названием “Альбомы группы”. В этом случае структура базы данных, состоящая из одной таблицы, запишется так: Альбомы группы (название альбома, год выпуска, тип альбома, фирма). Однако чаще база данных строится на основе нескольких таблиц, связанных между собой через общие атрибуты. Пусть, например, в базе данных “Рок-энциклопедия” содержатся две таблицы - 2 и 3.
Таблица 2. Музыкальные альбомы групп
Код альбома |
Код группы |
Название альбома |
Год выпуска |
Тип альбома |
Фирма |
25 |
1 |
Help! |
1965 |
Lp (English) |
Pariophone |
36 |
2 |
Led Zeppelin 4 |
l97l |
Lp |
Atlantic |
35 |
2 |
Led Zeppelin 4 - |
1970 |
Lp |
Atlantic |
34 |
3 |
Flash Gordon |
1980 |
Soundtrack |
EMI |
Таблица 3. Рок группы
Код группы |
Название группы |
Страна |
Дата создания |
Дата распада |
1 |
The Bealles |
Англия |
1963 |
I970 |
2 |
Led Zeppelin 4 |
Англия |
1989 |
- |
3 |
Flash Gordon |
Англия |
199I |
- |
Эти две таблицы связаны между собой общим полем “Код группы”. Поле “Код альбома” в таблице 2 создается для того, чтобы отличать альбомы друг от друга. Это очень важно, так как в таблице могут находиться альбомы с одинаковыми названиями.
Необходимость использования больше одной таблицы станет заметной, если объединить эти таблицы в одну (табл. 4.).
Таблица 4. Объединение таблиц
Название группы |
Страна |
Дата создания |
Дата распада |
Название альбома |
Год выпуска |
Тип альбома |
Фирма |
The Beatles |
Англия |
1963 |
I970 |
With the Beatles |
1963 |
Lp |
Pariophone |
The Beatles |
Англия |
1963 |
I970 |
Please, please me |
1963 |
Lp |
Pariophone |
The Beatles |
Англия |
1963 |
I970 |
Rubber soul |
1963 |
Lp |
Pariophone |
Из таблицы 4 видно, что при внесении в нее данных об альбомах определенной группы каждый раз приходится дублировать информацию первых четырех полей таблицы. Многократное сохранение в БД одних и тех же данных (название группы, страна, дата создания, дата распада) приведет к неэффективному использованию памяти, к тому же существенно возрастет вероятность ошибок при вводе данных. Разбив же данные по таблицам, можно в значительной степени избежать этих трудностей.
Через связь, определенную между этими таблицами, можно узнать
• сколько альбомов выпустила группа;
• в каком году было выпущено максимальное количество альбомов и т.п.
Реляционные базы данных удобны еще и тем, что для получения ответов на различные запросы существует разработанный математический аппарат, который называется исчислением отношений или реляционной алгеброй. Ответы на запросы получаются путем “разрезания” и “склеивания” таблиц по строкам и столбцам. При этом ясно, что ответы также будут иметь форму таблиц.
Глава 2. Системы управления базами данных (СУБД)
База данных предполагает наличие комплекса программных средств, обслуживающих эту базу данных и позволяющих использовать содержащуюся в ней информацию. Такие комплексы программ называют СУБД. СУБД - это программная система, поддерживающая наполнение и манипулирование данными, представляющими интерес для пользователей при решении прикладных задач. Иными словами, СУБД является интерфейсом между базой данных и прикладными задачами.
В настоящее время выделяют пять уровней проблематики систем управления базами данных:
• реляционные базы данных, 1970 - 90 гг.;
• объектно-ориентированные базы данных, 1980 - 90 гг.;
• интеллектуальные базы данных, 1985 - 90 гг.;
• распределенные базы данных, начало 1990 гг.;
• базы данных мультимедиа и виртуальной реальности настоящего времени.
Обычно современная СУБД содержит следующие компоненты:
- ядро, которое отвечает за управление данными во внешней и оперативной памяти и журнализацию,
- процессор языка базы данных, обеспечивающий оптимизацию запросов на извлечение и изменение данных и создание, как правило, машинно-независимого исполняемого внутреннего кода,
- подсистему поддержки времени исполнения, которая интерпретирует программы манипуляции данными, создающие пользовательский интерфейс с СУБД,
- а также сервисные программы (внешние утилиты), обеспечивающие ряд дополнительных возможностей по обслуживанию информационной системы.
Архитектурно СУБД состоит из двух основных компонентов; языка описания данных (ЯОД), позволяющего создать схему описания данных в базе, и языка манипулирования данными (ЯМД), выполняющего операции с базой данных (наполнение, обновление, удаление, выборку информации). Данные языки могут быть реализованы в виде тренажеров или интерпретаторов. Помимо ЯОД и ЯМД к СУБД следует отнести средства (или языки) подготовки отчетов (СПО), позволяющие подготовить сводки (отчеты) на основе информации, найденной в базе данных, по заданным формам.
Язык описания данных (ЯОД) - это язык высокого уровня декларативного (непроцедурного) типа, предназначенный для формализованного описания типов данных, их структур и взаимосвязей. Исходные тексты описания данных на этом языке после трансляции отображаются в управляющие таблицы, задающие размещение в памяти ЭВМ и связи между собой рассматриваемых данных. В соответствии с этими описаниями СУБД находит в базе требуемые данные, правильно преобразует их и передает, например, в прикладную программу пользователя, которой они потребовались. При записи данных в базу СУБД по этим описаниям определяет место в памяти ЭВМ, куда их требуется поместить, преобразует к заданному виду и устанавливает необходимые связи.
Язык манипулирования данными (или язык запросов) представляет собой систему команд, например, следующего типа:
• произвести выборку данного, значение, которого удовлетворяет заданным условиям;
• произвести выборку всех данных определенного типа, значения которых удовлетворяют заданным условиям;
• найти в базе позицию данного и поместить туда новое значение (или удалить данное) и т.д.
Широкое распространение имеют СУБД для персональных компьютеров типа DBASE (DBASE III, IV, FoxPro, Paradox), Clipper, Clarion. Эти СУБД ориентированы на однопользовательский режим работы с базой данных и имеют очень ограниченные возможности. Языки подобных СУБД представляют собой сочетание команд выборки, организации диалога, генерации отчетов. В связи с развитием компьютерных сетей, в которых персональные компьютеры выступают в качестве развитых (интеллектуальных) терминалов, новые версии СУБД все в большей степени включают в себя возможности описанного ниже языка манипулирования данными SQL.
В последнее время стали среди СУБД популярными ACCESS (входит в состав MS Office), Lotus, Oracle.
2.1 Основные функции СУБД
1. управление данными - можно указать, кому разрешено знакомиться с данными, корректировать их или добавлять новую информацию. Можно также определять правила коллективного доступа, в том числе:
1.1 управление данными во внешней памяти (на дисках);
1.2 управление данными в оперативной памяти с использованием дискового кэша;
- журнализация изменений, резервное копирование и восстановление базы данных после сбоев;
- поддержка языков БД (язык определения данных, язык манипулирования данными);
- определение данных - определить, какая именно информация будет храниться в базе данных, задать свойства данных, их тип (например, число цифр или символов), а также указать, как эти данные связаны между собой. В некоторых случаях есть возможность задавать форматы и критерии проверки данных;
- обработка данных - данные могут обрабатываться самыми различными способами. Можно выбирать любые поля, фильтровать и сортировать данные. Можно объединять данные с другой, связанной с ними, информацией и вычислять итоговые значения.
2.2 Классификация СУБД
Базы данных на ПК развивались по направлению от настольных (desktop), или локальных приложений, когда реально с БД могло работать одно приложение, до систем коллективного доступа к БД. Локальное приложение устанавливалось на единичном ПК; там же располагалась и база данных (БД), с которой работало данное приложение. Однако необходимость коллективной работы с одной и той же БД повлекло за собой перенос БД на сервер. Приложение, работающее с БД, располагалось также на сервере. Менее характерным был другой способ, заключавшийся в хранении приложения, обращавшегося к БД, на конкретном компьютере пользователей ("клиентов"). Были выпущены новые версии локальных СУБД, которые позволяли создавать приложения, одновременно работающие с одной БД на файловом сервере. Основной проблемой была явная или неявная обработка транзакций и неизбежно встающая при коллективном доступе проблема обеспечения смысловой и ссылочной целостности БД при одновременном изменении одних и тех же данных.
По модели данных
По типу управляемой базы данных СУБД разделяются на:
- Иерархические
- Сетевые
- Реляционные
- Объектно-реляционные
- Объектно-ориентированные.
По архитектуре организации хранения данных:
- локальные СУБД (все части локальной СУБД размещаются на одном компьютере).
- распределенные СУБД (части СУБД могут размещаться на двух и более компьютерах).
По способу доступа к БД
- Файл-серверные.
В файл-серверных СУБД файлы данных располагаются централизованно на файл-сервере. Ядро СУБД располагается на каждом клиентском компьютере. Доступ к данным осуществляется через локальную сеть. Синхронизация чтений и обновлений осуществляется посредством файловых блокировок. Преимуществом этой архитектуры является низкая нагрузка на ЦП сервера, а недостатком — высокая загрузка локальной сети.
На данный момент файл-серверные СУБД считаются устаревшими.
Примеры: Microsoft Access, Borland Paradox.
- Клиент-серверные.
Такие СУБД состоят из клиентской части (которая входит в состав прикладной программы) и сервера (см. Клиент-сервер). Клиент-серверные СУБД, в отличие от файл-серверных, обеспечивают разграничение доступа между пользователями и мало загружают сеть и клиентские машины. Сервер является внешней по отношению к клиенту программой, и по надобности его можно заменить другим. Недостаток клиент-серверных СУБД в самом факте существования сервера (что плохо для локальных программ — в них удобнее встраиваемые СУБД) и больших вычислительных ресурсах, потребляемых сервером.
Примеры: Firebird, Interbase, IBM DB2, MS SQL Server, Sybase, Oracle, PostgreSQL, MySQL, ЛИНТЕР.
- Встраиваемые.
Встраиваемая СУБД — библиотека, которая позволяет унифицированным образом хранить большие объёмы данных на локальной машине. Доступ к данным может происходить через SQL либо через особые функции СУБД. Встраиваемые СУБД быстрее обычных клиент-серверных и не требуют установки сервера, поэтому востребованы в локальном ПО, которое имеет дело с большими объёмами данных (например, геоинформационные системы).
Примеры: OpenEdge, SQLite, BerkeleyDB, один из вариантов Firebird, один из вариантов MySQL, Sav Zigzag, Microsoft SQL Server Compact, ЛИНТЕР.
Местоположение БД определяет так называемую архитектуру базы данных. Имеются четыре разновидности архитектур баз данных:
- локальные базы данных;
- архитектура "файл-сервер";
- архитектура "клиент-сервер";
- многозвенная архитектура.
Использование той или иной архитектуры накладывает сильный отпечаток на общую идеологию работы приложения и на программный код приложения. При работе с локальными базами данных сами базы данных расположены на том же компьютере, что и приложения, осуществляющие доступ к ним. Работа с базой данных происходит в однопользовательском режиме. Приложение ответственно за поддержание целостности базы и за выполнение запросов к базе данных.
При работе в архитектуре "файл-сервер" база данных и приложение расположены на файловом сервере сети. Возможна многопользовательская работа с одной и той же базой данных, когда каждый пользователь со своего компьютера запускает приложение, расположенное на сетевом сервере. Тогда на компьютере пользователя запускается копия приложения. По каждому запросу к базе данных из приложения, данные из таблиц базы данных, перегоняются на компьютер пользователя, независимо от того, сколько реально нужно данных для выполнения запроса. После этого выполняется запрос.
Каждый пользователь имеет на своем компьютере локальную копию данных, время от времени обновляемых из реальной базы данных, расположенной на сетевом сервере. При этом изменения, которые каждый пользователь вносит в базу данных, могут быть до определенного момента неизвестны другим пользователям, что делает актуальной задачу систематического обновления данных на компьютере пользователя из реальной базы данных. Другой актуальной задачей является блокирование записей, которые изменяются одним из пользователей; это необходимо для того, чтобы в это время другой пользователь не внес изменений в те же данные.
В архитектуре "файл-сервер" вся тяжесть выполнения запросов к базе данных и управления целостностью базы данных ложится на приложение пользователя. База данных на сервере является пассивным источником данных.
Кардинальных различий с точки зрения архитектуры между однопользовательской архитектурой и архитектурой "файл-сервер" нет. И в том, и в ином случае в качестве СУБД применяются так называемые "персональные" (или "настольные", "локальные") СУБД, такие как paradox, dbase и пр. Сама база данных в этом случае представляет собой набор таблиц, индексных файлов, файлов полей комментариев (memo-полей) и пр., хранящихся в одном каталоге на диске в виде отдельных файлов.
В ходе эксплуатации были выявлены общие недостатки файл-серверного подхода при обеспечении многопользовательского доступа к базе данных:

- Базы данных и управление ими
- Базы данных. Реляционные базы данных. Язык SQL
- Базы данных "Ремонт компьютеров"
- Базы данных розничной клиентуры
- Базы данных «Санаторий»
- Базы данных. Системы управления базами данных
- Базы данных. Создание программы "Телефонный справочник"
- Базы данных для информационной системе
- Базы данных для кинотеатров
- Базы данных для станции технического обслуживания
- «Базы данных»: Домашний архив
- Базы данных и лингвистические информационные ресурсы
- Базы данных и система управления базами данных
- Базы данных и системы управления базами данных