Мои презентации

Панина Наталья Владимировна

На этой страничке можно найти презентации по Очень интересным дисциплинам, таким как "Организационно-правовое обеспечение информационной безопасности", "Базы данных", "Основы алгоритмизации и программирования", некоторые аспекты изучения ПМ03 "Применение технических средств ослуживания для обеспечения информационной безопасности"...

Скачать:

ВложениеРазмер
Файл bazy_dannykh_otkrytyy_urok_gotovaya.pptx383.31 КБ
Файл sql_dlya_ib.pptx365 КБ
Файл bd.pptx632.13 КБ

Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Базы данных Группа ИБ – 111 21.02.2014 Реляционная база данных MS Access Индексирование : понятие индекса, типы индексных файлов. Создание, активация и удаление индексов

Слайд 2

Основные понятия , Работа с таблицей , Индексирование .

Слайд 3

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

Слайд 4

организованная совокупность данных, предназначенная для длительного хранения во внешней памяти ЭВМ и постоянного применения. БАЗА ДЫННЫХ –

Слайд 5

Классификация СУБД от модели данных Традиционно все СУБД классифицируются в зависимости от модели данных, которая лежит в их основе. Принято выделять: Иногда к ним добавляют модель данных на основе инвертированных списков.

Слайд 6

Виды БД 1. По характеру хранимой информации . фактографические; документальные; документально-фактографические. 2. По способу хранения данных: централизованные; распределенные; 3. По способу доступа к данным: локальные; сетевые. 4. В зависимости от способа организации данных: реляционные; сетевые иерархические.

Слайд 7

Реляционные базы данных Нормализация отношений

Слайд 8

Реляционная модель данных База данных, в которой все данные представлены для пользователя в виде таблиц значений данных, и все операции над базой данных сводятся к манипуляциям с таблицами. Таблица состоит из строк и столбцов и имеет имя, уникальное внутри базы данных. Таблица отражает тип объекта реального мира, а каждая ее строка — конкретный объект.

Слайд 9

Первая нормальная форма Отношение называется нормализованным или приведенным к первой нормальной форме (1НФ), если все его атрибуты простые.

Слайд 10

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

Слайд 11

Третья нормальная форма Отношение находится в третьей нормальной форме, если оно находится во второй нормальной форме и каждый не ключевой атрибут не транзитивно зависит от первичного ключа. Рассматриваемая версия третьей нормальной формы часто называется нормальной формой Бойса-Кодда (НФБК).

Слайд 12

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

Слайд 13

Другие нормальные формы Таблица имеет четвертую нормальную форму (4НФ), если она имеет 3НФ и не содержит многозначных зависимостей. Для избавления от некоторых других аномалий были предложены еще несколько нормальных форм: пятая нормальная форма (5НФ), нормальная форма область/ключ (НФОК) и т.д. Однако они имеют очень ограниченное практическое использование .

Слайд 14

В таблице хранятся данные Объект для удобной работы с данными в таблицах Команды обращения пользователя к СУБД Документ, созданный на основе таблиц Таблица Форма Запрос Отчёт Объекты СУБД Система управления базами данных (СУБД) - программное обеспечение для создания баз данных, хранения и поиска в них необходимой информации.

Слайд 15

В таблице хранятся данные Объект для удобной работы с данными в таблицах Команды обращения пользователя к СУБД Документ, созданный на основе таблиц Таблица Форма Запрос Отчёт Объекты СУБД Система управления базами данных (СУБД) - программное обеспечение для создания баз данных, хранения и поиска в них необходимой информации.

Слайд 16

Таблицы –основная категория объектов СУБД, поскольку вся информация хранится в базе данных в виде таблиц. Каждая таблица состоит из записей (строк) и из полей (столб цов). Работа с таблицами выполняется в 2-х основных режимах: в режиме конструктора; в режиме мастера. Работа с таблицей

Слайд 17

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

Слайд 19

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

Слайд 20

С каждым полем связано еще одно очень важное свойство — тип поля. Тип определяет множество значений, которые может принимать данное поле в различных записях.

Слайд 21

Работа с таблицей Так, таблица Студент содержит сведения о всех студентах, обучающихся в колледж, а ее строки являются наборами значений атрибутов конкретных студентов. Каждый столбец таблицы — это совокупность значений конкретного атрибута объекта. Так, столбец Группа представляет собой множество значений «КК-121", «ИБ-121", «ИБ-111". В столбце Количество правильных ответов содержатся целые неотрицательные числа. Значения в столбце Дата рождение — числа , конкретная дата рождения определенного студента. Эти значения выбираются из множества всех возможных значений атрибута объекта, которое называется ДОМЕНОМ.

Слайд 22

Так, значения в столбце Группа выбираются из множества аббревиатур всех возможных групп. Следовательно, в столбце Группа принципиально невозможно появление значения, которого нет в соответствующем домене, например, «ПИ-101" или «РДК-112". Каждый столбец имеет имя, которое обычно записывается в верхней части таблицы. Оно должно быть уникальным в таблице, однако различные таблицы могут иметь столбцы с одинаковыми именами. Любая таблица должна иметь по крайней мере один столбец; столбцы расположены в таблице в соответствии с порядком следования их имен при ее создании. В отличие от столбцов, строки не имеют имен; порядок их следования в таблице не определен, а количество логически не ограничено.

Слайд 23

Основные понятия базы данных № ФИО Количество правильных ответов Дата рождения Группа 1 Иванов 6 КК-121 2 Дынин 10 ИБ-111 3 Боев 5 ИБ-111 4 Андреев 11 ИБ-111 5 Ульшин 8 КС-121 Студент Имя таблицы Имя столбца Домен СТРОКИ Первичный ключ Группы КК-121 ИБ-111 КС-121

Слайд 24

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

Слайд 25

Взаимосвязь таблиц базы данных Номер Фамилия Номер руководителя Должность 1234 Юдин 5742 М. н. с. 1235 Щедрин 6931 С. н. с. 1236 Яковлев 5742 Н. с. 1237 Кротов 2345 Вед. инж . 1238 Куркин 6931 Ст. инж . Номер Фамилия Отдел Стаж 5742 Васильев 26К 25 6931 Успенский 31С 27 2345 Воробьев 19И 21 Сотрудник Руководитель Первичный ключ Внешний ключ

Слайд 26

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

Слайд 27

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

Слайд 28

ВЫБОР ПОЛЕЙ ДЛЯ ИНДЕКСИРОВАНИЯ поля, в которых часто осуществляется поиск, поля сортировки или поля, объединенные с полями из других таблиц в запрос п оля первичного ключа таблиц индексируются автоматически, поля с типом данных индексировать нельзя

Слайд 29

Поле имеет тип данных « Текстовый » , « Числовой » , « Денежный » или « Дата/время » . Предполагается выполнение поиска значений в поле. Предполагается выполнение сортировки значений в поле. Предполагается выполнение сортировки большого числа различных значений в поле.. Индексирование полей можно использовать, если выполняются условия :

Слайд 30

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

Слайд 31

В Microsoft Access индексы хранятся в том же файле базы данных, что и таблицы и другие объекты Access .

Слайд 32

База данных « Наша группа» Имя поля Тип поля Код Числовой Фамилия Текстовый Имя Текстовый Дата рождения Дата Пол Текстовый Рост Числовой Адрес Текстовый Увлечение Текстовый Наличие ПК Логический

Слайд 33

Индекс на основе сбалансированной иерархической структуры (или индекс B- Tree , balanced tree structured object ) напоминает дерево, если смотреть на него снизу вверх. При работе СУБД с этой структурой сначала считывается самый верхний блок — корневой узел ( root ), затем блок на следующем уровне — блок-ветвь ( branch ), и так далее, до тех пор, пока не будет извлечен блок-лист ( leaf ) с индексируемыми колонками (колонкой) строки.

Слайд 35

Для взаимодействия пользователя с базами данных используют системы управления данными (СУБД). Lotus Approach , Visual FoxPro , Borland Paradox , Borland dBase .

Слайд 36

Принципы построения систем управления баз данных следуют из требований, которым должна удовлетворять организация баз данных: Производительность и готовность. Минимальные затраты. Простота и легкость использования . Простота внесения изменений. Возможность поиска. Целостность. Безопасность и секретность .


Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Язык SQL

Слайд 2

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

Слайд 3

Строковые типы Определены два строковых типа : символьные строки фиксированной длины ; Данные всегда занимают один и тот же объем памяти, определяемый при объявлении поля, независимо от реального размера строки, занесенной в поле CHARACTER ( n ) , где n – длина строки символьные строки переменной длины ; Длина строк переменной длины не является постоянной для всех данных, а зависит от реального размера строки VARCHAR ( n ), n – число, определяющее максимально возможную длину строки

Слайд 4

Числовые типы Числовые типы подразделяются на: целочисленные типы ; INTEGER (от –2 147 483 648 до 2 147 483 647); SMALLINT (– 32 768 до 32 767) вещественные типы с фиксированной точкой ; П редназначен для точного представления дробных чисел. DECIMAL (n, m) , где n – длина числового значения; m – количество знаков, после от десятичной точки. вещественные типы с плавающей точкой ; FLOAT – числа с одинарной точностью; DOUBLE – числа с двойной точностью .

Слайд 5

Типы для представления даты и времени DATE – используется для хранения даты; TIME – используется для хранения времени; TIMESTAMP – хранит дату и время; INTERVAL – хранит промежуток времени между двумя датами или между двумя моментами времени.

Слайд 6

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

Слайд 7

Оператор CREATE TABLE Для создания таблицы используется оператор CREATE TABLE . Синтаксис этого оператора имеет следующий вид: CREATE TABLE имя таблицы ( имя_поля_1 тип данных,имя_поля_2 тип данных , … … … … имя_поля_ N тип данных)

Слайд 8

Пример Создание таблицы ФИЗИЧЕСКИЕ ЛИЦА CREATE TABLE Физические лица (Код_физического_лица Integer , Имя VARCHAR (25 ), Фамилия VARCHAR (25 ), Отчество VARCHAR (25 ), Дата рождения DATE , Адрес VARCHAR (50 ), Телефон VARCHAR(25))

Слайд 9

Оператор ALTER TABLE Созданная таблица может быть модифицирована с использованием оператора ALTER TABLE . С помощью этого оператора можно добавлять и удалять поля таблицы, изменять тип данных полей, добавлять и удалять ограничения. В общем виде синтаксис оператора ALTER TABLE выглядит следующим образом ALTER TABLE имя_таблицы [ MODIFY ] [ имя_поля тип_данных ] [ ADD ] [ имя_поля тип_данных ] [ DROP ] [ имя_поля ]

Слайд 10

Действие, выполняемое оператором ALTER TABLE , определяется ключевым словом, указываемым после имени таблицы: MODIFY – изменяет определение поля; ADD – добавляет новое поле в таблицу; DROP – удаляет поле из таблицы.

Слайд 11

Пример Добавить в таблицу ФИЗИЧЕСКИЕ ЛИЦА поле, в котором будет содержаться адрес электронной почты сотрудника ALTER TABLE Физические _ лица ADD(email CHARACTER (25))

Слайд 12

Пример Если же требуется изменить тип данных существующего поля, то следует использовать оператор ALTER TABLE в паре с ключевым словом MODIFY ALTER TABLE имя_таблицы MODIFY ( имя_поля , тип_данных )

Слайд 13

Пример Удаление существующего поля выполняется вызовом оператора ALTER TABLE с ключевым словом DROP : ALTER TABLE имя_таблицы DROP ( имя_поля ).

Слайд 14

Оператор DROP TABLE Для удаления таблиц используется оператор DROP TABLE . Синтаксис этого оператора имеет следующий вид: DROP TABLE имя _ таблицы [RESTRICT | CASCADE] Если при вызове оператора DROP TABLE используется вое слово RESTRICT и на удаляемую таблицу ссылается какое-либо представление или ограничение, то при выполнении оператора удаления таблицы будет сгенерировано сообщение об ошибке. Если же использовать ключевое слово CASCADE , то удаление таблицы будет выполнено и вместе с таблицей будут удалены все ссылающиеся на нее представления и ограничения.

Слайд 15

Задание ограничений . Ограничения используются для того, чтобы обеспечить достоверность и непротиворечивость информации в БД. Существует достаточно большое количество различного рода ограничений, из которых мы рассмотрим лишь основные: ограничение NOT NULL ; ограничение первичного ключа; ограничение UNIQUE ; ограничение внешнего ключа; ограничение CHECK .

Слайд 16

Ограничение NOT NULL Ограничение NOT NULL может быть установлено для любого поля реляционной таблицы. При наличии этого ограничения запрещается ввод значений NULL в поле, для которого это ограничение установлено. Ограничение NOT NULL устанавливается при создании таблицы с помощью оператора CREATE TABLE .

Слайд 17

Чтобы задать ограничение NOT NULL для некоторого поля следует просто указать NOT NULL после указанного типа поля: CREATE TABLE имя таблицы ( имя_поля_1 тип_данных_ NOT NULL , имя_поля_2 тип данных NULL , … … … имя_поля_ N тип данных NOT NULL )

Слайд 18

Пример В таблице, содержащей личные данные о сотрудниках организации, можно задать ограничение NOT NULL для полей в которых будут содержаться имя и фамилия сотрудника. Поэтому оператор создания таблицы ФИЗИЧЕСКИЕ ЛИЦА следует видоизменить следующим образом CREATE TABLE Физические лица ( Код_физического_лица Integer , Имя VARCHAR (25) NOT NULL, Фамилия VARCHAR (25) NOT NULL, Отчество VARCHAR (25), Дата рождения DATE , Адрес VARCHAR (50), Телефон VARCHAR (25))

Слайд 19

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

Слайд 20

Ограничение первичного ключа может быть задано двумя путями. В том случае когда первичный ключ состоит только из одного поля, то он может быть задан с помощью ключевых слов PRIMARY KEY , указываемых при описании поля в операторе CREAT TABLE CREATE TABLE имя таблицы ( имя _ поля _1 тип _ данных _ NOT NULL PRIMARY KEY, имя_поля_2 тип данных, … … … имя_поля_ N тип данных NOT NULL )

Слайд 21

Первичный ключ может быть задан в конце описания таблицы, после описания всех полей. Для этого также используется ключевая фраза PRIMARY KEY , после которой в круглых скобках укакзывается имя поля, составляющего первичный ключ: CREATE TABLE имя таблицы ( имя_поля_1 тип_данных_ NOT NULL , имя_поля_2 тип данных, … … … имя _ поля _N тип данных NOT NULL PRIMARY KEY ( имя _ поля _1))

Слайд 22

Второй способ особенно удобен для задания составных первичных ключей. В этом случае в скобках следует указать через запятую все поля, составляющие первичный ключ: CREATE TABLE имя таблицы ( имя_поля_1 тип_данных_ NOT NULL , имя_поля_2 тип данных, имя_поля_3 тип_данных_ NOT NULL , … … … имя_поля_ N тип данных NOT NULL PRIMARY KEY (имя_поля_1, имя_поля_3))

Слайд 23

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

Слайд 24

CREATE TABLE имя таблицы ( имя _ поля _1 тип _ данных _ NOT NULL PRIMARY KEY, имя_поля_2 тип данных UNIQUE , имя_поля_3 тип_данных_ NOT NULL , … … … имя _ поля _N тип данных NOT NULL UNIQUE)

Слайд 25

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

Слайд 26

CREATE TABLE имя таблицы ( имя _ поля _1 тип _ данных _ NOT NULL PRIMARY KEY, имя_поля_2 тип данных имя_поля_3 тип_данных_ NOT NULL , … … … имя _ поля _N тип данных NOT NULL UNIQUE, UNIQUE (имя_поля2, имя_поля_3))

Слайд 27

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

Слайд 28

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

Слайд 29

СОТРУДНИКИ – содержит информацию о профессиональных данных сотрудников; ФИЗИЧЕСКИЕ ЛИЦА - содержит информацию о личных данных сотрудников; ДОЛЖНОСТИ – содержит информацию о должностях организации. Основной таблицей является таблица СОТРУДНИКИ, которая ссылается на две другие таблицы и, соответственно, должна иметь два внешних ключа. В качестве родительских ключей в таблицах ФИЗИЧЕСКИЕ ЛИЦА и ДОЛЖНОСТИ используются первичные ключи.

Слайд 30

Ограничения внешнего ключа ( FOREIGN KEY ) может быть задано либо в операторе CREAT _ TABLE , либо с помощью оператора ALTER Синтаксис ограничения FOREIGN _ KEY имеет следующий вид: FOREIGN _ KEY имя_внешнего ключа (список полей внешнего ключа) REFERENCES имя_родительской_таблицы (список полей родительского ключа)

Слайд 31

Пример CREATE TABLE groups (id NUMBER CONSTRAINT groups_pk PRIMARY KEY, num_gr CHAR(8) not null, form CHAR(2) not null, CONSTRAINT groups_uk UNIQUE ( num_gr , form), CHECK CHAR (2)); CREATE TABLE students (id NUMBER CONSTRAINT stud_pk PRIMARY KEY, surname CHAR(100) not null, name CHAR(100) not null, patron CHAR(100) not null, gr_id number not null, CONSTRAINT stud_gr_id_fk FOREIGN KEY ( gr_id ) REFERENCES groups( id)); gr _ id – внешний ключ, ссылающийся на первичный ключ таблицы GROUPS . Каждый студент из таблицы STUDENTS учится в какой-то группе из таблицы GROUPS .

Слайд 32

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

Слайд 33

CREATE TABLE Физические лица ( Код _ физического _ лица Integer NOT NULL PRIMERY KEY, Имя VARCHAR (25) NOT NULL, Фамилия VARCHAR (25) NOT NULL, Отчество VARCHAR (25), Дата рождения DATE , Адрес VARCHAR (50), Телефон VARCHAR (25 )) CREATE TABLE ДОЛЖНОСТИ ( Код _ должности Integer NOT NULL PRIMERY KEY, Должность VARCHAR (25) NOT NULL UNIOUE, Разряд Integer NOT NULL, Зарплата DECIMAL (7,3) NOT NULL) CREATE TABLE C ОТРУДНИКИ ( Код _ сотрудника Integer NOT NULL PRIMERY KEY, Код_должности Integer , Код_физического_лица Integer NOT NULL , Рейтинг DECIMAL (4, 2 ) , Дата _ приема DATE NOT NULL, Дата_увольнения DATE , FOREIGN _ KEY Физ_ВК (Код_физического_лица) REFERENCES Физические_лица (Код_физического_лица) FOREIGN _ KEY Долж_ВК ( Код_должности ) REFERENCES Должности ( Код_должности ))

Слайд 34

Ограничение CHECK Ограничение CHECK используется для проверки допустимости данных, вводимых в поле таблицы. Ограничение CHECK состоит из ключевого слова CHECK , сопровождаемого предложением предиката, который использует указанное поле. Любая попытка модифицировать или вставить значение поля, которое могло бы сделать этот предикат неверным, будет отклонена. Значение ограничения CHECK производится при создании таблицы. Для этого после описания полей таблицы указывается ключевая фраза: CONSTRAINT имя_ограничения CHECK (ограничение).

Слайд 35

Пример В рассматриваемом нами примере базы данных сотрудников организации ограничение может быть задано, например для поля «Разряд» таблицы ДОЛЖНОСТИ. Допустим, разряд не может превышать 20. Тогда оператор создания таблицы ДОЛЖНОСТИ, в котором задано это ограничение, будет иметь следующий вид CREATE TABLE ДОЛЖНОСТИ ( Код _ должности Integer NOT NULL PRIMERY KEY, Должность VARCHAR (25) NOT NULL UNIOUE, Разряд Integer NOT NULL, Зарплата DECIMAL (7,2) NOT NULL CONSTRAINT CHK_RATE CHECK ( Разряд <=20 )) или CONSTRAINT CHK_RATE CHECK ( Разряд <=20 AND Зарплата >=1000))

Слайд 36

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

Слайд 37

CREAT TABLE ( … имя_поля_ N тип_данных DEFAULT = значение_по_умолчанию В рассматриваемом примере значение по умолчанию может быть установлено, например, для поля «Рейтинг» таблицы СОТРУДНИКИ CREATE TABLE C ОТРУДНИКИ ( Код _ сотрудника Integer NOT NULL PRIMERY KEY, Код_должности Integer , Код_физического_лица Integer NOT NULL , Рейтинг DECIMAL (4,2) DEFAULT=0, Дата _ приема DATE NOT NULL, …)

Слайд 38

Манипулирование данными Для манипулирования данными, хранящимися в базе данных, используется группа операторов SQL , выделяемых в качестве отдельного типа команд, называемых языком манипулирования данными ( DML – Data Manipulation language ). С помощью операторов DML пользователь может загружать в таблицы новые данные, модифицировать и удалять существующие данные.

Слайд 39

В языке SQL определены только три основные операторы DML : INSERT; UPDATE; DELETE.

Слайд 40

Добавление в таблицу новой информации Процесс ввода в таблицу БД новой информации обычно называется загрузкой данных . Для загрузки данных используется оператор INSERT .

Слайд 41

Добавление к таблице новой записи Для добавления к таблице новой записи используется следующая синтаксическая форма оператора INSERT : INSERT INTO имя _ таблицы VALUES (значение_1, значение_2, … , значение_ N ) При использовании данной формы оператора INSERT список VALUES должен содержать количество значений, равное количеству полей таблицы. Причем тип данных каждого из значений, указываемых в списке VALUES , должен совпадать с типом данных поля, соответствующему этому значению. Значения, относящиеся к символьным типам и датам, должны быть заключены в апострофы. В списке значений может также использоваться значение NULL .

Слайд 42

Пример Для добавления новой записи в таблицу ДОЛЖНОСТИ следует использовать следующий оператор INSERT : INSERT INTO Должности VALUES (12, ‘Ведущий программист’, 12, 20000.00)

Слайд 43

Ввод данных в отдельные поля таблицы Добавлении данных в таблицу можно заполнять не все поля, а лишь некоторые из них. В этом случае используется следующая синтаксическая форма оператора INSERT : INSERT INTO имя_таблицы (имя_поля1, имя_поля2, … , имя поля_ N ) VALUES (значение_1, значение_2, … , значение_ N )

Слайд 44

ПРИМЕР При добавлении информации о новом сотруднике в таблицу ФИЗИЧЕСКИЕ ЛИЦА необходимо указать только информацию о полном имени сотрудника INSERT INTO Физические_лица (Код_физического_лица, Имя, Фамилия, отчество) VALUES (234, ‘Иванов’, ‘ Федор’,’Михайлович ’) При выполнении данного оператора во все остальные поля будет занесено значение NULL .

Слайд 45

Занесение в таблицу данных, содержащихся в другой таблице Объединяя операторы INSERT и SELECT , можно добавить в таблицу данные, полученные в результате выполнения запроса из другой таблицы (таблиц). Синтаксис оператора INSERT в этом случае будет иметь следующий вид INSERT INTO имя_таблицы (имя_поля_1, имя_поля_2, … , имя поля_ N ) Select [* | имя_поля_1, имя_поля_2, … , имя_поля_ N ] FROM имя таблицы WHERE условие

Слайд 46

Изменение данных, хранящихся в таблице Для изменения данных, уже занесенных в таблицу, используется оператор UPDATE . Данный оператор не добавляет новых записей в таблицу, а заменяет существующие записи на новые. Оператор UPDATE может быть применен как к одному полю таблицы (наиболее часто используемый случай), так и к нескольким полям. Количество изменяемых записей зависит от потребностей пользователя – с помощью UPDATE можно изменить как одну, так и несколько записей (вплоть до изменения значения всех записей, содержащихся в таблице).

Слайд 47

Модификация данных в одном поле Для изменения данных только в одном из полей таблицы используется наиболее простая форма оператора UPDATE , имеющая следующий вид: UPDATE имя_таблицы SET имя_поля = значение [WHERE условие ]

Слайд 48

Пример UPDATE Физические лица SET телефон = ‘(495) 2347890’ WHERE Код_физического_лица = 16 Данный оператор изменит значение номера телефона только для записи, соответствующей сотруднику, зарегистрированному в БД под номером 16. Если бы мы не задали ограничительного условия в приведенном выше операторе, то значение номера телефона было бы изменено для всех записей в таблице

Слайд 49

Изменение значений в нескольких полях таблицы С помощью оператора UPDATE можно изменять значения в нескольких полях таблицы. Для этого следует указать после ключевого слова SET одно, а несколько полей: UPDATE имя_таблицы SET имя_поля_1 = значение_1 имя_поля_2 = значение_2 … имя_поля_ N = значение_ N [WHERE условие ] Использование оператора в данной форме ничем не отличается от рассмотренного ранее. Здесь точно так же нужно быть очень осторожным при формировании условия

Слайд 50

Удаление данных из таблицы Удаление данных из таблицы выполняется с помощью оператора DELETE . Данный оператор полностью удаляет всю запись, а не данные отдельных полей. Синтаксис оператора DELETE имеет следующий вид: DELETE FROM имя _ таблицы [WHERE условие ] Удаляемые записи определяются в соответствии с условием, заданным с помощью необязательного предложения WHERE . При отсутствии предложения WHERE в операторе DELETE данные будут удалены из всей таблицы.

Слайд 51

Использование SQL для выборки данных из таблицы Язык запросов DQL. Язык запросов, являющийся одной из категорий языка SQL, состоит всего из одного оператора SELECT. Эта команда вместе с множеством опций и предложений используется для формирования запрос к базе данных. Запросы формируются для извлечения из таблиц баз данных информации, соответствующей некоторым требованиям, задаваемым пользователем. Оператор SELECT не используется автономно, вместе с ним обязательно должны задаваться уточняющие предложения. Предложения используемые с командой SELECT, могут быть обязательными и дополнительными. Обязательным является только одно предложение FROM, без которого оператор SELECT не может использоваться.

Слайд 52

Простейшая форма оператора SELECT . SELECT {* | ALL | DISTINCT field1, field2, ..., fieldnN } FROM table1 {, table2, .. , tableN } Здесь за ключевым словом SELECT следует список полей, которые возвращаются в результате выполнения запроса: имена полей в списке разделяются через запятую; для выборки всех полей таблицы (таблиц) используется символ подстановки «*» опция ALL (задана по умолчанию) означает, что результат выборки будет содержать все записи, включая дублирующие друг друга; при использовании опции DISTINCT результат запроса не будет содержать дублирующих строк.

Слайд 53

Пример 1. Выборка всей информации всей информации из таблицы «Товары» SELECT * FROM Товары 2. Запроса возвращающий из этой таблицы значения только трех полей: «Код товара», «Наименование» и «Цена»: SELECT [Код товара], Наименование, Цена FROM Товары

Слайд 54

Пример 3. В таблице несколько товаров с одинаковым наименованием, а мы хотим просто знать наименования всех товаров, которые есть в таблице (без повторений). Тогда используем опцию DISTINCT SELECT DISTINCT Наименование FROM Товары

Слайд 55

Задание условий при выборке данных Для ограничения отбираемой из базы данных информации оператор SELECT позволяет использовать условие, которое задается с помощью предложения WHERE. В случае реализации условной выборки оператор SELECT имеет следующий вид SELECT {* | ALL | DISTINCT field1, field2, ..., fieldnN } FROM table1 {, table2, .. , tableN } WHERE.условие Специальные операторы языка SQL, применяемые для задания условия можно разделить на следующие группы: операторы сравнения логические операторы операторы объединения операции отрицания

Слайд 56

Логические операторы К логическим относятся операторы, в которых для задания ограничений используются специальные ключевые слова. В SQL определены следующие логические операторы : IS NULL - сравнения текущего значения со значением NULL , BETWEEN…AND - отбор записей, в которых значения поля находятся внутри заданного диапазона , IN - выборка значений, в которых значение некоторого поля соответствует хотя бы одному из значений заданного списка (Страна IN ('Беларусь', 'Украина', 'Казахстан')

Слайд 57

LIKE - применяется для сравнения значения поля со значением, заданным при помощи шаблонов. Для задания шаблонов используются два символа: знак процента «%» - заменяет последовательность любой (в том числе нулевой) длины; символ подчеркивания «_» заменяет любой единичный символ. WHERE Фамилия LIKE 'М%‘


Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Объектно-реляционные базы данных: прошедший этап или недооцененные возможности?

Слайд 2

10 лет ОРСУБД Почему десять? Что произошло в декабре 199 6 г.? Informix, Illustra и Майкл Стоубрейкер Значит ли это, что Стоунбрейкер является отцом объектно-реляционного подхода? А что такое «объектно-реляционные» базы данных? Личная точка зрения: Манифест систем баз данных следующего поколения, SQL, реализации IBM и Oracle 2

Слайд 3

Informix Universal Server Декабрь 199 6 г. – январь 199 7 г. Интеллектуальные большие объекты ( smart large objects ) Индивидуальные типы данных ( Distinct Types ) Типы данных со скрытой структурой ( Opaque Types ) 3

Слайд 4

Informix Universal Server Составные типы данных Могут иметь структуру записи, множества, мультимножества или списка Значениями столбцов таблиц могут быть записи, множества или списки, состоящие в свою очередь из атомарных или структурных значений 4

Слайд 5

Informix Universal Server Тип данных со структурой записи CREATE ROW TYPE <имя типа> ( <имя поля> <тип поля>, . . . ) Три вида типов коллекций: множеств, мультимножеств и списков CREATE TYPE <имя типа> SET <тип элементов> NOT NULL CREATE TYPE < имя типа > MULTISET < тип элементов > NOT NULL CREATE TYPE <имя типа> LIST <тип элементов> NOT NULL 5

Слайд 6

Informix Universal Server Механизм наследования может применяться к типам записей и таблицам Одиночное наследование Все функции, определенные для супертипа, автоматически распространяются на все его подтипы Для подтипов могут определяться свои функции Значения подтипов могут использоваться почти везде, где разрешено употребление значений их супертипов Единственное ограничение возникает при отведении памяти и хранении значений Здесь соответствие типов должно быть точным 6

Слайд 7

Informix Universal Server T ипизированные таблицы ( типами записи) CREATE TABLE … OF TYPE … При определении подтаблиц некоторые свойства супертаблиц могут переопределяться (например, опции хранения) Операции SELECT, UPDATE и DELETE, примененные к супертаблице, распространяются также и на все ее подтаблицы Конструкция ONLY 7

Слайд 8

Informix Universal Server Новые базовые типы данных можно определять одновременно с введением специальных алгоритмов хранения, доступа и индексирования, которые отличаются от стандартных алгоритмов, реализованных в сервере Для введения нового базового типа данных с нестандартными методами доступа нужно определить набор серверных функций, реализующий для нового типа алгоритмы доступа, просмотра, выделения памяти и т.д. Эти функции должны быть написаны на языке C и скомпилированы в объектный формат Далее надо описать новый базовый тип данных, и указать функции, реализующие для этого типа алгоритмы извлечения и записи на диск значений данного типа Модули DataBlade Московская секция ACM SIGMOD 28 декабря 2006 г. 8

Слайд 9

Oracle8 Июнь 199 7 г. Основные доработки: Oracle 9i (2002 г.); наследование и другие возможности, соответствующие SQL:1999 Объектные типы – аналог типа записи в IUS CREATE TYPE < имя типа > AS OBJECT ( < имя поля > < тип поля >, . . . ) Для доступа к отдельным полям значений объектного типа используется точечная нотация 9

Слайд 10

Объектно-реляционные базы данных и язык SQL Два основных отличительных компонента – структурные, определяемые пользователями типы данных ( User Defined Type – UDT ) и типизированные таблицы ( Typed Table ) Первый компонент позволяет определять новые типы данных, которые могут быть гораздо более сложными, чем встроенные типы данных языка SQL Второй компонент – типизированные таблицы – позволяет определять таблицы, строки которых являются экземплярами (или значениями ) UDT , с которым явно ассоциируется таблица 10

Слайд 11

SQL как модель данных SQL – большой и «многослойный» язык Однако, если сопоставлять возможности SQL с возможностями реляционной модели данных, можно установить, что в настоящее время в спецификации SQL представлена законченная модель данных, отличающаяся от реляционной поддержкой мультимножеств и неопределенных значений Развитые возможности структуризации (включая полную систему типов), манипулирования данными и поддержки ограничений 11

Слайд 12

Гармонична ли «объектная» часть модели данных SQL? Далее исключительно личная точка зрения Та часть расширений, которая относится к системе типов (типы коллекций, UDT , наследование и т.д., кроме ссылочных типов), вполне гармонична и не выходит за пределы даже реляционной модели Ссылочные типы, типизированные таблицы и представления, поддержка путевых выражений вызывают подозрения 12