Разработка программы, обеспечивающую с помощью средств языка С++ ввод анкетных данных студентов и вывод в табличном виде списка студентов, отобранных по заданному условию, страница 6

[DataVihoda] [datetime] NULL ,

CONSTRAINT [PK_Knigi] PRIMARY KEY 

(

[KodKnigi]

) ,

CONSTRAINT [FK_Knigi_Izdateli] FOREIGN KEY

(

[KodIzdatelya]

) REFERENCES [dbo.][Izdateli] ([KodIzdatelya] )

)

Авторкниги:

CREATE TABLE [dbo].[ [AvtorKnigi] (

[KodAvtora] [bigint] NOT NULL ,

[KodKnigi] [bigint] NOT NULL ,

CONSTRAINT [PK_AvtorKnigi] PRIMARY KEY 

(

[KodAvtora],

[KodKnigi]

)   ,

CONSTRAINT [FK_AvtorKnigi_Avtory] FOREIGN KEY

(

[KodAvtora]

) REFERENCES [dbo.][Avtory] ([KodAvtora] ),

CONSTRAINT [FK_AvtorKnigi_Knigi] FOREIGN KEY

(

[KodKnigi]

) REFERENCES [dbo.][Knigi] ([KodKnigi] )

)

Задача №9

ДАНО:

Таблицы реляционной базы данных SQL Server

 

Таблица

Реквизиты

Книги

Код книги, название, число страниц, код издателя, дата выхода

 

Авторы

Код автора, фамилия, дата рождения, место рождения

 

Издатели

Код издателя, имя издателя, адрес издателя

 

Автор книги

Код автора, код книги

 

ТРЕБУЕТСЯ:

1.  Изобразить схему базы данных.

2.  Создать таблицы SQL Server.

3.  Обеспечить процедурную целостность ссылок.

 

ОГРАНИЧЕНИЯ:

·  Целостность ссылок обеспечить только с помощью триггеров.

·  Запросы на создание объектов базы данных реализовать на Transact-SQL.

 

РЕШЕНИЕ:

CREATE TABLE [dbo].[ [Knigi] (

[KodKnigi] [bigint] NOT NULL ,

[Nazvanie] [char] (10) NOT NULL,

[ChisloStranits] [bigint] NOT NULL,

[KodIzdatelya] [bigint] NULL ,

[DataVihoda] [datetime] NULL ,

CONSTRAINT [PK_Knigi] PRIMARY KEY 

(

[KodKnigi]

) ,

CONSTRAINT [FK_Knigi_Izdateli] FOREIGN KEY

(

[KodIzdatelya]

) REFERENCES [dbo.][Izdateli] ([KodIzdatelya] )

)

Create trigger Izd_Delete

ON Izdateli FOR DELETE

AS BEGIN

IF EXISTS (Select *From Knigi, Deleted

Where knigi.KodIzdatelya= Deleted.KodIzdatelya)

BEGIN

Rollback transaction

Raiserror 50002 ‘Транзакция не м.б.

Завершена, т.к. у издателя есть книги’

END END

Create trigger Avtor_Knigi_Insert

ON AvtorKnigi FOR INSERT

AS BEGIN

IF NOT EXISTS (Select *From Knigi, Inserted

Where Knigi.KodKnigi= Inserted.KodKnigi)

Rollback transaction

Raiserror 50002 ‘Транзакция не м.б.

Завершена, т.к. код несуществующей книги’

END END

Задача №10

ДАНО:

Таблицы реляционной базы данных SQL Server

 

Таблица

Реквизиты

Книги

Код книги, название, число страниц, код издателя, дата выхода

 

Авторы

Код автора, фамилия, дата рождения, место рождения

 

Издатели

Код издателя, имя издателя, адрес издателя

 

Автор книги

Код автора, код книги

 

ТРЕБУЕТСЯ:

1.  Изобразить схему базы данных.

2.  Создать таблицы SQL Server.

3.  Обеспечить безопасность базы данных.

 

ОГРАНИЧЕНИЯ:

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

·  Заданный уровень безопасности обеспечить с помощью видов и хранимых процедур.

·  Запросы на создание объектов базы данных реализовать на Transact-SQL.