- •Шехтман в. Е.
- •1. Базы данных и модели данных
- •1.1. Введение.
- •1.2. Файлы операционной системы
- •1.3. Пример базы данных.
- •1.4. Иерархическая модель данных
- •1.5. Сетевая модель данных
- •1.6. Инвертированные списки.
- •2. Введение в реляционную модель данных.
- •1.7. Реляционная модель данных
- •3. Реляционная алгебра
- •3.1. Теоретико-множественные операции.
- •3.2. Специальные операции ra
- •4. Нормализация данных
- •4.1. Полная декомпозиция.
- •Магазин товар ндс
- •Товар ндс
- •Магазин ндс
- •Товар ндс
- •Магазин товар ндс
- •4.2. Проблема дублирования данных.
- •1 Глобус 33-33-33
- •2 Глобус 33-33-33
- •4 Океан 77-77-77
- •4.3. Висячие записи.
- •Поставщик Тел
- •4.4. Проблемы, возникающие из-за неудачной структуры данных.
- •4.5. Пятая нормальная форма (5нф).
- •4.6. Функциональная зависимость.
- •4.7. Связь между фз и полной декомпозицией отношения.
- •4.8. Первая нормальная форма (1нф).
- •4.9. Вторая нормальная форма (2нф).
- •4.10. Третья нормальная форма (3нф).
- •4.11. Нормальная форма Бойса-Кодда (нфбк).
- •4.12. Многозначная зависимость.
- •4.13. Четвертая нормальная форма (4нф).
- •4.14. Пример нормализации.
- •4.15. Резюме. Нормальные формы.
- •5. Инфологическое моделирование.
- •5.1. Сущность и набор сущностей
- •5.2. Связи между сущностями.
- •5.3. Рекурсивная связь. Роли.
- •5.4. Множественные связи.
- •5.5. Суперсущности и производные сущности
- •5.6. Слабые наборы сущностей
- •5.7. Борьба с избыточнотью
- •5.8. Преобразование инфологической модели в физическую модель.
- •5.9. Пример инфологического моделирования.
- •6. Язык sql
- •6.1. История sql.
- •6.2. Структура sql.
- •6.3. Язык запросов
- •6.4. Простые запросы на выборку данных.
- •6.5. Агрегатные (групповые) функции.
- •6.6. Вложенные запросы
- •6.7. Внешние объединения
- •6.8. Изменение данных
- •Insert into r1 (o, fio, d) values (5, ‘Иванов’, ’бд’)
- •7. Представления.
- •8. Определение схемы базы данных и ограничений целостности
- •9. Транзакции
- •9.1. Свойства транзакций
- •9.2. Надежное хранение данных
- •9.3. Параллельное выполнение транзакций
- •9.3.1. Коллизия “пропавшие изменения” - lost update problem
- •9.3.2. Коллизия “промежуточные данные” - dirty read
- •9.3.3. Коллизия “Несогласованные данные” - unrepeatable read, inconsistent analysis
- •9.3.4. Коллизия “фантом” - phantom
- •9.4. Уровни изолированности
- •9.5. Тупики
- •10. Ограничение прав доступа в целях обеспечения безопасности
- •11. Физическая организация баз данных
- •11.1. Организация размещения данных.
- •11.2. Организация индексов
- •11.2.1. Поиск в бд.
- •11.2.2. Плотный индекс (индексно-прямые файлы).
- •11.2.3. Неплотный индекс (индексно-последовательные файлы).
- •11.2.4. Сбалансированные деревья.
- •11.2.5. Инвертированные списки.
- •12. Архитектура субд. Методы оптимизации запросов.
- •Логические преобразования запросов.
- •Преобразования запросов с изменением порядка реляционных операций.
- •13. Аналитические системы.
- •Анализ данных.
- •Хранилища данных
- •Типы ошибок
- •Способы реализации olap.
- •Требования к средствам реализации систем оперативной и аналитической обработки данных
- •Многомерная модель данных.
- •Разработка данных
- •14. Загружаемые процедуры.
- •In pr double precision)
- •If eof then leave Cl end if;
- •Insert into providers(code, name)
- •Values (nr.Codec, ‘*** новый поставщик ***’);
- •15.4. Модель сервера приложений (трёхзвенная архитектура, “тонкий клиент”)
- •Список литературы
- •15. Модели совместного доступа к бд
- •15.1. Файл-серверная модель.
- •15.2. Модель клиент-сервер с бизнес-логикой на клиенте.
- •15.3. Модель клиент-сервер с бизнес-логикой на сервере субд (хранимые процедуры и триггеры) и частично на клиенте.
1. Базы данных и модели данных
1.1. Введение.
Существуют две основных сферы применения вычислительной техники. Первая – это выполнение численных расчетов, которые слишком долго или вообще невозможно выполнить вручную. Характерной особенностью данной области применения вычислительной техники является наличие сложных алгоритмов обработки, применяемых к сравнительно простым по структуре данным, объём которых невелик. Развитие этой сферы привело к прогрессу в решении сложных математических задач, появлению языков программирования для удобной записи алгоритмов.
Вторая сфера – это использование вычислительной техники в автоматических и автоматизированных информационных системах. Информационная система – это программно-аппаратный комплекс, обеспечивающий
надежное хранение информации в памяти компьютера
выполнение специфических для данного приложения преобразований информации и вычислений
предоставление пользователям удобного, легко осваиваемого интерфейса.
Такие системы обычно оперируют большими объёмами информации, имеющей сравнительно сложную структуру. В качестве примера таких систем можно привести автоматизированные банковские системы, системы учета хозяйственных операций на предприятиях, системы управления промышленными агрегатами и т. д.
В начальный период развития второй сферы применения вычислительной техники организацией данных занимались прикладные программисты. Каждая прикладная программа снабжалась своими собственными механизмами управления данными. Пока на ЭВМ решались отдельные, не связанные друг с другом задачи, такое положение было естественным. Кроме того, в качестве хранилища данных на первых порах достаточно было использовать файлы операционной системы.
Однако позднее применение вычислительной техники приобрело комплексный характер. Это означает, что задачи, решаемые на ЭВМ, оказались взаимосвязаны. Комплекс программ призван управлять тем или иным сложным объектом, обработкой регулярных потоков данных. В связи с этим, возникла потребность в разных задачах обращаться к одним и тем же данным, формировать единую информационную модель объекта. Например, в системе управления предприятием данные о персонале используются не только в системе кадрового учета, но и при решении задач планирования, начисления зарплаты и т. д. Поэтому естественно организовать хранение и управление данными отдельно от конкретных прикладных задач. Тогда любые прикладные программы получат возможность черпать нужные им данные из общего хранилища данных совершенно единообразным способом. Такая смена парадигм управления данными произошла. И необходимой дополнительной предпосылкой и стимулом для неё явилось возникновение внешнего запоминающего устройства большого объёма и высокой скорости доступа – жёсткого диска. Все существовавшие до того внешние запоминающие устройства накладывали слишком большие ограничения либо по скорости (магнитные ленты), либо по объёму информации (магнитные барабаны), либо по тому и другому (перфокарты, перфоленты).
К этому периоду и относится возникновение тематики баз данных и систем управления ими. Они были осознаны как специфические инструменты для решения специализированных задач по хранению, обработке, поддержанию целостности данных больших объёмов и сложной структуры. Тогда же зародилась и соответствующая терминология.
Примем в качестве рабочих следующие определения [9].
База данных (БД) – именованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области.
Банк данных – система специально организованных баз данных, программных, технических, организационно-методических средств для централизованного накопления и коллективного многоцелевого использования данных.
Система управления базами данных (СУБД) – языковые и программные средства для создания и использования БД пользователями.
Модель данных – система описания структур данных, операций по их обработки и ограничений целостности. С помощью модели данных можно легко изобразить структуру объектов и связи, установленные между ними.
Пользователь БД – программа или человек, обращающиеся к БД.
Запрос – процесс обращения пользователя к БД с целью ввода, чтения или изменения информации в БД.
Логическая структура БД – определение БД, не зависящее от физической организации.
С момента зарождения дисциплины баз данных было разработано несколько способов их организации. На раннем этапе наибольшее распространение получили системы, основанные на файлах.
