Организация баз данных

Организация баз данных
Производительность. СУБД должна выполнять свои функции с максимальной производительностью Заголовок содержит фиксированное множество атрибутов или, точнее, пар <имя‑атрибута : имя‑домена>: На практике большинство отношений имеют только один потенциальный ключ, хотя в общем случае их может быть несколько Если каждое из них имеет одно и то же множество имен атрибутов (следовательно, заметьте, они заведомо должны иметь одну и ту же степень); Следует заметить, что речь здесь пойдет о логическом, а не физическом макете Правая часть (зависимая часть) каждой ФЗ множества S содержит только один атрибут (т.е. является одноэлементным множеством) Диаграммы ER-экзрмпляров Степени связи между сущностями (1:1, 1:М, М:1, М:М); Булевы данные. Некоторые СУБД явным образом поддерживают логические значения (TRUE или FALSE) Константа, показывающая, что в каждой строке результатов запроса должно содержаться одно и то же значение Пользователь имеет доступ к объекту, только если его уровень допуска больше или равен уровню классификации объекта ALTER – позволяет модифицировать структуру таблиц (DB2, Oracle); Далее этот процесс следует повторить для вставки среднего значения W в родительский элемент Р на более высоком структурном уровне В последовательности проекций данного отношения можно игнорировать все проекции, кроме последней. Таким образом, выражение Долговечность. Когда транзакция выполнена, ее обновления сохраняются, даже если в следующий момент произойдет сбой системы Транзакция, предназначенная для извлечения кортежа, прежде всего должна наложить S‑блокировку на этот кортеж Перед выполнением каких-либо операций с некоторым объектом (например, с кортежем базы данных) транзакция должна заблокировать этот кортеж Несколько клиентов могут использовать один и тот же сервер (действительно, это довольно обычная ситуация)
362757
знаков
48
таблиц
34
изображения

кафедра компьютерных и информационных технологий

курс лекций


В настоящем курсе рассматриваются вопросы организации баз данных и знаний. Это важная тема, без основательного знакомства с которой, в наше время, невозможно стать квалифицированным специалистом в сфере информационных технологий.

Основное назначение данного курса – систематическое введение в идеи и методы, используемые в современных системах управления базами данных. В курсе не рассматривается какая-либо одна популярная СУБД; излагаемый материал в равной степени относится к любой современной системе. Как показывает опыт, без знания основ теории баз данных трудно на серьезном уровне работать с конкретными системами, как бы хорошо они не были документированы.


Содержание

ЛЕКЦИЯ 1. Понятие СУБД. Функции СУБД............................................... 7

1.1 Введение..................................................................................................... 7

1.2 Понятие БД и СУБД................................................................................... 7

1.3 Уровни абстракции в СУБД. Функции абстрактных данных.................. 9

1.4 Представления.......................................................................................... 10

1.5 Функции СУБД......................................................................................... 11

1.6 Экспертные системы и базы знаний........................................................ 11

ЛЕКЦИЯ 2. Модели БД.............................................................................. 13

2.1 Обзор ранних (дореляционных) СУБД.................................................. 13

2.2 Системы, основанные на инвертированных списках.............................. 13

2.3 Иерархическая модель............................................................................. 14

2.4 Сетевая модель......................................................................................... 16

2.5 Основные достоинства и недостатки ранних СУБД............................... 17

ЛЕКЦИЯ 3. Реляционная модель и ее характеристики. Целостность в реляционной модели 18

3.1 Представление информации в реляционных БД.................................... 18

3.2 Домены 19

3.3 Отношения. Свойства и виды отношений............................................... 20

3.4 Целостность реляционных данных......................................................... 21

3.5 Потенциальные и первичные ключи....................................................... 22

3.6 Внешние ключи........................................................................................ 22

3.7 Ссылочная целостность........................................................................... 23

3.8 Значения NULL и поддержка ссылочной целостности........................... 24

ЛЕКЦИЯ 4. Реляционная алгебра.............................................................. 25

4.1 Понятие реляционной алгебры............................................................... 25

4.2 Замкнутость в реляционной алгебре....................................................... 25

4.3 Традиционные операции над множествами............................................ 25

4.4 Свойства основных операций реляционной алгебры............................ 27

4.5 Специальные реляционные операции..................................................... 28

ЛЕКЦИЯ 5. Вопросы проектирования БД................................................. 34

5.1 Понятие проектирования БД................................................................... 34

5.2 Функциональные зависимости................................................................. 35

5.3 Тривиальные и нетривиальные зависимости.......................................... 36

