Поиск по этому блогу

25.02.2013

5 - представления

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


А вот пробуем для мобильных устройств qr-код для ссылки на видео. На смартфоне необходимо скачать и установить приложение для считывания QR кода. Запустите его и отсканируйте QR код с помощью встроенной камеры. Программа декодирует этот код и выведет его содержимое на дисплей смартфона.
  QRCode

4 - вводим данные в таблицы

В этом уроке мы научимся добавлять информацию в таблицы и импортировать их из готовых Access-овских или других таблиц.  Предположим, у нас имеется таблица со списком клиентов:
Как эти данные внести в таблицу Oracle?
Рассмотрим 1 способ, самый легкий. Если структура вашей таблицы в БД Oracle совпадает со структурой таблицы в БД Access или Excel, то можно просто импортировать таблицу из одной БД в другую. Выполните команды 


  • Далее требуется выбрать куда (Load to) закачивать данные: если таблица уже существует в БД Oracle, то выбираем Existing Table. Если создаем новую таблицу - New Table.
  • Потом выбираем, откуда загружать данные (Load from) : из файла (Upload file)  или копируем через буфер обмена Windows (Copy and paste).
Предположим, мы решили копипастить  данные в новую таблицу.Выберем обе нижние радиокнопки и нажмем кнопку NEXT.
  • На следующем шаге импорта мастер предлагает вставить данные из буфера в окошко, расположенное в центре страницы. Сначала откроем таблицу в Access, выделим все строки и нажмем клавиши  Ctrl+C (копировать). Затем щелкнем мышью в окошке на страницу APEX и нажмем CTRL+V (вставить). В окне появятся данные из вашей таблицы. Проверьте самую первую строчку: там должны быть названия столбцов.
  • Если имена полей совпадают в обеих базах, то жмите кнопку NEXT. Но если вы предполагаете переименовать поля, то сначала исправьте их названия в окошке со вставленными данными, чтобы они совпадали с именами полей в БД Oracle Apex. 
На следующем шаге мастер выводит всю структуру таблицы и данные. Здесь нужно ввести имя таблицы, проверить и исправить  тип, длину и имена полей. Если какие-то столбцы не нужны, можно выбрать No в строке  Upload.

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

Появляется список всех загруженных таблиц, где можно просмотреть результаты импорта, например, возможные ошибки. Если загрузка данных прошла успешно, то щелкнув по имени таблицы, мы переходим на страницу Object Brouser с открытой структурой таблицы. Выберите Data в списке команд над таблицей - и вы увидите свои данные.

Теперь можно редактировать данные, щелкнув по значку в столбце Edit в строке, которую нужно изменить. Apex не позволяет изменять данные прямо в табличном формате, как вы привыкли в Access. Вместо этого он открывает анкетную форму для редактируемой записи.

Посмотрите видео (по-английски) о том, как импортировать данные с помощью SQL Workshop (https://www.youtube.com/watch?v=pfG3r6A1Wx8).

Задание 1. Выберите одну из таблиц в БД Access  и импортируйте данные из неё в БД APEX. 

Итак, мы плавно перешли ко второму способу ввода данных в таблицы:  сразу после входа в APEX выполните
SQL WorkshopObject Browser. 


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

Задание 2. Введите несколько строк в небольшую таблицу путем прямого ввода данных в APEX. 

Наконец, третий способ ввода данных - это SQL-команда INSERT.  Рекомендую использовать SQL-скрипт, в котором написать все команды для ввода исходных тестовых  данных в вашу БД. Для этого выполните команду
SQL WorkshopSQL Scripts /  Create.



На открывшейся странице запишите несколько команд, как на рисунке:
SQL-скрипт

Вы можете добавлять данные сразу в несколько таблиц. Начните с родительских, а в конце добавьте команды заполнения дочерних таблиц. Когда вы закончите, не забудьте придумать и ввести имя скрипта, затем нажмите кнопку  RUN.
Вы увидите список выполненных скриптов, где выберите последний выполненный скрипт и нажмите на значок в самой правой колонке (View Results). Apex выводит результаты выполнения каждой команды скрипта. Если имеются ошибки, то выводится сообщение и код ошибки. Детально увидеть каждую команду и ее результаты можно, выбрав режим Detail, как на рисунке:
результат скрипта
Последний способ не очень удобен для обычного пользователя, зато созданный скрипт можно сохранить и использовать всякий раз, когда создается новая база данных или требуется восстановить БД после сбоя или в другой среде.

Задание 3.  Составьте SQL-скрипты для ввода данных в каждую таблицу в БД APEX. На каждую таблицу сделайте отдельный скрипт. Проведите  отладку скриптов,  Сохраните текст скриптов во внешнем текстовом файле.


В заключение замечу, что наше APEX- приложение будет иметь специальные формы для  пользователя, где он сможет редактировать данные в таблицах, не обращаясь к SQL-workshop. Как и в Access, приложение будет более удобно для пользователя, чем средства, предназначенные для разработчиков. 

3 - анализируем структуру БД и создаем таблицы

Рассмотрим, как настроить структуру базы данных на примере схемы, показанной на рисунке
Схема БД Access "Прием заказов и их анализ"
Голубым цветом выделена часть БД, которая нужна приемщику заказов, желтым цветом - часть схемы для пользователя - аналитика, а серым - общие для обоих таблицы. Примерно так вы можете разделить между собой работу по созданию таблиц в Oracle APEX. Значит, первое задание:
разделить таблицы БД между разработчиками проектов, в соответствии с темой проекта. Общие таблицы поделите на двоих, либо работайте над ними вместе.

Далее продумайте, какие типы полей Oracle вы будете использовать вместо типов Access. См. с.6-7 методички.
Например:
Тип поля Access
Тип поля Oracle
 Числовой, все форматы, в том числе:
Счетчик, длинное целое,
 Действительное
Денежный
NUMBER — числовые данные

Текстовое
VARCHAR 2 — текстовые строки переменной длины до 4000 байт.
Поле MEMO
LONG — текстовые строки длиной до 2 ГБ
CLOB – тексты длиной до 4 Гб
Дата / время
DATE — даты
TIME - время
Чтобы не запутаться в таблицах своей базы  данных, мы можем а) создать несколько схем БД в одной рабочей области или б) имена объектов одного  проекта начинать с одного и того же префикса. Воспользуемся вариантом Б: три первые буквы вашего логина будем писать перед именем каждой таблицы, например: spo_zakaz, res_zakaz и т.д.  То же самое касается представлений, приложений и прочих объектов в вашей БД.

Пользуясь приведенной таблицей и соглашением об именах таблиц, выполните второе задание: 
Напечатайте схему своей БД, напишите на схеме типы полей Oracle, названия полей и таблиц (без пробелов и все английскими буквами)

Разберемся с ключами. Первичный ключ таблицы в БД Oracle легче всего делать из объекта Sequence (секвенция), это что-то вроде отдельно живущего счетчика. Можно создать по счетчику для каждой таблицы, тогда выбирайте populated from a new sequence. Если вам нужен составной ключ или ключ без автоматического наращивания значения, то выбирайте последний вариант Not poulated.
Внешние ключи (foreign key) и связи между таблицами описываем также сразу во время создания таблицы. Внешний ключ должен ссылаться на первичный ключ в другой таблице. Поэтому создание БД начните с родительских таблиц: тех, от которых отходит связь с мощностью 1, так как при создании дочерних таблиц вам придется указывать ссылку на поле родительской таблице. Например, когда вы начнете делать таблицу ЗАКАЗ, таблицы КЛИЕНТЫ и ТИПЫ_ДОКУМЕНТОВ уже должны быть созданы.
При описании таблиц мы сразу же вводим и ограничения целостности: обязательные поля (NOT NULL), уникальные поля (Unique),  диапазон допустимых значений поля (длина и точность, а также условие проверки Check), каскадное действие при удалении. 

Задание третье:
подчеркните на схеме БД простые первичные ключи, подчеркните волнистой линией внешние ключи. Если есть составной первичный ключ - добавьте дополнительное поле ИД_данной сущности и сделайте его ключом. Не забудьте заменить внешние ключи в дочерних таблицах на это новое поле.

Напоследок советую посмотреть видео урок, где рассказано, как создать простейшее приложение. Нам из этого урока достаточно понаблюдать за технологией создания таблиц. 
Пользуемся диалоговым режимом APEX, который похож на "Конструктор таблиц" Access: выполните команду SQL WorkShop / Create Data Base Object / Table - и вперед! Теперь вы полностью готовы к созданию таблиц. 

