
- •1. Понятие и принципы построения баз данных.
- •2. Реляционная модель. Три аспекта модели. Основные понятия, лежащие в основе реляционной модели
- •4) Виды моделей данных
- •Иерархическая модель данных
- •Сетевая модель данных
- •Реляционная модель данных
- •3) Основные понятия реляционных баз данных
- •3.2.1. Тип данных
- •3.2.2. Домен
- •3.2.3. Заголовок отношения, кортеж, тело отношения, значение отношения, переменная отношения
- •3.2.4. Первичный ключ и интуитивная интерпретация реляционных понятий
- •3) Отношения. Переменные-отношения. Смысл отношений, свойства отношений. Домены.
- •4) Ключи переменных-отношений. Виды ключей.
- •5) Трехуровневая архитектура базы данных. Внешний, концептуальный и внутренний уровни.
- •6) Независимость данных.
- •7) Назначение и функции субд.
- •8) Реляционная алгебра – реляционный язык обработки данных.
- •9) Традиционные и специальные операции реляционной алгебры: объединение, пересечение, вычитание, декартово произведение, проекция, выборка. О соединение, естественное соединение, деление.
- •1.3.2 Пересечение
- •1.3.3 Вычитание
- •1.3.4 Произведение
- •10) Понятие функциональной зависимости для отношения. Основные определения. Способ определения ф.З. Тривиальные и нетривиальные зависимости.
- •11) Замыкание множества зависимостей. Аксиомы Армстронга.
- •12) Нормализация. Первая, вторая и третья нормальные формы отношения
- •1Нф (Первая Нормальная Форма)
- •Аномалии обновления
- •Аномалии вставки (insert)
- •Аномалии обновления (update)
- •Аномалии удаления (delete)
- •Функциональные зависимости
- •Вторая нормальная форма
- •Анализ декомпозированных отношений
- •Оставшиеся аномалии вставки (insert)
- •Оставшиеся аномалии обновления (update)
- •Оставшиеся аномалии удаления (delete)
- •Третья нормальная форма
- •12) Концептуальные модели данных. Модель «сущность-связь». Сущности, атрибуты, связи. Сущности-связи и мощности связей. Примеры.
- •Основные понятия er-модели
- •Инструкция select
- •Синтаксис
- •Замечания
- •Предложение from
- •Синтаксис
- •Замечания
- •Предложение where
- •Синтаксис
- •Замечания
- •Предикат like
- •2.3.4.2.1 Предикат сравнения
- •2.3.4.2.2 Предикат between
- •2.3.4.2.3 Предикат in
- •Предикат exists
- •Предложение having
- •Синтаксис
- •Замечания
- •Предикаты all, distinct, distinctrow, top
- •Синтаксис
- •14) Определение базы данных на sql (операторы определения и манипулирования данными).
- •15) Понятие целостности. Классификация ограниченной целостности базы данных.
- •16) Представления. Создание и использование представлений. Создание запросов к представлению.
- •17. Хранимые процедуры
- •18. Триггеры
- •19. Транзакция. Acid – свойства транзакций. Уровни изоляции транзакций.
- •Serializable (упорядочиваемость)
- •Repeatable read (повторяемость чтения)
- •Read committed (чтение фиксированных данных)
- •Read uncommitted (чтение незафиксированных данных)
- •Проблемы параллельного доступа с использованием транзакций
- •20. Защита данных. Средства защиты данных языка sql.
- •21. Понятие предметной области. Определение сущностей, связей и их свойств.
- •22. Проектирование реляционной базы данных. Определение состава таблиц
Предикаты all, distinct, distinctrow, top
Применимо к: Microsoft Office Access 2003
Печать
Указывает записи, выбранные для запросов SQL.
Синтаксис
SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]] FROM таблица
Инструкция SELECT, содержащая эти предикаты, включает в себя следующие компоненты.
АРГУМЕНТ |
ОПИСАНИЕ |
ALL |
Подразумевается, если один из предикатов не включен. Ядро базы данных Microsoft Jet выбирает все записи, отвечающие условияминструкции SQL. Следующие два примера идентичны; в них показано, как извлечь все записи из таблицы «Сотрудники». SELECT ALL * FROM Сотрудники ORDER BY КодСотрудника; SELECT * FROM Сотрудники ORDER BY КодСотрудника; |
DISTINCT |
Исключает записи, содержащие повторяющиеся данные в отдельных полях. В результаты запроса включаются только уникальные значения каждого из полей, находящегося в списке инструкции SELECT. Например, некоторые сотрудники, перечисленные в таблице «Сотрудники», могут быть однофамильцами. Если две записи содержат в поле «Фамилия» фамилию «Иванов», следующая инструкция SQL возвращает только одну запись, содержащую фамилию «Иванов». SELECT DISTINCT Фамилия FROM Сотрудники; Если компонент DISTINCT опускается, запрос возвращает две записи, содержащие фамилию Иванов. Если предложение SELECT содержит несколько полей, для включения в результаты запроса сочетание значений всех полей должно быть уникальным для данной записи. Результаты запроса, в котором используется компонент DISTINCT, не обновляются и не отражают последующих изменений, внесенных другими пользователями. |
DISTINCTROW |
Исключает данные полностью повторяющихся записей, а не содержащих отдельные поля с одинаковыми данными. Предположим, создан запрос, объединяющий таблицы «Клиенты» и «Заказы» в поле «КодКлиента». Таблица «Клиенты» не содержит повторяющихся полей «КодКлиента», однако они есть в таблице «Заказы», поскольку у каждого клиента может быть несколько заказов. В следующей инструкции SQL показано, как компонент DISTINCTROW используется для составления списка организаций, у которых есть по крайней мере один заказ, не включающего сведений об этих заказах. SELECT DISTINCTROW НазваниеОрганизации FROM Клиенты INNER JOIN Заказы ON Клиенты.КодКлиента = Заказы.КодКлиента ORDER BY НазваниеОрганизации; Если компонент DISTINCTROW опускается, в результате запроса выводится несколько строк для каждой организации, которая сделала несколько заказов. Компонент DISTINCTROW действует только при выборе полей из некоторых, но не всех таблиц, используемых в запросе. Компонент DISTINCTROW не учитывается, если запрос включает только одну таблицу или если поля извлекаются из всех таблиц. |
13) SQL – язык реляционных баз данных. Общая характеристика SQL.
Определение состава полей, выводимых в ответ, задание условий отбора.
Вложенные запросы. Встроенные функции языка SQL и их использование.
SQL (англ. Structured Query Language — «язык структурированных запросов») — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных .SQL основывается на реляционной алгебре.
SQL является, прежде всего, информационно-логическим языком, предназначенным для описания хранимых данных, для извлечения хранимых данных и для модификации данных. SQL не является языком программирования. (Вместе с тем стандарт языка спецификацией SQL/PSM предусматривает возможность его процедурных расширений).
Изначально, SQL был основным способом работы пользователя с базой данных и представлял собой небольшую совокупность команд (операторов) допускающих создание таблиц, добавление в таблицы новых записей, извлечение записей из таблиц (в соответствии с заданным условием), удаление записей и изменение структур таблиц. В связи с усложнением язык SQL стал более прикладным языком программирования, а пользователи получили возможность использовать визуальные построители запросов.
Язык SQL представляет собой совокупность операторов. Операторы
Операторы SQL делятся на:
операторы определения данных (Data Definition Language, DDL)
CREATE создает объект БД (саму базу, таблицу, представление, пользователя и т. д.)
ALTER изменяет объект
DROP удаляет объект
Data Definition Language (DDL) (язык описания данных) — это семейство компьютерных языков, используемых в компьютерных программах для описания структуры баз данных.
На текущий момент наиболее популярным языком DDL является SQL, используемый для получения и манипулирования данными в РСУБД, и сочетающий в себе элементы DDL, DML и DCL.
Функции языков DDL определяются первым словом в предложении (часто называемом запросом), которое почти всегда является глаголом. В случае с SQL эти глаголы — «create» («создать»), «alter» («изменить»), «drop» («удалить»). Это превращает природу языка в ряд обязательных утверждений (команд) к базе данных.
Языки DDL могут существенно различаться у различных производителей СУБД. Существует ряд стандартов SQL, установленный ISO/IEC (SQL-89,SQL-92, SQL:1999,SQL:2003, SQL:2008), но производители СУБД часто предлагают свои собственные «расширения» языка и, часто, не поддерживают стандарт полностью.
операторы манипуляции данными (Data Manipulation Language, DML)
SELECT считывает данные, удовлетворяющие заданным условиям
INSERT добавляет новые данные
UPDATE изменяет существующие данные
DELETE удаляет данные
Добавить новую запись в таблицу:
INSERT INTO <имя_таблицы> [ (<имя_столбца>,<имя_столбца>,...) ]
VALUES (<значение>,<значение>,..)
Список столбцов в данной команде не является обязательным параметром. В этом случае должны быть указаны значения для всех полей таблицы в том порядке, как эти столбцы были перечислены в команде CREATE TABLE
Модификация записей:
UPDATE <имя_таблицы> SET <имя_столбца>=<значение>,...
[WHERE <условие>]
Если задано ключевое слово WHERE и условие, то команда UPDATE применяется только к тем записям, для которых оно выполняется. Если условие не задано,UPDATE применяется ко всем записям.
Удаление записей:
DELETE FROM <имя_таблицы> [ WHERE <условие> ]
Удаляются все записи, удовлетворяющие указанному условию. Если ключевое словоWHERE и условие отстутствуют, из таблицы удаляются все записи
Data Manipulation Language (DML) (язык управления (манипулирования) данными) — это семейство компьютерных языков, используемых в компьютерных программах или пользователями баз данных для получения, вставки, удаления или изменения данных в базах данных.
На текущий момент наиболее популярным языком DML является SQL, используемый для получения и манипулирования данными в РСУБД. Другие формы DML использованы в IMS/DL1, базах данных CODASYL (таких как IDMS), и других.
Языки DML изначально использовались только компьютерными программами, но с появлением SQL стали также использоваться и людьми.
Функции языков DML определяются первым словом в предложении (часто называемом запросом), которое почти всегда является глаголом. В случае с SQL эти глаголы — «select» («выбрать»), «insert» («вставить»), «update» («обновить»), и «delete» («удалить»). Это превращает природу языка в ряд обязательных утверждений (команд) к базе данных.
Языки DML могут существенно различаться у различных производителей СУБД. Существует стандарт SQL, установленный ANSI, но производители СУБД часто предлагают свои собственные «расширения» языка.
Языки DML разделяются в основном на два типа:
Procedural DMLs — описывают действия над данными.
Declarative DMLs — описывают сами данные.
операторы определения доступа к данным (Data Control Language, DCL)
GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом
REVOKE отзывает ранее выданные разрешения
DENY задает запрет, имеющий приоритет над разрешением
Data Control Language (DCL) — язык баз данных для осуществления административных функций, присваивающих или отменяющих право (привилегию) использовать базу данных, таблицы в базе данных, а также выполнять те или иные операторы SQL.
GRANT — применяется для присвоения привилегии;
REVOKE — применяется для отмены привилегии.
операторы управления транзакциями (Transaction Control Language, TCL)
COMMIT применяет транзакцию.
ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции.
SAVEPOINT делит транзакцию на более мелкие участки.
После того, как Вы определили исходные таблицы/запросы, надо выбрать поля, используемые в создаваемом запросе. Существует не - сколько способов переноса поля в бланк запроса: “буксировка” с помо- щью мыши, двойной щелчок мышью на имени соответствующего поля в списке полей, выбор поля в раскрывающемся списке полей, который по- является, если нажать на знак«стрелки» в строке«Поле» бланка запроса.
Поля, выводимые в ответ,указываются в строке конструктора запроса“Вывод на экран”. В соответствующих колонках этой строки указывается знак вхождения поля в ответ(“v” - “галочка”). Естественно, что при создании запросов важнейшим моментом яв- ляется задание условий отбора. В предыдущем примере мы уже исполь- зовали условие отбора для получения информации по одному конкрет- ному сотруднику. ЯзыкQBE, реализованный в СУБДAccess, относится к классу табличных двухмерных языков. Условие отбора необходимо задавать в таблице бланка запроса в той графе, к которой относится дан- ное условие. На рис. 2.3 такое условие задано в графе ФИО. Различают несколько типов запросов: запрос на выборку (Select), перекрестный запрос(Crosstab), создание таблицы(Make-table), запрос на обновление(Update), добавление(Append), удаление(Delete).
Вложенные запросы.
С помощью SQL можно вкладывать запросы внутрь друг друга. Обычно внутренний запрос генерирует значение, которое проверяется в предикате внешнего запроса (в предложении WHERE или HAVING), определяющего, верно оно или нет. Совместно с подзапросом можно использовать предикат EXISTS, который возвращает истину, если вывод подзапроса не пуст.
В сочетании с другими возможностями оператора выбора, такими как группировка, подзапрос представляет собой мощное средство для достижения нужного-результата. В части FROM оператора SELECT допустимо применять синонимы к именам таблицы, если при формировании запроса нам требуется более чем один экземпляр некоторого отношения. Синонимы задаются с использованием ключевого слова AS, которое может быть вообще опущено.
Список тех, кто сдал все положенные экзамены.
SELECT ФИО
FROM R1 as a
WHERE Оценка > 2
GROUP BY ФИО
HAVING COUNT(*) = (SELECT COUNT(*)
FROM R2,R3
WHERE R2.Группа=R3.Группа AND ФИО=a.ФИО)
Набор встроенных функций может изменяться в зависимости от версии СУБД одного производителя и также в СУБД различных производителей. SQL поддерживает полный набор арифметических операций и математических функций для построения арифметических выражений над колонками базы данных (+, -, *, /, ABS, LN, SQRT и т.д.). Список основных встроенных математических функций дан ниже в: