Файл: Базы Данных Теор. Экзамен.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 08.08.2021

Просмотров: 1289

Скачиваний: 11

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Примерный перечень вопросов и типовых заданий для промежуточного контроля по учебной дисциплине «Базы данных»

Тема 1. Введение, основные понятия определения. Этапы развития баз данных. Принципы организации современных БД и СУБД

Тема 2. Реляционная модель данных, реляционная алгебра

Тема 4. Операторы манипулирования данными языке SQL

Тема 5. Проектирование баз данных

Тема 6. Многопользовательский режим работы с БД. Модели «клиент-сервер» в системах баз данных. Архитектура серверов баз данных

Тема 7. Транзакции, оперативная обработка транзакций (OLTP)

Тема 8. Встроенный SQL. Понятие курсора

Тема 9. Хранимые процедуры как базовый компонент серверной части информационных систем

Тема10. Триггеры как механизм поддержки семантической целостности в БД

Тема 11. Физические модели баз данных

11.2.1. Стратегия разрешения коллизий с областью переполнения

11.2.2. Организация стратегии свободного замещения

Моделирование отношения 1:М с использованием однонаправленных указателей

Основной файл F1

Структура подчиненного файла:

Алгоритм нахождения нужных записей подчиненного файла

Типовые задания


  1. Как называется первичный ключ отношения, состоящий из нескольких атрибутов?


составной


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


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

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



  1. Какие операции входят в реляционную алгебру?


Пусть заданы два отношения R1 = { r1 }, R2 = { r2 }, где r1 и r2 — соответственно кортежи отношений R1 и R2. Мы рассматриваем каждое отношение как множество кортежей, а маленькие буквы r1 и r2 мы использовали для обозначения элемента каждого множества. Соответственно схемы отношений SR1 и SR2. При этом отношения R1 и R2 имеют эквивалентные схемы, т. е. SR1∞SR2. Тогда для них допустимы следующие операции: объединение, пересечение и разность.


  1. Что является результатом выполнения любой операции реляционной алгебры?


отношение


  1. Что такое свойство коммутативности и какие операции реляционной алгебры им обладают?


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

; .

Разность отношений R1 и R2 представляет собой множество всех кортежей, содержащее кортежи из R1 и не содержащее кортежи из R2: 

.

Операции объединения, пересечения и разности применимы только к отношениям с эквивалентными схемами.

ВНИМАНИЕ! При выполнении теоретико-множественного объединения автоматически удаляются дубликаты кортежей!



  1. Что такое схема отношения?


Следующей специальной операцией является операция проектирования.

Пусть R — отношение, SR = (A1, ... , An) — схема отношения R. 



  1. Какие отношения называются отношениями с эквивалентными схемами?


Два отношения R1 и R2 называются отношениями с эквивалентными схемами тогда и только тогда, когда они имеют одинаковую степень (арность) и существует такая перестановка атрибутов в схеме отношения R2, что на одинаковых местах в схемах отношений будут стоять Θ-сравнимые атрибуты.

Пересечение множеств — пусто и A U A1 = SR. Проекции R[A] и T[B] совместимы по объединению, т. е. имеют эквивалентные схемы: SR[A] ~ ST[B].


  1. Какие операции реляционной алгебры не требуют эквивалентности схем отношений?

  2. Могут ли иметь отношения с эквивалентными схемами различную арность?


Нет


  1. Какие операции реляционной алгебры не меняют схемы отношений? Объединение,пересечение,разность

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


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


Тема 3.Язык SQL. Формирование запросов к базе данных


  1. Что такое термин SQL, как он расшифровывается ?


SQL (Structured Query Language) — структурированный язык запросов — стандартный язык запросов по работе с реляционными БД. Язык SQL появился после реляционной алгебры. Его прототип был разработан в конце 70-х гг. в компании IBM Research. Он был реализован в первом прототипе реляционной СУБД фирмы IBM System  R. В дальнейшем этот язык применялся во многих коммерческих СУБД и в силу своего широкого распространения постепенно стал стандартом «де-факто» для языков манипулирования данными в реляционных СУБД.

  1. Какова история возникновения языка SQL ?


Первый международный стандарт языка SQL был принят в 1989 г. (далее мы будем называть его SQL/89 или SQL1). Иногда стандарт SQL1 также называют стандартом ANSI/ISO. Подавляющее большинство доступных на рынке СУБД поддерживают этот стандарт полностью. Однако развитие информационных технологий, связанных с базами данных, и необходимость реализации переносимых приложений потребовали в скором времени доработки и расширения первого стандарта SQL.

В конце 1992 г. был принят новый международный стандарт языка SQL, который в дальнейшем будем называть SQL/92 или SQL2. И он не лишен недостат ков, но в то же время является существенно более точным и полным, чем SQL/89. В настоящий момент большинство производителей СУБД внесли изменения в свои продукты, чтобы они в большей степени удовлетворяли стандарту SQL2.

В 1999 г. появился новый стандарт, названный SQL3. Если отличия между стандартами SQL1 и SQL2 во многом были количественными, то стандарт SQL3 имеет качественные преобразования. В SQL3 введены новые типы данных, при этом предполагается возможность задания сложных структурированных типов данных, которые в большей степени соответствуют объектной ориентации. Наконец, добавлен раздел, который вводит стандарты на события и триггеры, которые ранее не затрагивались в стандартах, хотя давно уже широко использовались в коммерческих СУБД. В стандарте определены возможности четкой спецификации триггеров как совокупности события и действия. В качестве действия могут выступать не только последовательность операторов SQL, но и операторы управления ходом выполнения программы. В рамках управления транзакциями произошел возврат к старой модели транзакций, допускающей точки сохранения (savepoints). Возможность указания в операторе отката ROOLBACK точек возврата позволит откатывать транзакцию не в начало, а в промежуточную ранее сохраненную точку. Такое решение повышает гибкость реализации сложных алгоритмов обработки информации.



  1. Какие стандарты для языка SQL существуют и чем они отличаются друг от друга?

  2. Какова общая структура языка SQL, из каких подъязыков состоит данный язык, каково их назначение? Каков синтаксис операции запроса в языке SQL?



В отличие от реляционной алгебры, где были представлены только операции запросов к БД, SQL является полным языком, в нем присутствуют не только операции запросов, но и операторы, соответствующие DDL (Data Definition Language) — языку описания данных. Кроме того, язык содержит операторы, предназначенные для управления (администрирования) БД. 

Операторы определения данных DDL

Оператор

Смысл

Действие

CREATE TABLE

Создать таблицу

Создает новую таблицу в БД 

DROP TABLE

Удалить таблицу

Удаляет таблицу из БД 

ALTER TABLE

Изменить таблицу

Изменяет структуру существующей таблицы или ограничения целостности, задаваемые для данной таблицы

CREATE VIEW

Создать представление

Создает виртуальную таблицу, соответствующую некоторому SQL-запросу

ALTER VIEW

Изменить представление

Изменяет ранее созданное представление

DROP VIEW

Удалить представление

Удаляет ранее созданное представление

CREATE INDEX

Создать индекс

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

DROP INDEX

Удалить индекс

Удаляет ранее созданный индекс

 

 

Таблица 3.2

Операторы манипулирования данными Data Manipulation Language (DMP)

Оператор

Смысл

Действие

DELETE

Удалить строки

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

INSERT

Вставить строку

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

UPDATE

Обновить строку

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

 

 

Таблица 3.3

Язык запросов Data Query Language (DQL)

Оператор

Смысл

Действие

SELECT

Выбрать строки

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

 

 

Таблица 3.4

Средства управления транзакциями

Оператор

Смысл

Действие

COMMIT

Завершить транзакцию

Завершает комплексную взаимосвязанную обработку информации, объединенную в транзакцию

ROLLBACK

Откатить транзакцию

Отменяет изменения, проведенные в ходе выполнения транзакции

SAVEPOINT

Сохранить промежуточную точку выполнения транзакции

Сохраняет промежуточное состояние БД, помечает его, чтобы можно было в дальнейшем к нему вернуться


 

 

Таблица 3.5

Средства администрирования данных

Оператор

Смысл

Действие

ALTER DATABASE

Изменить БД 

Изменяет набор основных объектов в базе данных, ограничений, касающихся всей базы данных

ALTER DBAREA

Изменить область хранения БД 

Изменяет ранее созданную область хранения

ALTER PASSWORD

Изменить пароль

Изменяет пароль для всей базы данных

CREATE DATABASE

Создать БД 

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

CREATE DBAREA

Создать область хранения

Создает новую область хранения и делает ее доступной для размещения данных

DROP DATABASE

Удалить БД 

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

DROP DBAREA

Удалить область хранения БД 

Удаляет существующую область хранения (если в ней на настоящий момент не располагаются активные данные)

GRANT

Предоставить права

Предоставляет права доступа на ряд действий над некоторым объектом БД 

REVOKE

Лишить прав

Лишает прав доступа к некоторому объекту или некоторым действиям над объектом

 

 

Таблица 3.6

Программный SQL

Оператор

Смысл

Действие

DECLARE

Определить курсор для запроса

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

OPEN

Открыть курсор

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

FETCH

Считать строку из множества строк, определенных курсором

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

CLOSE

Закрыть курсор

Прекращает доступ к виртуальному набору данных, соответствующему указанному курсору

PREPARE

Подготовить оператор SQL к динамическому выполнению

Генерирует план выполнения запроса, соответствующего заданному оператору SQL

EXECUTE

Выполнить оператор SQL, ранее подготовленный к динамическому выполнению

Выполняет ранее подготовленный план запроса

 

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



  1. Что такое операция группировки?


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

  1. Чем отличается значение функции count(*) от count(A) и count(distinct A) ?

  2. Что такое агрегатные функции и для чего они предназначены ?


ЧТО ТАКОЕ АГРЕГАТНЫЕ ФУНКЦИИ ?

Запросы могут производить обобщенное групповое значение полей точно также как и значение одного пол. Это делает с помощью агрегатных функций. Агрегатные функции производят одиночное значение для всей группы таблицы. Имеется список этих функций:

* COUNT - производит номера строк или не-NULL значения полей которые выбрал запрос.

* SUM - производит арифметическую сумму всех выбранных значений данного пол.

* AVG - производит усреднение всех выбранных значений данного пол.

* MAX - производит наибольшее из всех выбранных значений данного пол.

* MIN - производит наименьшее из всех выбранных значений данного пол.


  1. Что такое вложенные подзапросы, каков механизм их использования?


С помощью SQL можно вкладывать запросы внутрь друг друга. Обычно внутренний запрос генерирует значение, которое проверяется в предикате внешнего запроса (в предложении WHERE или HAVING), определяющего, верно оно или нет. Схема связывания основного и вложенного подзапросов представлена на рис. 3.1 и 3.2.

Вложенные запросы могут быть зависимыми и независимыми. Зависимыми назовем такие вложенные запросы, результат которых зависит от текущей строки или группы внешнего запроса. В этом случае, если вложенный запрос применяется на уровне предложения WHERE, то он вычисляется для каждой строки внешнего запроса и его значение зависит от значений атрибутов в текущей строке. Если вложенный запрос применяется на уровне предложения HAVING, то его значение зависит от значения постоянных атрибутов текущей группы.


Тема 4. Операторы манипулирования данными языке SQL


  1. Сколько операций входит в язык манипулирования данными?



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

В операции манипулирования данными входят три операции: операция удаления записей — ей соответствует оператор DELETE, операция добавления или ввода новых записей — ей соответствует оператор INSERT и операция изменения (обновления записей) — ей соответствует оператор UPDATE. Рассмотрим каждый из операторов подробнее.





  1. Можно ли с использованием операций манипулирования данными изменить сразу несколько таблиц?