Задание четвертое:
разработайте сначала вместе с партнером по проекту общие таблицы, а затем каждый самостоятельно - свою часть базы данных. Скопируйте SQL-скрипты, которые генерирует APEX после создания каждой таблицы, в обычный текстовый файл. Это сильно поможет вам, если база данных вдруг сломается.



17.02.2013

2 - логинимся

В каждом посте мы продвинемся на шаг вперед. И в конце Вы увидите, что мы сделали это! Если вдруг у вас что-то не выходит - пишите вопросы и пробуйте ответить на вопросы других. Мы можем также делиться друг с другом сообщениями прямо в Oracle Apex! 

Oracle Application Express (Oracle APEX) представляет собой среду для быстрого создания и разворачивания веб-приложений.  Небольшое описание этой программы вы можете прочитать здесь и здесь (используйте эти сведения при подготовке введения в вашем проекте).  Oracle Application Express сочетает в себе высокую производительность, безопасность, интегрируемость и масштабируемость корпоративных БД, разработанных на основе веб-технологий, с простотой использования, доступностью и гибкостью персональных БД.

Существует несколько версий системы: 
1) во-первых, вы можете бесплатно скачать дистрибутив, установить СУБД Oracle и приложение APEX на своем компьютере и обходиться без интернета, однако тут вам потребуется детальнее разобраться в установке и сопровождении СУБД Oracle 11g, так как она является основой среды разработки. Все сбои, резервирование и восстановление системы вы будете делать сами. После окончания проектирования, для сдачи проекта вам нужно продемонстрировать его работу преподавателю. При этом либо вы не выключаете свой домашний компьютер, чтобы получить к нему доступ из университета, либо публикуете свой проект на каком-либо стороннем хостинге, либо приносите проект вместе с ноутбуком.
Этот вариант хорош, так как вы получаете дополнительный опыт, но есть опасность не успеть его выполнить из-за технических трудностей. Рекомендую этот вариант для уверенных в себе и желающих в дальнейшем получить высокооплачиваемую работу администратора БД Oracle, а также для тех, у кого очень плохой интернет.
2) во-вторых, вы используете облачную версию APEX и тогда вам НЕ нужна установка и обслуживание ничего, кроме браузера. Правда, требуется высокоскоростной доступ в интернет, так как и база данных, и средства ее разработки находятся в "облаке". 
Сейчас существует два облачных сервера APEX:

  • бесплатная демонстрационная версия 5.0: https://apex.oracle.com, рекомендую этот вариант для всех. В этом варианте ограничивается объем базы данных  и не разрешено коммерческое использование.
  • коммерческий облачный сервер базы данных (вместе с APEX) - https://cloud.oracle.com/database, минимальная стоимость сервиса – 600 долларов в месяц. Это для тех, кто думает делать свой бизнес вместе с Oracle.
  • Загрузка автономной версии: http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html.

Рассмотрим, как начать работать с облаком APEX 5.0.
Сначала зайдите на главную страницу APEX:
Рисунок 1
Нажмите на большую кнопку  "Request a free workspace" (см. рисунок) и зарегистрируйтесь: вам нужно выбрать цель использования сервиса (Application Development), ввести имя, фамилию, работающий email и наименование вашей рабочей области, затем ввести обозначение схемы БД (schema name), попросить 10 или 25 Мб места,  а на следующем экране ответить на анкету (что вам нужно от APEX, как давно вы его используете, готова ли ваша организация ссылаться на APEX и готовы ли вы связываться с Oracle по поводу применения APEX). Далее читаете соглашение и подтверждаете его.
На указанную вами почту придет подтверждение регистрации, подтвердите его -  и можете работать.  Сделайте на рабочем столе компьютера ярлык для быстрого входа в APEX, скопировав URL из адресной строки браузера. 
На странице авторизации APEX вы вводите c учетом регистра идентификатор рабочей области, логин и пароль (советую сразу записать их в блокноте, на телефоне, на стене или там, где вы их не потеряете!!! )

После авторизации вы попадаете на главную страницу среды разработки APEX:


Рисунок 2 - меню APEX
Тут посреди страницы нас ждут 4 огромные цветные кнопки, которые в точности совпадают с пунктами главного меню, что выводится наверху окна.  Правый столбик - вспомогательный, можно на него пока не обращать внимания. В середине окна - новости, тут выводятся все сообщения, которые пользователи оставляют друг другу. Добавьте радостную весть, что вы тоже подключились к нашему проекту! Две нижних панели - статистика, какие приложения и пользователи работали в последнее время. Вверху справа 4 серых кнопки: поиск, администрирование, помощь, профиль пользователя и выход.
 
Пощелкайте по кнопкам и посмотрите, что тут к чему. Например:
  • смените пароль,  выбрав в меню Administation / Manage User and Groups/Change My Password;
  • добавьте пользователей вашей базы данных: различают 3 группы пользователей: администратор сайта (он может всё, в том числе он должен описать всех остальных), разработчики (они могут изменять проект сайта), гости – открывают готовое веб-приложение.
  • попробуйте создать и поиграть с одним из множества типовых демонстрационных приложений (рисунок 4): 
    рисунок 3 - галерея типовых приложений
И привыкайте к англоязычному интерфейсу! Можете включить онлайн-переводчик Google, если совсем забыли английский.
Что дальше?  
В следующем уроке мы узнаем, что можно хранить в базе данных Oracle Apex.


11.02.2013

1 - оформляем ТЗ

Привет!
Мы начинаем делать курсовой проект с помощью этого демонстрационного облачного сервиса Тем самым мы познакомимся сразу с тремя новейшими ИТ: базой данных Oracle, средой быстрой разработки приложений Oracle Apex 4.2 и облачными сервисами.

Вам нужны: интернет, ваша тема проекта и список функций, которые должно выполнять приложение. Все это написано в техническом задании к проекту. Для студентов ПГТА образец задания и темы доступны на странице курса "Базы данных" в Moodle.
Например:

Тема проекта:  «Разработка базы данных для учета заказов и расчетов с клиентами  ресторана»
Технические требования на проектирование:
База данных предназначена для оперативного ввода, хранения и поиска информации о заказах клиентов ресторана в течение 1 месяца.  Пользователем БД является администратор ресторана. Результаты запросов выводятся на экран устройства в табличном и / или графическом виде. Для обеспечения целостности БД предусмотреть контроль данных, вводимых пользователем.
БД предназначена для коллективного использования в сети интернет. Для авторизации пользователя используется уникальный логин и пароль. Доступ к базе данных осуществляется с помощью веб - приложения для мобильного устройства (например, планшет). 
Среда реализации БД и приложения -  Oracle Application Express (облачный сервис http://apex.oracle.com).
Функции приложения БД:
- оперативный ввод, редактирование и просмотр заказов;
- ведение клиентской базы (ввод, коррекция, удаление, поиск информации о клиентах, формирование карточки постоянного клиента);
- выборка товаров из меню в заданной группе в заданном ценовом диапазоне;
- расчет суммарной стоимости заказа и формирование квитанции;
- отчет о суммарной стоимости заказов по каждому клиенту за месяц;
- вывод сведений об авторе и назначении программы;
- помощь пользователю в html-формате.
Объем работы по курсу
1.                Расчетная часть:
1.1.            Анализ среды разработки
1.2.            Проектирование структуры БД
1.3.            Разработка приложения APEX.
1.4.            Разработка руководства пользователя.
2.                Графическая часть:
2.1.                        Схема базы данных
2.2.                        Иерархическая функциональная диаграмма
2.3.                        Диаграмма потоков данных
2.4.                        Презентация к защите
3.                Экспериментальная часть:
3.1.                Разработка таблиц, ввод тестового примера
3.2.                Разработка SQL-скриптов
3.2.                Разработка страниц приложения в среде Oracle APEX

Срок выполнения проекта по разделам:
     1. Проектирование структуры БД, разработка SQL- скриптов, ввод данных тестового примера  - к  15.03.2013
     2. Разработка страниц приложения – к 15.04.2013
     3. Оформление пояснительной записки - к  15.05.2013
     4. Оформление графической части, подготовка доклада и защита - до 31.05.2013
Итак, для начала получите ваш вариант задания у преподавателя, оформите лист ТЗ и подпишите его. Дальше - посмотрим, что такое этот APEX.