Лекция 1. Введение в теорию баз данных

advertisement
Лекция 1. Введение в теорию баз данных
Лекция посвящена рассмотрению основных понятий теории баз
данных и основных моделей данных, на которых строятся современные БД.
Цель: выявить основные структурные элементы баз данных и
основные принципы, используемые при их разработке.
Основные понятия
Существуют различные определения понятия база данных (БД). Чаще
всего под БД понимается поименованная совокупность структурированных
данных, относящихся к некоторой предметной области. Однако в этом случае
БД весьма трудно отличить от обычной картотеки или архива документов.
Можно выделить три свойства, которые отличают БД от простой
совокупности данных:
1. БД хранится и обрабатывается в вычислительной системе.
2. Данные в БД хорошо структурированы, т.е. выделены основные
элементы, их типы и связи между элементами, а также ограничения на
допустимые операции.
3. Обеспечивается поиск и обработка данных.
Наиболее распространенным типом БД являются реляционные базы
данных. Рассмотрим основные структурные элементы реляционной БД:
1. Поле – элементарная единица организации данных. Для описания
поля используют характеристики: имя, тип, длина, точность и т.д.
Соответствует столбцу в таблице.
2. Запись – совокупность логически связанных полей. Соответствует
строке в таблице.
3. Собственно таблица (отношение).
Система баз данных
Система баз данных (СБД) – это компьютеризированная система
структурированных данных, основная цель которой хранение информации и
предоставление ее по требованию.
Различают однопользовательские и многопользовательские системы.
Однопользовательская система (Single-user system) – это система, в
которой в одно и то же время к БД может получить доступ только один
пользователь.
Многопользовательская система (Multi-user system) – это система, в
которой в каждый момент времени к БД могут получить доступ несколько
пользователей. Основная задача такой системы – позволить пользователю
работать с БД как с однопользовательской.
1
Обычно в СБД выделяют четыре основных элемента:
1. Данные.
2. Аппаратное обеспечение.
3. Программное обеспечение (ПО).
4. Пользователи.
Упрощенная схема СБД представлена на рис. 1.1.
База данных
Прикладные
программы
Конечные
пользователи
Рис. 1.1. Элементы системы баз данных
Данные
Данные в БД можно охарактеризовать как интегрированные и общие.
Интегрированные данные можно представить как объединение нескольких
отдельных файлов, полностью или частично неперекрывающихся. В случае
общих данных отдельные области данных можно использовать нескольким
различным пользователям.
Аппаратное обеспечение
К нему относятся:
 накопители для хранения информации вместе с устройствами
ввода/вывода;
 процессор вместе с основной памятью, которая используется для
поддержки работы ПО системы.
Программное обеспечение
Основная часть ПО – это система управления базами данных, СУБД
(DBMS – DataBase Management System – диспетчер БД).
Основная функция СУБД – предоставление пользователю возможности
работать с БД, не вникая в детали на уровне аппаратуры.
2
СУБД поддерживает пользовательские операции высокого уровня. К
таким операциям относятся и операции, выполняемые с помощью языка SQL
(Structured Query Language, структурированный язык запросов) –
специального языка БД. СУБД хотя и основной, но не единственный
программный компонент системы, среди других можно назвать утилиты,
средства разработки приложений, генераторы отчетов и другие.
Пользователи
Различают три группы пользователей СБД:
1. Прикладные программисты. Для целей разработки прикладных
программ, которые используют базы данных, применимы различные языки и
среды программирования: Visual Basic, C++, Java, C# и другие. Прикладные
программы получают доступ к базе данных посредством выдачи
соответствующего запроса к СУБД (обычно это операторы SQL).
2. Конечные (рядовые) пользователи. Конечный пользователь может
получать доступ к базе данных, применяя одно из интерактивных
приложений. Многие СУБД предоставляют не только средства для
выполнения запросов SQL, но и графические утилиты, позволяющие
создавать запросы без знания SQL.
3. Администраторы БД. Занимаются управлением работы сервера БД.
Организация данных в БД
В базе данных выделяют следующие элементы:
 данные;
 объекты;
 связи;
 свойства.
Данные
В БД данные обычно называют постоянными, хотя они конечно не
являются таковыми в общепринятом понимании. Так их назвали в сравнении
с изменчивыми данными – транзитными (промежуточные результаты,
входные, выходные данные).
Входные данные – это информация, передаваемая системе с терминала
или рабочей станции. Когда эта информация сохранена в таблицах, она
становится частью постоянных данных или влечет за собой изменения
постоянных данных.
Выходные данные – это сообщения и результаты, выдаваемые системой
на экран, печать и иное устройство вывода.
3
Объекты
В реляционных БД это таблицы (другое название – отношения),
описывающие некоторые объекты реального мира. Реляционные базы
данных хранят все данные только в таблицах.
Связи
Связи отображают зависимости между объектами. Как правило, они
бывают двусторонними. Допустим, есть два объекта Students и Groups, по
связи между ними можно ответить на два вопроса:
1) какой группе принадлежит данный студент;
2) какие студенты входят в данную группу.
Схема, на которой представлены объекты и их связи, называется Схема
объект-отношение или Диаграмма объект-отношение (рис. 1.2.).
Рис. 1.2. Связь между таблицами Students и Groups
В схеме могут быть связи, указывающие на один и тот же тип объекта.
Например, преподаватель является наставником молодого преподавателя. В
конкретном наборе объектов может быть любое количество связей. Между
двумя таблицами может быть более одной связи.
Свойства
Все объекты и связи имеют определенные свойства. Свойства объектов
выражаются полями таблицы. Свойства связей выражаются в их
характеристиках при формировании.
Виды моделей данных
Ядром любой БД является модель данных. Модель данных – это
совокупность структуры данных и операций их обработки.
Кратко рассмотрим основные виды моделей данных и выявим их
основные преимущества и недостатки, при этом будем учитывать факторы,
характеризующие принципиальные особенности моделей, а также факторы,
связанные с реализацией этих моделей на ЭВМ.
4
1. Иерархическая модель данных. Представляет собой совокупность
элементов, связанных по строго определенным правилам. Объекты,
связанные иерархическими отношениями образуют ориентированный граф.
Основными понятиями иерархической модели данных являются: уровень,
узел (или элемент) и связь. Такая модель данных обладает следующими
свойствами:
 каждый узел связан только с одним вышестоящим узлом, кроме
вершины;
 иерархическая модель данных имеет только одну вершину, узел не
подчинен более никаким узлам;
 от каждого узла существует единственный путь к вершине;
 связь не может быть установлена между объектами, находящимися
через уровень;
 связь между узлами первого уровня не определяется.
Примеры.
1) Файловая структура организации информации.
2) Структура организации (директор, заместитель, руководители
отделов, сотрудники) (рис.1.3).
Директор
Руководитель
отдела продаж
Сотрудник
Сотрудник
Руководитель
PR-отдела
Сотрудник
Руководитель отдела
обслуживания
Сотрудник
Сотрудник
Рис. 1.3. Иерархическая структура данных
Преимущества:
1. Простота.
2. Минимальный расход памяти.
Недостатки:
1. Отсутствие универсальности – не всякую информацию можно
выразить в иерархической модели данных.
2. Исключительно навигационный принцип доступа к данным.
3. Доступ к данным только через корневой элемент.
2. Сетевая модель данных. Элементами этой модели являются:
уровень, узел, связь. Отличия в том, что элемент одного уровня может быть
5
связан с любым количеством элементов соседнего уровня, и не существует
подчиненности уровней друг другу.
Свойства сетевой модели:
 связь не может быть установлена между объектами, находящимися
через уровень;
 связь между узлами первого уровня не определяется.
