Автор работы: Пользователь скрыл имя, 09 Января 2011 в 15:59, шпаргалка
Работа содержит ответы на вопросы по дисциплине "Информационные системы в экономике".
Таким образом, на сегодняшний день разработчик не связан рамками какого-либо конкретного пакета, а в зависимости от поставленной задачи может использовать самые разные приложения. Поэтому, более важным представляется общее направление развития СУБД и других средств разработки приложений в настоящее время.
(Обзор современных реляционных СУБД)
Многие направления обработки данных нуждаются в средствах управления базами данных. Независимо от способа выбора, 9 из 10 выбранных реляционных СУБД является продуктом одной из шести фирм (дабы не обижать кого-то в алфавитном порядке) IBM, INFORMIX, INPRISE, MICROSOFT, ORACLE, SYBASE. Мы не собираемся здесь анализировать причины выбора кем-то продукта той, а не иной фирмы. Мы не проводили сравнений этих продуктов (дело это очень дорогое, так как требует одинаково хорошее и глубокое знание продуктов), не ориентировались мы и на данные независимых исследователей. Не желая кого-либо обидеть, тем не менее, каждая новая версия сопровождается статьей, где она сравнивается с продуктом конкурирующей фирмы, и где выпячивается лучшие ее стороны. Маркетинг есть маркетинг. Ничего с этим не поделаешь.
По результатам за 1998 год распространенность СУБД на мировом рынке выстраивает рейтинг в следующем порядке: DB2, Oracle, MS SQL, Sybase SQL, Informix. Однако такой порядок больше говорит об эффективности маркетинговой политике, нежели о качественных характеристиках тех или иных продуктов. Выбор по рейтингу не оптимален, но еще хуже, когда он осуществляется по совету знакомых («нет … в своем отечестве») или вообще директивно (по «политическим» мотивам). Мы рекомендуем учитывать, в первую очередь, стоимость владения и сопровождения СУБД в российских условия, которая однозначно связана на количеством и качеством специалистов на рынке труда. Этот критерий, ничем не хуже рейтинга продаж или рекламных сравнительных статей.
Мы ничего не упоминаем здесь о так называемых «настольных» СУБД. Эти файловые сервера уже достаточно показали все свои минусы при корпоративной работе с данными начиная от малых до больших предприятий. Время их прошло. Многочисленные реализации по миграции данных показывали всегда одно и то же – дублирование и противоречивость данных, отсутствие родительских записей и т.п.
Основные операторы SQL. Синтаксис и примеры использования оператора SELECT.
Основу языка SQL составляют операторы, условно разбитые не несколько групп по выполняемым функциям.
Можно выделить следующие группы операторов (перечислены не все операторы SQL):
Операторы DDL (Data Definition Language) - операторы определения объектов базы данных
Операторы DML (Data Manipulation Language) - операторы манипулирования данными
Операторы защиты и управления данными
Кроме того, есть группы операторов установки параметров сеанса, получения информации о базе данных, операторы статического SQL, операторы динамического SQL.
Наиболее
важными для пользователя являются
операторы манипулирования
Примеры использования операторов манипулирования данными
INSERT - вставка строк в таблицу
Пример 1. Вставка одной строки в таблицу:
INSERT INTO
P (PNUM, PNAME)
VALUES (4, "Иванов");
UPDATE - обновление строк в таблице
Пример 3. Обновление нескольких строк в таблице:
UPDATE P
SET PNAME = "Пушников"
WHERE P.PNUM = 1;
DELETE - удаление строк в таблице
Пример 4. Удаление нескольких строк в таблице:
DELETE FROM P
WHERE P.PNUM = 1;
Примеры использования оператора SELECT
Оператор SELECT является фактически самым важным для пользователя и самым сложным оператором SQL. Он предназначен для выборки данных из таблиц, т.е. он, собственно, и реализует одно их основных назначение базы данных - предоставлять информацию пользователю.
Оператор SELECT всегда выполняется над некоторыми таблицами, входящими в базу данных.
Замечание. На самом деле в базах данных могут быть не только постоянно хранимые таблицы, а также временные таблицы и так называемые представления. Представления - это просто хранящиеся в базе данные SELECT-выражения. С точки зрения пользователей представления - это таблица, которая не хранится постоянно в базе данных, а "возникает" в момент обращения к ней. С точки зрения оператора SELECT и постоянно хранимые таблицы, и временные таблицы и представления выглядят совершенно одинаково. Конечно, при реальном выполнении оператора SELECT системой учитываются различия между хранимыми таблицами и представлениями, но эти различия скрыты от пользователя.
Результатом выполнения оператора SELECT всегда является таблица. Таким образом, по результатам действий оператор SELECT похож на операторы реляционной алгебры. Любой оператор реляционной алгебры может быть выражен подходящим образом сформулированным оператором SELECT. Сложность оператора SELECT определяется тем, что он содержит в себе все возможности реляционной алгебры, а также дополнительные возможности, которых в реляционной алгебре нет.
Порядок выполнения оператора SELECT
Для того чтобы понять, как получается результат выполнения оператора SELECT, рассмотрим концептуальную схему его выполнения. Эта схема является именно концептуальной, т.к. гарантируется, что результат будет таким, как если бы он выполнялся шаг за шагом в соответствии с этой схемой. На самом деле, реально результат получается более изощренными алгоритмами, которыми "владеет" конкретная СУБД.
Стадия 1. Выполнение одиночного оператора SELECT
Если в операторе присутствуют ключевые слова UNION, EXCEPT и INTERSECT, то запрос разбивается на несколько независимых запросов, каждый из которых выполняется отдельно:
Шаг 1 (FROM). Вычисляется прямое декартовое произведение всех таблиц, указанных в обязательном разделе FROM. В результате шага 1 получаем таблицу A.
Шаг 2 (WHERE). Если в операторе SELECT присутствует раздел WHERE, то сканируется таблица A, полученная при выполнении шага 1. При этом для каждой строки из таблицы A вычисляется условное выражение, приведенное в разделе WHERE. Только те строки, для которых условное выражение возвращает значение TRUE, включаются в результат. Если раздел WHERE опущен, то сразу переходим к шагу 3. Если в условном выражении участвуют вложенные подзапросы, то они вычисляются в соответствии с данной концептуальной схемой. В результате шага 2 получаем таблицу B.
Шаг 3 (GROUP BY). Если в операторе SELECT присутствует раздел GROUP BY, то строки таблицы B, полученной на втором шаге, группируются в соответствии со списком группировки, приведенным в разделе GROUP BY. Если раздел GROUP BY опущен, то сразу переходим к шагу 4. В результате шага 3 получаем таблицу С.
Шаг 4 (HAVING). Если в операторе SELECT присутствует раздел HAVING, то группы, не удовлетворяющие условному выражению, приведенному в разделе HAVING, исключаются. Если раздел HAVING опущен, то сразу переходим к шагу 5. В результате шага 4 получаем таблицу D.
Шаг 5 (SELECT). Каждая группа, полученная на шаге 4, генерирует одну строку результата следующим образом. Вычисляются все скалярные выражения, указанные в разделе SELECT. По правилам использования раздела GROUP BY, такие скалярные выражения должны быть одинаковыми для всех строк внутри каждой группы. Для каждой группы вычисляются значения агрегатных функций, приведенных в разделе SELECT. Если раздел GROUP BY отсутствовал, но в разделе SELECT есть агрегатные функции, то считается, что имеется всего одна группа. Если нет ни раздела GROUP BY, ни агрегатных функций, то считается, что имеется столько групп, сколько строк отобрано к данному моменту. В результате шага 5 получаем таблицу E, содержащую столько колонок, сколько элементов приведено в разделе SELECT и столько строк, сколько отобрано групп.
Стадия 2. Выполнение операций UNION, EXCEPT, INTERSECT
Если в операторе SELECT присутствовали ключевые слова UNION, EXCEPT и INTERSECT, то таблицы, полученные в результате выполнения 1-й стадии, объединяются, вычитаются или пересекаются.
Стадия 3. Упорядочение результата
Если в операторе SELECT присутствует раздел ORDER BY, то строки полученной на предыдущих шагах таблицы упорядочиваются в соответствии со списком упорядочения, приведенном в разделе ORDER BY.
Реляционная полнота SQL
Язык SQL является реляционно-полным. Это означает, что любой оператор реляционной алгебры может быть выражен подходящим оператором SQL.
Для того, чтобы показать, что язык SQL является реляционно-полным, нужно показать, что любой реляционный оператор может быть выражен средствами SQL. На самом деле достаточно показать, что средствами SQL можно выразить любой из примитивных реляционных операторов.
Реляционная алгебра:
Оператор SQL:
SELECT A.Поле1, A.Поле2, …, B.Поле1, B.Поле2, …
FROM A, B;
или
SELECT A.Поле1, A.Поле2, …, B.Поле1, B.Поле2, …
FROM A CROSS JOIN B;
Реляционная алгебра:
Оператор SQL:
SELECT DISTINCT X, Y, …, Z
FROM A;
Реляционная алгебра: ,
Оператор SQL:
SELECT *
FROM A
WHERE c;
Реляционная алгебра:
Оператор SQL:
SELECT *
FROM A
UNION
SELECT *
FROM B;
Реляционная алгебра:
Оператор SQL:
SELECT *
FROM A
Информация о работе Шпаргалка по "Информационным системам в экономике"