Вопросы_коллоквиума1_по_курсу_Базы_данных (4)
.docxКоллоквиум 1
Системы управления базами данных
-
Что означает термин реляционная база данных?
Реляционная база данных - база данных, построенная на основе реляционной модели. В реляционной базе каждый объект задается записью (строкой) в таблице. Реляционная база создается и затем управляется с помощью реляционной системы управления базами данных
-
Что означает термин система управления базами (СУБД) данных? Назовите три наиболее распространенных реляционных СУБД.
СУБД — Система Управления Базами Данных. Программа, либо комплекс программ, предназначенных для полнофункциональной работы с данными. Как правило, включает в себя инструменты для создания и изменения структуры хранения наборов данных, а также средства доступа к хранимым данным, с возможностью их чтения, добавления, изменения и удаления. При этом, у большинства СУБД имеется собственный встроенный язык (возможно не один) для работы с данными. Наиболее популярные: Иерархические, сетевые и реляционные.
-
Что такое OLTP?
OLTP (Online Transaction Processing) — обработка транзакций в реальном времени. Способ организации БД, при котором система работает с небольшими по размерам транзакциями, но идущими большим потоком, и при этом клиенту требуется от системы максимально быстрое время ответа.
-
Что такое OLAP?
OLAP - технология обработки информации, включающая составление и динамическую публикацию отчётов и документов. Используется аналитиками для быстрой обработки сложных запросов к базе данных.
-
Перечислите все известные вам объекты базы данных.
Таблицы, представления, процедуры.
-
Что такое нормализация данных?
Процесс приведения базы данных к виду, в котором она будет соответствовать правилам нормальных форм, называется нормализацией базы данных. Нормализация базы данных сводит к минимуму количество избыточной информации. Ее целью является сохранять данные только один раз, но в нужном месте.
1.без повтор строк
2. 1+ключ
3. 2+многозначность
-
Поясните понятия тип, элемент, строка, столбец, таблица данных, первичный ключ, вторичный ключ, значение по умолчанию.
Строка – кортеж
Столбец – домен
Таблица – отношение
Первичный ключ – ограничение целостности, которое запрещает ввод в столбец нулевых и повторяющихся значений.
Вторичный ключ - это одно или несколько полей (столбцов) в таблице, содержащих ссылку на поле или поля первичного ключа в другой таблице.
Значение по умолчанию – ограничение целостности позволяющее задать значение по умолчанию для столбца.
-
Поясните назначение типов данных: bit, int, decimal, numeric, float, real, char, varchar, nchar, nvarchar, date, time, datetime, datetime2, datetimeoffset, uniqueidentier, xml.
bit - Целочисленный тип данных, который может принимать значения 1, 0 или NULL.
int - 4 байта
decimal, numeric - Тип числовых данных с фиксированными точностью и масштабом.
float, real - Тип приблизительных числовых данных, используемые для числовых данных с плавающей запятой. Синониму real (4 байта) соответствует в ISO тип float(24). float зависит от значения n
char, varchar - Являются символьными типами данных фиксированной или переменной длины не в Юникоде.
nchar, nvarchar - Символьные типы данных, имеющие постоянную длину, nchar, или переменную длину, nvarchar, содержащие данные в Юникоде и использующие набор символов UCS-2.
date - Определяет дату в SQL Server. ГГГГ-ММ-ДД
time - Определяет время дня. Время без учета часового пояса в 24-часовом формате. чч:мм:сс[. ннннннн]
datetime - Определяет дату, включающую время дня с долями секунды в 24-часовом формате.
datetime2 - Определяет дату, включающую время суток в 24-часовом формате. Тип данных datetime2 может рассматриваться как расширение существующего типа datetime, имеющее более широкий диапазон дат, большую точность в долях секунды по умолчанию и дополнительную точность, определяемую пользователем. ГГГГ-ММ-ДД чч:мм:сс[.доли секунды]
datetimeoffset - Определяет дату, объединенную со временем дня, с учетом часового пояса в 24-часовом формате. ГГГГ-ММ-ДД чч:мм:сс[. ннннннн] [{+|-}чч:мм]
uniqueidentier - 16-байтовый идентификатор GUID.
xml - Тип данных, в котором хранятся XML-данные. Можно хранить экземпляры xml в столбце либо в переменной типа xml.
xml ( [ CONTENT | DOCUMENT ] xml_schema_collection )
-
Что подразумевается под понятиями целостность базы данных, ограничение целостности, констрейнт? Перечислите известные вам типы контсрейентов. Что такое ссылочная целостность?
Це́лостность ба́зы да́нных (database integrity) — соответствие имеющейся в базе данных информации её внутренней логике, структуре и всем явно заданным правилам
Ограничением целостности - каждое правило, налагающее некоторое ограничение на возможное состояние базы данных.
Констрейнт – ключевое слово, являющееся формальной (именованной) записью ограничения целостности. Выводится при нарушении ссылочной целостности.
констрейн запись ограничений, PRIMARY KEY CONSTRAINT, FOREIGN KEY CONSTRAINT, UNIQUE CONSTRAINT, DEFAULT CONSTRAINT, CHECK CONSTRAINT,
Ссы́лочная це́лостность- Ограничение базы данных гарантирующее что ссылки между таблицами действительно являются правомерными и не поврежденными
-
Что подразумевается под понятием журнализация базы данных? Что значит упреждающее журналирование.
Журналирование ведение журнала, а упреждающее это восстановление базы по журналу сначала записывается действие, а потом выполняется.
-
Поясните понятия декларативный язык программирования и процедурный язык программирования.
Декларативный язык программирования - язык программирования высокого уровня, построенный: - на описании данных; и - на описании искомого результата (отсутсвие циклов) Процедурный язык программирования – расширяемый язык (trunsuct SQL, PL/SQL)
-
Для чего необходим язык SQL? Перечислите основные версии SQL. Какие организации стандартизируют SQL? Поясните понятие диалект SQL.
для создания, модификации и управления данными в реляционных базах данных
SQL 92, SQL 99, SQL 2003, SQL 2006, SQL 2009
Диалект - разновидность данного языка(команды, характерные только для данного расширения языка).
-
Перечислить группы операторов языка SQL.
DDL,DML,DCL,TCL.
-
Перечислите основные операторы каждой группы операторов SQL.
Операторы DDL (Data Definition Language) CREATE TABLE, ALTER TABLE, DROP TABLE DML (Data Manipulation Language) - операторы манипулирования данными SELECT, INSERT, DELETE, UPDATE DCL GRANT - предоставить привилегии пользователю или приложению на манипулирование объектами REVOKE - отменить привилегии пользователя или приложения TCL – COMMIT, ROLLBACK, SAVEPOINT
-
Перечислите все секции оператора SELECT. Что такое подзапрос. Поясните назначение ключевых слов ROLLUP и CUBE.
From(select столбец1, столбец2 from имя_таблицы where условие),
where,
group by (all, cube, rollup) ( select столбец1, столбец2 from имя_таблицы group by cube ), having(условие в group by),
order by (asc, desc),
top(select top(5) столбец1, столбец2 from имя_таблицы),
compute,
distinct(убирает повторяющиеся, т.е. выбирает по одному экземпляру)
ROLLUP суммирует данные и подводит итог, CUBE – что и ROLLUP + суммирует по отдельным значениям, указанным в group by
-
Поясните применение оператора SELECT INTO.
Данный запрос может быть использован для создания резервной копии таблицы. Запрос select into выбирает данные из одной таблицы и вставляет в другую.
-
Поясните назначение команд UNION (ALL), INTERSECT, EXEPT.
UNION - Указывает на то, что несколько результирующих наборов следует объединить и возвратить в виде единого результирующего набора.
ALL - Объединяет в результирующий набор все строки. Это относится и к дублирующимся строкам. Если обратное не указано, дубликаты строк удаляются.
EXCEPT - Возвращает все различные значения, возвращенные запросом, указанным слева от оператора EXCEPT, но отсутствующие в результатах выполнения правого запроса.
INTERSECT - Возвращает все различные значения, входящие в результаты выполнения запросов, указанных как слева, так и справа от оператора INTERSECT.
-
количество и порядок столбцов должны быть одинаковыми во всех запросах;
-
типы данных должны быть совместимыми.
-
Способы соединения таблиц, поясните особенности.
Внутренние соединения (естественное – производится если у 2-х таблиц есть одинаковые столбцы если не по имени, то по смыслу, inner join – работает как естественное, но быстрее, многотабличный запрос – запрос к нескольким таблицам, который выводит результат в виде объединения таблиц)
Внешние (outer join: left – берет левую таблицу и присоединяет правую, где нечего присоединять заполняет нулями справа, right - берет правую таблицу и присоединяет левую, где нечего присоединять заполняет нулями слева, full – соединяет все, что может, а что не может заполняет нулями справа и слева, cross join – ортогональное соединение, работает как декартово произведен0ие, но быстрее)
-
Поясните формат оператора UPDATE.
Update tablename set имя_стобца = ‘BB’
-
Поясните применение конструкций IN, ALL, ANY, BETWEEN, NОТ, IS NULL, LIKE, EXISTS в секции WHERE.
-(not) in – выбор (не) содержащегося в конкретном select-запросе
- (not) exists – выбор значений (не) содержащихся в конкретном столбце
- all – если есть меньше/больше заданного условия
- any – если есть хотя бы одно значение больше/меньше заданного условия
- between – вывод значений в заданном диапазоне
- Like – поиск подстроки в строке
- is null – выбор строк имеющих нулевое значение
-
Поясните формат оператора INSERT.
Insert into tablename (1,2,3) values (‘A’,’B’, ‘C’)
-
Что такое хранимая процедура? функция? скалярная функция? табличная функция? Что можно делать в процедуре такого, что нельзя в функции?
Хранимая процедура – обьект БД, поименованный блок операторов, который хранится в БД в откомпилированном виде. Системные и пользовательские процедуры. Процедура возвращает только числовое значение (код возврата), характеризующее как сработала процедура.
Функция – обьект БД возвращающий некоторое значение. Скалярная возвращает число, а табличная – таблицу
-
Что такое курсор? Объясните общую схему работы с курсором (DECLARE, OPEN, FETCH, CLOSE, DEALLOCATE).
Курсор – механизм, позволяющий обрабатывать отдельные строки, полученные в результате селект-запроса, т.е построчно обрабатывать селект-запрос.
создать курсор, открыть курсор, выбрать данные, закрыть курсор, уничтожить курсор
-
Поясните основные типы курсоров: STATIC/DYNAMIC, LOCAL/GLOBAL, READ_ONLY, SCROLL,
Статические: считывает все данные сразу, данные выбраны один раз и произошедшие изменения не видны.
Динамические: изменение данных отображается в динамике, данные заносятся в эту область не сразу, а по мере необходимости, более достоверные сведения о состоянии БД.
Локальный – удаляется сразу при отключении, а глобальный существует пока не отключатся все использующие. По умолчанию курсор глобален, если так указано в параметрах БД.
Read only – курсоры не позволяют изменять БД.
Scroll – режим работы курсора, который расширяет возможности оператора fetch. В стандартной работе fetch движется сверху вниз, поочередно выбирая строки. Scroll позволяет передвигатся в разных направлениях (last(сдвиг на последнюю строку результата запроса), first (на первую), absolute (к конкретному номеру), relative (относительно данной строки на некоторое количество), next (на следующую), prior (на предыдущую))
-
Поясните понятия входной параметр и возвращаемый (выходной параметр) процедуры.
Входные параметры – необязательная опция, то же, что параметры в ф-ции, output параметры – то же, что и резултат ф-ции. Может быть набором данных (таблицей) или значеним.
Входные параметры хранимых процедур представляют собой указатели мест ввода данных пользователем.
Основное отличие выходного параметра от входного в том, что с помощью входного параметра вы задаете хранимой процедуре значение для работы, с помощью выходного - хранимая процедура возвращает значение. Выходной параметр определяется с помощью ключевого слова OUTPUT.
-
Что такое представление? Поясните назначение опции WITH CHECK OPTION.
Представление – записанный и поименованный select-запрос. Выполняется каждый раз заново
Представление - это виртуальная таблица. WITH CHECK OPTION – ограничение целостности для представлений, обязательно проверяет все наложенные условия при манипуляции с процедурой.
Если в операторе CREATE VIEW будет указана фраза WITH CHECK OPTION, то СУБД станет осуществлять контроль за тем, чтобы в исходные таблицы базы данных не была введена ни одна из строк, не удовлетворяющих предложению WHERE в определяющем запросе. Этот механизм гарантирует целостность данных впредставлении.
-
Что такое триггер? Какие типы триггеров вы знаете.
Триггеры являются одной из разновидностей хранимых процедур. Их исполнение происходит при выполнении для таблицы какого-либо оператора языка манипулирования данными (DML). Триггеры используются для проверки целостности данных, а также для отката транзакций.
Типы триггеров:
DML - INSERT, UPDATE или DELETE
DDL - CREATE, ALTER, DROP, LOGON AFTER. Триггер выполняется после успешного выполнения вызвавших его команд INSTEAD OF. Триггер вызывается вместо выполнения команд.
-
Что такое транзакция? принцип ACID?
Транзакция – одна или несколько команд SQL, которые либо успешно выполняются как единое целое, либо отменяются как единое целое.
ACID (Джим Грей):
Atomocity (атомарность) – транзакция либо завершается полностью и успешно, либо не выполняется (аварийно завершается)
Consistency (согласованность) – транзакция успешно или аварийно завершенная всегда оставляет бд в согласованном состоянии
Isolation (изолированность) – до фиксации изменения видит только сеанс, выполнивший эти изменения, есть различные уровни изоляции.
Durability (устойчивость) – после фиксации транзакцию нельзя отменить.
-
Что такое блокировка транзакций? Поясните термин Deadlock.
Блокировка заключается в следующем. Когда некоторая транзакция получает доступ к элементу БД, механизм блокировки позволяет отклонить попытки получения доступа к этим же данным со стороны других транзакций.
Блокировки бывают на чтение и на запись.
Взаи́мная блокиро́вка (deadlock) — ситуация в многозадачной среде или СУБД, при которой несколько процессов находятся в состоянии бесконечного ожидания ресурсов, занятых самими этими процессами.
-
Перечислите уровни изолированности транзакций? Поясните разницу.
READ UNCOMMITED (неподтвержденное (грязное) чтение). Читатель может прочитать незафиксированные строки. Читатель не может изменить незафиксированные строки (ожидает);
READ COMMITED (подтвержденное чтение). Читатель не может прочитать неподтвержденные данные (ожидает), писатель может изменить и удалить уже прочитанные читателем данные;
REPETABLE READ (повторяемое чтение). В начале транзакции и в конце транзакции результат одного и того же запроса читателя будет одинаков; писатели могут вводить данные, что приводит к появлению фантомных записей;
SERIALIZABLE (сериализуемость). Высший уровень изоляции. Данные не могут не прочитаны ни изменены до окончания транзакции.
-
Поясните понятия фиксация транзакции и откат транзакции.
commit-успех, rollback-откат, savepoint-сохранение
Фиксация транзакции(COMMIT TRANSACTION) - отмечает успешное завершение явной или неявной транзакции.
Откат транзакции(ROLLBACK TRANSACTION) - Откатывает явные или неявные транзакции до начала или до точки сохранения транзакции.
-
Поясните понятие вложенная транзакция.
Явные транзакции могут быть вложенными. Обычно это используется для поддержки транзакций в хранимых процедурах, которые могут быть вызваны, или из процесса, который уже находится в транзакции, или из процесса, у которого нет активной транзакции.
-
Поясните понятие режим автофиксации.
Режим в котором каждая команда является транзакцией
-
Поясните понятие автономная транзакция.
позволяют создавать новые подтранзакции (subtransaction), которые могут сохранять или отменять изменения вне зависимости от родительской транзакции
.
-
Что такое контрольная точка транзакции.
Установка контрольных точек с помощью команды SAVEPOINT позволяет разбить весь объем работы, выполняемой транзакцией, на отдельные сегменты. Откат можно производить только до конкретной точки сохранения, оставляя предшествующие изменения в силе. Точки сохранения очень полезны в ситуациях, когда необходимо восстановить часть незавершенной транзакции.
-
Для чего необходим индекс? Какие типы индексов бывают?
Индекс – обьект БД, предназначенный для ускорения поиска строк в таблице по индексируемым столбцам.
бывают кластерные, некластерные (просто индексы).
Некластерный индекс: физически находится отдельно от таблицы, список значений индексируемого столбца (столбцов в определенном порядке) с указателем на строку в таблице; список, как правило, бинарное дерево поиска.
Некластерный индекс: может быть несколько для одной таблицы.
Кластерный индекс: физически совпадает с таблицей, таблица физически перестраивается в порядке индекса.
Кластерный индекс: может только один для одной таблицы.
-
Поясните понятия план запроса и стоимость запроса SQL.
Планы запросов: последовательность элементарных действий для исполнения запроса, планы вычисляются подсистемой MS SQL Server Query Optimizer (QO).
Стоимость запроса: числовая величина, характеризующая степень использования ресурсов
-
Поясните понятие секционирование таблиц?
Метод хранения обьектов БД (таблиц и индексов), при которых данные разбиваются на блоки (секции) и распределены между различными файловыми группами
-
Что такое распределенная база данных?
совокупность логически взаимосвязанных баз данных, распределённых в компьютерной сети(наз. Транзакция, распростроняющаяся на две и более бд)
-
Что такое репликация таблиц?
механизм синхронизации (добирает не достающие элемент) таблиц
-
Поясните понятие моментальный снимок базы данных (snapshot).
Это объект БД, который представляет собой моментальный снимок базы данных, т.е снимок состояния БД на данный момент.
-
Поясните понятие аудит базы данных?
Аудит: мероприятия (операции) направленные на отслеживание изменений базы данных (кто, когда, как).
-
Поясните понятие архитектура клиент/сервер.
Типичная архитектура клиент/сервер состоит из программы-клиента конечного пользователя, которая имеет доступ на удаленном компьютере-сервере. Сервер обеспечивает сервис, а клиент запрашивает его у сервера.
-
Поясните понятие сервер баз данных.
Сервер БД обслуживает базу данных и отвечает за целостность и сохранность данных, а также обеспечивает операции ввода-вывода при доступе клиента к информации.
-
Перечислите стандартные программные интерфейсы с базами данных?
ODBC, OLEDB, JDBC, ADO, ADO.NET, native-технологии
-
Что такое аутентификация? авторизация?
Аутентификация – подтверждение подлинности. (Проверка: является ли тем за кого себя выдает).
Авторизация - процесс предоставления определенному лицу прав на выполнение некоторых действий
-
Что такое схема базы данных.
Схема включает в себя описание содержания, структуры и ограничений целостности, используемых для создания базы данных.
-
Что такое фиксированная роль сервера? Как применяется? Перечислите несколько фиксированных ролей.
Фиксированные серверные роли распространябтся на весь сервер. Каждый член фикс роли может добавлять другие имена входа к той же роли.
Dbcreator(создание, изменение и восстановление баз)
Securityadmin(управление именами входа и их свойствами)
Sysadmin(все действия на сервере)
-
Что такое фиксированная роль базы данных? Как применяется? Перечислите несколько фиксированных ролей.
Для доступа к Sql server пользователь должен быть членом оной из предопределенных ролей бд или членом предопределенной роли сервера sysadmin. Дает администраторам возможность более точного управления доступа к sql server.
SqlAgentUserRole.
SqlAgentReaderRole.
SqlAgentOperatorRole.
-
Что такое пользовательская роль базы данных? Как применяется? В чем отличие от фиксированной?
Пользовательская роль (нестандартная роль) сервера дающая некоторые права и привилегии.
-
Перечислите предопределенных пользователей базы данных?
Db_accesadmin, db)datawritter, db_owner, db_securityadmin.
-
В чем разница между полным и разностным резервным копированием базы данных?
ПРКБД: в результате полная копия базы данных; из полной копии восстанавливаются все файлы, данные, метаданные; данные в непротиворечивом состоянии.
РРКБД: разностное резервное копирование – копирование только изменений прошедших с момента последней копии; чаще всего РРКБД сочетается с ПРКБД
-
Что такое XML? Для чего он применяется?
XML: Extensible Markup Language – расширяемый язык разметки.
XML — предназначен для хранения структурированных данных , для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML).
-
Что такое XML-Schema? Для чего он применяется?
Язык описания структуры xml-докуменита.Была задумана для определения правил, которым должен подчинятся документ.
-
Поясните назначение оператора CREATE XML SCHEMA COLLECTION.
Импортирует компоненты схемы в базу данных.
-
Поясните понятие утилита.
компьютерная программа, расширяющая стандартные возможности оборудования и операционных систем, выполняющая узкий круг специфических задач