Напишите команды выборки для получения справки с использованием сложных логических выражений

Обновлено: 15.05.2024

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

Логические выражения упрощают при помощи различных законов алгебры логики. Часть преобразований напоминает преобразования формул, выполняемые в классической алгебре (например, применение сочетательного и переместительного законов, вынесение за скобки равенства общего множителя и так далее). Для других преобразований используют свойства, которых лишены операции классической алгебры.

Любые законы алгебры логики выводят для главных логических операций следующим образом: НЕ - инверсия (то есть, отрицание); ИЛИ - дизъюнкция (то есть, логическое сложение); И - конъюнкция (то есть, логическое умножение).

Закон двойного отрицания состоит в том, что операция НЕ является обратимой: если ее использовать два раза, логическое значение в результате останется неизменным.

Сущность закона исключенного третьего состоит в том, что каждое логическое выражение при любых условиях является истинным, либо ложным. Если A=1, тогда A=0, а также наоборот. Конъюнкция данных величин всегда равняется 0, дизъюнкция равна 1.

Закон повторения и операции с константами легко можно проверить, используя таблицы истинности операций ИЛИ и И.

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

Для дизъюнкции распределительный закон состоит просто в раскрытии скобок. Для конъюнкции выражение неизвестно, в математике подобное равенство является неверным. Начнем доказывать с правой части. Сначала раскроем скобки:

Используем закон повторение, гласящий, что A⋅A=A,

A+A⋅B=A⋅(1+B)=A⋅1=A, следовательно, (A+B)⋅(A+C)=A+B⋅C.

Мы доказали равенство.

Правил, используемые для раскрытия инверсии сложных выражений, назвали именем известного логика и математика де Моргана. Суть состоит в том, что общее отрицание не только распространяется на отдельные выражения, а еще и дизъюнкция заменяется конъюнкцией (а также наоборот). Для доказательства данных правил используются таблицы истинности.

Основная часть аксиом и законов алгебры логики записаны попарно. Внимательно изучая пары, можно сформулировать принцип двойственности, звучащий следующим образом: если осуществить в тождестве замены конъюнкции, а также дизъюнкции. И также элементов 1 и 0 (при их наличии), получится тождество. Данное свойство именуют принципом двойственности.

Упрощения логических выражений в примерах

Формула, вытекающая из распределительного закона. При ее выведении применили вышеупомянутое правило де Моргана для дизъюнкции, а также использовали закон двойного отрицания, после чего сомножитель X, вынесли за скобку, тогда как в скобках получили закон исключённого третьего, а также применили операцию с константами.

Примеры упрощения логических выражений

Пример первый

Кто из рабочих, обозначенных, как A, B, C, D работает на заводе, а кто нет, если нам даны следующие условия:

  • если работает A либо работает B, тогда не работает C;
  • если не работает B, тогда работает D, а также работает C.

Решение задачи. Обозначим несколько простых высказываний:

  1. A рабочий A на заводе работает;
  2. B рабочий B на заводе работает;
  3. C рабочий C на заводе работает;
  4. D рабочий D на заводе работает.

Сформулировав данные из условия при помощи этих простых высказываний, получим следующее:

Получаем следующую конъюнкцию: ((A+B)→C)⋅(B→C⋅D)⋅C.

После упрощения данной формулы получаем, что A равно 0, B равно 1, C равно 1, D равно 1.

Ответ: ученик A на заводе не работает, а ученики B, C, D играют.

В этом примере применено правило де Моргана, затем использован распределительный закон, после этого применен закон исключенного третьего, потом использован переместительный закон. За ним реализован закон повторения, потом опять применен переместительный закон и, наконец, использован закон поглощения.

Чтобы отыскать решения логического уравнения можно также применить упрощение логических выражений.

Нужно отыскать все решения данного уравнения

Применив правило де Моргана, получим

а затем применяем закон поглощения и получаем

Чтобы логическая сумма равнялась нулю, все слагаемые должны равняться нулю, из чего следует, что

Изучение предложения SELECT в базах данных и вывод информации на экран. Вычисление данных о сотрудниках предприятия и определение стоимости данного проекта. Изучение предложения WHERE, GROUP BY, HAVING, ORDER BY, UNION и операций внутреннего соединения.

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

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

Разработка запросов на языке SQL

Для выполнения задания была создана база данных из 2-х таблиц:

Таблица Сотрудники содержит информацию о сотрудниках, а именно поле Фамилия, Имя, Отчество, Стаж, Адрес, Должность, Телефон и поле [Номер сотрудника], являющееся первичным ключом.

Таблица Проекты содержит информацию о проектах, а именно: поля [Наименование проекта], Стоимость,[Начало разработки],[Длительность работы(дней)],Оплата и поле [Номер проекта], являющееся первичным ключом.

1. Изучение предложения SELECT

1.1 Вывести полную информацию обо всех сотрудниках предприятия

1.2 Вывести информацию о фамилии и должностях сотрудников

1.3 Вывести информацию о двух первых хранимых записях о проектах

1.4 Вывести информацию обо всех сотрудниках с указанием фамилии, специализации и стажа работы, выраженного в месяцах

SELECT Фамилия,Должность, Стаж*12

1.5 Выполнить задание из п. 1.1.4 с указанием имен для вычисляемых полей

SELECT Фамилия,Должность, Стаж*12 AS [Стаж в месяцах]

1.6 Вычислить средний стаж работы сотрудников предприятия

SELECT AVG(Стаж)AS [Средний стаж сотрудников]

1.7 Найти минимальную стоимость проекта

SELECT MIN(Стоимость)AS [Минимальная стоимость]

1.8 Найти максимальную стоимость проекта

SELECT MAX(Стоимость)AS [Максимальная стоимость]

1.9 Найти количество разрабатываемых проектов

SELECT COUNT(*)AS [Количество проектов]

2. Изучение предложения WHERE

2.1 Вывести информацию обо всех сотрудниках, стаж которых меньше 40 лет

AND Стаж 500 30%

SELECT [Наименование проекта],

СтоимостьAS [Старая стоимость],

Стоимость*1.1 AS [Новая стоимость]

7. Изучение операции внутреннего соединения INNER JOIN

база данные информация

7.1 Вывести информацию о сотрудниках с указанием кодов проектов, в которых они принимаю участие

FROM Сотрудники INNER JOIN Проекты

ON Сотрудники.[Номер сотрудника]=

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

SELECT Проекты.[Наименование проекта],Проекты.[Начало разработки],Проекты.Стоимость Сотрудники.[Фамилия]

FROM Проекты INNER JOIN Сотрудники

ON Проекты.[Номер сотрудника]=

Проекты.[Наименование проекта], Проекты. [Начало разработки], Проекты. Стоимость

FROM Сотрудники, Проекты

WHERE Сотрудники.[Номер сотрудника]=

7.3 Изучение операций внешнего левого LEFT JOIN и правого RIGHT JOIN соединений

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

Проекты. Оплата,Проекты.[Номер проекта]

FROM Проекты RIGHT JOIN Сотрудники

ON Проекты.[Номер сотрудника]=Сотрудники.[Номер сотрудника]

7.4 Вывести информацию обо всех проектах. Если за проектом закреплены сотрудники, то вывести табельный номер сотрудника и длительность работы сотрудника над проектом

SELECT Проекты.[Наименование проекта] ,Проекты.[Длительность работы(дней)], Проекты.Оплата, Сотрудники.Фамилия, Сотрудники.[Номер сотрудника]

FROM Проекты LEFT JOIN Сотрудники

ON Проекты.[Номер сотрудника]= Сотрудники.[Номер сотрудника]

7.5 Изучение операции декартова произведения для соединения таблиц

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

Проекты.[Наименование проекта], Проекты. [Длительность работы(дней)], Проекты. [Оплата]

FROM Сотрудники, Проекты

7.6 Вывести информацию обо всех сотрудниках. Если сотрудник участвовал в проекте, то указать код проекта и оплату за выполнение работ

Проекты.[Номер проекта], Проекты.[Оплата]

FROM Сотрудники, Проекты

7.8 Использование псевдонимов для самосоединения таблиц

Вывести табельные номера сотрудников, которые работают как над проектом 1, так и над проектом 3.

SELECT Проекты.[Номер сотрудника]

FROM Проекты INNER JOIN Проекты AS Проекты1

ON Проекты.[Номер сотрудника]=

WHERE Проекты.[Номер проекта]=1

AND Проекты1.[Номер проекта]=3

7.9 Использование соединений таблиц при построении вычислений

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

SELECT Проекты. Оплата AS [Оплата(руб.)]Сотрудники Фамилия

FROM Проекты INNER JOIN Сотрудники

ON Проекты.[Номер сотрудника]=

SELECT Оплата/31,2 AS[Оплата в долларах]

SELECT Оплата/42,4 AS[Оплата в евро]

Вывести информацию о каждом сотруднике, указав количество проектов, в которых он участвует.

SELECT COUNT Проекты. [Номер проекта] AS [Количество проектов], Сотрудники Фамилия,

FROM Проекты INNER JOIN Сотрудники

ON Проекты.[Номер сотрудника]=

Вычислить среднюю стоимость проектов, в которых участвовал сотрудник Карандашов.

SELECT AVG Проекты.(Стоимость)

FROM Проекты INNER JOIN Сотрудники

ON Проекты.[Номер сотрудника]=

WHERE Сотрудники Фамилия = 'Карандашов'

8. Запросы с подзапросами

8.1 Изучение простых скалярных подзапросов

Вывести информацию обо всех сотрудниках, стаж работы которых больше стажа работы сотрудника Ручкина.

WHERE Стаж >(SELECT Стаж

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

SELECT [Номер проекта]

WHERE Стоимость =ALL(SELECT COUNT (Стаж )

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

SELECT [Наименование проекта]

WHERE [Начало разработки]>=ANY(SELECT [Начало разработки]

8.2 Изучение сложных подзапросов с использованием операции EXISTS

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

WHERE Сотрудники.[Номер сотрудника]= Проекты.[Номер сотрудника])

Вывести информацию о тех сотрудниках, которые никогда не работали ни над одним проектом.

WHERE NOT EXISTS(SELECT *

WHERE Сотрудники.[Номер сотрудника]=

8.3 Изучение подзапросов повышенной сложности

Вывести список фамилий сотрудников, которые задействованы ТОЛЬКО в проекте «Проектирование и разработка детали №1256

1. Изучение оператора INSERT INTO . VALUES для добавления новой записи в таблицу.

1.1. Добавить запись с информацией о новом проекте с указанием значений всех атрибутов таблицы.

INSERT INTO Проекты ([Наименование проекта],Стоимость,[Начало разработки],[Длительность работы(дней)],Оплата)

Строка добавилась в таблицу

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

INSERT INTO Сотрудники (Фамилия, Имя, Отчество, Стаж, Адрес, Должность, Телефон, [Номер проекта])

Строка добавилась в таблицу

2. Изучение оператора INSERT INTO . SELECT для добавления выборки в существующую таблицу.

INSERT INTO [Разрабатываемые Карандашовым проекты] ( [Номер проекта], [Наименование проекта], [Дата начала],Стоимость)

VALUES (1, 'Проектирование и разработка детали № 1256',2009-09-09,30000)

Запись в таблицу добавлена

INSERT INTO [Разработка проекта Лазер]

WHERE [Номер проекта]=8

INSERT INTO [Оплата проектов]([Код проекта],Название,[Стоимость в у.е.])

VALUES (1,'Деталь № 9',15000)

3. Изучение оператора DELETE для удаления записей из таблицы.

FROM [Разработка проекта Лазер]

Строки были удалены

FROM [Разрабатываемые Карандашовым проекты]

WHERE [Наименование проекта]='Проектирование и разработка детали № 1256'

FROM [Разработка проекта Лазер]

WHERE BETWEEN 50 AND 300

4. Изучение оператора UPDATE для обновления записей таблицы.

4.1. В связи с окончанием очередного календарного года увеличить стаж работы всех сотрудников на 1 год.

UPDATE Сотрудники SET Стаж = Стаж+1

SET Должность = 'Специалист по маркетингу'

4.3. Изменить фамилию сотрудницы Ластиковой на Стеркинав связи с заключением брака.

SET Фамилия = 'Ластикова'

WHERE Фамилия ='Стеркина'

4.4. Увеличить на 20% стоимость проектов, выполняемых сотрудником с самым большим стажем.

Подготовить сценарий для создания файлов БД и таблиц БД. При создании таблиц задать следующие виды ограничений:

- первичные ключи (PRIMARYKEY);

- внешние ключи (FOREIGNKEY);

- ограничения на использование NULL-значений (NOTNULL);

- ограничения уникальности значений (UNIQUE);

- ограничения на значение (CHECK);

- значения по умолчанию (DEFAULT).

Подготовить сценарий, позволяющий заполнить таблицы

CREATE TABLE Сотрудники

([Номер сотрудника] INTEGER,

Должность VARCHAR(50)NOT NULL,

PRIMARY KEY ([Номер сотрудника])

FOREIGN KEY([Номер сотрудника])

([Номер проекта] INTEGER NOT NULL,

[Наименование проекта ] VARCHAR(50)NOT NULL,

Стоимость VARCHAR(50)NOT NULL,

[Длительность работы(дней)] INTEGER,

PRIMARY KEY ([Номер проекта])

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

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

курсовая работа [61,1 K], добавлен 15.07.2012

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

реферат [14,5 K], добавлен 06.12.2011

Рассмотрение инфологической и даталогической модели базы данных кинотеатров города. Разработка базы данных в программе MS Access. Описание структуры приложения и интерфейса пользователя. Изучение SQL-запросов на вывод информации о кинотеатре и о фильме.

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

Создание программного продукта на языке Pascal в визуальной среде программирования Borland Developer Studio в консольном приложении. Разработка типизированного файла для записи данных и их вывод на экран, добавление данных в конец файла, поиск информации.

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

Исследование основных операторов языка SQL. Изучение отличий операций произведения и соединения отношения. Выбор из базы данных запрошенной информацию и передача ее пользователю для работы. Список выборки оператора Select. Логическое выражение в опции.

презентация [48,2 K], добавлен 07.12.2013

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

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

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

Читайте также: