
- •Пользователя редко интересуют все потенциально возможные комбинации значений измерений. Для этого используются срезы, отображения страниц, вращение, нарезка на кубики, агрегация, детализация.
- •6. Языки описания баз данных
- •Операторы sql для управления соединениями. В эту группу входят операторы connect, set connection и disconnect. Оператор connect определяется следующими синтаксическими правилами:
- •Команда select – выборка, самая часто используемая команда, с помощью её идет выбор данных из таблицы. Запроса с применением select выглядит с.О.:
- •Структура команды select следующая:
- •Insert into users_base (user_name, city, birth_day) values (‘Александр’, ‘Ростов’, ’20.06.1991’);
- •Такой запрос выведет только те строки, которые будут соответствовать условию where.
- •Оператор exists может быть полезен для вовлечения внешних ключей (foreign keys). В следующем примере идет проверка, имеет ли значение атрибута 'fred the 45' какое-либо задание. Первый вариант:
- •Стратегиями могут быть:
- •Тактики по существу представляют собой задачи, которые необходимо решить, чтобы действовать в соответствии с выбранной стратегией, например:
- •15 Определение необходимой информации для различных видов деятельности
- •24 Методы использования case средств
- •А) без использования б) с использованием case
- •Создание план управления данными должно учитывать долгопериодные решения по:
- •Процесс управления качеством данных можно разделить на следующие этапы: определение качества исходных данных:
- •Вопрос 21.
- •Дальше пример из л.Р. 4.
- •Место субд в системе информационного обслуживания управленческой деятельности - сппр же!
- •5. Управление данными в отдельных проектах
- •Оптимизация структур данных
- •Оптимизация структур данных
- •Оптимизация структур данных
- •Пользователя редко интересуют все потенциально возможные комбинации значений измерений. Для этого используются срезы, отображения страниц, вращение, нарезка на кубики, агрегация, детализация.
- •78 Назовите перспективные технологии хранения данных
- •79. Кто отвечает за сохранность данных и как это делается?
- •80. Как в случае катастрофы можно восстановить работоспособную систему (аппаратное обеспечение, данные, операционную систему)?
- •81. Как часто следует сохранять данные? Важность регулярного резервного копирования
- •82. Когда происходит полное копирование?
- •83. Жизненный цикл бд
- •84. Документальные, фактографические, пространственные бд.
- •85. Объектно-ориентированные бд. Распределенные бд. Коммерческие бд.
- •86. Процессы обработки данных в бд. Ограничения целостности.
- •87. Технология оперативной обработки транзакций (oltp).
- •88. Информационные хранилища. (olap)
- •Принципы организации хранилища
- •89. Объекты, атрибуты, связи, первичный и вторичные ключи. Основные типы абстракции.
- •90. Нормализованные отношения. Первичные и вторичные ключи отношений. Моделирование связей в реляционной модели данных. Внешние ключи.
- •91 Язык sql. Назначения языка. Типы данных sql. Операторы создания базы данных.
- •Объекты это структуры бд, которым даны имена и которые сохраняются в памяти. Сюда относятся базовые таблицы, представления и индексы.
- •Select * from users_base where city in (‘Владивосток’, ‘Ростов’);
Объекты это структуры бд, которым даны имена и которые сохраняются в памяти. Сюда относятся базовые таблицы, представления и индексы.
Квадратные скобки ( [ ] ) указывают части, которые могут не использоваться, а многоточия (...) указывают, что всё предшествующее может повторяться любое число раз.
Операторы SQL для управления соединениями. В эту группу входят операторы CONNECT, SET CONNECTION и DISCONNECT.
Оператор CONNECT определяется следующими синтаксическими правилами:
CONNECT TO connection_target
connection_target ::= SQL_server_name
[ AS connection_name ]
[ USER connection_user_name ]
DEFAULT
Здесь SQL_server_name - это литерально заданная символьная строка, идентифицирующая сервер, к которому требуется подключиться. В необязательном разделе AS указываемое имя (connection_name) выступает в роли временного имени соединения, которое впоследствии может быть использовано в операторах SET CONNECTION и DISCONNECT. Если в операторе CONNECT раздел AS не содержится, то по умолчанию connection_name совпадает с SQL_server_name.
В необязательном разделе USER указываемое имя (connection_user_name) идентифицирующее пользователя, от имени которого устанавливается соединение. При отсутствии раздела USER в качестве connection_user_name по умолчанию принимается текущий authID. Допускается, что реализация может ограничить возможные значения connection_user_name (например, потребовать, чтобы это имя всегда совпадало с текущим authID).
Определение схемы:
Create Schema <DDD>
Authorization - <Name>
Определение таблиц включает:
присвоение имени;
определение типа данных (Integer - целое; Numeric - число; Decimal - десятичное; Real - действительное; Float - с плавающей запятой; Character; Character varying - символьное; Bit - двоичное; Date - дата);
определение полей с ограничительными условиями;
определение ограничительных условий на таблицу.
Создание таблицы:
Create TABLE Name_table1 (
Worker_ID Int (5) Primary key
Worker_name Character (12)
City Character (12)
birth_day Date
)
Create TABLE Name_table2 (……)
Команда SELECT – выборка, самая часто используемая команда, с помощью её идет выбор данных из таблицы. Запроса с применением SELECT выглядит с.о.:
SELECT Worker_ID, Worker_name, city, birth_day FROM Name_table1;
Такой запрос выведет из таблицы Name_table1 все значения столбцов указанных через запятую после команды SELECT. Также, можно выводить все столбцы одним символом - (*), т.е. запрос SELECT * FROM Name_table1; выведет все данные из таблицы.
Структура команды SELECT следующая:
SELECT {Имена столбцов, которые необходимо вывести в запросе, записываются через запятую} FROM {имя таблицы в базе данных} - это простейший вид запроса. Существуют дополнительные команды для удобства извлечения данных.
SELECT name_1 FROM Name_table1 WHERE name_2 = 'XXXX'
Операторы сравнения: =, >, <, <=, >=
Булевы операции: AND, OR, NOT
WERE name_3 BETWEEN 10 and 15
WERE name_4 LIKE (''AAA%')
N_date + interval '14' DAY
N_date + interval '7' * Num_weeks (дата = текущая дата плюс 7 умноженное на число недель)
Многотабличные запросы:
SELECT name_поля FROM Name_table1, Name_table2 WHERE Name_table1.Worker_ID = Name_table2.Worker_ID Name_Id=435
Результат: объединение полей двух таблиц при условии Name_Id = 435.
Встроенные функции: SUM, AVG, COUNT, MAX, МIN
SELECT max (Name_1), Min (Name_2)
From Name_table1
Where Name_3=15
Подзапросы:
SELECT Name_1 FROM Name_table1 WHERE Name_3 = or >
(SELECT max (Name_2)
From Name_table1)
Операции реляционной алгебры:
UNION – объединение таблиц,
INTERSECT - пересечение,
EXCEPT - разница.
Применяются для двух таблиц, которые должны быть совместимы (одинаковые число столбцов и типы данных в них).
(SELECT * FROM (TABLE Name_table1 UNION TABLE Name_table2)
Операции изменения данных:
Значения могут быть помещены и удалены из полей, тремя командами языка манипулирования данными:
INSERT – вставка;
UPDATE - обновление, модификация;
DELETE – удаление.
INSERT INTO users_base (user_name, city, birth_day) VALUES (‘Александр’, ‘Ростов’, ’20.06.1991’);
Команду INSERT можно использовать для вставки данных из другой таблицы:
INSERT INTO Name_Table_2
SELECT Name_1, Name_3, Name_4
From Name_Table_1
WERE Name_5=3
UPDATE users_base SET user_name = ‘Алексей’;
Кавычки в значении редактируемого атрибута ставятся в том случае если значение имеет string формат, если это числовое значение и столбец не привязан к типу данных varchar и любых других строковых типов, то кавычки не имеют смысла.
DELETE FROM users_base WHERE user_name = ‘Василий’;
Команда DELETE удаляет строку целиком, определяет строку по ключевому слову WHERE. Этот запрос удалит все строки, в которых значение столбца user_name=Василий.
Совместное использование SQL c традиционными языками программирования (Си, Паскаль, др.)
OPEN File_1
EXEC SQL
DECLARE File_1
FOR
SELECT *
FROM Table_1
WERE Name_2= nn
END-EXEC
CLOSE File_1
Выполнение запроса можно разделить на три фазы. Первая фаза это компиляция или разбор (parse) запроса, вторая - подстановка значений переменных (bind), и третья выборка результатов (fetch). Во время компиляции SQL запрос преобразуется во внутреннее представление в те коды, которые воспринимаются СУБД. СУБД выполняет следующие действия:
просматривает словарь данных и выполняет проверку прав доступа. Для этого СУБД генерирует несколько SQL запросов, которые называются рекурсивными запросами (recursive queries), с помощью который проверяет, имеет ли данный пользователь право доступа к указанному столбцу и т.д.
оптимизирует запрос. Здесь выполняется та оптимизация, которая вызвана обращением к представлениям (view) и выполнением подзапросов.
Поскольку вышеперечисленные операции занимают определенное время и требуют ресурсов процессора, то заставлять СУБД выполнять их нужно как можно реже.
Вторая фаза, фаза подстановки (bind), выполняется после компиляции запроса. Во время этой фазы выполняется подстановка значения переменных в запрос. Например, при обработке запроса:
SELECT 'x' FROM person WHERE name = :1
значение некоей переменной 1 будет подставлено в запрос по адресу, зарезервированному указателем :1.
Определения представления данных - окно, через которое видна часть БД (из одной или нескольких таблиц)
CREATE VIEW Table_V
AS SELECT Name_2, Name_3, Name_4, Name_5
FROM Table_1
Критерии, функции, условия
WHERE- предложение команды SELECT и других команд, которое позволяет устанавливать предикаты, условие которых может быть или верным или неверным для любой строки таблицы. Команда извлекает только те строки из таблицы, для которых такое утверждение верно. Пример:
SELECT id, city, birth_day FROM users_base WHERE user_name = ‘Алексей’;
такой запрос выведет только те строки, которые будут соответствовать условию WHERE.
ORDER BY - условие для сортировки выбранных строк. Имеет два критерия ASC и DESC. ASC (сортировка от А до Я или от 0 до 9). DESC (противоположно от ASC). Пример:
SELECT id, city, birth_day FROM users_base ORDER BY user_name ASC;
Это условие можно использовать совместно с условием WHERE. Пример:
SELECT id, city, birth_day FROM users_base WHERE user_name = ‘Алексей’ ORDER BY id ASC;
DISTINCT - аргумент, который устраняет двойные значения из предложения SELECT. То есть если имеются повторяющиеся значения в столбце, допустим, user_name, то DISTINCT выведет только одно, например, если в БД есть два человека по имени ‘Алексей’, то запрос с использованием функции DISTINCT выведет только одно значение, которое встретит первым. Пример:
SELECT DISTINCT user_name FROM users_base;
AND - берет два Буля (в форме A AND B) как аргументы и оценивает их по отношению к истине, верны ли они оба. Пример:
SELECT * FROM users_base WHERE city = ‘Ростов’ AND user_name = ‘Александр’;
OR - берет два Буля (в форме A OR B) как аргументы и оценивает на правильность, верен ли один из них. Пример:
SELECT * FROM users_base WHERE city = ‘Ростов’ OR user_name = ‘Александр’;
NOT - берет одиночный Булев (в форме NOT A) как аргументы и заменяет его значение с неверного на верное или верное на неверное. Пример:
SELECT * FROM users_base WHERE city = ‘Ростов’ OR NOT user_name = ‘Александр’;
IN - определяет набор значений, в которое данное значение может или не может быть включено. Пример: