Модельный SQL-интерпретатор (1115016)
Текст из файла
Московский государственныйуниверситет им. М.В. ЛомоносоваФакультет вычислительной математики и кибернетикиВолкова И.А., Головин И.Г., Кузина Л.Н., Мальковский М.Г.Модельный SQL-интерпретатор(Издание третье, переработанное)2005УДК 519.6+681.3.06В данном методическом пособии описывается задание практикума на ЭВМ длястудентов 2 курса факультета вычислительной математики и кибернетики в поддержкуосновного курса «Системы программирования».
Приводятся подробные методическиепояснения и рекомендации.Третье издание переработано в связи с изменением языка реализации — переход наобъектно-ориентированный язык программирования Си++.Авторы пособия благодарят М.О.Проскурню за ценные советы и замечания.Рецензенты:проф. А.Н.Сосниковдоц. Л.С.КоруховаВолкова И.А., Головин И.Г., Кузина Л.Н., Мальковский М.Г.«Модельный SQL-интерпретатор (Методическое пособие)» —переработанное.изданиетретье,Издательский отдел факультета ВМиК МГУ(лицензия ЛР №040777 от 23.07.96), 2005 — 32 с.Печатается по решению Редакционно-Издательского Совета факультетаВычислительной Математики и Кибернетики МГУ им. М.В. Ломоносова.ISBN 5-89407-033-3© Издательский отдел факультетавычислительной математики икибернетики МГУим. М.В. Ломоносова, 2005Замечания по данной электронной версииприсылайте на сmсmsu.infо@gmail.cоmСодержание1.
ПОСТАНОВКА ЗАДАЧИ ................................................................... 11.1.1.2.1.3.ВАРИАНТЫ ЗАДАНИЯ.................................................................................1ТРЕБОВАНИЯ К РЕАЛИЗАЦИИ .................................................................2СОДЕРЖАНИЕ ОТЧЕТА...............................................................................22.
МЕТОДИЧЕСКИЕ УКАЗАНИЯ......................................................... 22.1.2.2.2.3.2.4.2.5.Моделирование архитектуры «Клиент — Сервер».....................................2Пример-оболочка программы «Клиент» .......................................................6Пример-оболочка программы «Сервер» .......................................................7Пример-оболочка программы «Клиент» в объектно-ориентированномстиле..................................................................................................................8Пример-оболочка программы «Сервер» в объектно-ориентированномстиле..................................................................................................................93.
Средства межпроцессного взаимодействия для сети ЭВМ ........... 103.1.3.2.3.3.3.4.3.5.3.6.Преобразование сетевого имени в сетевой адрес.......................................10Порядок байтов в сети...................................................................................12Функции работы с сетью ЭВМ ....................................................................12Пример-оболочка программы «Сервер» для сети ЭВМ ............................14Пример-оболочка программы «Клиент» для сети ЭВМ в объектноориентированном стиле ................................................................................16Пример-оболочка программы «Сервер» для сети ЭВМ в объектноориентированном стиле ................................................................................174. БД и СУБД ..........................................................................................
174.1.4.2.Описание модельного языка SQL ................................................................21Примеры предложений модельного SQL....................................................255. ПРИЛОЖЕНИЕ .................................................................................. 276. ЛИТЕРАТУРА .................................................................................... 31Модельный SQL-интерпретатор. Методическое пособие.1. ПОСТАНОВКА ЗАДАЧИЗадача реализации модельного SQL-интерпретатора разбивается на следующиеподзадачи:1.
Реализация архитектуры «Клиент — Сервер».2. Реализация SQL-интерпретатора.3. Реализация модельного SQL-сервера на базе разработанного интерпретатораи предоставленной библиотеки классов для работы с файлами данных.4. Реализация интерфейса пользователя с модельным SQL-сервером.5. Реализация модельной базы данных, демонстрирующей работоспособностьпрограмм.Язык реализации — Си++ [1].Архитектура «Клиент — Сервер» предполагает наличие одного или нескольких (взависимости от варианта задания) процессов-клиентов, принимающих запрос креляционной базе данных, записанный на языке SQL.
Клиентский процесс передаетзапрос процессу-серверу, который осуществляет поиск в базе данных в соответствии сзапросом и передает результат поиска клиенту.SQL-интерпретатор реализует некоторое подмножество предложений языка SQL,называемое далее модельным SQL. Описание модельного SQL приведено в разделе«Методические указания». Синтаксический анализ SQL-предложений рекомендуетсяпроводить методом рекурсивного спуска [2].
Интерпретацию SQL-предложений можнореализовать с помощью объектно-ориентированной библиотеки классов для работы сфайлами данных, описание которой приведено в разделе «БД и СУБД».Интерфейс пользователя должен давать возможность вводить и редактировать SQLзапросы и просматривать результаты поиска в табличном виде. Конкретные деталиинтерфейса определяются преподавателем.1.1. ВАРИАНТЫ ЗАДАНИЯI.II.Архитектура «Клиент — Сервер».1. Один клиент. Клиент и сервер на одной ЭВМ.2. Один клиент.
Клиент и сервер в сети ЭВМ.3. Несколько клиентов. Клиенты и сервер на одной ЭВМ.4. Несколько клиентов. Клиенты и сервер в сети ЭВМ.Функции и способ взаимодействия клиента и сервера.1. Клиент получает от пользователя запрос на модельном SQL и, не анализируяего, передает серверу. Сервер анализирует запрос и в случае егокорректности выполняет запрос и передает клиенту ответ. Если же запроснекорректен, сервер передает клиенту код ошибки. Клиент выдаетпользователю либо ответ на его запрос, либо сообщение об ошибке.2.
Клиент получает от пользователя запрос на SQL, анализирует его и в случаеошибки сообщает об этом пользователю, иначе передает серверу запрос внекотором внутреннем представлении. Сервер обращается к БД, определяетответ на запрос и передает его клиенту. Клиент выдает пользователю ответсервера.1Волкова И.А., Головин И.Г., Кузина Л.Н., Мальковский М.Г.1.2. ТРЕБОВАНИЯ К РЕАЛИЗАЦИИНеобходимо реализовать модельный SQL-интерпретатор в объектно-ориентированномстиле с использованием дополнительных возможностей языка реализации Си++ посравнению, например, с Си:— разработать архитектуру программы,— продумать и зафиксировать содержание и иерархию вводимых классов,— использовать встроенный в Си++ аппарат обработки исключительныхситуаций в программе,— при необходимости использовать стандартные библиотеки Си++.1.3.
СОДЕРЖАНИЕ ОТЧЕТА1.2.3.4.Постановка задачи (конкретный вариант).Описание способа взаимодействия процесса-клиента и процесса-сервера.Описание архитектуры программы и основных классов.Описание интерфейса пользователя с процессом-клиентом, перечень типовобнаруживаемых ошибок и выдаваемых диагностических сообщений.2.
МЕТОДИЧЕСКИЕ УКАЗАНИЯ2.1. Моделирование архитектуры«Клиент — Сервер»Межпроцессное взаимодействие можно организовать, используя модель «Клиент —Сервер». В этой модели один процесс, называемый сервером, отвечает за обработкузапросов, получаемых им от других процессов — клиентов. Таким образом, клиентсерверная архитектура тесно связана с механизмами межпроцессного взаимодействия.Традиционный механизм информационных каналов (pipe) не подходит для клиентсерверных приложений, так как каналы могут связывать только процессы, запущенныеодним пользователем.
Кроме того, клиентские и серверные процессы могутвыполняться на разных компьютерах (и даже в разных операционных системах), чтопредъявляет особые требования к механизму межпроцессной связи. Таким требованиямудовлетворяет механизм сокетов, кратко описываемый ниже.Обычно, когда вызывается программа сервер, она запрашивает у операционнойсистемы сокет (socket) (средство для соединения, связи процессов).
Когда серверполучает сокет, он связывает с ним некоторое стандартное имя, чтобы программыклиенты могли общаться с сервером через данный сокет по этому имени.После присваивания имени сокету, сервер «слушает» на этом сокете требования связи(запросы) от процессов-клиентов. Когда запрос появляется, сервер может допуститьили запретить связь клиента с сервером. Если связь допустима, ОС соединяет клиента ссервером, и сервер получает возможность получать сообщения от клиента и посылатьему ответы так же, как и при использовании механизма информационных каналов.2Модельный SQL-интерпретатор. Методическое пособие.Клиент также запрашивает у ОС свой сокет для взаимодействия с другим процессом(сервером), а затем сообщает имя сокета, с которым он хотел бы связаться. ОСпытается найти сокет c заданным именем и, если находит его, посылает серверу,слушающему этот сокет, запрос связи. Если сервер допускает связь, ОС создаетспециальный сокет, соединяющий два процесса, и клиент получает возможностьпосылать и получать данные от сервера так же, как и при использовании механизмаинформационных каналов.Далее описывается реализация механизма сокетов, используемая в ОС UNIX [3].Средства межпроцессного взаимодействия для одной ЭВМ2.1.1.Функция socketЭта функция используется для создания сокета.int socket (int domain, int type, int protocol);Первый параметр — домен — накладывает определенные ограничения на форматиспользуемых процессом адресов и их интерпретацию.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.