Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ИОСУ часть 2 _SQL.doc
Скачиваний:
19
Добавлен:
10.11.2019
Размер:
3.88 Mб
Скачать

СОДЕРЖАНИЕ

Раздел 1 sql

  1. СОДЕРЖАНИЕ 1

  2. sql 2

  3. 1 ОСНОВНЫЕ СВЕДЕНИЯ О СУБД Oracle 3

  4. 2. Общие сведения о SQL 6

  5. 3. Основные правила написания SQL-операторов 9

  6. 4. Инструкции DML 13

  7. 5. ИНСТРУКЦИЯ SELECT 14

  8. 6. Предложения SELECT и FROM 17

  9. 7. Отбор строк (предложение WHERE) 20

  10. 8. Многотабличные запросы 22

  11. 9. Многотабличные запросы на выборку в Oracle 25

  12. 10. ПРЕДЛОЖЕНИЯ GROUP BY и HAVING 28

  13. 11. СТАТИСТИЧЕСКИЕ ФУНКЦИИ 30

  14. 12. ПОДЧИНЕННЫЕ ЗАПРОСЫ (ПОДЗАПРОСЫ) 32

  15. 13. ДОБАВЛЕНИЕ ДАННЫХ (инструкция INSERT) 38

  16. 14. УДАЛЕНИЕ ДАННЫХ (инструкция delete) 40

  17. 15. ОБНОВЛЕНИЕ ДАННЫХ (инструкция UPDATE) 41

  18. 16. Инструкции DDL 43

  19. 17. стандартные Типы данных SQL 45

  20. 18. Создание таблиц (инструкция CREATE TABLE) 47

  21. 19. Удаление таблицы (инструкция DROP TABLE) 51

  22. 20. Изменение определения таблицы (инструкция ALTER TABLE) 51

  23. 21. УСЛОВИЯ ЦЕЛОСТНОСТИ ДАННЫХ 54

  24. Рисунок Ссылочный цикл 58

  25. 22. СОЗДАНИЕ ПРЕДСТАВЛЕНИЙ 59

  26. 23. ПСЕВДОНИМЫ ТАБЛИЦ (ИНСТРУКЦИИ CREATE / DROP SYNONYM) 64

  27. 24. ИНДЕКСЫ (ИНСТРУКЦИИ CREATE/DROP INDEX) 65

  28. 25. Последовательности (инструкция CREATE/DROP SEQUENCE) 66

  29. 26. ТРАНЗАКЦИИ 70

  30. 27. Журнал транзакций. проблемы обработки параллельных транзакций 73

  31. 28. Блокировки транзакций 80

  32. 29. Понятие транзакции и виды блокировок Oracle 85

  33. 30. КОНЦЕПЦИЯ многоверсионной модели согласованности по чтению 86

  34. 31. Управление транзакциями в Oracle 89

  35. 32. ПРИНЦИПЫ ЗАЩИТЫ ДАННЫХ в стандартном SQL (без редакции) 91

  36. 33. Разрешение и запрещение ролей 94

  37. Рисунок Отмена привилегий, предоставленных двумя пользователями 97

  38. Рисунок Отмена привилегий, предоставленных в другой последовательности 98

  39. 34. Способы обеспечения безопасности в Oracle 98

Раздел 1

sql

1 Основные сведения о субд Oracle

История развития. Корпорация Oracle была основана в 1977 году, как компания, специализирующаяся на создании реляционных СУБД. Сначала компания носила название Software Development Laboratories, а в 1978 году была переименована в Relational Software, Inc.

Сегодня Oracle поставляет на мировой рынок огромное количество продуктов, услуг и решений, ее штат насчитывает более 43 тыс. человек, и доход этой компании, превысивший в 2000 году 10 млрд. долл., определяется не только продажами СУБД. На сегодняшний день это вторая по величине доходов компания, специализирующаяся на производстве программного обеспечения. Коротко проследим историю развития:

1979 г.  выпущена первая официальная версия СУБД Oracle - V2.

1980 г. - выпущена версия Oracle 2 для операционной системы VAX/VMS.

1982 г. - выпущена версия Oracle 3, которая стала первой СУБД, поддерживающей обработку транзакций и способной выполняться на разных платформах, в том числе на мэйнфреймах и мини-ЭВМ.

1983 г. - Relational Software, Inc. переименована в Oracle Corporation.

1984 г. - выпущена и перенесена на несколько различных платформ версия Oracle 4.

1986 г. - выпущена версия Oracle 5, поддерживающая возможности создания приложений в архитектуре «клиент-сервер», распределенную обработку данных, кластеры VAX.

1988 г. - выпущена версия Oracle 6, а чуть позже объявлено, что Oracle 6.2 будет поддерживать симметричные кластеры с применением Oracle ParALLel Server.

1989 г. - Oracle реализовала поддержку OLTP, продукты фирмы стали доступны в 86 странах мира.

1992 г. - выпущена версия Oracle 7 для Unix. Эта СУБД поддерживала распределенные запросы, удаленное администрирование, осуществляла поддержку различных сетевых протоколов.

1994 г. - выпущена версия Oracle 7 для IBM PC (до этого времени компания Oracle не рассматривала данную платформу как серверную, ограничиваясь лишь созданием для нее клиентских частей своих СУБД).

1997 г. - выпущена версия Oracle 8, основными особенностями которой стали более высокая надежность по сравнению с предыдущей версией, а также поддержка большего числа пользователей и больших объемов данных. Выпущены версии Oracle Designer/2000 2.1 и Oracle Developer/2000, которые существенно облегчили создание приложений, работающих с базами данных, а также Oracle Applications for theWeb.

1999 г. - выпущена версия Oracle8i (Oracle 8.1), которая во многом была основана на применении Java: виртуальная Java-машина находится в самой СУБД, на этом же языке написаны клиентские утилиты, инсталлятор, средства администрирования. В конце того же года выпущена вторая версия Oracle 8i (Oracle 8.1.6), поддерживающая XML и содержащая некоторые новшества, связанные с созданием хранилищ данных.

2000 г. - выпущена третья версия Oracle8i (Oracle 8.1.7), содержащая Java Virtual Machine Accelerator, а также Internet File System.

Июнь 2001 г. - выпущена Oracle9i, которая отличается новыми средствами для обеспечения масштабируемости (Oracle9i Real Application Clusters), упрощения администрирования (в частности, для автоматизации конфигурирования серверов, управления ресурсами используемых компьютеров, мониторинга загрузки и производительности), обеспечения безопасности данных, восстановления данных после сбоев (в том числе из-за ошибок персонала), новыми средствами интеграции приложений. Кроме того, в составе СУБД имеется OLAP-сервер (ранее серверные OLAP-средства Oracle, такие как Oracle Express, поставлялись в виде отдельных продуктов).

2004 г. - выпущена версия Oracle10g Release 1 (10.1.0); «g» обозначает «grid» («сеть»), символизируя поддержку распределенных вычислений (grid-вычислений).

2005 г. - выпущена версия Oracle10g Release 2 (10.2.0.1).

2007 г. - выпущена версия Oracle11g Release 1 (11.1.0.6).

2009 г. - выпущена версия Oracle 1g Release 2 (11.2.0.1).

Основные характеристики продуктов Oracle. К основным характеристикам относятся следующие:

1. Поддержка различных платформ. Подход Oracle к поддержке различных операционных систем радикально отличается от подхода Microsoft - СУБД этой фирмы существуют для огромного количества платформ. Хотя поддержка большого количества платформ (а не нескольких наиболее прибыльных, как это характерно для других производителей СУБД) требует немалых вложений, переход к широкому применению Java, который сейчас происходит в Oracle, позволяет существенно сократить затраты на разработку и поддержку продуктов.

2. Настольные и однопользовательские версии. Oracle многое делает для поддержки настольных версий своих СУБД или применения их в указанном режиме.

Среди продуктов Oracle также имеются две СУБД, позиционируемые в качестве настольных. Продукт Personal Oracle, известный уже много лет, представляет собой однопользовательскую, но полнофункциональную версию Oracle, требующую некоторых навыков администрирования при ее применении. Вторая настольная СУБД этой компании, Oracle Lite, может применяться в качестве однопользовательской СУБД на обычных рабочих станциях, но в действительности она предназначена для применения в мобильных устройствах. В отличие от других СУБД этот продукт поддерживает только язык Java, но не поддерживает PL/SQL (язык, на котором создается серверный код в других СУБД Oracle).

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

