ТОП 10:

Генераторы графического представления данных



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

Генераторы приложений

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

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

Резюме

1. Реляционная алгебра — это процедурный язык высокого уровня, который может применяться в СУБД для построения нового отношения из одного или нескольких отношений, хранящихся в базе данных.

2. Реляционное исчисление — непроцедурный язык, с помощью которого может быть сформулирова­но определение отношения, создаваемого на основе одного или нескольких отношений в базе данных. Но с формальной точки зрения реляционная ал­гебра и реляционное исчисление эквивалентны, т.е. для каждого выражения алгебры имеется эквивалентное выражение исчисления (и наоборот).

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

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

5. Реляционное исчисление— это формальный непроцедурный язык, в котором используются предикаты. Существуют две основные формы реляционного исчисления: реляционное исчисление кортежей и реляционное исчисление доменов.

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

7. Переменной кортежана-; зывается переменная, которая принадлежит к области определения указанно­го отношения, иными словами, переменная, допустимыми значениями кото­рой являются только кортежи отношений.

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

9. Реляционная алгебралогически эквивалентна безопасному подмножеству ре­ляционного исчисления(и наоборот).

10. Языки манипулирования реляционными даннымиподразделяются на проце­дурные и непроцедурные, трансформационные, графические, четвертого или пятого поколения.

 


Лекция 6.

Язык SQL

Язык SQL (структурированный язык запросов) весьма далек от полноценной реализации реляционной модели. Тем не менее, он является стандартным реляционным языком и в настоящее время поддерживается практически всеми продуктами, представленными на рынке.

Будут рассмотрены вопросы определения данных, средства обработки данных (операции выборки и операции обновления), а также три ключевых конструкции SQL: табличные выражения, условные выражения и скалярные выражения. Изложение опирается на текущий стандарт языка SQL, известного как «SQL/92».

Следует отметить, что ни один из коммерческих продуктов не поддерживает в полной мере стандарта SQL/92. Другими словами, любой продукт, не поддерживая некоторых аспектов стандарта, в других отношениях, возможно, превосходит его. Например, продукт IBM DB2, безусловно, не поддерживает всех средств SQL/92, касающихся целостности, но он превосходит стандарт в отношении правил, связанных с обновлением представлений.

Разработанный в 1970 г. в компании IBM язык SQL стал стандартным языком, используемым для связи с такими системами управления реляционными базами данных, как Oracle, INGRES, Informix, Sybase, SQLbase, Microsoft SQL Server, DB2 (СУБД самой IBM), продуктами SQL/DC, Paradox, Access и многими другими. Кроме того, для продуктов dBASE и Interbase, снабженных собственными интерфейсами, уже разработан (или разрабатывается) интерфейс типа SQL для связи с базами данных. Можно с уверенностью сказать, что если вы собираетесь использовать реляционные базы данных, то вам придется работать с SQL.

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

Реализация языка SQL

В техническом смысле SQL является «подъязыком данных», который предназначен только для использования в качестве взаимодействия с базой данных. Сам по себе SQL не содержит тех средств, которые необходимы для разработки законченных программ, и может использоваться в виде одной из трех прикладных реализаций:

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

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

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

Основные понятия языка SQL

SQL отличается от языков программирования высокого уровня несколькими признаками. Во-первых, он относится к непроцедурным языкам. На языке типа COBOL или С можно записать для компьютера шаг за шагом все инструкции, необходимые для исполнения задания. SQL просто декларирует, что нужно делать, а исполнение возлагает на СУБД. Такой подход лежит в русле философии реляционных баз данных. СУБД в данном случае рассматривается как «черный ящик»: что делается внутри него – пользователя не касается. Его интересует только получение правильного ответа из базы данных и внесение в нее необходимых изменений. Ограничивая пользователя в вопросах исполнения операторов, SQL позволяет упростить сами операции и обеспечивает гибкость при реализации баз данных.

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

 

SELECT *

FROM Clients

WHERE city = ‘Прага’;

 

Первая строка означает «выбери все столбцы», а предложение FROM указывает на таблицу, из которой они должны быть выбраны. Предложение WHERE представляет несколько больший интерес. С его помощью мы запрашиваем не просто конкретную строку, а все строки, которые удовлетворяют указанному условию (ассоциируются с Прагой). Не имеет никакого значения, сколько заказчиков из Праги записано в таблице – ни одного или пятьдесят тысяч. Все записи будут получены с помощью этого оператора. Если необходимо произвести поиск специальной строки таблицы, то это можно сделать, используя значение первичного ключа. (Это одна из причин, почему первичный ключ имеет такое важное значение). Приведенная выше операция называется «весь набор одновременно», в то время как большинство языков исполняет операции типа «один элемент одновременно».

Другим важным преимуществом SQL является трехзначная логика (3VL). В большинстве языков используются булевы выражения, которые могут принимать только два значения: TRUE (истина) и FALSE (ложь). Язык SQL позволяет записывать в базу данных значение NULL (неопределенное значение). NULL является маркером, используемым для заполнения пространства в столбце, где по какой либо причине отсутствуют данные. (Значение может быть неприменимо, как, например, цвет волос в отношении птицы; может отсутствовать, как, например, цвет волос у лысого человека; и может быть неизвестным, как, например, цвет волос у человека в маске). Результатом применения арифметических операторов к NULL и другому значению, содержащему NULL, должно быть значение NULL. Когда значение NULL используется при сравнении, булево значение результата сравнения будет ни TRUE и ни FALSE, а UNKNOWN.

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

· Язык определения данных (Data Definition Language – DDL) включает в себя все операторы, используемые для определения схем и объектов внутри схем. Наиболее важные операторы DDL применяются для создания различных объектов, например, операторы CREATE SCHEMA, CREATE TABLE, CREATE VIEW, CREATE ASSERTION и CREATE DOMAIN.

· Язык манипулирования данными (Data Manipulation Language – DML) включает все операторы, которые используются для записи, изменения и поиска данных в таблицах. Основные операторы этого языка: SELECT, INSERT, UPDATE и DELETE. Оператор SELECT применяется для формирования запросов, и, возможно, является наиболее сложным из одиночных операторов SQL. Остальные операторы используются для манипулирования данными в рамках таблиц.

· Операторы управления данными (Data Control Statements). Эта группа содержит операторы, которые используются для того, чтобы определить, что могут и чего не могут делать пользователи с объектами базы данных. Основными операторами этой категории являются GRANT и REVOKE (отмена).

 







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

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