Файл: Методичка-ЛАБЫ по Поектированию ИС.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 30.12.2025

Просмотров: 939

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Введение

Часть 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. Триггеры и процедуры

SQLExecDirect представляет собой самый быстрый способ запустить SQL-оператор при одноразовом выполнении.

RETCODE SQLExecDirect (hstmt, szSqlStr, cbSqlStr)

HSTMT hstmt- идентификатор оператора.

UCHAR szSqlStr- строка с SQL-оператором.

SDWORD cbSqlStr - длина строки szSqlStr.

Подготавливаемое выполнение предпочтительнее использовать, когда необходима информация о результирующем множестве до выполнения оператора или когда требуется выполнить SQL-оператор более одного раза. Для этого необходимы две функции SQLPrepare и SQLExecute.

SQLPrepare подготавливает SQL-строку для выполнения:

RETCODE SQLPrepare (hstmt, szSqlStr, cbSqlStr)

HSTMT hstmt - идентификатор оператора

UCHAR szSqlStr- строка с SQL-оператором

SDWORD cbSqlStr - длина строки szSqlStr

SQLExecute выполняет подготовленный оператор:

RETCODE SQLExecute(hstmt)

HSTMT hstmt - идентификатор оператора

SQLPrepare и SQLExecDirect отличаются тем, что при вызове SQLPrepare оператор SQL в действительности не выполняется, вместо этого определяется путь доступа к данным источника данных. Использование подготавливаемого выполнения удобно для операторов, которые будут выполняться более одного раза. Так как путь доступа к данным уже определен, то выполнение может осуществляться несколько быстрее, чем при использовании SQLExecDirect. Кроме того, каждый вызов SQLExecute передает базе данных только идентификатор для планирования обращения, а не весь SQL-оператор.


4. Использование параметров при выполнении

Параметры используются при непосредственном и подготавливаемом выполнении. Маркеры параметров определяются в SQL-операторах с помощью знаков "?". Например, SELECT n_post FROM s WHERE town=? или INSERT INTO p(name, town) VALUES (?,?). Для того, чтобы связать буфер с маркерами параметров, прикладная программа должна вызвать SQLBindParameter:

RETCODE SQLBindParameter (hsmt, ipar, fParamType, fCType, fSqlType, cbColDef, ibScale, rgbValue, cbValueMax, pcValue)

HSTMT hsmt - идентификатор оператора, он должен быть точно тем же идентификатором оператора, с которым этот оператор подготавливается и выполняется.

UWORD ipar - номер параметра для связи. В операторе SQL операторы нумеруются слева направо, начиная с 1. Например, для следующего SQL-оператора используется три параметрических маркера : INSERT INTO j (n_izd, name, town) VALUES (?,?,?). Чтобы связать эти параметры, SQLBindParameter вызывается три раза с ipar, установленным в 1, 2 и 3 соответственно.

SWORD fParamType - является типом параметра для связи и может принимать одно из трех значений: SQL_PARAM_INPUT, SQL_PARAM_INPUT_OUTPUT или SQL_PARAM_OUTPUT. SQL_PARAM_INPUT используется для процедур, использующих параметры ввода. SQL_PARAM_INPUT_OUTPUT маркирует параметр ввода/вывода в процедуре. SQL_PARAM_OUTPUT маркирует значение возврата или параметр вывода в процедуре.

SWORD fCType - является С-типом данных для параметра. Это тип данных из которого необходимо конвертировать данные.

SWORD fSqlType - является ODBC типом данных для параметра. Это тип данных в которых конвертируются данные и он должен совпадать с SQL-типом столбца, соответствующего этому параметрическому маркеру.

UDWORD сbColDef - точность столбца или выражения соответствующего маркера параметра.

SWORD ibScale - размер столбца или выражения соответствующего маркера параметра

PTR rgbValue - указатель буфера для данных параметра, который при вызове SQLExecute или SQLExecuteDirect содержит действительные значения параметра.

SDWORD сbValueMax - максимальная длина буфера rgbValue.

SDWORD pcbValue - указатель буфера для длины параметра.

Ниже приведены основные значения С- и SQL-типов параметров.

С-тип

SQL-тип

SQL_C_BINARY

SQL_C_FLOAT

SQL_BINARY

SQL_DOUBLE

SQL_C_BIT

SQL_C_TIME

SQL_BIT

SQL_FLOAT

SQL_C_CHAR

SQL_C_DEFAULT

SQL_CHAR

SQL_INTEGER

SQL_C_DATE

SQL_C_SLONG

SQL_DATE

SQL_REAL

SQL_C_DOUBLE

SQL_C_SSHORT

SQL_DECIMAL

SQL_SMALLINT

 

 

SQL_TIME

SQL_VARCHAR


5. Настройка доступа к источнику данных

Настройка доступа к источнику данных включает:

    • редактирование файла .odbc.ini.

;

    • определение переменной

ODBCINI;

    • установка переменных окружения СУБД

;

    • включение необходимых заголовочных файлов

.

Для настройки источника данных, необходимо проверить находится ли системный текстовый файл .odbc.ini в домашней директории пользователя и отредактировать его, настроив на требуемые источники данных.

В файле .odbc.ini должен быть под некоторым идентификатором описан требуемый источник данных, имя которого используется функцией SQLConnect(), и далее должен присутствовать раздел с данным именем, в котором содержатся атрибуты, описывающие источник данных. Файл .odbc.ini должен содержать имя источника данных, имя сервера баз данных, имя базы данных и другие атрибуты.

В переменной окружения ODBCINI необходимо указать полное имя системного файла .odbc.ini, если он расположен не в домашней директории. Сделать это можно, либо введя с консоли соответствующую команду, либо поместив эту команду в файл загрузки .login. Форма записи команды зависит от используемой программы Shell-интерпретатора.

Системные требования зависят от той СУБД, с которой работает пользователь. Например, при работе с СУБД Informix это обеспечивается переменными окружения, выставленными в файле .cshrc в домашней директории пользователя.

Для получения доступа до ODBC-функций, в программе должен быть описан заголовочный файл sqlext.h. В файле sqltypes.h находятся описание типов данных используемых в ODBC.

Как и любой исходный файл, написанный на языке Си, файл с программой, вызывающей ODBC-функции, должен иметь расширение .с. При компиляции необходимо подключить необходимые библиотеки, используемые в вызываемых функциях. Поскольку в этом случае командная строка принимает достаточно сложный вид, целесообразно на уровне системного администратора оформить командный файл, в котором подключаются необходимые библиотеки.


Последовательность выполнения лабораторной работы

  1. Убедиться в наличии и заполненности базы данных поставщиков

, деталей, изделий, поставок.

  1. Разработать

ODBC-программу для решения задачи 1 из соответствующего варианта с помощью функций непосредственного выполнения.

  1. Разработать

ODBC-программу для решения задачи 2 из соответствующего варианта с помощью функций подготавливаемого выполнения.

  1. После выполнения лабораторной работы привести базу данных в исходное состояние

.

Требования к разрабатываемой программе

Разрабатываемая программа должна удовлетворять следующим требованиям:

    • все используемые функции ODBC должны анализироваться на корректность кода возврата;

    • в программе должен быть предусмотрен вывод сообщений обо всех шагах ее выполнения

, в том числе и о возможных ошибках;

    • при выполнении запросов должно быть предусмотрено использование параметров

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

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

;

    • программа должна быть достаточно документирована

.

Варианты заданий

Вариант 1

  1. Из таблицы поставок удалить поставки при заданных параметрах номера поставщика (имени поставщика) и номера детали.

  2. Увеличить рейтинг поставщика

, выполнившего наибольшую поставку некоторой детали, на указанную величину.

Вариант 2

  1. Удалить всех поставщиков из указанного города.

  2. Изменить цвет самой тяжелой детали на указанный.

Вариант 3

  1. Вставить поставщика с заданными параметрами.

  2. Удалить самую легкую деталь.

Вариант 4

  1. Удалить поставщика

, выполнившего меньше всего поставок.

  1. Изменить название детали указанного цвета и веса.

Вариант 5

  1. Удалить изделие из заданного города.

  2. В таблице поставок изменить номер поставщика при заданном номере детали и изделия.

Вариант 6

  1. Увеличить рейтинг поставщика


, выполнившего больший суммарный объем поставок, на указанную величину.

  1. Вставить деталь с заданными параметрами.

Вариант 7

  1. Изменить название и город детали с максимальным весом на указанные значения.

  2. Удалить из таблицы поставок все поставки конкретного поставщика.

Вариант 8

  1. Увеличить рейтинг поставщика

, выполнившего большее число поставок, на указанную величину.

  1. Увеличить вес деталей из Лондона на некоторую величину.

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

  1. Какова структура

ODBC-программы? Перечислите ее основные компоненты.

  1. С помощью каких средств

ODBC можно отследить наличие ошибки?

  1. В каких случаях непосредственное выполнение операторов является наиболее эффективным?

  2. Когда используется подготавливаемое выполнение?

  3. Как описываются маркеры параметров, и какая для этого предусмотрена функция? Каким образом можно связать несколько параметров?

  4. С помощью какого параметра можно освободить буферы всех столбцов?

  5. Как описать доступ до необходимой базы данных?

  6. С помощью какой функции описывается соединение с необходимым источником данных? Каковы ее параметры?