Справочник от Автор24
Поделись лекцией за скидку на Автор24

Информатика.TURBO PASCAL 7.0.База данных

  • ⌛ 2016 год
  • 👀 338 просмотров
  • 📌 291 загрузка
  • 🏢️ ТулГУ
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Информатика.TURBO PASCAL 7.0.База данных» pdf
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «ТУЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ» Институт горного дела и строительства Кафедра ССМиК Теличко Виктор Григорьевич доцент, кандидат технических наук КОНСПЕКТ ЛЕКЦИЙ по дисциплине ИНФОРМАТИКА (семестр №3) Уровень профессионального образования: высшее образование – бакалавриат Направление подготовки: 08.03.01 «Строительство» Профиль подготовки: «Промышленное и гражданское строительство» «Городское строительство и хозяйство» Квалификация выпускника: бакалавр Форма обучения: заочная Тула 2016 1 Рассмотрено на заседании кафедры протокол № Зав. кафедрой от « » 20 г. А.А.Трещев 2 ЯЗЫК ПРОГРАММИРОВАНИЯ TURBOPASCAL 7.0. КРАТКИЕ СВЕДЕНИЯ Изучение языка программирования представляет собой знакомство с формальными правилами записи алгоритмов для их последующего выполнения компьютером. Как и любой алгоритм, являющийся, последовательностью инструкций (шагов или этапов), программа на языке Turbo Pascal состоит из команд (операторов), записанных в определенном порядке и формате. Эти операторы позволяют получать, сохранять и обрабатывать данные различных типов (числа, символы, строки символов, т.д.) и состоят из "служебных слов" языка. Этих слов не так много, но их значение трудно переоценить. Служебные слова можно использовать только по своему прямому назначению. Подробному изложению правил и тонкостей программирования на языке Turbo Pascal посвящены многочисленные издания, учебники и справочники, издаваемые в нашей стране и за рубежом. Поэтому в рамах данного пособия рассмотрим только основные правила записи программ, конструкции и операторы языка Turbo Pascal, представив материал в виде краткой справки. Общая структура программ Алфавит языка Символы используемые в идентификаторах: все буквы латинского алфавита, арабские цифры, символ подчеркивания (_). Малые (строчные) и большие (прописные) буквы не различаются. Первым символом может быть только буква или символ подчеркивания. Длина имени может быть от 1 до 127 символов. При этом первые 63 символа в различных именах являются уникальными, т.е. должны обязательно отличаться друг от друга. Под идентификатором понимается имя любого объекта программы. • Разделители: используются для отделения друг от друга идентификаторов, служебных слов и чисел. В качестве разделителей используется пробел или комментарий – любой текст, заключенный между фигурными скобками { и } или скобками вида (* и *). Текст комментария можно расположить в любой части программы. • Специальные символы: знаки пунктуации (; : .. [ ] . и др.), знаки операций (арифметические, логические и др.), зарезервированные слова языка (служебные слова, иена директив и т.п.). • Неиспользуемые в конструкциях языка символы: буквы русского алфавита и некоторые символы (& % и др.). • Основные составные части программы 3 Заголовок программы является необязательным элементом и может отсутствовать. Uses-фраза используется для подключения к программе внешних модулей. Модуль (Unit) – это набор стандартных операций и описаний, которые можно использовать, как готовые конструкции. Структура Uses-фразы: Uses имя-модуля-1, имя-модуля-2, ..., имя-модуля-n; Разделы объявлений программы (описательная часть) Объявление меток Меткой называется любое целое число без знака, либо обычный идентификатор, с помощью которого в исполнительной части программы можно пометить отдельные операторы для быстрого перехода к ним. Оператор отделяется от метки двоеточием ( : ). Label имя-метки-1, имя-метки-2, …, имя-метки-n; Объявление констант Под константой понимается конструкция языка, значение которой в исполнительной части программы меняться не может. Структура данного раздела объявлений: Const имя-константы-1 = значение; имя-константы-2 = значение; ………………………………… имя-константы-n = значение; • Объявление типов данных • Под типом данных понимается множество допустимых значений данных, а также совокупность операций над ними. Все типы данных языка TurboPascal можно разделить на стандартные (предопределенные) и пользовательские определяемые программистом. Описание пользовательских типов данныхосуществляется в этом разделе объявлений. Type имя-типа-1 = описатель-типа; имя-типа-2 = описатель-типа; ………………………………… имя-типа-n = описатель-типа; Объявление типизированных констант Осуществляется также как и обычных констант, но с указанием их типа. Const имя-константы-1: тип-константы = значение; имя-константы-2: тип-константы = значение; ………………………………… 4 имя-константы-n: тип-константы = значение; • Объявление переменных В отличие от констант значения переменных в исполнительной части программы могут изменяться. Для их описания используют следующий раздел объявлений. Var имя-переменной-1А, имя-переменной-2А: тип-А; имя-переменной-1В, имя-переменной-2В: тип-В;… • Объявление процедур Процедурой называется подпрограмма, предназначенная для выполнения какой-либо законченной последовательности действий. Структура процедуры такая же, что и у основной программы (заголовок, разделы объявлений процедуры, исполнительная часть процедуры). Procedure имя-процедуры(список формальных параметров); <описания процедуры> begin <операторы тела процедуры> end; Список формальных параметров может содержать параметры различных категорий: параметры-значения, параметры-переменные, параметры-константы, параметры без типа, параметры-процедуры и параметры-функции. Function имя-функции (список формальных параметров): тип-функции; <описания функции> begin <операторы тела функции> end; Список формальных параметров у функции формируется по тем же правилам, что и у процедуры. Типы данных Простые типы данных 1 Целые типы (предопределенные) Идентификатор Длина Диапазон принимаемых значений Integer 2 байта -32768…+32767 1 байт -128…+127 Shortint 4 байта Longint 2147483648…+2147483647 1 байт 0…255 Byte 2 байта 0…65535 Word 2 Символьный тип – стандартный тип языка Char определяется значениями полного набора ASCII-символов и занимает в памяти 5 1 байт. 3 Логический тип Boolean (1 байт) представляет собой тип данных, любой элемент которого может принимать лишь одно из двух возможных значений: True и False. 4 Перечисляемый тип – определяется пользователем с помощью набора идентификаторов, с которым могут совпадать значения параметра, объявленного данным типом. Type имя-типа = (значение1, значение2, ... значение-n); 5 Тип-диапазон – задается пользователем с помощью указания наименьшего и наибольшего значений, разделенных двумя точками (..), которые могут принимать параметры данного типа. Type имя-типа = минимальное-значение .. максимальное-значение; 6 Вещественные типы Идентификатор Длина Число зна- Диапазон принимаечамых значений щих цифр 6 байт 11-12 ±(2,9×10 39 …1,7×10 38 ) Real 4 байта 7-8 ±(1,5×10 45 …3,4×10 38 ) Single 8 байт 15-16 Double ±(5,0×10 324 …1,7×10 308 ) 10 байт 19-20 ±(1,9×10 4951 …1,1×10 4932 ) Extended 8 байт 19-20 -2 63 +1…2 63 -1 Comp Все простые типы данных за исключением, вещественных, называются порядковыми. Структурированныетипы 1) Массивы – тип данных, представляющий собой совокупность фиксированного числа однотипных компонент. Каждая компонента массива имеет свой индекс, поэтому их иногда называют индексированными переменными. Объявляют тип данных массив следующим образом: Type тип-массив = array[тип-индекса-1,тип-индекса-2,..., тип-индекса-n] of тип-элементов; 2) Множество – задает интервал значений, который является множеством всех подмножеств базового типа (базовым типом может быть любой порядковый тип, состоящий не более чем из 256 элементов) и определяется так: Type тип-множество = set of базовый-тип; Над множествами выполняют те же операции, что и над математическими множествами: проверки принадлежности, объединения, разности, пересечения. 3) Строковый тип данных String определяет последовательность ASCIIсимволов произвольной длины (от 0 до 255 символов), задаваемой при описании типа. Type тип-строка = string[максимально возможная длина сроки]. Над строками выполняют операции конкатенации или сцепления – (строка: = строка-1 + строка-2+ ... + строка-n;), сравнения и обрабатывают с помощью стандартных функций языка. 6 4) Запись представляет собой такой тип данных, который содержит определенное число элементов (полей) и является смесью разных типов. Type тип-запись = record переменная-1: тип-1; …………………………. переменная: тип-n end; 5) Файловый тип представлен в языке TurboPascal в трех вариантах: текстовые файлы, типизированные файлы, нетипизированные файлы: текстовый файл – Var переменная: text; типизированный файл – Var переменная: file of тип компонента; нетипизированный файл – Var переменная: file; Текстовый файл состоит из строк символов и является файлом формата DOS. Типизированный файл записывается в машинных кодах и имеет жесткую структуру, как правило, типа Record. Нетипизированные файлы используются в основном в тех случаях, когда файловая переменная необходима для операций ввода-вывода. Указатель Указатель дает адрес объекта определенного типа, называемого базовым типом. При определении типа-указателя используется этот базовый тип, перед которым ставится признак указателя – знак ^. Type тип-указатель = ^тип-переменной; Var переменная-указатель: тип-указатель; Для работы с указателями используется адресный оператор @ и ряд стандартных конструкций языка. Процедурный тип Процедурный тип указывает, какой вид подпрограммы (процедуру или функцию) и с какими формальными параметрами можно использовать в качестве нового объекта программы (например, в виде формального параметра другой подпрограммы). Объявление процедурного типа похоже на заголовок подпрограммы. Type имя-типа = procedure(список формальных параметров); Type имя-типа = function(список формальных параметров): тип-функции; Далее можно вводить переменные этих типов. Операции языка TurboPascal Арифметические операции: сложение ( + ), вычитание ( – ), умножение ( * ), деление ( / ), целочисленное деление (div), остаток деления (mod). Логические операции Not And Or Xor A not A В A A B A or A B A xor A and B B B 7 Fal True Fals Fal s e s eTru False Fals eTru e e e True Fal s True eTru e False Fal se False Fal se False Tr ue True Tr ue False False Fals e True True Fals e False True Tru e True True Tru e Fal False s eFals True e Fal True s eTr False ue Операции отношения: равно ( = ), не равно ( <> ), меньше ( < ), больше ( > ), меньше или равно ( <=), больше или равно ( >= ). Операторы языка TurboPascal Все операторы языка можно разделить на две группы: простые и структурированные. К простым операторам относятся те, которые не содержат в себе других операторов. К ним относятся: оператор присваивания, пустой оператор, оператор вызова процедуры, оператор безусловного перехода GOTO. Структурированными называются операторы, которые могут включать в себя другие операторы. К этим операторам относятся следующие: составной оператор, условные оператор IF, оператор множественного выбора CASE, оператор цикла FOR, оператор цикла WHILE, оператор цикла REPEAT, оператор надзаписями WITH. Оператор присваивания – присваивает переменной значение какого-либо выражения, при этом тип переменной должен быть совместим с типом выражения. имя-переменной := выражение; Пустой оператор – не выполняет никакого действия может быть отображен в программе в виде метки или точки с запятой, отделяющих пустой оператор от предыдущих или последующих операторов. Оператор вызова процедуры – представляет собой оператор состоящий из имени вызываемой процедуры со списком фактических параметров (если они есть). имя-процедуры (список фактических параметров); Оператор безусловного перехода GOTO – изменяет стандартную последовательность выполнения операторов и осуществляет переход к оператору, помеченному меткой. Goto метка; Составной оператор – представляет собой совокупность последовательно выполняемых операторов, заключенных в операторные скобки BEGIN и END. Begin Оператор-1; Оператор-2; ………………. Оператор-N End; 8 Условный оператор IF – является оператором разветвления и изменяет порядок выполнения операторов в зависимости от истинности или ложности некоторого логического условия (выражения). Этот оператор может быть записан в двух формах: полной форме – If условие Then Оператор-1 Else Оператор-2; сокращенной форме – If условие Then Оператор-1; Оператор-1 выполняется в случае истинности условия, а Оператор-2 в случае ее ложности. Оператор множественного выбора CASE – позволяет выбрать один вариант решения из некоторого количества вариантов. Case выражение of Значение-1: Оператор-1; Значение-2 .. Значение-3: Оператор-2; Значение-4, Значение-5, Значение-6: Оператор-3; …………………… Else оператор-N End; Выражение является выражением порядкового типа, а ветвь ELSE может отсутствовать. В данной структуре выполняется тот оператор, для которого фиксированное Значение совпадает со значением Выражения. Оператор цикла FOR – осуществляет выполнение одного простого или составного оператора известное число раз. Существует два варианта записи этого оператора: инкрементная (с возрастанием параметра) For Параметр-переменная := Выражение-1 To Выражение-2 do Оператор; декрементная (с убыванием параметра) For Параметр-переменная := Выражение-1 Downto Выражение-2 do Оператор; Переменная, являющаяся параметром цикла, может быть только порядкового типа и изменяется в каждой итерации на единицу. Выражение-1 и Выражение-2 определяют соответственно начальное и конечное значение параметра цикла. Оператор цикла с предусловием WHILE –организует выполнение одного простого или составного оператора неизвестное заранее число раз до тех пор, пока сохраняется истинность логического выражения (условия завершения цикла). While Условие do Оператор; Оператор цикла с постусловием REPEAT – организует выполнение цикла, состоящего из любого числа операторов, заранее неизвестное число раз до тех пор, пока логическое выражение (условие выхода из цикла), проверяемое в конце каждой итерации не примет значение True. В этом случае цикл завершает свою работу. Repeat Оператор-1; Оператор-2; 9 ……………… Оператор-N Until Условие; Оператор над записями WITH – специальный оператор, позволяющий работать с объектами структурированного типа Record. При использовании этого оператора имя записи пишется только один раз, а внутри оператора указываются только имена полей записи. With Имя-записи do Оператор; Модули языка TURBOPASCAL В языке TurboPascal имеется большое количество стандартных подпрограмм, типов, констант и других конструкций, объединенных в несколько стандартных модулей. Они позволяют упростить процедуру написания программ и более полно использовать возможности компьютера и операционной системы. В частности ввод и вывод данных осуществляется при помощи стандартных процедур Read, ReadLn, Write, WriteLn. При составлении программ только стандартный модуль System автоматически подцепляется к программе, что позволяет пользоваться всеми его объектами, не делая для этого никаких дополнительных указаний в конструкции программы. Для использования всех остальных стандартных модулей (Crt, Graph, Dos, Strings, WinDos и др.) необходимо их присоединять к программе, используя для этого Uses-фразу. Рассмотрим некоторые, наиболее часто используемые стандартные конструкции языка TurboPascal (для правильного использования подпрограмм необходимо ознакомиться со специальной справочной литературой, содержащей подробное описание заголовков подпрограмм). М о д у л ь SYSTEM Этот модуль является основной библиотекой среды TurboPascal. В него входят все предопределенные процедуры и функции стандарта языка Паскаль, а также дополнительные подпрограммы, позволяющие выполнять разнообразные действия общего назначения. • Арифметические функции: • Abs(выражение) – абсолютное значение аргумента; • ArcTan(выражение) – арктангенс аргумента; • Cos(выражение) – косинус аргумента; • Exp(выражение) – показательная функция с основанием е (экспонента); • Frac(выражение) – дробная часть аргумента; • Int(выражение) – целая часть аргумента; • Ln(выражение) – натуральный логарифм аргумента; • Odd(выражение) – проверяет аргумент на четность; • Pi – число пи (3,1415926…); • Pred(выражение) – предшествующее значение аргумента порядкового типа; 10 • Random[(число)] – возвращает случайное число вещественного или целого типа; • Sin(выражение) – синус аргумента; • Sqr(выражение) – квадрат аргумента; • Sqrt(выражение) – квадратный корень аргумента; • Succ(выражение) – следующее значение аргумента порядкового типа. • Арифметические процедуры: • Dec(V,N) – уменьшает переменную порядкового типа V на величину N; • Inc(V, N) – увеличивает переменную порядкового типа V на величину N. • Процедуры и функции преобразования типов: • Str(N:p:q, S) – процедура, преобразующая число N в строку символов S (p и q – формат чисел, p – общее количество знаков числа, q – число знаков после запятой для вещественных чисел); • Val(S, N, E) – процедура, преобразующая символьное представление числа S в числовую форму N, Е – код ошибки; • Chr(число) – функция, возвращающая символ с указанным ASCII-кодом; • Ord(выражение) – функция, возвращающая порядковый номер значения выражения порядкового типа; • Round(выражение) – функция, округляющая вещественное число до целого; • Trunc(выражение) – функция, выделяющая целую часть выражения. • Процедуры и функции работы со строками: • Delete(S, N, I) – процедура, удаляющая из строки S ее часть, начиная с символ N длиною I; • Insert(S1, S2, N) – процедура, вставляющая в строку S2 подстроку S1, начиная с символа N; • Concat(S1, S2,...,Sn) – функция, объединяющая строки S1, S2,...,Sn в одну; • Copy(S, N, I) – функция, выделяющая из строки S I символов, начиная с N-ого. • Length(S) – функция, определяющая текущую длину строки S; • Pos(S1, S2) – функция, определяющая номер позиции, с которой начинается подстрока S1 в строке S2. Процедуры управления программой: Break – процедура, осуществляющая немедленный выход из цикла; Continue – процедура, осуществляющая досрочное начало новой итерации в цикле; Exit – процедура, осуществляющая выход из текущей подпрограммы или программы; Halt – процедура, прекращающая выполнение программы. • Процедуры ввода-вывода: • Read(список-ввода) – процедура, осуществляющая ввод исходных данных в соответствии со списком; • ReadLn(список-ввода) – процедура, осуществляющая ввод исходных данных в соответствии со списком, переводя после ввода курсор на новую строку; • Write(список-вывода) – процедура, осуществляющая вывод результатов в соответствии со списком; 11 • WriteLn(список-вывода) – процедура, осуществляющая вывод результатов в соответствии со списком, переводя после вывода курсор на новую строку. • Процедуры управления динамической памятью: • Dispose(переменная-указатель) – освобождает память, занятую динамической переменной; • FreeMem(переменная-указатель, размер) – удаляет динамическую переменную заданного раз- мера; • GetMem(переменная-указатель, размер) – создает новую динамическую переменную заданного размера; • New(переменная-указатель) – создает новую динамическую переменную. • Процедуры для управления вводом-выводом: • Append(файловая-переменная) – открывает существующий текстовый файл для добавления в конец информации; • Assign(файловая-переменная, имя-файла) – связывает файловую переменную с внешним файлом; BlockRead(файловая-переменная, буфер, число-компонент, результат) – читает компоненты из файла без типа; BlockWrite(файловая-переменная, буфер, число-компонент, результат) – записывает компоненты в файл без типа; • Close(файловая-переменная) – закрывает открытый файл; • Read(файловая-переменная, список-ввода) – читает информацию из типизированного файла; • ReadLn(файловая-переменная, список-ввода) – читает информацию из типизированного файла и переходит к следующей строке файла; • Reset(файловая-переменная) – открывает существующий файл; • Rewrite(файловая-переменная) – открывает новый файл; • Seek(файловая-переменная, номер-позиции) – настраивает файл на требуемую компоненту; • Write(файловая-переменная, список-вывода) – записывает информацию в файл; • WriteLn(файловая-переменная, список-вывода) – записывает информацию в файл и выводит в него признак конца строки. • Функции для управления вводом-выводом: • Eof(файловая-переменная) – фиксирует конец файла; • Eoln(файловая-переменная) – фиксирует конец строки текстового файла; • FilePos(файловая-переменная) – возвращает номер текущей компоненты файла; • FileSize(файловая-переменная) – возвращает текущий размер файла в компонентах; • IOResult – возвращает код выполнения операции ввода-вывода. МодульCRT 12 Этот модуль содержит константы, переменные и подпрограммы, предназначенные для работы с консолью в текстовом режиме. Рассмотрим основные подпрограммы модуля Crt. Процедуры: ClrScr – очищает текущее окно на экране; Delay(время) – задает задержку выполнения программы в миллисекундах; GotoXY(x, y) – перемещает курсор к элементу экрана с заданными координатами; TextBackground(цвет) – задает цвет фона; TextColor(цвет) – задает цвет символов; Window(x1, y1, x2, y2) – задает размеры окна на экране. Функции: KeyPressed – анализирует нажатие клавиш на клавиатуре; ReadKey – считывает символ с клавиатуры; WhereX – возвращает текущую координату X курсора; WhereY – возвращает текущую координату Y курсора. М о д у л ь GRAPH Этот модуль содержит типы, константы, переменные и подпрограммы, предназначенные для работы с консолью в графическом режиме. Количество предопределенных объектов в этом модуле велико. Одних процедур и функций в этом модуле более 80. Вот лишь некоторые основные процедуры: Arc(x, y, угол1, угол2, радиус) – построение дуги окружности; Bar(x1, y1, x2, y2) – построение прямоугольника; Bar3D(x1, y1, x2, y2, ширина, грань) – построение параллелепипеда; Circle(x, y, радиус) – построение окружности; ClearDevice – очистка графического экрана; CloseGraph – завершение работы в графическом режиме; FloodFill(x, y, цвет-границы) – заполнение замкнутой области текущим орнаментом; InitGraph(драйвер, режим, путь) – инициализирует графический режим работы; Line(x1 ,y1, x2, y2) – построение линии от точки до точки; OutText(строка) – вывод на экран строки символов; PutPixel(x, y, цвет) – построение точки; SetBkColor(цвет) – задание цвета фона экрана; SetColor(цвет) – задание текущего цвета; SetFillStyle(параметр-заполнения, цвет) – задание параметров заполнения фигур. 13 БАЗЫ ДАННЫХ 1. ОСНОВНЫЕ ПОНЯТИЯ При наличии большого объема перерабатываемой с помощью компьютера информации возникают задачи обеспечения наилучшего хранения данных, их редактирования и обработки. Следовательно, нужно - наилучшим образом организовать данные; - обеспечить наилучшее управление данными. Данные - информация, представленная в определенной форме, пригодной для последующего хранения и обработки. Предметная область ( ПО ) - часть реального мира, подлежащая изучению с целью организации управления и последующей автоматизации. Предметная область определена, если известны существующие в ней объекты, их свойства и связи между ними (объектные отношения). Объект - это то, о чем необходимо хранить информацию. Каждый объект характеризуется определенным состоянием, которое описывается с помощью ограниченного набора свойств и связей (отношений) с другими объектами. Свойства объекта могут не зависеть от его связей с другими объектами, т.е. являются локальными. Если свойства объекта зависят от связей с другими объектами, то они называются реляционными. Связь между объектами в зависимости от числа входящих в нее объектов характеризуется степенью: n = 2,3,...,k . База данных (БД) - совокупность данных конкретной предметной области, причем данные организованы по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования, и не зависят от программ обработки. В базе данных обеспечивается интеграция логически связанных данных при минимальном дублировании хранимых данных. Модель данных определяет правила, в соответствии с которыми структурируются данные. Однако структурные правила не обеспечивают возможности полного представления семантики данных и способа их использования. Поэтому должны быть определены операции над данными. Е. Кодд выделяет в модели данных три наиболее существенных компонента: - совокупность средств определения допустимых структур данных (структуризация данных); - множество операций, применимых к допустимому состоянию базы данных для поиска или модификации данных; - множество ограничений целостности, явно или неявно определяющих множество допустимых состояний базы данных. Структуризация данных определяется разнообразием и количеством типов объектов модели данных, ограничениями на структуру данных. Кроме того, между данными допускается устанавливать дополнительные связи, называемые логическими связями. 14 Множество операций определяет виды обработок: операции выборки (поиск) и операции, изменяющие состояние данных (редактирование). Ограничения целостности поддерживаются средствами, предусмотренными в модели данных для выражения ограничений на значения данных и связи. Эти ограничения характеризуют достоверное состояние данных. Система управления базами данных ( СУБД ) - набор программных средств, обеспечивающих создание и обслуживание баз данных и выполнение операций над данными. Информационная система ( ИС ) представляет собой систему по сбору, передаче и обработке информации о заданной предметной области, снабжающую всех своих пользователей необходимой информацией. Информационную систему определяют как систему информационных, математических, программных, языковых, организационных и технических средств, предназначенных для централизованного накопления и коллективного многоаспектного использования данных для получения необходимой информации. Основными компонентами ИС являются: - собственно база данных ( БД ), содержащая необходимую информацию о редметной области и описание структуры хранимых данных; система управления базой данных ( СУБД ), выполняющая типовые процедуры управления данными; прикладная программа (приложение пользователя ), реализующая требуемый алгоритм ведения диалога пользователя с информационной системой для обслуживания БД и решения всего комплекса задач конкретной предметной области. 2. БАЗА ДАННЫХ Данные предметной области удобно хранить в интегрированной базе данных по следующей основной причине: такая организация обеспечивает централизованное управление данными. Отметим преимущества, которые вытекают из централизованного управления данными. Сокращается избыточность в хранимых данных ввиду отсутствия дублирования данных в различных объектах модели, что обеспечивает однократный ввод данных и простоту их корректировки. Устраняются возможности возникновения противоречивости хранимых данных. Хранимые данные могут использоваться совместно. Совместное использование предполагает не только то, что все данные существующих приложений интегрированы, но также и то, что новые приложения могут быть построены на той же самой базе данных. Централизованное управление обеспечивает соблюдение стандартов в представлении данных, принятых в данной предметной области. Могут быть выполнены условия безопасности данных. Обеспечивается целостность данных. Благодаря централизованному управлению, могут быть определены процедуры проверки, выполняющиеся при операциях запоминания. Обеспечивается независимость данных. В системе баз данных приложения (программы обработки) не зависят от данных. Это связано с тем, что в разных приложениях одни и те же данные требуется представлять по-разному. Различия могут 15 существовать между представлением данных в приложениях и формой их физического хранения. Кроме того, должна быть возможность изменения структуры хранения или метода доступа без изменения существующих приложений. Сказанное выше подразумевает, что база данных может развиваться, не оказывая влияния на существующие приложения. Программное обеспечение, называемое системой управления базами данных (СУБД), поддерживает общий интерфейс между всеми пользователями и интегрированной базой данных. СУБД способствует обеспечению секретности и целостности данных, а также позволяет осуществлять контроль данных. Интерфейс СУБД с различными классами пользователей обычно обеспечивается широким диапазоном языков. Администратор базы данных (АБД) - это лицо (или группа лиц), ответственное за общее управление базой данных. Администратор базы данных является ответственным за анализ потребностей пользователей, проектирование базы данных, еѐ внедрение, обновление, реорганизацию, а также за консультацию и обучение пользователей. Естественно, что администратору базы данных потребуются программные средства для выполнения этой работы, к которым относятся программы загрузки для создания первоначальной версии базы данных, программы реорганизации, программы восстановления. Важным инструментом администратора базы данных является словарь данных, содержащий «данные о данных». В словаре хранятся все схемы, процедуры проверки достоверности данных, проверки полномочий, а также может храниться информация о перекрестных ссылках, показывая связь программ с данными. 3. УРОВНИ ПРЕДСТАВЛЕНИЯ ДАННЫХ В настоящее время признаны три уровня абстракции для определения структуры базы данных: внутренний, концептуальный и внешний. Внутренний уровень близок к физической памяти, так как связан со способом физического хранения данных (с позиций системного программиста). Внешний уровень отражает представления прикладного программиста или конечного пользователя, так как связан с тем, как отдельные пользователи представляют эти данные. Концептуальный уровень можно представить себе определяющим обобщенное представление пользователей. Внутренняя модель есть представление самого низкого уровня всей базы данных. Основными компонентами физической базы данных являются физические блоки, хранимые записи, указатели, данные переполнения и промежутки между блоками. Взаимосвязи между хранимыми записями, возникающие в результате их группирования или использования индексных структур, являются частью физической структуры. Отдельного пользователя интересует только некоторая часть всей базы данных. Представление пользователя об этой части базы данных будет до некоторой степени абстрактным по сравнению с тем, как данные хранятся на физическом уровне. Другими словами можно сказать, что пользователь представляет базу данных посредством внешней модели. Внешняя модель является информационным содержанием базы данных в том виде, в каком его представляет конкретный пользователь. Внешняя модель опреде16 ляется посредством внешней схемы, которая состоит из описаний всех типов внешних записей этой внешней модели. Определим представление данных на внешнем уровне как представление на уровне реализации. Представление реализации состоит из логических записей, составляющих их элементов данных и взаимосвязей записей. Наиболее часто применяются три модели данных: иерархическая сетевая и реляционная. С концептуальным уровнем представления данных согласуется понятие концептуальной модели. Концептуальная модель есть представление полного информационного содержания базы данных в абстрактной форме по сравнению со способом физического хранения данных. Это представление может полностью отличаться от представления данных отдельным пользователем. Другими словами, это представление данных скорее ближе к данным в том виде, как они есть, чем в том, какими их видят пользователи при обработке. Концептуальная модель состоит из множества экземпляров различных типов объектов и связей (концептуальных записей). Структура данных на концептуальном уровне называется концептуальной схемой или информационной структурой, которая включает определения каждого типа концептуальных записей. Она является проблемно-ориентированной и системно-независимой, то есть независимой от конкретной СУБД, операционной системы и аппаратного обеспечения компьютера. Концептуальная структура (или схема) содержит следующие компоненты: - элементарные данные предметной области, называемые объектами; - элементарные данные, описывающие объекты, называемые атрибутами; - ассоциации между экземплярами элементарных данных, называемые связями. Различают три типа бинарных связей между экземплярами объектов: - один-к-одному ( 1 : 1 ); - один-ко-многим ( 1 : M); - многие-ко-многим ( M : N ). Большинство связей предметной области могут быть представлены бинарными связями. Концептуальная схема должна поддерживать согласованность связей. 4. БАЗОВЫЕ ТИПЫ МОДЕЛЕЙ ДАННЫХ Основным компонентом системы базы данных является модель данных (концептуальная модель). Тип данных - это определение объектов, их инвариантных свойств (ограничений) и операций, допустимых над ними. Схему базы данных можно рассматривать как совокупность типов данных. Ограничения, определенные в схеме, могут использоваться для контроля данных того или иного типа. С этой точки зрения база данных - это совокупность значений данных, представляющих собой реализации типов, специфицированных в схеме. Модель данных можно охарактеризовать как совокупность категорий типов данных. Типы данных, соответствующие этим категориям, используются для представления атрибутов, 17 типов объектов и связей реального мира. Категория определяется посредством других, базовых для нее категорий типов данных. Кроме того, в моделировании данных акцент делается на определении таких категорий типов данных, которые могли бы использоваться во многих ситуациях общего характера. Концепция типов данных полезна в моделировании данных с точки зрения получения абстракций и установления соотношений и связей между данными. Системы баз данных классифицируются в соответствии с выбранной моделью данных. Широкое распространение получили три типа моделей данных: иерархическая модель, сетевая модель и реляционная модель данных. Эти типы образуют некоторое «базовое» множество. Каждый из типов определяет соответствующую систему управления базами данных (СУБД). Выбор модели данных зависит от объема информации, сложности решаемых задач и имеющегося технического и программного обеспечения. Сетевая модель данных базируется на табличных и графовых представлениях. Вершинам графа соответствуют объекты, представленные таблицами, а дугам соответствуют связи между объектами. Ограниченность сетевой модели состоит в невозможности непосредственного представления связей между объектами типа «многие-ко-многим». Иерархическая модель данных представляется упорядоченным деревом. Отличие иерархической модели от сетевой состоит в том, что в иерархической модели любой объект может подчиняться только одному объекту вышестоящего уровня, а в сетевой - любой объект может быть подчинен нескольким объектам. Реляционная модель данных базируется на отношениях и их представлении таблицами. Реляционная модель данных впервые была предложена Е. Коддом. Единственным средством структуризации данных в реляционной модели является отношение. Отношения обладают всеми свойствами множеств. Важнейшее свойство языков данных реляционной модели - возможность определять новые отношения, основываясь на существующих отношениях и используя реляционную алгебру или реляционное исчисление. 18 5. РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ Реляционная модель данных является совокупностью простейших двумерных таблиц - отношений (объектов модели). В теории множеств таблице соответствует термин отношение (relation), который дал название модели. 5.1. Структура данных Таблица (table) является основным типом структуризации данных (объектом) реляционной модели. Структура таблицы определяется совокупностью столбцов. В каждой строке таблицы содержится по одному значению в соответствующем столбце. Такая таблица называется нормализованной. В таблице не может быть двух одинаковых строк. Общее число строк не ограничено. Строки таблицы представляют экземпляры объекта и называются записями (records). Столбцы таблицы представляют атрибуты объекта и называются полями (fields). В моделировании данных вводится понятие домена (однородного множества). Домены можно рассматривать как множества, из которых черпаются значения семантически значимых объектов и их свойств. Именованные домены, представляющие семантически значимые объекты, называются атрибутами. Атрибуты, определенные на общем домене, обладают одним и тем же свойством. Поле таблицы - столбец в прямоугольной таблице. Поле таблицы реализует понятие атрибута в реляционной модели, Дадим формальное определение отношения. Пусть даны N множеств D1, D2, ..., DN. Тогда R есть отношение над этими множествами, если R есть множество упорядоченных n-местных кортежей вида {d1, d2, ..., dn}, где d1 - элемент из D1, d2 -элемент из D2, ..., dn-элемент из DN. D1, D2, .,., DN называются доменами отношения R. Отношение R можно рассматривать как подмножество декартова произведения множеств D1, D2, ..., DN. Число доменов называется степенью или размерностью отношения. Текущее число кортежей в отношении называется мощностью или кардинальным числом. В качестве примера рассмотрим реляционную модель данных для предметной области Успеваемость студентов. Будем предполагать, что студент должен сдать экзамены по некоторым дисциплинам - предметам. После сдачи очередного экзамена преподаватель заполняет направление, в котором указывается ФИО студента, название предмета и полученная студентом оценка. Ограничимся данными, представленными тремя таблицами (отношениями): Студенты, Предметы, Оценки. Таблица Студенты содержит следующие данные о каждом студенте: номер студента (номер зачетной книжки), фамилию и инициалы, номер группы, специальность, домашний адрес, телефон. Таблица Предметы содержит номер предмета и название предмета. 19 Таблица Оценки содержит номер студента, номер предмета и оценку, полученную данным студентом по данному предмету. Реляционная модель данных описывается реляционной схемой, состоящей из одной или нескольких схем отношений. Схема отношения задается именем отношения и именем соответствующих атрибутов. Для описанной предметной области Успеваемость студентов реляционная схема описывается следующими схемами отношений: Студенты (Номер-студента, фамилия-имя-отчество, номер-группы, специальность, домашний адрес, телефон) Предметы (Номер-предмета, название предмета) Оценки (Номер-студента, номер-предмета, балл) Основным свойством реляционной модели данных является то, что связи между кортежами таблиц представлены значениями данных в столбцах. Отношения Студенты и Оценки имеют общий домен - номера студентов, отношения Предметы и Оценки имеют общий домен - номера предметов. Реляционная база данных описанной предметной области будет определяться таблицами соответствующих отношений и связями между ними. 5.2.Ограничения целостности Отношение отображают таблицей, каждая строка которой представляет кортеж. Количество столбцов таблицы равно степени отношения, а число строк - его мощности. Из того факта, что отношение есть множество, следует, что никакие два кортежа не совпадают и что упорядоченность кортежей несущественна. Это ограничение приводит к понятию ключа отношения. Ключ отношения - это подмножество атрибутов, совокупность значений которых однозначно идентифицирует кортеж. Каждое отношение имеет, по крайней мере, один ключ (состоящий из всех атрибутов). Это следует из того, что дублирование строк не допускается. Отношение может иметь и несколько ключей, называемых возможными ключами. Для того чтобы исключить тривиальные ключи потребуем, чтобы ключ обладал следующими двумя свойствами: С1) однозначность идентификации (значение ключа однозначно идентифицирует кортеж отношения); С2) неизбыточность (никакое подмножество атрибутов ключа не обладает свойством С1). Один из возможных ключей выбирается в качестве первичного ключа отношения. Первичный ключ не разрешается обновлять. Кроме того, первичный ключ не может принимать значения «не определено». Вторичный ключ - это такой ключ, значения которого могут повторяться в разных строках таблицы. По ним отыскивается группа строк с одинаковым значением вторичного ключа. Вторичный ключ называют ключом поиска. Связь - это логическое отношение между объектами, выражающее некоторое ограничение или правило. В реляционной модели вводится понятие реляционной связи (relation) - это связь между записями, основанная на совпадении значений атрибутов, по которым устанавливается связь. 20 Внешний ключ — атрибут или комбинация атрибутов некоторого объекта, соответствующие первичному ключу другого объекта, связанного с данным. Иначе говоря, внешний ключ одного объекта представляет собой уникальный идентификатор записи в другом объекте, с которым данный объект связан реляционным отношением. Для логической связи одной таблицы-отношения, например, R1 с другой таблицей отношением R2 (назовем еѐ главной), таблица R1 должна содержать внешний ключ. Внешним ключом подчиненной таблицы R1 является вторичный ключ этого отношения, который в то же время является первичным ключом в главной таблице. Такие одинаково определенные атрибуты в разных отношениях являются средством логической связи между записями разных таблиц и играют роль ключа связи. Схема данных — представление набора всех объектов, входящих в данную модель, и связей между ними. Целостность данных — это система правил, используемых для поддержания связей между записями в связанных таблицах. Большинство конкретных реляционных моделей данных предусматривает средства спецификации явных ограничений целостности, накладываемых на отношения. Например, для атрибута можно задать домен сравнимости, применяемый для указания осмысленности сравнениязначений. Поддержка целостности данных - предотвращение некорректного изменения данных в связанных таблицах, нарушающего установленное отношение между ними. Например, если из таблицы Студенты удаляется запись, соответствующая некоторому студенту, то необходимо предусмотреть удаление всех записей, соответствующих этому же студенту из таблицы Оценки. Возможны ограничения на область значений атрибута. Более общие ограничения могут быть заданы посредством утверждений. Утверждения - это предикаты, определяющие условия, которым должна удовлетворять база данных при изменении ее состояния. 5.3. Операции над данными Операции обработки данных включают операции над строками таблиц и операции над таблицами (отношениями). Операции над строками - это включение (добавление), удаление, обновление (изменение), то есть операции редактирования. Основными операциями над отношениями реляционной модели данных являются традиционные операции над множествами: объединение, пересечение, разность (вычитание), декартово произведение, а также специальные операции: выбор, проекция, соединение и деление множеств. Для любой из этих операций результат обработки - новая таблица- отношение. Специальные операции над отношениями Выбор - операция выполняется над одним отношением R. Для отношения R по заданному условию осуществляется выборка подмножества кортежей. Результирующее отношение имеет ту же структуру, что и R, но число его кортежей будет меньше или равно исходному. 21 Например, для отношения Студенты в реляционной базе данных Успеваемость студентов можно в качестве условия выбора задать конкретное значение для атрибута «специальность», тогда результирующее отношение будет содержать только те кортежи (строки) из таблицы Студенты, в которых этот атрибут (столбец) будет иметь заданное значение. Проекция - операция выполняется над одним отношением, например, R. Операция проекции формирует новое отношение (например, RPR) с заданным подмножеством атрибутов исходного отношения R. Оно может содержать меньше кортежей, так как после отбрасывания в исходном отношении R части атрибутов (при возможном исключении первичного ключа) могут образоваться кортежи, дублирующие друг друга. Дублирующие кортежи из результирующего отношения исключаются. Например, если выполнить проекцию отношения Студенты в реляционной базе данных Успеваемость студентов по атрибуту «специальность», тогда результирующее отношение будет содержать только один атрибут «специальность» и количество кортежей в нем будет равно количеству различных значений атрибута «специальность» из таблицы Студенты. Можно выполнить проекцию отношения по двум и более атрибутам. Например, для отношения Студенты можно выполнить проекцию этого отношения по двум атрибутам: «номер-группы» и «специальность». Соединение выполняется для заданного условия соединения над двумя логически связанными отношениями. Исходные отношения, например, R1 и R2 имеют разные структуры, в которых есть одинаковые атрибуты - внешние ключи (ключи связи). Операция соединения формирует новое отношение, структура которого является совокупностью всех атрибутов исходных отношений. Результирующие кортежи формируются объединением каждого кортежа из R1 с теми кортежами R2, для которых выполняется условие. Условием, как правило, является значение внешнего ключа в исходных отношениях. Например, можно выполнить соединение над двумя отношениями Студенты и Оценки реляционной базы данных Успеваемость студентов по атрибуту «номер-студента»; тогда в результирующем отношении каждая запись из таблицы Студенты соединиться поочередно с каждой записью из таблицы Оценки, имеющей то же самое значение атрибута «номер- студента», что и запись в таблице Студенты. Деление — операция выполняется над двумя отношениями R1 и R2, имеющими в общем случае разные структуры и некоторые одинаковые атрибуты. В результате операции образуется новое отношение, структура которого получается исключением из множества атрибутов отношения R1 множества атрибутов отношения R2. Результирующие строки не должны содержать дубликаты. Перечисленные операции в той или иной мере реализуются в средствах СУБД, обеспечивающих обработку реляционных таблиц. Язык SQL, реализованный в большинстве СУБД, содержит все перечисленные операции и полный набор операций над строками (включить, удалить, обновить), а также арифметические операции и операции сравнения. Язык SQL относится к непроцедурным языкам, в основу которых взята конструкция «предложение», а не конструкция «оператор», использующаяся в алгорит22 мических процедурных языках. Следует отметить, что в литературе по языку SQL чаще всего используется термин «оператор» или «инструкция». Операторы (предложения) SQL разбиты на три категории в соответствии с их функциями: - язык описания данных (ЯОД), который используется для описания схем отношений; - язык манипулирования данными (ЯМД), который используется для формирования запроса и поиска данных в таблицах и для редактирования данных; - операторы защиты и управления данными, которые используются для поддержания целостности базы данных; обычно эти операторы рассматриваются как часть ЯОД. Опишем на ЯОД реляционную схему предметной области Успеваемость студентов: CREATE TABLE S ( Ns (NUMERIC(3,0)), Fio (CHAR(20)), Ngr (NUMERIC(1,0)), Spec (CHAR(4)), Addr (CHAR(30)), Tel (CHAR(8))) CREATE TABLE P ( Np (NUMERIC(2,0)), Nazv(CHAR(20))) CREATE TABLE S_P ( Ns (NUMERIC(3,0)), Np (NUMERIC(2,0)), Ball (NUMERIC(1,0))) 5.4. Язык запросов SQL Язык SQL был разработан в 1970 году в компании IBM. SQL - это аббревиатура от английских слов Structured Query Language (Структурированный Язык Запросов). Язык SQL является подъязыком данных, который предназначен для взаимодействия с базой данных, то есть язык SQL - это язык запросов. Запрос - это операция над отношениями, результатом которой также является отношение. Система запросов - это формальная система для выражения запросов. Система запросов образует структуру языков запросов, то есть специализированных языков программирования, которые используются в системах баз данных для формулировки команд. Язык запросов должен иметь набор выразительных средств, чтобы отвечать на широкий круг запросов и формулировать их кратко. Реляционные языки запросов классифицируются следующим образом: • языки реляционной алгебры; • языки реляционного исчисления; • графические языки; • языки отображения. Реляционные языки запросов определяются как спецификационные языки, основными свойствами которых являются полнота, точность и понятность. Следует отметить, что «спецификация описывает, ЧТО надо получить, а не КАК получить», то есть спецификация не должна быть процедурной, динамической, а должна быть декларативной (непроцедурной), статической. 23 Языки реляционной алгебры относятся к процедурным языкам, остальные языки относятся к непроцедурным языкам (языкам высокого уровня). Теоретические основы первых двух классов языков были заложены трудами Кодда. Языки реляционной алгебры основываются на алгебре отношений, языки реляционного исчисления - на логике предикатов первого порядка. Графические языки предназначены для работы с дисплеем. Пользователь выражает свой запрос специальными терминами на экране дисплея. Примером графического языка является язык QBE (Query by Example), реализованный в большинстве реляционных СУБД. Язык SQL относится к языкам отображений. Основной операцией в языке SQL является отображение, синтаксически представляющее собой блок SELECT - FROM - WHERE (выбрать - из - где). Приведем синтаксис предложения SELECT: SELECT < список полей таблиц > FROM < список имен таблиц > [ WHERE < логическое выражение > ] Ключевые слова (ключевые параметры) SELECT, FROM являются обязательными, параметр WHERE не является обязательным. Будем обсуждать такие параметры по мере их необходимости. Рассмотрим описание запросов на языке SQL для конкретной предметной области Успеваемость студентов. Простая выборка Запрос 1. Получить полные сведения обо всех студентах. SELECT * FROM S Символ * означает, что в результирующем отношении будут присутствовать все атрибуты отношения S. Запрос 2. Получить все номера сданных предметов. SELECT UNIQUE Np FROM NS_P В SQL не предусматривается исключение одинаковых строк из результата, если пользователь не потребует этого, задав ключевой параметр UNIQUE. Отметим, что операция исключения одинаковых строк может требовать дополнительных затрат. Выборка по условию Запрос 3. Получить номера тех студентов, которые имеют по предмету с номером 2 оценку 5. SELECT Ns FROM S_P WHERE Np = 2 AND Ball = 5 Логическое выражение после параметра WHERE строится так же, как в алгоритмических языках. Выборка с упорядочением Запрос 4. Получить номера и фамилии студентов группы с номером, равным 1 (фамилии должны следовать в лексикографическом порядке). SELECT Ns, Fio FROM S WHERE Ngr = 1 ORDER BY Fio DESC 24 Параметр DESC предполагает упорядочение по возрастанию значений в столбце, ASC - упорядочение по убыванию значений в столбце. Выборка с использованием вложенного отображения Запрос 5. Получить список фамилий тех студентов, которые сдали пpедмет с номером 2. SELECT Fio FROM S WHERE Ns IS IN ( SELECT Ns FROM S_P WHERE Np = 2 ) Параметр IS IN предполагает проверку принадлежности множеству, полученному после выполнения внутреннего SELECT- FROM - WHERE. Параметр IS NOT IN интерпретируется как «не принадлежит множеству». Выборка с использованием нескольких уровней вложенности Запрос 6. Получить список фамилий тех студентов, которые сдали пpедмет с названием «Мат.анализ». SELECT Fio FROM S WHERE Ns IS IN ( SELECT Ns FROM S_P WHERE Np IS IN ( SELECT Np FROM P WHERE Nazv=' Мат.анализ')) Выборка с использованием вложенного отображения к одной и той же таблице Запрос 7. Получить номера тех студентов, которые сдали тот же предмет, что и студент с номером 13. SELECT UNIQUE Ns FROM S_P WHERE Np IS IN ( SELECT Np FROM S_P WHERE Ns = 13 ) Выборка с использованием синонима Запрос 8. Получить номера всех предметов, которые сданы несколькими студентами. SELECT UNIQUE Np FROM S_P SPr WHERE Np IS IN ( SELECT Np FROM S_P WHERE SPr.Ns <> Ns ) Выборка более чем из одной таблицы Запрос 9. Для каждого номера предмета получить фамилии студентов, которые его сдали. SELECT Np,Fio FROM S_P , S WHERE S_P.Ns = S.Ns Это предложение языка SQL аналогично операции соединения. Существенное различие заключается в том, что фактически соединения S_P и S не происходит, а значит, память на соединение не расходуется. Выборка, включающая сравнение множеств Запрос 10. Получить список фамилий тех студентов, которые сдали все предметы. SELECT Fio FROM S WHERE ( SELECT Np FROM S_P WHERE Ns = S.Ns ) ( SELECT Np FROM P ) Выборка, включающая GROUP BY, HAVING и SET Запрос 11. Получить номера тех студентов, которые сдали все предметы, что и студент с номером 13. SELECT Ns FROM S_P GROUP BY Ns HAVING SET (Np) CONTAINS (SELECT Np FROM S_P WHERE Ns = 13) Параметр CONTAINS означает «содержит». 25 Параметр GROUP BY разделяет рассматриваемую таблицу на такие группы, что внутри любой из этих групп все строки содержат одинаковые значения в указанном столбце. Затем действует фраза HAVING, являющаяся специальной формой фразы WHERE, но относящаяся не к отдельным строкам, а к группам: Предикат во фразе HAVING всегда ссылается на свойства групп и на основе этого предиката группы целиком либо выбираются, либо отбрасываются. Значением функции SET становится множество значений, содержащихся в определенном столбце (столбцах) внутри заданной группы. Операции редактирования Для включения новой строки используется предложение INSERT, например: INSERT INTO P : < 11, 'Информатика' > Для удаления строки используется предложение DELETE, например: DELETE S WHERE Ns = 13 После выполнения этого предложения из таблицы S будет удалена строка с номером студента, равным 13. После выполнения предложения DELETE P таблица P станет пустой. Для изменения значения в заданной строке используется предложение UPDATE, например: UPDATE S SET Ngr = 2 WHERE Ns = 13 После выполнения этого оператора у студента с номером 13 номер группы станет равным 2. Библиотечные функции В языке SQL существуют следующие библиотечные функции: COUNT- для получения общего количества строк отношения; SUM - для суммирования значений в столбце отношения; AVG - для получения среднего арифметического значения в столбце; МАХ - для получения максимального значения в столбце; MIN - для получения минимального значения в столбце. Запрос 12. Получить количество студентов, сдавших предмет с номером, равным 5. SELECT COUNT ( Ns ) FROMS P WHERE Np = 5 Запрос 13. Получить средний балл по предмету с номером 5. SELECT AVG ( Ball ) FROM S_P WHERE Np = 5 Запрос 14. Получить номера студентов, сдавших больше 5 предметов. SELECT Ns FROM S_P GROUP BY Ns HAVING COUNT ( Np ) > 5 5.4. Преимущества хранения данных в РБД Преимуществами хранения данных в реляционной базе данных являются следующие: - каждый элемент данных хранится только в одной таблице ( экономия места); - внесение изменений упрощается, уменьшается риск ошибки ( напри мер, в написании фамилий); - наличие связей между таблицами ускоряет обработку взаимосвязан ной информации; 26 - ошибочные записи ( с некорректными ссылками ) должны автомати чески исключаться. 27 6. Средства СУБД Техническим возможностям персональных компьютеров в настоящее время лучше всего соответствуют реляционные СУБД. Основными средствами СУБД являются: - средства задания (описания) структуры объектов базы данных; - средства конструирования экранных форм, предназначенных для ввода данных, просмотра и их обработки в диалоговом режиме; - средства создания запросов для выборки данных при заданных условиях, а также выполнения операций по их обработке; - средства создания отчетов для вывода на печать результатов обработки в удобном для пользователя виде; - языковые средства - макросы, встроенный алгоритмический язык, язык запросов и др., что позволяет реализовать нестандартные алгоритмы об работки данных; - средства создания приложений пользователя (генераторы приложений, средства создания меню и панелей управления приложениями), позволяющие объединить различные операции работы с базой данных в единый технологический процесс; - средства защиты и восстановление данных при аварийных ситуациях, аппаратных и программных сбоях, ошибках пользователя; - защита данных от несанкционированного доступа средствами разграничения доступа для различных пользователей; - возможность модификации структуры базы данных без повторной загрузки данных; - обеспечение независимости программ от данных, позволяющей сохранить программы при модификации структуры базы данных; - наличие языка запросов высокого уровня, который обеспечивает вывод информации по любому запросу и представлению ее в виде отчетных форм. СЛОВАРЬ ТЕРМИНОВ Администрирование базы данных - сопровождение базы данных в процессе разработки, эксплуатации и добавления приложений; включает также создание и необходимую реорганизацию базы данных, создание резервных копий базы данных, назначение пользователям паролей и санкций доступа к базе данных. Атрибут - информация, описывающая объект и служащая его идентификатором (поименованная характеристика объекта). В записи данных атрибут представлен типом элемента данных. База данных - совокупность данных, организованная по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования данными; не зависит от прикладных программ. Безопасность данных - защита данных от преднамеренного или непреднамеренного нарушения секретности, искажения или разрушения данных. Внешний ключ - одно или несколько полей в таблице, которые соответствуют первичному ключу другой таблицы. 28 Внешняя схема — представление данных с позиции прикладного программиста, логическая структура базы данных. Внутренняя схема — физическая структура базы данных; представление данных с позиции вычислительной системы, как они выглядят на запоминающем устройстве. Данные - информация, представленная в определенной форме, пригодной для последующего хранения и обработки. Домен — область определения значений одного столбца отношения. Запрос — операция над отношениями, результатом которой также является отношение. Инструкция SQL — предложение на языке структурированных запросов (SQL), представляющее собой запрос для выборки или обработки данных. Информация — сведения об окружающем мире и протекающих в нем процессах. Ключ — совокупность атрибутов, значения которых однозначно определяют кортеж в отношении. Концептуальная схема - высокоуровневое представление администратора базы данных и пользователя о данных, обычно в виде объектов и связей. Модель данных - представление о предметной области в виде данных и связей между ними. Независимость данных - возможность изменения структуры базы данных без изменения пользующихся ею прикладных программ. Объект - нечто, о чем хранится информация. Ограничения целостности — определяемые моделью данных или задаваемые схемой базы данных ограничения, обеспечивающие внутреннюю непротиворечивость хранимой информации. Отношение — конечное множество кортежей из допустимых значений атрибутов схемы отношения. Отношение ассоциируется с таблицей, имена атрибутов - с именами столбцов таблицы, кортежи - со строками таблицы. Отображение - реляционная операция языка SQL. Первичный ключ - один или несколько столбцов (атрибутов), которые однозначно идентифицируют каждую запись в таблице. Предметная область — часть реального мира, подлежащая изучению с целью организации управления и автоматизации. Реляционная база данных (РБД) — совокупность отношений конкретной предметной области. Предполагается, что отношения логически связаны между собой. Реляционная СУБД — СУБД, базирующаяся на реляционной модели данных. Реляционные операции — набор операций манипулирования данными, операндами которых являются отношения; результатом любой реляционной операции является также отношение. Связь — ассоциация между экземплярами примитивных или агрегированных объектов (записей) данных (например, 1 : 1, 1 : M, M : N). Система управления базами данных — комплекс программных и языковых средств, предназначенных для создания, ведения и использования баз данных. 29 Словарь данных — каталог всех типов элементов в базе данных, включающий для каждого типа его определение, формат, источник и применение. Широко распространены автоматические словари данных. Структура данных — способ объединения нескольких элементов данных в один. Структура хранения - описание способа организации физического хранения данных в системе: указатели, представление знаков, плавающая запятая, блокирование, метод доступа т.д. Схема данных — графическое или формальное описание логической структуры базы данных. Схема отношения — совокупность имен атрибутов, определяющих объект. Схема реляционной базы данных — совокупность схем отношений приложения. Тип данных — множество операций, характеризующих определенное множество значений. Транзакция — группа операций над данными, логически рассматриваемая как одна операция и сохраняющая целостность базы данных. Целостность базы данных — свойство базы данных, при выполнении которого база данных содержит полную и непротиворечивую информацию, необходимую и достаточную для корректного функционирования приложений; это свойство сохраняется при всех манипуляциях с данными. Целостность данных — система правил, используемых для поддержания связей между записями в связанных таблицах. Язык SQL — язык структурированных запросов для выборки, изменения и удаления данных из таблиц базы данных. 30 ПРЕДМЕТ И ЗАДАЧИ КОМПЬЮТЕРНОЙ ГРАФИКИ. Этапы развития компьютерной графики. Компьютерную (машинную) графику можно определить как науку о математическом моделировании геометрических форм и облика объектов и способах визуализации полученных моделей. Преимущества невербального графического представления информации: - наглядность (лучше один раз увидеть...), - высокая информационная насыщенность, - легкость восприятия для различных профессиональных, социальных, культурных, языковых групп людей. Графических образы часто сопровождаются словесной (в том числе числовой) информацией, поскольку во многих случаях графики недостаточно для получения точных количественных оценок Невербальное графическое общение возникло на заре человеческой цивилизации, едва ли не раньше чем речь. Возможно, что наскальные рисунки доисторических людей создавались не только для культовых целей и удовлетворения эстетических потребностей, но и являлись своеобразными аналогами современных чертежей, заключавшими в себе практический опыт человечества того времени. Развитие научных основ и техники создания графических образов постоянно стимулировалось потребностями архитектуры, промышленности, науки, военного дела, навигации. Стремление визуализировать информацию наблюдается практически во всех сферах деятельности человека. И с начала использования ЭВМ возникла проблема представления получаемых данных в виде изображения. На начальном этапе программными средствами формировались различные символьные изображения: диаграммы, графики, условные схемы, планы и т.п. Вывод такой информации осуществлялся непосредственно через алфавитно-цифровое печатающее устройство. Формирование компьютерной графики как самостоятельного направления относится к началу 60-х годов, когда Сазерлендом (МТИ - Массачусетский технологический институт) был создан первый специализированный пакет программного обеспечения машинной графики -интерактивная система эскизного рисования Scetchpad, принципы построения которой явились теоретической основой для программного обеспечения машинной графики. В 60-е годы были сформулированы принципы рисования отрезками, удаления невидимых линий, методы кусочного представления сложных поверхностей (Куне, МТИ), определены методы формирования теней, учета освещенности сюжета. Первые работы были в основном направлены на развитие векторной графики, т.е. рисования отрезками. Из первых работ этого направления наибольшее влияние на развитие векторной графики оказали алгоритмы Брезенхема растеризации векторных изображений. Мощным экономическим стимулом развития машинной графики в то время послужил диктуемый конкуренцией спрос ведущих американских машиностроительных (в первую очередь авто- и авиастроения) компаний на программно-аппаратные комплексы автоматизации конструкторских и технологических работ. В 1964 году General Motors предста31 вила свою DAC-I - систему автоматизированного проектирования, разработанную совместно с IBM. В следующем году был реализован проект "Chase" - первый прототип системы числового программного управления (ЧПУ) для фирмы Lockheed. К октябрю 1966 года даже Wall Street Journal уже публиковал статьи о машинной графике. В конце шестидесятых - начале семидесятых разработка систем компьютерной графики приобрела массовый характер и перешла на качественно новый уровень. Если ранее для выполнения каких-либо работ покупателям приходилось устанавливать уникальное оборудование и разрабатывать новое программное обеспечение, то с появлением разнообразных пакетов программ, облегчающих процесс создания изображений, чертежей и интерфейсов, ситуация существенно изменилась. За десятилетие системы "под ключ" стали настолько совершенны, что почти полностью изолировали пользователя от проблем, связанных с программным обеспечением. В 70-е годы значительное число теоретических и прикладных работ было направлено на развитие методов отображения пространственных форм и объектов. Это направление принято называть трехмерной компьютерной графикой или SDграфикой. Математическое моделирование трехмерных сюжетов требует учета трехмерности пространства предметов, расположения в нем источников освещения и наблюдателя. Потребностями трехмерной компьютерной графики обусловлено большое количество работ по методам аппроксимации и представления сложных поверхностей, отображению узоров из них, генерированию текстур, рельефа, моделированию условий освещения. Одновременно значительное внимание уделялось улучшению качества синтезированных изображений, повышению уровня их реалистичности; сглаживанию погрешностей, возникающих в результате аппроксимации геометрической формы реальных тел и пространственной дискретизации изображения. Методы трехмерной компьютерной графики позволяют визуализировать сложные функциональные зависимости, получить изображения проектируемых, еще не созданных объектов, оценить облик предмета из недоступной для наблюдения позиции и решить ряд других аналогичных задач. Развитие теоретических основ компьютерной графики тесно связано с развитием аппаратных средств. В конце семидесятых они значительно изменились. Память для дисплеев стала дешевле, появилась возможность создания растровых дисплеев, имеющих множество преимуществ: вывод больших массивов данных, устойчивое, немерцающее изображение, работа с цветом и недорогие мониторы. Правда, пришлось пожертвовать качеством изображения некоторых, особенно наклонных, линий из-за того, что память была все же не настолько дешевой и при выводе наблюдался лестничный эффект. Однако впервые стало возможным получение блестящей цветовой гаммы. Растровая технология в конце семидесятых стала явно доминирующей. Устройства ввода в ранних системах компьютерной графики ограничивались клавиатурой и световыми перьями. В 1970-х этот список расширился и пополнился мышью, трекболом, графическими планшетами, и дигитайзерами, а также сенсорными устройствами. Высокоскоростные электростатические графопостроители позволяли быстро получать качественные монохромные копии. Менее дорогие, многоперьевые крупноформатные электромеханические графопостроители формировали цветные копии. Ленточные регистраторы и струйные графопостроители так32 же стали использоваться для получения цветных изображений. В этот период разного рода организации стали предлагать стандарты, вырабатывая стратегию по учету требований, предъявляемых меняющимися технологиями и быстро растущим числом различных заказчиков. В 1979 году ANSI создал технический комитет для развития стандартов на графические интерфейсы прикладных программ и виртуальных устройств. Возможно, наиболее знаменательным событием в компьютерной графике стало создание в конце семидесятых персонального компьютера. В 1977 году Commodore выпустила свой PET (персональный электронный делопроизводитель), а компания Apple создала Арр1е-11. Графические и вычислительные возможности этих устройств, мягко говоря, оставляли желать лучшего. Однако ПК стимулировали процесс разработки периферийных устройств: недорогих графопостроителей, принтеров и графических планшетов. В 80-е годы сфера применения компьютерной графики существенно расширилась с появлением в 1984 году модели Apple Macintosh с их графическим интерфейсом пользователя. Первоначально областью применения ПК были не графические приложения, а работа с текстовыми процессорами и электронными таблицами, однако его возможности как графического устройства побуждали к разработке относительно недорогих программ как в области CAD/CAM, так и в более общих областях бизнеса и искусства. Персональные компьютеры стали базой для широкого использования методов машинной графики - в результате компьютерная графика стала инструментом не только инженеров-исследователей, но и специалистов многих других отраслей, непосредственно несвязанных ни с техникой, ни с программированием. В середине 80-х манипулятор "мышь" стал естественным графическим устройством ввода. Вследствие появления интереса к работе с трехмерными изображениями возникли соответствующие устройства ввода: приборы типа spaceball фирмы Spaceball Technologies, обладающий шестью степенями свободы; "Bird" фирмы Ascension Technology - сенсорное устройство позиционирования реагирующее на положение руки и движение пальца руки. Эти годы характеризовались существенным повышением производительности и снижением соотношения цена/производительность. Персональные компьютеры и рабочие станции стоимостью около 10 тысяч долл. теснят вычислительные системы более ранних выпусков и графические комплексы на специализированных терминалах. Высокопроизводительные ("high-end") рабочие станции стоимостью от 30 до 100 тысяч долл. приобрели возможности вывода фотореалистических изображений в реальном масштабе времени. В 1985 году ANSI и ISO одобрили первый графический стандарт GKS, который регламентировал состав базовых возможностей аппаратно-независимых программных приложений. В 1988 году был принят расширенный стандарт GKS-3D и стандарт PHIGS. Возникли важные промышленные стандарты: PostScript от Adobe, OpenGL от Silicon Graphics и X Window System от консорциума, координируемого МТИ. Вопреки постоянным прогнозам о приближающемся конце твердых копий, почти все технологии построения цветных твердых копий приобретают популярность, включая перьевые графопостроители, лазерные и струйные принтеры. В эти годы также получили развитие системы формирования объемных твердых копий. 33 Некоторые системы быстрого прототипирования "выращивали" трехмерные объекты в жидких полимерах, активизируемых путем ультрафиолетовых источников или спекания порошков под действием лазерных лучей либо путем послойного наращивания пластин. Многие компании, играющие сегодня ведущие роли в компьютерной графике, появились именно в это время: Silicon Graphics в 1981 году; Adobe, Autodesk и Sun Microsystems в 1982 году, Parametric Technologies в 1985 году. Увеличение памяти и скорости обработки информации в персональных ЭВМ, создание видеокомплексов с широким набором графических программ, возможность управления ими в диалоговом режиме способствуют дальнейшему расширению применения компьютерной графики. Одним из наиболее актуальных направлений в компьютерной графике является разработка принципов и методов формирования реалистичных изображений. Потребность в создании реалистичных изображений возникает в таких областях, как дизайн, машиностроительное и архитектурное проектирование, исследование физических процессов, медицина, реклама и т.п. В ряде применений реалистичность используется как средство повысить эмоциональное воздействие изображения, как, например, в рекламе, в других же отраслях — как средство оценки качества выбранных решений (в архитектурном планировании, дизайне и др.). Одно из направлений использования компьютерной графики в медицине - автоматизированное проектирование имплантантов, особенно для костей и суставов, позволяет минимизировать необходимость внесения изменений в течение операции, что сокращает время пребывания на операционном столе В системах формирования реалистичных изображений должна обеспечиваться передача всей совокупности изобразительных свойств: объемность, расположение предметов, полутона, цвет, текстура поверхности. Теоретические исследования последних лет в значительной мере были направлены на разработку методов и средств отображения всей совокупности характеристик синтезируемого изображении. В 1964 году в мире насчитывалось около сотни графических терминалов. Сейчас толъко в США используются более трех миллионов рабочих станций и десятки миллионов ПК, позволяющих получать высококачественные изображения. По оценке К. Маховера в 1994г компьютерная графика имела промышленную базу стоимостью около 36 млрд. долларов и обеспечивала работой около 300 тыс. специалистов. К настоящему моменту эти цифры, безусловно, выросли. Быстрое расширение функциональных возможностей современной вычислительной техники создало базу для развития multimedia-систем (включающих компоненту компьютерной графики), обеспечивающих отображение динамических (анимированных) сцен на уровне виртуальной реальности. Из таких систем можно отметить: системы графического моделирования для наглядного представления процессов в химии, медицине, астрономии и др.; системы имитации динамических ситуаций (например, тренажеры); системы получения двухмерных и трехмерных изображений для телевидения и кино. Первым полнометражным кинофильмом, в котором широко использовалась высококачественная фотореалистическая графика стал в 1993 "Парк Юрского периода" Спилберга. Именно в развитии систем фотореалистического изображения наиболее рельефно проявляются трудности и проблемы трех34 мерной компьютерной графики. Для них требуется не только высокая точность моделей, но и чрезвычайно высокая производительность вычислительных средств. 35 Растровые изображения. Разрешение. Обработка и хранение растровых изображений. Область применения, преимущества и недостатки растровой графики. В растровой графике изображение формируется из отдельных точек - пикселов (от picture element). Растровое изображение можно представить себе в виде листа клетчатой бумаги, каждая клеточка которой закрашена некоторым (возможно белым) цветом. Количество отображаемых пикселов на единицу длины называется разрешающей способностью или разрешением устройства. Часто измеряется в dpi dots per inch - количество точек на дюйм. Вертикальное и горизонтальное разрешение могут различаться. Разрешение большинства мониторов - 70-100 dpi. Разрешение бытовых струйных принтеров - порядка 1500dpi. Очевидно, что разрешение устройства зависит от размеров его пиксела, и одно и то же изображение на устройствах с различным разрешением будет выглядеть по-разному. Число битов, используемых компьютером для задания цвета одного пиксела называется глубиной цвета. Глубина цвета определяет в какое количество цветов (или градаций серого) можно раскрасить пиксел. 1 бит/пиксел - черно-белое изображение, 8 бит/пиксел - 256 цветов (градаций серого); 24 - более 16 миллионов цветов это достаточно для представления всех различимых человеческим глазом цветов, поэтому зтот режим называют естественными цветами (true color). Для задания дополнительных эффектов (например, прозрачности) пикселу могут быть сопоставлены дополнительные биты (а-канал). Более подробно о работе с цветом в компьютерной графике будет рассказано позднее. Представление растрового изображения в ЭВМ обычно состоит из адреса области памяти, в которой линейно хранится информация о цвете пикселов и значений глубины цвета, ширины и высоты изображения, необходимых для правильной интерпретации этой информации. Преимущества растровой графики: - Лучше всего подходит для представления образов реального мира, состоящего из мелких частиц, объединенных в тела сложной формы. Хорошее растровое изображение фотореалистично, то есть выглядит естественно. - Большинство устройств вывода являются растровыми, что облегчает вывод на них растровых изображений. Недостатки растровой графики: - Требуется большой объем памяти, независимо от содержания изображения (размер_изображения_в_битах = число_пикселов * глубина_цвета = разрешениеХ * разрешениеУ * размер_области_вывода_Х * размер_области_вывода_¥ * глубина_цвета). Отсюда необходимость компрессии/декомпрессии файлов с растровыми изображениями. - Ступенчатое изображение гладких линий (прямых, дуг, сплайнов). - Возможны искажения при поворотах и масштабировании. При увеличении растровых изображений обычно приходится решать задачу интерполяции для кор36 ректного заполнения появляющихся «разрывов» в изображении. Диапазон изменения значения коэффициента масштабирования при котором достигаются приемлемые результаты не очень велик. - Трудно выделить для обработки один из объектов изображения. Например, увеличить изображение человека на фотографии, не меняя фона - нетривиальная задача. Для сжатия файлов с растровыми изображениями часто используются алгоритмы группового кодирования (RLE - Run Length Encoding), LZW - уплотнение (Lempel, Ziv, Welch -фамилии авторов), метод JPEG (Joint Photographic Expert Group). Самый простой для реализации метод - RLE. При групповом кодировании последовательность одинаковых пикселов (байтов или слов) заменяется на один пиксел с указанием кратности его вхождения. Такой метод используется при хранении изображений в файловом формате PCX. Более эффективным является LZWуплотнение, применяемое, например в форматах TIFF и GIF. LZW-компрессия основана на построении словаря повторяющихся подпоследовательностей и замене их вхождений ссылками на соответствующие элементы словаря. В отличии от методов RLE и LZW, обеспечивающих компрессию без потерь информации об элементах изображения, метод JPEG допускает частичную потерю информации, не влияющую существенно на качество изображения, для достижения более высокой степени сжатия. Другим способом уменьшить размер файла с растровым изображением является использование таблицы цветов - палитры. В этом случае значение цвета пиксела заменяется его индексом в таблице цветов. Использование палитры наиболее эффективно, когда при большой цветовой глубине в изображении реально используется (и, следовательно, включается в палитру) сравнительно небольшое количество цветов. Палитра используется, например, в формате GIF. Для редактирования растровой графики различного назначения часто используют программу Adobe Photoshop, обеспечивающую большой набор различных полезных (и эффектных) преобразований растровых изображений и поддержку значительного количества форматов файлов. 2.2. Векторные изображения. Преимущества и недостатки векторной графики. Область применения. В векторной графике изображение задается списком математических описаний примитивов, поддерживаемых графическим устройством, например, дуг и ломаных для перьевого графопостроителя. Графические атрибуты (цвет, толщина, тип линии и др.) задаются для примитива в целом или сразу для группы последовательно отображаемых примитивов. Преимущества векторной графики: - Изображения и их отдельные фрагменты легко поворачиваются и масштабируются без потери качества. 37 - На изображении легко выбрать один примитив или группу примитивов для последующего редактирования. - Векторные изображения занимают сравнительно небольшой объем памяти (описание, например, дуги окружности на плоскости состоит из пяти чисел – центр, радиус, начальный и конечный угол). Благодаря компактности описаний, во многих популярных файловых форматах (например, DXF, IGES, HPGL, VRML) данные хранятся в неупакованном, текстовом виде, что делает возможным их просмотр и редактирование с помощью обычного текстового редактора. - Многие векторные форматы представления изображений позволяют не только хранить трехмерные описания примитивов, но и нагружать их дополнительными атрибутами, имеющими отношение к предметной области. Недостатки векторной графики: - Изображения выглядят слишком искусственно, поскольку в природе мало дуг и прямых. - При выводе на растровые устройства необходима растризация. Векторная графика широко используется для построения схем, диаграмм, чертежей в системах автоматизированного проектирования и технологической подготовки производства (AutoCAD, Кредо, ...), CASE - системах (Rational Rose, ERWin, BPWin,...), системах подготовки презентаций (MS PowerPoint, Lotus Freelance,...), офисных графических системах назначения (CorelDraw, MS Visio и др.). Многие системы векторной графики позволяют включать в векторные изображения растровые фрагменты. Библиографический список Основная литература 1. Макарова, Н.В. Информатика : учебник для вузов / Н.В.Макарова [и др.];Под ред.Н.В.Макаровой .— 3-е изд.,перераб. — М. : Финансы и статистика, 2007 .— 768с. : ил. — Библиогр.в конце гл. — ISBN 5-279-02202-0 /в пер./ : 253.81 .— ISBN 978-5-279-02202-1. 2. Степанов, А.Н. Информатика : учеб.пособие для вузов / А.Н.Степанов .— 5е изд. — М.[и др.] : Питер, 2007 .— 765с. : ил. — (Учебник для вузов) .— Библиогр.в конце кн. — ISBN 978-5-469-01348-8 /в пер./ : 250.52. 3. Острейковский, В. А. Информатика : учебник для вузов / В. А. Острейковский .— 5-е изд., стер. — М. : Высш. шк., 2009 .— 512 с. : ил .— Библиогр.: с. 508 .— ISBN 978-5-06-006134-5 (в пер.) . 38 4. Курносов, А.П. Информатика : учеб.пособие для вузов / А.П.Курносов [и др.];под ред.А.П.Курносова .— М. : КолосС, 2005 .— 272с. — (Учебники и учебные пособия для высших учебных заведений) .— Библиогр.в конце кн. — ISBN 5-95320279-2 /в пер./ : 149.60. 5. Советов, Б.Я. Информационные технологии : учебник для вузов / Б.Я.Советов,В.В.Цехановский .— 2-е изд.,стер. — М. : Высш.шк., 2005 .— 263с. : ил. — Библиогр.в конце кн. — ISBN 5-06-004275-8 /в пер./ : 128.74. Дополнительная литература 1. Князева, М.А.Тульский государственный университет Информатика : учеб.пособие. Ч.1 / М.А.Князева,М.А.Андриянова;ТулГУ .— Тула : Изд-во ТулГУ, 2006 .— 108с. — Библиогр.в конце кн. — ISBN 5-7679-0999-7 : 40.00. 2. Бройдо, В.Л. Вычислительные системы,сети и телекоммуникации : учебное пособие для вузов / В.Л.Бройдо .— 2-е изд. — М. : Питер, 2005 .— 703с. : ил. — (Учебник для вузов) .— ISBN 5-94723-634-6 /в пер./ : 130.68. 3. Землянский, А.А. Практикум по информатике : учеб.пособие для вузов / А.А.Землянский,Г.А.Кретова,Ю.Р.Стратонович,Е.А.Яшкова;под ред.А.А.Землянский .— М. : КолосС, 2004 .— 384с. — (Учебники и учебные пособия для высших учебных заведений) .— Библиогр.в конце кн. — ISBN 5-9532-00463 /в пер./ : 179.41. 4. Конев, Ф.Б. Информатика для инженеров : учеб.пособие для вузов / Ф.Б.Конев .— М. : Высш.шк., 2004 .— 272с. — ISBN 5-06-004871-3 : 101.16. 5. Микшина, В.С. Лабораторный практикум по информатике : Учеб.пособие для вузов / В.С.Микшина,Г.А.Еремеева,К.И.Бушмелева и др.;Под ред.В.А.Острейковского .— М. : Высш.шк., 2003 .— 376с. : ил. — Библиогр.в конце кн. — ISBN 5-06-004273-1 /в пер./ : 84.00. 39
«Информатика.TURBO PASCAL 7.0.База данных» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты

Тебе могут подойти лекции

Смотреть все 462 лекции
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot