Курсовая работа по дисциплине «Базы данных»
Выполнили студенты гр. 3101:
Куприянов Андрей
Полывянный Артем
Санкт Петербург
2009
Описание предметной области
База данных велосипедного магазина. Велосипедный магазин специализируется на продаже 2х основных видов товара: велосипеды и запчасти к велосипедам.
Велосипеды делятся на четыре категории:
1. Хардтейлы (велосипеды только с передним амортизатором (амортизационной вилкой)).
2. Двухподвесы (велосипеды с передним и задним амортизатором (амортизационной вилкой и амортизатором соединяющим передний и задний треугольники рамы)).
3. Триальные (велосипеды для техничного преодоления препятствий без касания земли ногами или другими частями тела).
4. БМХ (велосипеды на колесах маленького диаметра (20 дюймов) для техничного катания).
В свою очередь, каждая из этих категорий делится на разные типы (стили) катания. Хардтейлы делятся на:
1. Кросскантри (XC) Один из самых популярных стилей катания - включает в себя все: лесные тропки с корнями, грунтовые дороги, спуски и подъемы. На таком байке можно отправиться в загородное путешествие, погонять в парке с друзьями, поехать в многодневный поход, или просто скинуть лишний вес. А можно попробовать себя в соревнованиях, которые проводятся летом почти каждый уикенд и год за годом привлекают все больше участников. Кросскантри – это скорость и выносливость, изящность и техничность.
2. Трейл (Trail) Такой стиль представляет собой смешение фрирайдных прыжков, синглтреков и длинных, быстрых кантрийных маршрутов. Современный трейлбайк может выглядеть как облегченный фрирайдный монстр, с которого сбрили лишний вес и убрали несколько сантиметров плюшевого хода, оставив 100 - 150 миллиметров.
3. Дерт (Dirt) Прыжки на специально построенном трамплине с выполнением различных трюков. Велосипед для дерта – все тот же мощный хардтейл небольшой ростовки, сейчас имеется тенденция к максимальному упрощению таких байков, с них снимается передний тормоз, переключатели скоростей, в общем, все, что может помешать Вам сделать самый лучший трюк.
4. Фрирайд (FR) Понятие фрирайд многогранное – это может быть как спуск с горы по неизведанному маршруту, так и какой-нибудь норт-шор, возведенный в лесу неподалеку, или пятиметровый дроп, а, может, и техничная съезжалка в парке. Все, что Вы можете себе позволить на байке – это фрирайд. И для каждого он свой.
Двухподвесы делятся на:
1. Даунхилл (DH) Скоростной спуск на велосипеде. Только вниз. Высокая скорость, резкие повороты, пролеты, техничные участки, постоянно меняющееся покрытие – это все даунхилл. Современный байк для DH – это тяжелый двухподвес с большим ходом передней и задней подвесок, двухкоронной вилкой, широким изогнутым рулем и толстыми покрышками.
2. Кросскантри (XC) Один из самых популярных стилей катания - включает в себя все: лесные тропки с корнями, грунтовые дороги, спуски и подъемы. Велосипед для кросскантри – это легкий двухподвес с ходом задней подвески до 105 мм. На таком байке можно отправиться в загородное путешествие, погонять в парке с друзьями, поехать в многодневный поход, или просто скинуть лишний вес. А можно попробовать себя в соревнованиях, которые проводятся летом почти каждый уикенд и год за годом привлекают все больше участников. Кросскантри – это скорость и выносливость, изящность и техничность.
3. Фрирайд (FR) Понятие фрирайд многогранное – это может быть как спуск с горы по неизведанному маршруту, так и какой-нибудь норт-шор, возведенный в лесу неподалеку, или пятиметровый дроп, а, может, и техничная съезжалка в парке. Современный байк для FR – это тяжелый двухподвес с ходом передней и задней подвесок в 150 – 200 миллиметров. Все, что Вы можете себе позволить на байке – это фрирайд. И для каждого он свой.
Запчасти. Каждый велосипед, как конструктор, состоит из большого числа деталей. Детали (запчасти) разделены на несколько видов (типов).
1. Амортизаторы. Состоят из передних амортизаторов (Marzocchi, RockShox), задних амортизаторов и запасных частей к амортизаторам
2. Колеса. Состоят из втулки, обода, покрышки, камеры, спицы и запасные части для колес.
3. Привод. Состоит из звезды, каретки, кассеты, манетки, переключателя, успокоителя, цепи, шатунов.
4. Рамы.
5. Тормоза. Делятся на дисковые тормоза, ободные тормоза и запчасти к ним.
6. Управление. Вынос, педали, подседельный штырь, седло, рулевая, руль, грипсы.
Так же в магазине представлена велоодежда и защита. Велообувь, защита, одежда, перчатки, шлемы и маски.
В базе необходимо хранить информацию о:
Персоналии магазина:
ФИО
№ телефона
Дата рождения
Профессия
Адрес
Пол
О фирмах производителях и поставщиках:
Название
Адрес
Телефон
О товарах:
Название
Тех характеристики
Свойства
Тип товара
Информация о движении товара:
Тип операции
Цена
Дата
Кол-во
1. Структура базы данных
1.1 Персонал
Название (в базе) | Название (перевод) | Описание |
Код ФИО № телефона Дата рождения Адрес Пол Код профессии | KOD FIO TELEFON BIRTHSDAY ADRES POL KOD_PROFESSII | Уникальный индентификатор работника Фамилия, Имя, Отчество № телефона Дата рождения Адрес Пол Код профессии в таблице Professii |
1.2 Склад
Название (в базе) | Название (перевод) | Описание |
Код товара Код фирмы Код персон Код типа операции Цена Дата Кол-во | KOD_TOVARA KOD_FIRMI KOD_PERSON KOD_TIPA_OPERAZII ZENA DATA KOLICHESTVO | Код товара в таблице Tovar Код фирмы в таблице Firmi Код персоны в таблице Personal Код типа операции в таблице Tipi_operazii Закупочная цена Дата Количество товара участвующего в операции |
1.3 Товар
Название (в базе) | Название (перевод) | Описание |
Код Код типа товара Название | KOD KOD_TIPA_TOVARA NAZVANIE | Уникальный индентификатор товара Код товара в таблице Tipi_tovarov Название товара |
1.4 Типы товаров
Название (в базе) | Название (перевод) | Описание |
Код Название Код фирмы Код типа товара | KOD NAZVANIE KOD_FIRMI KOD_TIPA_TOVARA | Уникальный индентификатор типа товара Название типа товара Код фирмы производителя в таблице Firmi Код родительского типа товаров в таблице Tipi_tovarov |
1.5 Фирмы
Название (в базе) | Название (перевод) | Описание |
Код Название Адрес Телефон Код типа фирмы | KOD NAZVANIE ADRES TELEFON KOD_TIPA_FIRMI | Уникальный индентификатор типа фирмы Название фирмы Адрес Телефон Код типа фирмы в таблице Tipi_firm |
1.6 Технические характеристики
Название (в базе) | Название (перевод) | Описание |
Код товара Код свойства Значение | KOD_TOVARA KOD_SVOISTVA ZNACHENIE | Код товара в таблице Tovar Код свойства в таблице Svoistva Значение характеристики |
1.7 Свойства
Название (в базе) | Название (перевод) | Описание |
Код Название Единицы измерения | KOD NAZVANIE EDINIZI IZMERENIA | Уникальный индентификатор Название свойства Единицы измерения свойства |
1.8 Профессии
Название (в базе) | Название (перевод) | Описание |
Код Название | KOD NAZVANIE | Уникальный индентификатор Название профессии |
1.9 Типы фирм
Название (в базе) | Название (перевод) | Описание |
Код Название | KOD NAZVANIE | Уникальный индентификатор Название фирмы |
1.10 Типы операций
Название (в базе) | Название (перевод) | Описание |
Код Название | KOD NAZVANIE | Уникальный индентификатор Название операции |
123 – Primary key (первичный ключ)
123 – Foreign key (связь)
123 – Uniqe (уникальный)
2. Примеры создания таблиц
create table Professii (KOD NUMBER(5) PRIMARY KEY,
NAZVANIE VARCHAR2(30) UNIQUE
);
create table Personal (KOD NUMBER(5) PRIMARY KEY,
FIO VARCHAR2(50),
TELEFON VARCHAR2(15),
BIRTHSDAY DATE,
ADRES VARCHAR2(30),
POL NUMBER(1),
KOD_PROFESSII NUMBER(5),
UNIQUE (FIO,BIRTHSDAY),
FOREIGN KEY KOD_PROFESSII REFERENCES PROFESSII KOD
);
create table Svoistva (KOD NUMBER(5) PRIMARY KEY,
NAZVANIE VARCHAR2(30),
EDINIZI IZMERENIA VARCHAR2(10)
);
create table Texnicheskie_xarakteristiki (
KOD_TOVARA NUMBER(5),
KOD_SVOISTVA NUMBER(5),
ZNACHENIE NUMBER(5),
FOREIGN KEY KOD_TOVARA REFERENCES TOVARI KOD,
FOREIGN KEY KOD_SVOISTVA REFERENCES SVOISTVA KOD
);
create table Tipi_firm (KOD NUMBER(5) PRIMARY KEY,
NAZVANIE VARCHAR2(30) UNIQUE
);
create table Tipi_operazii (KOD NUMBER(5) PRIMARY KEY,
NAZVANIE VARCHAR2(30) UNIQUE
);
create table Firmi (KOD NUMBER(5) PRIMARY KEY,
NAZVANIE VARCHAR2(30) UNIQUE,
ADRES VARCHAR2(30),
TELEFON VARCHAR2(15),
KOD_TIPA_FIRMI NUMBER(5),
FOREIGN KEY KOD_TIPA_FIRMI REFERENCES TIPI_FIRM KOD
);
create table Tipi_tovarov (KOD NUMBER(5) PRIMARY KEY,
NAZVANIE VARCHAR2(30) UNIQUE,
KOD_FIRMI NUMBER(5),
KOD_TIPA_TOVARA NUMBER(5),
FOREIGN KEY KOD_FIRMI REFERENCES FIRMI KOD,
FOREIGN KEY KOD_TIPA_TOVARA REFERENCES TIPI_TOVAROV KOD
);
create table Tovari (KOD NUMBER(5) PRIMARY KEY,
KOD_TIPA_TOVARA NUMBER(5),
NAZVANIE VARCHAR2(30),
UNIQUE (KOD_TIPA_TOVARA,NAZVANIE),
FOREIGN KEY KOD_TIPA_TOVARA REFERENCES TIPI_TOVAROV KOD
);
create table Sklad (
KOD_TOVARA NUMBER(5),
KOD_FIRMI NUMBER(5),
KOD_PERSON NUMBER(5),
KOD_TIPA_OPERAZII NUMBER(5),
ZENA NUMBER(5),
DATA DATE,
KOLICHESTVO NUMBER(3),
FOREIGN KEY KOD_TOVARA REFERENCES TOVARI KOD,
FOREIGN KEY KOD_FIRMI REFERENCES FIRMI KOD,
FOREIGN KEY KOD_PERSON REFERENCES PERSONAL KOD,
FOREIGN KEY KOD_TIPA_OPERAZII REFERENCES TIPI_OPERAZII KOD
);
3. Примеры создания последовательностей
CREATE SEQUENCE "SEQPERSONAL" MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE;
CREATE SEQUENCE "SEQFIRMI" MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE;