Главная страница

Sql создание своей БД. Лаба4 ОБД Лобанов. Лабораторна робота 4 вивчення команд dml, ddl. Застосування утіліти oracle sqlloader Виконав ст гр. Іткн189


Скачать 415.85 Kb.
НазваниеЛабораторна робота 4 вивчення команд dml, ddl. Застосування утіліти oracle sqlloader Виконав ст гр. Іткн189
АнкорSql создание своей БД
Дата31.03.2021
Размер415.85 Kb.
Формат файлаdocx
Имя файлаЛаба4 ОБД Лобанов.docx
ТипЛабораторна робота
#190138

Міністерство освіти і науки України

Харківський національний університет радіоелектроніки
Кафедра ШІ

Дисципліна: «Організація баз даних та знань»
ЛАБОРАТОРНА РОБОТА № 4
«ВИВЧЕННЯ КОМАНД DML, DDL.

ЗАСТОСУВАННЯ УТІЛІТИ ORACLE SQL*LOADER»



Виконав:

ст. гр. ІТКН-18-9

Лобанов Андрій Дмитрович




Перевірили:

Волощук О.Б.

Магдаліна І. В.

Безкровна І.І.













Харків 2019

«ВИВЧЕННЯ КОМАНД DML, DDL.

ЗАСТОСУВАННЯ УТІЛІТИ ORACLE SQL*LOADER»

  1. Мета роботи

Метою лабораторної роботи є придбання навичок роботи при створенні об'єктів бази даних: таблиць, уявлень, послідовностей в ORACLE; використання команд маніпулювання даними. А також застосування утіліти SQL*LOADER для завантаження даних у БД.

  1. Сценарії, за допомогою яких були створені таблиці й подання

--страны

create table LOBANOV_countries(

country_id number not null,

country_name varchar2(20) not null,

constraint country_pk primary key (country_id),

constraint country_name unique (country_name)

);

--состав команд

create table LOBANOV_squad(

team_id number not null,

sportsmen_id number not null,

games_year number not null,

constraint sportsmen_pk primary key (sportsmen_id),

constraint team_id unique (team_id)

);

--дисциплины

create table LOBANOV_disciplines(

discipline_id number not null,

kind_of_sport varchar2(20) not null,

constraint discipline_pk primary key (discipline_id),

constraint kind_of_sport unique (kind_of_sport)

);

--спортсмены

create table LOBANOV_sportsmens(

sportsmen_id number not null,

name_sportsmen varchar2(30)not null,

gender_sportsmen varchar(10) not null,

data_of_birthday_sportsmen DATE,

country_id number not null,

discipline_id number not null,

constraint sportsmens_pk primary key (sportsmen_id),

constraint country_fk foreign key (country_id)

references LOBANOV_countries (country_id),

constraint discipline_fk foreign key (discipline_id)

references LOBANOV_disciplines (discipline_id)

);

--матчи

create table LOBANOV_matches(

match_id number not null,

team_id_1 number not null,

team_id_2 number not null,

score_team_1 number,

score_team_2 number,

date_of_match date,

constraint match_pk primary key (match_id),

);

--команды

create table LOBANOV_teams(

team_id number not null,

team_name varchar2(20) not null,

country_id number not null,

date_of_founding date,

discipline_id number not null,

team_status varchar2(10),

director_of_team varchar2(20),

match_id number not null,

constraint team_pk primary key (team_id),

);

--звания

create table LOBANOV_rank(

rank_id number not null,

rank_name varchar2(20) not null,

sportsmen_id number not null,

year_of_rank number not null,

constraint rank_pk primary key (rank_id),

constraint sportsmen_fk foreign key(sportsmen_id)

references LOBANOV_sportsmens (sportsmen_id)

);

alter table LOBANOV_matches

add constraint team_id_1_fk foreign key (team_id_1)

references LOBANOV_teams (team_id)

alter table LOBANOV_matches

add constraint team_id_2_fk foreign key (team_id_2)

references LOBANOV_teams (team_id)

alter table LOBANOV_teams

add constraint country_team_fk foreign key (country_id)

references LOBANOV_countries (country_id)
alter table LOBANOV_teams

add constraint discipline_teams__fk foreign key (discipline_id)

references LOBANOV_disciplines (discipline_id)
alter table LOBANOV_teams

add constraint match_fk foreign key (match_id)

references LOBANOV_matches (match_id)

Створення послідовностей

