Разработка автоматизированной информационной системы "Автозаправочная станция"
Обеспечение администратора соответствующей информацией для переноса логической модели данных в СУБД. Логические взаимосвязи между элементами данных безотносительно их содержания и физической организации в проекте база данных "Автозаправочная станция".
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 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