Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Вопросы_коллоквиума1_по_курсу_Базы_данных (4)

.docx
Скачиваний:
76
Добавлен:
26.03.2015
Размер:
42.19 Кб
Скачать

Коллоквиум 1

Системы управления базами данных

  1. Что означает термин реляционная база данных?

Реляционная база данных - база данных, построенная на основе реляционной модели. В реляционной базе каждый объект задается записью (строкой) в таблице. Реляционная база создается и затем управляется с помощью реляционной системы управления базами данных

  1. Что означает термин система управления базами (СУБД) данных? Назовите три наиболее распространенных реляционных СУБД.

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

  1. Что такое OLTP?

OLTP (Online Transaction Processing) — обработка транзакций в реальном времени. Способ организации БД, при котором система работает с небольшими по размерам транзакциями, но идущими большим потоком, и при этом клиенту требуется от системы максимально быстрое время ответа.

  1. Что такое OLAP?

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

  1. Перечислите все известные вам объекты базы данных.

Таблицы, представления, процедуры.

  1. Что такое нормализация данных?

Процесс приведения базы данных к виду, в котором она будет соответствовать правилам нормальных форм, называется нормализацией базы данных. Нормализация базы данных сводит к минимуму количество избыточной информации. Ее целью является сохранять данные только один раз, но в нужном месте.

1.без повтор строк

2. 1+ключ

3. 2+многозначность

  1. Поясните понятия тип, элемент, строка, столбец, таблица данных, первичный ключ, вторичный ключ, значение по умолчанию.

Строка – кортеж

Столбец – домен

Таблица – отношение

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

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

Значение по умолчанию – ограничение целостности позволяющее задать значение по умолчанию для столбца.

  1. Поясните назначение типов данных: 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 )

  1. Что подразумевается под понятиями целостность базы данных, ограничение целостности, констрейнт? Перечислите известные вам типы контсрейентов. Что такое ссылочная целостность?

Це́лостность ба́зы да́нных (database integrity) — соответствие имеющейся в базе данных информации её внутренней логике, структуре и всем явно заданным правилам

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

Констрейнт – ключевое слово, являющееся формальной (именованной) записью ограничения целостности. Выводится при нарушении ссылочной целостности.

констрейн запись ограничений, PRIMARY KEY CONSTRAINT, FOREIGN KEY CONSTRAINT, UNIQUE CONSTRAINT, DEFAULT CONSTRAINT, CHECK CONSTRAINT,

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

  1. Что подразумевается под понятием журнализация базы данных? Что значит упреждающее журналирование.

Журналирование ведение журнала, а упреждающее это восстановление базы по журналу сначала записывается действие, а потом выполняется.

  1. Поясните понятия декларативный язык программирования и процедурный язык программирования.

Декларативный язык программирования - язык программирования высокого уровня, построенный: - на описании данных; и - на описании искомого результата (отсутсвие циклов) Процедурный язык программирования – расширяемый язык (trunsuct SQL, PL/SQL)

  1. Для чего необходим язык SQL? Перечислите основные версии SQL. Какие организации стандартизируют SQL? Поясните понятие диалект SQL.

для создания, модификации и управления данными в реляционных базах данных

SQL 92, SQL 99, SQL 2003, SQL 2006, SQL 2009

Диалект - разновидность данного языка(команды, характерные только для данного расширения языка).

  1. Перечислить группы операторов языка SQL.

DDL,DML,DCL,TCL.

  1. Перечислите основные операторы каждой группы операторов SQL.

Операторы DDL (Data Definition Language) CREATE TABLE, ALTER TABLE, DROP TABLE DML (Data Manipulation Language) - операторы манипулирования данными SELECT, INSERT, DELETE, UPDATE DCL GRANT - предоставить привилегии пользователю или приложению на манипулирование объектами REVOKE - отменить привилегии пользователя или приложения TCLCOMMIT, ROLLBACK, SAVEPOINT

  1. Перечислите все секции оператора 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

  1. Поясните применение оператора SELECT INTO.

Данный запрос может быть использован для создания резервной копии таблицы. Запрос select into выбирает данные из одной таблицы и вставляет в другую.

  1. Поясните назначение команд UNION (ALL), INTERSECT, EXEPT.

UNION - Указывает на то, что несколько результирующих наборов следует объединить и возвратить в виде единого результирующего набора.

ALL - Объединяет в результирующий набор все строки. Это относится и к дублирующимся строкам. Если обратное не указано, дубликаты строк удаляются.

EXCEPT - Возвращает все различные значения, возвращенные запросом, указанным слева от оператора EXCEPT, но отсутствующие в результатах выполнения правого запроса.

INTERSECT - Возвращает все различные значения, входящие в результаты выполнения запросов, указанных как слева, так и справа от оператора INTERSECT.

  • количество и порядок столбцов должны быть одинаковыми во всех запросах;

  • типы данных должны быть совместимыми.

  1. Способы соединения таблиц, поясните особенности.

Внутренние соединения (естественное – производится если у 2-х таблиц есть одинаковые столбцы если не по имени, то по смыслу, inner join – работает как естественное, но быстрее, многотабличный запрос – запрос к нескольким таблицам, который выводит результат в виде объединения таблиц)

Внешние (outer join: left – берет левую таблицу и присоединяет правую, где нечего присоединять заполняет нулями справа, right - берет правую таблицу и присоединяет левую, где нечего присоединять заполняет нулями слева, full – соединяет все, что может, а что не может заполняет нулями справа и слева, cross join – ортогональное соединение, работает как декартово произведен0ие, но быстрее)

  1. Поясните формат оператора UPDATE.

Update tablename set имя_стобца = ‘BB’

  1. Поясните применение конструкций IN, ALL, ANY, BETWEEN, NОТ, IS NULL, LIKE, EXISTS в секции WHERE.

-(not) in – выбор (не) содержащегося в конкретном select-запросе

- (not) exists – выбор значений (не) содержащихся в конкретном столбце

- all – если есть меньше/больше заданного условия

- any – если есть хотя бы одно значение больше/меньше заданного условия

- between – вывод значений в заданном диапазоне

- Like – поиск подстроки в строке

- is null – выбор строк имеющих нулевое значение

  1. Поясните формат оператора INSERT.

Insert into tablename (1,2,3) values (‘A’,’B’, ‘C’)

  1. Что такое хранимая процедура? функция? скалярная функция? табличная функция? Что можно делать в процедуре такого, что нельзя в функции?

Хранимая процедура – обьект БД, поименованный блок операторов, который хранится в БД в откомпилированном виде. Системные и пользовательские процедуры. Процедура возвращает только числовое значение (код возврата), характеризующее как сработала процедура.

Функция – обьект БД возвращающий некоторое значение. Скалярная возвращает число, а табличная – таблицу

  1. Что такое курсор? Объясните общую схему работы с курсором (DECLARE, OPEN, FETCH, CLOSE, DEALLOCATE).

Курсор – механизм, позволяющий обрабатывать отдельные строки, полученные в результате селект-запроса, т.е построчно обрабатывать селект-запрос.

создать курсор, открыть курсор, выбрать данные, закрыть курсор, уничтожить курсор

  1. Поясните основные типы курсоров: STATIC/DYNAMIC, LOCAL/GLOBAL, READ_ONLY, SCROLL,

Статические: считывает все данные сразу, данные выбраны один раз и произошедшие изменения не видны.

Динамические: изменение данных отображается в динамике, данные заносятся в эту область не сразу, а по мере необходимости, более достоверные сведения о состоянии БД.

Локальный – удаляется сразу при отключении, а глобальный существует пока не отключатся все использующие. По умолчанию курсор глобален, если так указано в параметрах БД.

Read only – курсоры не позволяют изменять БД.

Scroll – режим работы курсора, который расширяет возможности оператора fetch. В стандартной работе fetch движется сверху вниз, поочередно выбирая строки. Scroll позволяет передвигатся в разных направлениях (last(сдвиг на последнюю строку результата запроса), first (на первую), absolute (к конкретному номеру), relative (относительно данной строки на некоторое количество), next (на следующую), prior (на предыдущую))

  1. Поясните понятия входной параметр и возвращаемый (выходной параметр) процедуры.

Входные параметры – необязательная опция, то же, что параметры в ф-ции, output параметры – то же, что и резултат ф-ции. Может быть набором данных (таблицей) или значеним.

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

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

  1. Что такое представление? Поясните назначение опции WITH CHECK OPTION.

Представление – записанный и поименованный select-запрос. Выполняется каждый раз заново

Представление - это виртуальная таблица. WITH CHECK OPTION – ограничение целостности для представлений, обязательно проверяет все наложенные условия при манипуляции с процедурой.

Если в операторе CREATE VIEW будет указана фраза WITH CHECK OPTION, то СУБД станет осуществлять контроль за тем, чтобы в исходные таблицы базы данных не была введена ни одна из строк, не удовлетворяющих предложению WHERE в определяющем запросе. Этот механизм гарантирует целостность данных впредставлении.

  1. Что такое триггер? Какие типы триггеров вы знаете.

Триггеры являются одной из разновидностей хранимых процедур. Их исполнение происходит при выполнении для таблицы какого-либо оператора языка манипулирования данными (DML). Триггеры используются для проверки целостности данных, а также для отката транзакций.

Типы триггеров:

DML - INSERT, UPDATE или DELETE

DDL - CREATE, ALTER, DROP, LOGON AFTER. Триггер выполняется после успешного выполнения вызвавших его команд INSTEAD OF. Триггер вызывается вместо выполнения команд.

  1. Что такое транзакция? принцип ACID?

Транзакция – одна или несколько команд SQL, которые либо успешно выполняются как единое целое, либо отменяются как единое целое.

ACID (Джим Грей):

Atomocity (атомарность) – транзакция либо завершается полностью и успешно, либо не выполняется (аварийно завершается)

Consistency (согласованность) – транзакция успешно или аварийно завершенная всегда оставляет бд в согласованном состоянии

Isolation (изолированность) – до фиксации изменения видит только сеанс, выполнивший эти изменения, есть различные уровни изоляции.

Durability (устойчивость) – после фиксации транзакцию нельзя отменить.

  1. Что такое блокировка транзакций? Поясните термин Deadlock.

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

Блокировки бывают на чтение и на запись. 

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

  1. Перечислите уровни изолированности транзакций? Поясните разницу.

READ UNCOMMITED (неподтвержденное (грязное) чтение). Читатель может прочитать незафиксированные строки. Читатель не может изменить незафиксированные строки (ожидает);

READ COMMITED (подтвержденное чтение). Читатель не может прочитать неподтвержденные данные (ожидает), писатель может изменить и удалить уже прочитанные читателем данные;

REPETABLE READ (повторяемое чтение). В начале транзакции и в конце транзакции результат одного и того же запроса читателя будет одинаков; писатели могут вводить данные, что приводит к появлению фантомных записей;

SERIALIZABLE (сериализуемость). Высший уровень изоляции. Данные не могут не прочитаны ни изменены до окончания транзакции.

  1. Поясните понятия фиксация транзакции и откат транзакции.

commit-успех, rollback-откат, savepoint-сохранение

Фиксация транзакции(COMMIT TRANSACTION) - отмечает успешное завершение явной или неявной транзакции.

Откат транзакции(ROLLBACK TRANSACTION) - Откатывает явные или неявные транзакции до начала или до точки сохранения транзакции.

  1. Поясните понятие вложенная транзакция.

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

  1. Поясните понятие режим автофиксации.

Режим в котором каждая команда является транзакцией

  1. Поясните понятие автономная транзакция.

позволяют создавать новые подтранзакции (subtransaction), которые могут сохранять или отменять изменения вне зависимости от родительской транзакции

.

  1. Что такое контрольная точка транзакции.

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

  1. Для чего необходим индекс? Какие типы индексов бывают?

Индекс – обьект БД, предназначенный для ускорения поиска строк в таблице по индексируемым столбцам.

бывают кластерные, некластерные (просто индексы).

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

Некластерный индекс: может быть несколько для одной таблицы.

Кластерный индекс: физически совпадает с таблицей, таблица физически перестраивается в порядке индекса.

Кластерный индекс: может только один для одной таблицы.

  1. Поясните понятия план запроса и стоимость запроса SQL.

Планы запросов: последовательность элементарных действий для исполнения запроса, планы вычисляются подсистемой MS SQL Server Query Optimizer (QO).

Стоимость запроса: числовая величина, характеризующая степень использования ресурсов

  1. Поясните понятие секционирование таблиц?

Метод хранения обьектов БД (таблиц и индексов), при которых данные разбиваются на блоки (секции) и распределены между различными файловыми группами

  1. Что такое распределенная база данных?

совокупность логически взаимосвязанных баз данных, распределённых в компьютерной сети(наз. Транзакция, распростроняющаяся на две и более бд)

  1. Что такое репликация таблиц?

механизм синхронизации (добирает не достающие элемент) таблиц

  1. Поясните понятие моментальный снимок базы данных (snapshot).

Это объект БД, который представляет собой моментальный снимок базы данных, т.е снимок состояния БД на данный момент.

  1. Поясните понятие аудит базы данных?

Аудит: мероприятия (операции) направленные на отслеживание изменений базы данных (кто, когда, как).

  1. Поясните понятие архитектура клиент/сервер.

Типичная архитектура клиент/сервер состоит из программы-клиента конечного пользователя, которая имеет доступ на удаленном компьютере-сервере. Сервер обеспечивает сервис, а клиент запрашивает его у сервера. 

  1. Поясните понятие сервер баз данных.

Сервер БД обслуживает базу данных и отвечает за целостность и сохранность данных, а также обеспечивает операции ввода-вывода при доступе клиента к информации.

  1. Перечислите стандартные программные интерфейсы с базами данных?

ODBC, OLEDB, JDBC, ADO, ADO.NET, native-технологии

  1. Что такое аутентификация? авторизация?

Аутентификация – подтверждение подлинности. (Проверка: является ли тем за кого себя выдает).

Авторизация - процесс предоставления определенному лицу прав на выполнение некоторых действий

  1. Что такое схема базы данных.

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

  1. Что такое фиксированная роль сервера? Как применяется? Перечислите несколько фиксированных ролей.

Фиксированные серверные роли распространябтся на весь сервер. Каждый член фикс роли может добавлять другие имена входа к той же роли.

Dbcreator(создание, изменение и восстановление баз)

Securityadmin(управление именами входа и их свойствами)

Sysadmin(все действия на сервере)

  1. Что такое фиксированная роль базы данных? Как применяется? Перечислите несколько фиксированных ролей.

Для доступа к Sql server пользователь должен быть членом оной из предопределенных ролей бд или членом предопределенной роли сервера sysadmin. Дает администраторам возможность более точного управления доступа к sql server.

SqlAgentUserRole.

SqlAgentReaderRole.

SqlAgentOperatorRole.

  1. Что такое пользовательская роль базы данных? Как применяется? В чем отличие от фиксированной?

Пользовательская роль (нестандартная роль) сервера дающая некоторые права и привилегии.

  1. Перечислите предопределенных пользователей базы данных?

Db_accesadmin, db)datawritter, db_owner, db_securityadmin.

  1. В чем разница между полным и разностным резервным копированием базы данных?

ПРКБД: в результате полная копия базы данных; из полной копии восстанавливаются все файлы, данные, метаданные; данные в непротиворечивом состоянии.

РРКБД: разностное резервное копирование – копирование только изменений прошедших с момента последней копии; чаще всего РРКБД сочетается с ПРКБД

  1. Что такое XML? Для чего он применяется?

XML: Extensible Markup Language – расширяемый язык разметки.

XML — предназначен для хранения структурированных данных , для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML).

  1. Что такое XML-Schema? Для чего он применяется?

Язык описания структуры xml-докуменита.Была задумана для определения правил, которым должен подчинятся документ.

  1. Поясните назначение оператора CREATE XML SCHEMA COLLECTION.

Импортирует компоненты схемы в базу данных.

  1. Поясните понятие утилита.

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

13