- •1. Распределенные и централизованные базы данных. Архитектура файл-сервер. Архитектура клиент-сервер.
- •2. Иерархическая и сетевая модели данных.
- •3. Реляционная модель данных. История развития. Основные понятия (тип данных, домен, отношение, кортеж, атрибут, ключ).
- •4. Реляционная база данных.
- •5. Функции системы управления базами данных (субд): управления данными во внешней памяти, управление буферами оперативной памяти, управление транзакциями.
- •6. Функции системы управления базами данных: журнализация, поддержка языков баз данных.
- •7. Типовая организация современной субд.
- •8. Базовые средства манипулирования реляционными данными.
- •9. Реляционная алгебра. Общая интерпретация реляционных операций.
- •10. Особенности теоретико-множественных операций реляционной алгебры.
- •11. Реляционное исчисление.
- •12. Целостность сущностей и ссылок.
- •13. Субд в архитектуре клиент-сервер. Открытые системы.
- •14. Клиенты и серверы локальных сетей.
- •15. Системная архитектура клиент-сервер. Удаленный вызов процедур.
- •16. Сервера баз данных
- •17. Типичные распределения функций между клиентами и серверами
- •18. Разновидности распределенных систем
- •19. Распределенная компиляция запросов
- •20. Язык реляционных баз данных Transact-sql (t-sql). История развития. Идентификаторы в t-sql.
- •21. Язык t-sql. Выражения.
- •22. Язык t-sql. Числовые и денежные типы данных. Типы данных для хранения информации о времени.
- •1) Числовые целые типы данных
- •2)Нецелочисленные типы данных
- •3)Денежные типы данных.
- •4) Типы данных для хранения информации о времени.
- •23. Язык t-sql. Символьные и текстовые типы данных.
- •7)Текстовые типы данных
- •24. Язык t-sql. Специальные типы данных. Конвертирование типов данных.
- •25. Управляющие конструкции t-sql.
- •26. Процесс проектирования таблиц в реляционной базе данных. Определение идентификационной колонки.
- •27. Создание таблиц средствами t-sql.
- •28. Изменение структуры таблицы средствами t-sql. Удаление таблиц.
- •29. Добавление данных в таблицу средствами t-sql. Использование insert и select…into.
- •30. Извлечение данных средствами t-sql. Команда select. Разделы select и into.
- •Раздел into для сохранения результата, выполняет запрос в заданной таблице.
- •31. Извлечение данных средствами t-sql. Команда select. Раздел from (глава 25 – Управление данными; Раздел «Извлечение данных»; Подраздел «Раздел from» с.772-776).
- •32. Извлечение данных средствами t-sql. Команда select. Разделы where, group by, having, order by.
- •33. Изменение данных в таблице средствами t-sql. Команда update.
- •34. Удаление данных средствами t-sql. Команда delete. (глава 25 – Управление данными; Раздел «Удаление данных» с.800-801)
- •35. Хранимые процедуры. Этапы создания (Глава 26 – Хранимые процедуры; Раздел «Создание хранимых процедур» с. 803-804).
- •36. Создание, модификация и удаление хранимых процедур средствами t-sql.
- •37. Использование индексов. Планирование использования индексов. Типы индексов: кластерные, некластерные и уникальные индексы.
- •38. Создание и удаление индексов средствами t-sql.
- •39. Создание, изменение и удаление представлений средствами t-sql.
- •40. Типы и поведение курсоров. Управление курсорами.
- •41. Создание курсора. Открытие курсора. Считывание данных. Изменение и удаление данных с помощью курсора.
- •42. Предоставление, запрещение и неявное отклонение доступа пользователей к объектам базы данных.
18. Разновидности распределенных систем
Существуют однородные и неоднородные БД. В однородной БД каждая локальная БД управляется одной и той же СУБД. В неоднородной системе локальные БД могут относиться даже к разным моделям данных.
Наиболее успешно в настоящее время решается задача интеграции неоднородных SQL ориентированных систем. Этому способствует стандартизация языка SQL и общее следование.
Основная цель проекта создания распределенной системы управления базами данных может быть сформулирована следующим образом: необходимо обеспечить средства интеграции локальных баз данных, располагающихся в узлах вычислительной сети, с тем, чтобы пользователь, работающий в любом узле сети, имел доступ ко всем этим базам данных, так, как если бы они были централизованными, при этом должны обеспечиваться: 1) легкость использования системы; 2) возможность автономного функционирования при нарушении связности сети; 3) высокая степень эффективности.
Для решения этих проблем был принят ряд необходимых проектных решений, касающихся декомпозиции исходного запроса, оптимального выбора способа выполнения запроса, согласованного выполнения транзакций, обеспечение синхронизации, обнаружение и разрешение распределенных тупиков, восстановление состояния баз данных после разного рода сбоев в узлах сети. Легкость использования системы достигается за счет того, что пользователи остаются в среде языка SQL. Возможность использования SQL обеспечивает прозрачность местоположения данных. Система автоматически обнаруживает текущее местоположение упоминаемых в пользовательском запросе объектов данных. Одна и та же прикладная программа, включающая приложение SQL, может быть выполнена в разных узлах сети. При этом в каждом узле сети на этапе компиляции запроса выбирается наиболее оптимальный план выполнения запросов в соответствии с расположением данных в распределенной системе. Обеспечение автономности узлов сети может быть обеспечено следующим образом: каждая локальная БД администрируется независимо от других, возможно автономное подключение новых пользователей, смена версии автономной части системы и т.д. Система спроектирована таким образом, что в ней не требуются централизованных службы именования объектов или обнаружения тупиков.
В индивидуальных узлах не требуется наличия глобального знания об операциях, выполняющихся в других узлах сети. Работа с доступными базами данных может продолжаться при выходе из строя отдельных узлов сети и линий связи. Для достижения высокой степени эффективности системы используется два основных приема. Во-первых, выполнению запроса предшествует его компиляция. В ходе этого процесса производится поиск употребляемых в запросе имен объектов баз данных в распределенном каталоге и замена имен на внутренние идентификаторы; проверка прав доступа пользователя, от которого производится компиляция, на выполнение соответствующей операции над базами данных и выбор наиболее оптимального глобального плана выполнения запроса, который затем подвергается декомпозиции и про частям рассылается в соответствующие узлы сети, где производится выбор оптимальных локальных планов выполнения компонентов запроса и производится генерация модулей доступа в машинных кодах. В результате на стадии компиляции производится множество действий до реального выполнения запросов. Обработанная таким образом прикладная программа, включающая предложения SQL, может в дальнейшем выполняться много раз без дополнительных накладных расходов.
Во-вторых, средством повышения эффективности системы является возможность перемещения удаленных отношений в локальные базы данных.