Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
16
Добавлен:
19.02.2016
Размер:
21.94 Mб
Скачать

Хід виконання роботи:

  1. Відкривши браузер Google Chrome за допомогою пошукової системи Google знаходимо онлайн графічний редактор Gliffy та завантажуємо його.

Рис.1 Знаходження редактору

  1. Створюємо модель БД з імям: neruchomictirl в графічному редакторі Glify використовуючи бібліотекуUML та Entity-Relationship(Рис.2).

а) б)

Рис.2 а)бібліотека UML б)бібліотека Entity-Relationship

    1. Шляхом перетягування із вкладки UML та Entity-Relationship послідовно створюємо модель(Рис.2.1).

Рис.2.1 Створення моделі

    1. Проводимо прямі лінії, котрі створюються наступним чином

Рис.2.2 Створення моделі

Рис.2.3ER-діаграма «neruchomictmvs»

  1. Створюємо БД у середовищі MicrosoftSQLServer 2008.

    1. Запускаємо середовище SQLServer Management Studio виконуючи наступні дії: Старт-> Всі програми -> Microsoft SQLServer 2008 R2 і обираємо програму «Середовище SQLServer Management Studio».

Рис.3.1 Запуск середовища розробки

3.2. Після запуску середовища розробки зявляється вікно «Підключення до сервера». В якому натискаємо кнопку Зєднання.

Рис.3.2 З’єднання з сервером

3.3. В середовищі розробки лівою клавішею миші(ЛКМ) клацаємо на Створити запитта вводимо код з наступним вмістом:

USE master;

GO

CREATE DATABASE neruchomictmvs;

    1. Створюємо таблиці без заповненняз допомогою Transact-SQL.

create table Wall(

Wall_id int not null,

Material nvarchar(15)not null,

Constraint wallconstr primary key(Wall_id)

)

create table District(

District_id int not null,

District nvarchar(15) not null,

Constraint districtconstr primary key(District_id)

)

create table Street(

Street_id int not null,

Country nvarchar(50) not null,

City nvarchar(50) not null,

District_id int not null,

Street nvarchar(50) not null,

Constraint streetconstr primary key(Street_id),

Constraint streetdistrconstr foreign key(District_id)

References District(District_id)

)

create table Owners(

Owner_id int not null,

Lastname nvarchar(20) not null,

Firstname nvarchar(20) not null,

Middlename nvarchar(20) not null,

Born datetime not null,

Status nvarchar(20) not null,

Constraint ownerconstr primary key(Owner_id)

)

create table Account(

Account_id int not null,

Account int not null,

Lastname nvarchar(20) not null,

Firstname nvarchar(20) not null,

Middlename nvarchar(20) not null,

Pasport nvarchar(max) not null,

Constraint accountconstr primary key(Account_id)

)

create table Building(

Building_id int not null,

Street_id int not null,

Land int not null,

Year int not null,

Wall_id int not null,

Wear int not null,

Cost decimal(18,2) not null,

Line int not null,

Square decimal(18,2) not null,

Picture nvarchar(max),

Elevator bit,

Comment nvarchar(max),

Constraint buildconstr primary key(Building_id),

Constraint buildstreetconstr foreign key(Street_id)

References Street(Street_id),

Constraint buildwallconstr foreign key(Wall_id)

References Wall(Wall_id)

)

create table Flat(

Flat_id int not null,

Building_id int not null,

Flat int not null,

Storey int not null,

Rooms int not null,

SquareFlat decimal(18,2) not null,

Dwell int not null,

Branch int not null,

Balcony int null,

Height int not null,

Kind int not null,

Owner_id int not null,

Account_id int not null,

Constraint flatconstr primary key(Flat_id),

Constraint flatbuildconstr foreign key(Building_id)

References Building(Building_id),

Constraint flataccountconstr foreign key(Account_id)

References Account(Account_id),

Constraint flatownerconstr foreign key(Owner_id)

References Owners(Owner_id)

)

