Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
psÎPsts)(( ps.KPst=do.KPst)&(ps.AdrPst¹’Казань’))Содержание книги
Поиск на нашем сайте
Для получения новой информации из базы данных путем составления запросов необходим язык манипулирования данными, способный выполнять соответствующие операции над отношениями. Поскольку запросы в общем случае представляют собой произвольные функции над отношениями, при выборе соответствующего языка необходимо решить вопрос о требуемой выразительности. Для реляционных баз данных были разработаны три типа теоретических языков: реляционная алгебра, реляционное исчисление с переменными-кортежами и реляционное исчисление с переменными-доменами. Языки запросов первого типа – алгебраические языки, основаные на классической теории множеств (с некоторыми уточнениями), которые позволяют выражать запросы средствами специализированных операторов, применяемых к отношениям. Языки запросов второго и третьего типов – языки исчисления, которые основаны на классическом логическом аппарате исчисления предикатов первого порядка и позволяют выражать свойства желаемого результата, фактически не указывая, как его получить. Оба механизма (алгебра и исчисление) обладают важным свойством: они замкнуты относительно понятия отношения. Это означает, что выражения реляционной алгебры и формулы реляционного исчисления определяются над отношениями реляционных БД и результатом таких вычислений также являются отношения. В результате любое выражение или формула могут пониматься как отношения. Языки этих трех типов были предложены Е.Ф. Коддом и служат теоретической основой для описания действий, выполняемых над отношениями. Определенные в них элементарные операции реализуются в любом реальном языке запросов независимо от его внешнего оформления. Конкретный язык манипулирования реляционными БД (SQL, QBE и др.) называется реляционно полным, если любой запрос, выраженный с помощью одного выражения реляционной алгебры или одной формулы реляционного исчисления, может быть выражен с помощью одного оператора языка. При этом для любого допустимого выражения реляционной алгебры можно построить эквивалентную формулу реляционного исчисления, и наоборот, то есть эти механизмы эквивалентны. Рассмотрим реаллизацию запросов с использованием языков реляционного исчисления кортежей и реляционной алгебры на конкретном примере:
Предприятие занимается сборкой изделий из покупных деталей и заключает договора с поставщиками на поставку этих деталей. В период действия договора поставщик поставляет детали не обязательно «все за раз», а обычно партиями. Таблица ПОСТАВКИ (PST) содержит сведения о партиях поставленных деталей: «кто» (KPst: код поставщика) «что» (KDet: код детали) «в каком количестве» (Kol: количество) «когда» поставил (DtP: дата поставки). Таблица ПОСТАВЩИКИ (PSTS): код поставщика (KPst - уникальный ключ), наименование поставщика (ImPst), адрес поставщика (AdrPst). Таблица ДЕТАЛИ (DET): код детали (KDet - уникальный ключ), наименование детали (ImDet), цвет детали (Cvet). Таблица ДОГОВОРА (DOG) содержит сведения о том «кто» - «что» - «в каком количестве» обязался поставить, и имеет поля код поставщика (KPst), код детали (KDet), количество (Kol), дата начала договора (DtN), дата завершения договора (DtK). (KPst, KDet) – уникальный (составной) ключ этой таблицы.
Реляционное исчисление кортежей строит правильные отношения путем описания условий, которым должны удовлетворять составляющие их кортежи. Условия описываются с помощью формул, которые имеют вид:
1. Дан запрос в реляционном исчислении кортежей:
НАЙТИ{(de.ImDet)/deÎDet}: ("doÎDog)((do.DtN<=’10.10.2006’ Ú do.KDet¹de.KDet)Ú ($psÎPsts)((ps.KPst=do.KPst)&(ps.AdrPst¹’Казань’))Ú ($pvÎPst)((pv.KPst=do.KPst)&(pv.KDet=do.KDet)))
Ø Сформулировать на естественном языке постановку задачи, специфицированной этим запросом. Ø Составить две программы решения этой задачи: ¨ SELECT-оператором на языке SQL. ¨ PASCAL(С++)-программу с использованием средств обработки баз данных.
В первой задаче необходимо найти формулировку исходной задачи на естественном языке. Попытка построчной расшифровки приведенного предиката приводит к очень громоздкой и малопонятной формулировке задачи: Найти все наименования деталей, что для каждого договора выполняются условия: или договор датирован до 10.10.2006, или предметом договора является другая деталь, или в договоре прописан не Казанский поставщик, или существуют поставки деталей по договору. Исходный запрос сформулирован на языке реляционного исчисления кортежей, при построении формулы запроса разрешается использование логических операторов Введем следующие обозначения: (do.DtN<=’10.10.2006’) =(do.KDet¹de.KDet)
|
||
|
Последнее изменение этой страницы: 2024-06-17; просмотров: 49; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.176 (0.006 с.) |