5.4 Замыкание множества зависимостей и правила вывода Армстронга... 36

5.5 Неприводимое множество зависимостей................................................. 38

5.6 Нормальные формы – основные понятия............................................... 38

5.7 Декомпозиция без потерь и функциональные зависимости................... 39

5.8 Диаграммы функциональных зависимостей........................................... 40

ЛЕКЦИЯ 6. Проектирование БД. Нормальные формы отношений......... 42

6.1 Первая нормальная форма. Возможные недостатки отношения в 1НФ 42

6.2 Вторая нормальная форма. Возможные недостатки отношения во 2НФ 44

6.3 Третья нормальная форма. Возможные недостатки отношения в 3НФ 45

6.4 Нормальная форма Бойса-Кодда............................................................ 46

ЛЕКЦИЯ 7. Проектирование БД. Нормальные формы отношений (продолжение) 49

7.1 Многозначные зависимости..................................................................... 49

7.2 Четвертая нормальная форма.................................................................. 51

7.3 Зависимости соединения.......................................................................... 51

7.4 Пятая нормальная форма........................................................................ 53

7.5 Итоговая схема процедуры нормализации............................................ 53

ЛЕКЦИЯ 8. Проектирование БД методом сущность-связь. ER-диаграммы 55

8.1 Возникновение семантического моделирования.................................... 55

8.2 Основные понятия метода........................................................................ 55

8.3 Диаграммы ER-экземпляров и ER-типа.................................................. 56

8.4 Правила формирования отношений....................................................... 59

8.5 Методология IDEF1 (самостоятельное изучение).................................. 62

ЛЕКЦИЯ 9. Язык SQL................................................................................ 66

9.1 История создания и развития SQL.......................................................... 66

9.2 Основные понятия SQL............................................................................ 66

9.3 Запросы на чтение данных. Оператор SELECT..................................... 71

9.4 Многотабличные запросы на чтение (объединения).............................. 75

ЛЕКЦИЯ 10. Язык SQL (продолжение)....................................................... 77

10.1 Объединения и стандарт SQL2.............................................................. 77

10.2 Итоговые запросы на чтение. Агрегатные функции............................. 80

10.3 Запросы с группировкой (предложение GROUP BY).......................... 80

10.4 Вложенные запросы............................................................................... 82

ЛЕКЦИЯ 11. Язык SQL. (продолжение)...................................................... 86

11.1 Внесение изменений в базу данных....................................................... 86

11.2 Удаление существующих данных (Оператор DELETE)...................... 87

11.3 Обновление существующих данных (Оператор UPDATE)................. 87

11.4 Определение структуры данных в SQL................................................ 88

11.5 Понятие представления.......................................................................... 91

11.6 Представления в SQL............................................................................. 92

11.7 Системный каталог (самостоятельное изучение).................................. 93

ЛЕКЦИЯ 12. Обеспечение безопасности БД................................................ 99

12.1 Общие положения.................................................................................. 99

12.2 Методы обеспечения безопасности..................................................... 100

12.3 Избирательное управление доступом................................................. 101

12.4 Обязательное управление доступом................................................... 102

12.5 Шифрование данных............................................................................ 102

12.6 Контрольный след выполняемых операций....................................... 102

12.7 Поддержка мер обеспечения безопасности в языке SQL................... 103

12.8 Директивы GRANT и REVOKE.......................................................... 103

12.9 Представления и безопасность............................................................ 105

ЛЕКЦИЯ 13. Физическая организация БД: структуры хранения и методы доступа 106

13.1 Доступ к базе данных........................................................................... 106

13.2 Кластеризация...................................................................................... 108

13.3 Индексирование................................................................................... 108

13.4 Структуры типа Б-дерева.................................................................... 111

13.5 Хеширование........................................................................................ 114

ЛЕКЦИЯ 14. Оптимизация запросов......................................................... 116

14.1 Оптимизация в реляционных СУБД.................................................... 116

14.2 Пример оптимизации реляционного выражения............................... 116

14.3 Обзор процесса оптимизации.............................................................. 117

14.4 Преобразование выражений................................................................ 119

ЛЕКЦИЯ 15. Восстановление после сбоев................................................. 123

15.1 Понятие восстановления системы........................................................ 123

15.2 Транзакции........................................................................................... 123

15.3 Алгоритм восстановления после сбоя системы.................................. 125

15.4 Параллелизм. Проблемы параллелизма............................................. 127

15.5 Понятие блокировки............................................................................ 129

15.6 Решение проблем параллелизма......................................................... 130

15.7 Тупиковые ситуации............................................................................ 132

15.8 Способность к упорядочению............................................................. 133

15.9 Уровни изоляции транзакции.............................................................. 134

15.10 Поддержка в языке SQL.................................................................... 135

ЛЕКЦИЯ 16. Технологии СУБД................................................................. 136

16.1 Распределенные базы данных............................................................. 136

16.2 Принципы функционирования распределенной БД........................... 136

16.3 Системы типа клиент/сервер................................................................ 139

16.4 Серверы баз данных............................................................................ 139

ЛЕКЦИЯ 17. Современные постреляционные модели БД........................ 141

17.1 Системы управления базами данных следующего поколения........... 141

17.2 Ориентация на расширенную реляционную модель.......................... 141

17.3 Объектно-ориентированные СУБД..................................................... 143

ЛЕКЦИЯ 1.          Понятие СУБД. Функции СУБД

1.1 Введение

1.2 Понятие БД и СУБД

1.3 Уровни абстракции в СУБД. Функции абстрактных данных

1.4 Представления

1.5 Функции СУБД

1.6 Экспертные системы и базы знаний

1.1         Введение

Исторически сложившееся развитие вычислительных систем обусловило необходимость хранения в электронном (машиночитаемом) виде все большего количества информации. Одновременно с совершенствованием и дальнейшим развитием вычислительных систем росли объемы информации, подлежащей обработке и хранению. Сложности, возникшие при решении на практике задач структурированного хранения и эффективной обработки возрастающих объемов информации, стимулировали исследования в соответствующих областях. Задачи хранения и обработки данных были формализованы. Была создана теоретическая база для решения задач такого класса, результатом реализации на практике которой стали системы, предназначенные для организации обработки, хранения и предоставления доступа к информации. Позже такие системы стали называть системами баз данных.

Одновременно с развитием систем баз данных, происходило интенсивное развитие средств вычислительной техники, используемой для работы с большими объемами информации. Вычислительная мощность и, особенно, объемы запоминающих устройств первых вычислительных систем были недостаточны для хранения и обработки информации в объемах, необходимых на практике.

По мере развития систем баз данных, менялись принципы организации данных в них: первоначально данные представлялись на основе иерархической, а в последствии сетевой модели. В конце 1970-х – начале 1980-х годов начали появляться первые реляционные продукты. В настоящее время системы баз данных на основе реляционной модели занимают лидирующее положение, несмотря на заявления многих исследователей о скором переходе к объектно-ориентированным системам. В настоящее время объектно-ориентированные системы, тем не менее, развиваются, хотя темпы их развития и сдерживаются медленным принятием соответствующих стандартов. Кроме того, многие коммерческие реляционные системы приобретают объектно-ориентированные черты. На основании этого, можно предположить, что в будущем объектно-ориентированные системы будут постепенно вытеснять реляционные.

В настоящее время ведутся исследования в следующих направлениях:

1.         дедуктивные системы;

2.         экспертные системы;

3.         расширяемые системы;

4.         объектно-ориентированные системы.

1.2         Понятие БД и СУБД

Система баз данных – это компьютеризированная система основная задача которой – хранение информации и предоставление доступа к ней по требованию.

Система баз данных включает в себя (рис. 1.1):

1.         данные, непосредственно сохраняемые в базе данных;

2.         аппаратное обеспечение;

3.         программное обеспечение;

4.         пользователей:

4.1.     прикладные программисты;

4.2.     конечные пользователи;

4.3.     администраторы баз данных.

рис. 1.1 Система баз данных.

1.2.1       Данные.

Данные в базе данных являются интегрированными и, как правило, общими. Понятие интегрированных данных подразумевает возможность представления базы данных как объединение нескольких отдельных файлов данных, полностью или частично не перекрывающихся. Понятие общие подразумевает возможность использования отдельных областей данных, в базе данных несколькими различными пользователями.

1.2.2       Аппаратное обеспечение.

К аппаратному обеспечению системы относятся накопители для хранения информации, вместе с устройствами ввода-вывода, контролерами устройств и т.д.; вычислительная техника, используемая для поддержки работы ПО системы.

1.2.3       Программное обеспечение.

Программное обеспечение является промежуточным слоем между собственно физической базой данных и пользователями системы и называется диспетчером базы данных или системой управления базами данных, СУБД (DBMS). Все запросы пользователей обрабатываются СУБД.

Таким образом, СУБД – это специализированное программное обеспечение, предоставляющее пользователю базы данных возможность работать с ней, не вникая в детали хранения информации на уровне программного обеспечения.

