Вопросы_коллоквиума1_по_курсу_Базы_данных (4). Реляционнаябаза данных Реляционная база данных
Скачать 41.2 Kb.
|
Коллоквиум 1 Системы управления базами данных
Реляционная база данных - база данных, построенная на основе реляционной модели. В реляционной базе каждый объект задается записью (строкой) в таблице. Реляционная база создается и затем управляется с помощью реляционной системы управления базами данных
СУБД — Система Управления Базами Данных. Программа, либо комплекс программ, предназначенных для полнофункциональной работы с данными. Как правило, включает в себя инструменты для создания и изменения структуры хранения наборов данных, а также средства доступа к хранимым данным, с возможностью их чтения, добавления, изменения и удаления. При этом, у большинства СУБД имеется собственный встроенный язык (возможно не один) для работы с данными. Наиболее популярные: Иерархические, сетевые и реляционные.
OLTP (Online Transaction Processing) — обработка транзакций в реальном времени. Способ организации БД, при котором система работает с небольшими по размерам транзакциями, но идущими большим потоком, и при этом клиенту требуется от системы максимально быстрое время ответа.
OLAP - технология обработки информации, включающая составление и динамическую публикацию отчётов и документов. Используется аналитиками для быстрой обработки сложных запросов к базе данных.
Таблицы, представления, процедуры.
Процесс приведения базы данных к виду, в котором она будет соответствовать правилам нормальных форм, называется нормализацией базы данных. Нормализация базы данных сводит к минимуму количество избыточной информации. Ее целью является сохранять данные только один раз, но в нужном месте. 1.без повтор строк 2. 1+ключ 3. 2+многозначность
Строка – кортеж Столбец – домен Таблица – отношение Первичный ключ – ограничение целостности, которое запрещает ввод в столбец нулевых и повторяющихся значений. Вторичный ключ - это одно или несколько полей (столбцов) в таблице, содержащих ссылку на поле или поля первичного ключа в другой таблице. Значение по умолчанию – ограничение целостности позволяющее задать значение по умолчанию для столбца.
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 92, SQL 99, SQL 2003, SQL 2006, SQL 2009 Диалект - разновидность данного языка(команды, характерные только для данного расширения языка).
DDL,DML,DCL,TCL.
Операторы DDL (Data Definition Language) CREATETABLE, ALTERTABLE, DROPTABLE DML (Data Manipulation Language) - операторы манипулирования данными SELECT, INSERT, DELETE, UPDATE DCL GRANT - предоставить привилегии пользователю или приложению на манипулирование объектами REVOKE- отменить привилегии пользователя или приложения TCL – COMMIT, ROLLBACK, SAVEPOINT
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 выбирает данные из одной таблицы и вставляет в другую.
UNION - Указывает на то, что несколько результирующих наборов следует объединить и возвратить в виде единого результирующего набора. ALL - Объединяет в результирующий набор все строки. Это относится и к дублирующимся строкам. Если обратное не указано, дубликаты строк удаляются. EXCEPT - Возвращает все различные значения, возвращенные запросом, указанным слева от оператора EXCEPT, но отсутствующие в результатах выполнения правого запроса. INTERSECT - Возвращает все различные значения, входящие в результаты выполнения запросов, указанных как слева, так и справа от оператора INTERSECT.
Внутренние соединения (естественное – производится если у 2-х таблиц есть одинаковые столбцы если не по имени, то по смыслу, innerjoin – работает как естественное, но быстрее, многотабличный запрос – запрос к нескольким таблицам, который выводит результат в виде объединения таблиц) Внешние (outerjoin: left – берет левую таблицу и присоединяет правую, где нечего присоединять заполняет нулями справа, right - берет правую таблицу и присоединяет левую, где нечего присоединять заполняет нулями слева, full – соединяет все, что может, а что не может заполняет нулями справа и слева, crossjoin – ортогональное соединение, работает как декартово произведен0ие, но быстрее)
Update tablename set имя_стобца = ‘BB’
-(not) in – выбор (не) содержащегося в конкретном select-запросе - (not) exists – выбор значений (не) содержащихся в конкретном столбце - all – если есть меньше/больше заданного условия - any – если есть хотя бы одно значение больше/меньше заданного условия - between – вывод значений в заданном диапазоне - Like – поиск подстроки в строке - is null – выбор строк имеющих нулевое значение
Insert into tablename (1,2,3) values (‘A’,’B’, ‘C’)
Хранимая процедура – обьект БД, поименованный блок операторов, который хранится в БД в откомпилированном виде. Системные и пользовательские процедуры. Процедура возвращает только числовое значение (код возврата), характеризующее как сработала процедура. Функция – обьект БД возвращающий некоторое значение. Скалярная возвращает число, а табличная – таблицу
Курсор – механизм, позволяющий обрабатывать отдельные строки, полученные в результате селект-запроса, т.е построчно обрабатывать селект-запрос. создать курсор, открыть курсор, выбрать данные, закрыть курсор, уничтожить курсор
Статические: считывает все данные сразу, данные выбраны один раз и произошедшие изменения не видны. Динамические: изменение данных отображается в динамике, данные заносятся в эту область не сразу, а по мере необходимости, более достоверные сведения о состоянии БД. Локальный – удаляется сразу при отключении, а глобальный существует пока не отключатся все использующие. По умолчанию курсор глобален, если так указано в параметрах БД. Read only – курсоры не позволяют изменять БД. Scroll – режим работы курсора, который расширяет возможности оператора fetch. В стандартной работе fetch движется сверху вниз, поочередно выбирая строки. Scroll позволяет передвигатся в разных направлениях (last(сдвиг на последнюю строку результата запроса), first (на первую), absolute (к конкретному номеру), relative (относительно данной строки на некоторое количество), next (на следующую), prior (на предыдущую))
Входные параметры – необязательная опция, то же, что параметры в ф-ции, output параметры – то же, что и резултат ф-ции. Может быть набором данных (таблицей) или значеним. Входные параметры хранимых процедур представляют собой указатели мест ввода данных пользователем. Основное отличие выходного параметра от входного в том, что с помощью входного параметра вы задаете хранимой процедуре значение для работы, с помощью выходного - хранимая процедура возвращает значение. Выходной параметр определяется с помощью ключевого слова OUTPUT.
Представление – записанный и поименованный select-запрос. Выполняется каждый раз заново Представление - это виртуальная таблица. WITH CHECK OPTION – ограничение целостности для представлений, обязательно проверяет все наложенные условия при манипуляции с процедурой. Если в операторе CREATE VIEW будет указана фраза WITH CHECK OPTION, то СУБД станет осуществлять контроль за тем, чтобы в исходные таблицы базы данных не была введена ни одна из строк, не удовлетворяющих предложению WHERE в определяющем запросе. Этот механизм гарантирует целостность данных впредставлении.
Триггеры являются одной из разновидностей хранимых процедур. Их исполнение происходит при выполнении для таблицы какого-либо оператора языка манипулирования данными (DML). Триггеры используются для проверки целостности данных, а также для отката транзакций. Типы триггеров: DML - INSERT, UPDATE или DELETE DDL - CREATE, ALTER, DROP, LOGON AFTER. Триггер выполняется после успешного выполнения вызвавших его команд INSTEAD OF. Триггер вызывается вместо выполнения команд.
Транзакция – одна или несколько команд SQL, которые либо успешно выполняются как единое целое, либо отменяются как единое целое. ACID (Джим Грей): Atomocity (атомарность) – транзакция либо завершается полностью и успешно, либо не выполняется (аварийно завершается) Consistency (согласованность) – транзакция успешно или аварийно завершенная всегда оставляет бд в согласованном состоянии Isolation (изолированность) – до фиксации изменения видит только сеанс, выполнивший эти изменения, есть различные уровни изоляции. Durability (устойчивость) – после фиксации транзакцию нельзя отменить.
Блокировка заключается в следующем. Когда некоторая транзакция получает доступ к элементу БД, механизм блокировки позволяет отклонить попытки получения доступа к этим же данным со стороны других транзакций. Блокировки бывают на чтение и на запись. Взаи́мная блокиро́вка (deadlock) — ситуация в многозадачной среде или СУБД, при которой несколько процессов находятся в состоянии бесконечного ожидания ресурсов, занятых самими этими процессами.
READ UNCOMMITED (неподтвержденное (грязное) чтение). Читатель может прочитать незафиксированные строки. Читатель не может изменить незафиксированные строки (ожидает); READCOMMITED (подтвержденное чтение). Читатель не может прочитать неподтвержденные данные (ожидает), писатель может изменить и удалить уже прочитанные читателем данные; REPETABLE READ (повторяемое чтение). В начале транзакции и в конце транзакции результат одного и того же запроса читателя будет одинаков; писатели могут вводить данные, что приводит к появлению фантомных записей; SERIALIZABLE (сериализуемость). Высший уровень изоляции. Данные не могут не прочитаны ни изменены до окончания транзакции.
commit-успех, rollback-откат, savepoint-сохранение Фиксация транзакции(COMMIT TRANSACTION) - отмечает успешное завершение явной или неявной транзакции.Откат транзакции(ROLLBACK TRANSACTION) - Откатывает явные или неявные транзакции до начала или до точки сохранения транзакции.
Явные транзакции могут быть вложенными. Обычно это используется для поддержки транзакций в хранимых процедурах, которые могут быть вызваны, или из процесса, который уже находится в транзакции, или из процесса, у которого нет активной транзакции.
Режим в котором каждая команда является транзакцией
позволяют создавать новые подтранзакции (subtransaction), которые могут сохранять или отменять изменения вне зависимости от родительской транзакции .
Установка контрольных точек с помощью команды SAVEPOINT позволяет разбить весь объем работы, выполняемой транзакцией, на отдельные сегменты. Откат можно производить только до конкретной точки сохранения, оставляя предшествующие изменения в силе. Точки сохранения очень полезны в ситуациях, когда необходимо восстановить часть незавершенной транзакции.
Индекс – обьект БД, предназначенный для ускорения поиска строк в таблице по индексируемым столбцам. бывают кластерные, некластерные (просто индексы). Некластерный индекс: физически находится отдельно от таблицы, список значений индексируемого столбца (столбцов в определенном порядке) с указателем на строку в таблице; список, как правило, бинарное дерево поиска. Некластерный индекс: может быть несколько для одной таблицы. Кластерный индекс: физически совпадает с таблицей, таблица физически перестраивается в порядке индекса. Кластерный индекс: может только один для одной таблицы.
Планы запросов: последовательность элементарных действий для исполнения запроса, планы вычисляются подсистемой MS SQL Server Query Optimizer (QO). Стоимость запроса: числовая величина, характеризующая степень использования ресурсов
Метод хранения обьектов БД (таблиц и индексов), при которых данные разбиваются на блоки (секции) и распределены между различными файловыми группами
совокупность логически взаимосвязанных баз данных, распределённых в компьютерной сети(наз. Транзакция, распростроняющаяся на две и более бд)
механизм синхронизации (добирает не достающие элемент) таблиц
Это объект БД, который представляет собой моментальный снимок базы данных, т.е снимок состояния БД на данный момент.
Аудит: мероприятия (операции) направленные на отслеживание изменений базы данных (кто, когда, как).
Типичная архитектура клиент/сервер состоит из программы-клиента конечного пользователя, которая имеет доступ на удаленном компьютере-сервере. Сервер обеспечивает сервис, а клиент запрашивает его у сервера.
Сервер БД обслуживает базу данных и отвечает за целостность и сохранность данных, а также обеспечивает операции ввода-вывода при доступе клиента к информации.
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: Extensible Markup Language – расширяемый язык разметки. XML — предназначен для хранения структурированных данных , для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML).
Язык описания структуры xml-докуменита.Была задумана для определения правил, которым должен подчинятся документ.
Импортирует компоненты схемы в базу данных.
компьютерная программа, расширяющая стандартные возможности оборудования и операционных систем, выполняющая узкий круг специфических задач |