Цена на продукты Oracle обычно намного превышает цены на аналогичные продукты Microsoft.

4. Инструменты и утилиты. Административные утилиты и другие инструменты для ранних версий Oracle обычно производились независимыми компаниями (выпускались как дорогие продукты, так и бесплатные), а основные усилия самой корпорации Oracle были сосредоточены на разработке самой СУБД. Затем ситуация существенно изменилась, и в настоящее время Oracle поставляет на рынок немалое количество разнообразных инструментов, среди которых помимо средств администрирования имеются средства разработки приложений, проектирования данных, моделирования бизнес-процессов, серверы приложений, корпоративный портал.

5. Производительность. Тесты не могут дать однозначного ответа на вопрос, какая из СУБД будет производительнее при решении конкретной задачи: в одних случаях производительность СУБД Oracle превосходит производительность SQL Server, а в других наоборот. Реально проверить это можно только с помощью тестирования, основанного на запросах, типичных именно для конкретной задачи.

Также к основным характеристикам можно отнести и новые возможности, такие как:

6. Поддержка Internet. В состав серверной части этой СУБД входит виртуальная Java-машина, в дополнение к имевшимся ранее средствам выполнения кода на языках SQL и PL/SQL, создан Oracle Portal - инструмент для создания корпоративных решений и интеграции корпоративных приложений на базе Web-технологий; созданы средства поддержки мультимедиа-контента в базе данных Oracle - Oracle8i interMedia, которые можно с успехом применять как в обычных приложениях, так и в Internet-приложениях.

В Oracle8i впервые появилась Internet File System (iFS) - Java-приложение, выполняющееся внутри виртуальной Java-машины Oracle8i и позволяющее пользователям обращаться с базой данных как с сетевым диском. Вследствие этого в Oracle8i можно теперь хранить данные практически любых типов. В последствии iFS был переименован в Oracle Content Management SDK.

В Oracle8i Release 2 (8.1.6) появилась поддержка XML как средства интеграции данных и реализации транзакций в приложениях business-to-business (B2B).

В Oracle9i присутствуют средства интеграции SQL, XML и Java, а также средства интеграции приложений Oracle9i Dynamic Services, представляющие собой инструменты и утилиты для создания сервисов на базе уже существующих приложений.

7. Администрирование. Oracle Enterprise Manager в последних версиях Oracle8i содержит разделяемый репозитарий, который позволяет координировать доступ пользователей к данным, хранящимся в различных серверах Oracle, с помощью Oracle Management Server - компоненты, предназначенной для централизации управления доступом клиентов к серверам.

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

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

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

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

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

8. Безопасность данных. В Oracle8i впервые была применена концепция Virtual Private Database для упрощения управления доступом и средства защиты данных встроены в саму базу данных, а не в приложения.

В средства Oracle Advanced Security добавлены поддержка протоколов Secure Socket Layer (SSL) и Remote Authentication Dial-In User Service (RADIUS). Это сделано с целью поддержки безопасности транзакций, проводимых через Internet.

9. Прочее. Последние версии Oracle поддерживают управление базами данных большого объема. Для этой цели в сервере имеется поддержка так называемых материализованных представлений (materialized views).

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

Для обеспечения надежности и доступности в последних версиях Oracle имеются средства восстановления после сбоев (а в версии Oracle9i — также и после сбоев, вызванных ошибками персонала или пользователей).

Линейка продуктов Oracle9i. СУБД Oracle поставляется в четырех основных редакциях, ориентированных на различные сценарии разработки и развертывания приложений (а также отличающиеся ценой). Полный перечень известных редакций приведен в таблице.

Таблица

Название

Ограничения

Операционные платформы

Enterprise Edition

Standard Edition

не может устанавливаться на системы, имеющие более 4-х процессорных разъёмов

Standard Edition One

не может устанавливаться на системы, имеющие более 2-х процессорных разъёмов

Personal Edition

один пользователь

Lite

для мобильных и встраиваемых устройств

Express Edition

бесплатная редакция; используемая оперативная память - 1 Гбайт. Максимальный объем базы данных Oracle Database XE составляет 5 гигабайт (Гб). Из них от 0.5 до 0.9 Гб используются словарем данных, внутренними схемами и временным дисковым пространством. Поэтому остается 4.0 Гб для пользовательских данных.

Windows 32-bit Linux x86