
- •1. Определение информации. Основные проблемы, возникающие при хранении информации.
- •2. Отличительные особенности субд как программного продукта. Понятие экземпляра и базы данных.
- •3. Категории пользователей субд. Функциональные требования различных категорий пользователей к субд.
- •4. История развития субд. Особенности не реляционных моделей данных.
- •5. Общая характеристика моделей данных. Основные свойства. Понятие атрибутов, доменов.
- •6. Отношения модели данных. Понятия сущности и связи.
- •7. Ограничение целостности модели данных. Трехуровневая архитектура ansi/sparc.
- •8. Структурные компоненты модели данных в нотации idef1x. Понятия сущность, связь. Типы сущностей и связей.
- •9. Реляционная модель данных. Базовые структурные компоненты реляционной модели данных. Основные свойства.
- •10. Свойства реляционной модели данных. Представление сущности.
- •11. Свойства реляционной модели данных. Представление связи.
- •12. Требования целостности в реляционной модели данных.
- •13. Язык определения данных в реляционной модели данных. Основные возможности. Примеры.
- •14. Типы ограничений целостности, основные типы данных, основные операции реляционной модели данных.
- •15. Проектирование реляционных баз данных. Цели проектирования, основные этапы.
- •16. Проектирование реляционных баз данных. Проблемы обновления, удаления, добавления данных. Типы ограничений целостности.
- •17. Функциональная зависимость. Нормализация отношений. Концепция нормальных форм.
- •18. Первая и вторая нормальные форма. Определение. Аномалии, возникающие при нарушении. Примеры нарушения и нормализации.
- •19. Третья нормальная форма. Нормальная форма Бойса-Кодда. Определение. Аномалии, возникающие при нарушении. Примеры нарушения и нормализации.
- •20. Понятие многозначной зависимости. Примеры.
- •21. Четвертая и пятая нормальные формы. Определение. Аномалии, возникающие при нарушении. Примеры нарушения и нормализации.
- •22. Основные свойства sql, как языка программирования. Отличие от других языков программирования.
- •23. Основы построения sql- запросов. Источники данных запроса. Условия выборки кортежей. Примеры.
- •24. Левые, правые и полные соединения. Функции для работы с null значениями. Выборка уникальных записей. Примеры.
- •25. Использование подзапросов. Типы подзапросов. Примеры.
- •26. Коррелированные подзапросы. Особенности использования in, not in,exists, not exists.
- •27. Теоретико-множественные операции в sql-запросах. Примеры.
- •28. Агрегирующие функции. Группировка кортежей. Примеры.
- •29. Представления. Особенности использования. Примеры.
- •30. Триггеры в Transact sql. Пример реализации триггера.
- •31. Курсоры. Основные функции. Правила применения. Примеры.
- •32. Внутренние структуры данных. Двухуровневая система доступа к данным. Отношения каталогов.
- •33. Методы доступа к данным. Бинарные деревья.
- •34. Методы доступа к данным. Многоходовые деревья.
- •35. Методы доступа к данным. Сбалансированные деревья. Структура, правила следования. Основные свойства.
- •36. Операция вставки элемента в в-дерево. Проблема переполнения, методы решения. Пример.
- •37. Операция удаления элемента из в-дерева. Проблема антипереполнения. Методы решения. Пример
- •42. Индекс на основе битовых карт. Основные свойства.
- •43. Индекс на основе битовых карт. Структура листового блока. Операция добавления элемента.
- •44. Индекс на основе битовых карт. Операция обновления элемента. Блокировка записей.
- •45. Методы доступа к данным. Основные операции выполнения sql-выражения.
- •46. Методы доступа к данным. Типы соединений таблиц.
1. Определение информации. Основные проблемы, возникающие при хранении информации.
Значение (факты) – 7 февраля. Семантика (смысл, интерпретация) – лекции по БД. Информация – соединение фактов и их семантики. Информация – это сущность, обеспечивающая повышение знаний об окружающем мире её получателем.
Разделение данных и семантики в файловых системах: данные – в файлах, семантика – в приложении, доступ к данным – только через приложение. Файловые системы – набор программ, выполняющих операции, связанные с обработкой данных (например, создание отчётов).
Схема
обработки данных в файловой системе:
Файлы отдела реализации:
PropertyForRent(propertyNo, street, city, postcode, type, rooms, rent, ownerNo)
PrivateOwner(ownerNo, fName, lName, address, telNo)
Client(clientNo, fName, lName, address, telNo, prefType, maxRent)
Файлы отдела контрактов:
Lease(leaseNo, propertyNo, clientNo, rent, paymentMethod, deposit, paid, rentStart, rentFinish, duration)
PropertyForRent(propertyNo, street, city, postcode, rent)
Client(clientNo, fName, lName, address, telNo)
Недостатки файловых систем (проблемы при хранении):
Разделение и изоляция данных. Когда данные изолированы в отдельных файлах, доступ к ним затруднителен. Например, для создания списка всех домов, отвечающих требованиям потенциальных арендаторов, предварительно нужно создать временный файл со списком арендаторов, желающих арендовать недвижимость типа "дом". Затем в файле ProperсуForRent следует осуществить поиск объектов недвижимости типа "дом" с арендной платой ниже установленного арендатором максимума. Выполнять подобную обработку данных в файловых системах достаточно сложно. Для извлечения соответствующей поставленным условиям информации программист должен организовать синхронную обработку двух файлов. Трудности существенно возрастают, когда необходимо извлечь данные более чем из двух файлов.
Дублирование данных - на рисунке видно, что в отделе реализации и отделе контрактов дублируется информация об объектах недвижимости и арендаторах. Недостатки дублирования: неэкономное расходование ресурсов на дополнительный ввод данных; на хранение дублированных ресурсов требуется место во внешней памяти; нарушение целостности данных (информация в разных файлах может стать противоречивой, т.е. разной).
Зависимость от файлов. Изменить структуру данных достаточно сложно. К примеру, чтобы изменить длину какого-либо поля с 40 на 41 символ, придётся создавать программу спецназначения, которая преобразует существующий файл в новый формат: откроет исходный файл для чтения, откроет временный файл для записи, считает данные из исходного и запишет их во временный в новом формате (причём обрабатываются все записи), удалит исходный файл, переименует временный в исходный файл. Причём должны быть изменены все программы, которые обращаются к данному файлу, даже те, которые вообще не используют изменяемое поле. Это большая трата времени и огромная вероятность ошибки.
Несовместимость файлов. Т.к. структура файлов зависит от кода приложения, она также зависит от языка программирования этого приложения. Структура файла на языке COBOL отличается от структуры языка C. Это усложняет процесс их совместной обработки, т.к. требуется писать доп. ПО для преобразования этих полей в какой-то общий формат.
Фиксированные запросы. Файловые системы требуют больших затрат труда программиста, поскольку все необходимые запросы и отчеты должны быть созданы именно им. во многих организациях типы применяемых запросов и отчетов имели фиксированную форму, и не было никаких инструментов создания незапланированных или произвольных запросов как к самим данным, так и к сведениям о том, какие типы данных доступны.
Причины:
Определение данных содержится внутри приложений, а не хранится отдельно и независимо от них.
Помимо приложений, не предусмотрено никаких других инструментов доступа к данным и их обработки.
Глобальная причина кроется в разрыве между значениями данных и их семантикой.