WWW.KNIGA.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА - Книги, пособия, учебники, издания, публикации

 


Pages:     | 1 | 2 ||

«Э.Г. Федоров Базы данных Курс лекций для студентов специальности 080801 Прикладная информатика (в экономике) всех форм обучения Волгоград 2010 Рецензент: Игнатьев А.В., ...»

-- [ Страница 3 ] --

В следующей команде условие WHERE никогда не выполнится и ни одна строка не будет возврашена:

SELECT * FROM ДИСЦИПЛИНЫ WHERE 3= Пример2.

В результате выполнения команды будет возвращен список всех студентов, поступивших на факультет ранее 2000 г.:

SELECT Фамилия, Имя, Отчество, Номер_Группы, Год_поступления FROM Студенты WHERE Год_поступления Помимо операций сравнения (=,,, =, =) и логических операторов OR, AND, NOT при формировании условия отбора могут быть использованы дополнительные логические операторы, расширяюшие возможности управления данными. Рассмотрим ниже некоторыe из этих операторов.

Оператор BEТWEEN С помощью оператора BEТWEEN можно определить, лежит ли значение указанной величины в заданном диапазоне. Синтаксис использования оператора следующий:

выражение [NOT] BETWEEN начало_диапазона AND конец_диапазона Выражение задает проверяемую величину, начало_диапазона и конец_диапазона определяют возможные границы ее изменения.

Использование оператора NOT совместно с оператором BETWEEN позволяет задать диапазон, вне которого может изменяться проверяемая величина.

При выполнении оператор BETWEEN преобразуется в конструкцию из двух операций сравнения:

(выражение = начало_диапазона) AND (выражение = конец_диапазона) Пример 3.

В результате выполнения следующей инструкции получим список дисциплин учебного плана с количеством часов от 50 до 100:

SELECT Наименование, Семестр, Количество_часов FROM Учебный_план INNER JOIN Дисциплины ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина WHERE Количество часов BETWEEN 50 AND Оператор IN Оператор IN позволяет задать в условии отбора множество возможныx значений для проверяемой величины. Синтаксис оператора следующий:

выражение [NOT] IN (выражение1,…, выражениеN) Выражение указывает проверяемую величину, аргументы выражениеl,…, выражениеN задают набор значений, которые может принимать проверяемая величина. Ключевое слово NOT выполняет логическое отрицание.

Пример 4.

В результате выполнения инструкции получим строки учебного плана для дисциплин «Английский язык» и «Физическая культура»:

SELECT Наименование, Семестр, Количество_часов FROM Учебный_план INNER JOIN Дисциплины ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина WHERE Наименование IN ('Английский язык', 'Физическая культура' ) Оператор LIKE С помощью оператора LIKE можно выполнять сравнение выражения символьного типа с заданным шаблоном. Синтаксис оператора следующий:



Символьное_выражение [NOT] LIKE образец Образец задает символьный шаблон для сравнения и заключается в кавычки. Шаблон может содержать символы-разделители. Допускается использование символов-разделителей. Например, символ-разделитель «%»

может быть заменен в смвольном выражении любым количеством произвольных символов.

Пример 5.

В результате выполнения инструкции будут отобраны строки, содержащие в названии должности сочетание букв «пр» (ст. преп., проф.):

SELECT Фамилия, Имя, Отчество, Должность FROM Кадровый_состав WHERE Должность LIKE '%пр%' Связывание таблиц Раздел WHERE может быть использован для связывания таблиц. В этом случае условие связывания должно присоединяться к логическому выражению с помощью логической операции AND.

Пример 6.

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

SELECT Наименование, Семестр, Количество_часов FROM Учебный-план INNER JOIN Дисциплины ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина WHERE (Количество_часов 60) AND (Семестр = 1) SELECT Наименование, Семестр, Количество_часов FROM Учебный-план, Дисциплины WHERE (Учебный_план.ID_Дисциплина=Дисциплины.ID_Дисциплина) AND (Количество-часов 60) AND (Семестр = 1) Использование только условия связывания в разделе WHERE аналогично связыванию ключевым словом INNER в разделе FROM.

Пример 7.

Результаты следующих запросов одинаковы:

SELECT TOP 10 Наименование, Семестр, Количество_часов FROM Учебный_план, Дисциплины WHERE (Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина) SELECT TOP 10 Наименование, Семестр, Количество_часов FROM Учебный_план INNER JOIN Дисциплины ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина Аналогом использования ключевых слов LEFT OUTER JOIN является указание в разделе WHERE условия с помощью символов *=.

Пример 8.

Приведенные запросы возвращают одинаковый набор данных:

SELECT Наименование, Семестр, Отчетность FROM Дисциплины LEFT OUTER JOIN Учебный_план ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина WHERE (Наименование LIKE '%информатик%') SELECT Наименование, Семестр, Отчетность FROM Дисциплины, Учебный_план WHERE (Учебный_план.ID_Дисциплина *= Дисциплины.ID_Дисциплина) AND (Наименование LIKE '%информатик%') Аналогом использования ключевых слов RIGHT OUTER JOIN является указание условия с помощью символов =*.

Пример 9.

Приведенные ниже запросы также равнозначны:

SELECT Отчетность, Семестр, Наименование FROM Учебный_план RIGHT OUTER JOIN Дисциплины ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина WHERE (Наименование LIKE '%информатик%') SELECT Отчетность, Семестр, Наименование FROM Учебный_план, Дисциплины WHERE (Учебный_план.ID_Дисциплина =* Дисциплины.ID_Дисциплина) AND (Наименование LIKE '%информатик%') 2. Раздел ORDER BY Раздел ORDER ВY предназначен для упорядочения набора данных, возвращаемого после выполнения запроса. Синтаксис раздела ORDER ВY следующий:





ORDER ВY {условие_сортировки [ASC | DESC]} [,…, n] Параметр условие_сортировки требует задания выражения, в соответствии с которым будет осуществляться сортировка строк. В простейшем случае это выражение представляет собой имя столбца одного из источников данных запроса.

Раздел ORDER ВY разрешает использование ключевых слов ASC и DESC, с помощью которых можно явно указать, каким образом следует упорядочить строки. При указании ключевого слова ASC данные будут отсортированы по возрастанию. Если необходимо отсортировать данные по убыванию, указывается ключевое слово DESC. По умолчанию используется сортировка по возрастанию.

Пример 10.

Упорядочение данных таблицы «Дисциплины» по столбцу Наименование в алфавитном порядке:

SELECT * FROM Дисциплины ORDER BY Наименование Данные можно отсортировать по нескольким столбцам. Для этого необходимо ввести имена столбцов через запятую по порядку сортировки.

Сначала данные сортируются по столбцу, имя которого было указано в разделе ORDER ВY первым. Затем, если имеется множество строк с одинаковыми значениями в первом столбце, выполняется дополнительная сортировка этих строк по второму столбцу (внутри группы строк с одинаковым значением в первом столбце) и т.д.

Пример 11.

Сортировка по двум столбцам Семестр и Количество_часов в порядке убывания:

SELECT TOP 20 Наименование, Семестр, Количество часов FROM Учебный_план, Дисциплины WHERE (Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина) ORDER ВY Семестр, Количество_часов DESC 3. Раздел GROUP BY и некоторые функции агрегирования Раздел GROUP ВY позволяет выполнять группировку строк таблиц по определенным критериям. Для каждой группы можно выполнить специальные функции агрегирования, которые при меняются ко всем строкам в группе. Одним из примеров использования раздела GROUP ВY является суммирование однотипных значений Синтаксис раздела GROUP ВY следующий:

