Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга по БД.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
882.18 Кб
Скачать

Ю.К. Иванов Банки, базы данных и информационное обеспечение АСУ. Курс лекций 2000-2001

стр. v

Банки, базы данных и информационное обеспечение АСУ (Часть 1)

Данный курс основан на курсах:

«Основы современных баз данных», автор – С.Д. Кузнецов, Центр Информационных Технологий,

«Основы проектирования реляционных баз данных», автор – В.В. Кириллов, Санкт-Петербургский Государственный институт точной механики и оптики (технический университет), Кафедра вычислительной техники.

доступных на сервере информационных технологий http://www.citforum.ru/, а также

«Введение в базы данных», автор – Ю.А. Зеленков, Центр Интернет ЯрГУ, http://alpha.netis.ru

Дополнительная литература:

  1. Дейт, К. Дж. Введение в системы баз данных, 6-е издание: Пер. с англ. – К.; М.; СПб.: Издательский дом «Вильямс», 2000. – 848 с.

  2. Мартин Дж. Организация баз данных в вычислительных системах, 2-е издание: Пер. с англ. – М.: Мир, 1980. – 664 с.

  3. Четвериков В.И., Ревунков Г.И., Самохвалов Э.Н. Базы и банки данных. – М.: Высшая школа, 1987. – 248 с.

Оглавление

Основные понятия 1

Лекция 1. Назначение и основные компоненты системы баз данных 1

1.1. Данные и ЭВМ 1

1.2. Концепция баз данных 2

1.3. Основные функции СУБД 2

1.3.1. Непосредственное управление данными во внешней памяти 2

1.3.2. Управление буферами оперативной памяти 2

1.3.3. Управление транзакциями 3

1.3.4. Журнализация 3

1.3.5. Поддержка языков БД 4

1.4. Типовая организация современной СУБД 4

1.5. Классификация пользователей СУБД 5

Лекция 2. Инфологическая модель данных «Сущность-связь» 8

2.1. Основные понятия 9

2.2. Характеристика связей и язык моделирования 9

2.3. Классификация сущностей* 12

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

2. Для каждого поставщика продуктов: наименование, адрес, название поставляемого продукта, дата поставки и цена на момент поставки. 14

3. Ежедневное потребление блюд (расход): блюдо, количество порций, дата. 14

2.4. О первичных и внешних ключах 15

2.5. Ограничения целостности 17

1. Целостность по сущностям. 17

2. Целостность по ссылкам. 17

3. Целостность, определяемая пользователем. 17

1. Не допускается, чтобы какой-либо атрибут, участвующий в первичном ключе, принимал неопределенное значение. 17

2. Значение внешнего ключа должно либо: 17

1. быть равным значению первичного ключа цели; 17

2. быть полностью неопределенным, т.е. каждое значение атрибута, участвующего во внешнем ключе должно быть неопределенным. 17

3. Для любой конкретной базы данных существует ряд дополнительных специфических правил, которые относятся к ней одной и определяются разработчиком. Чаще всего контролируется: 17

Лекция 3. Ранние подходы к организации БД. Иерархические и сетевые СУБД. 18

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

b. Все ранние системы не основывались на каких-либо абстрактных моделях. Как мы упоминали, понятие модели данных фактически вошло в обиход специалистов в области БД только вместе с реляционным подходом. Абстрактные представления ранних систем появились позже на основе анализа и выявления общих признаков у различных конкретных систем. 18

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

d. Можно считать, что уровень средств ранних СУБД соотносится с уровнем файловых систем примерно так же, как уровень языка Кобол соотносится с уровнем языка Ассемблера. Заметим, что при таком взгляде уровень реляционных систем соответствует уровню языков Ада или APL. 18

e. Навигационная природа ранних систем и доступ к данным на уровне записей заставляли пользователя самого производить всю оптимизацию доступа к БД, без какой-либо поддержки системы. 18

f. После появления реляционных систем большинство ранних систем было оснащено "реляционными" интерфейсами. Однако в большинстве случаев это не сделало их по-настоящему реляционными системами, поскольку оставалась возможность манипулировать данными в естественном для них режиме. 18

3.1. Иерархические системы 18

3.1.1. Иерархические структуры данных 18

3.1.2. Манипулирование данными 19

3.1.3. Ограничения целостности 19

3.2. Сетевые системы 20

3.2.1. Сетевые структуры данных 20

a. Тип записи потомка в одном типе связи L1 может быть типом записи предка в другом типе связи L2 (как в иерархии). 20

b. Данный тип записи P может быть типом записи предка в любом числе типов связи. 20

c. Данный тип записи P может быть типом записи потомка в любом числе типов связи. 20

d. Может существовать любое число типов связи с одним и тем же типом записи предка и одним и тем же типом записи потомка; и если L1 и L2 - два типа связи с одним и тем же типом записи предка P и одним и тем же типом записи потомка C, то правила, по которым образуется родство, в разных связях могут различаться. 20

e. Типы записи X и Y могут быть предком и потомком в одной связи и потомком и предком - в другой. 20

f. Предок и потомок могут быть одного типа записи. 20

3.2.2. Манипулирование данными 20

3.2.3. Ограничения целостности 21

3.3. Достоинства и недостатки 21

Реляционная модель 22

Лекция 4. Реляционная структура данных. Общие понятия реляционного подхода к организации БД. Основные концепции и термины 22

4.1. Базовые понятия реляционных баз данных 22

4.1.1. Тип данных 22

4.1.2. Домен 23

4.1.3. Схема отношения, схема базы данных 23

4.1.4. Кортеж, отношение 23

4.2. Фундаментальные свойства отношений 24

4.2.1. Отсутствие кортежей-дубликатов 25

1. Уникальность: в произвольный заданный момент времени никакие два различных кортежа R не имеют одного и того же значения для Ai, Aj, ..., Ak. 25

2. Минимальность: ни один из атрибутов Ai, Aj, ..., Ak не может быть исключен из K без нарушения уникальности. 25

4.2.2. Отсутствие упорядоченности кортежей 25

4.2.3. Отсутствие упорядоченности атрибутов 25

4.2.4. Атомарность значений атрибутов 25

4.3. Общая характеристика реляционной модели данных 26

Лекция 5. Базисные средства манипулирования реляционными данными 28

5.1. Реляционная алгебра 28

5.1.1. Общая интерпретация реляционных операций 29

5.1.2. Замкнутость реляционной алгебры и операция переименования 30

Лекция 6. Базисные средства манипулирования реляционными данными 31

6.1.1. Особенности теоретико-множественных операций реляционной алгебры 31

6.1.2. Специальные реляционные операции* 32

6.2. Реляционное исчисление. 33

Лекция 7. Нормализация данных. 1-я, 2-я, 3-я нормальные формы 35

7.1. Функциональная зависимость 35

7.2. Вторая нормальная форма 36

7.3. Третья нормальная форма 37

Лекция 8. Нормализация данных. Нормальные формы более высоких порядков 38

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

8.2. Многозначные зависимости. Четвертая нормальная форма 39

8.3. Зависимость соединения. Пятая нормальная форма 39

Язык реляционных баз данных SQL 41

Лекция 9. Манипулирование реляционными данными. 41

9.1. Навигационный подход к манипулированию данными и персональные СУБД 41

9.2. Язык SQL 42

9.2.1. Из истории SQL 42

9.2.2. Подмножества SQL 42

9.3. Типы данных SQL. 43

Лекция 10. Язык SQL. Средства описания данных 44

10.1. DDL: Операторы создания схемы базы данных. 44

10.1.1. Операторы базы данных 45

10.1.2. Создание и удаление таблиц 45

10.2. DDL: Операторы создания индексов 46

10.2.1. Создание индекса: 46

10.2.2. Создание индексов для первичных ключей: 46

10.2.3. Удаление индекса: 46

10.3. DDL: Операторы управления правами доступа 46

Лекция 11. Язык SQL. Средства манипулирования данными 48

11.1. DML: Команды модификации данных 48

11.1.1. Добавить новую запись в таблицу: 48

11.1.2. Модификация записей: 48

11.1.3. Удаление записей 48

11.2. DML: Выборка данных 49

11.3. DML: Выборка из нескольких таблиц 50

11.4. DML: Вычисления внутри SELECT 51

11.5. DML: Групировка данных 51

11.6. DML: Cортировка данных 52

11.7. DML: Операция объединения 52

Лекция 12. Другие возможности SQL 53

12.1. Использование представлений 53

12.2. Другие возможности SQL 54

12.2.1. Хранимые процедуры 54

12.2.2. Триггеры 54

12.2.3. Мониторы событий 55

12.3. Вопросы практического программирования* 55

Внутренняя организация реляционных СУБД 56

Лекция 13. Структуры внешней памяти 56

13.1. Хранение отношений 56

13.2. Индексы 58

13.3. Журнальная информация 58

13.4. Служебная информация 58

Лекция 14. Методы организации индексов 59

14.1. Методы поиска по дереву 59

14.1.1. Автоматическое поддержание свойства сбалансированности B-деревьев при выполнении операций занесения и удаления записей * 61

14.2. Хэширование 62

Лекция 15. Защита БД 64

15.1. Обеспечение защиты данных в базе 64

15.1.1. Идентификация пользователя 65

15.1.2. Управление доступом 65

15.1.3. Защита данных при статистической обработке 66

15.1.4. Физическая защита 67

Лекция 16. Целостность БД 67

16.1. Целостность сущности и ссылок 67

16.2. Обеспечение целостности данных 68

16.3. Транзакции и целостность баз данных 69

16.4. Изолированность пользователей 70

16.5. Сериализация транзакций 72

Лекция 17. Степень соответствия СУБД реляционной модели 72

17.1. Степень соответствия СУБД реляционной модели 72

Список литературы по теме курса 74

Основные понятия