Разделы презентаций


Базы данных Если описать последовательность каких либо явлений, то такое

Содержание

Постоянно возрастающий объем информации привел к тому, что в начале 60-х годов ХХ века стали создаваться специальные комплексы СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ (СУБД).Основная особенность СУБД – наличие процедур для ввода и

Слайды и текст этой презентации

Слайд 1 Базы данных
Если описать последовательность каких либо явлений, то такое

описание называют данными.
Фиксация данных производится с помощью конкретного средства общения

на конкретном носителе.

Данные и их интерпретация (семантика) фиксируются совместно.

«Стоимость билета в рублях 30», здесь «30» - данное, «Стоимость билета в рублях» - семантика.

Часто данные и интерпретация разделены.

Исторические причины этого: в начале ЭВМ не обладали возможностями для обработки текстов и стоимость памяти была весьма велика. Память использовалась для хранения данных, а интерпретация возлагалась на пользователя

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

Слайд 2Постоянно возрастающий объем информации привел к тому, что в начале

60-х годов ХХ века стали создаваться специальные комплексы СИСТЕМЫ УПРАВЛЕНИЯ

БАЗАМИ ДАННЫХ (СУБД).

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

Файлы, снабженные описанием хранимых в них данных и находящиеся под управлением СУБД стали называть банки данных, а затем базы данных (БД)

Рассмотрим пример

Пусть требуется сохранить расписание движения самолетов и ряд других данных, связанных с организацией работы аэропорта (БД «Аэропорт»)

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

Слайд 3Интерпретация

Данные

Рис 1. разделение данных и их интерпретации

Интерпретация Данные Рис 1. разделение данных и их интерпретации

Слайд 4Подготовим следующее описание расписания.
Создать таблицу Расписание
Номер рейса Целое
Дни_недели Текст (8)
Пункт_отправлениия Текст (24)
Время_вылета Время
Пункт_назначения Текст (24)
Время_прибытия Время
Тип_самолета Текст

(8)
Стоимость_билета Валюта
и введем его вместе с данными в БД

«Аэропорт»

Язык запросов СУБД позволяет обращаться за данным как из программы, так и с терминалов.

Подготовим следующее описание расписания.Создать таблицу РасписаниеНомер рейса				ЦелоеДни_недели				Текст (8)Пункт_отправлениия		Текст (24)Время_вылета			ВремяПункт_назначения			Текст (24)Время_прибытия			ВремяТип_самолета			Текст (8)Стоимость_билета		Валюта  и введем его вместе с

Слайд 5Сформируем запрос
Выбрать Номер_рейса, Дни_недели, Время_вылета
Из таблицы

Расписание
ГДЕ Пункт_отправления =‘Москва’
И Пункт_назначения = ‘Киев’

И Время_вылета >17;

Получим расписание «Москва – Киев» на вечернее время.

На запрос

Выбрать Количество (Номер_рейса)
Из таблицы Расписание
ГДЕ Пункт_отправления =‘Москва’
И Пункт_назначения = ‘Минск’

Получим количество рейсов «Москва – Минск»

Запросы не потеряют актуальности и при расширении таблицы.

Сформируем запросВыбрать  Номер_рейса, Дни_недели, Время_вылетаИз таблицы     РасписаниеГДЕ		Пункт_отправления =‘Москва’   И		Пункт_назначения =

Слайд 6ДОБАВИТЬ В ТАБЛИЦУ Расписание
Длительность_полета Целое;
ОДНАКО
На обмен данными через СУБД

требуется большее время, чем на обмен аналогичными данными прямо их

файлов, специально созданных для того или иного приложения.

Связь программ и данных при использовании СУБД

ДОБАВИТЬ В ТАБЛИЦУ   Расписание	Длительность_полета		Целое;ОДНАКОНа обмен данными через СУБД требуется большее время, чем на обмен аналогичными

Слайд 7Основная программа СУБД
При выполнении запроса на чтение данных, выданного прикладной

программой или непосредственно с терминала (другого компьютера), СУБД следующие действия:
Интерпретацию

запроса
Поиск всех описаний данных, на которые выдан запрос
Формирование команд, по которым ОС пересылает из ЗУ в буферы СУБД содержимое всех физических записей с требуемыми данными
Выделение из этих записей нужных данных, их форматирование (если это необходимо), создание заданного вида и последовательности вывода, а также пересылку этих данных на терминал или в рабочую область прикладной программы.
Аналогичные действия выполняются при обновлении или вводе данных



Программа 1-го пользователя
СУБД

Программа 2-го пользователя
СУБД

Программа n-го пользователя
СУБД

ОС и другие служебные программы

Основная программа СУБДПри выполнении запроса на чтение данных, выданного прикладной программой или непосредственно с терминала (другого компьютера),

Слайд 8БАЗА ДАННЫХ
ДАННЫЕ

Другие
модули
СУБД
Описание
хранимых
данных
Рис 2. связь программ и

данных при использовании СУБД

БАЗА ДАННЫХДАННЫЕ Другие модули СУБДОписаниехранимыхданных Рис 2. связь программ и данных при использовании СУБД

Слайд 9Архитектура СУБД
СУБД должна предоставлять доступ к данным любым пользователям, включая

и тех, кто практически не имеет представления или не хочет

иметь представления о:

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

Архитектура СУБДСУБД должна предоставлять доступ к данным любым пользователям, включая и тех, кто практически не имеет представления

Слайд 10При выполнении основных из этих функций СУБД должна использовать различные