GROUP ВY [ALL] условие_группировки [,…, n] Аргумент условие_группировки определяет условие группировки в качестве которого обычно указывается имя столбца, однако в общем случае разрешается использование и выражений, включающих ссылки на столбцы.

Ключевое слово ALL выполняет агрегирование всех строк исходного набора данных. При указании ключевого слова DISТINCT будет выполняться агрегирование только уникальных строк. Все повторяющиеся строки будут проигнорированы. По умолчанию выполняется агрегирование всех строк, то есть используется ключевое слово ALL.

Функция агрегирования AVG Функция AVG вычисляет среднее значение для указанного столбца и имеет следующий синтаксис:

AVG([ALL | DISТINCT] выражение) При выполнении группировки (GROUP ВY) вычисляет среднее значение для каждой группы. Если группировка не используется, то вычисляет среднее по всему столбцу.

Пример 12.

Количество_часов:

SELECT АVG(Количество_часов) FROM Учебный_план Пример 13.

Использование функции АVG совместно с разделом GROUP ВY при выполнении группировки по столбцу Семестр (вычисляется среднее количество часов по каждой групе значений в столбце Семестр):

SELECT Семестр, АVG(Количество_часов) FROM Учебный план GROUP ВY Семестр Функция агрегирования COUNT Функция подсчитывает количество строк в группе (при выполнении группировки) или количество строк результата запроса. Синтаксис функции COUNT следующий:

COUNT({[ALL | DISТINCT] выражение] | *}) Параметр выражение в простейшем случае представляет собой имя столбца. Если обрабатываемая строка в соответствующем столбце содержит значение не NULL, то счетчик будет увеличен на единицу.

Указание символа «*» предписывает считать общее количество строк независимо от того, содержат они значения NULL или нет.

Пример 14.

Этот запрос подсчитывает общее количество строк в таблице, а также количество ненулевых значений в столбце Телефон.

SELECT COUNT(*) AS 'Всего сотрудников' СОUNТ(Телефон) AS 'С домашним телефоном' FROM Кадровый_состав Функция агрегирования МАХ Функция MAX возвращает максимальное значение в указанном диапазоне.

Синтаксис функции следующий:

MAX([ALL | DISТINCT] выражение) Пример 15.

Нахождение максимального значения в столбце Количество_часов таблицы «Учебный_план»:

SELECT МАХ (Количество_часов) FROM Учебный_план Функция агрегирования МIN Функция MIN возвращает минимальное значение в указанном диапазоне.

Синтаксис функции следующий:

MIN([ALL | DISТINCT] выражение) Пример 16.

Нахождение минимального значения в столбце Количество_часов таблицы «Учебный_план»:

SELECT МIN(Количество_часов) FROM Учебный_план Функция агрегирования SUM Функция SUM выполняет суммирование значений в указанном диапазоне.

В качестве диапазона может рассматриваться группа или весь набор строк (без использования раздела GROUP ВY).

Синтаксис функции следующий:

SUM([ALL | DISТINCT] выражение) Пример 17.

Суммирование значений в столбце Количество_часов:

SELECT SUМ(Количество_часов) FROM Учебный_план Теперь вновь обратимся к разделу SELECT и приведем примеры группировки значений таблицы «Учебный_план».

Пример 18.

Произведем группировку строк по семестрам (столбец Семестр) и подсчитаем общую нагрузку в часах за каждый семестр. В первом столбце будет выведен номер семестра. Это единственный столбец исходной таблицы, который можно включать в запрос непосредственно, так как по нему осуществляется группировка. Во втором столбце с помощью функции агрегирования SUM будет получена сумма значений столбца Количество_часов. Функции агрегирования работают со всеми строками группы, возвращая единственное значение для всех этих строк.

SELECT Семестр, SUМ(Количество_часов) AS 'Нагрузка' FROM [Учебный_план] GROUP ВY Семестр Пример 19.

Вычисление количества экзаменов в каждом семестре:

SELECT Семестр, COUNT(*) AS 'Экзамены' FROM [Учебный_план] WHERE Отчетность = 'э' GROUP ВY Семестр 4. Раздел COMPUTE Этот раздел предназначен для выполнения групповых операций над содержимым столбцов выборки. Групповые операции задаются с помошью функций агрегирования. Результат агрегирования выводится в отдельной строке после всех данных столбца.

Синтаксис раздела СОМPUTE следующий:

СОМPUTE Функция_агрегирования(столбец_агрегирования)}[,…, n] [ВY столбeц_группировки [,…, n]] Аргумент столбец_агрегирования должен содержать имя агрегируемого столбца. Этот столбец должен быть включен в результат выборки.

Ключевое слово ВY указывает, что результат вычисления следует сгруппировать.

Аргумент столбец_группировки содержит имя столбца, по которому будет про изводиться группировка. Результат необходимо предварительно отсортировать по этому столбцу, то есть столбец должен быть указан в разделе ORDER ВY.

Пример 20.

Применение раздела COMPUTE для вычисления количества дисциплин, читаемых в семестре, и общей суммы часов:

SELECT Наименование, Семестр, Количество_часов FROM Учебный_план, Дисциплины WHERE (Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина) СОМРUТЕ SUМ(Количество_часов), COUNT(Ceмеcтp) Пример 21.

Группировка при использовании раздела COMPUTE (составление списков групп и вычисление количества студентов в группе):

SELECT Фамилия, Имя, Отчество, Номер_Группы FROM Студенты ORDER ВY Номер Группы СОМРUТЕ СОUNТ(Номер_Группы) ВY Номер_Группы Лекция 13.

Язык SQL: Объединение, добавление, обновление и удаление данных 1. Раздел UNION.

2. Раздел INTO.

3. Добавление данных – команда INSERT.

4. Изменение данных – команда UPDATE.

5. Удаление данных – команда DELETE.

6. Язык SQL и операции реляционной алгебры.

1. Раздел UNION Раздел UNION служит для объединения результатов выборки, возвращаемых двумя и более запросами.

Cинтаксис раздела UNION имеет вид:

Спецификация_Запроса_1»

UNION [ALL] Спецификация_Запроса_ [UNION [ALL]] Спецификация_Запроса_n Чтобы к результатам запросов можно было применить операцию объединения, они должны соответствовать следующим требованиям:

запросы должны возвращать одинаковый набор столбцов (причем необходимо гарантировать одинаковый порядок следования столбцов в каждом из запросов);

типы данных соответствующих столбцов второго и последующих запросов должны поддерживать преобразование или совпадать с типом данных столбцов первого запроса;

Указание ключевого слова ALL предписывает включать в результат повторяющиеся строки. По умолчанию повторяющиеся строки в результат не включаются.

Продемонстрируем применение раздела UNION.

Пример 1.

Рассмотрим таблицы «Кадровый_состав» и «Студенты» и построим общий список учащихся и преподавателей, номер телефона которых начинается на 120.

Сначала построим запрос для таблицы «Кадровый_состав»:

SELECT Фамилия, Имя, Отчество, Должность, Телефон FROM Кадровый_состав WHERE Телефон LIKE '120%' Затем построим запрос для таблицы «Студенты»:

SELECT Фамилия, Имя, Отчество, Телефон FROM Студенты WHERE Телефон LIKE '120%' Теперь объединим два запроса, чтобы в результате получить единую таблицу. Столбец Должность отсутствует в таблице «Студенты». Чтобы в общей таблице выделить студентов, введем в запрос для таблицы «Студенты» столбец, содержащий строковую константу «Студент» для соответствующих записей, и объединим два запроса с помощью раздела UNION:

SELECT Фамилия, Имя, Отчество, Должность, Телефон FROM Кадровый_состав WHERE Телефон LIKE '120%' UNION SELECT Фамилия, Имя, Отчество, Новый_столбец = 'Студент', Телефон FROM Студенты WHERE Телефон LIKE '120%' Отметим, что при объединении таблиц столбцам итогового набора данных всегда присваиваются те же имена, что были указаны в первом из объединяемых запросов.

Упорядочим полученный список по алфавиту, добавив предложение ORDER ВY:

SELECT Фамилия, Имя, Отчество, Должность, Телефон FROM Кадровый_состав WHERE Телефон LIKE '120%' UNION SELECT Фамилия, Имя, Отчество, Новый_столбец = 'Студент', Телефон FROM Студенты WHERE Телефон LIKE '120%' ORDER ВY Фамилия 2. Раздел INTO При указании этой конструкции результат выполнения запроса будет сохранен в новой таблице. Синтаксис раздела INTO следующий:

INTO имя_новой_таблицы Аргумент имя_новой_таблицы определяет имя таблицы, в которую будут вставлены результаты.

При выполнении запроса SЕLЕСТ…INТО автоматически создается новая таблица с нужной структvрой и в нее заносится полученный набор строк.

При этом в базе данных не должно существовать таблицы, имя которой совпадает с именем таблицы, указанной в команде SELECT…INTO.

Синтаксис команды SELECT..INTO следующий:

SELECT {имя_столбца [[AS] псевдоним_столбца] [, …, n]} INTO имя_новой_таблицы FROM {имя_исходной_таблицы [,…, n]} Аргумент имя_столбца задает имя столбца таблицы, который будет включен в результат. Указанный столбец должен принадлежать одной из таблиц, перечисленных в списке FROM {имя_исходной_таблицы [,…, n]}.

Если столбцы, принадлежащие разным таблицам, имеют одинаковые имена, то для столбцов необходимо использовать псевдонимы. В противном случае произойдет попытка создать таблицу со столбцами, имеющими одинаковые имена, что приведет к ошибке, и выполнение запроса будет прервано.

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

Аргумент имя_навой_таблицы содержит имя создаваемой таблицы.

Это имя должно быть уникальным в пределах базы данных.

Конструкция FROM в простейшем случае содержит список исходных таблиц. В более сложных запросах с помощью этой конструкции определяются условия связывания двух и более таблиц.

Пример 2.

С помощью команды SELECT…INTO, например, можно из таблицы «Студенты» выделить отдельную таблицу «Контакты», содержащую адреса и телефоны:

SELECT ID_Студент, Адрес, Телефон INTO Контакты FROM Студенты 3. Добавление данных – команда INSERT Рассмотрим некоторые возможности заполнения таблиц. Данныe в таблицу могут быть внесены различными способами:

с помощью команды INSERT можно добавить как одну строку, так и множество строк;

с помощью команды SELECT INTO, когда на основе результата выборки, возвращаемого запросом, автоматически создается новая таблица (использование команды рассмотрено выше).

Рассмотрим внесение данных в таблицу с помощью команды INSERT.

Вставка одной строки В простейшем случае вставка данных с помощью команды INSERT предполагает использование конструкции INSERT…VALUES для добавления одной строки:

INSERT [INTO] имя_таблицы [(список_колонок)] VALUES (список_значений) Параметр имя_таблицы определяет таблицу, в которую необходимо вставить строку данных. Необязательный параметр список_столбцов задает имена столбцов, в которые будет производиться добавление данных.

Пример 3.

Если студент, идентификатор ID_Cтудент которого равен 10, сдал экзамен по дисциплине со значением 9 в столбце ID_План на oцeнку «пять»

06.06.2008, то команда добавления этих данных в таблицу «Сводная_ведомость» выглядит следующим образом:

INSERT Сводная_ведомость VALUES (10, 9, 5, ’06.06.2008’) Отметим, что вставляемые в таблицу значения можно определять не только с помощью констант, но и с помощью переменных, функций, а также любых сложных выражений. Единственным требованием при этом является совпадение типов данных столбца и значения, возвращаемого выражением.

Вставка результата запроса Синтаксис команды INSERT может иметь вид:

INSERT [ INTO] имя_таблицы {[(список_колонок)] { VALUES ({DEFAULT | NULL | выражение} [, …, n]) | результирующая_таблица

| DEFAULT VALUES

Рассмотрим назначение каждого из параметров.

INTO – дополнительное ключевое слово, которое может быть использовано между словом INSERT и именем таблицы для обозначения того, что следующий параметр является именем таблицы, в которую будут вставлены данные;

имя_таблицы – имя таблицы, в которую необходимо вставить данные;

список_столбцов содержит список столбцов, в которые будет производиться вставка данных. Если он опущен, то данные будyт вставляться последовательно во все столбцы, начиная с первого.

После ключевого слова VALUES указываются значения для столбцов. Для каждого столбца должно быть задано выражение, имеющее соответствуюший тип данных. Если список столбцов не указан, то количество значений VALUES должно соответствовать количеству столбцов таблицы. Если же список столбцов явно задан, то это определяет порядок значений VALUES (и, соответственно, их типы). Можно не указывать явно значения для столбцов, если для них определено значение по умолчанию или разрешено хранение значений NULL.

VALUES ({ DEFAULT | NULL | выражение} [, …, n]) определяет набор данных, которые будут вставлены в таблицу. Количество аргументов VALUES определяется количеством столбцов в таблице или количеством столбцов в списке (если он имеется). Для каждого столбца таблицы можно указать один из трех возможных вариантов:

DEFAULT – будет вставлено значение по умолчанию, определенное для столбца. Если для столбца разрешено хранение значений NULL, а значение по умолчанию не определено, то в столбец будет вставлено значение NULL.

NULL – в столбец будет вставлено значение NULL (если для столбца была разрешена возможность хранения таких значений). Следует помнить, что для столбцов, входящих в первичный ключ, возможность хранения значений NULL не предусмотрена.

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

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

При указании параметра DEFAULT VALUES строка будет содержать только значения по умолчанию. Если для столбца не установлено значение по умолчанию, но разрешено хранение значений NULL, то в столбец будет вставлено значение NULL. Если для столбца не разрешено хранение значений NULL, нет значения поумолчанию и в команде INSERT не указано значение для вставки, то возникнет ошибка и выполнение команды прервется.

Более сложный случай вставки данных предполагает использование конструкции INSERT INTO…SELECT:

INSERT INTO имя_таблицы SELECT выражение_запроса Аргумент имя_таблицы содержит имя таблицы, в которую будут вставляться выбранные данные. Таблица должна быть предварительно создана и иметь соответствующую структуру.

Выражение_запроса определяет тело запроса SELECT, с помощью которого производится выборка данных из одной или нескольких таблиц.

Пример 4.

Для выборки данных из таблицы «Студенты» обо всех студентах, поступивших в ВУЗ в 2000 году, и сохранения их в таблице «Студент_2000»

можно использовать такую последовательность инструкций:

CREATE TABLE Студент_ (ID_Студент_2000 INTEGER NOT NULL, PRIMARY КЕY (ID_Студент_2000)) INSERT INTO Студент_ SELECT ID_Студент, Фамилия, Имя, Отчество, Адрес, Телефон FROM Студенты WHERE Год_поступления = Далее можно делать запросы на отбор строк из новой таблицы Студент_2000, например, можно выбрать первые пять строк:

SELECT ТОР 5 Фамилия, Имя, Отчество FROM Студент_ Приведенный пример иллюстрирует вставку строк данных в таблицу на основе результата выполнения запроса, обращаюшегося к одной таблице.

Более сложные запросы могут обращаться к множествy таблиц.

Пример 5.

Рассмотрим помещение в новую таблицу «Преподаватель_дисциплина»

информации о том, какой преподаватель какую дисциплину ведет. Для этого мы будем работать с тремя таблицами: «Кадровый_состав», «Учебный_план» и «Дисциплины». В первой таблице содержится список преподавателей, в третьей – список дисциплин. С помощью таблицы «Учебный_план» устанавливается связь «многие ко многим» между таблицами «Кадровый_состав» и «Дисциплины».

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

CREATE TABLE Преподаватель_дисциплина (ID_Дисциплина INTEGER NOT NULL, ID_Преподаватель INTEGER NOT NULL, Наименование CHAR(40) NOT NULL, Теперь вставим в созданную таблицу нужные нам данные, выполнив для этого следующий запрос:

INSERT INTO Преподаватель_дисциплина SELECT DISTINCT Дисциплины.ID_Дисциплина, WHERE Кадровый_состав.ID_Преподаватель=Учебный_план.ID_Преподаватель AND Дисциплины.ID_Дисциплина = Учебный_план.ID_Дисциплина В результате таблица «Преподаватель_дисциплина» будет содержать столбцы ID_Дисциплина, ID_Преподаватель, Наименование, Фамилия, Имя, Отчество, Должность.

4. Изменение данных – команда UPDATE Для внесения изменений в данные таблиц служит команда UPDAТЕ, позволяющая выполнять как простое обновление данных в столбце, так и сложные операции модификаuии данных во множестве строк таблицы.

Упрощенный синтаксис команды UPDATE имеет вид:

UPDATE имя_таблицы SET { имя_столбца = { выражение | DEFAULT | NULL }}[,…, n] { [ FROM {имя_исходной_таблицы} [,…, n]] [WHERE условие_отбора]} Рассмотрим назначение каждого из аргументов.

имя_таблицы – имя таблицы, в которой необходимо произвести изменение данных.

SET – ключевое слово, с которого начинается блок, в котором определяется список изменяемых столбцов.

имя_столбца = {выражение | DEFAULT | NULL} – для каждого изменяемого столбца нужно задать значение, которое он примет после выполнения изменения. С помощью ключевого слова DEFAULT можно присвоить столбцу значение, определенное для него по умолчанию. Можно также установить для столбца значение NULL. Изменению подвергнутся все строки, которые задаются с помощью раздела WHERE. Следует учитывать, что изменения в данные вносятся только после выполнения команды. Таким образом, при ссылке на изменяемые столбцы будут использоваться старые значения.

FROM {имя_исходной_таблицы} – если при изменении данных в таблице необходимо учесть состояние данных в других таблицах, то эти источники данных необходимо указать в разделе FROM. Собственно источник данных описывается с помощью конструкции имя_исходной таблицы.

WHERE условие_отбора – раздел с помощью которого можно сузить диапазон строк, в которых будет выполняться изменение данных.

Необходимо указать логическое условие, на основае которого будет приниматься решение об изменении данных конкретной строки. Если указанное логическое условие выполняется, то дaннные этой строки будут изменены, иначе изменение не выполняется. Предполагается, что логическое условие включает имена столбцов изменяемой таблицы, однако это необязательно.

Пример 6.

Добавим в таблицу «Учебный_план» по два часа в столбец Колuчество_часов для дисциплин 1-го семестра с формой отчетности «экзамен»:

UPDATE Учебный_план SET Количество_часов = Количество_часов + WHERE (Форма_отчетности= 'экзамен') AND (Семестр = 1) 5. Удаление данных – команда DELETE За одну операцию можно выполнить удаление как одной, так и множества строк. Если необходимо удалить из таблицы все данные, то можно удалить саму таблицу (однако этот способ следyeт использовать лишь в крайних случаях, так как помимо данных будет удалена и структура таблицы.

Удаление строк из таблицы возможно с помощью команды DELETE.

Синтаксис команды, чаще всего использующийся на практике, следующий:

DELETE Имя_таблицы [WHERE Условие_отбора] Таким образом, требуется указание лишь имени таблицы, из которой необходимо удалить данные, и логического условия, ограничиваюшего диапазон удаляемых строк в разделе WHERE. При отсутствии логического условия из таблицы будут удалены все имеющиеся строки.

Пример 7.

Пусть из таблицы «Учебный_план» необходимо удалить дисциплины первого семестра с формой отчетности «зачет», т.е. строки, у которых в столбце Форма_отчетности стоит «зачет»:

DELETE Учебный_план WHERE (Отчетность = 'зачет') AND (Семестр = 1) 6. Язык SQL и операции реляционной алгебры Язык SQL является средством выражения математического аппарата теории множеств и реляционной алгебры (см. материал Лекции 5).

Рассмотрим связь операторов языка SQL с некоторыми операциями реляционной алгебры.

Операция «объединение»

SELECT * FROM Имя_таблицы_А UNION SELECT * FROM Имя_таблицы_В Операция «разность»

SELECT * FROM Имя_таблицы_А

EXCEPT

SELECT * FROM Имя_таблицы_В Операция «проекция»

SELECT имя_столбца_1, …, имя_столбца_i, … имя_столбца_n FROM Имя_таблицы Операция «выборка»

SELECT * FROM Имя_таблицы WHERE Условие_отбора Операция «пересечение»

SELECT * FROM Имя_таблицы_А

INTERSECT

SELECT * FROM Имя_таблицы_B Операция «соединение»

Пусть есть отношения A(X1, …, Xn, A1, …, Am) и B (X1, …, Xn, B1, …, Bk).

SELECT A.X, …, A.X, A.A, …, A.A B.B, …, B.B FROM A, B WHERE (A.X = B.X ) AND … AND (A.X = B.X ) Лекция 14.

Тенденции развития баз данных 1. Объектно-ориентированные технологии и базы данных.

1.1. Объектно-ориентированное программирование.

1.2. Объектно-ориентированные базы данных.

1.3. Объектно-реляционные базы данных.

2. Распределенные базы данных.

1. Объектно-ориентированные технологии и базы данных В начале 90-х годов XX-го века началось активное внедрению объектноориентированных технологий в отрасль проектирования и разработки баз данных. Так, бытовала точка зрения о том, что соответствующие технологии быстро вытеснят все остальные, так же как и во многих других программистских отраслях, но ничего подобного не произошло.

1.1. Объектно-ориентированное программирование Рассмотрим термин «объектно-ориентированное программирование».

Заметим, что это термин, принятый преимущественно в российской литературе. В западной литературе под этим понимается сразу три аспекта:

объектно-ориентированный анализ – OOA, object-oriented analysis: – это методология, при которой требования к системе воспринимаются с точки зрения классов и объектов, выявленных в предметной области.

объектно-ориентированное проектирование – OOD, object-oriented design: это методология проектирования, соединяющая в себе процесс объектной декомпозиции и приемы представления логической и физической, а также статической и динамической моделей проектируемой системы.

объектно-ориентированное программирование – OOP, objectoriented programming: это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.

Здесь и далее по тексту условимся понимать под объектноориентированным программированием (ООП) сразу три указанных выше аспекта.

Итак, основой объектно-ориентированной технологии является так называемая объектная модель, которая возникает как результат объектноориентированной декомпозиции. Она выделяет основные абстракции предметной области, определяет классы абстракций и выясняет, какими данными (атрибутами) описывается каждая абстракция, какую функциональность эти абстракции должны обеспечивать. В отличие от традиционных технологий программирования, объектно-ориентированная технология представляет программу как совокупность классов и объектов, взаимодействующих друг с другом.

Объект – конкретная материализация абстракции; сущность с хорошо определенными границами, в которой инкапсулированы состояние и поведение.

Объект ООП – инкапсулированная структура, имеющая атрибуты и методы.

Термин «инкапсулированная структура» означает, что объект является самодостаточным, программы, внешние по отношению к объекту, ничего не знают о его структуре и такое знание им не требуется. «Внешний» вид объекта называется его интерфейсом.

В таком понимании объект – это «черный ящик», нам неизвестно что у него внутри, мы лишь можем вызвать его методы и только через них взаимодействовать с ним. Кроме этого объекты могут принадлежать иерархии «от общего к частному», которая реализуется путем наследования.

Инкапсулированные состояния объекта могут быть как простыми типами данных, так и другими объектами, или даже массивами объектов. Каждый объект содержит определенную совокупность методов, классы взаимодействуют друг с другом посредством механизма сообщений.

Объекты идентифицируются с помощью специальных указателей дескрипторов. Методы объектов ООП представляют собой последовательности инструкций, выполняемых объектом. Например, у объекта может быть метод, отображающий данный объект, создающий данный объект и изменяющий данный объект.

Предметная область моделируется как множество классов взаимодействующих объектов. Объект характеризуется набором свойств, которые являются как бы его пассивными характеристиками, и набором методов работы с этим объектом. Работать с объектом можно только с использованием его методов. Атрибуты объекта могут принимать множество допустимых значений, набор конкретных значений атрибутов определяет состояние объекта. Используя методы работы с объектом можно изменять значение его атрибутов и тем самым как бы изменить состояние самого объекта. Множество объектов с одним и тем же набором атрибутов и методов образует класс объектов. Класс, объекты которого могут служить значениями атрибута объектов другого класса, называется доменом этого атрибута.

К числу основных идей объектно-ориентированной технологии, как правило, относятся:

абстрагирование, инкапсуляция, модульность, иерархичность, типизация, полиморфизм, наследование.

Инкапсуляция – ограничивает область видимости имени атрибута пределами того объекта, в котором оно определено. Смысл этого атрибута будет определяться тем объектом, в котором оно инкапсулировано.

Полиморфизм – способность одного и того же программного кода работать с разнообразными данными. Другими словами, он обеспечивает допустимость в объектах разных типов иметь методы (процедуры или функции) с одинаковыми именами. Во время выполнения объектной программы одни и те же методы оперируют с разными объектами в зависимости от типа аргумента.

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

1.2. Объектно-ориентированные базы данных Представляется, что объектно-ориентированная база данных (ООБД) – база данных, основанная на принципах объектно-ориентированной технологии.

К основным моментам, имеющим отношение к ООБД, относят:

объекты (в ООБД любая сущность – объект и обрабатывается как объект).

классы (понятие тип данных из реляционной модели заменяется понятиями класс и подкласс);

наследование (классы образуют иерархию наследования, заимствуя свойства друг друга);

атрибуты (характеристики объекта моделируются его атрибутами);

сообщения и методы (каждый класс имеет определенную совокупность методов, классы взаимодействуют друг с другом посредством механизма сообщений);

инкапсуляция (внутренняя структура объектов скрыта);

идентификаторы объектов – дескрипторы (объекты идентифицируются с помощью специальных указателей – дескрипторов).

Система управления объектно-ориентированной базой данных называется объектно-ориентированной СУБД (ООСУБД). Цель ООСУБД – обеспечение постоянного хранения объектов, причем в отличие от традиционной СУБД ООСУБД должна хранить в составе объекта данные и программы.

Поскольку каждый объект данного класса имеет один и тот же набор методов, методы сохраняются только один раз – как методы класса (данные каждого экземпляра объекта хранятся отдельно).

Выделим основные положительные черты ООБД по сравнению с реляционной базой данных (РБД).

Сравнивая объектно-ориентированный и реляционный подходы к БД, можно отметить следующие особенности. В реляционных БД реальные объекты представляются как структуры, состоящие из набора элементарных типов данных. Такое представление имеет понятную интерпретацию – строка в плоской таблице. В том случае, когда специфика предметной области позволяет работать с такого рода приближением реальных объектов, РБД отлично справляются со своей задачей. Довольно часто реляционная модель и ее способ описания предметной области в виде набора плоских таблиц не отражает внутренней структуры для многих предметных областей, является тем самым искусственной и становится совершенно непонятной при увеличении количества таблиц.

В отличие от реляционных БД, объектно-ориентированные БД обладают простой и естественной связью с предметной областью, представляя ее структуру и состав, что облегчает проектирование и положительно сказывается на понимании принципов функционирования программ. Так, в сложных неоднородных предметных областях использование ООБД должно действительно упростить процесс проектирования и разработки.

Однако, нельзя не остановиться и на недостатках ООБД. К сожалению, в ООБД существуют свои проблемы. Например, там отсутствует мощная математическая база, лежащая в основе реляционной модели. Кроме того, в ООБД обычно приходится обходиться без интерпретируемых языков запросов, таких как SQL, что автоматически приводит к трудностям при работе с данными.

ООСУБД отличаются от реляционных СУБД тем, что программный интерфейс создания приложения либо очень слаб, либо вообще отсутствует.

Это означает, что при написании приложения на основе ООБД не существует конструкторов (не считая, например, конструктор создания списка полей в объекте, который, например, поставляется вместе с ООСУБД ObjectStore).

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

Итак, подведем краткие итоги:

ООБД используются, но пока не стали реальной альтернативой реляционным БД;

объектно-ориентированные возможности появляются в ведущих современных СУБД, таких как, например, Oracle;

предпринимаются попытки на внесение изменений в стандарты языка SQL с целью его частичной адаптации к ООБД. Так, новый стандарт SQL-3 включает большой раздел, посвященный этому вопросу.

1.3. Объектно-реляционные базы данных Объектно-реляционные БД соединяют в себе лучшие качества реляционных и объектно-ориентированных БД. Рассмотрим кратко основные элементы, осуществляющие объектные расширения в БД, используемые на сегодняшний день:

Хранение больших объемов данных. Наряду с теми данными, которые хранились в БД традиционно, современные объектнореляционные БД позволяют хранить в столбцах таблицы картинки, видео-ролики и другие большие документы.

Списки в столбцах. Более того, объектно-реляционные БД позволяют хранить в столбцах целые списковые структуры.

Пользовательские расширения. В объектно-реляционных БД пользователи имеют возможность создавать новые типы данных.

Хранимые процедуры. В определенном смысле хранимые процедуры также являются объектным расширением, осуществляя необходимые пользователю воздействия на данные (стандартный для ООП процедурный подход).

2. Распределенные базы данных База данных – интегрированная совокупность данных, с которой работают много пользователей. Изложение всех предыдущих разделов предполагало единую базу данных, размещаемую на одном компьюте-ре.

Напомним основные принципы, положенные в основу теории баз данных:

централизованное хранение данных;

централизованное обслуживание данных (ввод, корректировка, чтение, контроль целостности).

Появление баз данных проходило в период господства больших ЭВМ, и БД велась на одной ЭВМ. Если проанализировать работу пользователей с данными в компаниях, организациях, предприятиях в «докомпьютерное»

время, то нетрудно заметить, что на отдельных участках пользователи работали со «своими» данными (осуществляли сбор определенных данных, их хранение, обработку, передачу обработанных данных на другие участки или уровни управления).

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

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

Соответствующая совокупность данных называется распределенной базой данных.

Термин «распределенная база данных» часто встречается в литературе.

Однако, в разных источниках под этим термином понимаются разные вещи.

Часть авторов понимают под распределенной базой данных то, что имеется удаленный сервер, на котором расположены данные, а также клиентские компьютеры, расположенные территориально в другом месте. Такая трактовка нам представляется неполной. Настоящая распределенная база данных располагается на нескольких компьютерах. При этом часть файлов расположена на одном компьютере, часть на другом и т.д. Более того, возможна ситуация, когда информация на этих компьютерах пересекается, дублируется.

Распределенная база данных – это совокупность логически взаимосвязанных разделяемых данных (и описаний их структур), физически распределенных в компьютерной сети.

Распределенная база данных (РаБД) состоит из единой логической базы данных, разделенной на некоторое количество фрагментов. Каждый фрагмент хранится на одном из компьютеров компьютерной сети.

Система управления распределенной базой данных (РаСУБД) – это программная система, позволяющая пользователю работать как с его локальными данными, так и со всей базой данных в целом. РаСУБД также является распределенной системой.

Каждый фрагмент базы данных работает под управлением отдельной СУБД, которая осуществляет доступ к данным этого фрагмента.

Пользователи взаимодействуют с распределенной базой данных через локальные и глобальные приложения. Локальные приложения дают пользователю возможность работать со своими локальными данными и не требуют доступа к другим фрагментам. Глобальные приложения дают пользователю возможность работать с другими фрагментами базы данных, расположенными на других компьютерах сети.

Объединение данных организуется виртуально. Соответствующий подход, по сути, отражает организационную структуру предприятия (и даже общества в целом), состоящего из отдельных подразделений. Причем, хотя каждое подразделение обрабатывает свой набор данных (эти наборы, как правило, пересекаются), существует необходимость доступа к этим данным, как к единому целому (в частности, для управления всем предприятием).

В качестве одного из примеров реализации такой модели может служить сеть Интернет: данные вводятся и хранятся на разных компьютерах по всему миру, любой пользователь может получить доступ к этим данным, не задумываясь о том, где они физически расположены.

Считается (К. Дж. Дейт), что для пользователя распределенная система должна выглядеть точно так же, как нераспределенная система. Из этого принципа следует ряд правил:

1. Локальная автономия.

2. Независимость от центрального узла.

3. Непрерывное функционирование.

4. Независимость от расположения.

5. Независимость от фрагментации.

6. Независимость от репликации.

7. Обработка распределенных запросов.

8. Управление распределенными транзакциями.

9. Независимость от аппаратного обеспечения.

10. Независимость от операционной системы.

11. Независимость от сети.

12. Независимость от СУБД.

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

Перечислим основные проблемы при создании РаБД:

Фрагментация данных и распределение по компьютерам.

Составление глобального каталога, содержащего информацию о каждом фрагменте БД и его местоположении в сети. (каталог может храниться на одном узле или быть распределенным).

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

К сожалению, процесс создания и обслуживания РаБД связан и с техническими трудностями, среди которых можно выделить жесткие требования к пропускной способности каналов связи, а также низкую производительность, связанную со значительными затратами коммуникационных и вычислительных ресурсов при их синхронизации во время выполнения транзакций (особенно при интенсивных обращениях из разных узлов к одному фрагменту).

Технология, связанная с использованием РаБД, в наибольшей степени соответствует организации человеческой деятельности (информация распределена по месту деятельности людей и они обмениваются ей в процессе работы) и позволяет наиболее успешно решать проблемы, связанные с ведением баз данных:

повысить достоверность информации (информация вводится в месте ее порождения лицом, которое лучше всех понимает ее смысл);

повысить оперативность локальной обработки информации (соответствующие вопросы решаются на локальном компьютере с фрагментом БД).

Поэтому, очевидно, что задача проектирования, создания и функционирования РаБД является весьма существенной, активно изучается в настоящее время и будет решаться и далее.

1. В чем состоят отличия понятий «банк данных» и «база данных»?

2. Перечислите основные функции СУБД. В чем состоит обеспечение логической целостности базы данных?

3. Что такое транзакция? Приведите примеры транзакций, реализуемых в информационных системах в повседневной жизни.

4. Дайте общую характеристику архитектуры «клиент-сервер». В чем состоят функции клиентской и серверной частей вычислительной системы, построенной согласно архитектуре «клиент-сервер»?

5. В чем заключается трехуровневое представление данных?

Охарактеризуйте представление данных на каждом из уровней.

6. Какие модели данных Вы знаете?

7. Что такое реляционная модель данных? Какими основными понятиями она характеризуется?

8. Объясните, что такое первичный и внешний ключи.

9. Какие виды связей между отношениями Вы знаете? Приведите примеры.

10. Какие виды операций реляционной алгебры Вы знаете? Приведите примеры.

11. Объясните, в чем состоит суть и отличие понятий «даталогическая модель данных» и «инфологическая модель данных».

12. В чем заключается инфологическое, даталогическое и физическое проектирование базы данных?

13. Что представляет собой модель «сущность-связь»? Какими основными понятиями характеризуется данная модель?

14. Что такое ER-диаграмма, в чем состоит ее назначение?

15. В чем состоит нормализация таблиц? Что такое функциональная и многозначная зависимости?

16. Дайте определение первой, второй и третьей нормальной форм.

Опишите процесс перехода от первой нормальной формы ко второй, от второй к третьей.

17. Охарактеризуйте четвертую и пятую нормальную формы. Что такое полная декомпозиция таблицы?

18. Что представляет собой язык SQL, каково его предназначение, из каких частей он состоит?

19. Какие основные команды языка SQL Вы знаете?

20. Перечислите типы данных, поддерживаемые в языке SQL.

21. Какие встроенные функции языка SQL Вам известны?

22. С помощью какой команды языка SQL можно создать таблицу?

Опишите синтаксис этой команды. Приведите пример создания таблицы.

23. С помощью какой команды языка SQL можно добавить или удалить столбец таблицы? Опишите синтаксис этой команды. Приведите пример добавления и удаления столбца таблицы.

24. Как с помощью команд языка SQL удалить таблицу из БД? Приведите пример.

25. С помощью какого оператора языка SQL можно выбирать данные из таблиц согласно определенным условиям? Опишите синтаксис этого оператора. Приведите пример выборки всех записей из таблицы.

26. С помощью какого раздела оператора SELECT можно наложить условие на выбираемые из таблицы записи? Приведите пример.

27. Как при выборке данных из таблицы можно организовать сортировку выбранных записей? Приведите пример.

28. Какие функции агрегирования Вы знаете?

29. Как осуществлять группировку записей по определенным критериям?

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

30. Каким образом можно добавить в таблицу новую запись?

31. В чем заключается действие оператора UPDATE? Приведите пример изменения значения в одном из столбцов таблицы.

32. Что такое распределенная база данных?

Подведем основные итоги изучения данного теоретического курса.

Нами освоен понятийный аппарат дисциплины, в частности, изучена суть понятий «банк данных», «база данных», «система управления базами данных (СУБД)» и др. Мы подробно рассмотрели основные функции, возлагаемые на СУБД, а также пути решения проблемы целостности базы данных, узнали, что такое транзакции.

В результате изучения курса нами получено представление о таких видах архитектур информационных систем, как централизованная, с автономными персональными ЭВМ, «файл-сервер», «клиент-сервер».

Изучена система многоуровневого представления данных, состоящая из концептуального, логического и физического уровней. Рассмотрены такие модели данных, реализуемые в СУБД, как иерархическая, сетевая, реляционная, многомерная.

Нами изучены модели и стадии проектирования баз данных. На конкретном примере предметной области мы изучили стадии проектирования реляционной базы данных: подготовку таблиц для БД, их нормализацию, организацию связей между ними, исключение избыточности и противоречивости данных, формирование реляционной схемы, пригодной для реализации в СУБД.

В рамках курса мы познакомились с языком запросов SQL, позволяющим манипулировать данными. Мы выяснили, из каких частей состоит язык SQL, изучили его основные команды, позволяющие создавать базы данных и управлять данными в них. Основное внимание было уделено технологии выборки записей из таблиц БД посредством оператора SELECT.

Мы обсудили перспективы развития баз данных, особенности объектноориентированных и распределенных баз данных.

1. Голицына О.Л., Максимов Н.В., Попов И.И. Базы данных. М.:

ФОРУМ-ИНФРА-М, 2007. – 400 с.

2. Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных. СПб.:

КОРОНА принт, 2003. – 672 с.

3. Илюшечкин В.М. Основы использования и проектирования баз данных. М.: «Высшее образование», 2009. – 213 с.

4. Кузнецов С.Д. Основы баз данных. М.: Интернет-Университет Информационных технологий, 2005 – 488 с.

5. Полякова Л.Н. Основы SQL. М.: Интернет-Университет Информационных технологий, 2004. – 368 с.

6. Кузин А.В., Левонисова С.В. Базы данных. М.: Издательский центр «Академия», 2005. – 320 с.

7. Федоров Э.Г., Коновалов О.В. Управление данными. Волгоград:

ВолгГАСУ, 2007. – 144 с.

8. Диго С.М. Базы данных: проектирование и использование. М.:

«Финансы и статистика», 2005. – 592 с.

Зав. кафедрой информационных систем в экономике Федоров Э.Г.

БАЗЫ ДАННЫХ

Компьютерный набор Э.Г. Федоров Формат 60х84/16. Бумага SvetoCopy.

Объем 7,5 п.л. Тираж _ экз. Заказ № _ Волгоградский кооперативный институт (филиал) Российского университета кооперации 400002 г. Волгоград, ул. Новосибирская,

Pages:     | 1 | 2 ||
 


Похожие работы:

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Московский государственный университет экономики, статистики и информатики Цыбульская М.В. История политических и правовых учений Москва, 2003 УДК 32.8 ББК 66.1 Ц 938 Цыбульская М.В. История политических и правовых учений:. / Моск. гос. ун-т экономики, статистики и информатики. - М., 2003. – 114с. © Цыбульская Марина Владимировна, 2003 г. © Московский государственный университет экономики, статистики и информатики, 2003 г. 2 СОДЕРЖАНИЕ Введение 1....»

«Высшее профессиональное образование БАКАЛАВрИАТ В. Г. БАУЛА, А. Н. ТОМИЛИН, Д. Ю. ВОЛКАНОВ АрхИТеКТУрА ЭВМ И ОперАцИОННые среДы Учебник Допущено Учебно-методическим объединением по классическому университетскому образованию в качестве учебника для студентов высших учебных заведений, обучающихся по направлениям 010400 Прикладная математика и информатика и 010300 Фундаментальная информатика и информационные технологии 2-е издание, стереотипное УДК 004.2(075.8) ББК 32.973-02я73 Б291 Рецензент—...»

«АБРАМОВ Игорь Иванович (род. 11 августа 1954 г.) – доктор физико-математических наук, профессор кафедры микроэлектроники Белорусского государственного университета информатики и радиоэлектроники, заведующий научно-исследовательской лабораторией Физика приборов микро- и наноэлектроники БГУИР. Более 150 публикаций, в том числе три монографии. Область научных интересов: физика и моделирование приборных структур микро- и наноэлектроники. АРТЮХОВ Павел Вячеславович (род. 24 мая 1952 г.) – директор...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Тверской государственный университет Математический факультет Кафедра компьютерной безопасности и математических методов управления Утверждаю: Деканф-та _ __ 2012_г. УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС Информатика 1 курс 1 семестр (наименование дисциплины, курс) 030700.62 Международные отношения Направление подготовки 030700.62 Международные отношения, 1 курс, 1...»

«МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное образовательное учреждение высшего профессионального образования КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ УТВЕРЖДАЮ декан факультета Прикладная информатика профессор С. А. Курносов 26.06.2010 г. РАБОЧАЯ ПРОГРАММА дисциплины: Моделирование систем для специальности 230201.65 Информационные системы и технологии Факультет: Прикладная информатика Ведущая кафедра экономической кибернетики Дневная форма обучения...»

«Научные исследования подавателей факультета I математики и информатики 70-летию университета посвящается УДК 517.977 Е.А. Наумович ОСНОВНЫЕ РЕЗУЛЬТАТЫ ДЕЯТЕЛЬНОСТИ КАФЕДРЫ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ И ОПТИМАЛЬНОГО УПРАВЛЕНИЯ (1979-2009 гг.) В статье приводятся краткие сведения из истории создания и развития кафедры дифференциальных уравнений и оптимального управления. Сформулированы основные научные направления и наиболее важные результаты, полученные сотрудниками кафедры. Приведена информации...»

«ГБОУ ВПО Самарский государственный медицинский университет Минздравсоцразвития России И. П. КОРОЛЮК МЕДИЦИНСКАЯ ИНФОРМАТИКА Учебник Издание 2-е, исправленное и дополненное Рекомендовано Учебно-методическим объединением по медицинскому и фармацевтическому образованию вузов России в качестве учебника для студентов медицинских вузов Самара 2012 УДК 61.002(075.8) ББК 5ф:32.81а73 К68 Автор Королюк Игорь Петрович – заслуженный деятель науки России, лауреат премии Правительства России, доктор...»

«ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ ГОУ ВПО АМУРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ УТВЕРЖДАЮ Зав. кафедрой ОМиИ _Г.В. Литовка _2007 г. ИНФОРМАТИКА УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС для специальностей: 040101 – Социальная работа 040201 – Социология Составители: А.Н. Киселева, старший преподаватель О.В. Ефимова, ассистент Т.А. Макарчук, к.п.н., доцент Н.А. Чалкина, к.п.н., доцент Благовещенск, Печатается по решению редакционно-издательского совета факультета математики и информатики Амурского...»

«Виталий Петрович Леонтьев Компьютер. Настольная книга школьника Аннотация Книга призвана помочь школьнику в освоении курса информатики. Простым и доступным языком изложены все необходимые сведения о современных компьютерах, операционной системе Windows ХР, подробно раскрыты принципы работы с пакетом Microsoft Office. Большой раздел посвящен Интернету: досконально описано, как подключиться к Сети, быстро находить необходимую информацию, защищаться от вирусов и хакерских атак. Используя это...»

«Управление в социально-экономических системах УДК 519.876.2 ББК 32.81 МОДЕЛЬ СОЦИАЛЬНОГО ВЛИЯНИЯ И ЕЕ ПРИМЕНЕНИЕ ПРИ АНАЛИЗЕ ПОГРАНИЧНОЙ БЕЗОПАСНОСТИ ГОСУДАРСТВА Шумов В. В.1 (Отделение погранологии Международной академии информатизации, Москва) В настоящей работе рассмотрены существующие подходы к моделированию социальных и информационных воздействий. Формулируются гипотезы социализации, рациональности, индивидуального выбора, комплексности информационных воздействий, на основе которых...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Филиал федерального государственного бюджетного образовательного учреждения высшего профессионального образования Кемеровский государственный университет в г. Анжеро-Судженске 01 марта 2013 г. РАБОЧАЯ ПРОГРАММА по дисциплине Техника и технология отраслей городского хозяйства (СД.Ф.9) для специальности 080502.65 Экономика и управление на предприятиях (городского хозяйства) факультет информатики, экономики и математики курс: 3 эачет: 5 семестр...»

«ТЕХНИЧЕСКИЙ КОДЕКС ТКП 214-2010 (02140) УСТАНОВИВШЕЙСЯ ПРАКТИКИ ИЗЫСКАТЕЛЬСКИЕ РАБОТЫ ДЛЯ ПРОЕКТИРОВАНИЯ ЛИНЕЙНЫХ СООРУЖЕНИЙ ГОРОДСКИХ ТЕЛЕФОННЫХ СЕТЕЙ. ПРАВИЛА ПРОВЕДЕНИЯ ВЫШУКОВЫЯ РАБОТЫ ДЛЯ ПРАЕКТАВАННЯ ЛIНЕЙНЫХ ЗБУДАВАННЯЎ ГАРАДСКIХ ТЭЛЕФОННЫХ СЕТАК. ПРАВIЛЫ ПРАВЯДЗЕННЯ Издание официальное Минсвязи Минск ТКП 214-2010 УДК 621.395.74.001.2 МКС 33.040.35 КП 02 Ключевые слова: изыскания, подготовительные работы, автоматическая телефонная станция, линейные сооружения местной телефонной сети,...»

«ОАО ЦНИИТУ Регламент Удостоверяющего Центра Введение Удостоверяющий центр Министерства промышленности Республики Беларусь (УЦ-Минпром, УЦ) оказывает услуги по выдаче сертификатов в соответствии с требованиями руководящих документов Республики Беларусь в области инфраструктуры открытых ключей (далее - ИОК). Владельцем УЦ-Минпром является Министерство промышленности Республики Беларусь. В соответствии с договором от 09.03.2010 № 150-10 на оказание услуг по информационному обеспечению ИО -...»

«МИР № 2 (октябрь 2010 г.) Оглавление Творческий отчёт учителя информатики и ИКТ Никитковой С.В. в рамках аттестации на 1 квалификационную категорию2 Разработка учебного проекта План проекта Методический паспорт проекта Поэтапная разработка проекта 1 МИР № 2 (октябрь 2010 г.) Творческий отчёт учителя информатики и ИКТ Никитковой С.В. в рамках аттестации на 1 квалификационную категорию Скажи мне, и я забуду. Покажи мне, - я смогу запомнить. Позволь мне это сделать самому, и это станет моим...»

«ФГАОУ ВПО Казанский (Приволжский) федеральный университет Кафедра биохимии Сборник трудов международного симпозиума Биохимия – основа наук о жизни, посвященного 150-летию образования кафедры биохимии Казанского университета (21-23 ноября 2013 г., Казань) Казань 2013 УДК 577/579(082) ББК 28.4:28.72:28.707.2(2) С 23 БИОХИМИЯ – ОСНОВА НАУК О ЖИЗНИ: Международный С 23 симпозиум, посвященный 150-летию образования кафедры биохимии Казанского университета: сборник трудов (Казань, 21-23 ноября 2013 г.)...»

«Министерство образования и науки Республики Казахстан Институт математики Институт проблем информатики и управления И.Т. ПАК ИЗ ИСТОРИИ РАЗВИТИЯ ИНФОРМАТИКИ В КАЗАХСТАНЕ Алматы 2012 УДК 004:510 ББК 32.973:22.1 П 13 Рекомендована к печати решением ученых советов Института математики Института проблем информатики и управления МОН РК Рецензенты доктор физико-математических наук М.Н. Калимолдаев доктор технических наук Р.Г. Бияшев Редактор В.В. Литвиненко Пак И.Т. П 13 Из истории развития...»

«Министерство образования и науки Российской Федерации Федеральное агентство по образованию ГОУ ВПО Амурский государственный университет УТВЕРЖДАЮ Зав. кафедрой ОМиИ _Г.В. Литовка _2006 г. УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС ПО ДИСЦИПЛИНЕ ИНФОРМАТИКА для специальности 100103 – Социально-культурный сервис и туризм Составитель: Н.А. Чалкина Благовещенск, 2006 Печатается по решению редакционно-издательского совета факультета математики и информатики Амурского государственного университета Н.А. Чалкина...»

«Российско-Американское сотрудничество по здравоохранению Проект Мать и Дитя Санкт-Петербургская государственная медицинская академия им. И.И.Мечникова Центральный научно-исследовательский институт организации и информатизации здравоохранения Министерства здравоохранения РФ Комитет по здравоохранению Администрации г.Санкт-Петербурга Медицинский Информационно-аналитический Центр г.Санкт-Петербурга Управление Здравоохранения Администрации Пермской Области Управление Здравоохранения Администрации...»

«Г.П. Несговорова ПОСОБИЕ ПО НАПИСАНИЮ РАЗНОГО РОДА ДЕЛОВЫХ ТЕКСТОВ (в помощь студентам-программистам, информатикам, математикам, а также студентам других специальностей и всем интересующимся) I. СТИЛИСТИКА ДЕЛОВЫХ ТЕКСТОВ Введение Научным сотрудникам, инженерам и людям других творческих специальностей в своей профессиональной деятельности не обойтись без оформления ряда документов, таких как отчеты, статьи, разного рода описания, тексты монографий, диссертаций, авторефератов, деловые письма,...»

«М. В. Руденко СРАВНИТЕЛЬНЫЙ АНАЛИЗ СОВРЕМЕННЫХ СРЕДСТВ КОМПЬЮТЕРНОГО МОДЕЛИРОВАНИЯ ИНФОРМАЦИОННЫХ ПРОЦЕССОВ С целью выбора инструмента для создания эффективного средства сопровождения учебного процесса по дисциплинам, включающим разделы информационные процессы, проводится анализ доступных программных средств. Для этого введены оригинальные шкалы, позволяющие сопоставить различные прикладные системы. Сделано аргументированное заключение о целесообразности использования для сформулированной цели...»






 
© 2014 www.kniga.seluk.ru - «Бесплатная электронная библиотека - Книги, пособия, учебники, издания, публикации»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.