Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой_SQL.doc
Скачиваний:
19
Добавлен:
21.11.2018
Размер:
1.68 Mб
Скачать

1 Проектирование базы данных

    1. Описание предметной области «Магазин компакт дисков»

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

В бизнес-процессе поставка дисков участвуют следующие субъекты: Поставщики, Посредники.

В бизнес-процессе продажа товара участвует субъект Продавцы.

1.2 Логическая модель базы данных

Логическая модель данных является начальным прототипом будущей базы данных. Основным средством разработки логической модели данных в настоящий момент являются различные варианты ER-диаграмм (Entity-Relationship, диаграммы сущность-связь). Одну и ту же ER-модель можно преобразовать как в реляционную модель данных, так и в модель данных для иерархических и сетевых СУБД, или в постреляционную модель данных.

Модель представлена на рисунке 1.

Рисунок 1 – Логическая модель данных

1.3 Физическая модель базы данных

С целью последующего внедрения базы в MSSQL Server 2008, посредством ERWin Data Modeler так же была разработана физическая модель данных, где были описаны типы данных всех атрибутов имеющихся сущностей. Физическая модель данных показана на рисунке 2.

Рисунок 2 – Физическая модель данных

    1. Создание базы данных «Магазин компакт дисков»

Посредством языка Transact SQL был написан скрипт на создание базы данных:

create database CD_Shop

Результат представлен на рисунке 3.

Рисунок 3 – Создание базы данных CD_Shop

    1. Создание таблиц

Благодаря ERWin Data Modeler, можно из физической модели данных сгенерировать код воссоздания структуры базы данных на Transact SQL. Для этого используется функция Forward Engineer Schema Generation. Окно кода представлено на рисунке 4.

Рисунок 4 – Код, сгенерированный посредством ERWin Data Modeler

Автоматически сгенерированный код представлен ниже:

CREATE TABLE Posredniki

(

Kod_posrednika int NOT NULL ,

Familiya char(20) NOT NULL ,

Imya char(10) NOT NULL ,

Otchestvo char(20) NOT NULL ,

Telefon int NOT NULL

)

go

ALTER TABLE Posredniki

ADD CONSTRAINT XPKPosredniki PRIMARY KEY CLUSTERED (Kod_posrednika ASC)

go

CREATE TABLE Postavka_diskov

(

Kod_postavki int NOT NULL ,

Kolvo_tovara int NOT NULL ,

Cena_tovara money NOT NULL ,

Kod_tovara integer NOT NULL ,

Kod_postavshika int NOT NULL ,

Kod_posrednika int NOT NULL ,

)

go

ALTER TABLE Postavka_diskov

ADD CONSTRAINT XPKPostavka_diskov PRIMARY KEY CLUSTERED (Kod_postavki ASC)

go

CREATE TABLE Postavshiki

(

Kod_postavshika int NOT NULL ,

Firm_name char(18) NOT NULL ,

Firm_phone int NOT NULL ,

Firm_city char(18) NOT NULL

)

go

ALTER TABLE Postavshiki

ADD CONSTRAINT XPKPostavshiki PRIMARY KEY CLUSTERED (Kod_postavshika ASC)

go

CREATE TABLE Prodazha_tovara

(

Kod_checka integer NOT NULL ,

Kolvo int NOT NULL ,

Cena money NOT NULL ,

Seller_ID int NOT NULL ,

Kod_tovara int NOT NULL ,

dohod as kolvo*cena NULL

)

go

ALTER TABLE Prodazha_tovara

ADD CONSTRAINT XPKProdazha_tovara PRIMARY KEY CLUSTERED (Kod_checka ASC)

go

CREATE TABLE Sellers

(

Seller_ID int NOT NULL ,

Familiya char(20) NOT NULL ,

Imya char(10) NOT NULL ,

Otchestvo char(20) NOT NULL ,

telefon int NOT NULL

)

go

ALTER TABLE Sellers

ADD CONSTRAINT XPKSellers PRIMARY KEY CLUSTERED (Seller_ID ASC)

Go

CREATE TABLE Tovar

(

Kod_tovara integer NOT NULL ,

Nazvanie char(18) NOT NULL

)

go

ALTER TABLE Tovar

ADD CONSTRAINT XPKTovar PRIMARY KEY CLUSTERED (Kod_tovara ASC)

go

ALTER TABLE Postavka_diskov

ADD CONSTRAINT R_16 FOREIGN KEY (Kod_tovara) REFERENCES Tovar(Kod_tovara)

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Postavka_diskov

ADD CONSTRAINT R_17 FOREIGN KEY (Kod_postavshika) REFERENCES Postavshiki(Kod_postavshika)

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Postavka_diskov

ADD CONSTRAINT R_18 FOREIGN KEY (Kod_posrednika) REFERENCES Posredniki(Kod_posrednika)

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Prodazha_tovara

ADD CONSTRAINT R_14 FOREIGN KEY (Seller_ID) REFERENCES Sellers(Seller_ID)

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Prodazha_tovara

ADD CONSTRAINT R_15 FOREIGN KEY (Kod_tovara) REFERENCES Tovar(Kod_tovara)

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

В код была добавлена строка для подсчета дохода в вычисляемом поле dohod as kolvo*cena, таблицы Prodazha_tovara. При этом данному полю было присвоено значение по умолчанию NULL.