Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные по ПРОЕКТИРОВАНИЮ ИС / Методичка-ЛАБЫ по Поектированию ИС.doc
Скачиваний:
45
Добавлен:
24.03.2015
Размер:
533.5 Кб
Скачать

Контрольные вопросы

  1. Кто является владельцем базы данных?

  2. Кто является владельцем схемы базы данных?

  3. Какими правами обладают другие пользователи по отношению к Вашей схеме базы данных?

  4. Какими правами обладает администратор базы данных по отношению к Вашей базе данных?

  5. Каким образом предоставляются права на пользование схемой базы данных и отдельными ее таблицами?

  6. Каким образом изымаются права на пользование схемой базы данных и отдельными ее таблицами?

  7. Что такое внешняя база данных?

  8. Что такое внешняя схема базы данных?

  9. Как идентифицируется таблица внешней схемы базы данных?

  10. Как идентифицируется таблица внешней распределенной базы данных?

Лабораторная работа 4 реализация простейших операций работы с базой данных средствами встроенного sql Цель работы

Приобретение начальных навыков работы со встроенным SQL средствами встроенного SQL/C.

Содержание работы и методические указания к ее выполнению

Встроенный SQL (ESQL)- инструмент разработки приложений для базы данных на языке Си с возможностью использования средств SQL. При создании ESQL/C-программы пользователь разрабатывает С-программу, включает в нее специальные заголовочные файлы и SQL-описания, реализующие работу с базой данных. Препроцессор ESQL/C преобразует SQL-описания в обращения к библиотечным функциям, которые взаимодействуют с сервером базы данных, и дает на выходе С-код. Далее полученный С-код компилируется и линкуется. Исходя из вышесказанного, пользователь, желающий разрабатывать ESQL/С-программы должен обладать навыками работы с языком Си и уметь пользоваться средствами SQL. При этом необходимо учитывать особенности той операционной системы, в рамках которой создается клиентское приложение. В данной и двух последующих лабораторных работах предполагается разработка несложных ESQL/С-программ. В лабораторных работах используется схема базы данных, созданная в 1 лабораторной работе, содержащая 4 таблицы:

  • таблица поставщиков (S);

  • таблица деталей (P);

  • таблица изделий (J);

  • таблица поставок (SPJ).

Если приведенная схема базы данных отсутствует (или любая таблица из нее), то необходимо восстановить базу данных, пользуясь интерактивными средствами программы phpPgAdmin, либо выполнив необходимый запрос на языке SQL в рамках данной программы:

create table S (n_post char(6) NOT NULL, family nchar(20),

rating smallint, town nchar(20));

create table P (n_det char(6), name nchar(20),

color nchar(20), weigh smallint,

town nchar(20));

create table J (n_izd char(6), name nchar(20),

town nchar(20));

create table SPJ (n_post char(6), n_det char(6),

n_izd char(6), kol smallint));

insert into S

values (...........................);

insert into P

values (...........................);

insert into J

values (...........................);

insert into SPJ

values (...........................)

Для разработки ESQL/С-программ необходимо изучить:

  • общие правила подготовки программ и использования программных средств встроенного SQL/C;

  • аппарат определения и использование главных переменных;

  • средства встраивания SQL-описаний в С-программы;

  • структуру области связи SQLCA и средства обработки ошибок SQL-запросов;

  • назначение и структуру заголовочных файлов.

Данная лабораторная работа связана с написанием таких программ на ESQL/C, которые после обработки SQL-запроса возвращают единственную строку, а также выполняют простейшие операции по модификации базы данных без использования аппарата курсора.

Исходный файл с программой на встроенном SQL/C должен иметь расширение .ec (например, source.ec).

Вызов транслятора со встроенного ESQL/C выполняется командой pgcci. Ниже приведен упрощенный вариант синтаксиса команды pgcci:

pgcci <имя файла без расширения>

Входные данных для SQL-описаний передаются через так называемые главные переменные, через них же возвращаются результаты запроса, которые отображаются на экране терминала для контроля выполнения. При объявлении главных переменных в языке встроенного SQL/C оператору описания переменных предшествует знак $, либо объявление производится внутри блока

exec SQL begin declare section

. . . .

exec SQL end declare section

При использовании главных переменных в программе ESQL/C внутри SQL-описаний им также предшествует знак $, вне SQL-описаний главные переменные используются обычным образом. SQL-описаниям (операторам языка SQL) в программе на встроенном SQL/C также предшествует знак $.

Сервер баз данных возвращает код результата и, возможно, другую информацию в структуру данных, называемую областью связи SQL (SQL Communication Area - SQLCA). Структура и назначение отдельных полей SQLCA приведены в Приложении 3. Структура SQLCA описана в заголовочном файле sqlca.h, который автоматически подключается к программе на встроенном SQL/C. Среди других заголовочных файлов отметим:

datatime.h - описывает структуру для типа данных datetime;

decimal.h - описывает структуру для типа данных decimal;

locator.h - описывает структуру для blobs-данных;

varchar.h - описывает структуру для типа данных varchar;

sqlhdr.h - описывает прототипы функций библиотеки SQL/C;

sqltype.h, sqltypes.h - структуры для работа с динамическими главными переменными.

Для работы с объектами схемы базы данных необходимо указать

- базу данных;

- схему базы данных.

База данных задается оператором в программе на языке ESQL/C

Connect to <имя базы данных>@<имя сервера> USER <логин> using <Пароль>

имя базы данных, используемое в лабораторных работах 1-10 - Students;

имя сервера - fpm2;

имя логина указывается в двойных кавычках;

пароль указывается в двойных кавычках или посредством главной переменной, подлежащей вводу на этапе выполнения программы.

Для указания схемы базы данных возмодны несколько вариантов. Один из них состоит в указании перед запуском загрузочного файла с программой на языке ESQL/C схемы базы данных командой из командной строки:

Set_search_path <имя-схемы> <имя-базы данных>

Соседние файлы в папке Лабораторные по ПРОЕКТИРОВАНИЮ ИС