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


Курс.NET

Содержание

Орг. вопросыВключить камеруОтметить присутствующихСлед. Занятие – 30 число (вторник)

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

Слайд 1Курс .NET

Курс .NET

Слайд 2Орг. вопросы
Включить камеру
Отметить присутствующих
След. Занятие – 30 число (вторник)

Орг. вопросыВключить камеруОтметить присутствующихСлед. Занятие – 30 число (вторник)

Слайд 3Хорошая книга
Пол Нильсен
SQL Server 2005. Библия пользователя

Хорошая книгаПол НильсенSQL Server 2005. Библия пользователя

Слайд 4Хорошая книга
Кайл Бэнкер
MongoDB в действии

Хорошая книгаКайл БэнкерMongoDB в действии

Слайд 5Основы SQL

Основы SQL

Слайд 6SQL
Абревиатура SQL обозначает Структурированный Язык Запросов (Structed Query Language). Стандартный

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

создавать, отыскивать, изменять и передавать информацию независимо от используемого сервера баз данных и его местоположения.
Стандарт SQL определяется ANSI (Американским Национальным Институтом Стандартов), а также ISO (Международной организацией по стандартизации).
Для обращения к базе данных используются запросы, написанные на языке SQL. Запросом называется команда, которая передаётся серверу базы данных, и которая сообщает ему какую информацию из таблиц необходимо поместить в память.

SQLАбревиатура SQL обозначает Структурированный Язык Запросов (Structed Query Language). Стандартный язык позволит пользователям, знающим один набор команд,

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

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

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

Слайд 8Команды определения данных
Эти команды относятся к области SQL, называемой DML

(Data Manipulation Language или Язык Манипулирования Данными). Тем не менее,

существует специальная область SQL, называемая DDL (Data Defenition Language или Язык Определения Данных), специально работает над созданием объектов данных.

Команды определения данныхЭти команды относятся к области SQL, называемой DML (Data Manipulation Language или Язык Манипулирования Данными).

Слайд 9Оператор CreateTable
create table ClientInfo
(
FirstName varchar(20),
LastName varchar(20),
Address varchar(20),
Phone varchar(15)
);

Оператор CreateTablecreate table ClientInfo(FirstName varchar(20),LastName varchar(20),Address varchar(20),Phone varchar(15));

Слайд 10Нормальные формы таблиц в SQL
Окончательная цель нормализации сводится к получению

такого проекта БД, в котором каждый факт появляется лишь в

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

Нормальные формы таблиц в SQLОкончательная цель нормализации сводится к получению такого проекта БД, в котором каждый факт

Слайд 11Избыточность данных
избыточность данных проявляется в том, что в нескольких записях

таблицы БД повторяется одна и та же информация. Например, один

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

Избыточность данныхизбыточность данных проявляется в том, что в нескольких записях таблицы БД повторяется одна и та же

Слайд 12Аномалия обновления
аномалия обновления тесно связана с избыточностью данных. предположим, что

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

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

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

Слайд 13Аномалия удаления
аномалия удаления возникает при удалении записей из ненормализованной таблицы.

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

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


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

Слайд 14Первая нормальная форма
Первая нормальная форма подразумевает, что данные объединены в

сущности и удовлетворяют следующим условиям
Каждая единица представлена в скалярном атрибуте
Все

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

Слайд 15Вторая нормальная форма
Вторая нормальная форма гарантирует, что каждый атрибут на

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

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

Слайд 16Третья нормальная форма
Третья нормальная форма проверяет наличие транзитивных зависимостей. Транзитивная

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

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

Слайд 17Нормальная форма Бойса-Кодда (BNCF)
Нормальная форма Бойса-Кодда занимает промежуточное положение между

третьей и четвертой нормальными формами и решает проблемы сущностей, которые

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

Слайд 18Четвертая нормальная форма
Четвертая нормальная форма решает проблемы, создаваемые сложными первичными

ключами. Если два независимых атрибута сведены для формирования ключа с

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

Слайд 19Пятая нормальная форма
Пятая нормальная форма реализует метод проектирования сложных отношений,

включающий в себя множество (три и более) сущностей. Если тройственное

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

Слайд 20А теперь более простыми словами 

А теперь более простыми словами 

Слайд 21Первая нормальная форма
Первая нормальная форма (1НФ) требует, чтобы каждое поле

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

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

Слайд 22Действия по нормализации относительно 1й НФ
Итак, чтобы привести таблицу к

1НФ нужно выполнить следующие шаги:
Все значения полей необходимо привести к

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

Действия по нормализации относительно 1й НФИтак, чтобы привести таблицу к 1НФ нужно выполнить следующие шаги:Все значения полей

Слайд 23Вторая нормальная форма
Следующий шаг в процессе нормализации состоит в удалении

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

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

Слайд 24Переход от 1 НФ к 2 НФ
Определить, на какие части

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

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

Переход от 1 НФ к 2 НФОпределить, на какие части можно разбить первичный ключ так, чтобы некоторые

Слайд 25Пример 2 НФ

Пример 2 НФ

Слайд 26Третья НФ: устранение транзитивных зависимостей
Третья нормальная форма (3НФ) требует, чтобы

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

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

Третья НФ: устранение транзитивных зависимостейТретья нормальная форма (3НФ) требует, чтобы в таблице не имелось транзитивных зависимостей между

Слайд 27Пример неверной БД и того, какой она должна стать

Пример неверной БД и того, какой она должна стать

Слайд 28Переход к 3 НФ от 2 НФ
Определить поля (или группы

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

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

Переход к 3 НФ от 2 НФОпределить поля (или группы полей), от которых зависят другие поля.Создать новую

Слайд 29А теперь совсем простыми словами
В реальности все БД не нормализованные,

потому что практика
При попадании на высокие нагрузки БД обязана быть

не нормированной, потому что порядок поступления данных не фиксирован
Суть – уйдите от аномалии обновления данных и избыточности данных. А удаление часто реализуется флагом удаленности. И программируете как вам удобно. 
А теперь совсем простыми словамиВ реальности все БД не нормализованные, потому что практикаПри попадании на высокие нагрузки

Слайд 30Ссылочная целостность
Обычно реляционная БД состоит из набора взаимосвязанных таблиц. Организация

связи (отношений) между таблицами называется связыванием таблиц. Для поддержки этих

связей необходимо иметь возможность уникальной идентификации каждого отдельного кортежа отношения по значениям его атрибутов. При этом и основное, и подчиненное отношения должны содержать наборы атрибутов, по которым они связаны. В основном отношении это первичный ключ отношения (PRIMARY KEY), который однозначно определяет кортеж основного отношения. Поэтому первичный ключ любой таблицы обязан содержать уникальные непустые значения для каждой строки.
В подчиненном отношении для моделирования связи должен присутствовать набор атрибутов, соответствующий первичному ключу основного отношения. Данный набор атрибутов в подчиненном отношении принято называть внешним или вторичным ключом (FOREIGN KEY). Иначе говоря, внешний ключ – это колонка или набор колонок, чьи значения совпадают с имеющимися значениями первичного ключа другой таблицы. Подобное взаимоотношение между таблицами называется связью (relationship). Связь между двумя таблицами устанавливается путем присвоения значений внешнего ключа одной таблицы значениям первичного ключа другой.
Ссылочная целостностьОбычно реляционная БД состоит из набора взаимосвязанных таблиц. Организация связи (отношений) между таблицами называется связыванием таблиц.

Слайд 31Операции выборки
Извлечение всех данных из таблицы
Извлечение нескольких столбцов из таблицы
Извлечение

данных из таблицы по условию
select * from Туры where Цена

> 27000;
Select * from Туры where Цена in (10000, 20000, 30000);
Select * from Туры where Цена between 10000 and 30000;

Операции выборкиИзвлечение всех данных из таблицыИзвлечение нескольких столбцов из таблицыИзвлечение данных из таблицы по условиюselect * from

Слайд 32Агрегатные функции языка SQL
count извлекает количество записей данного поля.
sum

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

арифметическое среднее (усреднение) всех выбранных значений данного поля.
max извлекает наибольшее из всех выбранных значений данного поля.
min извлекает наименьшее из всех выбранных значений данного поля.
select sum(Цена) from Туры
Агрегатные функции языка SQLcount извлекает количество записей данного поля. sum извлекает арифметическую сумму всех выбранных значений данного

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

значений можно применить ключевое слово DEFAULT
Вставка пустой строки приводит

к добавлению пробела ' ', а не значения NULL
Строки и даты задаются в апострофах.
Можно задать NULL явно, можно задать DEFAULT.

insert into ClientInfo
(FirstName, LastName, Address, Phone)
values('Petr','Petrov','Chehova 13','1234567');
Операции вставки записейПри указании значений конкретных полей вместо использования каких-либо значений можно применить ключевое слово DEFAULT Вставка

Слайд 34Операция вставки записей
insert into ClientInfo (FirstName, LastName, Address, Phone) values('Petr','Petrov','Chehova

13','1234567');
insert into ClientInfo (FirstName, LastName, Address, Phone) values('Ivan','Ivanov','Naberejnaya 13','1234568');
insert into

ClientInfo (FirstName, LastName, Address, Phone) values(null,'Sidorov','Naberejnaya 25','1234569');
select * from ClientInfo;

Операция вставки записейinsert into ClientInfo (FirstName, LastName, Address, Phone) values('Petr','Petrov','Chehova 13','1234567');insert into ClientInfo (FirstName, LastName, Address, Phone)

Слайд 35Операции обновления записей
Команда update позволяет изменять заданные значения записей:
update ClientInfo

set FirstName = 'Andrey' where FirstName = 'Petr';

Операции обновления записейКоманда update позволяет изменять заданные значения записей:update ClientInfo set FirstName = 'Andrey' where FirstName =

Слайд 36Операции удаления записей
Команда delete позволяет изменять заданные значения записей.
delete from

ClientInfo where LastName like 'Petrov';
Запросы с командами insert, update

и delete могут содержать в себе все прочие конструкции языка SQL.
Операции удаления записейКоманда delete позволяет изменять заданные значения записей.delete from ClientInfo where LastName like 'Petrov'; Запросы с

Слайд 37Хранимые процедуры
Упорядоченная последовательность операторов SQL, оформленных в виде единого логического

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

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

Слайд 38Преимущества хранимых процедур
Предоставляется возможность вызывать на выполнение непосредственно хранимый процедуры,

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

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

Слайд 39Удаление хранимых процедур
Для удаления ХП необходимо выполнить
Drop proc НазваниеПроцедуры

Удаление хранимых процедурДля удаления ХП необходимо выполнитьDrop proc НазваниеПроцедуры

Слайд 40Триггеры
Триггер – это хранимая процедура особого типа, вызываемая на выполнение

в ответ на определенные события.
3 основных типа триггеров – триггеры

Insert, Delete, Update
ТриггерыТриггер – это хранимая процедура особого типа, вызываемая на выполнение в ответ на определенные события.3 основных типа

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

средств, подобных ограничению Check («проверка условий»)
Подстановка других операторов вместо операторов

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

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

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

Слайд 43Структуры таблиц (сделано в SQL_Sample)
MainTable с полями
Id – int, ключевое поле,

установить автоинкрементность
Parent – int
Если parent = 0 или -1, то

это корневая единица
Text – nvarchar(max)
numberOfChilds – int
ArchiveLink – int
tempValue - int
Структуры таблиц (сделано в SQL_Sample)MainTable с полямиId – int, ключевое поле, установить автоинкрементностьParent – intЕсли parent =

Слайд 44Структура таблиц (2)
Создать таблицу проектов MainProjects
Int id, автоинкрементное, первичный ключ
Nvarchar(max)

name
Создать таблицу групп MainGroups
Id, автоинкрементное, первичный ключ
Parent
Name
numberOfChilds
Создать таблицу доступа групп

к проекту MainProjectAccess
Id, автоинкрементное, первичный ключ
groupId
projectId
accessType - int

Структура таблиц (2)Создать таблицу проектов MainProjectsInt id, автоинкрементное, первичный ключNvarchar(max) nameСоздать таблицу групп MainGroupsId, автоинкрементное, первичный ключParentNamenumberOfChildsСоздать

Слайд 45Структура таблиц (3)
Создать таблицу служащих MainWorker
Id
Name
Создать таблицу должностей служащих MainWorkerGroup,

обеспечив ссылочную целостность
Id
workerId
groupId

Структура таблиц (3)Создать таблицу служащих MainWorkerIdNameСоздать таблицу должностей служащих MainWorkerGroup, обеспечив ссылочную целостностьIdworkerIdgroupId

Слайд 46Создание ХП для вставки одной записи
StoredProcedure1
Использование переменной @@Identity

Slide042.txt

Создание ХП для вставки  одной записиStoredProcedure1Использование переменной @@IdentitySlide042.txt

Слайд 47Создание ХП для вставки нескольких записей
StoredProcedure1_1

Просмотреть данные в таблице
Изменить поле

Parent у записей, добавить еще несколько записей
Slide043.txt

Создание ХП для вставки нескольких записейStoredProcedure1_1Просмотреть данные в таблицеИзменить поле Parent у записей, добавить еще несколько записейSlide043.txt

Слайд 48Создание ХП для получения поддерева
StoredProcedure2
Вместо «5» подставить нужное значение
Slide044.txt

Создание ХП для получения поддереваStoredProcedure2Вместо «5» подставить нужное значениеSlide044.txt

Слайд 49Создание ХП с параметром
StoredProcedure3
Добавить параметр типа int в параметры ХП
Slide045.txt

Создание ХП с параметромStoredProcedure3Добавить параметр типа int в параметры ХПSlide045.txt

Слайд 50Пример управляющих операторов на задаче получения цепочки родителей
Functions/Table-value…/MainTable_GetParents

Обратить внимание на

объявление переменных
Для вызова – выполнить select * from MainTable_GetParents(9)
Slide046.txt

Пример управляющих операторов на задаче получения цепочки родителейFunctions/Table-value…/MainTable_GetParentsОбратить внимание на объявление переменныхДля вызова – выполнить select *

Слайд 51Триггеры
Добавить триггеры добавления, обновления и удаления для поддержания поля numberOfChilds
Пример

– таблица MainTables
Slide047_delete.txt
Slide047_update.txt
Slide047_insert.txt

ТриггерыДобавить триггеры добавления, обновления и удаления для поддержания поля numberOfChildsПример – таблица MainTablesSlide047_delete.txtSlide047_update.txtSlide047_insert.txt

Слайд 52Подзадача
Создать процедуру получения доступа к проектам по идентификатору пользователя
ProjectAccessByWorkerId
Slide050.txt

ПодзадачаСоздать процедуру получения доступа к проектам по идентификатору пользователяProjectAccessByWorkerIdSlide050.txt

Слайд 53Разбор строки
Задача: создать процедуру получения названий проектор по списку идентификаторов,

разделенных пробелом.
Создать функцию iter_intlist_to_table
Создать процедуру ProjectGetById
Slide051.txt

Разбор строкиЗадача: создать процедуру получения названий проектор по списку идентификаторов, разделенных пробелом.Создать функцию iter_intlist_to_tableСоздать процедуру ProjectGetByIdSlide051.txt

Слайд 54Агрегирующие функции SQL
AVG – среднее арифметическое
COUNT – количество элементов (тип

int)
COUNT_BIG – количество элеметов (тип bigint)
GROUPING – добавляет дополнительный стоблец

к выводу оператора select
MAX – возвращает максимальное среди значений
MIN – возвращает минимальное среди значений
STDEV – возвращает результат среднеквадратичного отклонения по всем значениям, представленных в параметре
STDEVP – возвращает результат среднеквадратичного отклонения по всем значениям, представленным в выборке
SUM – возвращает сумму всех значений
VAR – возвращает дисперсию по всем значениям
VARP – возвращает дисперсию выборки
Во всех функциях все NULL значения игнорируются

Пример использования: SELECT MAX(id)
FROM STUDENTS
WHERE id > 5

Агрегирующие функции SQLAVG – среднее арифметическоеCOUNT – количество элементов (тип int)COUNT_BIG – количество элеметов (тип bigint)GROUPING –

Слайд 55Системные переменные (1)
@@CURSOR_ROWS – какое количество строк находится в настоящее

время в последнем наборе данных курсора, открытом в текущем соединении
@@ERROR

– содержит код ошибки, относящийся к последнему оператору SQL, который был выполнен в текущем соединении. 0 – нет ошибки
@@FETCH_STATUS – содержит индикатор состояния последней операции FETCH с курсором. 0 – успех. Не 0 – неудачное завершение
@@IDENTITY – содержит последнее идентифицированное значение, созданное в текущем соединении.
Системные переменные (1)@@CURSOR_ROWS – какое количество строк находится в настоящее время в последнем наборе данных курсора, открытом

Слайд 56Системные переменные (2)
@@MAX_PRECISION – позволяет получить уровень точности, заданный в

настоящее время для десятичных и других числовых типов данных
@@NESTLEVEL –

содержит информацию о текущем уровне вложенности для вложенных хранимых процедур
@@ROWCOUNT – содержит информацию о количестве строк, затронутых последним оператором.
@@TRANCOUNT – содержит информацию о количестве активных транзакций для текущего соединения
@@VERSION – позволяет получить информацию о текущей версии SQL Server

Пример использования: select @@VERSION

Системные переменные (2)@@MAX_PRECISION – позволяет получить уровень точности, заданный в настоящее время для десятичных и других числовых

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

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

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

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

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


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

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