ЗНАЕТЕ ЛИ ВЫ?

Понятия банка и базы данных.



Лекция 1,2. Основные понятия. Введение в базы данных.

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

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

Упрощенная схема систем баз данных состоит из 4-х главных компонентов: данные, аппаратное обеспечение, программное обеспечение и пользователи.

Каждый из этих компонентов и дополнительные компоненты рассматриваются ниже.

 

Понятия банка и базы данных.

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

База данных – некоторый набор перманентных (постоянных) данных, используемых прикладными системами какого-либо предприятия.

 

Компоненты банка данных.

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

Назначение базы данных.

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

Возможность совместного доступа к данным.

Сокращение избыточности данных.

Устранение противоречивости данных.

Обеспечение поддержки транзакций.

Обеспечение целостности данных.

Защита данных.

Администрация базы данных и их функции.

Администрация базы данных – сотрудники, ответственные за контроль и защиту данных. Функции администрации базы данных:

Проектирование базы данных

Обучение пользователей

Защита и поддержание целостности базы данных

Обеспечение быстродействия систем.

Словарь данных.

Словарь данных (системный каталог), представляет собой часть СУБД, определяющая структуру пользовательских данных и то, как они могут использоваться

Вычислительная система.

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

Обслуживающий персонал.

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

.

Понятие, назначение и функции СУБД.

Для создания и ведения базы данных используется набор языковых и программных средств, называемый системой управления базой данных (СУБД).

Назначение СУБД – представление пользовательского интерфейса с системой базы данных. Пользовательский интерфейс находится на внешнем уровне.

СУБД различаются по используемой модели данных. СУБД, основанные на использовании реляционной модели данных, называются реляционными СУБД.

Функции СУБД:

Управление транзакциями

Транзакция - это последовательность операций над БД, рассматриваемых СУБД как единое целое. Либо транзакция успешно выполняется, и СУБД фиксирует (COMMIT) изменения БД, произведенные этой транзакцией, во внешней памяти, либо ни одно из этих изменений никак не отражается на состоянии БД. Понятие транзакции необходимо для поддержания логической целостности БД. Например, единственным способом не нарушить целостность БД при выполнении операции приема на работу нового сотрудника является объединение элементарных операций над файлами СОТРУДНИКИ и ОТДЕЛЫ в одну транзакцию. Таким образом, поддержание механизма транзакций является обязательным условием даже однопользовательских СУБД (если, конечно, такая система заслуживает названия СУБД). Но понятие транзакции гораздо более важно в многопользовательских СУБД.

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

Журнализация

Одним из основных требований к СУБД является надежность хранения данных во внешней памяти. Под надежностью хранения понимается то, что СУБД должна быть в состоянии восстановить последнее согласованное состояние БД после любого аппаратного или программного сбоя. Обычно рассматриваются два возможных вида аппаратных сбоев: так называемые мягкие сбои, которые можно трактовать как внезапную остановку работы компьютера (например, аварийное выключение питания), и жесткие сбои, характеризуемые потерей информации на носителях внешней памяти. Примерами программных сбоев могут быть: аварийное завершение работы СУБД (по причине ошибки в программе или в результате некоторого аппаратного сбоя) или аварийное завершение пользовательской программы, в результате чего некоторая транзакция остается незавершенной. Первую ситуацию можно рассматривать как особый вид мягкого аппаратного сбоя; при возникновении последней требуется ликвидировать последствия только одной транзакции.

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

Журнал - это особая часть БД, недоступная пользователям СУБД и поддерживаемая с особой тщательностью (иногда поддерживаются две копии журнала, располагаемые на разных физических дисках), в которую поступают записи обо всех изменениях основной части БД. В разных СУБД изменения БД журнализуются на разных уровнях: иногда запись в журнале соответствует некоторой логической операции изменения БД (например, операции удаления строки из таблицы реляционной БД), иногда - минимальной внутренней операции модификации страницы внешней памяти; в некоторых системах одновременно используются оба подхода.

Во всех случаях придерживаются стратегии "упреждающей" записи в журнал (так называемого протокола Write Ahead Log - WAL). Грубо говоря, эта стратегия заключается в том, что запись об изменении любого объекта БД должна попасть во внешнюю память журнала раньше, чем измененный объект попадет во внешнюю память основной части БД. Известно, что если в СУБД корректно соблюдается протокол WAL, то с помощью журнала можно решить все проблемы восстановления БД после любого сбоя.

Поддержка языков БД

Для работы с базами данных используются специальные языки, в целом называемые языками баз данных. В ранних СУБД поддерживалось несколько специализированных по своим функциям языков. Чаще всего выделялись два языка - язык определения схемы БД (SDL - Schema Definition Language) и язык манипулирования данными (DML - Data Manipulation Language). SDL служил главным образом для определения логической структуры БД, т.е. той структуры БД, какой она представляется пользователям. DML содержал набор операторов манипулирования данными, т.е. операторов, позволяющих заносить данные в БД, удалять, модифицировать или выбирать существующие данные.

В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с БД, начиная от ее создания, и обеспечивающий базовый пользовательский интерфейс с базами данных. Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL (Structured Query Language). В нескольких лекциях этого курса язык SQL будет рассматриваться достаточно подробно, а пока мы перечислим основные функции реляционной СУБД, поддерживаемые на "языковом" уровне (т.е. функции, поддерживаемые при реализации интерфейса SQL).

Прежде всего, язык SQL сочетает средства SDL и DML, т.е. позволяет определять схему реляционной БД и манипулировать данными. При этом именование объектов БД (для реляционной БД - именование таблиц и их столбцов) поддерживается на языковом уровне в том смысле, что компилятор языка SQL производит преобразование имен объектов в их внутренние идентификаторы на основании специально поддерживаемых служебных таблиц-каталогов

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

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

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

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

Описание структуры данных на любом уровне называется схемой. На внешнем уровне – внешняя схема. На концептуальном уровне описание базы данных называется концептуальной схемой. На внутреннем уровне – внутренняя схема.

Основным назначением трехуровневой архитектуры является обеспечение независимости данных. Суть независимости данных заключается в том, что изменения на нижних уровнях никак не влияют на верхние уровни. Различают два типа независимости данных: логическую и физическую.

Рис.2. Описание документа приходный ордер в виде СЕИ.

 

Единицу информации, входящую в СЕИ называют составляющей единицей информации. В рассматриваемом примере в качестве составляющей единицы информации можно рассматривать Р1, Р2, Р3, Р4. Для каждой СЕИ различают ее наименование, структуру, значение. Структура СЕИ - это реквизитный состав с учетом вхождения СЕИ более низкого уровня в состав рассматриваемой СЕИ.

Значение СЕИ - это некоторая конструкция, в которой каждому реквизиту, входящему в состав СЕИ присвоено значение или некоторое множество значений.

Документ Приходный ордер представляет собой СЕИ – обозначим ее С1. Форму документа «Приходный орден» можно разбить на две части: общую и предметную, которым соответствуют две СЕИ – «С11» и «С12».

С1 можно представить С1.(С11, С12), где С1 – идентификатор СЕИ.

( . ) – знак иерархического подчинения.

С11, С12 – составляющие С1. ( , ) – знак отношения следования одного уровня.

С11 и С12 являются составными единицами информации и включают следующие составляющие элементы:

С11. (Р1, Р2, Р3).

С12. (Р4, Q1, Q2, Q3, Q4).

Единица информации одной формы представляющая одно значение в некоторой конструкции называется простой СЕИ (С11), а представляющая несколько значений – составной или массивом (С12). Следовательно, в ее описании надо объявить длину массива т.е. максимальное число позиций (обычно указывают номер первой и последней позиций).

С1. (С11. (Р1, Р2, Р3), С12. (1:3). (Р4, Q1, Q2, Q3, Q4))

Можно дать графическую интерпретацию СЕИ в виде графа, где висячие вершины – реквизиты СЕИ (реквизиты – признаки и реквизиты - основания). Остальные вершины – промежуточные СЕИ, которые являются составляющими по отношению к основной СЕИ.

 

Одно значение С 12 содержит по одному значению реквизитов Р4, Q1, Q2, Q3, Q4. Одно значение С1 содержит по одному значению всех реквизитов из одного документа (Р1, Р2, Р3, Р4, Q1, Q2, Q3, Q4). Одно значение СЕИ в памяти ЭВМ называется записью.

Структура составной СЕИ С1 может быть преобразована к виду:

С1. (1:3). ( Р1, … ,Р4, Q1, … , Q4)

 

Табличная интерпретация СЕИ

С1

Р1 Р2 Р3 Р4 Q1 Q2 Q3 Q4
05.09.11        
05.09.11        
05.09.11          

Таблица 1.

 

Существует операция перестройки структуры СЕИ – нормализация. В результате этой операции СЕИ приобретает двухуровневую структуру, что соответствует двумерной таблице. Нормализованная структура более простая, но имеет увеличенный набор данных. Таблица 1. находится в первой нормальной форме. Операции над СЕИ те же, что и операции над единицами информации. Следует добавить сюда свертку и выборку.

Свертка - операция перехода от нормализованной структуры СЕИ к произвольной структуре, с соответствующим преобразованием значений (от таблицы 1 к рис. 2)

Выборка – операция выделения подмножества значений СЕИ, которое удовлетворяет заранее поставленным условиям выборки.

Цель анализа экономических документов заключается в том, чтобы выделить из них осмысленные фрагменты, называемые показателями. Это позволяет установить смысловые связи между различными документами, построить схему взаимосвязи показателей, определить объем перерабатываемой информации, а так же использовать результаты анализа для построения структуры базы данных.

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

Общий вид показателя:

П (Р1, Р2, … , РN, Q), где Q- реквизит-основание, Р1, Р2, … , РN – реквизиты-признаки.

Структура показателя – его реквизитный состав.

Значение показателя – конструкция, в которой каждому реквизиту, входящему в показатель присвоено конкретное значение из соответствующего домена.

Для показателя определены арифметические, символьные, логические операции и операции отношения.

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

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

Показатель имеет: имя, структуру (состав реквизитов), значение.

Для установления признаков и оснований показателя можно руководствоваться правилами:

Если значения реквизита исходное данное (число) или результат арифметических вычислений – это реквизит основания.

Если значение текстовое – реквизит признак.

Если основание показателя вычисляется по значению других оснований, то состав признаков показателя определяется как результат объединения признаков исходных показателей и других правил.

Пример. Реквизиты документа «Приходной орден»:

Дата, КодСкл , КодПост

КМат, Кво-док, Кво-пр, Цена, Сумма

Реквизиты – основания Кво-док, Кво-пр, Цена, Сумма представляют количественную характеристику оприходования материала на складе.

Следовательно имеем четыре показателя.

Чтобы определить структуру каждого реквизита – основания определить соответствующие реквизиты – признаки. Здесь необходимо использовать функциональных зависимостей.

П1 (КМат, КодСкл, КодПост, Дата, Кво-док)

П2 (КМат, КодСкл, КодПост, Дата, Кво-пр)

П3 (КМат, Цена)

П4 (КМат, КодСкл, КодПост, Дата, Сумма)

Расчетная формула, отражающая связь оснований трех показателей

Сумма = Цена * Кво-пр.

Реквизиты признаки показателя П4 результат объединения реквизитов признаков показателей П2 и П3

Граф взаимосвязи показателей

 

Использование показателей.

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

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

Полученные в рассматриваемом примере показатели образуют в БД два отношения.

Первое - с атрибутами КодМат, Цена и второе - с атрибутами КодМат, КодСкл, КодПост, Дата, Кво-пр, Кво-док, Сумма.

Показатель является разновидностью СЕИ.

 

Лекция 3. Реляционная модель данных (РМД).

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

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

В настоящее время различают несколько видов моделей данных, в том числе:

1. Теоретико-графовые модели (сетевые и иерархические).

2. Теоретико-множественные модели, использующие математический аппарат. К ним относятся реляционные модели.

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

Реляционная модель – это абстрактная теория данных, основанная на некоторых положениях математики ( в основном теории множеств и логики предикатов).

Впервые принципы реляционной модели были изложены Коддом (Е.F.Codd) в 70-х годах. Математик по образованию он предложил использовать аппарат теории множеств и математической логики в управлении БД. Он показал, что данные могут быть организованы в виде двумерных таблиц особого вида, известного в математике как отношение (relation). Над отношениями могут выполняться различные операции. Кодд также предложил понятие реляционного исчисления.

В реляционной модели рассматриваются три аспекта:

1. Структурный аспект. Данные должны быть представлены в виде отношений.

2. Аспект целостности данных. БД содержит полную и непротиворечивую информацию, необходимую для корректного функционирования приложений.

3. Аспект манипулирования данными. В распоряжении пользователя имеются операторы манипулирования данными.

 

БД поставщиков и деталей

S

  S# SNAME STATUS CITY  
  S1 Smith London  
  S2 Jones Paris  
  S3 Black Paris  
  S4 Clark London  
  P        
P1 Nut Red London
P2 Bolt Green Paris
P3 Screw Blue Paris
P4 Screw Red London
                   

 

SP

S# P# QTY
S1 P1
S1 P2
S1 P3
S2 P1
S2 P2
S3 P2

Ключи.

 

Потенциальные ключи. Потенциальный ключ К для R- это подмножество множества атрибутов R, обладающее свойствами:

- уникальности(нет двух кортежей R с одинаковым значением К)

- неизбыточности т.е. никакое из подмножеств множества К не обладает свойством уникальности (если из S#, P# удалить атрибут S#, то значения P# будут повторяться).

Обычно в отношении может быть несколько потенциальных ключей. Один из них выбирается первичным, остальные альтернативные.

Внешние ключи используются в БД для связывания значений атрибутов из разных переменных -отношений и следовательно самих переменных - отношений. Если в БД отношения связаны, ее можно рассматривать как целостную. Внешний ключ, скажем S в переменной отношения SP, представляет собой атрибут, такой что:

- существует переменная -отношения S с потенциальным ключом S

- каждое значение внешнего ключа S в текущем значении отношения SP обязательно совпадает со значением потенциально ключа S некоторого кортежа в текущем значении отношения S. Внешний ключ может быть многоатрибутный.

Пример:

S - потенциальный ключ отношения S.

S - внешний ключ отношения SP.

P - потенциальный ключ отношения P.

P - внешний ключ отношения SP.

(S, P) – первичный ключ отношения SP. Он составной.

Составной ключ содержит два и более атрибутов.

Если в отношении SP ввести кортеж со значениями, например, S5; P8; 320, то эта информация будет системой отвергнута т.к. не могут существовать поставки несуществующих деталей.

Реляционные СУБДв качестве альтернативы должны поддерживать ключи, определяемые системой(суррогатные ключи ). Суррогатные ключи - это доступные пользователю значения, а идентификаторы объектов – это адреса, или указатели, которые, по крайней мере концептуально от пользователя скрыты. Суррогатный ключ не имеет никакого отношения к предметной области и заменяет длинный составной первичный ключ.

Суперключнадмножество потенциального ключа. Например { S, CITY} – суперключ переменной -отношения S.

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

 

Лекция 4. Реляционная алгебра.

Естественное соединение.

Естественным соединением (C JOIN D) отношений C и D , имеющих множество атрибутов X,Y и Y,Z соответственно, где Y общее подмножество атрибутов из C и D, определенных на одних и тех же доменах, называется отношение с заголовком { X,Y,Z } и телом, содержащим множество кортежей таких, для которых в отношении C значение атрибута X равно x, а Y равно y , и в отношении D значение атрибута Z равно z.

Пример естественного соединения отношений C и D:

C D

Y Z
B1 C1
B2 C1
B3 C2
X Y
A1 B1
A2 B1
A3 B2

 

 

C JOIN D

 

X Y Z
A1 B1 C1
A2 B1 C1
A3 B2 C1

 

 

Пример3. Получить всю информацию о поставщиках и поставках. Выполнить естественное соединение (S JOIN SP) отношений S и SP.

 

Найдем сначала декартово произведение отношений S и SP. Перед выполнением этой операции необходимо переименовать атрибуты отношений так, чтобы у них не было одинаковых атрибутов. Переименуем атрибуты S# в отношении SP в атрибут SPS #

S TIMES (SP RENAME S# As SPS#)

S# SNAME STATUS CITY SPS# P# QTY
S1 Smith London S1 P1
S1 Smith London S1 P2
S1 Smith London S1 P3
S1 Smith London S2 P1
S1 Smith London S2 P2
S1 Smith London S3 P2
S2 Jones Paris S1 P1
S2 Jones Paris S1 P2
S2 Jones Paris S1 P3
S2 Jones Paris S2 P1
S2 Jones Paris S2 P2
S2 Jones Paris S3 P2
S3 Black Paris S1 P1
S3 Black Paris S1 P2
S3 Black Paris S1 P3
S3 Black Paris S2 P1
S3 Black Paris S2 P2
S3 Black Paris S3 P2

Таблица1. Декартово произведение отношений S и SP.

 

Выполним эквисоединение отношений S и SP.

(S TIMES (SP RENAME S# As SPS#)) WHERE S# = SPS#

Из предыдущей таблицы выберем строки, в которых значения атрибутов S# и SPS# равны. Получим следующее отношение.

 

S# SNAME STATUS CITY SPS# P# QTY
S1 Smith London S1 P1
S1 Smith London S1 P2
S1 Smith London S1 P3
S2 Jones Paris S2 P1
S2 Jones Paris S2 P2
S3 Black Paris S3 P2

Таблица 2. Эквисоединение отношений S и SP.

 

Если в этом отношении (Таблица 2) опустить один атрибут, например SPS#

 

((S TIMES (SP RENAME S# As SPS#)) WHERE S# = SPS#){All BUT SPS#}, (А)

 

то получим естественное соединение отношений S и SP .

(S JOIN SP) (В)

 

S# SNAME STATUS CITY P# QTY
S1 Smith London P1
S1 Smith London P2
S1 Smith London P3
S2 Jones Paris P1
S2 Jones Paris P2
S3 Black Paris P2

Таблица 3. Естественное соединение отношений S и SP .

Выражения (А) и (В) эквивалентны.

Пример4. Определить имена поставщиков детали ‘P3’.

Сначала выполняется естественное соединение отношений S и SP по общему атрибуту S#. Затем в результате соединения выбираются кортежи, в которых P# = ‘P3’ Получаем всю информацию о поставщиках и поставках детали ‘P3’.

 

(S JOIN SP) WHERE P = ‘P3’ (С)

S# SNAME STATUS CITY P# QTY
S1 Smith London P3
S2 Jones Paris P3
S3 Black Paris P3

 

Далее выполняется проекция по атрибуту SNAME полученной выборки:

 

((S JOIN SP) WHERE P# = ‘P3’){SNAME} (D)

 

Результат запроса:

 

SNAME
Smith

 

Предыдущее выражение (D) можно преобразовать в логически эквивалентное и более рациональное выражение следующего вида:

((SP WHERE P# = ‘P3’) JOIN S){SNAME} (F)

 

Реляционная алгебра может служить хорошим основанием для оптимизации.

 

Деление. Пусть отношения С и D имеют заголовки {X1, X2, …, XM} {Y1, Y2, …, YN} соответственно. Заголовки не пересекаются. Пусть имеется отношение Z с заголовком {X1, X2, …, XM, Y1, Y2,…, YN}. Результат деления отношения С на отношение D по отношению Z (C DIVIDEBY D PER Z, где отношение С - делимое, отношение D - делитель, Z - отношение-посредник) называется отношение, содержащее такие значения Х из отношения С, для которых соответствующие значения Y из Z включают все значения Y из D.

Z

S# P#
S1 P1
S1 P2
S1 P3
S2 P1
S2 P2
S3 P2

С

S#
S1
S2
S3
 

 

D

P1
P2
P3

 

C DIVIDEBY D PER Z

 

S#
S1

 

Лекция 5. Реляционное исчисление.

 

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

 

Примеры запросов на языке реляционного исчисления

 

Примеры запросов на языке реляционного исчисления.

 

 

Выбор по условию.

1. Определить номера поставщиков из Парижа со статусом большим 20

 

S.S# WHERE S.CITY = ‘PARIS’ AND S.STATUS > 20

Результат запроса:

S#
S3

 

Запросы на выборку

1.1 Указать имена и статус поставщиков в Париже.

 

 

 

1.2 Показать номера поставщиков, статус которых более 20 и которые находятся в Лондоне.

 

 

 

1.3 Показать имена поставщиков, расположенных в Лондоне или имеющих статус более 20 (или - две строки).

 

 

Запросы на обновление

Общая характеристика языка

Язык SQL предназначен для выполнения операций над таблицами (создание, удаление, изменение структуры) и над данными таблиц (выборка, изменение, добавление и удаление), а также некоторых сопутствующих операций. SQL является непроцедурным языком и не содержит операторов управления, организации подпрограмм, ввода-вывода и т.п. в связи с этим SQL автономно не используется, обычно он погружен в среду встроенного языка программирования СУБД.

В современных СУБД с интерактивным интерфейсом можно создавать запросы, используя другие средства, например QBE. Однако применение SQL зачастую позволяет повысить эффективность обработки данных к базе. Например, при подготовке запроса в среде Access можно перейти из окна Конструктора запросов (формулировки запросов по образцу на языке QBE) в окно с эквивалентным оператором SQL. Подготовку нового запроса путем редактирования уже имеющегося в ряде случаев проще выполнить путем изменения оператора SQL. В различных СУБД состав операторов SQL может несколько отличаться.

Язык SQL не обладает функциями полноценного языка разработки, а ориентирован на доступ к данным, поэтому его включают в состав средств разработки программ. В этом случае его называют встроенным SQL. Стандарт языка SQL поддерживают современные реализации языков программирования. В специализированных системах разработки приложений типа клиент – сервер среда программирования, кроме того, обычно дополнена коммуникационными средствами (установление и разъединение соединений с серверами БД, обнаружение и обработка возникающих в сети ошибок и т.п.), средствами разработки пользовательских интерфейсов, средствами проектирования и отладки.

Основным назначением языка SQL (как и других языков работы с базами данных) является подготовка и выполнение запросов. В результате выборки данных из одной или нескольких таблиц может быть получено множество записей, называемое представлением.

 

Спецификация запроса

В запросе задается список выборки (список арифметических выражений над значениями столбцов результата табличного выражения и констант). В результате применения списка выборки к результату табличного выражения производится построение новой таблицы, содержащей то же число строк, но вообще говоря другое число столбцов, содержащих результаты вычисления соответствующих арифметических выражений из списка выборки. Кроме того, в спецификации запроса могут содержаться ключевые слова ALL или DISTINCT. При наличии ключевого слова DISTINCT из таблицы, полученной применением списка выборки к результату табличного выражения, удаляются строки-дубликаты; при указании ALL (или просто при отсутствии DISTINCT) удаление строк-дубликатов не производится.

Операция объединения.

Выражение запросов - это выражение, строящееся по указанным синтаксическим правилам на основе спецификаций запросов. Единственной операцией, которую разрешается использовать в выражениях запросов, является операция UNION (объединение таблиц) с возможной разновидностью UNION ALL. К таблицам-операндам выражения запросов предъявляется то требование, что все они должны содержать одно и то же число столбцов, и соответствующие столбцы всех операндов должны быть одного и того же типа. Выражение запросов вычисляется слева направо с учетом скобок. При выполнении операции UNION производится обычное теоретико-множественное объединение операндов, т.е. из результирующей таблицы удаляются дубликаты.

(SELECT * FROM S )

UNION (SELECT * FROM SS );

 

При выполнении операции UNION ALL образуется результирующая таблица, в которой могут содержаться строки-дубликаты.

 

Основные операторы SQL. Разделы SELECT, FROM, WHERE. Предикаты сравнения, BETWEEN, IN, EXISTS.

Раздел FROM

Результатом выполнения раздела FROM является декартово произведение таблиц, заданных списком таблиц раздела FROM.

Рядом с именем таблицы можно указывать еще одно имя "correlation name". Фактически, это некоторый синоним имени таблицы, который можно использовать в других разделах табличного выражения для ссылки на строки именно этого вхождения таблицы.

Если выражение содержит только раздел FROM (это единственный обязательный раздел табличного выражения), то результат табличного выражения совпадает с результатом раздела FROM.

 

SELECT * FROM S;

 

Раздел WHERE

Если в выражении присутствует раздел WHERE, то следующ





Последнее изменение этой страницы: 2017-01-25; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.216.79.60 (0.043 с.)