- •Лекция 1. Данные.
- •Понятие Данных, Типы Данных.
- •Модели данных.
- •1.2. Модели данных. Понятие и классификация.
- •Лекция 2. Файлы.
- •2.3. Файлы.
- •Режим многопользовательского доступа
- •2.4. Файловые системы.
- •Лекция 3. Реляционная модель. Часть 1.
- •3.2. Типы данных.
- •3.3. Домены.
- •3.4. Отношения, атрибуты, кортежи отношения.
- •Лекция 4. Реляционная модель. Часть 2.
- •4.2. Свойства отношений.
- •4.3. Первая нормальная форма.
- •Лекция 5. Реляционная модель. Часть 3.
- •5.2. Манипуляционная часть реляционной модели.
- •5.3. Выводы.
- •Лекция 6. Реляционная алгебра. Часть 1.
- •Обзор реляционной алгебры.
- •Теоретико-множественные операторы.
- •6.1. Обзор реляционной алгебры
- •6.2. Теоретико-множественные операторы
- •6.2.1. Объединение
- •6.2.2. Пересечение
- •6.2.3. Вычитание
- •6.2.4. Декартово произведение
- •Лекция 7. Реляционная алгебра. Часть 2.
- •7.1.2. Проекция
- •7.1.3. Соединение
- •7.1.3.1.Общая операция соединения
- •7.1.3.2. Тэта-соединение
- •7.1.3.3. Экви-соединение
- •7.1.3.4. Естественное соединение
- •7.1.4. Деление
- •7.2. Реляционные операторы
- •7.2.1. Зависимые реляционные операторы
- •7.2.2. Примитивные реляционные операторы
- •7.3. Выводы
- •Лекция 8. Реляционное исчисление.
- •Лекция 9. Язык sql. Часть 1.
- •9.2. Стуктура sql
- •9.2.1. Язык определения данных (ddl)
- •9.2.2. Язык манипулирования данными (dml)
- •9.2.3. Язык запросов (dql)
- •9.2.4. Средства управления транзакциями
- •9.2.5. Средства администрирования данных
- •9.2.6. Программный sql
- •9.3. Типы данных в sql
- •9.4. Агрегатные функции
- •10.3. Вложенные запросы
- •Лекция 11. Модель бинарных ассоциаций.
- •11.2. Бинарная ассоциация
- •11.2.1. Ненаправленная бинарная ассоциация
- •11.2.2. Направленная бинарная ассоциация
- •11.3. Исключающая ассоциация
- •Лекция 12. Системы управления базами данных.
- •12.1.1. Непосредственное управление данными во внешней памяти
- •12.1.2. Управление буферами оперативной памяти
- •12.1.3. Управление транзакциями
- •12.1.4. Журнализация
- •12.1.5. Поддержка языков бд
- •12.2. Типовая организация современной субд
- •12.3. System r – пример субд
- •Лекция 13. Архитектура «Клиент-Сервер».
- •13.2. Клиенты и серверы локальных сетей
- •13.3. Системная архитектура "клиент-сервер"
- •13.4. Серверы баз данных
- •13.4.1. Принципы взаимодействия между клиентскими и серверными частями
- •13.4.2. Преимущества протоколов удаленного вызова процедур
- •13.4.3. Типичное разделение функций между клиентами и серверами
- •13.4.4. Требования к аппаратным возможностям и базовому программному обеспечению клиентов и серверов
- •Лекция 14. Некоторые другие бд.
- •14.1.2. Манипулирование данными
- •14.1.3. Ограничения целостности
- •14.2. Распределённые бд
- •14.2.1. Разновидности распределённых систем
- •14.2.3. Интегрированные или федеративные системы и мультибазы данных
- •14.3. Системы баз данных, основанные на правилах
- •14.3.1. Экстенсиональная и интенсиональная части базы данных
- •14.3.2. Активные базы данных
- •15.1. Связь объектно-ориентированных субд с общими понятиями объектно-ориентированного подхода
- •15.2. Объектно-ориентированные модели данных
- •15.3. Пример ообд - субд о2
- •Лекция 16. Объектно-ориентированные субд. Часть 2.
- •16.1.2. Языки программирования ообд как объектно-ориентированные языки с поддержкой стабильных (persistent) объектов
- •16.1.3. Примеры языков программирования ообд
- •16.2. Языки запросов объектно-ориентированных баз данных
- •16.2.1. Явная навигация как следствие преодоления потери соответствия
- •16.2.2. Ненавигационные языки запросов
- •Лекция 17. Транзакции и целостность бд.
- •17.1. Понятие транзакции.
- •17.2. Ограничения целостности.
- •17.3. Классификация ограничений целостности.
- •17.3.1. Классификация ограничений целостности по способам реализации
- •17.3.2. Классификация ограничений целостности по времени проверки.
- •17.3.3. Классификация ограничений целостности по области действия.
- •17.3.3.1. Ограничения домена.
- •17.3.3.2. Ограничения атрибута.
- •17.3.3.3. Ограничения кортежа.
- •17.3.3.4. Ограничения отношения.
- •17.3.3.5. Ограничения базы данных.
- •17.4. Реализация декларативных ограничений целостности средствами sql.
- •17.4.1. Общие принципы реализации ограничений средствами sql.
- •17.4.3. Примеры ограничений.
13.2. Клиенты и серверы локальных сетей
В основе широкого распространения локальных сетей компьютеров лежит известная идея разделения ресурсов. Высокая пропускная способность локальных сетей обеспечивает эффективный доступ из одного узла локальной сети к ресурсам, находящимся в других узлах.
Развитие этой идеи приводит к функциональному выделению компонентов сети: разумно иметь не только доступ к ресурсам удаленного компьютера, но также получать от этого компьютера некоторый сервис, который специфичен для ресурсов данного рода и программные средства для обеспечения которого (сервиса) нецелесообразно дублировать в нескольких узлах. Так мы приходим к различению рабочих станций и серверов локальной сети.
Рабочая станцияпредназначена для непосредственной работы пользователя или категории пользователей и обладает ресурсами, соответствующими локальным потребностям данного пользователя.
Серверлокальной сети должен обладать ресурсами, соответствующими его функциональному назначению и потребностям сети.
Примерами серверов могут служить:
сервер телекоммуникаций, обеспечивающий услуги по связи данной локальной сети с внешним миром;
вычислительный сервер, дающий возможность производить вычисления, которые невозможно выполнить на рабочих станциях;
дисковый сервер, обладающий расширенными ресурсами внешней памяти и предоставляющий их в использование рабочим станциями и, возможно, другим серверам;
файловый сервер, поддерживающий общее хранилище файлов для всех рабочих станций;
сервер баз данных – фактически обычная СУБД, принимающая запросы по локальной сети и возвращающая результаты.
Сервер локальной сети предоставляет ресурсы (услуги) рабочим станциям и/или другим серверам.
Принято называть клиентом локальной сети компонент, запрашивающий услуги у некоторого сервера, и сервером – компонент локальной сети, оказывающий услуги некоторым клиентам.
13.3. Системная архитектура "клиент-сервер"
Понятно, что в общем случае, чтобы прикладная программа, выполняющаяся на рабочей станции, могла запросить услугу у некоторого сервера, требуется как минимум некоторый интерфейсный программный слой, поддерживающий такого рода взаимодействие (было бы, по меньшей мере, неестественно требовать, чтобы прикладная программа напрямую пользовалась примитивами транспортного уровня локальной сети). Из этого, собственно, и вытекают основные принципы системной архитектуры "клиент-сервер".
Система разбивается на две части, которые могут выполняться в разных узлах сети, - клиентскую и серверную части. Прикладная программа или конечный пользователь взаимодействуют с клиентской частью системы, которая в простейшем случае обеспечивает просто надсетевой интерфейс. Клиентская часть системы при потребности обращается по сети к серверной части.
Интерфейс серверной части определён и фиксирован. Поэтому возможно создание новых клиентских частей существующей системы (пример интероперабельности на системном уровне).
Основной проблемой систем, основанных на архитектуре "клиент-сервер", является то, что в соответствии с концепцией открытых систем от них требуется мобильность в как можно более широком классе аппаратно-программных решений открытых систем. Даже если ограничиться UNIX-ориентированными локальными сетями, в разных сетях применяется разная аппаратура и протоколы связи. Попытки создания систем, поддерживающих все возможные протоколы, приводит к их перегрузке сетевыми деталями в ущерб функциональности.
Еще более сложный аспект этой проблемы связан с возможностью использования разных представлений данных в разных узлах неоднородной локальной сети. В разных компьютерах может существовать различная адресация, представление чисел, кодировка символов и т.д. Это особенно существенно для серверов высокого уровня: телекоммуникационных, вычислительных, баз данных.
Общим решением проблемы мобильности систем, основанных на архитектуре "клиент-сервер" является опора на программные пакеты, реализующие протоколы удаленного вызова процедур (RPC - Remote Procedure Call). При использовании таких средств обращение к сервису в удаленном узле выглядит как обычный вызов процедуры. Средства RPC, в которых, естественно, содержится вся информация о специфике аппаратуры локальной сети и сетевых протоколов, переводят вызов в последовательность сетевых взаимодействий. Тем самым, специфика сетевой среды и протоколов скрыта от прикладного программиста.
При вызове удаленной процедуры программы RPC производят преобразование форматов данных клиента в промежуточные машинно-независимые форматы и затем преобразование в форматы данных сервера. При передаче ответных параметров производятся аналогичные преобразования.
Если система реализована на основе стандартного пакета RPC, она может быть легко перенесена в любую открытую среду.