Автор работы: Пользователь скрыл имя, 05 Февраля 2011 в 17:27, курс лекций
В работе рассматриваются основные вопросы в виде лекций по предмету "Программное обеспечение".
Лекция № 14 Основные понятия баз данных
Человек в процессе информационной деятельности собирает и накапливает сведения об окружающем мире. До появления вычислительной техники вся информация хранилась обычно в письменном или печатном виде. Однако чем больше были объемы информации, с которыми приходилось оперировать человеку, тем острее вставал вопрос сохранения информации и её обработки. Напомним, что информация, предназначенная для обработки, называется данными.
В настоящей главе мы будем рассматривать не просто данные, а базы данных. Не всякий блок информации можно считать базой данных.
База данных – это совокупность данных, которые обладают свойствами структурированности и взаимосвязанности, а также независимости от прикладных программ.
Поясним, что означают перечисленные свойства базы данных. Чтобы пользователь легко мог находить нужную ему информацию, последняя должна быть организована определенным образом. Это касается не только информации, которая хранится в компьютере, но любой информации об объектах реального мира. Например, удобно находить нужную книгу в библиотеке, пользуясь каталогом. Не составляет труда отыскать интересующие вас объявления в газете. Такая легкость поиска возможна благодаря тому, что данные в каталоге или в газете имеют структуру, или, другими словами, структурированы. Все книги описаны одинаковым образом: автор, название, издательство, год издания и т.д. Все объявления о продажах размещены по рубрикам и также имеют определенную структуру: краткое описание товара, цена, телефон.
Устройство
базы данных обычно сложнее, чем устройство
простого каталога или набора газетных
объявлений. Это обусловлено прежде
всего свойством взаимосвязанно
Наконец, последнее из перечисленных свойств баз данных – это их независимость от прикладных программ. Базы данных конструируются таким образом, чтобы с ними можно было работать в различных программных средах и на различных компьютерных платформах.
Свойства базы данных
База данных должна быть:
Чтобы оперировать данными, составляющими базу, необходима отдельная программа – система управления базами данных.
Управляющая программа, предназначенная для хранения, обработки данных в базе, называется системой управления базами данных (сокращенно СУБД).
Современные СУБД - это программные приложения, которые позволяют решать многообразные задачи. Все существующие системы удовлетворяют, как правило, следующим требованиям.
Возможности манипулирования данными (ввод, выбор, вставка, обновление, удаление и др.). Основные операции с данными выполняются под управлением СУБД. Важными показателями при этом являются производительность СУБД, стоимость хранения и использования данных, простота обращения к базе данных и проч.
Возможность поиска и формирования запросов. С помощью запросов пользователь может оперативно получать различного рода информацию, которая хранится в базе данных.
Обеспечение целостности (согласованности) данных. При использовании данных многими пользователями важно обеспечить корректность операций, при которых не может быть нарушена согласованность данных. Нарушение согласованности данных чревато их необратимой потерей.
Обеспечение защиты и секретности. Кроме защиты от некорректных действий пользователей, важно обеспечить защиту данных от несанкционированного доступа и аппаратных сбоев. Проникновение в базу лиц, имеющих на это права, может иметь следствием разрушение данных. Секретность базы данных позволяет определять круг лиц, имеющих доступ к информации, и порядок доступа.
В настоящее время существует множество СУБД, которые различаются архитектурой, внутренним языком программирования, операционной системой, под управлением которой они работают, а также другими характеристиками Среди СУБД, которые устанавливаются в небольших организациях и ориентированы на работу с конечными пользователями, наиболее популярны Access, FoxPro, Paradox. К более сложным системам относятся распределенные СУБД, которые предназначены для работы с большими базами данных, распределенными на нескольких серверах (серверы могут находиться в различных регионах). Мощными СУБД такого типа являются Oracle, Sybase, Informix.
В системах управления баз данных реализованы различные модели организации баз данных.
Реляционная модель
Практически все современные СУБД используют реляционную модель данных. В основе этой модели, предложенной Е.Ф. Коддом в 1970 г., лежит понятие отношение (по-английски relation). Речь идет об отношениях, заключенных в двухмерных (то есть обычных) таблицах. Кодд показал, что таблицы могут быть использованы для хранения данных об объектах реального мира.
Рассмотрим пример реляционной модели данных. Допустим, нужно составить базу данных о подготовке к походу, в который отправятся ученики школы. Назовем эту базу «Поход». В ней, прежде всего, должна быть таблица, отражающая сведения об участниках похода. Эта таблица будет состоять из полей: «Код участника», «Фамилия», «Имя», «Класс», «Адрес», «Телефон» (Таблица.1).
Таблица.1 База банных «Поход», таблица «Участники»
Код участника | Фамилия | Имя | Класс | Адрес | Телефон |
1 | Арбузов | Константин | 8-А | ул. Песчаная, За, кв.17 | 23-44-93 |
2 | Бирюкова | Ирина | 8-Б | ул. Луговая, 15 | 33-62-76 |
3 | Веденеев | Константин | 8-А | ул. Песчаная, 3, кв.43 | 25-37-12 |
4 | Крамаренко | Вячеслав | 8-В | пр. Победы, 1, кв.66 | 34-25-98 |
5 | Крамаренко | Надежда | 7-Б | пр. Победы, 1, кв.66 | 34-25-98 |
Назовем эту таблицу «Участники» (такое же имя будет иметь и отношение, представленное данной таблицей). Обратите внимание, что поле «Код участника» данной таблицы имеет уникальные значения, которые не повторяются ни одной из записей. Такое поле при включении таблицы в базу данных будет ключевого поля. На роль ключевого не годятся ни поле «Фамилия» (в таблице имеются однофамильцы), ни любое другое поле.
База данных строится на основе не одной, а множества таблиц. Введем в данных «Поход» еще одну таблицу - «Снаряжение» (Таблица.1). В нее будут заноситься сведения о снаряжении, которое должны взять с собой участники.
Таблица. 2 Таблица «Снаряжение»
Код снаряжения | Код участника | Снаряжение |
10 | 1 | Палатка |
20 | 2 | Котелок |
30 | 2 | Веревка |
40 | 4 | Топор |
50 | 5 | Котелок |
60 | 5 | Фонарь |
70 | 4 | Нож |
Записи в этой таблице составлены из полей «Код снаряжения», «Код участника» и «Снаряжение». Первое поле («Код снаряжения») является ключевым полем: для каждой записи оно принимает уникальные значения в отличие от остальных полей, в которых имеются дублирующие значения (например, повторяются коды участников 2,4, 5 и снаряжение «Котелок»).
Каким образом можно использовать информацию приведенных двух таблиц? Допустим, нас интересует, кто возьмет в поход палатку. Из таблицы «Снаряжение» находим, что палатку, имеющую код 10, должен взять участник с кодом 1. Из таблицы «Участники» видим, что код 1 имеет Арбузов Константин. Таким образом, палатку должен взять участник Арбузов К. Эту информацию мы получили благодаря связи таблиц «Участники» и «Снаряжение» через общее поле «Код участника».
В дополнение к имеющимся двум таблицам мы можем составить и другие полезные таблицы, например, «Продукты», в которой будет приведен список продуктов и указаны участники, которые их берут. Вы можете придумать таблицы «График движения», «Памятные места», «Дежурства» и, возможно другие, которые войдут в реляционную базу данных «Поход».
Иерархические модели данных
При построении баз данных, кроме реляционной модели, иногда прибегают к другим видам моделей: иерархической и сетевой. Мы кратко рассмотрим эти типы моделей, хотя они имеют, скорее, исторический интерес, поскольку в основу практически всех современных СУБД положена реляционная модель.
Иерархическая модель базы данных представляет собой совокупность объектов различного уровня, причём объекты нижнего уровня подчинены объектам верхнего уровня.
Рисунок.1. Пример иерархической модели данных «Мои школьные друзья»
Иерархическая структура представляется перевернутым деревом, как в примере на рисунке 1. Объекты в этой структуре соединены линиями связи. Заметим, что линии связи отвечают отношению «один ко многим». То есть одному объекту верхнего уровня отвечает много объектов нижнего уровня.
Сетевые модели данных
Другой тип отношений, а именно: отношения «многие ко многим» устанавливается в сетевой модели данных.
Сетевая модель базы данных, как и иерархическая модель, представляется совокупностью объектов различного уровня, однако схема связей между объектами может быть любой.
На рисунке 2 показана сетевая модель, изображающая участие ребят в различных командах.
Рисунок 2. Пример сетевой модели данных «Спортивные команды»
База данных в Access может содержать объекты различных категорий (всего таких категорий шесть). Каждой из категорий отвечает своя вкладка окна базы данных: Таблицы, Запросы, Формы, Отчеты, Макросы и Модули.
Таблицы. Это основная категория объектов в реляционной СУБД, поскольку вся информация хранится в базе данных в виде таблиц. Каждая таблица состоит из записей (строк) и из полей (столбцов). Работа с таблицей выполняется в двух основных режимах: в режиме конструктора в режиме таблицы.