Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_po_BD.doc
Скачиваний:
4
Добавлен:
22.09.2019
Размер:
1.37 Mб
Скачать

Объектно-реляционные субд.

В настоящее время реляционные СУБД являются доминирующим типом СУБД, приблизительный ежегодный объем продаж которых составляет до 10 миллиардов долларов США или 25 миллиардов с учетом продажи инструментов для их разработки. Рынок ООСУБД относительно мал, но они продолжают находить все новые области применения, например в WWW. Поэтому фирмы-разработчики реляционных СУБД стараются расширить функциональные возможности существующих систем.

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

Преимущества орсубд

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

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

Недостатки орсубд

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

17.Язык структурированных запросов(Structured Query Language)

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

Очень важным требованием к реляционным СУБД является наличие мощного и в тоже время простого языка, позволяющего выполнять все необходимые пользователям операции. В последние годы таким повсеместно принятым языком стал язык реляционных БД SQL (Structured Query Language- язык структурированных запросов). История наиболее распространенного в настоящее время языка реляционных баз данных SQL насчитывает уже более 25 лет. Первый, достаточно полный функционально, но не полностью синтаксически и семантически определенный вариант языка SQL (его исходным названием было SEQUEL - StructuredEnglishQueryLanguage) был разработан и частично реализован в рамках проекта экспериментальной реляционной СУБД SystemR (проект выполнялся с 1974 по 1979 гг. в научно-исследовательской лаборатории компании IBM в г. Сан-Хосе, Калифорния).

К достоинствам языка SQL относится наличие международных стандартов. Первый международный стандарт был принят в 1989 г., и соответствующая версия языка называется SQL-89. Этот стандарт поддерживается практически во всех современных коммерческих реляционных СУБД (например, в Informix, Sybase, Ingres и т.д.). Второй международный стандарт был принят в 1992 г. - SQL-92. Этот вариант языка существенно шире, чем SQL-89. К настоящему времени основные компании-производители СУБД только частично поддерживают этот стандарт. В настоящее время SQL реализован практически во всех коммерческих реалиционных СУБД, все фирмы провозглашают соответствие своей реализации стандарту SQL, и на самом деле реализованные диалекты SQL очень близки, хотя и не полностью совпадают. Одновременно с завершением работ по определению стандарта SQL2 была начата разработка стандарта SQL3. Предполагается, что SQL3 будет содержать механизм триггеров и возможность использования абстрактных типов данных.

Помимо операторов формулирования запросов и манипулирования БД язык содержит:

  • средства определения схемы БД и манипулирования схемой;

  • операторы для определения ограничений целостности и триггеров;

  • средства определения представлений БД;

  • средства авторизации доступа к отношениям и их полям;

  • средства управления транзакциями.

Операторы формулирования запросов и манипулирования БД

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

1. Оператор SELECT выполняет выборки данных из таблиц базы данных.

В простейшем случае команда выглядит следующим образом

SELECT { * | столбец 1, [столбец 2,…]}

FROM таблица

Использование предложения WHERE выбирает лишь строки, удовлетворяющие условию поиска.

SELECT {* | столбец 1, [столбец 2,…]}

FROM таблица

WHERE < условие поиска>

Условие может включать имена полей, константы, логические выражения, содержащие арифметические операции, логические операции and, or, not и операции отношения:

=

>

>=

<

<=

!= или <>

like

символов

between … and

in

равно

больше

больше или равно

меньше

меньше или равно

не равно

наличие заданной последовательности

диапазон значений

соответствие элементу множества

Операция like имеет синтаксис

<поле> like ‘последовательность символов’

Искомые символы могут начинаться и (или) заканчиваться символом %.

Операция between …and имеет синтаксис

<поле> between <значение 1> and < значение 2>

Операция in имеет синтаксис

<поле> in (<значение 1> , <значение 2> , … < значение n>)

Часто в результирующий набор необходимо включить не все записи с одинаковым значением какого-либо столбца (комбинации столбцов), а только одну из них. В этом случае после SELECT указывают ключевое слово DISTINCT.

Предложение ORDER BY позволяет упорядочивать результирующий набор

SELECT {* | столбец 1, [столбец 2,…]}

FROM таблица

ORDER BY <список столбцов>

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

Агрегатные функции предназначены для вычисления итоговых значений. К агрегатным функциям относятся:

COUNT (<выражение>) – посчитывает число вхождений значения выражения;

MIN (<выражение>) – определяет минимальное значение;

MAX (<выражение>) – определяет максимальное значение;

SUM (<выражение>) - суммирует значения выражения;

AVG (<выражение>) - находит среднеарифметическое значение.

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

GROUP BY столбец 1, [столбец 2,…]

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

2. Оператор добавления INSERT имеет следующий общий вид:

INSERT INTO <таблица> [ ( столбец 1 [, столбец 2 …] ) ]

VALUES (<значение 1> [,<значение 2>…] )

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

3. Оператор UPDATE используется для изменения значений в группе записей или, в частном случае, одной записи.

Формат оператора:

UPDATE таблица

SET столбец1= <значение1> [, столбец1= значение2 …]

[ WHERE <условие поиска> ]

Если фраза WHERE отсутствует, то будут изменены ВСЕ записи в таблице.

4. Оператор DELETE предназначен для удаления одной или группы записей из таблицы.

Формат оператора:

DELETE

FROM таблица

[ WHERE <условие поиска> ]

Если фраза WHERE отсутствует, то будут удалены ВСЕ записи в таблице.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]