Презентация - Банки данных. Базы данных. Модели данных. СУБД

Смотреть слайды в полном размере
Презентация Банки данных. Базы данных. Модели данных. СУБД


Вашему вниманию предлагается презентация на тему «Банки данных. Базы данных. Модели данных. СУБД», с которой можно предварительно ознакомиться, просмотреть текст и слайды к ней, а так же, в случае, если она вам подходит - скачать файл для редактирования или печати.

Презентация содержит 156 слайдов и доступна для скачивания в формате ppt. Размер скачиваемого файла: 2.86 MB

Просмотреть и скачать

Pic.1
Банки и базы данных. Модели данных. Системы управления базами данных к. т. н. доцент Зубарев И. В. К
Банки и базы данных. Модели данных. Системы управления базами данных к. т. н. доцент Зубарев И. В. Кафедра электропривода, автоматики и управления в технических системах (ЭАУТС)
Pic.2
Введение Исторически сложившееся развитие вычислительных систем обусловило необходимость хранения в
Введение Исторически сложившееся развитие вычислительных систем обусловило необходимость хранения в электронном (машиночитаемом) виде все большего количества информации. По мере развития систем баз данных, менялись принципы организации данных в них: первоначально данные представлялись на основе иерархической, а в последствии сетевой модели. В конце 1970-х – начале 1980-х годов начали появляться первые реляционные продукты.
Pic.3
Система баз данных
Система баз данных
Pic.4
Файловые системы Историческим шагом явился переход к использованию централизованных систем управлени
Файловые системы Историческим шагом явился переход к использованию централизованных систем управления файлами. С точки зрения прикладной программы файл - это именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные.
Pic.5
Структуры файлов При разметке магнитного диска каждая дорожка размечается на одно и то же количество
Структуры файлов При разметке магнитного диска каждая дорожка размечается на одно и то же количество блоков таким образом, что в каждый блок можно записать по максимуму одно и то же число байтов. Для произведения обмена с магнитным диском на уровне аппаратуры нужно указать номер цилиндра, номер поверхности, номер блока на соответствующей дорожке и число байтов, которое нужно записать или прочитать от начала этого блока.
Pic.6
Именование файлов Все современные файловые системы поддерживают многоуровневое именование файлов за
Именование файлов Все современные файловые системы поддерживают многоуровневое именование файлов за счет поддержания во внешней памяти дополнительных файлов со специальной структурой - каталогов. Полное имя файла состоит из списка имен каталогов плюс имя файла в каталоге, непосредственно содержащем данный файл.
Pic.7
Понятие БД и СУБД Система баз данных – это компьютеризированная система основная задача которой – хр
Понятие БД и СУБД Система баз данных – это компьютеризированная система основная задача которой – хранение информации и предоставление доступа к ней по требованию.
Pic.8
Система баз данных Система баз данных включает в себя: данные, непосредственно сохраняемые в базе да
Система баз данных Система баз данных включает в себя: данные, непосредственно сохраняемые в базе данных; аппаратное обеспечение; программное обеспечение; пользователей: прикладные программисты; конечные пользователи; администраторы баз данных.
Pic.9
Понятие СУБД СУБД – это специализированное программное обеспечение, предоставляющее пользователю баз
Понятие СУБД СУБД – это специализированное программное обеспечение, предоставляющее пользователю базы данных возможность работать с ней, не вникая в детали хранения информации на уровне программного обеспечения.
Pic.10
Уровни абстракции в СУБД. Функции абстрактных данных Существует 3 уровня архитектуры СУБД : Внутренн
Уровни абстракции в СУБД. Функции абстрактных данных Существует 3 уровня архитектуры СУБД : Внутренний уровень - наиболее близкий к физическому хранению. Внешний уровень - наиболее близкий к пользователям. Концептуальный уровень - является промежуточным между двумя первыми.
Pic.11
Функции СУБД Определение данных. Обработка данных. Безопасность и целостность данных. Восстановление
Функции СУБД Определение данных. Обработка данных. Безопасность и целостность данных. Восстановление данных и дублирование. Словарь данных. Производительность. СУБД должна выполнять свои функции с максимальной производительностью.
Pic.12
Экспертные системы и базы знаний Экспертная система – система искусственного интеллекта, включающая
Экспертные системы и базы знаний Экспертная система – система искусственного интеллекта, включающая знания об определенной слабо структурированной и трудно формализуемой узкой предметной области и способная предлагать и объяснять пользователю разумные решения.
Pic.13
Экспертные системы и базы знаний База знаний – семантическая модель, описывающая предметную область
Экспертные системы и базы знаний База знаний – семантическая модель, описывающая предметную область и позволяющая отвечать на такие вопросы из этой предметной области, ответы на которые в явном виде не присутствуют в базе. База знаний является основным компонентом интеллектуальных и экспертных систем. Для хранения баз знаний в современных экспертных системах используются либо промышленные СУБД и специализированное промежуточное ПО, либо специализированное ПО.
Pic.14
Классификация баз данных
Классификация баз данных
Pic.15
1) Классификация БД по модели представления данных: иерархическая БД – база данных, в которой связь
1) Классификация БД по модели представления данных: иерархическая БД – база данных, в которой связь между элементами осуществляется по типу подчинения и схематично изображается в виде дерева. Иерархия начинается с корневого узла. Каждый узел имеет только одного «предка» и N «потомков». (+) простота и однозначность представления, легкость адресации (–) существенная зависимость от программно-аппаратных средств Пример: дерево папок Windows, каталог товаров Интернет
Pic.16
1) Классификация БД по модели представления данных: сетевая БД, возможно существование любых взаимос
1) Классификация БД по модели представления данных: сетевая БД, возможно существование любых взаимосвязей между объектами. Если изобразить эту модель графически, то получится набор узлов на плоскости, связанных линиями со стрелками. (+) теоретически возможны сколь угодно сложные связи между объектами; (–) сложность реализации, существенная зависимость от программно-аппаратных средств Пример: служба WWW – документы, произвольно связанные ссылками.
Pic.17
1) Классификация БД по модели представления данных: реляционная БД, представление данных в виде сист
1) Классификация БД по модели представления данных: реляционная БД, представление данных в виде системы взаимосвязанных таблиц. Каждый объект системы описывается в виде таблицы с набором свойств (атрибутов), а взаимосвязь между объектами – связями между таблицами. (+) простота; относительная независимость от программных и аппаратных средств; (–) существенная зависимость скорости обработки от объема БД Использование: все существующие СУБД
Pic.18
1) Классификация БД по модели представления данных: объектно-ориентированная БД - БД в которой, данн
1) Классификация БД по модели представления данных: объектно-ориентированная БД - БД в которой, данные представлены в виде абстрактных объектов, наделённых свойствами, в виде неструктурированных данных, и использующие методы взаимодействия с другими объектами окружающего мира.
Pic.19
2) Классификация БД по организации хранения данных и обращения к ним : локальные (персональные) - БД
2) Классификация БД по организации хранения данных и обращения к ним : локальные (персональные) - БД и СУБД находятся на одном компьютере и не может работать по сети; сетевые (интегрированные) - БД и СУБД находится на сервере сети, а приложение на компьютере пользователя посылает запрос и получает результат; распределенные базы данных – БД находятся на множестве компьютеров в сети, а СУБД осуществляет контроль над ними, а приложение на компьютере пользователя посылает запрос к СУБД и получает результат.
Pic.20
3) Классификация БД по типу хранимой информации: документальные, фактографические, лексикографически
3) Классификация БД по типу хранимой информации: документальные, фактографические, лексикографические. Среди документальных БД различают библиографические, реферативные и полнотекстовые. К лексикографическим БД относятся различные словари (классификаторы, многоязычные словари, словари основ слов и т. п. ).
Pic.21
Свойства БД Избыточность информации - превышение количества информации, используемой для передачи ил
Свойства БД Избыточность информации - превышение количества информации, используемой для передачи или хранения сообщения, над его информационной энтропией (полезность). Логическая независимость данных - общая логическая структура данных может быть изменена без изменения прикладных программ. Физическая независимость данных - физическое расположение и организация данных могут изменяться, не вызывая при этом изменений ни общей логической структуры данных, ни прикладных программ.
Pic.22
Компоненты СУБД Система управления базами данных (СУБД) – это комплекс языковых и программных средст
Компоненты СУБД Система управления базами данных (СУБД) – это комплекс языковых и программных средств, предназначенный для создания, ведения и совместного использования БД многими пользователями. Место хранения данных и метаданные Менеджер памяти Менеджер транзакций
Pic.23
Логическое и физическое описание данных Американским комитетом по стандартизации ANSI (American Nati
Логическое и физическое описание данных Американским комитетом по стандартизации ANSI (American National Standards Institute) предложена трехуровневая система организации БД. Уровень внешних моделей. Концептуальный уровень. Физический уровень.
Pic.24
Компоненты банка данных
Компоненты банка данных
Pic.25
Требования, предъявляемые к инфологической модели Основным требованием к инфологической модели, выте
Требования, предъявляемые к инфологической модели Основным требованием к инфологической модели, вытекающим из ее назначения, является требование адекватного отображения предметной области. ИЛМ должна быть непротиворечивой.
Pic.26
Компоненты инфологической модели
Компоненты инфологической модели
Pic.27
ПОСТРОЕНИЕ МОДЕЛИ “ОБЪЕКТ — СВОЙСТВО — ОТНОШЕНИЕ” Классом объектов называют совокупность объектов, о
ПОСТРОЕНИЕ МОДЕЛИ “ОБЪЕКТ — СВОЙСТВО — ОТНОШЕНИЕ” Классом объектов называют совокупность объектов, обладающих одинаковым набором свойств. При отражении в информационной системе каждый объект представляется своим идентификатором, который отличает один объект класса от другого Каждый объект обладает определенным набором свойств. Для объектов одного класса набор этих свойств одинаков, а их значения, естественно, могут различаться.
Pic.28
Связи «объект - свойство»
Связи «объект - свойство»
Pic.29
Модель сущность-связь Сущность - это реальный или представляемый объект, информация о котором должна
Модель сущность-связь Сущность - это реальный или представляемый объект, информация о котором должна сохраняться и быть доступна. В диаграммах ER-модели сущность представляется в виде прямоугольника, содержащего имя сущности. При этом имя сущности - это имя типа, а не некоторого конкретного экземпляра этого типа. Для большей выразительности и лучшего понимания имя сущности может сопровождаться примерами конкретных объектов этого типа.
Pic.30
Модель сущность-связь Связь - это графически изображаемая ассоциация, устанавливаемая между двумя су
Модель сущность-связь Связь - это графически изображаемая ассоциация, устанавливаемая между двумя сущностями. Эта ассоциация всегда является бинарной и может существовать между двумя разными сущностями или между сущностью и ей же самой (рекурсивная связь). В любой связи выделяются два конца (в соответствии с существующей парой связываемых сущностей), на каждом из которых указывается имя конца связи, степень конца связи (сколько экземпляров данной сущности связывается), обязательность связи (т. е. любой ли экземпляр данной сущности должен участвовать в данной связи).
Pic.31
Три типа бинарных связей
Три типа бинарных связей
Pic.32
Более сложные элементы модели сущность-связь Подтипы и супертипы сущностей. Как в языках программиро
Более сложные элементы модели сущность-связь Подтипы и супертипы сущностей. Как в языках программирования с развитыми типовыми системами (например, в языках объектно-ориентированного программирования), вводится возможность наследования типа сущности, исходя из одного или нескольких супертипов. Интересные нюансы связаны с необходимостью графического изображения этого механизма. Связи "many-to-many". Иногда бывает необходимо связывать сущности таким образом, что с обоих концов связи могут присутствовать несколько экземпляров сущности (например, все члены кооператива сообща владеют имуществом кооператива). Для этого вводится разновидность связи "многие-со-многими". Уточняемые степени связи. Иногда бывает полезно определить возможное количество экземпляров сущности, участвующих в данной связи (например, служащему разрешается участвовать не более, чем в трех проектах одновременно). Для выражения этого семантического ограничения разрешается указывать на конце связи ее максимальную или обязательную степень.
Pic.33
Более сложные элементы модели сущность-связь Каскадные удаления экземпляров сущностей. Некоторые свя
Более сложные элементы модели сущность-связь Каскадные удаления экземпляров сущностей. Некоторые связи бывают настолько сильными (конечно, в случае связи "один-ко-многим"), что при удалении опорного экземпляра сущности (соответствующего концу связи "один") нужно удалить и все экземпляры сущности, соответствующие концу связи "многие". Соответствующее требование "каскадного удаления" можно сформулировать при определении сущности. Домены. Как и в случае реляционной модели данных бывает полезна возможность определения потенциально допустимого множества значений атрибута сущности (домена).
Pic.34
Диаграммы сущность-связь
Диаграммы сущность-связь
Pic.35
Общие характеристики ранних систем 5. После появления реляционных систем большинство ранних систем б
Общие характеристики ранних систем 5. После появления реляционных систем большинство ранних систем было оснащено "реляционными" интерфейсами. Однако в большинстве случаев это не сделало их по‑настоящему реляционными системами, поскольку оставалась возможность манипулировать данными в естественном для них режиме.
Pic.36
Системы, основанные на инвертированных списках К числу наиболее известных и типичных представителей
Системы, основанные на инвертированных списках К числу наиболее известных и типичных представителей таких систем относятся Datacom/DB компании Applied Data Research, Inc. (ADR), ориентированная на использование на машинах основного класса фирмы IBM, и Adabas компании Software AG. Организация доступа к данным на основе инвертированных списков используется практически во всех современных реляционных СУБД, но в этих системах пользователи не имеют непосредственного доступа к инвертированным спискам (индексам).
Pic.37
Структуры данных на инвертированных списках В базе данных, организованной с помощью инвертированных
Структуры данных на инвертированных списках В базе данных, организованной с помощью инвертированных списков хранимые таблицы и пути доступа к ним видны пользователям. При этом: Строки таблиц упорядочены системой в некоторой физической последовательности. Физическая упорядоченность строк всех таблиц может определяться и для всей БД (так делается, например, в Datacom/DB). Для каждой таблицы можно определить произвольное число ключей поиска, для которых строятся индексы. Эти индексы автоматически поддерживаются системой, но явно видны пользователям.
Pic.38
Манипулирование данными на инвертированных списках Поддерживаются два класса операторов: Операторы,
Манипулирование данными на инвертированных списках Поддерживаются два класса операторов: Операторы, устанавливающие адрес записи, среди которых: прямые поисковые операторы (например, найти первую запись таблицы по некоторому пути доступа); операторы, находящие запись в терминах относительной позиции от предыдущей записи по некоторому пути доступа. Операторы над адресуемыми записями
Pic.39
Иерархическая модель Типичным представителем (наиболее известным и распространенным) является Inform
Иерархическая модель Типичным представителем (наиболее известным и распространенным) является Information Management System (IMS) фирмы IBM. Первая версия появилась в 1968 г. До сих пор поддерживается много баз данных, что создает существенные проблемы с переходом как на новую технологию БД, так и на новую технику.
Pic.40
Иерархические структуры данных Иерархическая БД состоит из упорядоченного набора деревьев; более точ
Иерархические структуры данных Иерархическая БД состоит из упорядоченного набора деревьев; более точно, из упорядоченного набора нескольких экземпляров одного типа дерева.
Pic.41
Ограничения целостности в иерархической модели Автоматически поддерживается целостность ссылок между
Ограничения целостности в иерархической модели Автоматически поддерживается целостность ссылок между предками и потомками. Основное правило: никакой потомок не может существовать без своего родителя. Заметим, что аналогичное поддержание целостности по ссылкам между записями, не входящими в одну иерархию, не поддерживается
Pic.42
Сетевая модель Типичным представителем является Integrated Database Management System (IDMS) компани
Сетевая модель Типичным представителем является Integrated Database Management System (IDMS) компании Cullinet Software, Inc. , предназначенная для использования на машинах основного класса фирмы IBM под управлением большинства операционных систем. Архитектура системы основана на предложениях Data Base Task Group (DBTG) Комитета по языкам программирования Conference on Data Systems Languages (CODASYL), организации, ответственной за определение языка программирования Кобол. Отчет DBTG был опубликован в 1971г. , а в 70-х годах появилось несколько систем, среди которых IDMS.
Pic.43
Сетевые структуры данных Сетевой подход к организации данных является расширением иерархического. В
Сетевые структуры данных Сетевой подход к организации данных является расширением иерархического. В иерархических структурах запись-потомок должна иметь в точности одного предка; в сетевой структуре данных потомок может иметь любое число предков.
Pic.44
Основные достоинства и недостатки ранних СУБД Сильные места ранних СУБД: Развитые средства управлени
Основные достоинства и недостатки ранних СУБД Сильные места ранних СУБД: Развитые средства управления данными во внешней памяти на низком уровне; Возможность построения вручную эффективных прикладных систем; Возможность экономии памяти за счет разделения подобъектов (в сетевых системах). Недостатки: Слишком сложно пользоваться; Фактически необходимы знания о физической организации; Прикладные системы зависят от этой организации; Их логика перегружена деталями организации доступа к БД.
Pic.45
История реляционной модели Теоретической основой этой модели стала теория отношений, основу которой
История реляционной модели Теоретической основой этой модели стала теория отношений, основу которой заложили два логика — американец Чарльз Содерс Пирс (1839-1914) и немец Эрнст Шредер (1841-1902). Эдгар Кодд предложил использовать для обработки данных аппарат теории множеств (объединение, пересечение, разность, декартово произведение). Он показал, что любое представление данных сводится к совокупности двумерных таблиц особого вида, известного в математике как отношение – relation.
Pic.46
Недостатки реляционной модели присущая этим системам некоторая ограниченность (прямое следствие прос
Недостатки реляционной модели присущая этим системам некоторая ограниченность (прямое следствие простоты) при использовании в так называемых нетрадиционных областях (наиболее распространенными примерами являются системы автоматизации проектирования), в которых требуются предельно сложные структуры данных. невозможность адекватного отражения семантики предметной области. Другими словами, возможности представления знаний о семантической специфике предметной области в реляционных системах очень ограничены. Современные исследования в области постреляционных систем главным образом посвящены именно устранению этих недостатков.
Pic.47
Основные определения Доменом называется множество атомарных значений одного и того же типа. Вхождени
Основные определения Доменом называется множество атомарных значений одного и того же типа. Вхождение домена в отношение принято называть атрибутом. Схема отношения - это именованное множество пар {имя атрибута, имя домена (или типа, если понятие домена не поддерживается)} Кортеж, соответствующий данной схеме отношения, - это множество пар {имя атрибута, значение}, которое содержит одно вхождение каждого имени атрибута, принадлежащего схеме отношения.
Pic.48
Основные определения Отношение - это множество кортежей, соответствующих одной схеме отношения. Иног
Основные определения Отношение - это множество кортежей, соответствующих одной схеме отношения. Иногда, чтобы не путаться, говорят "отношение-схема" и "отношение-экземпляр", иногда схему отношения называют заголовком отношения, а отношение как набор кортежей - телом отношения. Ключ (key) — это группа из одного или более атрибутов, которая уникальным образом идентифицирует строку.
Pic.49
Эквиваленты использующиеся в теории реляционных БД Отношение – Таблица (иногда Файл), Кортеж – Строк
Эквиваленты использующиеся в теории реляционных БД Отношение – Таблица (иногда Файл), Кортеж – Строка (иногда Запись), Атрибут – Столбец, Поле. Реляционная база данных – это совокупность отношений, содержащих всю информацию, которая должна храниться в БД. Однако пользователи могут воспринимать такую базу данных как совокупность таблиц.
Pic.50
Ограничения Во-первых, значения в ячейках таблицы должны быть одиночными — ни повторяющиеся группы,
Ограничения Во-первых, значения в ячейках таблицы должны быть одиночными — ни повторяющиеся группы, ни массивы не допускаются Строки имеют фиксированное число полей (столбцов) и значений (множественные поля и повторяющиеся группы недопустимы). Иначе говоря, в каждой позиции таблицы на пересечении строки и столбца всегда имеется в точности одно значение или ничего. Строки таблицы обязательно отличаются друг от друга хотя бы единственным значением, что позволяет однозначно идентифицировать любую строку такой таблицы.
Pic.51
Ограничения Все записи в столбце должны быть одного типа Например, если третий столбец первой строки
Ограничения Все записи в столбце должны быть одного типа Например, если третий столбец первой строки таблицы содержит номер сотрудника, то и во всех остальных строках таблицы третий столбец также должен содержать номер сотрудника. Каждый столбец имеет уникальное имя; порядок столбцов в таблице несуществен. Наконец, в отношении не может быть двух одинаковых строк, и порядок строк не имеет значения. Полное информационное содержание базы данных представляется в виде явных значений данных и такой метод представления является единственным. При выполнении операций с таблицей ее строки и столбцы можно обрабатывать в любом порядке безотносительно к их информационному содержанию.
Pic.52
Языки манипулирования данными Созданы языки манипулирования данными, позволяющие реализовать все опе
Языки манипулирования данными Созданы языки манипулирования данными, позволяющие реализовать все операции реляционной алгебры и практически любые их сочетания. Среди них наиболее распространены SQL (Structured Query Language – структуризованный язык запросов) и QBE (Quere-By-Example – запросы по образцу) [3, 5]. Оба относятся к языкам очень высокого уровня, с помощью которых пользователь указывает, какие данные необходимо получить, не уточняя процедуру их получения. С помощью единственного запроса на любом из этих языков можно соединить несколько таблиц во временную таблицу и вырезать из нее требуемые строки и столбцы (селекция и проекция).
Pic.53
Получение реляционной схемы из ER-схемы Шаг 1. Каждая простая сущность превращается в таблицу. Прост
Получение реляционной схемы из ER-схемы Шаг 1. Каждая простая сущность превращается в таблицу. Простая сущность - сущность, не являющаяся подтипом и не имеющая подтипов. Имя сущности становится именем таблицы. Шаг 2. Каждый атрибут становится возможным столбцом с тем же именем; может выбираться более точный формат. Столбцы, соответствующие необязательным атрибутам, могут содержать неопределенные значения; столбцы, соответствующие обязательным атрибутам, - не могут. Шаг 3. Компоненты уникального идентификатора сущности превращаются в первичный ключ таблицы. Если имеется несколько возможных уникальных идентификатора, выбирается наиболее используемый. Если в состав уникального идентификатора входят связи, к числу столбцов первичного ключа добавляется копия уникального идентификатора сущности, находящейся на дальнем конце связи (этот процесс может продолжаться рекурсивно). Для именования этих столбцов используются имена концов связей и/или имена сущностей.
Pic.54
Получение реляционной схемы из ER-схемы Шаг 4. Связи многие-к-одному (и один-к-одному) становятся вн
Получение реляционной схемы из ER-схемы Шаг 4. Связи многие-к-одному (и один-к-одному) становятся внешними ключами. Т. е. делается копия уникального идентификатора с конца связи "один", и соответствующие столбцы составляют внешний ключ. Необязательные связи соответствуют столбцам, допускающим неопределенные значения; обязательные связи - столбцам, не допускающим неопределенные значения. Шаг 5. Индексы создаются для первичного ключа (уникальный индекс), внешних ключей и тех атрибутов, на которых предполагается в основном базировать запросы. Шаг 6. Если в концептуальной схеме присутствовали подтипы, то возможны два способа: все подтипы в одной таблице (а) для каждого подтипа - отдельная таблица (б) Шаг 7. Имеется два способа работы при наличии исключающих связей: общий домен (а) явные внешние ключи (б)
Pic.55
Реляционная алгебра Реляционная алгебра в том виде, в котором она была определена Эдгаром Коддом, со
Реляционная алгебра Реляционная алгебра в том виде, в котором она была определена Эдгаром Коддом, состоит из восьми операторов, составляющих две группы по четыре оператора. Традиционные операции над множествами: объединение, пересечение, разность и декартово произведение (все они модифицированы с учетом того, что их операндами являются отношения, а не произвольные множества). Специальные реляционные операции: выборка, проекция, соединение и деление.
Pic.56
Традиционные операции Объединение (union)- возвращает отношение, содержащее все кортежи, которые при
Традиционные операции Объединение (union)- возвращает отношение, содержащее все кортежи, которые принадлежат либо одному из двух заданных отношений, либо им обоим Пересечение (intersect) - возвращает отношение, содержащее все кортежи, которые принадлежат одновременно двум заданным отношениям Разность (minus) - возвращает отношение, содержащее все кортежи, которые принадлежат первому из двух заданных отношений и не принадлежат второму Произведение (times)- возвращает отношение, содержащее все возможные кортежи, которые являются сочетанием двух кортежей, принадлежащих соответственно двум заданным отношениям
Pic.57
Специальные операции Выборка - возвращает отношение, содержащее все кортежи из заданного отношения,
Специальные операции Выборка - возвращает отношение, содержащее все кортежи из заданного отношения, которые удовлетворяют указанным условиям. Операцию выборки также иногда называют операцией ограничения, поэтому далее в этой книге будет также употребляться термин ограничение, если подразумевается данная алгебраическая операция Проекция - Возвращает отношение, содержащее все кортежи (подкортежи) заданного отношения, которые остались в этом отношении после исключения из него некоторых атрибутов
Pic.58
Специальные операции Соединение - возвращает отношение, содержащее все возможные кортежи, которые пр
Специальные операции Соединение - возвращает отношение, содержащее все возможные кортежи, которые представляют собой комбинацию атрибутов двух кортежей, принадлежащих двум заданным отношениям, при условии, что в этих двух комбинируемых кортежах присутствуют одинаковые значения в одном или нескольких общих для исходных отношений атрибутах (причем эти общие значения в результирующем кортеже появляются один раз, а не дважды) Произведение - Возвращает отношение, содержащее все возможные кортежи, которые являются сочетанием двух кортежей, принадлежащих соответственно двум заданным отношениям
Pic.59
Свойства операций реляционной алгебры Пусть А, В и С – произвольные реляционные выражения (дающие со
Свойства операций реляционной алгебры Пусть А, В и С – произвольные реляционные выражения (дающие совместимые по типу отношения). Тогда для операции объединения: (A UNION В) UNION С ≡ А UNION (В UNION С) (свойство ассоциативности) А UNION B ≡ В UNION A (свойство коммутативности). Аналогично свойства ассоциативности и коммутативности определяются для операций пересечения и соединения.
Pic.60
Реляционное исчисление Реляционное исчисление является прикладной ветвью формального механизма исчис
Реляционное исчисление Реляционное исчисление является прикладной ветвью формального механизма исчисления предикатов первого порядка. Базисными понятиями исчисления являются понятие переменной с определенной для нее областью допустимых значений и понятие правильно построенной формулы, опирающейся на переменные, предикаты и кванторы.
Pic.61
Разница между реляционной алгеброй и реляционным исчислением Реляционная алгебра в явном виде предос
Разница между реляционной алгеброй и реляционным исчислением Реляционная алгебра в явном виде предоставляет набор операций (соединение, объединение, проекция и т. д. ), которые можно использовать, чтобы сообщить системе, как в базе данных из опреде­ленных отношений построить некоторое требуемое отношение, а реляционное исчисление просто представляет систему обозначений для определения требуемого отношения в терминах данных отношений. Например, рассмотрим запрос "Выбрать номера поставщиков и названия городов, в которых находятся поставщики детали с номером 'Р2".
Pic.62
Алгебраическая версия этого запроса Сначала выполнить соединение отношения поставщиков S и отношения
Алгебраическая версия этого запроса Сначала выполнить соединение отношения поставщиков S и отношения поставок SP по атрибуту S#. Далее выбрать из результата этого соединения кортежи с номером детали 'Р2'. И наконец выполнить для результата этой выборки операцию проекции по атрибутам S# и CITY.
Pic.63
Этот же запрос в терминах реляционного исчисления Получить атрибуты Si и CITY для таких поставщиков,
Этот же запрос в терминах реляционного исчисления Получить атрибуты Si и CITY для таких поставщиков, для которых в отношении SP существует запись о поставке с тем же значением атрибута S# и со значением атрибута Р#, равным 'Р2'.
Pic.64
Вывод На самом деле реляционная алгебра и реляционное исчисление логически эквивалентны. Каждому выр
Вывод На самом деле реляционная алгебра и реляционное исчисление логически эквивалентны. Каждому выражению в алгебре соответствует эквивалентное выражение в исчислении, и точно так каждому выражению в исчислении соответствует эквивалентное выражение в алгебре. Это означает, что между ними существует взаимнооднозначное соответствие, а различия связаны лишь с разными стилями выражения: исчисление ближе к естественному языку, а алгебра — к языку программирования.
Pic.65
Зачем нужна нормализация Обратимся к схеме отношения ПОСТАВЩИКИ (НАЗВ_ПОСТ, АДРЕС_ПОСТ, ТОВАР, ЦЕНА)
Зачем нужна нормализация Обратимся к схеме отношения ПОСТАВЩИКИ (НАЗВ_ПОСТ, АДРЕС_ПОСТ, ТОВАР, ЦЕНА) В связи с этой схемой возникает несколько проблем:
Pic.66
Нормальные формы Отношения можно классифицировать по типам аномалий модификации, которым они подверж
Нормальные формы Отношения можно классифицировать по типам аномалий модификации, которым они подвержены. Кто-то находил аномалию, классифицировал ее и думал, как предотвратить ее возникновение. Каждый раз, когда это происходило, критерии построения отношений совершенствовались. В своей работе, последовавшей за эпохальной статьей 1970 г. , Кодд и другие определили первую, вторую и третью нормальные формы (1НФ, 2НФ и ЗНФ). Позднее была введена нормальная форма Бойса-Кодда (НФБК), а затем были определены четвертая и пятая нормальные формы.
Pic.67
Нормальные формы Основные свойства нормальных форм: каждая следующая нормальная форма в некотором см
Нормальные формы Основные свойства нормальных форм: каждая следующая нормальная форма в некотором смысле лучше предыдущей; при переходе к следующей нормальной форме свойства предыдущих нормальных свойств сохраняются. В основе процесса проектирования лежит метод нормализации, декомпозиция отношения, находящегося в предыдущей нормальной форме, в два или более отношения, удовлетворяющих требованиям следующей нормальной формы.
Pic.68
Определение нормализации Нормализация — это процесс преобразования отношения, имеющего некоторые нед
Определение нормализации Нормализация — это процесс преобразования отношения, имеющего некоторые недостатки, в отношение, которое этих недостатков не имеет. Что еще более важно, нормализацию можно использовать как критерий для определения желательности и правильности отношений. Наиболее важные на практике нормальные формы отношений основываются на фундаментальном в теории реляционных баз данных понятии функциональной зависимости.
Pic.69
Функциональная зависимость Функциональная зависимость (functional dependency) — это связь между атри
Функциональная зависимость Функциональная зависимость (functional dependency) — это связь между атрибутами. Говоря более общим языком, атрибут Y функционально зависит от атрибута X, если значение X определяет значение Y. Стоимость = Цена х Количество Функциональные зависимости обозначаются следующим образом: НомерСтудента > Специальность СерийныйНомерКомпьютера > ОбъемПамяти Атрибуты по правую сторону от стрелки называются детерминантами (determinants)
Pic.70
1-я нормальная форма О любой таблице данных, удовлетворяющей определению отношения, говорят, что она
1-я нормальная форма О любой таблице данных, удовлетворяющей определению отношения, говорят, что она находится в первой нормальной форме (first normal form, 1NF): Ячейки таблицы должны содержать одиночные значения и в качестве значений не допускаются ни повторяющиеся группы, ни массивы. Все записи в одном столбце (атрибуте) должны иметь один и тот же тип. Каждый столбец должен иметь уникальное имя, но порядок следования столбцов в таблице несуществен. В таблице не может быть двух одинаковых строк, и порядок следования строк несуществен.
Pic.71
2-я нормальная форма Отношение находится во второй нормальной форме, если все его неключевые атрибут
2-я нормальная форма Отношение находится во второй нормальной форме, если все его неключевые атрибуты зависят от всего ключа. В соответствии с этим определением, если отношение имеет в качестве ключа одиночный атрибут, то оно автоматически находится во второй нормальной форме. Поскольку ключ является одиночным атрибутом, то по умолчанию каждый неключевой атрибут зависит от всего ключа, и частичных зависимостей быть не может. Таким образом, вторая нормальная форма представляет интерес только для тех отношений, которые имеют композитные ключи.
Pic.72
3-я нормальная форма Отношение находится в третьей нормальной форме, если оно находится во второй но
3-я нормальная форма Отношение находится в третьей нормальной форме, если оно находится во второй нормальной форме и не имеет транзитивных зависимостей.
Pic.73
Нормальная форма Бойса-Кодда Отношение находится в НФБК, если каждый детерминант является ключом-кан
Нормальная форма Бойса-Кодда Отношение находится в НФБК, если каждый детерминант является ключом-кандидатом
Pic.74
4-я нормальная форма Отношение находится в четвертой нормальной форме, если оно находится в НФБК и н
4-я нормальная форма Отношение находится в четвертой нормальной форме, если оно находится в НФБК и не имеет много. тачных зависимостей.
Pic.75
5-я нормальная форма Пятая нормальная форма (fifth normal form, 5NF) связана с зависимостями, которы
5-я нормальная форма Пятая нормальная форма (fifth normal form, 5NF) связана с зависимостями, которые имеют несколько неопределенный характер. Речь здесь идет об отношениях, которые можно разделить на несколько более мелких отношений, как мы это делали выше, но затем невозможно восстановить. Условия, при которых возникает эта ситуация, не имеют ясной, интуитивной интерпретации. Нам неизвестно, каковы следствия таких зависимостей; мы не знаем даже, есть ли у них какие-либо практические следствия.
Pic.76
Доменно-ключевая нормальная форма В 1981 г. Фагин опубликовал важную статью, в которой он определил
Доменно-ключевая нормальная форма В 1981 г. Фагин опубликовал важную статью, в которой он определил доменно-ключевую нормальную форму (domain/key normal form, DKNFI. Он показал, что отношение в ДКНФ не имеет аномалий модификации и, более того, любое отношение, не имеющее аномалий модификации, должно находиться в ДКНФ. Это открытие положило конец введению нормальных форм, и теперь в нормальных формах более высокого порядка нет необходимости* — по крайней мере, для устранения аномалий модификации.
Pic.77
История SQL Разработка, в основном, шла в отделениях фирмы IBM (языки ISBL, SQL, QBE) и университета
История SQL Разработка, в основном, шла в отделениях фирмы IBM (языки ISBL, SQL, QBE) и университетах США (PIQUE, QUEL). Последний создавался для СУБД INGRES (Interactive Graphics and Retrieval System), которая была разработана в начале 70-х годов в Университете шт. Калифорния и сегодня входит в пятерку лучших профессиональных СУБД. Сегодня из всех этих языков полностью сохранились и развиваются QBE (Query-By-Example - запрос по образцу) и SQL, а из остальных взяты в расширение внутренних языков СУБД только наиболее интересные конструкции
Pic.78
История SQL В начале 70-х годов плодотворный труд исследователя из IBM доктора Кодда (Е. F. Codd) пр
История SQL В начале 70-х годов плодотворный труд исследователя из IBM доктора Кодда (Е. F. Codd) привел к созданию продукта, связанного с реляционной моделью данных под названием SEQUEL (Structured English Query Language, структурированный английский язык для за­просов), который в 1980 г. был переименован в SQL (Structured Query Language, струк­турированный язык запросов).
Pic.79
Некоторые популярные диалекты SQL: PL/SQL. Используется в Oracle. PL/SQL – это сокращение от Procedu
Некоторые популярные диалекты SQL: PL/SQL. Используется в Oracle. PL/SQL – это сокращение от Procedural Language/SQL. Он во многом похож на язык Ada. Transact-SQL. Используется в Microsoft SQL Server и Sybase Adaptive Server. По мере того как Microsoft и Sybase все больше отходят от общей платформы, которую они исполь­зовали в начале 90-х годов, их реализации Transact-SQL также подвергаются дивергенции.
Pic.80
Достоинства языка SQL: независимость от конкретных СУБД. Если при создании БД не использовались нест
Достоинства языка SQL: независимость от конкретных СУБД. Если при создании БД не использовались нестандартные возможности языка SQL предоставляемые некоторой СУБД, то такую БД можно без изменений перенести на СУБД другого производителя. К сожалению большинство БД используют особенности СУБД, на которой работают, что затрудняет их перенос на другую СУБД без изменений; реляционная основа. Реляционная модель имеет солидный теоретический фундамент. Язык SQL основан на реляционной модели и является единственным языком для реляционных БД;
Pic.81
Синтаксические конструкции SQL делятся на 4 основные категории Идентификаторы. Представляют собой по
Синтаксические конструкции SQL делятся на 4 основные категории Идентификаторы. Представляют собой пользовательские или системные имена объектов баз дан­ных, таких, как база данных, таблица, ограничение в таблице, столбцы таблицы, представления и т. п. Константы. Представляют собой созданные пользователем или системой строки или значе­ния, не являющиеся идентификаторами или ключевыми словами. Константы могут представлять собой строки, например «hello», числа, например «1234», даты, например «1 января 2002», или булевы значения, например TRUE.
Pic.82
Соглашения об именах Выбирайте имя так, чтобы оно было осмысленным, наглядным и соответствовало назн
Соглашения об именах Выбирайте имя так, чтобы оно было осмысленным, наглядным и соответствовало назначению объекта. Используйте в именах один и тот же регистр по всей базе. Будьте последовательны в использовании сокращений. Для удобства восприятия используйте полные, наглядные и осмысленные имена с символами подчеркивания. Не помещайте название компании и продуктов в имена объектов баз данных.
Pic.83
Правила создания идентификаторов Идентификаторы должны быть уникальны в пределах своей области дейст
Правила создания идентификаторов Идентификаторы должны быть уникальны в пределах своей области действия. Таким образом, в иерархии объектов имена баз данных не должны повторяться в пределах данного экземпляра сервера базы, а имена таблиц, представлений, функций, триггеров и хранимых процедур - уникальны в пределах данной схемы. Имена столбцов, ключей и индексов должны быть уникальны в пределах одной таблицы или представления и т. д.
Pic.84
Константы В SQL константами считаются любые числовые значения, строки символов, значения, связанные
Константы В SQL константами считаются любые числовые значения, строки символов, значения, связанные с представлением времени (дата и время), и булевы значения, которые не являются идентификаторами или ключевыми словами. Базы данных на основе SQL разрешают использовать в коде SQL различные константы. Допустимы большинство числовых, символьных и булевых типов данных, а также даты. Например, к числовым типам данных SQL Server можно (среди прочих) отнести типы INTEGER, REAL и MONEY.
Pic.85
Операторы Оператор - это символ, обозначающий действие, выполняемое над одним или несколькими выраже
Операторы Оператор - это символ, обозначающий действие, выполняемое над одним или несколькими выражениями. Операторы наиболее часто используются в инструкциях DELETE, INSERT, SELECT или UPDATE, а также часто применяются при создании объектов базы данных, таких, как хранимые процедуры, функции, триггеры и представления.
Pic.86
Категории операторов: Арифметические операторы. Поддерживаются всеми базами данных. Операторы присва
Категории операторов: Арифметические операторы. Поддерживаются всеми базами данных. Операторы присваивания. Поддерживаются всеми базами данных. Побитовые операторы. Поддерживаются Microsoft SQL Server. Операторы сравнения. Поддерживаются всеми базами данных. Логические операторы. Поддерживаются в DB2, Oracle, SQL Server и PostgreSQL. Унарные операторы. Поддерживаются в DB2, Oracle и SQL Server.
Pic.87
Арифметические операторы Арифметические операторы выполняют математические действия над двумя значен
Арифметические операторы Арифметические операторы выполняют математические действия над двумя значениями любого типа, относящегося к числовой категории.
Pic.88
Оператор присваивания За исключением Oracle, где для этой цели применяется оператор := , оператор пр
Оператор присваивания За исключением Oracle, где для этой цели применяется оператор := , оператор присваивания (=) присваивает значение переменной или псевдониму (alias) заголовка столбца. В SQL Server в качестве оператора для присваивания псевдонимов таблицам или заголовкам столбцов может служить ключевое слово AS.
Pic.89
Побитовые операторы В Microsoft SQL Server существуют побитовые операторы, являющиеся удобным средст
Побитовые операторы В Microsoft SQL Server существуют побитовые операторы, являющиеся удобным средством манипулирования битами в двух выражениях целого типа (см. табл. 2). Для побитовых операторов доступны следующие типы данных: binary, hit, int, smallint, tinyint и varbinary.
Pic.90
Операторы сравнения Операторы сравнения проверяют равенство или неравенство двух выражений. Результа
Операторы сравнения Операторы сравнения проверяют равенство или неравенство двух выражений. Результатом операции сравнения является булево значение: TRUE, FALSE или UNKNOWN. Также заметьте, что по стандарту ANSI сравнение выражений, когда одно или оба значения равны NULL, дает результат NULL.
Pic.91
Логические операторы Логические операторы обычно применяются в предложении WHERE для проверки истинн
Логические операторы Логические операторы обычно применяются в предложении WHERE для проверки истинности какого-либо условия. Логические операторы возвращают булево значение TRUE или FALSE.
Pic.92
Унарные операторы Унарные операторы выполняют операцию над одним выражением любого типа, отно­сящимс
Унарные операторы Унарные операторы выполняют операцию над одним выражением любого типа, отно­сящимся к числовой категории. Унарные операторы можно применять к целым типам, хотя операторы положительности и отрицательности можно применять к любому числовому типу данных.
Pic.93
Приоритет операторов +, -, ~ (унарные операторы) *, /, % (математические операторы) +, - (арифметиче
Приоритет операторов +, -, ~ (унарные операторы) *, /, % (математические операторы) +, - (арифметические операторы) =, >, <, >=, <=, <>, !=, !>, !< (операторы сравнения) ^ (побитовое исключающее ИЛИ), & (побитовое И), | (побитовое ИЛИ) NOT, AND, ALL, ANY, BETWEEN IN LIKE, OR, SOME = (присваивание значение переменной)
Pic.94
Язык определения данных CREATE – создает объектов базы данных ALTER – изменяет объект DROP –удаляет
Язык определения данных CREATE – создает объектов базы данных ALTER – изменяет объект DROP –удаляет объект Стандарт SQL-92 определяет команды для следующих объектов: ASSERTION – утверждения для проверки CHARACTER SET – набор символов COLLATION – правила сортировки для набора символов DOMAIN – домен (пользовательского типа данных столбца). SCHEMA – схема (именованной группы объектов) TABLE – таблица базы данных TRANSLATION – правила преобразования (трансляции) из одного набора символов в другой (используется в операторе TRANSLATE) VIEW – представления данных
Pic.95
Типы данных Символьные строки: CHARACTER(n)или CHAR(n) — строка фиксированной длины в n символов, ра
Типы данных Символьные строки: CHARACTER(n)или CHAR(n) — строка фиксированной длины в n символов, разделенная пробелами; CHARACTER VARYING(n)или VARCHAR(n) — строка переменной длины с максимальным количеством символов n; NATIONAL CHARACTER(n)или NCHAR(n) — строка фиксированной длины с поддержкой международных кодировок NATIONAL CHARACTER VARYING(n)или NVARCHAR(n) — строка переменной длины NCHAR.
Pic.96
Типы данных Битовые данные: BIT(n) — массив из n битов BIT VARYING(n) — массив длинной до n битов Чи
Типы данных Битовые данные: BIT(n) — массив из n битов BIT VARYING(n) — массив длинной до n битов Числа: INTEGER и SMALLINT — целые числа; FLOAT, REAL и DOUBLE PRECISION — вещественные числа; NUMERIC(precision, scale)или DECIMAL(precision, scale)— ­вещественное число с указанием в скобках количество знаков до запятой и после запятой. .
Pic.97
Типы данных Дата и время: DATE — дата (2010-05-30); TIME — время (14:55:37); TIME WITH TIME ZONE или
Типы данных Дата и время: DATE — дата (2010-05-30); TIME — время (14:55:37); TIME WITH TIME ZONE или TIMESTAMP — тоже самое, что и TIME, только исключаются данные о часовом поясе; TIMESTAMP — это DATE и TIME соединенные вместе в одной переменной (2010-05-30 14:55:37). TIMESTAMP WITH TIME ZONE or TIMESTAMPTZ — тоже самое, что и TIMESTAMP, только исключаются данные о часовом поясе.
Pic.98
Создание домена CREATE DOMAIN <имя_домена> [AS] <тип_данных> [DEFAULT {LITERAL | NULL |
Создание домена CREATE DOMAIN <имя_домена> [AS] <тип_данных> [DEFAULT {LITERAL | NULL | USER}] [NOT NULL] [CHECK (<условие>)] [COLLATE <имя_сортировки>]; где DEFAULT ­– Определяет значение по умолчанию, которое вставляется, когда ни какой другой ввод не сделан. Значения: LITERAL – Вводится определенная строка, числовое значение или дата. NULL – Вводится значение NULL. USER – Вводится имя текущего пользователя. Столбец должен быть совместимый символьный тип, что бы использовать значение по умолчанию. NOT NULL – Определяет, что значения введенные в столбец не могут быть NULL. CHECK – (<условие>) создает одиночное CHECK ограничение для домена. VALUE – Заменитель для имени столбца, в конечном счете, основанном на домене. COLLATE <имя_сортировки> – Устанавливает способ сортировки для домена.
Pic.99
Изменение домена ALTER DOMAIN <имя_домена> { [SET DEFAULT {LITERAL | NULL | USER}] | [DROP DEF
Изменение домена ALTER DOMAIN <имя_домена> { [SET DEFAULT {LITERAL | NULL | USER}] | [DROP DEFAULT] | [ADD [CONSTRAINT] CHECK (<условие>)] | [DROP CONSTRAINT] }; где SET DEFAULT – Определяет значение столбца по умолчанию, которое будет введено, когда ни какой другой ввод не сделан. Значения: LITERAL – Вводится определенная строка, числовое значение или дата. NULL – Вводится значение NULL. USER – Вводится имя текущего пользователя. Столбец должен быть совместимого текстового типа для использования значения по умолчанию. Удаление домена: DROP DOMAIN <имя_домена>;
Pic.100
Схема Создание базы данных: CREATE {DATABASE | SCHEMA} имя_базы_данных> Удаление базы данных: DRO
Схема Создание базы данных: CREATE {DATABASE | SCHEMA} имя_базы_данных> Удаление базы данных: DROP {DATABASE | SCHEMA} <имя_базы_данных>
Pic.101
Создание таблицы CREATE TABLE [ IF NOT EXISTS ] <имя_таблицы> ( <имя столбца_1> <тип
Создание таблицы CREATE TABLE [ IF NOT EXISTS ] <имя_таблицы> ( <имя столбца_1> <тип данных> [ DEFAULT expression ] [ {NULL | NOT NULL} ] [ {INDEX_BLIST | INDEX_NONE} ], <имя столбца_2> <тип данных> [ DEFAULT expression ] [ {NULL | NOT NULL} ] [ {INDEX_BLIST | INDEX_NONE} ], . . . <имя столбца_N> <тип данных> [ DEFAULT expression ] [ {NULL | NOT NULL} ] [ {INDEX_BLIST | INDEX_NONE} ], [ CONSTRAINT <имя ограничения> ] PRIMARY KEY ( <имя столбца_1>, <имя столбца_2>, . . . ) | FOREIGN KEY (<имя столбца_1>, <имя столбца_2>, . . . ) REFERENCES <имя_таблицы_2> [ (<имя столбца_1>, <имя столбца_2>, . . . ) ] [ ON UPDATE {NO ACTION | SET NULL | SET DEFAULT | CASCADE} ] [ ON DELETE {NO ACTION | SET NULL | SET DEFAULT | CASCADE} ] | UNIQUE (<имя столбца_1>, <имя столбца_2>, . . . ) | CHECK ( <условие> ) [ {INITIALLY DEFERRED | INITIALLY IMMEDIATE} ] [ {NOT DEFERRABLE | DEFERRABLE} ] );
Pic.102
Параметры DEFAULT expression – значение по умолчанию; NULL | NOT NULL – разрешается ли пустое поле;
Параметры DEFAULT expression – значение по умолчанию; NULL | NOT NULL – разрешается ли пустое поле; INDEX_BLIST | INDEX_NONE – есть или нет индекса; CONSTRAINT – ограничение PRIMARY KEY – первичный ключ FOREIGN KEY – вторичный ключ ON DELETE – при удалении в родительской таблице ON UPDATE – при обновлении в родительской таблице NO ACTION ­– нет действий SET NULL – устанавливается значение NULL SET DEFAULT – устанавливается значение по умолчанию CASCADE – каскадно UNIQUE – уникальный CHECK – проверка
Pic.103
Изменение таблицы Переименование таблицы ALTER TABLE <имя_таблицы> RENAME TO <новое_имя_таб
Изменение таблицы Переименование таблицы ALTER TABLE <имя_таблицы> RENAME TO <новое_имя_таблицы> Переименование столбца ALTER TABLE <имя_таблицы> RENAME [ COLUMN ] <имя_столбца> TO <новое_имя_столбца> Добавление столбца ALTER TABLE <имя_таблицы> ADD [COLUMN] <имя_столбца> <тип_данных> [ DEFAULT expression ] [ {NULL | NOT NULL} ] [ {INDEX_BLIST | INDEX_NONE} ] Добавление первичного ключа ограничения к таблице ALTER TABLE <имя_таблицы> ADD [ CONSTRAINT <имя ограничения> ] PRIMARY KEY ( <имя столбца_1>, <имя столбца_2>, . . . )
Pic.104
Изменение таблицы Добавление вторичного ключа ограничения к таблице ALTER TABLE <имя_таблицы>
Изменение таблицы Добавление вторичного ключа ограничения к таблице ALTER TABLE <имя_таблицы> ADD [ CONSTRAINT <имя ограничения> ] FOREIGN KEY (<имя столбца_1>, <имя столбца_2>, . . . ) REFERENCES <имя_таблицы_2> [ (<имя столбца_1>, <имя столбца_2>, . . . ) ] [ ON UPDATE {NO ACTION | SET NULL | SET DEFAULT | CASCADE} ] [ ON DELETE {NO ACTION | SET NULL | SET DEFAULT | CASCADE} ] Добавление уникального поля к таблице ALTER TABLE <имя_таблицы> ADD [ CONSTRAINT <имя ограничения> ] UNIQUE (<имя столбца_1>, <имя столбца_2>, . . . ) Изменение типа данных столбца ALTER TABLE <имя_таблицы> MODIFY "column 1" "New Data Type"
Pic.105
Изменение таблицы Изменение столбца ограничений столбца ALTER TABLE <имя_таблицы> ALTER [COLUM
Изменение таблицы Изменение столбца ограничений столбца ALTER TABLE <имя_таблицы> ALTER [COLUMN] column_name SET default_expr ALTER TABLE <имя_таблицы> ALTER [COLUMN] column_name DROP DEFAULT Удаление столбца ALTER TABLE <имя_таблицы> DROP [COLUMN] column_name Удаление ограничения таблицы ALTER TABLE <имя_таблицы> DROP CONSTRAINT constraint_name Удаление первичного ключа ALTER TABLE <имя_таблицы> DROP PRIMARY KEY Удаление таблицы DROP TABLE [ IF EXISTS ] <имя_таблицы>
Pic.106
Язык манипулирования данными В основу языка манипулирования данными входят 4 основных оператора: SEL
Язык манипулирования данными В основу языка манипулирования данными входят 4 основных оператора: SELECT – используется для выборки записей из таблиц; INSERT –используется для добавления записей в таблицу; UPDATE – используется для обновления записей таблицы; DELETE – используется для удаления записей из таблицы.
Pic.107
Оператор INSERT INSERT INTO <имя_таблицы> [(<имя столбца_1> [, <имя столбца_1> . .
Оператор INSERT INSERT INTO <имя_таблицы> [(<имя столбца_1> [, <имя столбца_1> . . . ])] {VALUES (<значение_1> [, <значение_2> . . . ]) | <выражение SELECT>}; Так, например, чтобы ввести строку в таблицу Продавцов, вы можете использовать следующее условие: INSERT INTO Salespeople VALUES (1001, 'Peel', 'London', . 12); INSERT INTO Customers (city, cnamе, cnum) VALUES ('London', 'Honman', 2001);
Pic.108
Оператор UPDATE Теперь, вы должны узнать как изменять некоторые или все значения в существующей стро
Оператор UPDATE Теперь, вы должны узнать как изменять некоторые или все значения в существующей строке. Это выполняется командой UPDATE. UPDATE TABLE <имя_таблицы> SET <имя столбца_1> = <значение_1> [, <имя столбца_2> = <значение_2> . . . ] [WHERE <условие>]; Например UPDATE Customers SET rating = 200; UPDATE Customers SET rating = 200 WHERE snum = 1001; UPDATE Salespeople SET sname = 'Gibson',city = 'Boston',comm = . 10 WHERE snum = 1004;
Pic.109
Оператор DELETE Вы можете удалять строки из таблицы командой модификации - DELETE. Она может удалять
Оператор DELETE Вы можете удалять строки из таблицы командой модификации - DELETE. Она может удалять только введенные строки, а не индивидуальные значения полей. DELETE FROM <имя_таблицы> [WHERE <условие>]; Например DELETE FROM Salespeople WHERE snum = 1003; DELETE FROM Salespeople WHERE city = 'London';
Pic.110
Оператор SELECT Все запросы в SQL состоят из одиночной команды. Структура этой команды обманчиво про
Оператор SELECT Все запросы в SQL состоят из одиночной команды. Структура этой команды обманчиво проста, потому что вы должны расширять ее так чтобы выполнить высоко сложные оценки и обработки данных. SELECT [ALL] | DISTINCT]{ * | элемент_SELECT [,элемент_SELECT] . . . } FROM {имя_таблицы_1 | представление} [псевдоним] [,{имя_таблицы_2 | представление} [псевдоним], . . . ] [WHERE <условие>] [GROUP BY <имя_столбца_1> [,<имя_столбца_2>, . . . ] | [HAVING <имя_столбца_1> [,<имя_столбца_2>, . . . ]]; [ORDER BY <имя_столбца_1> [,<имя_столбца_2>, . . . ]]
Pic.111
Оператор SELECT Если вы хотите видеть каждый столбец таблицы, имеется необязательное сокращение кото
Оператор SELECT Если вы хотите видеть каждый столбец таблицы, имеется необязательное сокращение которое вы можете использовать. Звездочка (*) может применяться для вывода полного списка столбцов следующим образом: SELECT * FROM Salespeople;
Pic.112
Агрегатные функции в SQL Агрегатные функции предназначены для того, чтобы вычислять некоторое значен
Агрегатные функции в SQL Агрегатные функции предназначены для того, чтобы вычислять некоторое значение для заданного множества строк. Таким множеством строк может быть группа строк, если агрегатная функция применяется к сгруппированной таблице, или вся таблица.
Pic.113
Виды агрегатный функций COUNT - производит номера строк или не-NULL значения полей которые выбрал за
Виды агрегатный функций COUNT - производит номера строк или не-NULL значения полей которые выбрал запрос. SUM - производит арифметическую сумму всех выбранных значений данного пол. AVG - производит усреднение всех выбранных значений данного пол. MAX - производит наибольшее из всех выбранных значений данного пол. MIN - производит наименьшее из всех выбранных значений данного пол.
Pic.114
Использование агрегатных функций SELECT {COUNT | MAX | MIN | SUM | AVG} (* [ALL|DISTINCT] <имя ст
Использование агрегатных функций SELECT {COUNT | MAX | MIN | SUM | AVG} (* [ALL|DISTINCT] <имя столбца>, …) FROM <имя таблицы> WHERE <условие> GROUP BY <имя столбца>, … | HAVING <условие>;
Pic.115
Выполнение агрегатных функций SELECT SUM ((amt)) FROM Orders; - 26658. 4 SELECT AVG ((amt)) FROM Ord
Выполнение агрегатных функций SELECT SUM ((amt)) FROM Orders; - 26658. 4 SELECT AVG ((amt)) FROM Orders; - 2665. 84 SELECT MAX ((amt)) FROM Orders; - 9891. 88 SELECT MIN ((amt)) FROM Orders; - 18. 69 SELECT COUNT (*) FROM Orders; - 11
Pic.116
Группировка для агрегатных функций Выбрать рейтинг по городам: SELECT city, SUM(RATING) FROM Clients
Группировка для агрегатных функций Выбрать рейтинг по городам: SELECT city, SUM(RATING) FROM Clients GROUP BY city;
Pic.117
Использование HAVING Предположим, что в предыдущем примере, вы хотели бы увидеть только максимальную
Использование HAVING Предположим, что в предыдущем примере, вы хотели бы увидеть только максимальную сумму приобретений значение которой выше 00. 00 SELECT snum, odate, MAX (amt) FROM Oreders WHERE MAX ((amt)) > 3000. 00 GROUP BY snum, odate;
Pic.118
Проекция и выборка SELECT [ALL] | DISTINCT]{ * | элемент_SELECT [,элемент_SELECT] . . . } FROM {имя_
Проекция и выборка SELECT [ALL] | DISTINCT]{ * | элемент_SELECT [,элемент_SELECT] . . . } FROM {имя_таблицы_1 | представление} [псевдоним] [,{имя_таблицы_2 | представление} [псевдоним], . . . ] [WHERE <условие>] [GROUP BY <имя_столбца_1> [,<имя_столбца_2>, . . . ] | [HAVING <имя_столбца_1> [,<имя_столбца_2>, . . . ]] [ORDER BY <имя_столбца_1> [,<имя_столбца_2>, . . . ]]; Проекция – это выбор столбцов в любом порядке. Выборка любой запрос SELECT.
Pic.119
Декартовое произведение SELECT [ALL] | DISTINCT]{ * | элемент_SELECT [,элемент_SELECT] . . . } FROM
Декартовое произведение SELECT [ALL] | DISTINCT]{ * | элемент_SELECT [,элемент_SELECT] . . . } FROM {имя_таблицы_1 | представление} [псевдоним] ,{имя_таблицы_2 | представление} [псевдоним], . . . ;
Pic.120
Предварительные замечания Системы дистрибутивных баз данных состоят из набора узлов, связанных вмест
Предварительные замечания Системы дистрибутивных баз данных состоят из набора узлов, связанных вместе коммуникационной сетью, в которой: каждый узел обладает своими собственными системами баз данных; узлы работают согласованно, поэтому пользователь может получить доступ к данным на любом узле сети, как будто все данные находятся на его собственном узле.
Pic.121
Локальная автономия В распределенной системе узлы следует делать автономными. Локальная автономия оз
Локальная автономия В распределенной системе узлы следует делать автономными. Локальная автономия означает, что операции на данном узле управляются этим узлом, т. е. функционирование любого узла X не зависит от успешного выполнения некоторых операций на каком-то другом узле Y. Из принципа локальной автономии также следует, что владение и управление данными осуществляется локально вместе с локальным ведением учета.
Pic.122
Независимость от центрального узла Под локальной автономией подразумевается, что все узлы должны рас
Независимость от центрального узла Под локальной автономией подразумевается, что все узлы должны рассматриваться как равные. Зависимость от центрального узла нежелательна по крайней мере по двум причинам. Во-первых, центральный узел может быть "узким" местом всей системы. Во-вторых, более важно то, что система в таком случае становится уязвимой, т. е. при повреждении центрального узла может выйти из строя вся система.
Pic.123
Непрерывное функционирование Одним из основных преимуществ распределенных систем является то, что он
Непрерывное функционирование Одним из основных преимуществ распределенных систем является то, что они обеспечивают более высокую надежность и доступность. Надежность повышается благодаря работе распределенных систем не по принципу "все или ничего", а в постоянном режиме; т. е. работа системы продолжается, хотя и на более низком уровне, даже в случае неисправности некоторого отдельного компонента, например отдельного узла. Доступность повышается частично по той же причине, а частично благодаря возможности репликации данных.
Pic.124
Независимость от расположения Основная идея независимости от расположения (которая также называется
Независимость от расположения Основная идея независимости от расположения (которая также называется прозрачностью расположения) достаточно проста: пользователям не следует знать, в каком физическом месте хранятся данные, наоборот, с логической точки зрения пользователям следовало бы обеспечить такой режим, при котором создается впечатление, что все данные хранятся на их собственном локальном узле.
Pic.125
Независимость от фрагментации Существует два основных типа фрагментации – горизонтальная и вертикаль
Независимость от фрагментации Существует два основных типа фрагментации – горизонтальная и вертикальная, которые связаны с реляционными операциями выборки и проекции соответственно. Фрагментом может быть любое произвольное подчиненное отношение, которое можно вывести из исходного отношения с помощью операций выборки и проекции.
Pic.126
Независимость от репликации В системе поддерживается независимость от репликации, если заданное хран
Независимость от репликации В системе поддерживается независимость от репликации, если заданное хранимое отношение или заданный фрагмент могут быть представлены несколькими различными копиями, или репликами, хранимыми на нескольких различных узлах.
Pic.127
Обработка распределенных запросов Для выполнения охватывающего несколько узлов запроса существует до
Обработка распределенных запросов Для выполнения охватывающего несколько узлов запроса существует довольно много способов перемещения данных по сети. В таком случае чрезвычайно важно найти наиболее эффективную стратегию.
Pic.128
Управление распределенными транзакциями Существует два основных аспекта управления обработкой транза
Управление распределенными транзакциями Существует два основных аспекта управления обработкой транзакций, а именно: управление восстановлением и управление параллелизмом, каждому из которых в распределенных системах должно уделяться повышенное внимание.
Pic.129
Распространение обновления Основной проблемой репликации данных является то, что обновление любого л
Распространение обновления Основной проблемой репликации данных является то, что обновление любого логического объекта должно распространяться на все хранимые копии этого объекта. Одна копия каждого реплицируемого объекта называется первичной копией, а все остальные – вторичными. Первичные копии различных объектов находятся на различных узлах Операции обновления считаются завершенными, если обновлены все первичные копии.
Pic.130
Распределенные базы данных и Интернет. Создание баз данных для Web приложений.
Распределенные базы данных и Интернет. Создание баз данных для Web приложений.
Pic.131
Системы типа клиент/сервер Термин "клиент/сервер" относится преимущественно к архитектуре
Системы типа клиент/сервер Термин "клиент/сервер" относится преимущественно к архитектуре или логике распределения ответственности, поэтому клиент – это приложение, т. е. внешний интерфейс, а сервер – СУБД, т. е. внутренний интерфейс для непосредственной работы с базами данных.
Pic.132
Серверы баз данных Обычно для обозначения всей СУБД, основанной на архитектуре "клиент-сервер&q
Серверы баз данных Обычно для обозначения всей СУБД, основанной на архитектуре "клиент-сервер", включая и серверную, и клиентскую части используют термин "сервер баз данных". Такие системы предназначены для хранения и обеспечения доступа к базам данных.
Pic.133
БАЗЫ ДАННЫХ В INTERNET Протокол TCP/IP позволяет передавать информацию, а его используют разнообразн
БАЗЫ ДАННЫХ В INTERNET Протокол TCP/IP позволяет передавать информацию, а его используют разнообразные сетевые сервисы, по-разному обращающиеся с этой информацией. Internet не решила проблемы хранения и упорядочения информации, но решила проблему её передачи, дав возможность получать её когда и где угодно.
Pic.134
Обзор ПТК данного вида Основные функции ПТК данного вида таковы: обеспечить отображение интерфейса п
Обзор ПТК данного вида Основные функции ПТК данного вида таковы: обеспечить отображение интерфейса пользователя в формате HTML для отображения программой просмотра клиента; обеспечить формирование запросов к БД наиболее простыми для неподготовленного пользователя средствами; обеспечить аутентификацию пользователя; обеспечить обработку запроса и возврат результата в HTML формате для отображения программой просмотра пользователя.
Pic.135
Техническое задание на разработку структур ПТК Наименование и область применения ПТК Основания для р
Техническое задание на разработку структур ПТК Наименование и область применения ПТК Основания для разработки ПТК Назначение разработки ПТК
Pic.136
Требования к ПТК Требования к функциональным характеристикам: отображение интерфейса пользователя в
Требования к ПТК Требования к функциональным характеристикам: отображение интерфейса пользователя в виде HTML- документа; обработку запроса пользователя с исключением неправильно заданных форматов, неверно заполненных полей запроса и т. д. ; в соответствии с запросом поиск в БД, модификация или удаление данных в БД; отображение результатов работы.
Pic.137
Требования к ПТК Требования к программному обеспечению: ПТК разрабатывается на языке PERL (Practical
Требования к ПТК Требования к программному обеспечению: ПТК разрабатывается на языке PERL (Practical Extraction and Report Language); ПТК должен работать под управлением ОС BSD UNIX; Для работы ПТК в системе должна быть установлена СУБД Postgres95.
Pic.138
Требования к ПТК Требования к информационному обеспечению отображать всю информацию на браузере поль
Требования к ПТК Требования к информационному обеспечению отображать всю информацию на браузере пользователя в формате HTML; проводить аутентификацию пользователя с целью выяснения его привилегий; для пользователей с низким уровнем привилегий давать возможность видеть часть информации, для пользователей с высоким уровнем - возможность редактирования, добавления и удаления; должна быть обеспечена высокая скорость и надежность работы программы.
Pic.139
Эскизный проект структуры ПО ПТК Используемые для написания программы библиотеки: CGI. pm- библиотек
Эскизный проект структуры ПО ПТК Используемые для написания программы библиотеки: CGI. pm- библиотека для манипуляции информационными элементами (поля ввода, кнопки, радио кнопки, скрытые поля и т. д. в формате HTML, отображение информации на браузере клиента и ввод ответа от него) Pg. pm- библиотека для манипуляции БД (подключение к программе- монитору, посылка запросов, обработка результата и т. д. )
Pic.140
Эксплуатация баз данных. Защита баз данных. Управление транзакциями. Управление параллельным доступо
Эксплуатация баз данных. Защита баз данных. Управление транзакциями. Управление параллельным доступом. Заключение.
Pic.141
Понятие восстановления системы Восстановление в системе управления базами данных, означает в первую
Понятие восстановления системы Восстановление в системе управления базами данных, означает в первую очередь восстановление самой базы данных, т. е. возвращение базы данных в правильное состояние, если какой-либо сбой сделал текущее состояние неправильным или подозрительным.
Pic.142
Понятие транзакции Транзакция – это логическая единица работы. Транзакция– не просто одиночная опера
Понятие транзакции Транзакция – это логическая единица работы. Транзакция– не просто одиночная операция системы баз данных, а скорее согласование нескольких таких операций.
Pic.143
Восстановление транзакции Транзакция начинается с успешного выполнения оператора BEGIN TRANSACTION и
Восстановление транзакции Транзакция начинается с успешного выполнения оператора BEGIN TRANSACTION и заканчивается успешным выполнением либо оператора COMMIT, либо ROLLBACK. Оператор COMMIT устанавливает так называемую точку фиксации.
Pic.144
Свойства АСИД Транзакции обладают четырьмя важными свойствами(АСИД): Атомарность; Согласованность; И
Свойства АСИД Транзакции обладают четырьмя важными свойствами(АСИД): Атомарность; Согласованность; Изоляция; Долговечность.
Pic.145
Восстановление после отказов системы Критической точкой в отказе системы является потеря содержимого
Восстановление после отказов системы Критической точкой в отказе системы является потеря содержимого оперативной памяти (в частности, рабочих буферов базы данных).
Pic.146
Параллелизм. Проблемы параллелизма Термин параллелизм означает возможность одновременной обработки в
Параллелизм. Проблемы параллелизма Термин параллелизм означает возможность одновременной обработки в СУБД многих транзакций с доступом к одним и тем же данным, причем в одно и то же время. Основные проблемы, возникающие при параллельной обработке транзакций следующие: проблема потери результатов обновления; проблема незафиксированной зависимости; проблема несовместимого анализа.
Pic.147
Проблема потери результатов обновления
Проблема потери результатов обновления
Pic.148
Проблема незафиксированной зависимости
Проблема незафиксированной зависимости
Pic.149
Проблема несовместимого анализа
Проблема несовместимого анализа
Pic.150
Понятие блокировки В случае, когда для выполнения некоторой транзакции необходимо, чтобы некоторый о
Понятие блокировки В случае, когда для выполнения некоторой транзакции необходимо, чтобы некоторый объект (кортеж) не изменялся непредсказуемо и без ведома этой транзакции, такой объект блокируется. Таким образом, эффект блокировки состоит в том, чтобы "заблокировать доступ к этому объекту со стороны других транзакций", а значит, предотвратить непредсказуемое изменение этого объекта.
Pic.151
Решение проблем параллелизма
Решение проблем параллелизма
Pic.152
Проблема потери результатов обновления
Проблема потери результатов обновления
Pic.153
Проблема незафиксированной зависимости
Проблема незафиксированной зависимости
Pic.154
Проблема незафиксированной зависимости
Проблема незафиксированной зависимости
Pic.155
Тупиковые ситуации
Тупиковые ситуации
Pic.156
СПАСИБО ЗА ВНИМАНИЕ !
СПАСИБО ЗА ВНИМАНИЕ !


Скачать презентацию

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