Физическая и логическая модель базы данных (отличия). 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Физическая и логическая модель базы данных (отличия).



Физическая и логическая модель базы данных (отличия).

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

11)Команды языка DDL (перечислить и назвать назначение команд).

Команды языка DDL (перечислить и назвать назначение команд).
Язык обработки данных DML позволяет добавлять (insert), изменять (update), удалять (delete) и выбирать (select) информацию в базе данных, т.е. предназначен для работы с информационным содержанием базы данных.

12) Команды языка DML (перечислить и назвать назначение команд).

Команды языка DML (перечислить и назвать назначение команд).
Язык определения данных DDL обеспечивает:
∙ Создание объектов базы данных (CREATE)
∙ Удаление объектов базы данных (DROP)
∙ Изменение свойств объектов базы данных (ALTER)

13) Команды языка DCL (перечислить и назвать назначение команд).

Команды языка DCL (перечислить и назвать назначение команд).
Grant-открытие доступа к схемам пользователя.
Revoke-закрытие доступа.

14) Оператор SELECT (перечислить и указать назначение каждого раздела).

Обязательными среди всех указанных параметров оператора SELECT являются параметры SELECT и FROM. Результатом выполнения оператора SELECT является набор данных (временная таблица), который затем либо передается пользователю, запросившему данные, либо используется как источник данных для другого оператора SELECT в качестве подзапроса. Представляет исторический интерес тот факт, что именно возможность включения одного предложения SELECT внутрь другого послужила мотивировкой использования прилагательного «структурированный» в названии языка SQL.

Синтаксис оператора имеет следующий вид:
SELECT [ ALL! DISTINCT ] <список полей>! *
[ FROM <список таблиц>
[ WHERE <условие выборки>
[ GROUP BY <список полей для группы>
[ HAVING <условие выборки для группы>
[ ORDER BY < список полей, по которым упорядочить вывод>
Используются:
- реляционные операторы =, <, >, <=, > =, < >;
- булевые операторы AND, OR, NOT;
- IN (‘a1’, ‘a2’, …) – множество объектов;
- BETWEEN ‘a1’ AND ‘a2’ – задает границы параметров;
- LIKE – только для символьных полей задает шаблон (символы % и _)
LIKE ‘G%’ LIKE ‘L% n % d_n’
- IS NULL, IS NOT NULL
- Агрегатные функции: COUNT, SUM, AVG, MAX, MIN
- строки и выражения:
SELECT snum, sname, city, ‘%’, comm. * 100 FROM salespeople;

Однострочные вложенные подзапросы

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

-- получить имя менеджера, имеющего максимальное

-- значение размера комиссионных

SELECT Name FROM Managers WHERE Procent =

(SELECT Max(Procent) FROM Managers);

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

-- получить имя менеджера, осуществившего

-- максимальное количество сделок продажи

SELECT Name FROM Managers

WHERE Man_id=

(SELECT Man_id FROM Outgoing

WHERE ROWNUM=1

GROUP BY Man_id

HAVING COUNT(Out_id)=

(SELECT MAX(COUNT(Out_id)) FROM Outgoing

GROUP BY Man_id));

В данном запросе в параметре WHERE указано условие ROWNUM=1, благодаря которому соблюдается условие выбора единственного значения во вложенном подзапросе, иначе вложенный подзапрос может вернуть более одной строки (если несколько менеджеров осуществили максимальное количество сделок), тогда результат выполнения подзапроса нельзя будет использовать в операциях сравнения. О способах применения столбца ROWNUM для частичного вывода запрошенных данных смотри далее раздел «Частичный вывод запрошенных данных».

Если необходимо вывести имена всех менеджеров, осуществивших одинаковое максимальное количество сделок продажи, можно выполнить следующий запрос:

GROUP BY m.Name

HAVING COUNT(o.Out_id)=

(SELECT MAX(COUNT(Out_id)) FROM Outgoing

GROUP BY Man_id);

SELECT Name FROM Products p

WHERE EXISTS

(SELECT Prod_id FROM Outgoing

WHERE Prod_id=p.Prod_id AND Man_id = 1);

UNION

INTERSECT

SELECT Name FROM Managers

MINUS

Оператор SELECT

[WITH CHECK OPTION]

Обновляемые представления Если к представлению можно применить операторы обновления (INSERT, UPDATE или DELETE), то представление является обновляемым (updateble), иначе оно является читаемым (read-only).

Ниже приведены критерии того, является ли представление обновляемым в SQL:

· оно базируется на одной таблице;

· оно должно включать первичный ключ таблицы;

· оно не должно включать полей, полученных в результате применения функций агрегирования;

· оно не может содержать спецификации DISTINCT;

· оно не должно использовать GROUP BY или HAVING;

· оно не должно использовать подзапросы;

· оно может быть определено на другом представлении, но это представление должно быть обновляемым;

· оно не может содержать константы, строки или выражения в списке выбираемых выходных полей;

· для INSERT оно должно включать поля из таблицы, которые имеют ограничения NOT NULL.

Например, приведенное представление Contragents_Lite является обновляемым, поскольку оно удовлетворяет всем перечисленным критериям, а представление WareHouse – нет.

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

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

-- создание обновляемого представления с защитой от

-- изменений скрытого столбца Address

CREATE OR REPLACE VIEW Contragents_Lite AS

SELECT Contr_id, Name, Phone, Comments FROM Contragents

WITH CHECK OPTION;

Физическая и логическая модель базы данных (отличия).

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

11)Команды языка DDL (перечислить и назвать назначение команд).

Команды языка DDL (перечислить и назвать назначение команд).
Язык обработки данных DML позволяет добавлять (insert), изменять (update), удалять (delete) и выбирать (select) информацию в базе данных, т.е. предназначен для работы с информационным содержанием базы данных.

12) Команды языка DML (перечислить и назвать назначение команд).

Команды языка DML (перечислить и назвать назначение команд).
Язык определения данных DDL обеспечивает:
∙ Создание объектов базы данных (CREATE)
∙ Удаление объектов базы данных (DROP)
∙ Изменение свойств объектов базы данных (ALTER)

13) Команды языка DCL (перечислить и назвать назначение команд).

Команды языка DCL (перечислить и назвать назначение команд).
Grant-открытие доступа к схемам пользователя.
Revoke-закрытие доступа.

14) Оператор SELECT (перечислить и указать назначение каждого раздела).

Обязательными среди всех указанных параметров оператора SELECT являются параметры SELECT и FROM. Результатом выполнения оператора SELECT является набор данных (временная таблица), который затем либо передается пользователю, запросившему данные, либо используется как источник данных для другого оператора SELECT в качестве подзапроса. Представляет исторический интерес тот факт, что именно возможность включения одного предложения SELECT внутрь другого послужила мотивировкой использования прилагательного «структурированный» в названии языка SQL.

Синтаксис оператора имеет следующий вид:
SELECT [ ALL! DISTINCT ] <список полей>! *
[ FROM <список таблиц>
[ WHERE <условие выборки>
[ GROUP BY <список полей для группы>
[ HAVING <условие выборки для группы>
[ ORDER BY < список полей, по которым упорядочить вывод>
Используются:
- реляционные операторы =, <, >, <=, > =, < >;
- булевые операторы AND, OR, NOT;
- IN (‘a1’, ‘a2’, …) – множество объектов;
- BETWEEN ‘a1’ AND ‘a2’ – задает границы параметров;
- LIKE – только для символьных полей задает шаблон (символы % и _)
LIKE ‘G%’ LIKE ‘L% n % d_n’
- IS NULL, IS NOT NULL
- Агрегатные функции: COUNT, SUM, AVG, MAX, MIN
- строки и выражения:
SELECT snum, sname, city, ‘%’, comm. * 100 FROM salespeople;



Поделиться:


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

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