create sequence common_sequence ;

create sequence country_sequence;

create sequence squad_sequence;

create sequence disciplines_sequence;

create sequence sportsmens_sequnce;

create sequence matches_sequence;

create sequence teams_sequence;

create sequence rank_sequence;

create or replace view LOBANOV_squads_view as

select sp.name_sportsmen,sp.country_id, tm.team_name,tm.date_of_founding

from lobanov_sportsmens sp, lobanov_teams tm

where sp.discipline_id=tm.discipline_id;

create or replace view lobanov_country_view as

select cntr.country_name, sprt.*

from lobanov_countries cntr, lobanov_sportsmens sprt

where cntr.country_id=sprt.country_id;
create or replace view lobanov_all_tables as

select cntr.country_name,dsp.kind_of_sport,mtc.date_of_match,rnk.rank_name,spr.name_sportsmen,sqd.games_year, tms.team_name

from lobanov_countries cntr,lobanov_disciplines dsp,lobanov_matches mtc,

lobanov_rank rnk,lobanov_sportsmens spr,lobanov_squad sqd , lobanov_teams tms

where spr.sportsmen_id=rnk.sportsmen_id and spr.sportsmen_id=sqd.sportsmen_id and

tms.team_id=sqd.team_id and tms.team_id=mtc.team_id_1 and tms.team_id=mtc.team_id_2 and mtc.team_id_1!=mtc.team_id_2 and

cntr.country_id=spr.country_id and cntr.country_id=tms.country_id and

dsp.discipline_id=spr.discipline_id and dsp.discipline_id=tms.discipline_id and

mtc.match_id=tms.match_id;





  1. Запити, що включають оператори INSERT, UPDATE, DELETE

insert into lobanov_countries(country_id,country_name ) values(

common_sequence.NEXTVAL, 'Japan'

);
insert into lobanov_countries(country_id,country_name ) values(

common_sequence.NEXTVAL, 'USSR'

);
insert into lobanov_countries(country_id,country_name ) values(

common_sequence.NEXTVAL, 'Germany'

);

insert into lobanov_countries(country_id,country_name ) values(

common_sequence.NEXTVAL, 'Ukraine'

);

select cntr.country_id,cntr.country_name from lobanov_countries cntr;



update lobanov_countries set country_name='Tadzhikistan'

where country_id=3;

select cntr.country_id,cntr.country_name from lobanov_countries cntr;



delete from lobanov_countries where country_id=1;

select cntr.country_id,cntr.country_name from lobanov_countries cntr;



  1. E R-діаграма



  1. Запити до БД на основі подань

Створити запит, який шукає гравців та назви їх країни, де їх порядковий номер дорівнює 3 або 4.

select lv.name_sportsmen, lv.country_name from lobanov_country_view lv where lv.country_id=3 or lv.country_id=4;



Створити запит, який шукає гравців та назви їх країни, де їх порядковий номер дорівнює порядковому номеру їх країни.

select lv.name_sportsmen, lv.country_name from lobanov_country_view lv where lv.sportsmen_id=lv.country_id;



  1. Завантаження даних в таблицю за допомогою SQL*Loader

(дані повинні завантажуватися з файлу з розширенням CSV. При завантаженні використати послідовність, що генерує значення, починаючи з максимального в даній таблиці із кроком «три»)

Файл-контролер (controller.ctl):

LOAD DATA

APPEND

INTO TABLE LOBANOV_countries

FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"'

TRAILING NULLCOLS

(

country_name,

country_id SEQUENCE(max,3)

)

Завантажені дані (lobanov.csv)



Команда, що розпочинає процес завантаження даних:

sqlldr userid=HR/******@XE, control=C:\sql\controller.ctl, log=C:\sql\logg.log, data=C:\sql\lobanov.csv ,bad=C:\sql\bd.bad,discard=C:\sql\tos.dsc

Логи (logg.log)



select * from lobanov_countries;



Висновок

В даній лабораторній роботі набув навичок створювати власні таблиці, уявлення та послідовності в БД, заповнювати їх даними, змінювати та видаляти ці дані. Також навчився заповнювати таблиці даними з зовнішніх файлів за допомогою SQL*Loader. Було важко психологічно впоратися з проблемами, які виникали, а також незадоволений SQL NAVIGATOR Oracle, бо коли виникає помилка, Oracle не хоче, щоб ви її вирішили.


написать администратору сайта