Рис.3.4. Всі створені таблиці в БД neruchomictmvs

  1. Заповнюємо таблиці у відповідності до поставленого завдання за допомогою команди insert into.

useimmovablesmvs;

DECLARE @Transact varchar(20)='Transact';

BEGIN TRAN @Transact;

insert into dbo.Wall values (1,'Кирпич');

insert into dbo.Wall values (2,'Дерево');

insert into dbo.Wall values (3,'Бетон');

insert into dbo.Wall values (4,'Кирпич');

insert into dbo.Wall values (5,'матеріал1');

insert into dbo.Wall values (6,'матеріал2');

insert into dbo.Wall values (7,'матеріал3');

insert into dbo.Wall values (8,'матеріал4');

insert into dbo.Account values (1,334535,'Пелихівський', 'Леонід', 'Батькович','ВН345973645');

insert into dbo.Account values (2,324535,'Іванюк', 'Роман', 'Леонідович','ВН345973641');

insert into dbo.Account values (3,677535,'Заїка', 'Анатолій', 'Вікторович','ВН345973643');

insert into dbo.Account values (4,435535,'Коржик', 'Вадим', 'Інокантійович','ВН345973648');

insert into dbo.Account values (5,334566,'Капінус', 'Олександр', 'Сергійович','ВН345973644');

insert into dbo.Account values (6,456346,'Оленюк', 'Олексій', 'Олекснадрович','ВН345973640');

insert into dbo.Account values (7,123143,'Горинич', 'Олександр', 'Олександрович','ВН345922222');

insert into dbo.Account values (8,567432,'Ляшевич', 'Сергій', 'Сергійович','ВН345973445');

insert into dbo.Owners values (1,'Іванюк', 'Роман', 'Леонідович','11.05.1992','Не одружений');

insert into dbo.Owners values (2,'Заїка', 'Анатолій', 'Вікторович','03.05.1992','Не одружений');

insert into dbo.Owners values (3,'Ляшевич', 'Сергій', 'Сергійович','24.05.1991','Не одружений');

insert into dbo.Owners values (4,'Горинич', 'Олександр', 'Олександрович','11.03.1991','Не одружений');

insert into dbo.Owners values (5,'Капінус', 'Олександр', 'Сергійович','21.02.1992','Не одружений');

insert into dbo.Owners values (6,'Коржик', 'Вадим', 'Інокантійович','31.01.1992','Не одружений');

insert into dbo.Owners values (7,'Оленюк', 'Олексій', 'Олекснадрович','24.05.1992','Не одружений');

insert into dbo.Owners values (8,'Пелихівський', 'Леонід', 'Батькович','12.08.1992','Не одружений');

insert into dbo.District values (1,'Центр');

insert into dbo.District values (2,'Крошня');

insert into dbo.District values (3,'Богунія');

insert into dbo.District values (4,'Мальованка');

insert into dbo.District values (5,'Корбутівка');

insert into dbo.District values (6,'Польова');

insert into dbo.District values (7,'Корбутівка1');

insert into dbo.District values (8,'Польова1');

insert into dbo.Street values (1,'Україна','Житомир',1,'Московська');

insert into dbo.Street values (2,'Україна','Житомир',1,'Київська');

insert into dbo.Street values (3,'Україна','Житомир',5,'Черняховська');

insert into dbo.Street values (4,'Україна','Житомир',1,'Б-Тена');

insert into dbo.Street values (5,'Україна','Житомир',2,'Щорса');

insert into dbo.Street values (6,'Україна','Житомир',1,'Хлібна');

insert into dbo.Street values (7,'Україна','Житомир',1,'Московська');

insert into dbo.Street values (8,'Україна','Житомир',3,'Московська');

insert into dbo.Building values (1,1,1,1,1,82,1,2,1,3,1,1);

insert into dbo.Building values (2,4,1,1,3,45,1,2,1,2,1,1);

insert into dbo.Building values (3,7,2,1,2,30,1,2,1,1,1,1);

insert into dbo.Building values (4,3,1,1,3,54,1,2,1,3,1,1);

insert into dbo.Building values (5,2,1,1,2,72,1,2,1,3,1,1);

insert into dbo.Building values (6,5,1,1,1,82,1,2,1,4,1,1);

insert into dbo.Building values (7,6,1,1,3,82,1,2,1,5,1,1);

insert into dbo.Building values (8,7,1,1,2,82,1,2,1,3,1,1);

insert into dbo.Flat values (1,1,1,1,5,82,1,2,1,3,1,1,1);

insert into dbo.Flat values (2,4,1,1,4,45,1,2,1,2,1,1,1);

insert into dbo.Flat values (3,7,2,1,3,30,1,2,1,1,1,1,1);

insert into dbo.Flat values (4,3,1,1,6,54,1,2,1,3,1,1,1);

insert into dbo.Flat values (5,2,1,1,2,72,1,2,1,3,1,1,1);

insert into dbo.Flat values (6,5,1,1,3,82,1,2,1,4,1,1,1);

insert into dbo.Flat values (7,6,1,1,3,82,1,2,1,5,1,1,1);

insert into dbo.Flat values (8,8,1,1,3,82,1,2,1,3,1,1,1);

COMMIT TRANSACTION;

6.1. Для кожного номера проекту отримання номера проекту і номера номерів службовців, що служать в убуваючому порядку БД SAMPLE+pib

USE Samplemvs

SELECT dbo.Project.Project_no,dbo.Employee.emp_no

FROM dbo.Project LEFT OUTER JOIN dbo.Works_on

ON dbo.Project.Project_no=dbo.Works_on.project_no

LEFT OUTER JOIN dbo.Employee

ON dbo.Employee.emp_no=dbo.Works_on.emp_no

ORDER BY dbo.Project.Project_no,dbo.Employee.emp_no DESC;

--ORDER BY dbo.Employee.emp_no DESC;

Рис.6.1. Запит до бд

6.2. Отримання повних подробиць про усіх службовців, хто працює над проектом Gemini БД SAMPLE+pib

USE Samplemvs

SELECT dbo.Employee.*

FROM dbo.Employee LEFT OUTER JOIN dbo.Works_on

ON dbo.Employee.emp_no=dbo.Works_on.emp_no

LEFT OUTER JOIN dbo.Project

ON dbo.Project.Project_no=dbo.Works_on.project_no

WHERE dbo.Project.Project_name='GEMINI';

Рис.6.2. Запит до бд

6.3. Використання псевдонімів таблиць. Вивести список клієнтів (cust_name, cust_contact) заказавши продукт RGAN01 та його кількість БД Torgtovlja+pib

USE Torgovljamvs;

GO

SELECT Cust.cust_name, Cust.cust_contact,OrdIt.quantity

FROM dbo.Customers AS Cust

JOIN dbo.Orders AS Ord

ON Ord.cust_id=Cust.cust_id

JOIN dbo.Ordersitems AS OrdIt

ON OrdIt.order_num=Ord.order_num

JOIN dbo.Products AS Prod

ON Prod.prod_id=OrdIt.prod_id

WHERE Prod.prod_id='RGAN01';

Рис.6.3. Запит до бд

6.4. Взнати загальну кількість продуктів запропонованих кожним постачальником клієнтам з вказівкою його імені та міста (vend_name,vend_city), розташувати кількість продуктів в порядку убивання БД Torgtovlja+pib

USE Torgovljamvs;

GO

SELECT dbo.Vendors.vend_name, dbo.Vendors.vend_city,

COUNT(dbo.Products.prod_id) AS prod_count

FROM dbo.Vendors

JOIN dbo.Products

ON dbo.Products.vend_id=dbo.Vendors.vend_id

GROUP BY dbo.Vendors.vend_name, dbo.Vendors.vend_city;

Рис.6.4. Запит до бд

7.1. Отримання імен і прізвищ усіх аналітиків(job = 'analist'), чиї відділи розташовуються у Сієтлі(Seattle) БДSAMPLE+pib

USE Samplemvs;

GO

SELECT dbo.Employee.emp_fname,dbo.Employee.emp_lname

FROM dbo.Employee

WHERE dbo.Employee.dept_no

IN

(SELECT dbo.Department.dept_no

FROM dbo.Department

WHERE dbo.Department.Location='Seattle'

)

AND

dbo.Employee.emp_no

IN

(SELECT dbo.Works_on.emp_no

FROM dbo.Works_on

WHERE dbo.Works_on.job='analyst'

);

Рис.7.1. Запит до бд

7.2. Отримання детальних даних про усі відділи, так само як і про місце проживання їх співробітників для усіх міст, які розташовані там же, де і відділи БДSAMPLE+pib

На жаль, даних про місце проживання службовців в БД немає (такі поля відсутні).

7.3. Підзапити. Отримати перелік усіх клієнтів (cust_name, cust_contact), що заказали продукт prod_id=’RGAN01’ БД Torgtovlja+pib

USE Torgovljamvs;

GO

SELECT dbo.Customers.cust_name, dbo.Customers.cust_contact

FROM dbo.Customers

WHERE dbo.Customers.cust_id

IN

(SELECT dbo.Orders.cust_id

FROM dbo.Orders

WHERE dbo.Orders.order_num

IN

(SELECT dbo.Ordersitems.order_num

FROM dbo.Ordersitems

WHERE dbo.Ordersitems.prod_id

IN

(SELECT dbo.Products.prod_id

FROM dbo.Products

WHERE dbo.Products.prod_id='RGAN01')

)

)

Рис.7.3. Запит до бд

7.4. Вивести ім’я клієнта, номер замовлення (cust_name, orderitems.order_num) та кількість предметів упорядкованих по цім замовленням БД Torgtovlja+pib

USE Torgovljamvs;

GO

SELECT dbo.Customers.cust_name,dbo.Ordersitems.order_num, COUNT(dbo.Ordersitems.order_num) AS Count_of_order

FROM dbo.Customers

JOIN dbo.Orders

ON dbo.Customers.cust_id=dbo.Orders.cust_id

JOIN dbo.Ordersitems

ON dbo.Orders.order_num=dbo.Ordersitems.order_num

GROUP BY dbo.Customers.cust_name,dbo.Ordersitems.order_num;

Рис.7.4. Запит до бд

    1. На теці Представлення клацаємо ПКМ і в меню, що відкрилося натискаємо ЛКМ на пункт Створити діаграму бази даних.

Рис.8.1 Створення діаграми

    1. У вікні що відкрилося обираємо таблиці, котрі необхідні для побудови діаграми.

Рис.8.2 Таблиці для побудови діаграми

    1. Обравши у попередньому пункті таблиці ми отримаємо відображення їх структури на полотні вкладки між якими ми встановлюємо зв’язки шляхом перетягування поля однієї таблиці до відповідного поля іншої таблиці.

Рис.8.3. Діаграма

    1. Зберігаємо представлення для цього у меню середовища Microsoft SQLServer Management Studio обираємо Файл->Зберегти представлення, та у вікні, що відкрилося вводимо назву представлення і клацаємо ОК:

Рис.8.4 Зберігаємо діаграму

ВИСНОВОК

На даній лабораторній роботі я набув практичних навичок побудови математичної моделі БД з використанням уніфікованої мови моделювання (UML) за допомогою графічний редактор Gliffy, а також оновив та збагатив знання, що стосуються роботи з середовищем розробки Microsoft SQL Server.

Соседние файлы в папке 5