Пример. Рассмотрим работу над проектами: можно выделить три вида
объектов – сотрудники, проекты, заказчики (рис.1.4).
Сотрудник 1
Сотрудник 2
Проект 1
Проект 2
Заказчик 1
Заказчик 2
Сотрудник 3
Сотрудник 4
Проект 3
Заказчик 3
Заказчик 4
4
Рис. 1.4. Сетевая структура данных
Преимущества:
1. Универсальность.
2. Возможность доступа к данным через значения нескольких
отношений.
Недостатки:
1. Сложность – обилие понятий, вариантов их взаимосвязей и
способов реализации.
2. Допустимость только навигационного принципа доступа к данным.
3. Реляционная модель данных (табличная). Это способ
представления данных в виде таблиц. Элементы: поле (столбец), запись
(строка) и таблица (отношение). В дальнейшем мы будем рассматривать
именно реляционную модель данных, которая используется в реляционных
системах. Под реляционной системой понимается система, основанная на
следующих принципах:
 данные пользователя представлены только в виде таблиц;
 пользователю предоставляются операторы, генерирующие новые
таблицы из старых (для выборки данных).
Пример. Рассмотрим отношения Студенты и Группы:
6
Students:
StudentID
LastName
1
Казаков
2
Васильев
4
Шишкина
FirstName
Петр
Иван
Дарья
Groups:
GroupID
1
Царев С.М.
2
Пестов Д.Н.
MiddleName
Владимирович
Аркадьевич
Сергеевна
GroupID
1
2
1
Supervisor
Преимущества:
1. Простота. В такой модели всего одна информационная
конструкция, формализующая табличное представление. Она наиболее
привычна для пользователя.
2. Теоретическое обоснование. Существуют строгие методы
нормализации данных в таблицах (будет подробно рассмотрено в лекциях 1011).
3. Независимость данных. При изменении БД, ее структуры
необходимы бывают лишь минимальные изменения прикладных программ.
Недостатки:
1. Низкая скорость, т.к. требуются операции соединения.
2. Большой расход памяти в силу организации всех данных в виде
таблиц.
4. Система инвертированных списков – система индексов. Систему
инвертированных списков можно рассматривать как частный случай сетевой
модели данных, которая имеет два уровня. Основные элементы: основной
файл, инвертированный список (файл), список связей. В такой системе
имеется несколько основных файлов, имеющих единую сквозную
нумерацию.
Пример. Рассмотрим объекты Сотрудники и Зарплата.
Сотрудники:
Сотрудник
01 Иванов
02 Сидоров
03 Шишкин
04 Васильев
Должность
программист
лаборант
преподаватель
преподаватель
7
Зарплата:
Сотрудник
05 Иванов
06 Сидоров
07 Иванов
08 Шишкин
09 Васильев
10 Васильев
Дата
1.10.2008
5.10.2008
3.12.2008
3.12.2008
25.01.2009
27.01.2009
Сумма
5000
7500
10000
8000
5000
8750
Инвертированный список может быть сформирован по любому полю
основных списков, в нем каждому значению сопоставляется список номеров
(индексов).
Пример: инвертированный список Должность:
 программист – 01;
 лаборант – 02;
 преподаватель – 03, 04
Список связей составляется только по основным столбцам.
Пример: рассмотрим два списка связей:
 Сотрудники – Зарплата:
o 01 – 05, 07
o 02 – 06
o 03 – 08
o 04 – 09, 10
 Зарплата – Сотрудники:
o 05 – 01
o 06 – 02
o 07 – 01
o 08 – 03
o 09 – 04
o 10 – 04
Инвертированные списки являются основой для создания
информационно-поисковых систем (ИПС). В ИПС ключевые атрибуты
соответствуют ключевым словам, определяющим тематику поиска.
Так как недостатки реляционной модели данных компенсируются
ростом быстродействия и ресурсов современных компьютеров, то в
настоящее время именно такие модели получили наибольшее
распространение.
8
Архитектура БД
Существует архитектура БД, предложенная исследовательской группой
ANSI/SPARC1 и называется архитектурой ANSI/SPARC.
Каждая система баз данных не обязана соответствовать этому
определению, например, «малые» системы, весьма вероятно, не будут
поддерживать все функции предложенной архитектуры. Тем не менее,
рассматриваемая архитектура с достаточной точностью описывает
большинство систем (и не только реляционных).
Принято выделять три уровня в архитектуре СУБД.
1. Внутренний уровень (называемый также физическим) наиболее
близок к физическому хранилищу информации, т.е. связан со способами
хранения информации на физических устройствах. Внутренний уровень
отображает физические элементы для хранения информации. Он
представляет собой бесконечное адресное пространство, из которого
информация проецируется на внешние носители.
2. Внешний уровень (называемый также пользовательским) наиболее
близок к пользователям, т.е. связан со способами представления данных для
отдельных пользователей (прикладной программист или конечный
пользователь). Для каждого пользователя может существовать свой язык
СУБД. Для прикладного программиста – это язык программирования, а для
конечного пользователя – это язык, основанный на меню, формах и т.д. Но
все эти языки включают язык данных, встроенный в СУБД. Для каждого
отдельного пользователя может быть интересна некоторая отдельная часть
БД. Такие части, с которыми работает пользователь, называются внешним
представлением.
3. Концептуальный уровень (называемый также логическим) является
«промежуточным» уровнем между двумя первыми. Это представление всей
информации БД в более абстрактной форме. На этом уровне хранятся
собственно данные, независимые от формы их представления.
Концептуальное представление состоит из множества экземпляров данных.
Данные здесь представлены в виде концептуальной схемы. Кроме самих
данных в эту схемы могут быть включены определения дополнительных
средств, например, правила обеспечения целостности.
Подробная схема архитектуры системы баз данных представлена на
рис. 1.5.
1
ANSI/SPARC (American National Standards Institute / Standards Planning and Requirements Committee
– Американский национальный институт стандартов / Комитет планирования стандартов) –
исследовательская группа в рамках Американского национального института стандартов. Архитектура
ANSI/SPARC была предложена в 1975 году.
9
Пользователь 1
Пользователь 2
Внешнее
представление 1
Внешний
уровень
Концептуальный
уровень
Пользователь 3
Внешнее
представление 2
Концептуальное
представление
Внутренний
уровень
Рис. 1.5. Уровни архитектуры систем баз данных
Классификация БД
Базы данных классифицируют по различным признакам, рассмотрим
основные из них.
1. По технологии обработки.
 Централизованные. Хранятся в памяти одной вычислительной
системы.
 Распределенные. Состоят из нескольких, возможно пересекающихся
частей, хранящихся в различных узлах вычислительной сети.
2. По способу доступа к данным.
 С локальным доступом. Характеризуется тем, что к такой БД
имеется доступ пользователя одной ЭВМ.
 С удаленным (сетевым) доступом. Доступно для всех пользователей
сети.
3. По архитектуре.
 Файл-сервер. Предполагает выделение одной машины в сети в
качестве центральной (сервер файлов), на ней хранится
централизованная БД, которая используется совместно.
 Клиент-сервер. Предполагается выделение сервера БД, который
кроме хранения осуществляет обработку данных. Систему БД
можно рассматривать как систему, состоящую из двух частей:
сервер и набор клиентов. Сервером БД называется собственно
СУБД, а клиентами – различные приложения, которые
выполняются над СУБД.
4. По содержимому.
 Географические.
10




Исторические.
Научные.
Мультимедийные.
и т.д.
Краткие итоги. Рассмотрены основные понятия баз данных,
представлены различные классификации систем управления базами данных.
Определены основные модели данных, которые используются в конкретных
реализациях СУБД: иерархическая, сетевая, реляционная и система индексов.
11
Download