1.2.4       Пользователи.

Прикладные программисты – отвечают за написание прикладных программ, использующих базу данных.

Конечные пользователи – работают с базой данных непосредственно, через рабочую станцию или терминал. Конечный пользователь может получить доступ к базе данных используя соответствующее прикладное ПО.

Администраторы базы данных – технические специалисты, осуществляющие создание БД, технический контроль работы СУБД и др. операции. Администраторы базы данных отвечают за реализацию решений администратора данных. Администратор данных решает, какие данные необходимо хранить в БД, обеспечивает поддержание порядка при обслуживании и использовании хранимых в БД данных.

Функции администратора базы данных:

1.         определение концептуальной схемы. Администратор БД определяет какие именно данные необходимо сохранять в БД. Этот процесс обычно называют логическим (или концептуальным) проектированием БД. После определения содержимого БД на абстрактном уровне, администратор БД создает соответствующую концептуальную схему, с помощью концептуального ЯОД.

2.         Определение внутренней схемы. Администратор БД решает, как данные должны быть представлены в хранимой БД. Этот процесс называют физическим проектированием. После завершения физического проектирования администратор БД с помощью внутреннего ЯОД должен создать соответствующую структуру хранения, а также определить отображение между внутренней и концептуальной схемой.

3.         Взаимодействие с пользователями. Администратор БД обеспечивает пользователей необходимыми им данными. Для этого администратор БД должен написать (или оказать пользователям помощь в написании) необходимых внешних схем. Кроме этого необходимо определить отображение между внешней и концептуальной схемами.

4.         Определение правил безопасности и целостности.

5.         Определение процедур резервного копирования и восстановления.

6.         Управление производительностью и реагирование на изменяющиеся требования.

База данных состоит из некоторого набора постоянных данных, которые используются прикладными системами какого-либо предприятия. Под словом "постоянные" подразумеваются данные, которые отличаются от других, более изменчивых данных, таких, как промежуточные данные и вообще все транзитные данные. "Постоянные" данные на самом деле могут недолго оставаться таковыми, поскольку данные в БД должны отражать об изменчивых объектах реального мира и отношениях между ними.

Использование баз данных для хранения информации позволяет организовать централизованное управление данными, что обеспечивает следующие преимущества:

1.         возможность сокращения избыточности;

2.         возможность устранения (до некоторой степени) противоречивости;

3.         возможность общего доступа к данным;

4.         возможность соблюдения стандартов;

5.         возможность введения ограничений для обеспечения безопасности

6.         возможность обеспечения целостности данных;

7.         возможность сбалансировать противоречивые требования;

8.         возможность обеспечения независимости данных. Поскольку программное обеспечение отделяется от данных, хранимых БД, изменения, вносимые в структуру БД, в большинстве случаев не приводят к необходимости внесения радикальных изменений в программное обеспечение.

1.3         Уровни абстракции в СУБД. Функции абстрактных данных

Существует 3 уровня архитектуры СУБД (рис. 1.2):

1.         Внутренний уровень - наиболее близкий к физическому хранению. Он связан со способами хранения информации на физических устройствах хранения;

2.         Внешний уровень - наиболее близкий к пользователям. Он связан со способами представления данных для отдельных пользователей;

3.         Концептуальный уровень - является промежуточным между двумя первыми. Этот уровень связан с обобщенными представлениями пользователей, в отличие от внешнего уровня, связанного с индивидуальными представлениями пользователей.

1.4         Представления

Соответственно трем уровням архитектуры выделяют три уровня абстракции данных в СУБД.

1.4.1       Внешний уровень – внешнее представление

Внешний уровень - индивидуальный уровень пользователя. Пользователь может быть как прикладным программистом, так и конечным пользователем с любым уровнем профессиональной подготовки. Каждый пользователь имеет свой язык общения с СУБД. Для программиста - это какой-либо язык программирования, для пользователя - язык запросов или язык, основанный на формах и меню. Любой из этих языков включает подъязык данных, т.е. множество операторов всего языка, связанное только с объектами и операциями баз данных. Т.о. подъязык данных встроен в базовый язык пользователя, который также обеспечивает на связанные с БД возможности.

Представление отдельного пользователя о БД на внешнем уровне архитектуры называют внешним представлением. Т.о. внешнее представление - это содержимое БД, каким его видит отдельный пользователь. Например, сотрудник отдела кадров видит БД как набор записей о сотрудниках плюс набор записей о подразделениях. В общем случае внешнее представление состоит из множества экземпляров каждого типа внешней записи, которые не обязательно совпадают с хранимыми записями. Подъязык данных пользователя определен в терминах внешних записей. Каждое внешнее представление определяется средствами внешней схемы, которая, в основном, состоит из определений каждого типа записей во внешнем представлении.

1.4.2       Концептуальный уровень – концептуальное представление

Концептуальное представление - это представление всей информации БД в несколько более абстрактной форме по сравнению с физическим способом хранения данных. Концептуальное представление представляет данные такими, какими они есть на самом деле, а не такими, какими их вынужден видеть пользователь в рамках определенного языка. Концептуальное представление состоит из множества экземпляров каждого типа концептуальной записи, хотя в некоторых системах в способы концептуального представления данных могут быть другими - например, в виде объектов и связей между ними. Концептуальное представление определяется средствами концептуальной схемы, которая состоит из определений каждого типа концептуальных записей. При определении концептуальной схемы используется концептуальный язык определения данных, определения которого относятся только к содержанию информации. Концептуальное представление, т.о. обеспечивает независимость данных от способа их хранения.

1.4.3       Внутренний уровень – внутреннее представление

Внутреннее представление - это представление нижнего уровня всей БД. Оно состоит из множества экземпляров каждого типа внутренней записи. Внутренняя запись соответствует хранимой записи. Внутреннее представление не связано с физическим уровнем и в нем не рассматриваются физические записи. Внутреннее представление предполагает существование бесконечного линейного адресного пространства. Подробности отображения этого пространства на физические устройства хранения не включены в общую архитектуру из-за сильной зависимости от системы.

Внутреннее представление описывается с помощью внутренней схемы, которая описывается с помощью внутреннего языка определения данных.

Между тремя уровнями представлений имеются два уровня отображений. Отображения концептуального уровня на внутренний и внешнего уровня на концептуальный. Отображения сохраняют независимость данных случае внесения в структуру БД изменений.

1.5         Функции СУБД

1.         Определение данных. СУБД должна допускать определения данных (внешние схемы, концептуальную и внутреннюю схемы, соответствующие отображения). Для этого СУБД включает в себя языковый процессор для различных языков определений данных.

2.         Обработка данных. СУБД должна обрабатывать запросы пользователя на выборку, а также модификацию данных. Для этого СУБД включает в себя компоненты процессора языка обработки данных.

3.         Безопасность и целостность данных. СУБД должна контролировать запросы и пресекать попытки нарушения правил безопасности и целостности.

4.         Восстановление данных и дублирование. СУБД должна обеспечить восстановление данных после сбоев.

5.         Словарь данных. СУБД должна обеспечить функцию словаря данных. Сам словарь можно считать системной базой данных, которая содержит данные о данных пользовательской БД, т.е. содержит определения других объектов системы. Словарь интегрирован в определяемую им БД и, поэтому, содержит описание самого себя.


Информация о работе «Организация баз данных»
Раздел: Информатика, программирование
Количество знаков с пробелами: 362757
Количество таблиц: 48
Количество изображений: 34

Похожие работы

Скачать
14783
0
2

... для предметной области «Спортивная программа» показана на рис.1 Рис.1 – КМД для предметной области «Спортивная программа» Двойная стрелка означает «многие», одинарная стрелка означает «один» во взаимосвязи между объектами. Ключевые атрибуты обозначены *.   Описание реляционной модели данных Реляционная модель данных (РМД) представляет БД в виде множества взаимосвязанных отношений, в том ...

Скачать
29774
0
3

... и прикладных программ (логическая независимость данных) и возможность изменения физического расположения и организации данных без изменения общей логической структуры данных и структур данных прикладных программистов (физическая независимость). Рис. 1 2. Системы управления базами данных Использование систем управления базами данных (СУБД) позволяет исключить из прикладных программ ...

Скачать
25778
1
2

... (в виде связей). В последнее время все большее значение приобретает объектно-ориентированный подход к представлению данных. Физическая организация баз данных Физическая организация данных определяет собой способ непосредственного размещения данных на машинном носителе. В современных прикладных программных средствах этот уровень организации обеспечивается автоматически без вмешательства ...

Скачать
9456
0
8

... отчет. Базовый отчет:   Отчет по организациям: Программа предназначена для учёта очереди по организациям, а также для предоставления оперативной информации о очереди. К входящей информации относятся: номер очереди, фамилия, организация, основание, номер приказа, дата, численность семьи, адрес , паспорт. Т. е файл: Также Справочник 1 и 2: К выходящей информации в отчёте ...

0 комментариев


Наверх