
Лекция 1. Введение
План.
Понятие БД
Понятие СУБД
Типы БД
На первой лекции мы рассмотрим общий смысл понятий база данных (БД) и система управления базой данных (СУБД). Неформально можно определить базу данных как некоторый набор данных, необходимый для работы и организованный тем или иным способом.
Компьютеры были созданы для решения вычислительных задач, однако со временем они все чаще стали использоваться для построения систем обработки документов, а точнее, содержащейся в них информации. Такие системы обычно и называют информационными. В качестве примера можно привести систему учета отработанного времени работниками предприятия и расчета заработной платы, систему учета продукции на складе, систему учета книг в библиотеке и т.д. Все вышеперечисленные системы имеют следующие особенности:
для обеспечения их работы нужны сравнительно низкие вычислительные мощности
данные, которые они используют, имеют сложную структуру
необходимы средства сохранения данных между последовательными запусками системы
Другими словами, информационная система требует создания в памяти компьютера динамически обновляемой модели внешнего мира с использованием единого хранилища - базы данных. Из-за большого разнообразия существующих подходов, можно встретить множество определений баз данных, но, наверное, единственным наиболее общим из них, является следующее довольно простое определение.
База данных - это набор информации, организованной и структурированной тем, или иным способом в целях автоматизации ее обработки.
На сегодняшний день мы сталкиваемся с базами данных повсеместно. Придя в поликлинику, человек первым делом отправляется в регистратуру, где хранится картотека, содержащая информацию обо всех пациентах этой поликлиники. Для каждого пациента заведена отдельная карточка, куда записаны его данные: фамилия, имя, отчество, год рождения, пол, адрес, телефон и т.д. Устраиваясь на работу, человек идет оформляться в отдел кадров, где хранится своя база данных – несколько полок с личными делами сотрудников, содержащими такие данные о каждом сотруднике, как его год рождения, образование, семейное положение, паспортные данные и т.д.
Таких примеров можно привести огромное множество: телефонным компаниям нужно хранить информацию о номерах телефонов, их владельцах и телефонных разговорах, банку нужны данные о клиентах и состоянии их счетов, школьник записывает расписание своих занятий и др. Каждая такая база хранит данные о каких-то объектах реального мира. Но хранится не вся возможная информация об объекте, а только актуальная информация, то есть необходимая для работы. Скажем, если в работе библиотеки никак не используется цвет обложки книги, то такая информация не будет храниться, чтобы не загружать каталог излишней информацией. Если для отдела кадров не важен рост сотрудника (если это не отдел кадров модельного агентства), то такие данные не будут там храниться, в то время как в поликлинике рост и вес человека важны, так как отражают состояние его здоровья, и будут внесены в базу.
При всем разнообразии существующих БД набор операций для работы с ними, как правило, один и тот же. Это добавление новых данных (новый сотрудник устроился на работу, заводится новое личное дело), изменение существующих данных (у работника изменились паспортные данные или семейное положение – соответствующие изменения должны быть внесены в его личное дело), удаление данных (сотрудник увольняется – его личное дело отправляется в мусорную корзину). Наиболее частой операцией бывает получение интересующей пользователя информации из базы (выборка данных) для последующей ее обработки. В примере с отделом кадров это могут запросы вида: “Сотрудников в какой должности больше всего в организации”, “В каком отделе самая большая зарплата” или “Сколько в организации сотрудников с годом рождения позднее 1978”.
Во времена, когда ресурсы компьютеров были ограничены, велся активный поиск наиболее эффективных, быстродействующих, удобных, надежных и т.п. подходов к созданию баз данных. В настоящее время разделяют следующие типы баз данных, исходя из модели их представления:
Картотеки
Иерархические
Сетевые
Объектно-ориентированные
Реляционные
Многомерные
Ключевым понятием в базе данных является сущность (объект). Структура этих сущностей и их связей и определяет тип базы данных. Картотека является простейшим типом баз данных, где существуют объекты только одного типа и они не связаны между собой. Думаю, многие имели дело с бумажными картотеками в библиотеке. Там объект представлен набором полей «автор, название, издательство, год и т.д.» В свою очередь, иерархические базы данных представляют собой древовидные иерархии сущностей. Тут уже типы сущностей, как правило, различны, а отношение между сущностями выстраивается по принципу «родительский объект – дочерний объект». Ярким примером иерархической базы данных является файловая система. На объектно-ориентированные базы данных накладывается множество ограничений для того чтобы соответствовать концепции Объектно-Ориентированного Подхода (ООП).
Наибольшее же распространение в настоящее время получили реляционные базы данных. Часто слово «реляционная» опускается и говорится просто «база данных», подразумевая именно этот тип. Так же будем поступать и мы, делая в нашем курсе упор на изучение реляционных баз данных.
Теория реляционных баз данных была разработана доктором Коддом из компании IBM в 1970 году. В реляционных базах данных все данные представлены в виде простых таблиц, разбитых на строки и столбцы, на пересечении которых расположены данные. Запросы к таким таблицам возвращают таблицы, которые сами могут становиться предметом дальнейших запросов. Каждая база данных может включать несколько таблиц. Кратко особенности реляционной базы данных можно сформулировать следующим образом:
Данные хранятся в таблицах, состоящих из столбцов ("атрибутов") и строк ("записей", "кортежей");
На пересечении каждого столбца и строчки стоит в точности одно значение;
У каждого столбца есть своё имя, которое служит его названием, и все значения в одном столбце имеют один тип.
Запросы к базе данных возвращают результат в виде таблиц, которые тоже могут выступать как объект запросов.
В дальнейшем структура информации в реляционных БД будет рассмотрена более подробно.
Итак, база данных – это лишь набор информации, определенным образом структурированной. Если рассмотреть аналогию с текстовой информацией, то можно сказать, что база данных – это текстовый документ. Для того чтобы иметь возможность его редактировать, просматривать, обрабатывать и совершать над ним различные операции, нужна специальная программа, текстовый редактор. То же самое и с базами данных. Такой специализированной программой является Система Управления Базами Данных (СУБД).
Современные СУБД настолько эффективны и представляют пользователям такой широкий круг возможностей, что они могут быть задействованы для работы с любой базой данных. (То есть любая СУБД может обрабатывать как библиотечный каталог, так и базу счетов в банке.)
Сейчас существует большое количество различных СУБД: MS SQL Server, Oracle, MySql, DB2 и пр., точно также как существует большое количество текстовых редакторов (MultiEdit, MS Word и др.) или операционных систем (MS Windows, Unix, OS/2 и др.). Производители СУБД в ходе непрерывной конкуренции постоянно развивают свои продукты, снабжая все более и более широкими возможностями. Можно выделить несколько основных функций, которыми обладает любая современная СУБД.