Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Описание логической схемы




Одним из главных объектов схемы является Транспортное средство (ТС). ТС имеет уникальный госномер, марку автомобиля, содержится в гараже, ссылка на который указана в поле id_гаража. Гаражи является объектами гаражного хозяйства и перечислены в таблице «Объект». ТС может поступать в хозяйство. Дата поступления указывается в поле «дата_поступления». Также со временем ТС списываются; дата списания указывается в поле «дата_списания».

Каждое ТС характеризуется категорией (связь «Категория» - «ТС», один ко многим). Одна категория может назначаться нескольким транспортным средствам.

Каждая категория имеет свою уникальную характеристику. Набор характеристик в базе уникален (это обеспечивается уникальным индексом по названию характеристики).

Назначение характеристик категориям определяется таблицей «Характеристика категории». Согласно заданию, каждая из категорий имеет характеристики, свойственные только этой категории. Чтобы обеспечить уникальность пар Категория-Характеристика, связь таблиц «Характеристика» - «Характеристика категории» сделана определяющей (identifying), т.е. в таблице «Характеристика категории» ссылка на id характеристики является первичным ключом. Одной характеристике можно сопоставить только одну категорию. Связь Категория-Характеристика_категории – один ко многим.

Значение же характеристики конкретного транспортного средства в числовом выражении хранится в таблице «Характеристика ТС», которая связана с одной стороны со справочником характеристик «Характеристика», а с другой с таблицей «ТС». Связь таблицы «Характеристика» с «Характеристикой ТС» - один ко многим, т.к. значение одной характеристики можно назначать многим ТС. Связь «ТС» - «Характеристика ТС» один ко многим – оставлена на тот случай, если понадобится привязывать несколько характеристик к одной машине.

Транспортные средствами могут управлять водители, перечисленные в таблице «Водитель машины». Эта таблица закрепляет конкретного водителя за конкретными транспортными средствами. Связи с родительскими таблицами – один ко многим, один водитель может управлять несколькими машинами, а одну машину могут водить несколько водителей. Уникальность сочетаний обеспечивается первичным ключом, в который входят id_ТС и id_сотрудника.

Водители являются сотрудниками автопредприятия.

Все сотрудники предприятия перечислены в таблице «Сотрудник». Для каждого сотрудника указывается его ФИО; должность (id_должности); подразделение, в котором он работает (id_подразделения); «начальник подразделения» - признак – является ли он начальником данного подразделения. Сюда заносится 1 (единица), если сотрудник является начальником, либо 0 (ноль), если не является. Связь «Подразделение» - «Сотрудник» один ко многим, в одном подразделении может работать много сотрудников.

Таблица «Подразделение» - иерархическая сущность. В ней перечисляются все подразделения предприятия: бригады, участки, цеха. В поле «id_родительского_подр» указывается ссылка (один ко многим) на старшее подразделение (на одно старшее подразделение может быть много ссылок в младших). Т.е. таблица имеет ссылку на саму себя.

Таблица «Должность» тоже иерархическая. В поле «id_родителя» указана ссылка на старшую должность, т.е. какая должность является начальствующей для данной. Аналогично, на одну старшую должность может быть несколько ссылок в младших. Т.е. таблица имеет ссылку на саму себя.

Каждый сотрудник имеет определенную профессию. Профессия указывается не непосредственно, а через характеристику профессии в таблице «Профатрибуты сотрудника».

«Профатрибуты сотрудника» содержит ссылку на справочник атрибутов профессий «Атрибут профессии». В ней должны быть перечислены такие характеристики, как стаж, разряд и т.п. Также здесь можно указать специализацию сотрудника: двигателист, шиномонтажник, кузовщик и т.п. Связь один ко многим, т.е. один сотрудник может иметь несколько профессий (и соответственно несколько атрибутов профессий)

Конкретное числовое выражение атрибута (стаж в годах, например) конкретного сотрудника указывается в поле «значение» в таблице «Профатрибуты сотрудника».

Наконец, «Атрибут профессии» несет в себе ссылку на собственно профессию – таблицу «Профессия». Связь один к одному позволяет одной профессии иметь несколько атрибутов.

Транспортные средства подлежат обслуживанию и ремонту. Сведения об этом заносятся в три таблицы: «Обслуживание», «Работа», «Детали».

Под обслуживанием будем понимать сложный непрерывный процесс, который может занять несколько дней, состоящий из различных работ и требующий замены деталей. Начало и конец обслуживания отмечаются в полях «дата начала» и «дата окончания». Ссылка на ТС указывается в поле «id_ТС». Одно ТС может иметь много обслуживаний.

Перечень работ заносится в таблицу «Работа». Работы привязаны к обслуживанию через поле «id_обслуживания». Связь один ко многим, одно обслуживание может состоять из многих работа. Работы выполняются в определенном порядке, поэтому номер работы указывается в поле «Порядковый номер». Каждую работу проводит сотрудник, указанный в поле «исполнитель» - это ссылка на таблицу сотрудников. Стоимость работы и затраченное время указаны в полях с соответствующими названиями. Описание работы (текст) указывается в поле «описание работы».

Также обслуживание или ремонт требует замены деталей, агрегатов и материалов (масла, например). Перечень всех этих использованных деталей и материалов заносится в таблицу «Детали». Привязка к обслуживанию сделана через поле «id_обслуживания». Связь один ко многим, одно обслуживание может потребовать нескольких деталей. В поле «деталь» указывается название детали, агрегата или материала. В полях «количество» и «цена» - соответственно количество единиц (штук, комплектов, литров и т.п.) и цена за одну единицу.

Весь транспорт хозяйства ездит (т.е. совершает рейсы) по каким-либо маршрутам, которые перечислены в таблице «Маршрут». Каждый маршрут определяется пунктом отправки и пунктом назначения – в полях «откуда» и «куда». Также (для подсчета затрат) для него указывается пробег в километрах – в поле «пробег».

Каждое транспортное средство, перемещая в конкретные сроки груз или пассажиров по маршруту, совершает рейс. Рейсы заносятся в таблицу «Рейс». Машина указывается в поле «id_ТС» (ссылка на таблицу «ТС»). Одна машина может совершать множество рейсов. Рейс имеет ссылку на маршрут через поле «id_маршрута». Связь один ко многим говорит о том, что по одному маршруту совершается множество рейсов. Даты отправки и прибытия заносятся в полях «дата_отправления» и дата «прибытия». Водитель, управляющий транспортным средством в рейсе, заносится в поле «id_водителя» - это ссылка на таблицу «Водитель машины». Один водитель на одном ТС может совершать множество рейсов. Для грузовых машин следует заполнять вес груза в поле «груз», а для пассажирских – поле «число_пассажиров».

Пассажирский транспорт переводит пассажиров по регулярным фиксированным маршрутам. Поэтому такие маршруты перечислены в отдельной таблице «Регулярный маршрут». В ней стоят ссылки на маршрут («id_маршрута») и на ТС («id_ТС»). Ссылки на родительские таблицы один ко многим: например, один автобус может совершать регулярные рейсы по разным маршрутам.

 

Типы данных в физической схеме возьмем из скрипта для создания схемы:

 

CREATE TABLE attribute (

id_attr INTEGER NOT NULL,

attr_name VARCHAR2(20) NOT NULL,

measure_unit VARCHAR2(5) NOT NULL

);

 

 

CREATE TABLE car (

id_car INTEGER NOT NULL,

id_category INTEGER NOT NULL,

brand VARCHAR2(15) NOT NULL,

dat_in DATE NOT NULL,

dat_out DATE NULL,

id_garage INTEGER NULL,

nomer VARCHAR2(10) NOT NULL

);

 

 

CREATE TABLE car_attribute (

id_car INTEGER NOT NULL,

id_attr INTEGER NOT NULL,

car_attr_val NUMBER(15,3) NOT NULL

);

 

 

CREATE TABLE category (

id_category INTEGER NOT NULL,

category_name VARCHAR2(15) NOT NULL

);

 

 

CREATE TABLE category_attr (

id_attr INTEGER NOT NULL,

id_category INTEGER NOT NULL

);

 

CREATE TABLE department (

id_department INTEGER NOT NULL,

id_parent_dep INTEGER NULL,

dep_name VARCHAR2(20) NOT NULL

);

 

 

CREATE TABLE driver (

id_car INTEGER NOT NULL,

id_employee INTEGER NOT NULL

);

 

 

CREATE TABLE employee (

id_employee INTEGER NOT NULL,

emp_name VARCHAR2(18) NOT NULL,

id_position INTEGER NOT NULL,

id_department INTEGER NOT NULL,

boss NUMBER(1) DEFAULT 0 NOT NULL

CHECK (boss IN (1, 0))

);

 

CREATE TABLE employee_prof_attr (

id_employee INTEGER NOT NULL,

val VARCHAR2(20) NOT NULL,

id_prof_attr INTEGER NOT NULL

);

 

CREATE TABLE job (

id_service INTEGER NOT NULL,

num_order INTEGER NOT NULL,

id_employee INTEGER NOT NULL,

job_price INTEGER NOT NULL,

hours_count NUMBER(4,1) NOT NULL,

description VARCHAR2(50) NULL

);

 

CREATE INDEX XIE1job ON job

(

id_employee ASC

);

 

CREATE TABLE obj (

id_object INTEGER NOT NULL,

object_name VARCHAR2(20) NOT NULL

);

 

 

CREATE TABLE parts (

id_part INTEGER NOT NULL,

part_name VARCHAR2(20) NOT NULL,

amount NUMBER(2,0) NOT NULL,

part_price INTEGER NOT NULL,

id_service INTEGER NOT NULL

);

 

 

CREATE TABLE prof_attr (

id_prof_attr INTEGER NOT NULL,

id_profession INTEGER NOT NULL,

profattr_name VARCHAR2(20) NOT NULL

);

 

 

CREATE TABLE profession (

id_profession INTEGER NOT NULL,

profession_name VARCHAR2(20) NOT NULL

);

 

 

CREATE TABLE regular_trip (

id_route INTEGER NOT NULL,

id_car INTEGER NOT NULL

);

 

 

CREATE TABLE route (

id_route INTEGER NOT NULL,

point_start VARCHAR2(20) NOT NULL,

point_to VARCHAR2(20) NOT NULL,

distance NUMBER(15,1) NULL

);

 

CREATE TABLE service (

id_service INTEGER NOT NULL,

id_car INTEGER NOT NULL,

service_dat_begin DATE NOT NULL,

service_dat_finish DATE NOT NULL

);

 

CREATE TABLE trip (

id_route INTEGER NOT NULL,

id_car INTEGER NOT NULL,

dat_start DATE NOT NULL,

dat_finish DATE NOT NULL,

passenger_count INTEGER NULL,

cargo_weight NUMBER NULL,

id_driver INTEGER NOT NULL

);

 

 


Поделиться:

Дата добавления: 2015-09-15; просмотров: 45; Мы поможем в написании вашей работы!; Нарушение авторских прав


<== предыдущая лекция | следующая лекция ==>
ПРИЛОЖЕНИЕ. При прямом измерении величины х получают ряд наблюдений: х1, х2, | Чтение Корана
lektsii.com - Лекции.Ком - 2014-2024 год. (0.013 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты