Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы по информатике.doc
Скачиваний:
116
Добавлен:
20.09.2019
Размер:
1.29 Mб
Скачать

39. Состав и функции субд. Язык sql.

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

Ниже перечислены основные функции СУБД.

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

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

3. Управление данными - можно указать, кому разрешено знакомиться с данны­ми, корректировать их или добавлять новую информацию. Можно также опреде­лять правила коллективного доступа.

Входящие в состав современных СУБД средства совместно выполняют следую­щие функции:

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

первичный ввод, пополнение информации в базе данных;

удаление устаревшей информации из базы данных;

корректировку данных для поддержания их актуальности;

упорядочение {сортировку) данных по некоторым признакам;

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

подготовку и генерацию отчетов (средства подготовки отчетов позволяют соз­давать и распечатывать сводки по заданным формам на основе информации базы данных);

защиту информации и разграничение доступа пользователей к ней;

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

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

Основой СУБД являются 2 языка: язык манипулирования данными (ЯМД) и язык описания данных (ЯОД). С помощью ЯОД администратор БД и программисты описывают структуру и содержимое БД. А ЯМД является средством применяемым пользователями или прикладными программами для выполнения операций над данными: добавления, изменения, упорядочивания, поиска в соответствии с запросом.

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

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

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

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

Системные программисты обеспечивают работоспособность операционных систем, систем программирования и СУБД разрабатывают сервисные программы.

Требования к современным БД:

  1. адекватность БД предметной области

  2. интегрированность

  3. минимальная убыточность хранимых данных

  4. целостность БД

  5. независимость БД

  6. обеспечение защиты от несанкционированного доступа или случайного уничтожения БД

  7. гибкость и адаптивность структуры БД

  8. динамичность данных и способность к расширению

  9. возможность поиска по многим ключам

Рассмотрим в качестве примера языка манипулирования данными некоторые команды языка SQL (от английских слов Structured Query Language), ставшего классическим языком реляционных баз данных.

Простейшая операция выборки представляется командой SELECT - FROM -WHERE (выбрать - из - где):

select <список атрибутов> from <отношение> where <условие>.

Например, если необходимо из отношения «Успеваемость», имеющего схему:

Успеваемость (ФИО_студента, Дисциплина, Оценка, Дата, Преподаватель)

произвести выборку данных о том, какие оценки студент Иванов И. И. получил и по каким предметам, надо задать команду:

select Дисциплина, Оценка

from Успеваемость

where ФИО_студента = «Иванов И. И.».

Часть команды «where» не является обязательной. Например, можно получить список всех студентов из отношения «Успеваемость» с помощью следующей команды:

select unique ФИО_студента

from Успеваемость.

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

select *

from Успеваемость.

Условие, следующее за «where», может включать операторы сравнения =, <>, >, >=, <, <=, булевы операторы AND, OR, NOT, а также скобки для указания желае­мого порядка операций. Например, выбрать из таблицы «Успеваемость» фамилии студентов, сдавших на "5" экзамен по информатике, можно с помощью команды

select ФИО_студента

from Успеваемость

where Дисциплина = «Информатика» AND Оценка=5.

Выборка может быть и вложенной, когда необходимо использовать в условии результаты другой выборки. Например, если надо из отношения «Успеваемость» выбрать только студентов физико-математического факультета, пользуясь отноше­нием «Студент», то команда select может выглядеть так:

select ФИО_студента

from Успеваемость

where ФИО_студента is in

(select Фамилия

from Студент

where Ф_т = «физмат»).

Здесь «is in» является представлением оператора принадлежности элемента множе­ству. Можно также использовать операторы «is not in» («не принадлежит множест­ву»), «contains» - содержит, «does not contains» - не содержит. Смысл выражения «A contains В» (А содержит В) тот же, что и выражения «В is in А» (В принадлежит множеству А). Помимо слов select, from, where в команде выборки можно использо­вать и другие служебные слова, например:

order by <атрибут> asc - определяет сортировку результата выборки в

порядке возрастания (asc) или убывания (desc) зна­чения атрибута;

group by <атрибут1 > - группирует данные по значениям атрибута;

having set <атрибут2>

minus - операция вычитания множеств (данных выборок).

Помимо команды выборки select, язык SQL имеет команды, позволяющие обнов­лять данные (update), вставлять (insert) и удалять (delete). Например, если студенты переводятся со 2-го курса на третий, информацию можно обновить командой

update Студент

set Kypc=3

where Kypc=2.

Если атрибут «Семенов С. С.» сдал экзамен по информатике на «5» 15 января 1996 г. преподавателю Петрову П.П., то информация об этом может быть добавле­на в таблицу «Успеваемость» командой

insert inlo Успеваемость:

<«Семенов С.С», «Информатика», 5, 15/01/96, Петров П.П>.

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

Команда delete используется для удаления информации из таблицы. Например,

delete Успеваемость where Оценка=2

позволяет удалить информацию о студентах, получивших 2 (в случае их отчисления).

Существенно расширяют возможности языка библиотечные функции, такие как count (подсчет), sum (суммирование), avg (среднее), max и min.

Например, подсчитать число тсудентов в таблице «Студент»: select count (*) Студент

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

Основные функции СУБД

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

управление данными в оперативной памяти с использованием дискового кэша;

журнализация изменений, резервное копирование и восстановление базы данных после сбоев;

поддержка языков БД (язык определения данных, язык манипулирования данными).

Обычно современная СУБД содержит следующие компоненты:

ядро, которое отвечает за управление данными во внешней и оперативной памяти и журнализацию,

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

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

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

Состав языка SQL

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

Поэтому, в язык SQL в качестве составных частей входят:

язык манипулирования данными (Data Manipulation Language, DML)

язык определения данных (Data Definition Language, DDL)

язык управления данными (Data Control Language, DCL).

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

Язык манипулирования данными используется, как это следует из его названия, для манипулирования данными в таблицах баз данных. Он состоит из 4 основных команд: SELECT (выбрать)

INSERT (вставить)

UPDATE (обновить)

DELETE (удалить)

Язык определения данных используется для создания и изменения структуры базы данных и ее составных частей - таблиц, индексов, представлений (виртуальных таблиц), а также триггеров и сохраненных процедур. Основными его командами являются: CREATE DATABASE (создать базу данных)

CREATE TABLE (создать таблицу)

CREATE VIEW (создать виртуальную таблицу)

CREATE INDEX (создать индекс)

CREATE TRIGGER (создать триггер)

CREATE PROCEDURE (создать сохраненную процедуру)

ALTER DATABASE (модифицировать базу данных)

ALTER TABLE (модифицировать таблицу)

ALTER VIEW (модифицировать виртуальную таблицу)

ALTER INDEX (модифицировать индекс)

ALTER TRIGGER (модифицировать триггер)

ALTER PROCEDURE (модифицировать сохраненную процедуру)

DROP DATABASE (удалить базу данных)

DROP TABLE (удалить таблицу)

DROP VIEW (удалить виртуальную таблицу)

DROP INDEX (удалить индекс)

DROP TRIGGER (удалить триггер)

DROP PROCEDURE (удалить сохраненную процедуру)

Язык управления данными используется для управления правами доступа к данным и выполнением процедур в многопользовательской среде. Более точно его можно назвать "язык управления доступом". Он состоит из двух основных команд: GRANT (дать права)

REVOKE (забрать права)

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

интерактивный SQL

встроенный SQL.

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

Язык описания данных (DDL). Обеспечивает создание и удаление баз данных и таблиц, определение полей и индексов таблиц, а также выполнение других операций по изменению структуры базы данных.

Язык обработки данных (DML). Обеспечивает выполнение запросов, добавление, удаление и изменение записей, а также использование других функций управления содержимым базы данных.

Data Definition Language (DDL) (язык описания данных) - это семейство компьютерных языков, используемых в компьютерных программах для описания структуры баз данных.

На текущий момент наиболее популярным языком DDL является SQL, используемый для получения и манипулирования данными в РСУБД, и сочетающий в себе элемены DDL и DML.

Функции языков DDL определяются первым словом в предложении (часто называемом запросом), которое почти всегда является глаголом. В случае с SQL эти глаголы - "create" ("создать"), "alter" ("изменить"), "drop" ("удалить"). Это превращает природу языка в ряд обязательных утверждений (команд) к базе данных.

Data Manipulation Language (DML) (язык управления [манипулирования] данными) - это семейство компьютерных языков, используемых в компьютерных программах или пользователями баз данных для получения, вставки, удаления или изменения данных в базах данных.

На текущий момент наиболее популярным языком DML является SQL, используемый для получения и манипулирования данными в РСУБД. Другие формы DML использованы в IMS/DL1, базах данных CODASYL (таких как IDMS), и других.

Языки DML изначально использовались только компьютерными программами, но с появлением SQL стали также использоваться и людьми.

Функции языков DML определяются первым словом в предложении (часто называемом запросом), которое почти всегда является глаголом. В случае с SQL эти глаголы - "select" ("выбрать"), "insert" ("вставить"), "update" ("обновить"), и "delete" ("удалить"). Это превращает природу языка в ряд обязательных утверждений (команд) к базе данных.

Языки DML могут существенно различаться у различных производителей СУБД. Существует стандарт SQL, установленный ANSI, но производители СУБД часто предлагают свои собственные "расширения" языка.

Языки DML разделяются в основном на два типа:

Procedural DMLs - описывают действия над данными.

Declarative DMLs - описывают сами данные.

41. Решение уравнений с одной переменной. Итерационные методы.

Любые Ч.М. характеризуются погрешностью, устойчивостью и сходимостью.

Погрешность- ошибка.

Имеются следующие источники погрешности:

  1. погрешность математической модели;

  2. численный метод, как правило, имеет погрешность;

  3. погрешность исходных данных;

  4. погрешность вычислений.

Устойчивость.

Если малые изменения исходных данных вызывает малое изменения решения, тогда говорят метод устойчив.

Сходимость

Многие численные методы имеют итерационную структуру, т.е. решение получается в виде ряда вариантов решения

Если lim -точное решение говорит, что метод сходится.

Метод решения нелинейных уравнений вида .

Уравнения такого вида решаются численно. Как правило эти методы итерационные.

  1. Метод деления отрезка пополам.

Требуется решить все уравнения вида (1)

В ыбирается отрезок[a,b] на концах которого функция имеет разные знаки.

[a,b]=>

-отрезок делим пополам.

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

(2) где - точность малое положение, число >0

или

Пример: [-1;2]

2.Метод Ньютона (м. касательных).

Выбирается начальное решение x0

Н ачальное решение выбираются из условия

;

В точке пересечения касательной с точкой

Формула Ньютона записывается в виде:

вычисление проводится до выполнения условия (2)

Пример:

3.Метод простейших итераций (м. Якоби).

Заданные уравнения преобразуются к виду .

Если тогда новое решение можно получить так:

=0,1,2,3,…

Для преобразования уравнения предлагается следующая схема:

N подбирается из условия

Целесообразно за N принимать , тогда метод простой итерации почти совпадает с формулами Ньютона.

Пример:

42. Решение СЛУ: точные методы, итерационные методы.

Методы решения системы линейных алгебраических уравнений (СЛАУ).

Методы делятся на две группы:

Прямые

Итерационные

м. Гаусса

м. Краммера

м. прогонки

м. простой итерации (м. Якоби)

м. Зейделя

Метод прогонки.

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

При этом решение дифференциального уравнения сводится к решению СЛАУ ленточного вида:

числа

ширина

Ширина ленты зависит от размерности задачи и от степени порядка Д.У. При решении Д.У. 2-ого порядка возникает СЛАУ 3-х диагонального вида:

a

b x =

c

0

d

Метод прогонки является частным случаем м. Гаусса.

Необходимо избавиться от диагонали :

всегда!

Из 1 уравнения подставим во 2-е уравнение:

;

;

и т.д.

(

1)

Коэффициенты называются прогоночными. Вычисление называется прямым ходом прогонки.

Неизвестные вычисляются в обратном порядке, т.к. имеем (см. формулу (1)).

П

оэтому

(2) с шагом (-1).

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

Методы итерации.

Рассмотрим СЛАУ (3)

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

Достаточным условием сходимости методов Якоби и Зейделя являются:

тогда за начатое решение можно брать нули

Разрешим систему (3) относительно главных диагоналей:

(4)

формула (4) – формула Якоби (метод простой итерации)

Если известны формула (4) позволяет новое решение системы

Пример:

В

ычисление по формуле (4) прекращаются после выполнения условий установки.

(5) или

Метод Зейделя.

В отличие от метода простой итерации вновь найденные используются немедленно, тогда алгоритм (4) примет вид:

(6)

Решим следующий пример с помощью алгоритма (6)

43. Численная интерполяция. Алгебраический многочлен. Форма Лагран-жа и Ньютона. Метод наилучшего приближения. Дискретный вариант среднеквадратических приближений.

Аппроксимацией называется замена сложных математических объектов простыми.

Н-р, кривую можно заменить (аппроксимировать) ломаной линией.

Частной задачей аппроксимацией является интерполяция.

Под интерполяцией будем принимать замену табличной зависимости через функциональную зависимость.

Пусть в виде таблицы задана зависимость между величинами x,y.

...

...

или

Требуется построить функциональную зависимость. Для решения существует 2 подхода аппроксимации.

1-й подход 2-й подход

1

-й подход
. Кривая проходит через все заданные точки. Такую зависимость дают интерполяционные полиномы. Н-р. Лагранжа и Ньютона.

2-й подход. Кривая не обязана проходить через все заданные точки, как правило, используется метод наим. квадратов.

Интерполяционный полином Лагранжа.

Задана табличная зависимость

Полином Лагранжа имеет вид:

должны быть такие что

Лагранж предложил следующий вид для этой функции:

Интерполяционный полином Ньютона.

Рассмотрим табличную зависимость:

x

x1

x2

...

xn

y

y1

y2

...

yn

Полином ищется в виде:

(1)

- неизвестные коэффициенты, они определяются условий прохождения кривой через заданные точки.

1)

2)

Для записи коэффициентов удобно использовать понятие разности:

- раз. разн. 1-ого пор.

р.р. 2-го пор.

3)

и т.д.

Найденные коэффициенты подставляются в ряд (1), тогда получим:

и т.д.

Вычисления удобно ввести в табличной форме:

Коэффициенты полинома Ньютона на главной диагонали таблицы.

Метод наименьших квадратов.

Пусть задана табличная зависимость между величинами и /

Требуется построить функциональную зависимость. Метод состоит из 2-х этапов:

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

В общем случае функцию можно искать в виде

Количество точек в таблице больше чем количество неизвестных коэффициентов в таблице

- известные, заранее заданные простейшие функции.

- неизвестный коэффициент.

Метод наименьших квадратов принято складывать квадратов отклонений.

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

Условие экстремума данной функции записываются так:

(1)

Система (1) есть СЛАУ относительно коэффициентов

45. Численные методы решения дифференциальных уравнений. Числен­ные методы решения задачи Коши для обыкновенных дифференци­альных уравнений

- производная

если шаг малая конечная величина, тогда -конечно-разностная формула или соотношение.

Для численного дифференциала существует 2 подхода:

1) конечно-разностные формулы

2) применение интерполяционных полиномов.

1. Рассмотрим конечно-разностный подход.

Вспомним формулы разложения Тейлора

В

ведем обозначение для упрощения записи:

(1)

В правой части (1) оставим 2 члена:

Р

азделим эти уравнения относительно производных:

(2) правая формула для первой производной.

(3) левая формула для первой производной.

В разложении (1) оставим 3 члена.

-

(4) центральная формула для 1-й производной.

Разложение (1) оставим 4 члена и сложим формулы для формулы.

(5) формула для второй производной.

  1. Дифференцирование с помощью интерполяционных полиномов.

Пусть известны значения функции в некоторых узловых точках (xi,yi). По нескольким точкам строится интерполяционный полином.

Н-р, полином Лагранжа , тогда:

Задачи Коши для дифференциального уравнения 1-ого порядка.

Требуется решить уравнение (1) , где

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

Метод Эйлера

Р

азложим функцию в ряд Тейлора

Формула Эйлера

Модифицированный метод Эйлера.

В разложении Тейлора оставим 3 члена.

отсюда

получим модифицированную формулу Тейлора

-эта формула неявная, не

готовая к применению, т.к. справа имеется .

Эйлер предложил вычислить по формуле (2), тогда расчетная формула принимает вид:

(3)

А лгоритм блок схемы изменится незначительно, а именно отмеченный блок звездочка (*) заменится на:

Метод Рунге-Кутты.

Е

сли в раз-ии Тейлора оставить 4,5 и т.д. членов можно получить более сложные и более точные формулы, все они называются формулами Рунге-Кутты. На практике применяется формула Рунге-Кутты 4-ого порядка, она имеет следующий вид:

Алгоритм метода похож на алгоритм метода Эйлера, в блок схеме (*) заменяется на:

Полученные формулы (2)-(4) могут быть использованы и для системы Д.У., покажем это на примере системы из 2-х уравнений:

имеются 2 начальных условий

Формула Эйлера (2) принимает вид:

Известно, что можно понизить порядок Д.У., для этого можно применить метод введения новой неизвестной.

Н

-р, Пусть задано Д.У. 2-го порядка: введем новую неизвестную , тогда , при этом исходное уравнение разбивается в систему 2-х уравнений: для такой системы формула Эйлера записывается так:

Метод Адамса.

проинтегрируем данное уравнение на интервале

(5)

Если в нескольких точках известны мы можем построить интерполяционные полиномы. В методах Адамса подынтегральная функция заменяется интерполяционным полиномом, тут возможны 2 варианта:

1) полином строится по известным формулам, результаты получаются явные формулы.

2) при построении полинома используются искомые значения , результаты получаются неявные формулы.

Попробуем получить формулу Адамса по 2-х шаговой схеме:

Пусть

п

одставим в формулу (5) двухшаговая

явная ф-ла

Адамса

Е

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

Адамса,

двухшаговый

метод.

Он совпадает с модифицированным методом Эйлера.