Базы данных. (5-й семестр вмк)


Скачать 0.73 Mb.
Название Базы данных. (5-й семестр вмк)
страница 4/6
Тип Документы
rykovodstvo.ru > Руководство эксплуатация > Документы
1   2   3   4   5   6
- (объединение, пересечение и разность, соответственно). Операции применимы только к парам файлов, имеющих одинаковую структуру (схему отношения базы данных).

  • Естественное соединение R*S={r*s / rR, sS}, где операция соединения записей r и s применима только к парам записей, у которых одноименные поля имеют одинаковое значение. Соединение таких записей r и s дает запись, в которую входят все поля (со своими значениями) из r и s (одноименные поля не дублируются).

ПРИМЕР.(A:1,B:2)*(B:2,C:3)=(A:1,B:2,C:3);

(A:1,B:2)*(C:3,D:4)=(A:1,B:2,C:3,D:4) - в случае файлов без одноименных полей, операция применима к каждой паре записей;

(A:1,B:2)*(B:3,D:4) - к такой паре записей операция не применима.

  • Выборка [B](R) = файл записей из R, удовлетворяющих условию B. Условие B строится как обычное логическое выражение - из имен полей и констант с помощью операций сравнения и логических операций.

  • Переименование полей [A1B1,A2B2,...](R). A1,A2,... должны быть именами полей файла R, а поля B1,B2,... должны иметь соответствующий тип. Результат операции будет содержать те же записи, что и файл R, но поля A1,A2,... будут соответственно переименованы на B1,B2,...

  • Проекция [имя_поля,...](R) = файл записей из R, в которых удалены все поля, кроме перечисленных в операции.

  • Деление RS. Операция применима, если все поля «делителя» S являются полями «делимого» R; пусть A1,A2,... - поля файла S, а A1,A2,...B1,B2,... - поля файла R. Результат деления будет файлом с полями B1,B2,... RS={t: такие, что (t*s)R для любой записи s из S}. Отметим, что в этом выражении записи t и s не имеют общих полей, поэтому операция * это просто соединение записей.

ПРИМЕР. Пусть R - файл с полями (A,B), S - файл с полем (A), T=(RS) - будет файлом с полем (B):


B






T







A


S


ПРИМЕР. Решение вышерассмотренной задачи «о крупных поставках» описывается реляционным выражением:

[ImPst,Kol](Psts*([(KDet=1010)&(Kol>1000)]Pst))

    1. Реляционное исчисление кортежей.

    Базовые (элементарные) формулы:

    • R(r) - имеет смысл «запись r принадлежит файлу R», т.е. rR.

    • r.A операция s.B

    константа сравнения константа

    имеет смысл «поле A записи r (или константа) имеет значение больше (меньше, равно...), чем поле B записи s (или константа)».

    Формулы общего вида - строятся из базовых с помощью операций:

    • логики высказываний  и ограниченно используемого отрицания : если F1 и F2 формулы, то F1F2, F1F2, F1F2 тоже формулы;

    • логики предикатов : если F формула, то rR F и rR F тоже формулы.

    Смысл формул без кванторов  известен по языку Паскаль - это логические выражения с операциями AND(),OR() и NOT().

    Смысл кванторных формул - для фиксированных значений других (кроме r) переменных:

    • формула rR F истинна, если формула F истинна для любой записи r из файла R

    • формула rR F истинна, если формула F истинна хотя бы для одной записи r из файла R.

    ПРИМЕЧАНИЕ. С некоторыми оговорками (уточнениями, в которых используется операция естественного соединения - декартова произведения) имеют место следующие соответствия:

    • каждой формуле соответствует файл записей, на которых эта формула истинна;

    • формулам F1F2, F1F2, F1F2 соответствуют (пересечение), (объединение) и - (разность) файлов, соответствующих формулам F1 и F2;

    • формуле rR F соответствует файл FR;

    • формуле rR F соответствует проекция файла F по полям, которые отсутствуют в rR.

    Запрос НАЙТИ{(r.A,...s.B,...)/rR,sS...}F имеет смысл:

    • найти запись r в файле R, s в файле S..., такие что на этом наборе записей истинна формула F;

    • по каждому такому набору записей сформировать соответствующую запись в файл - результат запроса, включая в нее поле A записи r, поле B записи s,...

    ПРИМЕР. Вышеприведенный рисунок, иллюстрирующий операцию деления T=(RS), соответствует запросу T=НАЙТИ{t.B/tR} sS rR ((r.B=t.B)(r.A=s.A))

    ПРИМЕР. Решение вышерассмотренной задачи «о крупных поставках» описывается запросом реляционного исчисления кортежей:

    НАЙТИ{(r.ImPst,s.Kol)/rPsts,sPst}

    (r.KPst=s.KPst)(s.KDet=1010)(s.Kol>1000)

    ПРИМЕР. Найти имена поставщиков, которые поставляют все красные детали.

    Переформулируем постановку задачи, явно оговорив неявное и явно выделив кванторы: найти имена таких поставщиков, что для каждой детали, если она красная, то существует договор о поставке этой детали этим поставщиком. Устранив импликацию (AB)(AB), получим: найти имена таких поставщиков, что для каждой детали - либо она не красная, либо существует договор о поставке этой детали этим поставщиком.

    Запрос реляционного исчисления кортежей.

    НАЙТИ{(r.ImPst)/rPsts} detDet ((det.Cvet#'КРАСНЫЙ')

    dogDog ((dog.KDet=det.KDet)(dog.KPst=r.KPst)))

    Реализация этого запроса на SQL потребует устранения -квантора с помощью эквивалентностей x A(x)  x A(x) и (AB)  AB. В итоге получим формулировку, не удовлетворяющую требованиям языка реляционного исчисления кортежей, но семантически эквивалентную и подходящую для реализации на SQL:

    НАЙТИ{(r.ImPst)/rPsts} detDet ((det.Cvet='КРАСНЫЙ')

    dogDog ((dog.KDet=det.KDet)(dog.KPst=r.KPst)))

    SELECT Psts.ImPst FROM Psts

    WHERE NOT EXISTS (SELECT * FROM Det

    WHERE (Det.Cvet='Красный') AND

    NOT EXISTS (SELECT * FROM Dog

    WHERE (Dog.KDet=Det.KDet) AND

    (Dog.KPst=Psts.KPst)))

    Схема (лобовой) реализации этого запроса традиционными средствами уровня языка Паскаль.

    Структуру запроса можно представить диаграммой:



    Учитывая, что семантически



    • реализация оператора «b:=xFile(B(x))»:

    b:=false; RESET(File);

    WHILE NOT b AND NOT EOF(File) DO

    BEGIN READ(File,x); b:=B(x) END

    • реализация оператора «b:=xFile(B(x))»:

    b:=true; RESET(File);

    WHILE b AND NOT EOF(File) DO

    BEGIN READ(File,x); b:=B(x) END

    В итоге получаем программу: DBLEC\PRG01\Project1.dpr

    NewTable.Close; NewTable.EmptyTable; NewTable.Open;

    DetTable.Open; DogTable.Open; PstsTable.Open;

    PstsTable.First;

    WHILE NOT PstsTable.EOF DO BEGIN

    {aDet:= detDet Условие(r,det)}

    aDet:=true; DetTable.First;

    WHILE aDet AND NOT DetTable.EOF DO BEGIN

    aDet:=(DetTable.FieldByName('Cvet').

    AsString<>’Красная’);

    IF NOT aDet THEN BEGIN

    {aDet:=eDog:= dogDog Условие(r,det,dog)}

    eDog:=false; DogTable.First;

    WHILE NOT eDog AND NOT DogTable.EOF DO BEGIN

    eDog:=(DogTable.FieldByName('KDet').Value=

    DetTable.FieldByName('KDet').Value)AND

    (DogTable.FieldByName('KPst').Value=

    PstsTable.FieldByName('KPst').Value);

    DogTable.Next

    END;

    aDet:=eDog

    END;

    DetTable.Next

    END;

    IF aDet THEN BEGIN

    NewTable.Append;

    NewTable.FieldByName('ImPst').Value:=

    PstsTable.FieldByName('ImPst').Value; NewTable.Post;

    END;

    PstsTable.Next;

    END; NewTable.Close;

    Поскольку (KPst,KDet) является первичным ключом для таблицы Dog (а значит имеется соответствующий индекс), то выделенный жирным курсивом фрагмент можно заменить на:

    aDet:=(DetTable.FieldByName('Cvet').

    AsString<>’Красная’) OR

    DogTable.FindKey([PstsTable.FieldByName('KPst').Value,

    DetTable.FieldByName('KDet').Value]);

    Выражение реляционной алгебры.

    [ImPst](Psts*(([KPst,KDet]Dog)

    ([KDet]([Cvet='КРАСНЫЙ']Det))))

    Схема (в лоб) соответствующей программы:

    • Сформировать файл W1 кодов красных деталей (делитель).

    Воспользуемся представлениями (View), чтобы связать имя W1 с рабочим файлом промежуточных вычислений. (*)

    CREATE VIEW W1 AS

    SELECT KDet FROM Det WHERE Cvet='КРАСНЫЙ'

    • Сформировать файл W2 – делимое.

    CREATE VIEW W2 AS SELECT KPst,KDet FROM Dog

    • Сформировать файл W3=(W2W1).

    Деление реализуется довольно громоздко, т.к. оно имеет -определение:

    W3=(W2W1) = НАЙТИ{(r.KPst)/rW2}

    sW1 tW2 ((t.KDet=s.KDet)(t.KPst=r.KPst))

    Согласно этому определению его можно реализовать, как было описано выше.

    Внимание. В этом запросе W2 используется два раза НАЙТИW2 и W2.

    В SQL эта проблема решается с помощью псевдонима:

    CREATE VIEW W3 AS

    SELECT W2.KPst FROM W2

    WHERE NOT EXISTS (SELECT * FROM W1

    WHERE NOT EXISTS (SELECT * FROM W2 psevdonimW2

    WHERE (psevdonimW2.KDet=W1.KDet) AND

    (psevdonimW2.KPst=W2.KPst)))

    В ObjectPascal эта проблема решается с помощью двух объектов типа TTable, управляющих доступом к таблице W2. Например, W2aTable – для работы во внешнем цикле, и W2bTable – для работы во внутреннем цикле.

    • Окончательный ответ [ImPst](Psts*W3):

    SELECT Psts.ImPst FROM Psts,W3 WHERE Psts.KPst=W3.KPst

    Однако ж окончательный ответ можно было получить уже на предыдущем шаге, т.к.

    [ImPst](Psts*W3) = НАЙТИ{(r.ImPst)/rPsts}

    sW1 tW2 ((t.KDet=s.KDet)(t.KPst=r.KPst))

    Решение задачи «о поставщиках красных деталей» в СУБД FoxPro см. DBL(FOX).doc

      1. Равносильность по выразимости реляционного исчисления и реляционной алгебры. Пределы представимости в реляционной алгебре. Языки запросов, основанные на реляционной алгебре и исчислении.

      • Проектирование информационных систем и баз данных.

        Жизненный цикл программного обеспечения (ЖЦ ПО) (*) - это непрерывный процесс, который начинается с момента принятия решения о необходимости его создания и заканчивается в момент его полного изъятия из эксплуатации. Принято выделять три основных процесса в ЖЦ ПО - разработка, эксплуатация, сопровождение.

        Разработка включает в себя работы по созданию ПО в соответствии с заданными требованиями. Обычно выделяют следующие фазы процесса разработки – определение и анализ требований, проектирование и реализация (программирование).

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

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

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



        Спиральная модель ЖЦ.

        Спиральная модель ЖЦ делает упор на начальные этапы: анализ и проектирование. На этих этапах реализуемость технических решений проверяется путем создания прототипов. Каждый виток спирали соответствует созданию фрагмента или версии ПО, на нем уточняются цели и характеристики проекта, определяется его качество и планируются работы следующего витка спирали. Таким образом углубляются и последовательно конкретизируются детали проекта и в результате выбирается обоснованный вариант, который доводится до реализации.

        Разработка итерациями отражает объективно существующий спиральный цикл создания системы. Неполное завершение работ на каждом этапе позволяет переходить на следующий этап, не дожидаясь полного завершения работы на текущем. При итеративном способе разработки недостающую работу можно будет выполнить на следующей итерации. Главная же задача - как можно быстрее показать пользователям системы работоспособный продукт, тем самым активизируя процесс уточнения и дополнения требований.

        Фаза определения и анализа требований (Analysis/Software Requirements). Определение требований выполняется при совместном участии пользователей и специалистов-разработчиков. Результаты этой фазы: список и приоритетность функций будущей ИС, предварительные функциональная и информационная модели ИС (модели процессов и данных предметной области).

        Фаза проектирования (Design). Результаты этой фазы:

      • общая информационная модель системы (даталогическая модель, модель данных предметной области);

      • функциональные модели системы в целом и подсистем (модели процессов предметной области);

      • точно определенные интерфейсы между автономно разрабатываемыми подсистемами;

      • построенные прототипы экранов, отчетов, диалогов (представленные в виде форм документов, слайдов и программ-прототипов).

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

      • Концептуальное проектирование (Conceptual Design) — это сбор, документирование и анализ информации о бизнес-проблеме (о комплексе задач предметной области), выработка способа ее решения и его описание с точки зрения пользователя и с точки зрения бизнеса. Цель этого этапа — учет требований пользователей и реальных условий, в которых будет функционировать программный продукт. Результатом этого этапа является совокупность концептуальных (внешних) моделей, типичных схем и сценариев использования программной системы.

      1   2   3   4   5   6

      Похожие:

      Базы данных. (5-й семестр вмк) icon Аис поз
      Установка. Обновление версии. Резервное копирование базы данных. Восстановление базы данных. 5
      Базы данных. (5-й семестр вмк) icon Windows Банк Клиент Инструкция по переходу на версию 1
      Для перехода на версию 1 с предыдущих версий системы Банк-Клиент нужно сначала выполнить установку новой версии с созданием пустой...
      Базы данных. (5-й семестр вмк) icon Финансовая разведка
      Тем не менее, криминальный рынок полон объявлений, предлагающих приобрести по сходной цене базы данных мвд, гибдд, сотовых операторов,...
      Базы данных. (5-й семестр вмк) icon Инструкция по обновлению фк цз
      Фк цз в администрирование, в авторизации набрать admin, пароль hcadmin. В главном меню выбрать «Операции» – «Резервное копирование...
      Базы данных. (5-й семестр вмк) icon Инструкция по обновлению фк рир
      Фк рир в администрирование, в авторизации набрать admin, пароль hcadmin. В главном меню выбрать «Операции» – «Резервное копирование...
      Базы данных. (5-й семестр вмк) icon Пояснительная записка Студент
      Организация данных. Sql дает пользователю возможность изменять структуру представления данных, а также устанавливать отношения между...
      Базы данных. (5-й семестр вмк) icon Пояснительная записка Студент
      Организация данных. Sql дает пользователю возможность изменять структуру представления данных, а также устанавливать отношения между...
      Базы данных. (5-й семестр вмк) icon Методические указания к курсовой работе по дисциплине Базы данных...
      Дисциплина «Базы данных» для направления 230700. 62 «Прикладная информатика» подготовки бакалавра
      Базы данных. (5-й семестр вмк) icon Методические указания к практическим работам по дисциплине «Базы данных»
      Методические указания предназначены для проведения практических занятий по дисциплине «Базы данных», для специальности ксиК
      Базы данных. (5-й семестр вмк) icon Пер с англ. — М. Издательский
      Архитектура системы баз данных 65 Глава Введение в реляционные базы данных 92
      Базы данных. (5-й семестр вмк) icon Инструкция по установке и работе с программой заполнение базы данных
      В настоящем документе представлена краткая инструкция пользователю по установке и работе с программой Заполнение базы данных студентов...
      Базы данных. (5-й семестр вмк) icon Лекция Язык sql 46 вставка одного запроса внутрь другого 68 как работает...
      Эти базы данных создаются и функционируют под управлением специальных программных комплексов, называемых системами управления базами...
      Базы данных. (5-й семестр вмк) icon Методические указания для выполнения лабораторных работ и «Базы данных»
      Лабораторная работа №1 «Организация хранения данных в субд ms access»
      Базы данных. (5-й семестр вмк) icon 3. Заполнение базы данных, модификация данных На предыдущем этапе...
      ...
      Базы данных. (5-й семестр вмк) icon Лабораторная работа №1: Создание баз данных
      В этой утилите можно выполнить типовые задачи обслуживания баз данных, такие как резервирование и восстановление. Здесь можно настраивать...
      Базы данных. (5-й семестр вмк) icon Программа дисциплины «Информатика»
      Е дисциплины «Информатика» учебным планом отводится 200 часов, в том числе лекционные занятия – 34 часов, лабораторные работы – 72...

      Руководство, инструкция по применению




      При копировании материала укажите ссылку © 2024
      контакты
      rykovodstvo.ru
      Поиск