Разработка автоматизированной информационной системы "Автозаправочная станция"

Обеспечение администратора соответствующей информацией для переноса логической модели данных в СУБД. Логические взаимосвязи между элементами данных безотносительно их содержания и физической организации в проекте база данных "Автозаправочная станция".

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 09.06.2013
Размер файла 90,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Разработка автоматизированной информационной системы "Автозаправочная станция"

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

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

Для моделирования предметной области ИС воспользуемся таким средством как ERwin

ERwin - современное средство проектирования баз данных

ERwin - мощное и простое в использовании средство конструирования баз данных завоевавшее широкое признание и популярность.

Оно обеспечивает высочайшую продуктивность труда при разработке и сопровождении приложений с использованием баз данных. На протяжении всего процесса - от логического моделирования требований к информации и бизнес-правил, которые определяют базу данных, до оптимизации физической модели в соответствии с заданными характеристиками - ERwin позволяет наглядно отобразить структуру и основные элементы БД.

ERwin - это не просто мощное средство проектирования, но и инструмент разработки, способный автоматически создавать таблицы и генерировать тысячи строк текста хранимых процедур и триггеров для всех популярных СУБД. Революционная технология Complete-Compare (Завершить-Сравнить) позволяет поддерживать постоянную согласованность модели и базы данных.

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

ERwin облегчает проектирование баз данных. Для этого достаточно создать графическую E-R модель (объект-отношение), удовлетворяющую всем требованиям к данным и ввести бизнес-правила для создания логической модели, которая отображает все элементы, атрибуты, отношения и группировки. Можно расширить возможности ERWin, воспользовавшись уникальной поддержкой пользовательских свойств, для ввода в модель любой дополнительной информации, значимой для деятельности. Развитые средства моделирования помогают лучше спроектировать базу данных. Предусмотрены возможности манипулирования атрибутами путем их буксировки, внесения изменений и нормализации «на лету». Средства редактирования непосредственно на диаграммах позволяют вносить в модель изменения, не открывая специальных диалоговых окон. Навигация по отношениям обеспечивает быстрое перемещение в больших моделях для перехода к родительским или дочерним объектам.

Формируемые системой отчеты позволяют быстро проверить корректность спроектированной базы данных.

ERwin - это не что гораздо большее, чем просто инструмент для «рисования»; он автоматизирует процесс проектирования. Например, ERwin предусматривает возможность создания каталога наиболее часто используемых атрибутов, что обеспечивает согласованность имен и описаний по всему проекту.

Представления БД поддерживаются как интегрированные компоненты модели, что позволяет автоматически отображать в их описаниях изменения, внесенные в базовые таблицы. Автоматический перенос ключей обеспечивает ссылочную целостность базы данных. Кроме того, ERwin позволяет работать с большими моделями общекорпоративного масштаба, разбивая их на фрагменты и легко управляемые подмножества, предоставляя отдельным специалистам возможность сосредоточить свои усилия в определенной области. Возможность сохранения отображений позволяет хранить множество представлений одной предметной области, ориентированных на различную целевую аудиторию. Созданные с помощью ERwin модели данных можно редактировать, просматривать и распечатывать различными способами. В состав ERwin входит RPTwin - простая в использовании, оснащенная графическим интерфейсом утилита для формирования отчетов и встроенное средство для просмотра с настраиваемыми режимами, которые обеспечивают полный контроль над отображением содержимого отчетов. Кроме этого, уникальный интерфейс, построенный на использовании шаблонов, позволяет реализовать единые стандарты проектирования и отображать настройки для всех моделей.

ERwin - не только лучший инструмент для проектирования баз данных, но и средство для их быстрого создания. ERWin оптимизирует модель в соответствии с физическими характеристиками целевой базы данных. В отличие от других инструментальных средств, ERWin автоматически поддерживает согласованность логической и физической схем и осуществляет преобразование логических конструкций, таких как отношения многие-ко-многим, в их реализацию на физическом уровне. ERWin устанавливает естественную динамическую связь между моделью и базой данных, что позволяет реализовать как прямой, так и обратный инжиниринг. Используя эту связь, ERWin автоматически генерирует таблицы, представления, индексы, правила поддержания целостности ссылок (первичных и внешних ключей), устанавливает значения по умолчанию и ограничения для доменов / столбцов. В состав Erwin включен целый ряд оптимизированных шаблонов триггеров, обеспечивающих целостность ссылок, и мощный макроязык, который позволяет создавать собственные триггеры и хранимые процедуры. Таким образом могут быть автоматически сформированы тысячи строк кода, что обеспечивает непревзойденную продуктивность разработки на основе моделей.

2. Физическая модель

Целью создания физической модели является обеспечение администратора соответствующей информацией для переноса логической модели данных в СУБД.

