БАЗЫ ДАННЫХ 2009
Данный файл содержит 1-4, 6, 10, 13, 14 лекции
Лекция 1
Введение
В начале 70-х годов для удобства работы с большими массивами данных сформулирована концепция баз данных. Ее основными положениями были:
1.Независимость прикладных программ от данных, размещенных во внешней памяти
2. Отсутствие избыточности в данных
3.Способность системы противостоять сбоям и отказам.
Для реализаций этих положений предлагалось ввести сервисную систему – посредник между пользовательскими программами и операционной системой.
Эта система была названа СУБД (система управления базами данных).
С 70 годов стали появляться различные СУБД. Наиболее известными из них были: IMS/360, TOTAL, ADABAS, ОКА, БАНК, СЕТОР, СЕДАН, ДИСОД. Эти системы разрабатывались для больших вычислительных машин. Они были мощные и интересные по своим возможностям, но достаточно сложные для понимания и освоения.
Современные СУБД во многом аналогичны по построению своим предшественникам, но имеют, как правило, более удобный интерфейс и более приспособлены для использования в вычислительных сетях.
Наиболее известными и широко используемыми в настоящее время являются
СУБДOracle, MS SQL Server иDB/2.
Тема 1. Основные положения теории баз данных
1.1 База данных и ее компоненты
БД– именованная совокупность данных, описывающая объекты реального мира и связи между ними.
Под объектом может пониматься предмет или процесс окружающего мира.
На рис. 1.1 представлен типичный состав БД и показана связь БД с пользователем.
Рис. 1.1 Взаимодействие пользователя с БД
Из рис. 1.1 видно, что в состав БД входят различные информационные объекты, но основой БД, естественно, являются данные пользователя. Именно данные пользователя определяют в своей основе сущности. Другие информационные объекты БД играют вспомогательную роль.
Индексы – это специальные элементы структуры БД, служащие для ускорения обработки запросов пользователя.
Представления – виртуальные таблицы, предоставляемые пользователям для повышения производительности и надежности системы.
Хранимые процедуры - программные модули для реализации самых разных задач, хранимые непосредственно в БД.
Триггеры – специальные программные средства для инициализации хранимых процедур в случае обновления БД.
Метаданные – данные, которые описывают данные пользователя (структуру, особенности, права пользователя и т.д.), т. е. это данные о данных. Метаданные используются самой СУБД, а не пользователями.
1.2. Использование БД
Основным инструментом пользователя при использовании БД является СУБД.
СУБД- сервисная программная система, служащая для создания и поддержки БД.
Таким образом, любая СУБД должна:
1) уметь создавать БД.
2) поддерживать БД
К функциям поддержки прежде всего относятся:
-управление внешней памятью,
-управление буферами,
- поддержка встроенного языка,
- управление транзакциями.
Все современные СУБД могут работать в двух режимах:
- в режиме диалога
- в режиме прикладных программ.
Программы, с помощью которых пользователи работают с БД, называются прикладными программами.
Как видно из рис.1.1, приложения
1) создают и передают запросы к БД на поиск или модификацию необходимых данных
2) создают и обрабатывают формы и отчеты
Отчет – это некоторая выборка данных из БД, структурированная
определенным образом.
3) выполняют логику программы, т.е. решают конкретную задачу для данной предметной области.
Принято различать следующие группы пользователей:
1 Конечные пользователи (это лица, для которых создается система с БД)
2 Разработчики приложений (программисты)
Программисты используют БД на стадии разработки системы с БД (информационной системы).
3 Администраторы баз данных АБД (они непосредственно создают БД и контролируют правильность ее использования)
Администраторы физически создают БД, задают ограничения целостности данных и определяют права конечных пользователей. Устраняют неисправности в ходе эксплуатации системы с БД и при необходимости восстанавливают БД.
АДБ, как правило, не используют приложения. Они, обычно, работают с БД средствами самой СУБД
Заметим так же, что конечные пользователи знают только свои формы и отчеты.
При этом они могут не знать, как структурированы их данные и как они хранятся во внешней памяти.
Вышеотмеченное, по сути дела, отражает основную идею концепции БД: конечный пользователь не должен знать, как структурированы данные и как они хранятся. Он должен только знать, что это за данные и какие операции можно над ними выполнять.
Лекция 2
1.3 Основные понятия реляционной модели данных
Современные СУБД в основном используют реляционную модель данных.
Реляционная модель впервые была разработана в 1969 году Коддом на основании теории отношений. Ее характерной особенностью является
представление данных пользователя в виде отношений (двумерных таблиц), широко распространенных в различных областях знаний (рис. 1.2) .
Отношение – это плоская, двумерная таблица.
Руководители (родительская таблица)
Таб_ном_рук | № отдела | Штат | ФИО |
237 | 55 | 11 | Ленский РП |
528 | 17 | 14 | Орлов ВВ |
714 | 89 | 46 | Коровин НП |
Сотрудники (дочерняя таблица)
Табельный номер | ФИО | Таб_ном_рук | Должность |
99 | Кулибин Н.Н. | 528 | научн_сотр |
100 | Рогов А.Н. | 237 | лаборант |
101 | Иванов И. И. | 237 | инженер |
148 | Петров П. П. | 714 | инженер |
135 | Сидоров С. С. | 528 | лаборант |
Рис. 1.2 Связанные таблицы
Фактически в большинстве случаев таблица отображает сущность (Замечание: однако иногда сущность может быть представлена несколькими таблицами). Каждая строка отношения содержит описание одного объекта предметной области.
Каждое отношение характеризуется следующими понятиями:
- атрибут
- домен
- кортеж
- первичный ключ
- внешний ключ
Рис. 1.3 поясняет смысл всех характеристик отношения.
Рис. 1.3. Соотношение основных понятий реляционной модели данных
Атрибут – это именованный столбец отношения.
Атрибуты в отношении могут располагаться в любом порядке. Независимо от их переупорядочения отношение будет оставаться одним и тем же, а потому иметь тот же смысл.
Количество столбцов ограничивается конкретной СУБД. В современных СУБД количество столбцов примерно = 254.
Каждый атрибут характеризуется своим типом данных Понятие типа данных в реляционной модели данных полностью соответствует понятию типа данных в языках программирования.
Обычно в современных реляционных базах данных допускается хранение символьных, числовых данных (точных и приблизительных), специализированных числовых данных (таких, как «деньги»), а также специальных «темпоральных» данных (дата, время, временной интервал)
Кортеж – это строка отношения.
Кортежи могут располагаться в любом порядке, при этом отношение будет оставаться тем же самым, а значит иметь тот же смысл.
Иными словами, каждый кортеж отношения является неименованным.
Кортежи номеруются самой СУБД независимо от пользователя. Замечание: некоторые СУБД имеют специальное поле- счетчик, который служит для явной нумерации строк. Однако его использование в большинстве случаев нецелесообразно.
Количество кортежей в отношении не ограничивается и определяется только размерами внешней памяти.
Домен – это набор допустимых значений для одного или нескольких атрибутов.
Атрибут | Имя домена | Содержимое домена | Определение домена |
ФИО | АА | Множество всех ФИО | Символьный;Размер 32 |
Таб_ном_рукТабельныйномер | T_H | Множество допустимых номеров | Цлочисленный;Размер 4; Диапазон 1- 5000 |
Каждый атрибут отношения определяется на некотором домене. Домены могут отличаться для каждого из атрибутов (т.е. для каждого атрибута может использоваться свой домен, как например, домен АА). Однако два или более атрибута могут определяться на одном и том же домене (как это показано для атрибутов Табельныйномер и Таб_ном_рук).
Фактически задание домена означает задание типа и размера, используемых данных, а также задание ограничений целостности этих данных.
Имя атрибута не обязательно должно совпадать с именем домена.
Домен создается оператором SQLCREATEDOMAIN и используется при создании отношений в операторе CREATETABLE.
Потенциальный ключ- атрибут или совокупность атрибутов, значение которого (которых) однозначно идентифицирует каждый кортеж отношения. Например,
Таб_ном | ФИО | Паспортные данные |
Здесь имеется два потенциальных ключа Таб_ном и Паспортные данные.
Первичный ключ- это потенциальный ключ, который выбран для однозначной идентификации кортежей отношения. (т.е. в отношении может существовать несколько атрибутов, которые могут быть использованы в качестве первичного ключа).