- •Введение
- •Часть 1. Технологии работы с базами данных
- •Часть 2. Проектирование ис и разработка базы данных для некоторой предметной области и программного приложения для работы с ней
- •Лабораторная работа 1 создание и модификация таблиц базы данных Цель работы
- •Содержание работы и методические указания к ее выполнению
- •Insert into имя_таблицы [(поле [,поле]...)]
- •Values (константа [,константа]...)
- •Контрольные вопросы
- •Лабораторная работа 2 выбор и модификация данных таблиц Цель работы
- •Содержание работы и методические указания к ее выполнению
- •Варианты заданий на составление запросов по выборке информации из таблиц базы данных
- •Варианты заданий на составление запросов по модификации информации из таблиц базы данных
- •Контрольные вопросы
- •Лабораторная работа 3 полномочия на использование схемы бызы данных. Работа с внешними схемами базы данных Цель работы
- •Содержание работы и методические указания к ее выполнению
- •Последовательность выполнения лабораторной работы:
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 4 реализация простейших операций работы с базой данных средствами встроенного sql Цель работы
- •Содержание работы и методические указания к ее выполнению
- •Последовательность выполнения лабораторной работы
- •Требования к разрабатываемой программе
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 5
- •Последовательность выполнения лабораторной работы
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 6
- •Последовательность выполнения лабораторной работы:
- •Требования к разрабатываемой программе
- •Варианты заданий
- •Контрольные вопросы
- •2. Средства отслеживания ошибок
- •3. Непосредственное и подготавливаемое выполнение операторов sql
- •4. Использование параметров при выполнении
- •5. Настройка доступа к источнику данных
- •Последовательность выполнения лабораторной работы
- •Требования к разрабатываемой программе
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 8 выборка данных с использованием средств odbc Цель работы
- •Содержание работы и методические указания к ее выполнению
- •Последовательность выполнения лабораторной работы
- •Требования к разрабатываемой программе
- •Варианты заданий
- •Лабораторная работа 9 доступ к базам данных посредством cgi-скрипта, написанного на языке esql/c Цель работы
- •Содержание работы и методические указания к ее выполнению
- •Последовательность выполнения лабораторной работы
- •Требования к разрабатываемой программе
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 10 использование языка php для доступа к базам данных Цель работы
- •Содержание работы и методические указания к ее выполнению
- •Последовательность выполнения лабораторной работы
- •Требования к разрабатываемой программе
- •Варианты заданий
- •Контрольные вопросы
- •Последовательность выполнения лабораторной работы:
- •Контрольные вопросы
- •Последовательность выполнения лабораторной работы:
- •Контрольные вопросы
- •Лабораторная работа 13
- •Последовательность выполнения лабораторной работы:
- •Контрольные вопросы
- •Лабораторная работа 14
- •Последовательность выполнения лабораторной работы:
- •Контрольные вопросы
- •Лабораторная работа 15
- •Операторы языка sql
- •1. Операторы описания
- •2. Операторы манипуляции данными
- •3. Операторы определения транзакций
- •4. Операторы определения прав доступа
- •5. Встроенный sql
- •6. Триггеры и процедуры
Контрольные вопросы
Кто является владельцем базы данных?
Кто является владельцем схемы базы данных?
Какими правами обладают другие пользователи по отношению к Вашей схеме базы данных?
Какими правами обладает администратор базы данных по отношению к Вашей базе данных?
Каким образом предоставляются права на пользование схемой базы данных и отдельными ее таблицами?
Каким образом изымаются права на пользование схемой базы данных и отдельными ее таблицами?
Что такое внешняя база данных?
Что такое внешняя схема базы данных?
Как идентифицируется таблица внешней схемы базы данных?
Как идентифицируется таблица внешней распределенной базы данных?
Лабораторная работа 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 <имя-схемы> <имя-базы данных>