ERWin поддерживает автоматическую генерацию физической модели данных для конкретной СУБД. При этом логическая модель трансформируется в физическую по следующему принципу: сущности становятся таблицами, атрибуты становятся столбцами, а ключи становятся индексами.

3. Логическая модель

Логическая модель представления знаний - модель в представлении знаний.

Логическая модель описывает понятия предметной области, их взаимосвязь, а также ограничения на данные, налагаемые предметной областью.

4. Инфологическая модель

Инфологическая модель - модель предметной области, предназначенная для представления семантики предметной области на самом высоком уровне абстракции. Это означает, что устранена или минимизирована необходимость использовать понятия «низкого уровня», связанные со спецификой физического представления и хранения данных. Так же инфологическая модель должна быть как стабильной, так и неизменной, и являться представлением аспекта пользователя на описанную ранее предметную область.

5. Даталогическая модель

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

«VIP Clienti» - содержит информацию о постоянных клиентах;

«Neftebaza» - содержит информацию о стоимоcти топлива

Перечень атрибутов

Таблица «VIP Clienti» содержит:

id_vip - уникальный идентификатор клиента

Lastname - фамилия клиента

Name - имя клиента

Surname - отчество клиента

Kol-vo TS - количество топлива покупаемое клиентом

Raschetni` schet - расчетный счет клиента

Дата заключения договора - дата заключения договора клиент

Таблица «AZS» содержит:

id_AZS - уникальный номер Автозаправочной cтанции

Lastname directora - фамилия директора Aвтозаправочной cтанции

Name directora- Имя директора Автозаправочной станции

Surname directora - Отчество директора Автозаправочной станции

id_neftebaza - уникальный код поставщика

id_sotrudniki - уникальный номер сотрудника

Cena 95 - цена бензина 95 года

Cena 92 - цена бензина 92 года

Cena 76 - цена бензина 76 года

Cena DT - цена на Дизельное Tопливо

Cena Sug - цена на СУГ

Таблица «Neftebaza» включает в себя:

id_neftebaza - уникальный код базы

Kol-vo 95 - Количество бензина 95 года

Kol-vo 92 - Количество бензина 92 года

Kol-vo 76 - Количество бензина 76 года

Kol-vo DT - Количество Дизельное Топливо

Kol-vo Sug - цена на СУГ

Таблица «Sotrudniki» включает в себя:

id_sotrudniki - уникальный номер сотрудника

Lastname - фамилия сотрудника

Name - имя cотрудника

Surname - отчеcтво cотрудника

Phone - телефон, по которому можно cвязатьcя c cотрудником

Adress - адреc проживания cотрудника

Таблица «Dolzhnost» cодержит:

id_Dolzh - уникальный код должности

Dolzhnost - Должность сотрудников

Oklad - оклад

Zarplata - зарплата

id_sotrudniki - уникальный номер cотрудника

Разработка БД

CREATE TABLE AZS

(

id_azs int IDENTITY (1,1),

Name_directora char(30) NULL,

Surname_directora char(30) NULL,

Lastname_directora char(30) NULL,

Cena_95 money NULL,

Cena_92 money NULL,

Cena_76 money NULL,

Cena_DT money NULL,

Cena_Sug money NULL,

id_sotrudniki int NULL,

id_neftebaza int NULL,

id_vip int NULL

)

go

ALTER TABLE AZS

ADD CONSTRAINT XPKAZS PRIMARY KEY CLUSTERED (id_azs ASC)

go

CREATE TABLE Dolzhnost

(

id_dolzh int IDENTITY (1,1),

Dolzhnost char(30) NULL,

Oklad int NULL,

Zarplata int NULL,

id_sotrudniki int NULL

)

go

ALTER TABLE Dolzhnost

ADD CONSTRAINT XPKDolzhnost PRIMARY KEY CLUSTERED (id_dolzh ASC)

go

CREATE TABLE Neftebaza

(

id_neftebaza int IDENTITY (1,1),

Kol_vo_95 int NULL,

Kol_vo_92 int NULL,

Kol_vo_76 int NULL,

Kol_vo_DT int NULL,

Kol_vo_Sug int NULL

)

go

ALTER TABLE Neftebaza

ADD CONSTRAINT XPKNeftebaza PRIMARY KEY CLUSTERED (id_neftebaza ASC)

go

CREATE TABLE Sotrudniki

(

id_sotrudniki int IDENTITY (1,1),

Name char(30) NULL,

Surname char(30) NULL,

Lastname char(30) NULL,

Pol char(10) NULL,

Adress char(50) NULL,

Phone char(12) NULL

)

go

ALTER TABLE Sotrudniki

ADD CONSTRAINT XPKSotrudniki PRIMARY KEY CLUSTERED (id_sotrudniki ASC)

go

CREATE TABLE Vip_Client

(

id_vip int IDENTITY (1,1),

Name char(30) NULL,

Surname char(30) NULL,

Lastname char(30) NULL,

Kol_vo_TS int NULL,

Raschetni`_schet int NULL

)

go

ALTER TABLE Vip_Client

ADD CONSTRAINT XPKVip_Client PRIMARY KEY CLUSTERED (id_vip ASC)

go

ALTER TABLE AZS

ADD CONSTRAINT R_3 FOREIGN KEY (id_sotrudniki) REFERENCES Sotrudniki (id_sotrudniki)

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE AZS

ADD CONSTRAINT R_4 FOREIGN KEY (id_neftebaza) REFERENCES Neftebaza (id_neftebaza)

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE AZS

ADD CONSTRAINT R_5 FOREIGN KEY (id_vip) REFERENCES Vip_Client (id_vip)

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Dolzhnost

ADD CONSTRAINT R_6 FOREIGN KEY (id_sotrudniki) REFERENCES Sotrudniki (id_sotrudniki)

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

CREATE TRIGGER tD_AZS ON AZS FOR DELETE AS

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* DELETE trigger on AZS */

BEGIN

DECLARE @errno int,

@errmsg varchar(255)

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* Sotrudniki R/3 AZS on child delete no action */

/* ERWIN_RELATION:CHECKSUM= «00036b45», PARENT_OWNER=»», PARENT_TABLE= «Sotrudniki»

CHILD_OWNER=»», CHILD_TABLE= «AZS»

P2C_VERB_PHRASE= «R/3», C2P_VERB_PHRASE=»»,

FK_CONSTRAINT=»», FK_COLUMNS= «id_sotrudniki» */

IF EXISTS (SELECT * FROM deleted, Sotrudniki

WHERE

/*%JoinFKPK (deleted, Sotrudniki,» =»,» AND») */

deleted.id_sotrudniki = Sotrudniki.id_sotrudniki AND

NOT EXISTS (

SELECT * FROM AZS

WHERE

/*%JoinFKPK (AZS, Sotrudniki,» =»,» AND») */

AZS.id_sotrudniki = Sotrudniki.id_sotrudniki

)

)

BEGIN

SELECT @errno = 30010,

@errmsg = 'Cannot delete last AZS because Sotrudniki exists.'

GOTO ERROR

END

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* Neftebaza R/4 AZS on child delete no action */

/* ERWIN_RELATION:CHECKSUM= «00000000», PARENT_OWNER=»», PARENT_TABLE= «Neftebaza»

CHILD_OWNER=»», CHILD_TABLE= «AZS»

P2C_VERB_PHRASE= «R/4», C2P_VERB_PHRASE=»»,

FK_CONSTRAINT=»», FK_COLUMNS= «id_neftebaza» */

IF EXISTS (SELECT * FROM deleted, Neftebaza

WHERE

/*%JoinFKPK (deleted, Neftebaza,» =»,» AND») */

deleted.id_neftebaza = Neftebaza.id_neftebaza AND

NOT EXISTS (

SELECT * FROM AZS

WHERE

/*%JoinFKPK (AZS, Neftebaza,» =»,» AND») */

AZS.id_neftebaza = Neftebaza.id_neftebaza

)

)

BEGIN

SELECT @errno = 30010,

@errmsg = 'Cannot delete last AZS because Neftebaza exists.'

GOTO ERROR

END

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* Vip_Client R/5 AZS on child delete no action */

/* ERWIN_RELATION:CHECKSUM= «00000000», PARENT_OWNER=»», PARENT_TABLE= «Vip_Client»

CHILD_OWNER=»», CHILD_TABLE= «AZS»

P2C_VERB_PHRASE= «R/5», C2P_VERB_PHRASE=»»,

FK_CONSTRAINT=»», FK_COLUMNS= «id_vip» */

IF EXISTS (SELECT * FROM deleted, Vip_Client

WHERE

/*%JoinFKPK (deleted, Vip_Client,» =»,» AND») */

deleted.id_vip = Vip_Client.id_vip AND

NOT EXISTS (

SELECT * FROM AZS

WHERE

/*%JoinFKPK (AZS, Vip_Client,» =»,» AND») */

AZS.id_vip = Vip_Client.id_vip

)

)

BEGIN

SELECT @errno = 30010,

@errmsg = 'Cannot delete last AZS because Vip_Client exists.'

GOTO ERROR

END

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

RETURN

ERROR:

raiserror @errno @errmsg

rollback transaction

END

go

CREATE TRIGGER tU_AZS ON AZS FOR UPDATE AS

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* UPDATE trigger on AZS */

BEGIN

DECLARE @NUMROWS int,

@nullcnt int,

@validcnt int,

@insid_azs int,

@errno int,

@errmsg varchar(255)

SELECT @NUMROWS = @@rowcount

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* Sotrudniki R/3 AZS on child update no action */

/* ERWIN_RELATION:CHECKSUM= «000450b4», PARENT_OWNER=»», PARENT_TABLE= «Sotrudniki»

CHILD_OWNER=»», CHILD_TABLE= «AZS»

P2C_VERB_PHRASE= «R/3», C2P_VERB_PHRASE=»»,

FK_CONSTRAINT=»», FK_COLUMNS= «id_sotrudniki» */

IF

/*%ChildFK (» OR», UPDATE) */

UPDATE (id_sotrudniki)

BEGIN

SELECT @nullcnt = 0

SELECT @validcnt = count(*)

FROM inserted, Sotrudniki

WHERE

/*%JoinFKPK (inserted, Sotrudniki) */

inserted.id_sotrudniki = Sotrudniki.id_sotrudniki

/*%NotnullFK (inserted,» IS NULL», «select @nullcnt = count(*) from inserted where»,» AND») */

select @nullcnt = count(*) from inserted where

inserted.id_sotrudniki IS NULL

IF @validcnt + @nullcnt!= @NUMROWS

BEGIN

SELECT @errno = 30007,

@errmsg = 'Cannot update AZS because Sotrudniki does not exist.'

GOTO ERROR

END

END

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* Neftebaza R/4 AZS on child update no action */

/* ERWIN_RELATION:CHECKSUM= «00000000», PARENT_OWNER=»», PARENT_TABLE= «Neftebaza»

CHILD_OWNER=»», CHILD_TABLE= «AZS»

P2C_VERB_PHRASE= «R/4», C2P_VERB_PHRASE=»»,

FK_CONSTRAINT=»», FK_COLUMNS= «id_neftebaza» */

IF

/*%ChildFK (» OR», UPDATE) */

UPDATE (id_neftebaza)

BEGIN

SELECT @nullcnt = 0

SELECT @validcnt = count(*)

FROM inserted, Neftebaza

WHERE

/*%JoinFKPK (inserted, Neftebaza) */

inserted.id_neftebaza = Neftebaza.id_neftebaza

/*%NotnullFK (inserted,» IS NULL», «select @nullcnt = count(*) from inserted where»,» AND») */

select @nullcnt = count(*) from inserted where

inserted.id_neftebaza IS NULL

IF @validcnt + @nullcnt!= @NUMROWS

BEGIN

SELECT @errno = 30007,

@errmsg = 'Cannot update AZS because Neftebaza does not exist.'

GOTO ERROR

END

END

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* Vip_Client R/5 AZS on child update no action */

/* ERWIN_RELATION:CHECKSUM= «00000000», PARENT_OWNER=»», PARENT_TABLE= «Vip_Client»

CHILD_OWNER=»», CHILD_TABLE= «AZS»

P2C_VERB_PHRASE= «R/5», C2P_VERB_PHRASE=»»,

FK_CONSTRAINT=»», FK_COLUMNS= «id_vip» */

IF

/*%ChildFK (» OR», UPDATE) */

UPDATE (id_vip)

BEGIN

SELECT @nullcnt = 0

SELECT @validcnt = count(*)

FROM inserted, Vip_Client

WHERE

/*%JoinFKPK (inserted, Vip_Client) */

inserted.id_vip = Vip_Client.id_vip

/*%NotnullFK (inserted,» IS NULL», «select @nullcnt = count(*) from inserted where»,» AND») */

select @nullcnt = count(*) from inserted where

inserted.id_vip IS NULL

IF @validcnt + @nullcnt!= @NUMROWS

BEGIN

SELECT @errno = 30007,

@errmsg = 'Cannot update AZS because Vip_Client does not exist.'

GOTO ERROR

END

END

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

RETURN

ERROR:

raiserror @errno @errmsg

rollback transaction

END

go

CREATE TRIGGER tD_Dolzhnost ON Dolzhnost FOR DELETE AS

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* DELETE trigger on Dolzhnost */

BEGIN

DECLARE @errno int,

@errmsg varchar(255)

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* Sotrudniki R/6 Dolzhnost on child delete no action */

/* ERWIN_RELATION:CHECKSUM= «00014656», PARENT_OWNER=»», PARENT_TABLE= «Sotrudniki»

CHILD_OWNER=»», CHILD_TABLE= «Dolzhnost»

P2C_VERB_PHRASE= «R/6», C2P_VERB_PHRASE=»»,

FK_CONSTRAINT=»», FK_COLUMNS= «id_sotrudniki» */

IF EXISTS (SELECT * FROM deleted, Sotrudniki

WHERE

/*%JoinFKPK (deleted, Sotrudniki,» =»,» AND») */

deleted.id_sotrudniki = Sotrudniki.id_sotrudniki AND

NOT EXISTS (

SELECT * FROM Dolzhnost

WHERE

/*%JoinFKPK (Dolzhnost, Sotrudniki,» =»,» AND») */

Dolzhnost.id_sotrudniki = Sotrudniki.id_sotrudniki

)

)

BEGIN

SELECT @errno = 30010,

@errmsg = 'Cannot delete last Dolzhnost because Sotrudniki exists.'

GOTO ERROR

END

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

RETURN

ERROR:

raiserror @errno @errmsg

rollback transaction

END

go

CREATE TRIGGER tU_Dolzhnost ON Dolzhnost FOR UPDATE AS

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* UPDATE trigger on Dolzhnost */

BEGIN

DECLARE @NUMROWS int,

@nullcnt int,

@validcnt int,

@insid_dolzh int,

@errno int,

@errmsg varchar(255)

SELECT @NUMROWS = @@rowcount

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* Sotrudniki R/6 Dolzhnost on child update no action */

/* ERWIN_RELATION:CHECKSUM= «00018476», PARENT_OWNER=»», PARENT_TABLE= «Sotrudniki»

CHILD_OWNER=»», CHILD_TABLE= «Dolzhnost»

P2C_VERB_PHRASE= «R/6», C2P_VERB_PHRASE=»»,

FK_CONSTRAINT=»», FK_COLUMNS= «id_sotrudniki» */

IF

/*%ChildFK (» OR», UPDATE) */

UPDATE (id_sotrudniki)

BEGIN

SELECT @nullcnt = 0

SELECT @validcnt = count(*)

FROM inserted, Sotrudniki

WHERE

/*%JoinFKPK (inserted, Sotrudniki) */

inserted.id_sotrudniki = Sotrudniki.id_sotrudniki

/*%NotnullFK (inserted,» IS NULL», «select @nullcnt = count(*) from inserted where»,» AND») */

select @nullcnt = count(*) from inserted where

inserted.id_sotrudniki IS NULL

IF @validcnt + @nullcnt!= @NUMROWS

BEGIN

SELECT @errno = 30007,

@errmsg = 'Cannot update Dolzhnost because Sotrudniki does not exist.'

GOTO ERROR

END

END

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

RETURN

ERROR:

raiserror @errno @errmsg

rollback transaction

END

go

CREATE TRIGGER tD_Neftebaza ON Neftebaza FOR DELETE AS

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* DELETE trigger on Neftebaza */

BEGIN

DECLARE @errno int,

@errmsg varchar(255)

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* Neftebaza R/4 AZS on parent delete no action */

/* ERWIN_RELATION:CHECKSUM= «0000efe9», PARENT_OWNER=»», PARENT_TABLE= «Neftebaza»

CHILD_OWNER=»», CHILD_TABLE= «AZS»

P2C_VERB_PHRASE= «R/4», C2P_VERB_PHRASE=»»,

FK_CONSTRAINT=»», FK_COLUMNS= «id_neftebaza» */

IF EXISTS (

SELECT * FROM deleted, AZS

WHERE

/* %JoinFKPK (AZS, deleted,» =»,» AND») */

AZS.id_neftebaza = deleted.id_neftebaza

)

BEGIN

SELECT @errno = 30001,

@errmsg = 'Cannot delete Neftebaza because AZS exists.'

GOTO ERROR

END

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

RETURN

ERROR:

raiserror @errno @errmsg

rollback transaction

END

go

CREATE TRIGGER tU_Neftebaza ON Neftebaza FOR UPDATE AS

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* UPDATE trigger on Neftebaza */

BEGIN

DECLARE @NUMROWS int,

@nullcnt int,

@validcnt int,

@insid_neftebaza int,

@errno int,

@errmsg varchar(255)

SELECT @NUMROWS = @@rowcount

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* Neftebaza R/4 AZS on parent update no action */

/* ERWIN_RELATION:CHECKSUM= «000112db», PARENT_OWNER=»», PARENT_TABLE= «Neftebaza»

CHILD_OWNER=»», CHILD_TABLE= «AZS»

P2C_VERB_PHRASE= «R/4», C2P_VERB_PHRASE=»»,

FK_CONSTRAINT=»», FK_COLUMNS= «id_neftebaza» */

IF

/*%ParentPK (» OR», UPDATE) */

UPDATE (id_neftebaza)

BEGIN

IF EXISTS (

SELECT * FROM deleted, AZS

WHERE

/* %JoinFKPK (AZS, deleted,» =»,» AND») */

AZS.id_neftebaza = deleted.id_neftebaza

)

BEGIN

SELECT @errno = 30005,

@errmsg = 'Cannot update Neftebaza because AZS exists.'

GOTO ERROR

END

END

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

RETURN

ERROR:

raiserror @errno @errmsg

rollback transaction

END

go

CREATE TRIGGER tD_Sotrudniki ON Sotrudniki FOR DELETE AS

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* DELETE trigger on Sotrudniki */

BEGIN

DECLARE @errno int,

@errmsg varchar(255)

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* Sotrudniki R/3 AZS on parent delete no action */

/* ERWIN_RELATION:CHECKSUM= «0001f4dc», PARENT_OWNER=»», PARENT_TABLE= «Sotrudniki»

CHILD_OWNER=»», CHILD_TABLE= «AZS»

P2C_VERB_PHRASE= «R/3», C2P_VERB_PHRASE=»»,

FK_CONSTRAINT=»», FK_COLUMNS= «id_sotrudniki» */

IF EXISTS (

SELECT * FROM deleted, AZS

WHERE

/* %JoinFKPK (AZS, deleted,» =»,» AND») */

AZS.id_sotrudniki = deleted.id_sotrudniki

)

BEGIN

SELECT @errno = 30001,

@errmsg = 'Cannot delete Sotrudniki because AZS exists.'

GOTO ERROR

END

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* Sotrudniki R/6 Dolzhnost on parent delete no action */

/* ERWIN_RELATION:CHECKSUM= «00000000», PARENT_OWNER=»», PARENT_TABLE= «Sotrudniki»

CHILD_OWNER=»», CHILD_TABLE= «Dolzhnost»

P2C_VERB_PHRASE= «R/6», C2P_VERB_PHRASE=»»,

FK_CONSTRAINT=»», FK_COLUMNS= «id_sotrudniki» */

IF EXISTS (

SELECT * FROM deleted, Dolzhnost

WHERE

/* %JoinFKPK (Dolzhnost, deleted,» =»,» AND») */

Dolzhnost.id_sotrudniki = deleted.id_sotrudniki

)

BEGIN

SELECT @errno = 30001,

@errmsg = 'Cannot delete Sotrudniki because Dolzhnost exists.'

GOTO ERROR

END

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

RETURN

ERROR:

raiserror @errno @errmsg

rollback transaction

END

go

CREATE TRIGGER tU_Sotrudniki ON Sotrudniki FOR UPDATE AS

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* UPDATE trigger on Sotrudniki */

BEGIN

DECLARE @NUMROWS int,

@nullcnt int,

@validcnt int,

@insid_sotrudniki int,

@errno int,

@errmsg varchar(255)

SELECT @NUMROWS = @@rowcount

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* Sotrudniki R/3 AZS on parent update no action */

/* ERWIN_RELATION:CHECKSUM= «000225c2», PARENT_OWNER=»», PARENT_TABLE= «Sotrudniki»

CHILD_OWNER=»», CHILD_TABLE= «AZS»

P2C_VERB_PHRASE= «R/3», C2P_VERB_PHRASE=»»,

FK_CONSTRAINT=»», FK_COLUMNS= «id_sotrudniki» */

IF

/*%ParentPK (» OR», UPDATE) */

UPDATE (id_sotrudniki)

BEGIN

IF EXISTS (

SELECT * FROM deleted, AZS

WHERE

/* %JoinFKPK (AZS, deleted,» =»,» AND») */

AZS.id_sotrudniki = deleted.id_sotrudniki

)

BEGIN

SELECT @errno = 30005,

@errmsg = 'Cannot update Sotrudniki because AZS exists.'

GOTO ERROR

END

END

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* Sotrudniki R/6 Dolzhnost on parent update no action */

/* ERWIN_RELATION:CHECKSUM= «00000000», PARENT_OWNER=»», PARENT_TABLE= «Sotrudniki»

CHILD_OWNER=»», CHILD_TABLE= «Dolzhnost»

P2C_VERB_PHRASE= «R/6», C2P_VERB_PHRASE=»»,

FK_CONSTRAINT=»», FK_COLUMNS= «id_sotrudniki» */

IF

/*%ParentPK (» OR», UPDATE) */

UPDATE (id_sotrudniki)

BEGIN

IF EXISTS (

SELECT * FROM deleted, Dolzhnost

WHERE

/* %JoinFKPK (Dolzhnost, deleted,» =»,» AND») */

Dolzhnost.id_sotrudniki = deleted.id_sotrudniki

)

BEGIN

SELECT @errno = 30005,

@errmsg = 'Cannot update Sotrudniki because Dolzhnost exists.'

GOTO ERROR

END

END

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

RETURN

ERROR:

raiserror @errno @errmsg

rollback transaction

END

go

CREATE TRIGGER tD_Vip_Client ON Vip_Client FOR DELETE AS

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* DELETE trigger on Vip_Client */

BEGIN

DECLARE @errno int,

@errmsg varchar(255)

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* Vip_Client R/5 AZS on parent delete no action */

/* ERWIN_RELATION:CHECKSUM= «0000e7ea», PARENT_OWNER=»», PARENT_TABLE= «Vip_Client»

CHILD_OWNER=»», CHILD_TABLE= «AZS»

P2C_VERB_PHRASE= «R/5», C2P_VERB_PHRASE=»»,

FK_CONSTRAINT=»», FK_COLUMNS= «id_vip» */

IF EXISTS (

SELECT * FROM deleted, AZS

WHERE

/* %JoinFKPK (AZS, deleted,» =»,» AND») */

AZS.id_vip = deleted.id_vip

)

BEGIN

SELECT @errno = 30001,

@errmsg = 'Cannot delete Vip_Client because AZS exists.'

GOTO ERROR

END

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

RETURN

ERROR:

raiserror @errno @errmsg

rollback transaction

END

go

CREATE TRIGGER tU_Vip_Client ON Vip_Client FOR UPDATE AS

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* UPDATE trigger on Vip_Client */

BEGIN

DECLARE @NUMROWS int,

@nullcnt int,

@validcnt int,

@insid_vip int,

@errno int,

@errmsg varchar(255)

SELECT @NUMROWS = @@rowcount

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

/* Vip_Client R/5 AZS on parent update no action */

/* ERWIN_RELATION:CHECKSUM= «0000fd2c», PARENT_OWNER=»», PARENT_TABLE= «Vip_Client»

CHILD_OWNER=»», CHILD_TABLE= «AZS»

P2C_VERB_PHRASE= «R/5», C2P_VERB_PHRASE=»»,

FK_CONSTRAINT=»», FK_COLUMNS= «id_vip» */

IF

/*%ParentPK (» OR», UPDATE) */

UPDATE (id_vip)

BEGIN

IF EXISTS (

SELECT * FROM deleted, AZS

WHERE

/* %JoinFKPK (AZS, deleted,» =»,» AND») */

AZS.id_vip = deleted.id_vip

)

BEGIN

SELECT @errno = 30005,

@errmsg = 'Cannot update Vip_Client because AZS exists.'

GOTO ERROR

END

END

/* ERwin Builtin 24 мая 2013 г. 15:39:01 */

RETURN

ERROR:

raiserror @errno @errmsg

rollback transaction

END

Go

автозаправочный логический база автоматизированный

Заключение

Реляционная модель данных в настоящее время приобрела наибольшую популярность и практически все современные СУБД ориентированы именно на такое представление данных.

Реляционную модель можно представить как особый метод раccмотрения данных, содержащий и данные (в виде таблиц), и cпоcобы работы, и манипуляции c ними (в виде cвязей). В реляционной модели БД, в отличие от других моделей, пользователь cам указывает, какие данные для него необходимы, а какие нет. По этой причине процеcc перемещения и навигации по БД в реляционных cиcтемах является автоматическим. Также реляционная СУБД выполняет функцию каталога, в котором хранятся описания всех объектов, из которых cоcтоит БД.

В данном проекте была создана реляционная база данных «Автозаправочная станция», разработанная c помощью СУБД Erwin SQL Server 2000.

Список литературы

1. ERwin. CASE - средства разработки информационных систем - Автор: С.В. Маклаков

2. Microsoft SQL server 2000 в подлиннике, Е.В. Мамаев, СПб.: БХВ-Петербург, 2002

3. Проектирование реляционных баз данных. Просто и доступно, Джен Л. Харрингтон, М.: Лори, 2000

4. MySQL и mSQL, Р. Яргер, Дж. Риз, Т. Кинг, СПб.: Символ-Плюс, 2000

Размещено на Allbest.ru

...

Подобные документы

  • Разработка модели информационной системы "Рыболовный магазин" с помощью СУБД Firebird. Компоненты программного продукта. Физическая диаграмма базы данных, обзор функций добавления, изменения, удаления и сортировки данных. Руководство администратора.

    курсовая работа [406,2 K], добавлен 21.02.2016

  • Принципы построения СУБД, их достоинства. Архитектура распределенной информационной системы. Разработка интернет-магазина рынка книг: построение физической модели данных на языке SQL, проектирование схемы базы данных с использованием веб-интерфейса.

    курсовая работа [2,3 M], добавлен 01.11.2011

  • Описание предметной области и определение предметной области информационной системы детского сада. Разработка логической и физической модели базы данных дошкольного образовательного учреждения. Анализ функционала информационной системы детского сада.

    курсовая работа [1,6 M], добавлен 20.04.2015

  • Содержательное описание предметной области. Структурный анализ бизнес-процесса на основе IDEF0-модели. Построение информационно-логической модели данных. Структурная схема на основе IDEF0. Даталогическая модель данных. Реализация информационной системы.

    курсовая работа [849,7 K], добавлен 10.07.2014

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

    курсовая работа [4,9 M], добавлен 16.05.2012

  • Проектирование базы данных фирмы по предоставлению телекоммуникационных услуг с помощью СУБД MS SQL SERVER. Построение логической и физической модели данных. Описание информационных потребностей пользователя. Создание хранимых процедур и триггеров.

    курсовая работа [2,3 M], добавлен 21.03.2015

  • Построение информационно-логической модели базы данных. Корректировка данных средствами запросов. Проектирование алгоритмов обработки данных. Реализация пользовательского интерфейса средствами форм. Разработка запросов для корректировки и выборки данных.

    курсовая работа [680,9 K], добавлен 19.10.2010

  • Построение инфологической (концептуальной) модели предметной области. Проектирование логической и физической структуры базы данных. Реализация проекта в среде конкретной СУБД. Организация корректировки и ввода данных в БД. Разработка интерфейса.

    курсовая работа [1,4 M], добавлен 14.01.2018

  • Анализ требований к базе данных. Концептуальная (инфологическая) модель предметной области. Сопоставление компонентов логической и физической модели. Создание форм, запросов и отчетов в среде СУБД Visual FoxPro 8.0. Расчеты по аккредитивам и чекам.

    курсовая работа [1,7 M], добавлен 24.06.2013

  • Управление базами данных. Система управления базой данных MS Access. Виды логической связи. Макросы и модули. Обеспечение целостности данных. Создание запросов и форм. Свойства полей базы данных Access. Взаимосвязь между сущностями в предметной области.

    курсовая работа [943,4 K], добавлен 13.03.2014

  • Создание модели "сущность-связь" и нормализация данных средствами программы Microsoft Access. Идентификация объектов предметной области и отношений между ними, разработка структуры физической модели, запросов и отчетов базы данных о студентах ВУЗа.

    контрольная работа [742,8 K], добавлен 08.06.2011

  • Модели данных в управлении базами данных. Концептуальные модели данных. Роль баз данных в информационных системах. Реляционная модель данных. Определение предметной области. Построение модели базы данных для информационной системы "Домашние животные".

    курсовая работа [1,9 M], добавлен 19.04.2011

  • Разработка автоматизированной информационной системы "Стол заказов" для учета регистрации заказов и информации о клиентах, ответственных лицах и товарах. Характеристики комплекса задач. Проект базы данных, построение логической и физической моделей.

    курсовая работа [354,9 K], добавлен 18.12.2014

  • Разработка базы данных организации, которая занимается ремонтом автомобилей и реализована в виде программного продукта. Моделирование структуры баз данных с использованием CASE-средств средствами языка SQL. Разработка логической и физической модели базы.

    курсовая работа [2,3 M], добавлен 21.03.2010

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

    курсовая работа [1,2 M], добавлен 21.06.2015

  • Предпроектное обследование ООО "ЮГАГРОМАШ". Технические и программные средства ЭИВТ предприятия. Создание логической и физической модели базы данных информационной подсистемы складского учета. Себестоимость автоматизированной информационной системы.

    дипломная работа [4,8 M], добавлен 24.06.2011

  • Создание базы данных "Спортивный клуб" средствами Microsoft Access: нормализация информационно-логической модели данных, построение связей между таблицами, разработка форм, запросов, отчетов, макросов, главной кнопочной формы в интерфейсе пользователя.

    курсовая работа [2,8 M], добавлен 10.06.2011

  • Разработка информационно-аналитической системы агентства недвижимости. Обоснование выбора архитектуры базы данных и СУБД. Моделирование потоков данных (DFD диаграмм). Проектирование инфологической модели данных с использованием модели "сущность-связь".

    дипломная работа [5,4 M], добавлен 06.06.2013

  • Разработка логической и физической моделей базы данных предприятия и описание атрибутов. Порядок создания справочников и реквизитов базы данных на основе программы "1С:Предприятие 8.2", назначение связей таблиц. Пример сгенерированных SQL-кодов.

    курсовая работа [2,7 M], добавлен 02.12.2015

  • Построение модели вариантов использования для актантов с использованием конструкций языка UML. Перенос логической модели данных в среду СУБД Access. Тестирование базы данных. Создание форм для просмотра и редактирования, отчетов, запросов, макросов.

    курсовая работа [568,7 K], добавлен 15.03.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.