Вопрос №3 Принципы проектирования информационного обеспечения программного комплекса
Вид материала | Документы |
СодержаниеВопрос №16. Уровни отображения данных в СУБД Вопрос № 17 Языки общения с СУБД (SQL, QBE) |
- Е. В. Чепин московский инженерно-физический институт (государственный университет), 30.11kb.
- Рабочая программа учебной дисциплины (модуля) case-средства проектирования программного, 143.56kb.
- Технология программирования, 643.21kb.
- Базы данных, 3110.93kb.
- А. А. Дюмин московский инженерно-физический институт (государственный университет), 30.84kb.
- Учебно-методический комплекс дисциплины разработка и стандартизация программных средств, 362.73kb.
- Методика выбора программного обеспечения турфирмой Антон Россихин (само-софт), 34.31kb.
- С. Д. Романин московский инженерно-физический институт (государственный университет), 24.74kb.
- Примерная программа наименование дисциплины Проектирование и архитектура программных, 182.2kb.
- Рабочая программа учебной дисциплины "системы автоматизированного проектирования электроустановок, 119.83kb.
Вопрос №16. Уровни отображения данных в СУБД
В процессе проектирования информационных систем принято выделять четыре уровня восприятия и отображения информации предметной области:
- инфологический уровень;
- концептуальный уровень;
- внешний уровень;
- внутренний уровень.
Каждому уровню соответствует модель данных, которая специфицируется с помощью языка описания данного уровня. Модель каждого уровня, представленную на языке описания, принято называть схемой:
В зависимости от уровня представления информации различают следующие типы схем:
- инфологическая схема, дающая общее информационно-логическое представление о предметной области (общее описание протекания информационных процессов в предметной области);
- концептуальная схема, описывающая информацию о предметной области в терминах (концептах) конкретной СУБД (общее описание протекания информационных процессов в предметной области, отображенное средствами конкретной СУБД);
- внешняя схема, представляющая информацию о предметной области для прикладных программ и пользователей системы (частный взгляд пользователя на информационные процессы в предметной области, через концепты конкретной СУБД);
- внутренняя схема, характеризующая физический уровень представления информации и показывающая каким образом функционируют информационные процессы предметной области на аппаратных средствах конкретной ЭВМ и СУБД.
Таким образом, инфологический уровень предусматривает создание инфологической модели данных предметной области, независящей от каких-либо характеристик СУБД, в которой будет реализован проект. Концептуальный уровень предполагает создание концептуальной модели, в которой из инфологической модели удаляются (или преобразуются) элементы, которые не могут быть реализованы в СУБД, выбранной в качестве целевой. Внешний уровень формирует индивидуальные представления о хранимой информации для пользователей системы с помощью специального языка (обычно это SQL – Structured Query Language или QBE – Query By Example). Внутренний уровень преобразует концептуальную модель в физическую модель, предназначенную для реализации (хранения в виде баз данных и таблиц) в среде конкретной целевой СУБД.
Вопрос № 17 Языки общения с СУБД (SQL, QBE)
SQL
SQL, или язык структурированных запросов, - на сегодняшний день наиболее важный из языков манипулирования реляционными данными. Он рекомендован Американским национальным институтом стандартов (ANSI) в качестве стандартного языка манипулирования реляционными базами данных и используется как язык доступа к данным многими коммерческими СУБД, включая DB2, SQL/DS, Oracle, INGRES, SYBASE, SQL Server, dBase for Windows, Paradox, Microsoft Access и многие другие. Благодаря своей популярности SQL стал стандартным языком для обмена информацией между компьютерами. Поскольку существует версия SQL, которая может работать почти на любом компьютере и операционной системе, компьютерные системы способны обмениваться данными, передавая друг другу запросы и ответы на языке SQL.
Разработка SQL начиналась в середине 70-х годов в исследовательском центре IBM в Сан-Хосе, и изначально язык носил название SEQUEL. В 1980 г. продукт был переименован в SQL. С тех пор, помимо IBM, многие производители присоединились к разработке программных продуктов для SQL. Институт ANSI взял на себя работу по поддержке SQL и периодически публикует обновленные версии стандарта SQL (например, SQL89, SQL92, SQL3).
Конструкции и выражения в конкретной реализации SQL (например, в Oracle или SQL Server) могут немного отличаться от ANSI-стандарта. Частично это обусловлено тем, что многие коммерческие СУБД были разработаны до того, как появилось соглашение о стандарте, а также тем, что производители закладывали в свои продукты дополнительные возможности с целью получить преимущество в конкурентной борьбе.
Команды языка SQL могут использоваться интерактивно как язык запросов, а также могут быть встроены в прикладные программы. Таким образом, SQL не является языком программирования (как, например, COBOL); он скорее представляет собой подъязык данных (data sublanguage) или язык доступа к данным (data access language), встраиваемый в другие языки.
SQL – это язык, ориентированный на преобразования, который принимает на вход одно или несколько отношений и выдает на выходе одно отношение. Результат каждого SQL-запроса представляет собой отношение; даже, если результатом является отдельное число, это число считается отношением, у которого одна строка и один столбец. Таким образом, подобно реляционной алгебре, язык SQL является замкнутым.
QBE
Язык QBE позволяет задавать сложные запросы к БД путем заполнения предлагаемой СУБД запросной формы. Такой способ задания запросов обеспечивает высокую наглядность и не требует указания алгоритма выполнения операции — достаточно описать образец ожидаемого результата. В каждой из современных реляционных СУБД имеется свой вариант языка QBE.
С помощью языка QBE можно задавать запросы однотабличные и многотабличные (выбирающие или обрабатывающие данные из нескольких связанных таблиц).
При задании запросов с помощью языка QBE допустимы следующие операции: выборка, вычисление и модификация данных; вставка и удаление записей. Результатом выполнения запроса может быть новая таблица или обновленная исходная таблица. Выборка, вставка, удаление и модификация данных и записей могут выполняться с использованием условий, задаваемых с помощью логических выражений. Вычисления над данными задаются с помощью арифметических выражений и порождают в ответных таблицах новые — вычисляемые поля.
QBE был разработан Цлуфом M.M. в научно-исследовательской лаборатории фирмы IBM. QBE похож на SQL тем, что в своем первоначальном варианте обеспечивал только средства для запроса, тогда как в последующие версии были включены операции запоминания и многие другие возможности. Общий уровень языка сходен с уровнем языка SQL, хотя, существуют некоторые операции запроса, возможные в QBE, но не имеющие аналога в SQL или в каком-либо другом языке. Более очевидное различие между языками SQL и QBE в том, что последний разработан главным образом для работы с терминала (дисплея). Всякая операция в QBE специфицируется с помощью одной или нескольких таблиц; каждая такая таблица строится на экране дисплея частично системой, частично пользователем. Поскольку операции задаются в табличной форме, мы говорим, что QBE имеет двумерный синтаксис. Большинство традиционных языков, наоборот, имеют линейный синтаксис.
Стоит отметить предоставляемую пользователю языком QBE свободу построения запроса тем способом, который кажется пользователю наиболее естественным. Действительно, запрос может быть построен в том порядке, который нравится пользователю: порядок строк в таблице запроса совершенно безразличен. Более того, порядок, в котором пользователь заносит записи, составляющие эти строки, также совершенно произволен. Например, возьмем запрос: «Получить имена поставщиков, поставляющих детали красного цвета». Пользователь может представлять себе этот запрос в виде: «Выделить красные детали, затем выделить номера поставщиков, поставляющих эти детали, и затем выделить их имена». Или же пользователь может представить себе этот же запрос как «Выделить имена тех поставщиков, таких, что поставляемая ими деталь имеет красный цвет». В любом варианте это один и тот же запрос. Другими словами, QBE является в высокой степени непроцедурным языком, который обеспечивает возможность представления некоторой задачи различными способами.