МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Дніпропетровський національний університет залізничного транспорту імені академіка В. Лазаряна
Лабораторна робота №2
з предмету: «Бази даних»
Тема: DDL и DML операторы языка SQL
Цель:
Получить опыт использования DDL операторов языка SQL для создания реляционных баз данных;
Получить навыки использования DML операторов языка SQL для добавления и модификации записей в реляционных базах данных;
Получить опыт использования операторов языка SQL, обеспечивающих целость дынных;
Научиться писать SQL-скрипты развертывания реляционных баз данных.
Выполнение работы
SQL-скрипт DatabaseDeployment.sql развертывания базы данных лабораторной работы № 1
USE master;
GO
CREATE DATABASE Magazin
ON PRIMARY
( NAME = Store1_dat,
FILENAME = 'C:\Lab_2\Store1dat.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 15% ),
( NAME = Store2_dat,
FILENAME = 'C:\Lab_2\Store2dat.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 15% ),
FILEGROUP StorageFileGroup
( NAME = SGrp1Fi1_dat,
FILENAME = 'C:\Lab_2\SG1Fi1dt.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 ),
( NAME = SGrp1Fi2_dat,
FILENAME = 'C:\Lab_2\SG1Fi2dt.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
FILENAME = 'C:\SalesLog\salelog.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB ) ;
GO
USE Magazin
GO
CREATE SCHEMA ForeignSchema AUTHORIZATION dbo
/*База создана. Добавляем в нее таблицы*/
CREATE TABLE ForeignSchema.Magazin /*Указываем схему*/
(
ID int NOT NULL identity primary key,
Name nvarchar(50) NOT NULL UNIQUE,
)ON StorageFileGroup /*Указываем файловую группу*/
GO
CREATE TABLE dbo.Name_goods
(
id_name_goods int primary key identity,
name_goods nvarchar(50) NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE dbo.Goods
(
id_goods int primary key identity,
id_name_goods int NOT NULL,
id_brand int NOT NULL,
id_group int NOT NULL,
date_delivery date NOT NULL,
price money NOT NULL,
release_date date NOT NULL,
) ON [PRIMARY]
GO
CREATE TABLE dbo.Sale
(
id_sale int primary key identity,
id_goods int NOT NULL,
quantity int NOT NULL,
discount money NOT NULL,
id_buyer int NOT NULL,
) ON [PRIMARY]
GO
CREATE TABLE dbo.Buyer
(
id_buyer int primary key identity,
name_buyer nvarchar(50) NOT NULL,
id_warranty int NOT NULL,
id_goods int NOT NULL,
) ON [PRIMARY]
GO
CREATE TABLE dbo.Group_goods
(
id_group_goods int primary key identity,
nmae_group_goods nvarchar(50) NOT NULL,
quantity_goods_group int NOT NULL,
) ON [PRIMARY]
GO
CREATE TABLE dbo.Delivery
(
id_delivery int primary key identity,
name_delivery nvarchar(50) NOT NULL,
) ON [PRIMARY]
GO
CREATE TABLE dbo.Brand
(
id_brand int primary key identity,
name_brand nvarchar(50) NOT NULL,
model nvarchar(50) NOT NULL,
id_delivery int NOT NULL,
) ON [PRIMARY]
GO
CREATE TABLE dbo.Warranty
(
id_warranty int primary key identity,
id_goods int NOT NULL,
id_buyer int NOT NULL,
term_warranty int NOT NULL,
date_buying date NOT NULL,
date_end_warranty date NOT NULL,
) ON [PRIMARY]
GO
alter table Goods add constraint "PK_id_goods" foreign key (id_goods)
references dbo.Sale(id_goods)
alter table Goods add constraint "FK_id_name_goods" foreign key (id_name_goods)
references dbo.Name_goods(id_name_goods)
alter table Goods add constraint "FK_id_brand" foreign key (id_brand)
references dbo.Brand(id_brand)
alter table Goods add constraint "PK_id_group_goods" foreign key (id_group_goods)
references dbo.Group_goods(id_group_goods)
alter table Delivery add constraint "PK_id_delivery" foreign key (id_delivery)
references dbo.Brand(id_delivery)
alter table Sale add constraint "FK_id_buyer" foreign key (id_buyer)
references dbo.Buyer(id_buyer)
alter table Warranty add constraint "PK_id_warranty" foreign key (id_warranty)
references dbo.Buyer(id_warranty)
/
Рис.1 Схема базы данных
Рис.2 ER-диаграмма базы данных
Выводы: во время выполнения данной лабораторной работы было получено опыт использования DDL операторов языка SQL для создания реляционных баз данных, навыки использования DML операторов языка SQL для добавления и модификации записей в реляционных базах данных, получено опыт использования операторов языка SQL, обеспечивающих целость дынных, научиться писать SQL-скрипты развертывания реляционных баз данных.