описания данных.
В 1975 году подкомитет SPARC (Standards Planning and Requirements

Committee) американского национального института стандартов (American National Standards Institute, ANSI) выдвинул проект трехуровневой архитектуры СУБД.
При выполнении основных из этих функций СУБД должна использовать различные описания данных.В 1975 году подкомитет SPARC (Standards

Слайд 11Предметная область: часть реального мира, данные о которой необходимо разместить

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

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

Слайд 12Среда хранения данных и их описаний
В основе архитектуры ANSI/SPARC лежит

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

общей точки зрения – концепции архитекторов (разработчиков) базы данных.

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

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

Рис 3. уровни моделей данных

Среда хранения данных и их описанийВ основе архитектуры ANSI/SPARC лежит концептуальный уровень. Он описывает данные и их

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

архитектура включена в стандарты международной организации по стандартизации (International Organization

for Standardization, ISO).

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

Проектирование обычно поручается человеку (группе лиц) – администратору данных (АД).

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

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

Слайд 14Человек, обеспечивающий техническую поддержку для реализации принятых решений называется АДМИНИСТРАТОРОМ

БАЗЫ ДАННЫХ (АБД)
Он выбирает конкретную СУБД и решает, как данные

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

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

Инфологическая модель данных. Основные понятия.

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

Человек, обеспечивающий техническую поддержку для реализации принятых решений называется АДМИНИСТРАТОРОМ БАЗЫ ДАННЫХ (АБД)Он выбирает конкретную СУБД и

Слайд 15Сущность – любой объект, факт, явление .. , информацию о

котором необходимо хранить а базе данных.
Необходимо различать – тип сущности

и экземпляр сущности.

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

Экземпляр сущности относится к конкретной вещи в наборе.

НАПРИМЕР

Тип сущности - ГОРОД

Экземпляр сущности - МОСКВА, САНКТ-ПЕТЕРБУРГ ….

Атрибут –поименованная характеристика (свойство)сущности.

Используется для определения того, какая информация должна быть собрана о сущности.

Атрибуты для сущности АВТОМОБИЛЬ – ТИП, ЦВЕТ, НОМЕРНОЙ ЗНАК …….

Сущность – любой объект, факт, явление .. , информацию о котором необходимо хранить а базе данных.Необходимо различать

Слайд 16Необходимо различать – тип атрибута и экземпляр атрибута.
Тип атрибута ЦВЕТ

имеет много экземпляров или значений (красный, зеленый….), однако каждому экземпляру

сущности присваивается только одно значение атрибута.

Абсолютное различие между типами сущностей и атрибутами отсутствует.

Атрибут является таковым только в связи с типом сущности.

Например, в расписании движения самолетов
Город – это атрибут расписания
В кодификаторе адресов город – тип сущности.

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

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

Для сущности Расписание ключом является атрибут Номер_рейса или набор: Пункт_отправления, Время_вылета, Пункт_назначения.

Необходимо различать – тип атрибута и экземпляр атрибута.Тип атрибута ЦВЕТ имеет много экземпляров или значений (красный, зеленый….),

Слайд 17Связь – ассоциирование двух или более сущностей.
Абсолютное различие между типами

сущностей и связями отсутствует.
Один и тот же факт может рассматриваться,

или как сущность, или как связь.

Например, в запросе – « с кем вступила в брак Алла Пугачева» брак – связь, а в запросе – «сколько браков было в этом ЗАГСе в прошлом году» брак – сущность.

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

В реальных базах данных – сотни, тысячи сущностей и между ними может быть установлено более миллиона связей.

Много. Это определяет сложность инфологических моделей.

Связь – ассоциирование двух или более сущностей.Абсолютное различие между типами сущностей и связями отсутствует.Один и тот же

Слайд 18Характеристика связей и язык моделирования.
При построении инфологических моделей можно использовать

язык ER – диаграмм – от английского Entity-Relationship (сущность-связь).
В нем

сущности предполагалось изображать прямоугольниками, связи – ромбами, атрибуты – овалами.

Над линиями, соединяющими прямоугольники, может проставляться степень связи [1 или М(много)] и необходимое пояснение.

Характеристика связей и язык моделирования.При построении инфологических моделей можно использовать язык ER – диаграмм – от английского

Слайд 19Между двумя сущностями возможны четыре вида связей.
Первый тип – связь

«один к одному» (1:1)
А
Б
АБ
1
1
1
1
Студент
Назначение
Вид
стипендии
В каждый момент времени каждому представителю (экземпляру)

сущности А соответствует 1 или 0 представителей сущности Б.

Например, студент может не получать стипендию, получать обычную или одну из повышенных

Между двумя сущностями возможны четыре вида связей.Первый тип – связь «один к одному» (1:1)АБАБ1111СтудентНазначениеВидстипендииВ каждый момент времени

Слайд 20А
Б
АБ
1
М
Второй тип – связь «один-ко-многим» (1:М)
1
М
Квартира
Проживание
Жилец
Одному представителю сущности А

соответствует 0, 1 или нескольких представителей сущности Б
Например, квартира может

пустовать, в ней может жить один или несколько жильцов.

Также возможны связи – «многие-к-одному»
и «многие-ко-многим».

АБАБ1МВторой тип  – связь «один-ко-многим» (1:М)1МКвартираПроживаниеЖилецОдному представителю сущности А соответствует 0, 1 или нескольких представителей сущности

Слайд 21Если связь между сущностями МУЖЧИНЫ и ЖЕНЩИНЫ называется БРАК, то

существует четыре возможных представления такой связи.
1
1
Мужчина
Брак
Женщина
Традиционный брак
Остальные три составить самостоятельно.
Существуют

и более сложные связи:

Например: ввод атрибутов в описание брачных связей таких как:

Фамилии, имена и отчества мужа и жены

Даты и места рождения мужа и жены

Даты и места регистрации брака

Даты выдачи и номера свидетельства о браке

Если связь между сущностями МУЖЧИНЫ и ЖЕНЩИНЫ называется БРАК, то существует четыре возможных представления такой связи.11МужчинаБракЖенщинаТрадиционный бракОстальные

Слайд 22Все это очень усложняет ER-диаграмму и затрудняет ее понимание.
Есть более

удобные графические описания ER-диаграмм.
Сущность – в виде прямоугольника, в верхней

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

Сущность

Все это очень усложняет ER-диаграмму и затрудняет ее понимание.Есть более удобные графические описания ER-диаграмм.Сущность – в виде

Слайд 23Виды связей
Один или ноль
Только один
Много или ноль
Много или один
Пример

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

(один), кружок (ноль или «необязательно»), «воронья лапа» (много).
Виды связейОдин или нольТолько один Много или нольМного или одинПример ER-диаграммыСвязь изображается пунктирной линией между двумя сущностями.Обозначения

Слайд 24Если в ключ какой-либо сущности входит ключ другой сущности, то

связь между такими сущностями изображается не пунктирной, а сплошной линией.


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

Слайд 25Еще один вид связи: рекурсивная связь между атрибутами одной сущности

«Один_ко_многим» (Свиное ухо»),используется для описания иерархий с любым числом уровней.

Например, для сущности ОТДЕЛЫ
Еще один вид связи: рекурсивная связь между атрибутами одной сущности «Один_ко_многим» (Свиное ухо»),используется для описания иерархий с

Слайд 27Из таблицы видно, что например, кафедра вычислительной техники (ИД=102) входит

в состав факультета компьютерных технологий и управления (ИД=703), который, в

свою очередь, входит в состав университета (ИД=777)

Классификация сущностей.

Основоположник реляционной модели баз данных Эдгар Кодд определяет три основных класса сущностей:
Стержневые
Ассоциативные
Характеристические

Стержневая сущность (стержень) – это независимая сущность, которая не является ни характеристикой, ни ассоциацией.

В примерах стержни – Студент, Квартира, Мужчина ……, названия которых помещены в прямоугольники.

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

Слайд 28Ассоциативная сущность (ассоциация) – это связь вида «многие_ко_многим» («*_ко_многим») между

двумя или более сущностями или экземплярами сущности. Ассоциации рассматриваются как

полноправные сущности:

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

Например, ассоциация СВИДЕТЕЛЬСТВО_О_БРАКЕ содержит ключевые атрибуты КОД_МУЖЧИНЫ и КОД_ЖЕНЩИНЫ, а также уточняющие атрибуты ДАТА_РЕГИСТРАЦИИ, НОМЕР_СВИДЕТЕЛЬСТВА ……

Ассоциативная сущность (ассоциация) – это связь вида «многие_ко_многим» («*_ко_многим») между двумя или более сущностями или экземплярами сущности.

Слайд 29Характеристическая сущность (характеристика) – это связь типа «многие_к_одной» или «одна_к_одной»

между двумя сущностями (частный случай ассоциации).
Цель характеристики состоит в описании

или уточнении некоторой другой сущности, так как сущности имеют иногда многозначные свойства (КНИГА – имеет несколько характеристик переиздания: исправленное, дополненное, переработанное….)
Характеристическая сущность (характеристика) – это связь типа «многие_к_одной» или «одна_к_одной» между двумя сущностями (частный случай ассоциации).Цель характеристики

Слайд 30О первичных и внешних ключах
Как мы уже знаем ключ или

возможный ключ — это минимальный набор атрибутов, по значениям которых

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

Каждая сущность должна обладать хотя бы одним возможным ключом. Если же возникает ситуация, когда из состава атрибутов сущности не удается создать возможного ключа (естественного ключа), то создают, так называемый, суррогатный ключ — автоматически сгенерированное значение, никак не связанное с информационным содержанием сущности.

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

О первичных и внешних ключахКак мы уже знаем ключ или возможный ключ — это минимальный набор атрибутов,

Слайд 31При выборе первичного ключа следует отдавать
предпочтение несоставным ключам или ключам,

составленным из минимального числа атрибутов.
Так, для идентификации студента можно

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

Необходимо обеспечить уникальность первичного ключа.

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

Пусть часть базы данных выглядит следующим образом.

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

Слайд 32В сущности РЕЦЕПТЫ в качестве возможных первичных ключей можно было

бы использовать пары атрибутов: (КОД_БЛЮДА, РЕЦЕПТ) или (КОД_БЛЮДА, ВАРИАНТ), где

вариант — номер технологии приготовления блюда, например, кофе черного или салата "Оливье".
В сущности РЕЦЕПТЫ в качестве возможных первичных ключей можно было бы использовать пары атрибутов: (КОД_БЛЮДА, РЕЦЕПТ) или

Слайд 33Однако значение первого из этих ключей:
(КОД_БЛЮДА, РЕЦЕПТ) — чересчур громоздко,

а второго: (КОД_БЛЮДА, ВАРИАНТ) — требует обязательного ввода номера варианта,

даже в том случае, когда существует всего один вариант рецепта.

Поэтому введем в состав атрибутов сущности РЕЦЕПТЫ атрибут ИД, который будет автоматически генерироваться СУБД во время ввода рецептов и использоваться в качестве суррогатного первичного ключа.

Однако значение первого из этих ключей:(КОД_БЛЮДА, РЕЦЕПТ) — чересчур громоздко, а второго: (КОД_БЛЮДА, ВАРИАНТ) — требует обязательного

Слайд 34Теперь о внешних ключах:
 Если сущность В связывает сущности А

и Б, то она должна включать внешние ключи, соответствующие первичным

ключам сущностей А и Б.
Например, ассоциативная сущность СОСТАВ включает внешние ключи КОД_БЛЮДА и КОД_ПРОДУКТА, соответствующие первичным ключам связываемых стержневых сущностей БЛЮДА и ПРОДУКТЫ.
Теперь о внешних ключах: Если сущность В связывает сущности А и Б, то она должна включать внешние

Слайд 35 Если сущность Б характеризует сущность А, то она должна

включать внешний ключ, соответствующий первичному ключу сущности А. Например, характеристическая

сущность РЕЦЕПТЫ включает внешний ключ КОД_БЛЮДА, соответствующий первичному ключу характеризуемой сущности БЛЮДА.

Таким образом, при рассмотрении выбора способа представления ассоциаций и характеристик в базе данных основной вопрос, на который следует получить ответ:
"Каковы внешние ключи?"
Затем для каждого внешнего ключа необходимо решить три вопроса.

Первый вопрос — может ли данный внешний ключ принимать неопределенные значения? Т.е. может ли существовать некоторый экземпляр сущности данного типа, для которого неизвестна целевая сущность, указываемая внешним ключом?

 Если сущность Б характеризует сущность А, то она должна включать внешний ключ, соответствующий первичному ключу сущности

Слайд 36Ответ определяется фактическим образом действий, принятым в той части

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


Например в случае поставок это, вероятно, невозможно — поставка, осуществляемая неизвестным поставщиком, или поставка неизвестного продукта не имеют смысла. Но вполне возможно существование блюда с неизвестным значением его вида (суп, горячее и пр.).

Второй вопрос — что должно случиться при попытке УДАЛЕНИЯ экземпляра сущности, на первичный ключ которой ссылается внешний ключ? Например, при удалении поставщика, который осуществил, по крайней мере, одну поставку. Для данной операции существует три возможности, она:

 КАСКАДИРУЕТСЯ — операция удаления "каскадируется" с тем, чтобы удалить также все поставки удаляемого поставщика;

Ответ  определяется фактическим образом действий, принятым в той части реального мира, которая должна быть представлена в

Слайд 37 ОГРАНИЧИВАЕТСЯ — удаляются лишь те поставщики, которые еще не

осуществляли поставок. Иначе операция удаления отвергается;
 УСТАНАВЛИВАЕТСЯ — для всех

поставок удаляемого поставщика внешний ключ устанавливается в неопределенное (NULL) значение, а затем этот поставщик удаляется. Такая возможность, конечно, неприменима, если данный внешний ключ не должен содержать NULL-значений.

Третий вопрос — что должно происходить при попытке ОБНОВЛЕНИЯ первичного ключа сущности, на которую ссылается некоторый внешний ключ? Например, может быть предпринята попытка обновить номер такого поставщика, для которого имеется, по крайней мере, одна соответствующая
поставка. Этот случай для определенности снова рассмотрим подробнее.
Имеются те же три возможности, как и при удалении:

 ОГРАНИЧИВАЕТСЯ — удаляются лишь те поставщики, которые еще не осуществляли поставок. Иначе операция удаления отвергается; УСТАНАВЛИВАЕТСЯ

Слайд 38 КАСКАДИРУЕТСЯ — операция обновления "каскадируется" с тем, чтобы обновить

также и внешний ключ в поставках этого поставщика;
 ОГРАНИЧИВАЕТСЯ —

обновляются первичные ключи лишь тех поставщиков, которые еще не осуществляли поставок. Иначе операция обновления отвергается;

 УСТАНАВЛИВАЕТСЯ — для всех поставок обновляемого поставщика внешний ключ устанавливается в неопределенное значение, а затем обновляется первичный ключ поставщика. Такая возможность, конечно, неприменима, если данный внешний ключ не должен содержать NULL- значений.

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

 КАСКАДИРУЕТСЯ — операция обновления

Слайд 39 Характеристики, существование которых зависит от характеризуемых сущностей. Для них

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

образом:

 NULL - значения не допустимы,
 УДАЛЕНИЕ ИЗ (характеризуемой сущности) КАСКАДИРУЕТСЯ,
 ОБНОВЛЕНИЕ (первичный ключ характеризуемой сущности)
КАСКАДИРУЕТСЯ.

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

Характеристики, существование которых зависит от характеризуемых сущностей. Для них три рассмотренные ранее ограничения на внешний ключ

Слайд 40Ограничения целостности
Целостность (от англ. integrity — нетронутость, неприкосновенность, сохранность, целостность)

— понимается как правильность данных в любой момент времени. Но

эта цель может быть достигнута лишь в определенных пределах: СУБД не может контролировать правильность каждого отдельного значения, вводимого в базу данных (хотя каждое значение можно проверить на правдоподобность). Например, нельзя обнаружить, что вводимое значение 5 (представляющее номер дня недели) в действительности должно быть равно 3. С другой стороны, значение 9 явно будет ошибочным и СУБД должна его отвергнуть. Однако для этого ей следует сообщить, что номера дней недели должны принадлежать набору (1,2,3,4,5,6,7).
Ограничения целостностиЦелостность (от англ. integrity — нетронутость, неприкосновенность, сохранность, целостность) — понимается как правильность данных в любой

Слайд 41Современные СУБД имеют ряд средств для обеспечения поддержания целостности (так

же, как и средств обеспечения поддержания безопасности).
Выделяют три группы правил

целостности.

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

 Целостность по ссылкам.
Значение внешнего ключа должно либо:
быть равным значению первичного ключа ассоциируемой (характеризуемой) сущности;
быть полностью неопределенным, т. е. каждое значение атрибута, участвующего во внешнем ключе, должно быть неопределенным.

Современные СУБД имеют ряд средств для обеспечения поддержания целостности (так же, как и средств обеспечения поддержания безопасности).Выделяют

Слайд 42 Целостность, определяемая пользователем.
Для любой конкретной базы данных существует ряд

дополнительных специфических правил, которые относятся к ней одной и определяются

разработчиком. Чаще всего контролируется:
уникальность тех или иных атрибутов;
диапазон значений (экзаменационная оценка от 2 до 5);
принадлежность набору значений (пол "М" или "Ж").
 Целостность, определяемая пользователем.Для любой конкретной базы данных существует ряд дополнительных специфических правил, которые относятся к ней

Слайд 43 Советы начинающим проектировщикам баз данных:
 четко разграничивать такие понятия

как запрос на данные и ведение данных (ввод, изменение и

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

Слайд 44Реляционная структура данных
Реляционная база данных – это совокупность отношений, содержащих

всю информацию, которая должна храниться в БД.
Пользователи могут воспринимать такую

базу данных как совокупность таблиц.

Эдгар Кодд предложил использовать для обработки данных теории множеств (объединение, пересечение, разность, декартово произведение)

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

Наименьшая единица данных реляционной модели – это отдельное атомарное (неразложимое) для данной модели значение данных.

Реляционная структура данныхРеляционная база данных – это совокупность отношений, содержащих всю информацию, которая должна храниться в БД.Пользователи

Слайд 45Так, в одной предметной области фамилия, имя и отчество могут

рассматриваться как единое значение, а в другой - как три

различных значения.

Доменом называется множество атомарных значений одного и того же типа.

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

Если же значения двух атрибутов берутся из различных доменов, то их сравнение, вероятно, лишено смысла.

Пример отношения для расписания движения самолетов для расписания движения самолетов (см.Рис1.)

Так, в одной предметной области фамилия, имя и отчество могут рассматриваться как единое значение, а в другой

Слайд 46отношение
заголовок отношения
тело отношения
Номер рейса


Пункт назначения














Тип самолета
Москва
Казань
Киев
Рига


ИЛ-86
ТУ-134
Б-737
ЯК-42
138
1234
242
577
А1
А5
А7
V1
V5
V7
138 1234 56 242 577

78 241 57

Москва Ереван Баку Рига Сочи Таллинн

ИЛ-86 ТУ-154 Б-737 ЯК-42 ТУ-134

D1

D2

D3

отношениезаголовок отношениятело отношенияНомер рейса …Пункт назначения……………………………………Тип самолетаМосква Казань Киев Рига ИЛ-86 ТУ-134 Б-737ЯК-42138 1234 242 577А1А5А7V1V5V7138 1234

Слайд 47Рис . Отношение с математической точки зрения.
Отношение на доменах D1,

D2, …, Dn состоит из заголовка и тела.
Заголовок (на Рис1.

он называется интерпретацией) состоит из такого фиксированного множества атрибутов А1, А2, .., Аn, что существует взаимно однозначное соответствие между этими атрибутами Аi и определяющими их доменами Di (i=1, 2,3, .. ,n).

Тело состоит из меняющегося во времени множества кортежей, где каждый кортеж состоит в свою очередь из множества пар атрибут-значение (Ai :Vi), (i=1, 2, …, n), по одной паре для каждого атрибута Ai в заголовке.

Для любой заданной пары атрибут-значение (Ai : Vi) Vi является значением из единственного домена Di, который связан с атрибутом Ai.

Рис . Отношение с математической точки зрения.Отношение на доменах D1, D2, …, Dn состоит из заголовка и

Слайд 48Степень отношения – это число его атрибутов.
Отношение степени один называют

унарным, степени два – бинарным, степени три – тернарным, степени

n – n-арным.
Степень отношения РЕЙС (рис1.) – 8.

Кардинальное число или мощность отношения – это число его кортежей.

Мощность отношения РЕЙС равна 10.
Кардинальное число отношения изменяется во времени в отличие от его степени.

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

Пусть R – отношение с атрибутами A1, A2, …, An. Говорят, что множество атрибутов K=(Ai, Aj, …, Ak) отношения R является возможным ключом R тогда и только тогда, когда удовлетворяются два независимых от времени условия:

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

Слайд 491. Уникальность – в произвольный заданный момент времени никакие два

различных кортежа r не имеют одного и того же значения

для Ai, Aj, … Ak.

2. Минимальность – ни один из атрибутов Ai, Aj, … Ak не может быть исключен из K без нарушения уникальности.

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

Для массового пользователя реляционных СУБД можно использовать неформальные эквиваленты этих понятий:

Отношение – таблица (иногда файл).

Кортеж – строка (иногда запись).

Атрибут – столбец, поле.

При этом принимается, что запись означает экземпляр записи, а поле означает имя и тип поля.

1. Уникальность – в произвольный заданный момент времени никакие два различных кортежа r не имеют одного и

Слайд 50В любой реляционной базе данных:
1. Каждая таблица состоит из однотипных

строк и имеет уникальное имя.
2. Строки имеют фиксированное число полей

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

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

4. Столбцам таблицы однозначно присваиваются имена, и в каждом из них размещаются однородные значения данных (даты, фамилии, целые числа или денежные суммы).

В любой реляционной базе данных:1. Каждая таблица состоит из однотипных строк и имеет уникальное имя.2. Строки имеют

Слайд 515. Полное информационное содержание базы данных представляется в виде явных

значений данных, и такой метод представления является единственным.
6. При выполнении

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

Манипулирование реляционными данными

Предложив реляционную модель данных, Эдгар Кодд создал и инструмент для удобной работы с отношениями — реляционную алгебру. Каждая операция этой алгебры использует одну или несколько таблиц (отношений) в качестве ее операндов и продуцирует в результате новую таблицу, т. е. позволяет "разрезать" или "склеивать" таблицы.

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

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

и практически любые их сочетания.
Среди них наиболее распространены
SQL

(Structured Query Language — структуризованный язык запросов)
QBE (Quere-By-Example — запросы по образцу).
Оба относятся к языкам очень высокого уровня, с помощью которых пользователь указывает, какие данные необходимо получить, не уточняя процедуру их получения.

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

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

Слайд 53Некоторые операции реляционной алгебры

Некоторые операции реляционной алгебры

Слайд 54С помощью единственного запроса на любом из этих языков можно

соединить несколько таблиц во временную таблицу и вырезать из нее

требуемые строки и столбцы (селекция и проекция).

Обновление отношений

Отношения (например, отношение R, с атрибутами А1, А2, ..., An) могут дополняться, удаляться или изменяться.

Добавление

Если эту операцию обозначить ADD и применить к отношению R, то можно записать:

ADD (R; А1= d1, А2= d2, ..., Аn= dn)

или при фиксированном порядке имен атрибутов

ADD (R; d1, d2, ..., dn),

где di — значение i-го атрибута добавляемого кортежа.

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

Слайд 55Цель операции — добавить указанный кортеж в определенное отношение. Результат

операции может быть не согласован с целями операции по следующим

причинам:

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

В каждом из этих случаев операция ADD (R; d1, d2, ..., dn) оставляет отношение R неизменным и некоторым образом сообщает об ошибке.

Цель операции — добавить указанный кортеж в определенное отношение. Результат операции может быть не согласован с целями

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

Для приведенного ранее отношения R она записывается в виде:
DEL (R;

А1= d1, А2= d2, ..., Аn= dn)

или при фиксированном порядке имен атрибутов

DEL (R; d1, d2, ..., dn).

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

УдалениеЭта операция, которую мы обозначим DEL, вводится для уничтожения сделанного. Для приведенного ранее отношения R она записывается

Слайд 57Изменение
Вместо того чтобы добавлять или удалять целый кортеж отношения, можно

изменить лишь часть кортежа. Для R при {С1, С2, ...,

Ср} из {А1, А2.....An} операция изменения имеет вид:

CH (R; A1 = d1 А2 = d2, ..., Аn = dn; C1 = e1
C2 = e2..... Cp = ep).
Или если K = {B1= e1, B2= e2, ..., Bn= en} является ключом, то
C1 = e1 C2 = e2..... Cp = ep.

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

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

Слайд 58Основы SQL
Эдгар Кодд инициировал разработку для реляционной модели

данных языка SEQUEL (Structured English Query Language, структурированный английский язык

для запросов), который впоследствии был переименован в SQL (Structured Query Language, структурированный язык запросов). Официальным произношением стало [es kju:' el] — эс-кью-эл. Специалисты по-прежнему часто называют SQL сиквел, вместо эс-кью-эл (по-русски также часто говорят "эс-ку-эль").
Целью разработки было создание простого непроцедурного
языка, которым мог воспользоваться любой пользователь, даже не имеющий навыков программирования.

В 1989 году SQL был включен в стандарты международной организации по стандартизации ISO (SQL:1989), а затем были приняты и опубликованы стандарты SQL:1992, SQL:1999 и SQL:2003.

Основы SQLЭдгар Кодд  инициировал разработку для реляционной  модели данных языка SEQUEL (Structured English Query Language,

Слайд 59В настоящее время все производители распространенных реляционных СУБД поддерживают с

различной степенью соответствия стандарт SQL:2003
Непроцедурный язык SQL ориентирован на операции

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

Слайд 60Появление теории реляционных баз данных и предложенного Коддом языка запросов

"alpha", основанного на реляционном исчислении, инициировало разработку ряда языков запросов,

которые можно отнести к двум классам:

1. Алгебраические языки, позволяющие выражать запросы средствами специализированных операторов, применяемых к отношениям: JOIN — соединить, INTERSECT — пересечь, SUBTRACT — вычесть и т. д.

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

Появление теории реляционных баз данных и предложенного Коддом языка запросов

Слайд 61Поэтому все современные версии профессиональных реляционных СУБД (DB2, Oracle, SQL

Server, Sybase, PostgreSQL, MySQL) и даже нереляционных СУБД (например, Adabas)

используют технологию "клиент-сервер" и язык SQL.

SQL компактный язык с небольшим (менее 30) набором основных предложений. SQL может использоваться как
интерактивный (для выполнения запросов) и как встроенный (для построения прикладных программ) язык. В нем существуют:

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

Поэтому все современные версии профессиональных реляционных СУБД (DB2, Oracle, SQL Server, Sybase, PostgreSQL, MySQL) и даже нереляционных

Слайд 62Кроме того, он предоставляет возможность выполнять в этих предложениях:
1.Предоставляет возможность

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

текстовых строк и выполнение операций сравнения значений арифметических выражений и текстов;

2.Упорядочение строк и (или) столбцов при выводе содержимого таблиц на печать или экран дисплея;

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

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

Кроме того, он предоставляет возможность выполнять в этих предложениях:1.Предоставляет возможность выполнять в этих предложениях:арифметические вычисления (включая разнообразные

Слайд 635. Агрегатирование данных: группирование данных и применение к этим группам

таких операций, как среднее, сумма, максимум, минимум, число элементов и

т. п.

SQL не имеет достаточных средств для создания сложных прикладных программ. Поэтому в разных СУБД он либо используется вместе с языками программирования высокого уровня (например, такими как Си, Паскаль, PHP), либо включен в состав команд специально разработанного языка СУБД (диалекта SQL): SQLpl в DB2, PL/SQL в Oracle, PL/pgSQL в PostgreSQL, Trunsact-SQL в SQL Server и т. п.

Таблицы SQL

SQL использует и создает ряд виртуальных (как будто существующих) таблиц: представлений, курсоров и неименованных рабочих таблиц, в которых формируются результаты запросов на получение данных из базовых таблиц и, возможно, представлений. Это таблицы, которые не существуют в базе данных, но как бы существуют с точки зрения пользователя.

5. Агрегатирование данных: группирование данных и применение к этим группам таких операций, как среднее, сумма, максимум, минимум,

Слайд 64База данных в восприятии пользователя

База данных в восприятии пользователя

Слайд 65Базовые таблицы создаются с помощью предложения
CREATE TABLE (создать таблицу),


подробное описание рассмотрим позднее.
Приведем пример предложения для создания описания

таблицы Блюда:

CREATE TABLE Блюда
(
Код_блюда число,
Блюдо текст(70),
Код_вида число,
Основа текст(10),
Выход число,
Труд число
);

Базовые таблицы создаются с помощью предложения CREATE TABLE (создать таблицу), подробное описание рассмотрим позднее. Приведем пример предложения

Слайд 66CREATE TABLE — выполняемое предложение
Специфицирует имя базовой таблицы, которая должна

быть создана, имена ее столбцов и типы данных для этих

столбцов

Синтаксические конструкции SQL

Все составляющие языка SQL можно условно разделить на следующие конструкции:

 предложения;
 идентификаторы (имена);
 константы;
 операторы;
 зарезервированные и ключевые слова;
 псевдостолбцы и таблица DUAL.

Предложения SQL

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

CREATE TABLE — выполняемое предложениеСпецифицирует имя базовой таблицы, которая должна быть создана, имена ее столбцов и типы

Слайд 67Любое предложение SQL состоит из ключевых и зарезервированных слови слов,

определяемых пользователем в соответствии с синтаксическими правилами. Для записи предложений

принят свободный формат, но рекомендуются следующие правила:

 каждая фраза предложения должна начинаться с новой строки;
 начало фразы должно быть выровнено с началом остальных фраз предложения;
 части фразы, не помещающиеся в строку, должны начинаться с новой строки с некоторым отступом относительно начала всей фразы;
 для записи ключевых слов используйте прописные буквы;
 для записи определяемых пользователем слов используйте строчные буквы (кроме записи текстовых констант);
 каждое предложение SQL должно заканчиваться символом точка с запятой (;).

Любое предложение SQL состоит из ключевых и зарезервированных слови слов, определяемых пользователем в соответствии с синтаксическими правилами.

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

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

Слайд 69Все предложения SQL делятся на три группы:
 предложения манипуляции данными

(Data Manipulation Language, DML)
 предложения определения данных (Data Definition Language,

DDL)
 предложения определения доступа к данным (Data Control Language, DCL)

SELECT (выбрать), INSERT (вставить), UPDANT (обновить) и DELETE (удалить).

Идентификаторы (имена)

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

Все предложения SQL делятся на три группы: предложения манипуляции данными (Data Manipulation Language, DML) предложения определения данных

Слайд 70Идентификатор объекта создается при определении объекта.
Например, для создания имен

таблицы и ее столбцов:
CREATE TABLE Блюда
(
Код_блюда число,
Блюдо текст(70),
Код_вида число,
Основа текст(10),
Выход

число,
Труд число
);

Затем идентификатор используется для обращения к объектам. Например:

SELECT Код_блюда, Блюдо
FROM Блюда;

Идентификатор объекта создается при определении объекта.Например,  для создания имен таблицы и ее столбцов:CREATE TABLE Блюда(Код_блюда число,Блюдо

Слайд 71Существует два класса идентификаторов:
 обычные идентификаторы;
 идентификаторы с разделителем.
В SQL:2003

и обычные идентификаторы, и идентификаторы с разделителем могут содержать от

1 до 128 символов, а в СУБД Oracle — до 30 байт (число символов зависит от их набора).

Обычный идентификатор может содержать любые буквы, цифры и знак подчеркивания (_), а в Oracle еще и знаки диеза (♯) и доллара ($). Он должен начинаться с буквы и не может содержать пробелов и специальных символов.

Он не может быть зарезервированным словом, например,
SELECT.

Существует два класса идентификаторов: обычные идентификаторы; идентификаторы с разделителем.В SQL:2003 и обычные идентификаторы, и идентификаторы с разделителем

Слайд 72В обход некоторых из этих ограничений можно использовать идентификаторы с

разделителем, т. е. имена объектов, заключенные в двойные кавычки (").
В

частности, такие идентификаторы можно применять для того, чтобы давать имена с зарезервированными словами, или для того, чтобы использовать в имени обычно не употребляемые там символы (например, "Код блюда").

Константы и NULL-значения

В SQL константами считаются любые числовые значения, строки символов, значения, связанные с представлением времени (дата и время), и булевы значения, которые не являются идентификаторами или ключевыми словами.

Числовые константы могут выглядеть так:
546
-777
+36.6
5E6
-9E-2

В обход некоторых из этих ограничений можно использовать идентификаторы с разделителем, т. е. имена объектов, заключенные в

Слайд 73В них допустимы числа со знаком и без знака, в

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

набор символов:

0 1 2 3 4 5 6 7 8 9 + - $ . E e

Нельзя включать в числовую константу запятую, которая обычно используется как разделитель элементов (например, константа 7,654 будет интерпретироваться как 7 и отдельно 654).

Булевы значения, строковые константы и даты выглядят примерно так:

TRUE
'С новым годом'
15-10-2007 15:06:54
15-ОКТЯБРЬ-2007 15:06:54

В них допустимы числа со знаком и без знака, в обычной и экспоненциальной записи. В числовых константах

Слайд 74Строковые константы должны всегда заключаться в одинарные кавычки (' ')

— апострофы. Символы в строковых константах не ограничиваются алфавитными символами.

Любой символ из набора символов можно представить в виде строковой константы:

'1989'
'57.321 + 12345'
'Это тоже строковая константа'
'15-ОКТЯБРЬ-2007 15:06:54'

Не стоит использовать строковые константы в арифметических выражениях без явного их преобразования в числовой тип.
Хотя в Oracle некоторые из них и преобразуются автоматически.

Строковые константы должны всегда заключаться в одинарные кавычки (' ') — апострофы. Символы в строковых константах не

Слайд 75Например,
при выполнении предложения
SELECT '1989' + 1234.56 FROM DUAL;
будет получен результат

суммирования 1989 с 1234.56:
'1989'+1234.56
--------------
3223,56
а при выполнении предложения
SELECT '1989' + '1234.56'

FROM DUAL;
появится сообщение об ошибке:
ORA-01722: неверное число
Например,при выполнении предложенияSELECT '1989' + 1234.56 FROM DUAL;будет получен результат суммирования 1989 с 1234.56:'1989'+1234.56--------------3223,56а при выполнении предложенияSELECT

Слайд 76При необходимости отражения в строковой константе символа одинарной кавычки, необходимо

написать этот символ два раза. Например, для вывода текста:
- 'К

нам придет Д'Артаньян ?'

необходимо написать запрос:

SELECT '- '' К нам придет Д''Артаньян ? ''' FROM DUAL;

Все СУБД используют специальное значение — NULL (пустое
или несуществующее значение), которое может быть записано в поле таблицы базы данных. NULL-значения нужно всегда рассматривать как "отсутствие информации", а не как пустые строки, пробелы или нули.

Существует несколько кратких правил о поведении NULL-значений.

 Значения типа NULL нельзя помещать в столбцы, определенные как NOT NULL.

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

Слайд 77 Значения типа NULL не равны друг другу. Распространенная ошибка

сравнивать два столбца, содержащие значения NULL, и ожидать, что они

совпадут. (Правильный метод идентификации значений NULL, в предложениях WHERE или в булевых выражениях — это использование таких выражений,
как value IS NULL и value IS NOT NULL.)

 Столбец, содержащий значение NULL, игнорируется при вычислениях агрегатных значений, таких, как AVG, SUM или COUNT.

 Если столбцы, содержащие значения NULL, перечислены в предложении GROUP BY запроса, выходные данные запроса будут содержать для значений NULL всего одну строку. По сути дела стандарт рассматривает все найденные значения NULL как одну группу.

 Значения типа NULL не равны друг другу. Распространенная ошибка сравнивать два столбца, содержащие значения NULL, и

Слайд 78 В предложениях DISTINCT или ORDER BY, как и в

предложении GROUP BY, значения NULL не отличаются друг от друга.

Для предложения ORDER BY Oracle устанавливает значения NULL в конец получаемого набора данных.

Операторы

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

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

 В предложениях DISTINCT или ORDER BY, как и в предложении GROUP BY, значения NULL не отличаются

Слайд 79 Оператор Описание
+ Сложение
– Вычитание
* Умножение
/ Деление
Операторы + и – могут

применяться для выполнения арифметических операций над датами.
Оператор конкатенации (||) соединяет

две отдельные текстовые строки в одно строковое значение.

Оператор присваивания (=) присваивает значение переменной или псевдониму заголовка столбца. В Oracle используется оператор присваивания :=.

Оператор 				Описание	+ 					Сложение	– 					Вычитание	* 					Умножение	/ 					ДелениеОператоры + и – могут применяться для выполнения арифметических операций над датами.Оператор

Слайд 80Операторы сравнения проверяют равенство или неравенство двух выражений. Результатом операции

сравнения является булево значение:
TRUE (верно), FALSE (неверно) или UNKNOWN (неизвестно).

Если хотя бы одно из сравниваемых значений равно NULL, то результат также будет NULL.

Оператор Описание
= Равно
> Больше
< Меньше
>= Больше или равно
<= Меньше или равно
<> Не равно
IS NULL Имеет ли значение NULL
IS NOT NULL Не имеет ли значение NULL

Операторы сравнения проверяют равенство или неравенство двух выражений. Результатом операции сравнения является булево значение:TRUE (верно), FALSE (неверно)

Слайд 81Эти операторы наиболее часто используются во фразе WHERE для отбора

строк, соответствующих условиям поиска
Логические операторы обычно применяются во фразе WHERE

для проверки истинности какого-либо условия. Логические операторы возвращают булево значение TRUE или FALSE.
Эти операторы наиболее часто используются во фразе WHERE для отбора строк, соответствующих условиям поискаЛогические операторы обычно применяются

Слайд 82Оператор Описание
ALL TRUE, если весь набор сравнений даст результат TRUE
AND

TRUE, если оба булевых выражения дают результат TRUE
ANY TRUE, если

хотя бы одно сравнение из набора даст
результат TRUE
BETWEEN TRUE, если операнд находится внутри диапазона
EXISTS TRUE, если подзапрос возвращает хотя бы одну строку
IN TRUE, если операнд равен одному выражению из списка
или одной или нескольким строкам, возвращаемым подзапросом
LIKE TRUE, если операнд совпадает с шаблоном
NOT Обращает значение любого другого булевого оператора
OR TRUE, если любое булево выражение равно TRUE
SOME TRUE, если несколько сравнений из набора дают результат TRUE
Оператор 				ОписаниеALL TRUE, 	если весь набор сравнений даст результат TRUEAND TRUE, 	если оба булевых выражения дают результат

Слайд 83Унарные операторы выполняют операцию над одним выражением числовой категории: +

(числовое значение становится положительным) и – (числовое значение становится отрицательным).
Приоритет

операторов

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

1. () (выражения, стоящие в скобках).
2. +, - (унарные операторы).
3. *, / (математические операторы).
4. +, - (арифметические операторы).
5. =, >, <, >=, <=, <> (операторы сравнения).
6. IS NULL.
7. NOT.
8. AND.
9. ALL, ANY, BETWEEN, IN, LIKE, OR, SOME.

Унарные операторы выполняют операцию над одним выражением числовой категории: + (числовое значение становится положительным) и – (числовое

Слайд 8410. = (присваивание значения переменной).
Если операторы имеют одинаковый приоритет, вычисления

производятся слева направо. Для того чтобы изменить применяемый по умолчанию

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

Зарезервированные и ключевые слова

В SQL существуют некоторые слова и фразы, имеющие особую значимость.

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

10. = (присваивание значения переменной).Если операторы имеют одинаковый приоритет, вычисления производятся слева направо. Для того чтобы изменить

Слайд 85В SQL:2003 определяется свой список зарезервированных и ключевых слов.
Кроме этого,

существующие СУБД имеют собственные списки подобных слов (в том числе

и Oracle). Эти слова нельзя использовать в качестве идентификаторов

Псевдостолбцы, таблица DUAL
и о словах, которые нежелательно
использовать пользователям

Кроме зарезервированных слов в Oracle существуют и другие, которые имеют специальное значение. Это имена типов данных и имена встроенных функций.

Не следует использовать имена схем, ключевые слова DIMENSION, SEGMENT, ALLOCATE, DISABLE, имена псевдостолбцов и таблицы DUAL, а также слова, начинающиеся с SYS_ .

Псевдостолбцы и таблица DUAL

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

Слайд 88Типы данных SQL
Типы данных позволяют установить основные правила для данных,

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

для них памяти.

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

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

Слайд 90Символьные
Символьные данные могут иметь фиксированную и переменную длину. Эти данные

обозначаются в SQL с помощью одинарных кавычек. Данные с символами

в формате UNICODE (стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков), как правило, содержат большее число байт, чем данные в стандарте ASCII (American Standard Code for Information Interchange), и это надо учитывать, устанавливая длину (n) в байтах.
СимвольныеСимвольные данные могут иметь фиксированную и переменную длину. Эти данные обозначаются в SQL с помощью одинарных кавычек.

Слайд 92Двоичные
LOB-типы используются для хранения больших объектов (Large Object). Двоичные объекты

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

или переменным размером, таких как графика, векторная графика, звуковые файлы, фотографии, видеосегменты и другие виды мультимедийной информации. Символьные объекты CLOB используются для хранения глав книг, больших документов и т. п. В табл. приведено описание двоичный типов данных.
ДвоичныеLOB-типы используются для хранения больших объектов (Large Object). Двоичные объекты BLOB используются для хранения очень больших объектов

Слайд 93В Oracle большие двоичные объекты (BLOB, CLOB и NCLOB) имеют

следующие ограничения:
 их нельзя выбирать с удаленной машины;
 их нельзя

сохранять в кластерах;
В Oracle большие двоичные объекты (BLOB, CLOB и NCLOB) имеют следующие ограничения: их нельзя выбирать с удаленной

Слайд 94 они не могут быть компонентом предложений ORDER BY и

GROUP BY в запросе;
 их нельзя использовать в агрегатных функциях

запроса;
 на них нельзя ссылаться в запросах при помощи инструкций DISTINCT и UNIQUE или в соединениях;
 они не могут быть частью первичного ключа или ключа индекса;
 их нельзя использовать в предложении UPDATE ОF триггера UPDATE.

Числовые

Используются для хранения нулевых, положительных и отрицательных чисел с фиксированной и плавающей запятой (точкой). Из всех, перечисленных в табл. типов на практике можно использовать только один — NUMBER(p, s). Остальные типы числовых данных существуют в стандарте и сохранены для поддержания ранее созданных программ.

 они не могут быть компонентом предложений ORDER BY и GROUP BY в запросе; их нельзя использовать

Слайд 96Дата/время
В Oracle тип DATE хранит дату и время, т. е.

заменяет стандартные типы DATE и TIMESTAMP, хотя и сохранил форматы

стандарта. Для получения всех необходимых видов дата/время в Oracle используются функции TO_CHAR и (или) TO_DATE и соответствующий формат даты.
Дата/времяВ Oracle тип DATE хранит дату и время, т. е. заменяет стандартные типы DATE и TIMESTAMP, хотя

Слайд 98Связь с данными
Для связи с данными в Oracle используется тип

BFILE (в SQL:2003 DATALINK), который содержит указатель на объект типа

BLOB, хранимый вне пределов базы данных, но находящийся на локальном сервере и имеющий размер до 4 Гбайт. База данных осуществляет потоковый доступ по чтению (но не по записи) к этому внешнему объекту. Если вы удалите строку, содержащую значение типа BFILE, будет удален только указатель (исходная структура файлов не затрагивается).

Интервальные

Используются для описания промежутков времени между двумя временными отсчетами, задаваемыми типом "Дата/время”

Связь с даннымиДля связи с данными в Oracle используется тип BFILE (в SQL:2003 DATALINK), который содержит указатель

Слайд 100XML
Для хранения в базе Oracle данных формата XML используется XMLTYPE

(в SQL:2003 XML). Доступ к данным XML осуществляется с помощью

выражений XPath, а также нескольких встроенных XPath-функций, функций SQL и пакетов PL/SQL. Тип XMLTYPE определяется системой, поэтому его можно применять в качестве аргумента функций, а также типа данных для столбца
в таблице или представлении. При использовании этого типа в таблице данные можно сохранить в форме CLOB или связанного объекта.

Данные, специфичные для СУБД Oracle

В Oracle есть специфичные данные, отсутствующие в стандарте SQL:2003, описание которых приведено в таблице.

XMLДля хранения в базе Oracle данных формата XML используется XMLTYPE (в SQL:2003 XML). Доступ к данным XML

Слайд 101Функции SQL
Функции могут быть использованы везде, где используются переменные, столбцы

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

агрегатные, функции работы с датами (дата и время) и т. п. ).
Функции SQLФункции могут быть использованы везде, где используются переменные, столбцы или выражения (соответствующего типа). Их обычно подразделяют

Слайд 102В описаниях функций используются следующие параметры:
 char, char1, char2,... —

константы в апострофах или выражения типа CHAR;
 d, d1, d2,...

— константы в апострофах или выражения типа DATE;
 expr, expr1, expr2,... — любые выражения;
 fmt — формат данных;
 k, m, n — числовые константы или выражения типа NUMBER;
 nls — выражение вида 'NLS_SORT = name';
 raw — исходные данные;
 rowid — внутренний уникальный идентификатор строки;
 set, set1, set2 — наборы символов;
 z1, z2 — часовые пояса
В описаниях функций используются следующие параметры: char, char1, char2,... — константы в апострофах или выражения типа CHAR;

Слайд 103Числовые функции

Числовые функции

Слайд 105Символьные функции

Символьные функции

Слайд 109Даты и время

Даты и время

Слайд 115Преобразование данных

Преобразование данных

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика