2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 В какой литературе можно найти ответы на вопросы по логике
Сообщение17.06.2012, 14:31 
Аватара пользователя
В какой литературе можно найти ответы на следующие вопросы:

Как логика используется при создании баз данных?

Какие законы логики находят в ней применение?

Для решения каких проблем баз данных были построены паранепротиворечивые логики?

 
 
 
 Re: В какой литературе можно найти ответы на вопросы по логике
Сообщение17.06.2012, 14:43 
Это довольно-таки дискуссионная тема. Введение NULL привело к использованию 3- и 4-значных логик, которые, как известно, с классической двузначной согласовать невозможно. Поэтому есть мнение, довольно серьезных теоретиков (Дейт, Дарвен), что реляционная теория должна отказаться от NULL (изначально он в реляционной теории не присутствовал) и придерживаться обычной двузначной, благо проблема "отсутствующей информации" легко решается и без него.

 
 
 
 Re: В какой литературе можно найти ответы на вопросы по логике
Сообщение17.06.2012, 14:48 

(Оффтоп)

Joker_vD в сообщении #585991 писал(а):
Введение NULL привело к использованию 3- и 4-значных логик, которые, как известно, с классической двузначной согласовать невозможно.
Угу, после выполнения в первый раз запроса
Код:
select 1 from dual where null = null
я долго матерился

 
 
 
 Re: В какой литературе можно найти ответы на вопросы по логике
Сообщение17.06.2012, 15:08 

(Оффтоп)

Sonic86
Более того. Кодд (который, собственно, и создал реляционную теорию, а потом ввел и NULL), написал, кажется, три или четыре работы, где пытался подобрать "разумную" 3- или 4-значную логику для использования. Не вышло, Дарвен потом в обзоре замечал, что главная проблема введения многозначной логики — это исчезновение сокращенного вычисления AND и OR: $\mathrm{true}\vee x$ не обязательно равно $\mathrm{true}$. А это — серьезный удар по возможности оптимизации запросов.

NULL вводился для обозначения "тут должна быть информация, но мы ее не знаем". Некоторые используют его как null-pointer, как "здесь вообще не должно быть никакой информации" — ну, например, если работник — самый главный начальник, у него колонка "Кто начальник?" должна быть пуста.

Так вот, можно обе эти ситуации разрулить и без NULL. Грубо говоря, если в столбце должен быть NULL — таблица разбивается на две, в одной этот столбец есть (незануляемый!), в другой этого столбца нет вовсе + наложены ограничения, что значения первичных ключей в этих двух таблицах не пересекаются. Получаем БД, в которой NULL-столбцов нет вовсе. А так как нет такого закона, что две таблицы должны обязательно храниться в двух различных B-деревьях — никакого штрафа на производительность при join-ах этих двух таблиц (в теории) нет.

 
 
 
 Re: В какой литературе можно найти ответы на вопросы по логике
Сообщение17.06.2012, 17:46 
Аватара пользователя
О чем можно написать на эти темы в реферате?

 
 
 [ Сообщений: 5 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group