Все строки читаются в таблицу. Если строка имеет слишком мало полей, остальная часть полей в таблице устанавливается в значения по умолчанию.
По соображениям безопасности textfile должен находиться в каталоге баз данных или быть читаемым всеми.
Если “FIELDS ENCLOSED BY” не пустое, то NULL читается как значение NULL. Если “FIELDS ESCAPED” не пустое, то \N тоже читается как значение NULL. Note Обратите внимание, что это БОЛЬШАЯ N, верхний регистр!
Когда запрос LOAD DATA выполнен, Вы можете получить следующую строку информации, используя функцию C API mysql_info().
@result{Records: 1 Deleted: 0 Skiped: 0 Warnings: 0}
Переменная Warnings увеличивается с каждым столбцом, который не может быть сохранен без потери точности, для каждого столбца, который не получал значение из строки текста при чтении (это случается, если строка слишком короткая) и для каждой строки, которая имеет большее количество данных чем может вписываться в данные столбцы.
Вы должны иметь права доступа select и insert таблице user для использования этой команды.
2.9.6 Операция обновления данных (Update).
СИНТАКСИС:
UPDATE table SET column=expression,... WHERE where_definition
Здесь where_definition:
where_definition:
where_expr or where_expr [AND | OR] where_expr
Здесь where where_expr имеет формат:
where_expr:
column_name [> | >= | = | <> | <= | < ]
column_name_or_constant or
column_name LIKE column_name_or_constant or
column_name IS NULL or column_name IS NOT NULL or (where_definition)
ОПИСАНИЕ:
Обновляет одно или несколько полей в таблице MySQL.
· Все обновления выполняются слева направо.
· Внутри UPDATE на одной таблице все операции атомарные. Например, Вы можете увеличивать счетчик внутри таблицы, просто прибавляя 1 к соответствующей переменной.
2.9.7 Операция просмотра структур (Show).
СИНТАКСИС:
SHOW DATABASES [LIKE wild]
SHOW KEYS FROM table_name
SHOW TABLES [FROM database] [LIKE wild]
SHOW [COLUMNS|FIELDS] FROM table [FROM database] [LIKE wild]
ОПИСАНИЕ:
Отображает информацию о базе данных MySQL. “wild” эквивалент регулярному выражению для SQL LIKE.
2.10. Основные понятия PERL
Perl – “язык для извлечения и представления данных”. Сначала предполагалось использовать его для обработки документов, но очень скоро границы его применения значительно расширились - от решения вопросов администрирования систем до написания cgi скриптов и создания интерфейсов к базам данных. В нашем курсе предлагается использование этого языка для разработки оболочки
Этапы создания приложения (скрипта)
1. Создать форму для вызова скрипта.
2. Создать сам скрипт.
3. Отладить скрипт. Проверить отсутствие ошибок (если это возможно, лучше проверить все возможные пути выполнения программы).
4. Поместить скрипт на сервер и не забыть дать ему права на выполнение.
5. Связать скрипт с формой, вставив его имя в параметр action тэга form. Например:
<form method=post action="/cgi-bin/scriptname. pl">
6. Убедиться, что скрипт правильно работает вместе с формой.
Основные части Perl скрипта
В общем случае любой Perl скрипт состоит из четырех ключевых частей:
1. Настройка. Первая часть скрипта обязательно запускает интерпретатор и устанавливает переменный, используемые в теле скрипта. Для запуска интерпретатора необходимо знать правильный путь к программе.
2. Чтение входных данных. Эта часть “считывает” и сохраняет в переменных входные данные в удобной для обработки форме. Эта часть обычно неизменна во всех скриптах.
3. Обработка входных данных. Эта часть соответствующим образом обрабатывает введенные данные. Она может быть простой (около 5 строк) или очень сложной (более 1000 строк) в зависимости от выполняемой задачи.
4. Вывод результатов. Пользователь обычно ожидает какого-либо ответа на свои действия. Эта часть достаточно проста в реализации.
Для организации взаимодействия наших Perl-программ с СУБД MySQL необходимо, чтобы в поставку Perl входил модуль DBI. Поскольку модуль в основном ничего сам не делает, а перекладывает все операции по взаимодействию с базами данных на соответствующий им драйвер, то требуется установка библиотеки DBD-Mysql (драйвер к БД MySQL для модуля DBI). По мнению автора и разработчика модуля, “DBI — это API-интерфейс для организации доступа к базам данных из Perl-программ. Спецификация DBI API определяет набор функций, переменных и правил, используемых для прозрачного интерфейса с базами данных”.
Концепция драйверов баз данных весьма удобна, поскольку в своем Perl-приложении вы используете стандартные для DBI вызовы, которые затем переадресуют модули соответствующему драйверу, а тот, в свою очередь, уже напрямую будет взаимодействовать с БД, не требуя от вас изучения технических особенностей каждой конкретной СУБД. Таким образом, существуют драйверы DBD::Sybase, DBD::Oracle, DBD::Informix и т. д. (рис. 1, 2).
Для упрощения исходного кода во
второй части Perl программы (Чтение входных данных) для передачи большого количества информации из разных полей зачастую используются уже созданные библиотеки, существенно упрощающие написание исходного кода. Так в нашем случае это может выглядеть следующим образом:
#!/usr/local/perl/bin/perl
#Подключение необходимой библиотеки (Убедитесь, что она находится в директории с Perl)
require "cgi-lib. pl";
MAIN:
{
# Read in all the variables set by the form
&ReadParse(*input);
# Print the header
print &PrintHeader;
print &HtmlTop ("Интерфейс Perl MySQL");
#Следующая строка выводит все переменные переданные на скрипт
#print &PrintVariables(*input);
}
После выполнения этой подпрограммы можно обращаться к введенным данным используя обращение следующего вида $input{'name'}, где name – имя поля, в которой осуществлялся ввод данных.
Пример:
Использование в скрипте следующей конструкции выведет на экран введенное имя
print "<I><B>Имя</B></I>=$input{'name'}<BR>\n";
Основным назначением созданых HTML-форм и CGI-программ на Perl в целях обработки этой формы и последующего размещения документа в базе данных должен быть ввод, просмотр, изменение, добавление данных в БД. Напомним, что CGI (Common Gateway Interface) — протокол, механизм, или формальное соглашение между Web-сервером и отдельной программой. Сервер кодирует входные данные, например HTML-формы, а программа CGI декодирует их и генерирует поток выходных данных. В спецификации протокола ничего не сказано о каком-либо определенном языке программирования. Поэтому программы, соответствующие этому протоколу, могут быть написаны практически на любом языке — на C, C++, Visual Basic, Delphi, Tcl, Python или, как в нашем случае, на Perl. Взаимодействие приложений MySQL и Perl предлагается осуществлять с помощью вебсервера Apache.
Все программы написанные на Perl после отладки должны быть расположены в директории /cgi-bin из домашней директории вебсервера, а html документы в директории www. Это необходимо учитывать при указании пути для вызова приложения.
Пример. Подключение к БД MySQL из perl с использованием модуля DBI.
#!/usr/local/perl/bin/perl. exe
#
# Пример работы с модулем DBI
# Подключаем модуль DBI для работы с MySQL(далее БД)
# Модуль можно подключить командами use или require. В случае
# использования require подключение выполняется
# в момент выполнения сценария, однако с помощью use пакет
# загружается на этапе компиляции.
use DBI;
# Выносим данные, необходимые для подключения к MySQL, в отдельный файл(mysql. pl).
# Это можно сделать с использованием команд "do" или "require". Второй вариант
# лучше, поскольку выполняет неявную проверку ошибок.
require 'mysql. pl';
# Вывод http-заголовка
print "Content-type: text/html\n\n";
# Подключение к базе
$dbh = DBI->connect("DBI:mysql:database=$database",
$opt_user,$opt_password) ||
die "Can't connect: $DBI::errstr\n";
# Формируем запрос на просмотр имеющихся баз данных
$query = "SHOW TABLES";
# Подготовка запроса
$sth = $dbh->prepare($query);
# Выполнение запроса
$sth->execute;
while ($line = $sth->fetchrow_arrayref)
{
# Печатаем результат
print "$$line[0] <BR>\n"
}
$query = "select * from tab_name";
# Подготовка запроса
$sth = $dbh->prepare($query);
# Выполнение запроса
$sth->execute;
while ($line = $sth->fetchrow_arrayref)
{
# Печатаем результат
print "$$line[0] <BR>\n"
}
# Отключание от базы
$rc = $sth->finish;
$rc = $dbh->disconnect;
Mysql. pl
Файл mysql. pl.
В данном файле содержатся данные, необходимые для подключения к базе данных. Вынесение их в отдельный файл позволяет при смене каких-либо параметров подключения (например, смена пароля) сделать изменение только в одном файле.
#!/usr/local/perl/bin/perl
# Имя пользователя БД
$opt_user="root";
# Пароль доступа к БД
$opt_password="";
# Имя базы
$database="xxx";
В данном примере выполнено подключение к БД, а также осуществлен вывод результатов двух различных запросов. Запросы объявляются в скалярную переменную, все остальные действия аналогичные, что позволяет использовать данный макет для всех перечисленных манипуляций с БД, меняя лишь в зависимости от конечной задачи указанную переменную.
В случае использования переменных окружения. Заранее неизвестные данные помечаются знаком “?” и передаются в том же порядке командой execute как показано на примере:
$sth = $dbh->prepare( q{
insert into table1 (name, tel, adr) values (?,?,?)
}) || die "Can't prepare statement: $DBI::errstr";
$sth->execute("$name","$tel","$adr");
3. Содержание практического раздела дисциплины
3.1. Тематика практических занятий
№ п/п | Тема | Ауд. (час.) |
1. | Теоретико-множественных операции | 2 |
2. | Специальные реляционные операции | 2 |
3. | Реализация реляционной алгебры в языке SQL | 4 |
В рамках практических занятий предлагается рассмотреть расширенный набор операций реляционной алгебры. В этом варианте набор основных алгебраических операций состоит из восьми операций, которые делятся на два класса – теоретико-множественные операции и специальные реляционные операции.
В состав теоретико-множественных операций входят операции:
· объединения отношений;
· пересечения отношений;
· взятия разности отношений;
· прямого произведения отношений.
Специальные реляционные операции включают:
· ограничение отношения;
· проекцию отношения;
· соединение отношений;
· деление отношений.
3.2. Перечень лабораторных работ
№ п/п | Тема | Ауд. (час.) |
1. | Ознакомление с интерфейсом СУБД MySQL. Предоставление доступа и привилегий пользователям. Утилиты, входящие в состав СУБД. | 4 |
2. | Создание баз данных и таблиц в среде MySQL. Информационное наполнение. | 2 |
3. | Создание запросов и модификация таблиц базы данных. | 4 |
4. | Работа с удаленными базами данных. Ограничение доступа. | 1 |
5. | Создание структуры инд. БД (ERWIN) | 2 |
6. | Реализация разработанной базы данных средствами SQL | 2 |
7. | Формирование Perl скрипта и его вызов из Html формы. | 2 |
8. | Интерфейс с perl (MySQL perl API). Организация достпупа к БД посредством web интерфейса | 4 |
9 | Реализация задач ПО в рамках создаваемого интерфейса | 4 |
4. ТЕКУЩИЙ И ИТОГОВЫЙ КОНТРОЛЬ РЕЗУЛЬТАТОВ ИЗУЧЕНИЯ ДИСЦИПЛИНЫ
4.1. Способы и особенности организации контроля
При изучении учебного курса используется рейтинговая система оценка знаний студентов. Аудиторная и самостоятельная работа студента организована рейтинг листом, совмещенным с календарным планом изучения дисциплины. Рейтинг-лист содержит распределение времени на выполнение самостоятельной работы, которая состоит из самостоятельной проработки заданной предметной области информационной системы и выполнения индивидуальных заданий (предусмотрено по 25 вариантов каждого задания).
Максимальная рейтинговая оценка (общий рейтинг ОР) дисциплины в семестре составляет 1000 баллов. В нее входят:
1) рейтинг лабораторных работ (РЛР);
2) текущий рейтинг аудиторных занятий (РТЗ);
3) рейтинг рубежного контроля – контрольные работы (РРК);
4) рейтинг индивидуальных домашних заданий (РДЗ);
5) рейтинг экзамена (РЭ).
Рейтинг лабораторных работ (РЛР) - это оценки за выполнение лабораторной работы, оформление сдачу и отчета. Рейтинг индивидуального домашнего задания (РДЗ) - это оценки за решение домашнего задания. Если задача решена правильно и «сдана» в срок, то она оценивается в соответствии с рейтинг листом. Задачи, «сданные» с опозданием, оцениваются в меньшее количество баллов.
В конце каждого семестра подсчитывается рейтинг семестра (РС), максимальное значение которого 850 баллов:
РС = РЛР + РТЗ+ РДЗ + РРК = 850 б.
Студент допускается к сдаче экзамена (зачета), если он полностью выполнил учебный план (домашние задания сданы, выполнены лабораторные занятия) и если его рейтинг (РС) более 450 баллов.
Максимальный рейтинг экзамена (РЭ) 150 баллов. Форму проведения экзамена (устно, письменно, по билетам, без билетов и т. д.) устанавливает лектор. Экзамен считается сданным, если его оценка не менее 100 баллов. Эта оценка суммируется с рейтингом семестра и подсчитывается общий рейтинг: ОР = РС + РЭ.
Общий рейтинг переводится в оценку по соотношению:
от 850 до 1000 баллов ОТЛИЧНО
от 701 до 850 баллов ХОРОШО
от 551 до 700 баллов УДОВЛЕТВОРИТЕЛЬНО
Если оценка экзамена менее 100 баллов, то экзамен считается не сданным, и студент теряет рейтинг семестра.
Рейтинг-лист прилагается.
4.2. Контролирующие материалы
В соответствии с рейтинговой системой при изучении курса проводятся промежуточные рубежные контрольные работы. Рубежные контроли проводятся в часы лекционных занятий, в письменной форме и включают задания по предыдущей лекции. Вопросы, вынесенные на рубежные контрольные работы, составлены лектором.
По каждому рубежному контролю имеются 5-10 вопросов.
Итог изучения дисциплины – экзамен проводится в период экзаменационной сессии. Экзамен проводится в письменном виде. Экзаменационные билеты для итогового контроля составлены лектором, ассистентом кафедры АиКС .
5. Индивидуальная работа
5.1. Общие методические указания
Работа состоит из 3 заданий. Задачей выполнения первых двух является освоение базовых операций реляционной алгебры, а также их реализация средствами языка SQL. Выполнение третьей работы показывает освоение студентом средств разработки интерфейсов к созданным БД.
Вариант контрольной работы определяется последней цифрой номера зачетной книжки студента.
Задание 1
С помощью языка SQL создать запросы к СУБД для создания БД, предметной областью, которая определяется вариантом контрольного задания. Работа должна быть представлена на бумажном носителе и в виде текстового файла (созданного в текстовых редакторах, таких как Notepad (Блокнот), Bred2r, Decoder и других, которые не добавляют к набираемому тексту управляющих символов). Данный файл должен быть готовым для интерпретации в СУБД MySQL и в последующем он будет использоваться при выполнении лабораторных работ. Файл должен содержать набор операторов SQL для создания БД. Набор таблиц, ограничения атрибутов и их необходимость определяется студентом самостоятельно, исходя из задач, которые должна решать готовая БД. Также должна быть представлена концептуальная модель БД (пример см. Приложение рис.1 для БД табл. 1). На диаграмме в квадратных скобках должны быть указаны физические имена таблиц и столбцов, которые должны использоваться в операторах. Ограничения на атрибуты указанных сущностей должны быть выбраны самостоятельно исходя из семантики данных. Выбор всех сущностей и связей между ними должен быть обоснован. При определении связей необходимо обосновывать вид связи, ее мощность обязательность.
Задание 2
С помощью языка SQL создать запросы к созданной БД для ввода туда данных различными операторами (insert … values..; load data…from..). Используя введенные данные, подготовить и реализовать серию запросов, связанных с выборкой информации и модификацией данных таблиц. Запросы к БД должны реализовывать:
· ввод данных различными операторами (3 запроса);
· выборку данных из таблиц в указанном порядке (3 запроса);
· вывод результатов, исключая дубликаты (2 запроса);
· использование в запросах констант и выражений (4 запроса);
· использование группировки и упорядочивания (2 запроса);
· использование агрегатных функций, функций даты, строковых функций (5 запросов).
Запросы должны быть представлены помимо бумажного носителя в виде текстового файла, требования к которому перечислены в задании 1. Примеры перечисленных запросов приведены в приложении.
Задание 3
Используя в качестве web сервера – сервер Apache и язык программирования PERL, составить web-приложение обеспечивающее выполнение по одному запросу из каждой группы запросов, перечисленных в задании 2. При создании приложения следует учесть, что дерево директорий должно быть таким как показано в таблице 1.
Таблица 1
Дерево директорий
D:\usr\ | www | |||
cgi-bin | ||||
local | ||||
Apache | Apache. exe | |||
Perl | bin | Perl. exe | ||
MySQL | Mysql. exe |
Задание должно быть представлено в виде готовых к использованию файлов и их описанию на бумажном носителе. При этом исполняемые файлы на языке PERL располагаются в директории \cgi-bin\, а HTML файлы должны быть сконфигурированы для расположения в директории www. В случае, если при написании исходного кода приложения на языке PERL будут подключаться библиотеки, то они также должны быть представлены.
5.2. Варианты заданий
Вариант 1. Информационная система “Транспортная компания”
Вы проектируете информационную систему для транспортной компании, которая занимается перевозками грузов внутри страны и имеет контакты с зарубежными компаниями, осуществляющими перевозки за рубежом. Одной из основных задач, решаемых вашей системой является составление расписания движения автотранспорта.
Вариант 2. Информационная система “Поликлиника”
Вам необходимо построить информационно-справочную систему для поликлиники. В поликлинике работают участковые врачи и специалисты. Расписания врачей стабильны и заданы на неделю. В расписании указаны часы приема и кабинет. В одном кабинете могут работать разные врачи, но только в разное время. В поликлинике существуют специальные процедурные кабинеты, где заранее расписано допустимое расписание проведения процедур, в эти кабинеты пациенты должны направляться или записываться самостоятельно. В поликлинике ведется учет предоставленных услуг, каждый больно имеет право на некоторое число бесплатных услуг, если он имеет медицинскую страховку. При превышении лимита услуги могут предоставляться за плату.
Вариант 3. Информационная система “Компьютер”
Ваша организация занимается сборкой и продажей компьютеров. У Вас имеются несколько сборочных цехов и несколько филиалов по приему заказов и продаже готовых изделий. Вы продаете как готовые модели по образцам, так и компьютеры индивидуальной сборки. Изделия поставляются заказчику в основном прямо из сборочных цехов. Однако несколько типовых моделей имеются в каждом филиале по приему заказов. Между филиалами и цехами установлена телекоммуникационная связь. Ваша информационная система предназначена для оформления заказов на изготовление индивидуальных моделей и учет продажи готовых деталей, Вы не имеете права принимать заказ не обеспеченный имеющимися деталями на складе (в цеху). У Вас должен вестись учет произведенных работ, за конкретные компьютеры отвечают цеха, в которых была произведена сборка и настройка компьютера. Для постоянных клиентов в Вашей организации предусмотрены скидки.
Вариант 4. Информационная система “Международный автобус”
Ваша фирма занимается продажей билетов на междугородние автобусы, которые отходят с разных автовокзалов и имеют различные маршруты. Ваша фирма имеет несколько филиалов по продаже билетов, часть из них расположена прямо на автовокзалах, а часть - в других районах города. Вы продаете билеты не только на текущие рейсы, но и заранее. У вас существует возможность возврата билетов.
Вариант 5. Информационная система “Туристическая компания”
Ваша фирма занимается организацией туристского обслуживания. У Вас имеется несколько постоянных маршрутов, для которых комплектуются туристские группы. Заранее известны сроки каждого маршрута. Однако при наборе группы ниже некоторого количества человек Ваша деятельность становится нерентабельной. Ваши клиенты после заказа и оплаты маршрута имеют право от него отказаться, но при этом теряют некоторую страховую сумму.
Вариант 6. Информационная система “Промтоварный магазин”
Ваша фирма занимается торговлей промышленными товарами. В вашем распоряжении имеется один склад и 5 магазинов. Кроме того, организовано еще несколько выносных торговых мест на 1 человека в ряде чужих магазинов. Каждый магазин или торговая точка может заказывать товары на складе, однако он несет ответственность на неэффективность заказов - т. е. возврат непроданного товара или неэффективное использование торгового места наказывается. Вам необходимо решать задачи учета продаж по всем магазинам и торговым местам, осуществлять анализ эффективности продаж товаров и эффективности работы магазинов и отдельных сотрудников.
Вариант 7. Информационная система “Рекламная компания”
Ваша фирма занимается предоставлением рекламных услуг. Вы имеете несколько договоров с транспортными агентствами с метро и с муниципальными органами по установке рекламы на транспорте и на улицах города. У вашей фирмы заключены ряд договоров на эфирное время на радио и на телевидении. В фирме работают несколько агентств, расположенных в разных городах. В каждом городе кроме стационарного приемного пункта работают ряд рекламных агентов, которые имеют права от имени агентства заключать договоры на предоставление рекламных услуг. В фирме работают дизайнеры, которые непосредственно формируют внешний вид рекламы.
Вариант 8. Информационная система “Типография”
Ваша фирма занимается издательством. В ее владении имеется типография и ряд периодических изданий. В периодических изданиях имеются возможности размещения рекламы. В издательствах издаются кроме книг и журналов малотиражные издания типа буклетов.
Вариант 9. Информационная система “Провайдер интернет”
Ваша фирма занимается предоставлением провайдерских услуг в рамках сети Интернет. Она обслуживает клиентов с подключением через модем как на общий телефонный канал, так же и через выделенную линию. В рамках обслуживания возможно ведение рекламы в Интернет.
Вариант 10. Информационная система “Программные системы”
Ваша фирма занимается разработкой программных систем. Вы имеет один офис, но большинство Ваших разработчиков работают дома, сдавая в определенные сроки свою работу ответственному разработчику - сотруднику формы. Вам необходимо планировать как разработку, так внедрение и обслуживание разработанных ранее систем.
6. Учебно-методическое обеспечение дисциплины
6.1. Обязательная литература
1. Введение в системы баз данных. – Москва – Киев: Диалектика, 1998.
2. Хансен Дж. Базы данных. Разработка и управление. – М.: “Бином”, 1999.
3. Диго и использование баз данных. – М.: Финансы и статистика, 1995.
4. Ульман Дж. Основы систем баз данных. – М.: Финансы и статистика, 1983.
5. Проектирование реляционных баз данных для использования с микро-ЭВМ. – М.: Мир, 1991.
6. Введение в SQL. – М.: Лори, 1996.
7. Грофф Дж., SQL. Полное руководство. – Киев: BHV, 1999.
8. Поль Дюбуа. Применение MySQL и Perl в web-приложениях. –Москва, С-Петербуог, Киев: Вильямс. – 2002.
9. Поль Дюбуа. MySQL. –Москва, С-Петербуог, Киев: Вильямс. – 2002.
6.2. Дополнительная литература
10. Структурный подход к организации баз данных. – М.: Финансы и статистика, 1983.
11. Фрай Дж. Проектирование структур баз данных: В 2-х кн. – М.: Мир, 1985.
12. Стратегии клиент/сервер. – Киев: Диалектика, 1996.
13. Эффективная работа с СУБД. – СПб.: Питер, 1997.
14. Руководство по реляционной СУБД DB/2. – М.: Финансы и статистика, 1988.
Приложение 1
Таблица 1
Информационное наполнение таблиц учебной БД
Snum | Snam | St | Ci | Snum | Pnum | Jnum | Qt | |||||||||
S8 | Владимир | 30 | Томск | S1 | P1 | J3 | 100 | |||||||||
S2 | Николай | 50 | Асино | S8 | P3 | J6 | 100 | |||||||||
S5 | Константин | 100 | Яя | S4 | P4 | J1 | 130 | |||||||||
S4 | Петр | 20 | Рио-де-Жанейро | S8 | P9 | J2 | 150 | |||||||||
S3 | Григорий | 80 | Яя | S3 | P4 | J8 | 150 | |||||||||
S9 | Егор | 100 | Яя | S2 | P9 | J4 | 200 | |||||||||
S7 | Сергей | 90 | Асино | S1 | P2 | J5 | 200 | |||||||||
S1 | Иван | 100 | Томск | S8 | P7 | J6 | 200 | |||||||||
S6 | Иван | 100 | Лесото | S6 | P8 | J9 | 300 | |||||||||
S8 | P1 | J1 | 400 | |||||||||||||
Таблица P (Деталь) | S5 | P3 | J8 | 400 | ||||||||||||
S2 | P3 | J7 | 500 | |||||||||||||
Pnum | Pnam | We | Co | Ci | S3 | P9 | J9 | 600 | ||||||||
P1 | корпус | 300 | белый | Томск | S7 | P3 | J2 | 1000 | ||||||||
P2 | разъём | 3 | чёрный | Яя | S1 | P2 | J3 | 1000 | ||||||||
P3 | кнопка | 5 | красный | Томск | S7 | P6 | J1 | 2800 | ||||||||
P4 | корпус | 800 | синий | Лесото | S8 | P1 | J6 | 2200 | ||||||||
P5 | панель | 100 | серый | Асино | S7 | P8 | J2 | 2500 | ||||||||
P6 | кинескоп | 1200 | черный | Яя | S6 | P5 | J9 | 2800 | ||||||||
P7 | кнопка | 10 | оранжевый | Асино | ||||||||||||
P8 | панель | 450 | розовый | Асино | ||||||||||||
P9 | лампочка | 1 | красный | Томск | ||||||||||||
Таблица J (Изделие) | Имена | Смысл | ||||||||||||||
столбцов | имён | |||||||||||||||
Jnum | Jnam | Ci | Snum | Номер поставщика | ||||||||||||
J1 | процессор | Асино | Snam | Имя поставщика | ||||||||||||
J10 | дисплей | Яя | St | Статус поставщика | ||||||||||||
J2 | клавиатура | Яя | Pnum | Номер детали | ||||||||||||
J3 | дисплей | Томск | Pnam | Наименование детали | ||||||||||||
J4 | принтер | Саяногорск | We | Вес детали в граммах | ||||||||||||
J5 | процессор | Яя | Co | Цвет детали | ||||||||||||
J6 | клавиатура | Томск | Jnum | Номер изделия | ||||||||||||
J7 | мышь | Лесото | Jnam | Наименование изделия | ||||||||||||
J8 | джойстик | Лондон | Ci | Город размещения | ||||||||||||
J9 | винчестер | Рио-де-Жанейро | Qt | Объём поставки | ||||||||||||
Рис. 3. Концептуальная модель учебной базы данных
Приложение 2
Варианты экзаменационных билетов
Экзаменационный билет №1 |
1. Области применения БД. Суть концепции БД. Определение системы баз данных (СБД). 2. Понятие РМД. Структурная часть реляционной модели данных (РМД). 3. Запросы к БД «Поставщик–Деталь–Изделие» A)Получить значения номеров изделий, в которые не поставляется ни одной красной детали из Томска. Б)Получить значения номеров изделий, полностью снабжаемых поставщиком S1 |
Экзаменационный билет №2 |
1. Области применения БД. Суть концепции БД. Определение системы баз данных (СБД). 2. Понятие РМД. Структурная часть реляционной модели данных (РМД). 3. Запросы к БД «Поставщик–Деталь–Изделие» A)Получить значения номеров изделий, в которые не поставляется ни одной красной детали из Томска. Б)Получить значения номеров изделий, полностью снабжаемых поставщиком S1 |
Экзаменационный билет №3 |
1. Понятие информационной системы. Определение системы баз данных (СБД). Цель создания СБД. Понятие РМД. Структурная часть реляционной модели данных (РМД). 2. Соответствие реляционных и "табличных" терминов. Понятия ER– модели и объектов РМД Свойства отношений РМД. 3. Запросы к БД «Поставщик–Деталь–Изделие» A) Получить значения номеров изделий, которые используют только те детали, которые может поставлять поставщик S1. |
Экзаменационный билет №4 |
Приложение 3
Примеры запросов SQL
1. Для создания таблицы средствами языка SQL можно использовать команду:
Create table S
(
snum char(6) primary key,
snam varchar(20),
ci varchar(20),
st int(4));
2. Операцию вставки строк данных в таблицу средствами SQL можно выполнить тремя способами:
а) вручную, используя команду insert into;
insert into S (snum, snam, ci, st) values ('S1', 'Смит', 'Лондон', '20');
б) можно загрузить данные в таблицу из текстового файла,
load data local infile 'Tables. txt' into table s;
данные из файла были помещены в таблицу S.
в) использовать утилиту mysqlimport также для загрузки данных из текстового файла.
3. Изменение строк таблицы средствами SQL можно осуществить с помощью команды;
update s set s. snum='ss' where s. snum='S1';
в результате выполнения этой команды в таблице S в столбце Snum номер поставщика S1 измениться на SS.
4. Просмотр таблицы можно выполнить, написав в командной строке
Select * from S;
где S – название таблицы.
5. Получить полные сведения обо всех изделиях в Томске.
select * from j where ci='Томск';
6. Получить значения номеров поставщиков, выполняющих поставки для изделия J1.
select distinct snum from spj where jnum='j1';
7. Получить наименования изделий, для которых выполняет поставки поставщик S1.
select j. jnam from j, spj where spj. snum ='s1' and j. jnum=spj. jnum;
8. Получить значения номеров поставщиков, поставляющих детали для изделий J1 и J2.
select distinct snum from spj where jnum='j1' or 'j2';
9. Получить значения номеров деталей, поставляемых для какого-либо изделия, производимого в Лондоне.
select distinct j. jnum, spj. pnum from spj, j where j. ci='Лондон' and spj. jnum=j. jnum;
10.Получить значения номеров деталей, поставляемых для какого-либо изделия поставщиком, находящимся в том же городе.
select spj. pnum, s. Ci, j. Ci from spj, s,j where j. Ci=s. Ci and spj. jnum=j. jnum and spj. snum=s. Snum;
11. Получить значения номеров изделий, снабжаемых по крайней мере одним поставщиком, находящимся не в том же самом городе.
select distinct spj. Jnum, s. Ci, j. Ci from spj, s,j where j. Ci<>s. Ci and spj. Jnum=j. Jnum and spj. Snum=s. Snum;
12. Получить все пары значений названий городов такие, что поставщик в первом городе снабжает изделие во втором городе.
select s. Ci, j. Ci from spj, s,j where spj. Jnum=j. Jnum and spj. Snum=s. Snum;
13. Изменить цвет всех красных деталей на ОРАНЖЕВЫЙ.
update p set p. Co='оранжевый' where p. Co='красный';
14. Определение логина текущего пользователя
select user();
15. Определение текущего времени.
select now();
16. Определение сколько дней прошло с по настоящее время
select curdate(),(curdate()-'').
Запросы с использованием агрегатных функций:
17. Определить из какого количества деталей состоит изделие J4
select count(distinct pnum) from spj where jnum='j4';
18. Определить количество деталей, которые поставил поставщик S5
select sum(Qt) from spj where snum='S5';
19. Определить средний объем поставок деталей, которые поставил поставщик S5.
select avg(Qt) from spj where snum='S5';
20. Сколько деталей поставляет поставщик S5 для изделия J4.
select count(distinct pnum) from spj where jnum='j4'and snum='S5';
Базы, банки данных
Рабочая программа, методические указания и контрольные задания
Составитель: Алексей Анатольевич Пономарев
Рецензент: , к. т.н., доцент каф. АиКС АВТФ
Подписано к печати
Формат 60х 84/16. Бумага ксероксная.
Плоская печать. Усл. печ. л. 1,86. Усл. изд. л. 1,68.
Тираж экз. заказ № Цена свободная.
ИПФ ТПУ. Лицензия ЛТ №1 от г.
Типография ТПУ. Томск, Ленина 30.

|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 |



