Работа в Oracle Database Express Edition

Автор: Пользователь скрыл имя, 02 Июня 2013 в 14:23, лабораторная работа

Описание работы

Пакет Oracle Database 10g Express Edition (Oracle Database XE) является свободно распространяемой версией СУБД Oracle. Работа с СУБД выполняется с помощью интуитивно понятного WEB-интерфейса браузера. С помощью этого интерфейса можно выполнять все основные операции по созданию таблиц баз данных, установлению связей между таблицами, вводу данных, созданию запросов, отчетов, администрированию пользователей.
Рассмотрим основные правила работы с этим пакетом.

Работа содержит 1 файл

Data_Bases_Labs_Sept_2010.doc

— 451.50 Кб (Скачать)

SELECT * FROM Orders; клавиша <Enter>.

    • Выполните просмотр количества записей:

SELECT count(*) FROM Orders; клавиша <Enter>.

  1. Выполните команду отсоединения:

Disconnect   клавиша <Enter>.

Снова откройте домашнюю страницу, войдя  под именем test, пароль – test и посмотрите созданную таблицу через раздел Object Brower.

 

Лабораторная работа  № 4.

Экспорт  баз данных.

Цель работы: Научиться создавать базы данных в разных средах и экспортировать данные в другие форматы.

Задание. 1. Создать базу данных в MS Access из таблиц, приведенных ниже.

Задание 2. Создать источник данных DSN для связи с сервером Oracle.

    1. Открыть Меню Пуск \ Настройки \ Панель управления \ Администрирование \ Источники данных ODBC (Control Panel \ Administrative Tools \ Data Sources (ODBC).).
    2. Вкладка User DSN (Пользовательский DSN).
    3. Кнопка Add.
    4. Выбрать из списка Oracle in XE.
    5. Кнопка Finish.
    6. Открывается окно: Oracle ODBC Driver Configuration.
    7. Ввести в окно «Data Sources Name» имя.
    8. В окне TNS Service Name выбрать в открывающемся списке по стрелке XE.
    9. OK.
    10. Откроется список всех имен пользователей.
    11. ОК.

В результате будет установлено  соединение с сервером Oracle.

 

Задание 3.

  1. Выделить таблицу, которую необходимо будет экспортировать.
  2. Файл\Экспорт.
  3. Открывается окно «Экспорт объекта: Таблица»
  4. Указать папку, в которой будет сохраняться таблица.
  5. В строке «Тип файла» из открывающего списка выбрать Базы данных ODBC (ODBC Databases).
  6. В окне Экспорт указать (или подтвердить) имя таблицы, под каким она будет перемещена в среду Oracle.
  7. OK.
  8. В окне, где задано имя test, выделить его. Это же имя отобразится в окне Имя DSN: test.
  9. ОК.
  10. В следующем окне ввести данные: Service Name: XE,

User Name, Password – которые были указаны при создании Пользователя в среде БД Oracle.

 

 

Таблицы для построения Базы данных в Access:

 

 

Табл. 1. Студенты

- ID студента (номер студенческого билета)

- ФИО студента

-Домашний телефон

-Номер группы

 

Табл.2. Сводная экзаменационная ведомость

- ID студента (внешний ключ из табл.1)

-Номер группы

- Оценка 1 (оценка по 1-ому экзамену) – пустое поле

- Оценка 2 (оценка по 2-ому экзамену) – пустое поле

 

Табл.3 Результаты сдачи экзамена по БД гр. 4206

- ID студента

-Оценка

Задание:

  1. Задать структуры трех таблиц в СУБД MS Access

  1. Заполнить данными

  1. Перенести таблицы в БД Oracle.

  1. Написать SQL- запрос и перенести данные из табл.3 в табл.2.

Лабораторная работа 5. Выполнение расчетов с использованием программирования в среде Visual Basic for Applications (VBA).

 

  1. Создать таблицу Employers. Поля таблицы: Months, Zarplata, Nadbavka. Тип данных – числовой. Имя поля ввести латиницей.
  2. Заполните поле Months цифрами от 1 до 12.
  3. Создать пустую форму в режиме Конструктора (выбрать источник данных – пустая строка).
  4. В меню Вид – Панель элементов, выбрать элементы: Кнопка и Надпись и перенести их на форму.
  5. В открывшемся диалоговом окне нажать Cancel.
  6. Щелкнуть правой кнопкой мыши по кнопке. Выбрать Обработка событий – Программа. Открывается диалоговое окно VBA.

Примечание: После каждой строки нажать клавишу Enter.

 

Private Sub Кнопка0_Click()

Dim dbs As Database, r1 As Recordset  ‘определить объектные переменные

Dim n, s, z As Long

Set dbs = CurrentDb     ‘текущая БД=currentDb

Set r1 = dbs.OpenRecordset("Employers") ‘присвоить переменной ссылку на таблицу "Employers"

r1.MoveFirst      ‘установить курсор на 1 записи

n = r1.RecordCount     ‘подсчитать число записей в табл.

Do While Not r1.EOF   ‘цикл по записям-пока не дойдет до конца записи

r1.Edit

r1!Zar = 6000 + 1000 * Int(Rnd() * 10) ‘занести данные случайным образом

r1.Update

r1.MoveNext

Loop        ‘конец цикла

s = 0

r1!MoveFirst

n = r1.RecordCount

Do While Not r1.EOF

z = r1!Zar

s = s + z

r1.Edit       ‘Редактировать таблицу

If z > 6900 Then r1!Nad = 500 Else r1!Nad = 400  'Установить надбавку в зависимости от зарплаты

r1.Update       ‘занести исправления в таблицу

r1.MoveNext

Loop

s = s \ n

Надпись1.Caption = s ‘значение средней зарплаты вывести в надпись1

End Sub

 

 

  1. Просмотреть поля таблицы Employers.
  2. Какие данные отображаются в окне «Надпись1»?

 

Задание

  1. Создать 3 таблицы: Таблица 1 – Товары. Поля таблицы – Наименование товара, Базовая цена (тип поля – числовой).

Ввести три записи.

  1. Таблица 2 – Продажи. Поля таблицы – Месяц, Товар 1, Товар 2, Товар 3, Базовая цена товара, Цена товара.
  2. Занести данные в столбец Месяц от 1 до 12.
  3. Таблица 3 – Курс Валюты. Поля таблицы – Месяц, КурсЕвро.
  4. Занести данные в столбец Месяц от 1 до 12.
  5. Написать программу на VBA, которая:
  6. Заполнить случайными числами столбцы Товар 1, Товар 2, Товар 3 в таблице 2.
  7. Заполнить столбец КурсЕвро случайными числами от 44,5 до 47 с одним знаком после запятой (0,1).

Например, r1!Zar = 6000 + 1000 * Int(Rnd() * 10)

«6000» - минимальная зарплата

«1000» - шаг изменения зарплаты

«Int(Rnd() * 10)» - случайное число от 0 до 10.

 

  1. Подсчитать стоимость проданного товара по базовой цене.
  2. Подсчитать поле Цена товара, полученную путем умножения Базовой цены на коэффициент k, рассчитываемый по формуле:

k=1+(курс евро – 40)*0,1

 

Лабораторная  работа № 6.

Формирование  хранилища данных из разных источников

 

Задание: Используя в качестве источников табличные данные о результатах продаж, сформировать реляционное хранилище данных по схеме «звезда». (Каждый студент должен разработать свой вариант базы данных). Необходимо сформировать 5-6 таблиц измерений и 2 таблицы фактов в MS Access для дальнейшего переноса в Oracle.

 

Пример. Рассмотрим базовый пример «Фирма по оптовой продаже комплектующих для компьютера» для выполнения сквозного проекта по курсу «Хранилища данных», варианты которого были даны в лабораторной работе № 4.

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

 

I. Составить таблицы измерений:

1. Категории товаров  (Category), поля: ID категории, Наименование:

(ввести  4-5 категорий)

ID категории 

Наименование_категории

1

Материнская плата

2

Видеокарта

3

HDD

4

Карта памяти


 

2. Поставщики (Postavshiki)  (ID поставщика, Название, Категория товара, Юридический Адрес, Телефон):

(ввести по 10-12 записей)

 

3. Товары (Tovary), поля: ID товара, Код категории товара Наименование Товара, Цена за ед., Гарантия:

ввести по 5 записей для каждой категории)

 

4. Покупатели (Pokupateli), поля: ID Покупателя, Наименование организации, Контактное лицо, Город, Адрес:

 

(ввести 10-12 записей):

 

5. Служащие филиала  1: (Prodavci_Filial_1): поля: ID продавца, ФИО, Телефон:

 

(ввести не менее 5 записей)

5.1. Служащие филиала  2: (Prodavci_Filial_2): поля: ID продавца, ФИО, Телефон.

 

  1. Таблица скидок (Table_Skidka), поля: Количество товара, Скидка, Описание:

 

 

Количество товара

Скидка, %

Описание

5

3

Скидка в размере 3% при покупке товара от 5 до 10 шт.

10

5

Скидка в размере 5% при покупке  товара от 10 до 20 шт.

20

7

Скидка в размере 7% при покупке  товара от 20 и более.


 

II. Составить таблицы фактов:

 

В нашем проекте будет создано  две таблицы фактов.

Таблица Заказы будет содержать данные о заказах – номер заказа, ID продавца. ID покупателя и дату совершения заказа

Таблица Подробности заказов содержит данные о товарах, входящих в заказ (от 1 до 3 наименований - это число можно задать в программе) и их количестве. Количество генерируется случайным образом в пределах от 1 до 50 (этот параметр также можно поменять).

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


  1. Создать структуру таблицы Заказы (TABLE_ZAKAZ): Код подразделения, ID заказа, ID заказчика, Дата заказа, ID продавца:

 

  1. Создать структуру таблицы Подробности заказа (TABLE_Detali_zakazov): ID заказа, ID товара, Код филиала, ID Поставщика, Количество, Цена за единицу, Общая цена, Скидка, Цена с учетом скидки:

  1. Для заполнения таблиц данными создать форму с кнопками, при нажатии которых будут генерироваться данные для заполнения таблиц TABLE_ZAKAZ и TABLE_Detali_zakazov.
  • Открыть вкладку Формы\Создать\Конструктор\ОК. Откроется Мастер Формы.
  • На панели инструментов выбрать кнопку , щелкнув по ней и перетащив кнопку в поле формы. Открывается Мастер Создание кнопок.
  • Нажать кнопку Отмена, которая закроет мастера.
  • Щелкнуть правой кнопкой мыши по кнопке, выбрать: Обработка событий\Программы\ОК. При этом открывается окно редактора Visual Basic.

 

Листинг программы для первой кнопки (заполняем таблицы TABLE_ZAKAZ и TABLE_ Detali_zakazov 

 

' Программа 1.

Private Sub Кнопка0_Click()

Dim nz As Integer

Dim d As String

Dim dbs As Database, r1 As Recordset, r2 As Recordset

Set dbs = CurrentDb

Set r1 = dbs.OpenRecordset("table_zakaz")

Set r2 = dbs.OpenRecordset("TABLE_Detali_zakazov")

Dim t As Integer

 

nz = InputBox("Необх.колич-о  заказов (не менее 200)", , "200")

nt = InputBox("Число  товаров", , "10")

np = InputBox("Число  поставщиков", , "6")

nf = InputBox("Код  филиала", , "1")

npr = InputBox("Число  продавцов в филиале", , "5")

nzz = InputBox("Число  покупателей", , "6")

 

' Заполнение  данными таблицы Table_Zakazov "Таблица  заказов"

 

For i = 1 To nz

izz = Int(Rnd * nzz) + 1 ' номер заказчика

ip = Int(Rnd * npr) + 1 ' номер продавца

d = Int(Rnd * 30) + 1

d = d + "."

d2 = Str(Int(Rnd * 12) + 1)

d = d + d2 + "."

d2 = Str(Int(Rnd * 3) + 2006)

d = d + d2

r1.AddNew

r1!ID_filiala = nf

r1!ID_zakaza = i   'Изменяемое поле. Для второго филиала должно=i+1000

r1!ID_pokupatel = izz

r1!Data_zakaza = d

r1!ID_prodavca = ip

r1.Update

Next i

' Заполнение  данными таблицы Table_Detali_Zakaz "Детали  заказов"

For i = 1 To nz  

izz = Int(Rnd * nzz) + 1 ' номер заказа

kz = Int(Rnd * 3) + 1 ' кол.позиций данного заказа (от 1 до 3)

ip = Int(Rnd * npr) + 1 ' номер продавца

For k = 1 To kz

      r2.AddNew

      r2!ID_filiala = nf

      r2!ID_zakaza = i 'Изменяемое поле. Для второго филиала должно=i+1000

      r2!ID_tovara = Int(Rnd * nt) + 1

      r2!ID_postav = Int(Rnd * np) + 1

      r2!Kolichestvo = Int(Rnd * 49) + 1

      r2.Update

  Next k

Next i

End Sub

________________________________

  • Закрыть редактор VBA.
  • Сохранить форму под названием Forma_Zakazov.
  • Открыть форму с помощью Конструктора и переименовать кнопку на «Сформировать заказы». Закрыть форму.
  • Открыть форму и запустить процедуру «Сформировать заказы». В ходе работы программа запросит ввести необходимые данные: Количество заказов – это число определяет, сколько строчек будет внесено в таблицу фактов о заказах. Данные будут разбросаны по месяцам 2006-2008 г.г. Остальные значения должны соответствовать количеству товаров, поставщиков, продавцов, покупателей, внесенных в таблицы измерений.
  • Задайте первоначально значения Количества заказов равным 10 записям для проверки работы программы.

Информация о работе Работа в Oracle Database Express Edition