Поставки товаров код поставщика код товара количество цена

Поставки товаров: код поставщика, код товара, количество, цена, единица измерения, дата поставки. Справочники: поставщики (код, наименования, адрес, телефон, код города), товары (код, наименование), города (код, наименование, код области), области (код и наименование). 1) create database ProductDelivery; create table Region( code integer not null, name varchar(255), PRIMARY KEY(code) ); create table City( code integer not null, name varchar(255), regionCode integer not null, PRIMARY KEY(code), FOREIGN KEY (regionCode) REFERENCES Region(code) ); create table Supplier( code integer not null, name varchar(255), address varchar(255), phone varchar(30), cityCode integer not null, totalDeliveredPrice double, PRIMARY KEY(code), FOREIGN KEY (cityCode) REFERENCES City(code) ); create table Product( code integer not null, name varchar(255), PRIMARY KEY(code) ); create table Delivery( supplierCode integer not null, productCode integer not null, amount integer, price float, unit varchar(50), deliveryDate date, FOREIGN KEY (supplierCode) REFERENCES Supplier(code), FOREIGN KEY (productCode) REFERENCES Product(code) ); Схема БД. 2) Под целостностью БД понимают правильность и непротиворечивость ее содержимого. Нарушение целостности может быть вызвано, например, ошибками и сбоями, так как в этом случае система не в состоянии обеспечить нормальную обработку или выдачу правильных данных. Для обеспечения целостности в случае ограничений на базу данных, а не какие-либо отдельные операции, служет аппарат транзакций. Транзакция – неделимая с точки зрения воздействия на БД последовательность операторов манипулирования данными (чтения, удаления, вставки, модификации), такая, что: -либо результаты всех операторов, входящих в транзакцию, отображаются в БД; -либо воздействие всех операторов полностью отсутствует. При этом для поддержания ограничений целостности на уровне БД допускается их нарушение внутри транзакции так, чтобы к моменту завершения транзакции условия целостности были соблюдены. Для обеспечения контроля целостности каждая транзакция должна начинаться при целостном состоянии БД и должна сохранить это состояние целостным после своего завершения. Если операторы, объединенные в транзакцию, выполняются, то происходит нормальное завершение транзакции, и БД переходит в обновленное (целостное) состояние. Если же происходит сбой при выполнении транзакции, то происходит так называемый откат к исходному состоянию БД. Целостность БД не гарантирует достоверности содержащейся в ней информации, но обеспечивает по крайней мере правдоподобность этой информации, отвергая заведомо невероятные, невозможные значения.  В данном случае можно привести следующий пример нарушения целостности БД: попытка вставить в таблицу Delivery запись с отрицательным значением поля price – INSERT INTO Delivery(supplierCode, productCode, price) VALUES (1,2,-10.0). 3) Команда LOCK TABLES блокирует указанные в ней таблицы для данного потока. Команда UNLOCK TABLES снимает любые блокировки, удерживаемые данным потоком. Все таблицы, заблокированные текущим потоком, автоматически разблокируются при появлении в потоке иной команды LOCK TABLES или при прекращении соединения с сервером. Если поток получает блокировку READ на таблице, он (и все остальные) могут только читать из таблицы. Если поток получает блокировку WRITE на таблице, то только он может читать или писать таблицу. Другие потоки блокированы. Обычно Вы не должны блокировать таблицы, поскольку все одиночные инструкции UPDATE атомные: никакой поток не может сталкиваться с любым другим, в настоящее время выполняющим инструкции SQL. Имеется несколько случаев, когда стоит блокировать таблицы: Если Вы собираетесь выполнять много операций на связке таблиц, намного быстрее блокировать таблицы, которые Вы собираетесь использовать. Конечно, никакой другой поток не может модифицировать блокированную на READ таблицу, и никакой поток не сможет читать блокированную на WRITE таблицу. Причина того, что некоторые вещи выполняются быстрее под LOCK TABLES в том, что MySQL не будет сбрасывать на диск кэш ключей для блокированных таблиц до вызова UNLOCK TABLES (обычно кэш ключей сбрасывается на диск после каждой инструкции SQL). Это ускоряет вставки, удаления и обновления на таблицах MyISAM. Если Вы используете драйвер таблицы в MySQL, который не поддерживает транзакции, Вы должны использовать LOCK TABLES, если Вы хотите гарантировать, что никакой другой поток не обработается между SELECT и UPDATE. Пример, показанный ниже, требует LOCK TABLES, чтобы выполниться безопасно: mysql> LOCK TABLES Delivery READ, Supplier WRITE; mysql> select sum(price) from Delivery where supplierCode= _value_; mysql> update Supplier set totalDeliveredPrice=sum_from_previous_statement where code=_value_; mysql> UNLOCK TABLES;

Тип работы:

Контрольная работа

Предмет:

Базы данных

Статус:

выполнено

Стоимость. Рублей:

70

Дата выполнения:

2014-12-25

Understand your user experience

I am text block. Click edit button to change this text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Read More

remain responsive across devices

I am text block. Click edit button to change this text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Read More

fall in love with our features

Real time stats

Click edit button to change this text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec mattis, pulvinar dapibus leo.

Multilingual & translatable

Click edit button to change this text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec mattis, pulvinar.

Less plugins needed

Click edit button to change this text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec mattis, pulvinar dapibus leo.

Amazingly responsive

Click edit button to change this text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec mattis, pulvinar dapibus leo.

Community builder

Click edit button to change this text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec mattis, pulvinar dapibus leo.

Easy to use interface

Click edit button to change this text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec mattis, pulvinar dapibus leo.

Выполним любую работу на заказ

У нас вы можете заказать уникальное решений этой задачи или любой другой

Adblock detector