Ответы к экзамену по БД. 1. Архитектура базы данных. Физическая и логическая независимость (трехуровневая модель ansi). 3
![]()
|
33. СУБД Oracle. Определенные пользователем типы данных. Создание синонимов.Определенные пользователем типы данных (User-defined data types) представляют собой определенные пользователем типы атрибутов (домены), которые отличаются от поддерживаемых (встроенных) СУБД типов. Они определяются на основе встроенных типов. Определенные пользователем типы данных образуют ту часть среды СУБД, которая организована в соответствии с объектно-ориентированной парадигмой. Создание синонимов. Синонимы представляют собой альтернативное имя объекта, определяемое пользователем и служащее для более удобного использования при работе с именами объектов. create [public] synonym имя_синонима for имя_польз.имя_объекта; (public означает, что данный синоним может использоваться любым пользователем). 34. СУБД Oracle. Создание ограничений.Сервер Oracle использует ограничения, чтобы предотвратить ввод недопустимых данных в таблицы.
Пример CREATE TABLE dept ( deptno NUMBER(3) PRIMARY KEY, dname VARCHAR2(15), loc VARCHAR2(15) CONSTRAINT dname_ukey UNIQUE (dname, loc), CONSTRAINT loc_check1 CHECK (loc IN ('NEW YORK', 'BOSTON', 'CHICAGO'))); 35. СУБД Oracle. Создание табличных пространств.Вы создаете табличные пространства оператором CREATE TABLESPACE. Для создания временного табличного пространства должен использоваться оператор CREATE TEMPORARY TABLESPACE, а для создания табличного пространства отмены — оператор CREATE UNDO TABLESPACE. Пример CREATE TABLESPACE test01 2 DATAFILE '/pasx02/oradata/pasx/test01.dbf' 3* SIZE 500M; 36. Основные понятия и конструкции PL/SQL. Архитектура PL/SQL.Oracle – это не просто база данных, она является также и процессором, поддерживающим различные языки программирования. Так Oracle9i содержит процессор Java со встроенной виртуальной машиной Java (Java Virtual Machine – JVM), а также процессор PL/SQL. Oracle является развитой системой, и поэтому не требует других программных продуктов. Процессор PL/SQL тесно интегрирован с базой данных. ![]() Рис. 1 демонстрирует процесс работы PL/SQL внутри базы данных и за ее пределами. Центральное положение занимает сервер Oracle, который является основным процессором БД. Он координирует все обращения к базе данных. Когда программа посылает на сервер запрос, БД Oracle загружает откомпилированный код в память, после чего процессоры PL/SQL и SQL выполняют этот код. PL/SQL (Procedural Language / Structured Query Language) –язык программирования, процедурное расширение языка SQL, разработанное корпорацией Oracle. PL/SQL предоставляет разработчику приложений и интерактивному пользователю следующие основные возможности: реализация подпрограмм как отдельных блоков, в том числе использование вложенных блоков; создание пакетов, процедур и функций, хранимых в базе данных; предоставление интерфейса для вызова внешних процедур; поддержка как типов данных SQL, так и типов, вводимых в PL/SQL; применение явного и неявного курсора, а также оператора цикла FOR для курсора; введение у переменных PL/SQL и курсоров атрибутов, которые позволяют ссылаться на тип данных или структуру элемента; введение типов коллекций и объектных типов; поддержка набора операторов управления и операторов цикла; реализация механизма обработки исключений. Язык PL/SQL обладает следующими определяющими характеристиками, которые можно отнести к его несомненным достоинствам: Высокая структурированность, удобочитаемость и доступность. Новичок сможет легко постигнуть азы своей профессии с PL/SQL — этот язык прост в изучении, а его ключевые слова и структура четко выражают смысл кода. Программист с опытом работы на других языках очень быстро привыкнет к новому синтаксису. Стандартный переносимый язык разработки приложений для баз данных Oracle. Если вы написали на PL/SQL процедуру или функцию для базы данных Oracle, находящейся на портативном компьютере, то эту же процедуру можно будет перенести в базу данных на компьютере корпоративной сети и выполнить ее без каких-либо изменений (конечно, при условии совместимости версий Oracle). «Написать один раз и использовать везде» — этот основной принцип PL/SQL был известен задолго до появления языка Java. Впрочем, «везде» в данном случае означает «при работе с любой базой данных Oracle». Встроенный язык. PL/SQL не используется как самостоятельный язык программирования. Это встроенный язык, работающий только в конкретной управляющей среде. Таким образом, программы PL/SQL можно запускать из базы данных (скажем, через интерфейс SQL*Plus). Также возможно определение и выполнение программ PL/SQL из формы или отчета Oracle Developer (клиентский PL/SQL). Однако вы не сможете создать исполняемый файл программы на PL/SQL и запускать его автономно. Высокопроизводительный, высокоинтегрированный язык баз данных. В настоящее время существует много способов написания программ, работающих с базами данных Oracle. Например, можно использовать Java и JDBC или Visual Basic и ODBC, а можно воспользоваться, скажем, Delphi, C++ и т. д. Однако эффективный код для работы с базой данных Oracle проще написать на PL/SQL, чем на любом другом языке программирования. В частности, Oracle имеет несколько расширений, предназначенных специально для PL/SQL, таких как инструкция FORALL, позволяющая повысить производительность обработки запросов на порядок и более. Одним из важнейших аспектов PL/SQL является его тесная интеграция с SQL. Для выполнения SQL-инструкций в программах на PL/SQL не требуется никакой промежуточной программной «прослойки» вроде ODBC (Open Database Connectivity) или JDBC (Java Database Connectivity). Инструкция UPDATE или SELECT просто вставляется в программный код. Основной программной единицей PL/SQL является блок, который может содержать вложенные блоки, называемые иногда подблоками. Блок позволяет объединять объявления и операторы, связанные общей логикой; может быть анонимным и именованным. Блок состоит из трех основных частей: секция объявлений (необязательная часть); тело блока; обработчики исключений (необязательная часть). Язык PL/SQL позволяет определять следующие типы именованных блоков: процедуры; функции; объекты; пакеты. Все они могут быть скомпилированы и сохранены как объекты базы данных в некоторой её схеме. Все именованные блоки кода, кроме пакетов, не хранят внутреннее состояние от вызова к вызову. Пакеты позволяют обеспечивают модульность для больших проектов, позволяя сгруппировать наборы именованных блоков кода, кроме того, в пакетах возможно хранение состояния на время жизни сессии базы данных, доступное для функций и процедур, входящих в пакет. Пакеты в PL/SQL содержат спецификацию и тело. Спецификация пакета может содержать определение констант, переменных, типов данных, объявление процедур и функций. Тело пакета определяет объявленные в спецификации процедуры и функции, а также может содержать блок кода инициализации пакета, определения внутренних констант, переменных, типов данных, процедур и функций. Все компоненты пакета, объявленные в его спецификации, могут быть доступны для использования извне пакета, в то время как тело пакета инкапсулирует реализацию этих компонентов, и извне недоступно. Тело и спецификация пакета могут модифицироваться, компилироваться и сохраняться независимо друг от друга. |