Мегаобучалка Главная | О нас | Обратная связь


База данных рабочего места



2019-07-03 154 Обсуждений (0)
База данных рабочего места 0.00 из 5.00 0 оценок




Проектирование

 

Для разработки информационной системы, автоматизирующей работу работу фирмы, производящей мебель, следует описать следующие объекты и их свойства:

1. Водители: номер водителя, фамилия, имя, отчество.

Первичный ключ: NOMER_V

2.Автобусы: номер автобуса, название модели, номер водителя, дата введения в эксплуатацию

Первичный ключ: NOMER_A

Внешний ключ: NOMER_V.

3.Контролеры: номер контролера, фамилия, имя, отчество.

Первичный ключ: NOMER_K

4.Маршрут: номер маршрута, название, протяженность, среднее время.

Первичный ключ: NOMER_M

5.Раписание рейсов: номер рейса, дата отправления, номер маршрута, намер контролера, номер автобуса.

Первичный ключ: NOMER_R

Внешние ключи: NOMER_M, NOMER_A, NOMER_K

 

6.Заказ: номер заказа, дата приема заказа, дата выполнения заказа, номер клиента.

Первичный ключ: N_ZAKAZA

Внешние ключи: NOMER_V, NOMER_A,

 

Нормализация

Обоснование состояния 3-ей нормальной формы

 

Все разработанные таблицы находятся в 1-ой нормальной форме, т.к. все значения атомарные, т.е. неделимые. Это можно обосновать тем, что каждое значение несет в себе какой-то определенный смысл. Безусловно, можно поделить значение на более мелкие составляющие, например, символы, из которых состоит это значение, но сразу же потеряется его смысловая нагрузка.

Во всех таблицах данной БД каждый не ключевой атрибут полностью функционально зависит от соответствующего первичного ключа. Например, каждому значению первичного ключа в таблице «Изделие» в любой момент времени соответствует только одно значение номер изделия, наименование. Аналогично и для других не ключевых атрибутов во всех таблицах существует полная функциональная зависимость от первичного ключа, и поэтому таблицы находятся во 2-ой нормальной форме.

Во всех таблицах все не ключевые атрибуты взаимно независимы. Например, не ключевые атрибуты таблицы «Клиент» функционально не зависят друг от друга (фамилия и имя не зависят от адреса и т.д.. Аналогично доказывается взаимная независимость не ключевых атрибутов всех остальных таблиц данной БД, поэтому они находятся в 3-ей нормальной форме, а, следовательно, свободны от избыточности и связанными с ней аномалиями обновления.

 

 


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

 

1) Таблица “автобусы”

CREATE TABLE A (

NOMER_A INTEGER NOT NULL,

MODEL VARCHAR(20),

NOMER_V INTEGER,

DATAV TIMESTAMP

)

2) Таблица “ контролеры ”

CREATE TABLE K (

NOMER_K INTEGER NOT NULL,

FAMILIA VARCHAR(20),

NAME VARCHAR(20),

OTCH VARCHAR(20)

)

3) Таблица “ маршруты ”

CREATE TABLE M (

NOMER_M INTEGER NOT NULL,

NAZVAN VARCHAR(20),

PROT INTEGER,

SRTIME INTEGER

)

4) Таблица “ рейсы ”

CREATE TABLE R (

NOMER_R INTEGER NOT NULL,

DATAOTPR TIMESTAMP,

NOMER_M INTEGER,

NOMER_K INTEGER,

NOMER_A INTEGER

)

5) Таблица “ технический осмотр ”

CREATE TABLE TECH_OSMOTR (

NOMER_TO INTEGER NOT NULL,

DATETO TIMESTAMP NOT NULL,

REZULT VARCHAR(50),

NOMER_V INTEGER,

NOMER_A INTEGER

)

6) Таблица “водители ”

CREATE TABLE V (

NOMER_V INTEGER NOT NULL,

FAMILIA VARCHAR(20),

NAME VARCHAR(20),

OTCH VARCHAR(20)

)


Создание триггеров

Создание триггера для заполнения номера компонента в таблице «Автобус»:

CREATE TRIGGER INS_A FOR A BEFORE INSERT POSITION 0 as declare variable cn integer;

begin

select max(nomer_a) from a into :cn;

if (cn is null) then new.nomer_a=1;

else

new.nomer_a=cn+1;

end

 

Создание триггера для заполнения номера компонента в таблице «Контролер»:

CREATE TRIGGER INS_K FOR K BEFORE INSERT POSITION 0 as declare variable cn integer;

begin

select max(nomer_k) from k into :cn;

if (cn is null) then new.nomer_k=1;

else

new.nomer_k=cn+1;

end

 

Создание триггера для заполнения номера компонента в таблице «маршрут»:

CREATE TRIGGER INS_M FOR M BEFORE INSERT POSITION 0 as declare variable cn integer;

begin

select max(nomer_m) from m into :cn;

if (cn is null) then new.nomer_m=1;

else

new.nomer_m=cn+1;

end

 

Создание триггера для заполнения номера компонента в таблице «Технический осмотр»:

CREATE TRIGGER INS_TO FOR TECH_OSMOTR BEFORE INSERT POSITION 0 as declare variable cn integer;

begin

select max(nomer_to) from tech_osmotr into :cn;

if (cn is null) then new.nomer_to=1;

else

new.nomer_to=cn+1;

end

Создание триггера для заполнения номера компонента в таблице «Заказ»:

CREATE TRIGGER INS_V FOR V BEFORE INSERT POSITION 0 as declare variable cn integer;

begin

select max(nomer_v) from v into :cn;

if (cn is null) then new.nomer_v=1;

else

new.nomer_v=cn+1;

end


Операции на рабочем месте (интерфейс пользователя). Операторы SQL и окна, обеспечивающие пользовательский интерфейс по вводу, выводу и обновлению данных

При запуске прикладной программы появляется главное меню программы. Выбор соответствующих пунктов меню позволяет перейти в диалоговые окна позволяющие просматривать, редактировать и получать статистическую информацию.

 



2019-07-03 154 Обсуждений (0)
База данных рабочего места 0.00 из 5.00 0 оценок









Обсуждение в статье: База данных рабочего места

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (154)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.005 сек.)