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


Введение в моделирование данных, базы данных и SQL

Содержание

Анатолий Николаевич Бездушный Антон Михайлович Меденников Кирилл Борисович Теймуразов адрес:ВЦ РАН, м Ленинский проспект, Вавилова 42, ком. 164 тф. 135-54-71 (*4220)«сайтик» с материалами лекцийhttp://bdis.umeta.ru/db Контактная информация

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

Слайд 1Введение в моделирование данных, базы данных и SQL
Лекции 1-2

Введение в моделирование данных, базы данных и SQLЛекции 1-2

Слайд 2Анатолий Николаевич Бездушный
Антон Михайлович Меденников

ccas.ru>
Кирилл Борисович Теймуразов

ccas.ru>
адрес:
ВЦ РАН, м Ленинский проспект, Вавилова 42, ком. 164 тф. 135-54-71 (*4220)
«сайтик» с материалами лекций
http://bdis.umeta.ru/db

Контактная информация

Анатолий Николаевич Бездушный  Антон Михайлович Меденников  Кирилл Борисович Теймуразов  адрес:ВЦ РАН, м Ленинский проспект,

Слайд 3Цели курса
Познакомить с понятиями, возможностями и средствами
Реляционных баз данных

(БД/DB - РБД/RDB)
Систем управления реляционными базами данных (СУБД/DBMS - РСУБД/RDBMS)
Моделирования

данных
Проектирования БД
Языка структурированных запросов (SQL)
Дать вам возможность научиться проектировать и использовать БД
Научить осознавать смысл/назначение этапов проектирования БД
Дать вам возможность освоить правила работы с БД средствами языка SQL (в среде MS SQL Server 2005)
Цели курсаПознакомить с понятиями, возможностями и средствами Реляционных баз данных (БД/DB - РБД/RDB)Систем управления реляционными базами данных

Слайд 4Структура курса

Структура курса

Слайд 5Рекомендуемая литература
Гарсиа-Молина Г.,Ульман Д.,Уидом Д. Системы баз данных Полный курс.

// М.: Ид. «Вильямс», 2002. - 1088 с.
Дейт К. Введение

в системы баз данных. // К.: "Диалектика", 1998. 784 с.
Грабер М. Введение в SQL. // М.:Изд-во “Лори”,1996
Грабер М. Справочное руководство по SQL. - М.: Лори, 1997. - 291 с.
http://citforum.ru/database/edu.shtml http://citforum.ru/database/ http://citforum.ru/database/sql.shtml
Кузнецов С.Д. Базы данных. Вводный курс
Кузнецов С.Д. Основы современных баз данных
Пушников А.Ю. Введение в системы управления базами данных

http://www.intuit.ru (catalog/database/gentheory/ (catalog/database/gentheory/, /catalog/database/sql/ (catalog/database/gentheory/, /catalog/database/sql/, catalog/database/serversdb/)
Рекомендуемая литератураГарсиа-Молина Г.,Ульман Д.,Уидом Д. Системы баз данных Полный курс. // М.: Ид. «Вильямс», 2002. - 1088

Слайд 6«Сайтик» с материалами http://bdis.umeta.ru/db/index.html

«Сайтик» с материалами  http://bdis.umeta.ru/db/index.html

Слайд 7Лабораторные работы
целью - применение знаний теории для разработки собственной системы

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

с SQL,
выполнение работ с демонстрационным заданием,
проектирование, построение и использование БД индивидуального задания,
в ходе каждой лабораторной работы в начале на демонстрационном задании осваивается тема работы, затем решаются соответствующие задачи индивидуального задания,
среда СУБД MS SQL Server 2005,
имеется справочно - методическое пособие к практикуму.
Лабораторные работыцелью - применение знаний теории для разработки собственной системы баз данных,познакомить с промышленными корпоративными СУБД,основное внимание

Слайд 8Пособие - 1

Пособие - 1

Слайд 9Пособие - 2

Пособие - 2

Слайд 10Пособие - 3

Пособие - 3

Слайд 11Пособие - 4

Пособие - 4

Слайд 12Microsoft Enterprise Manager

Microsoft Enterprise Manager

Слайд 13Microsoft Query Analyzer

Microsoft Query Analyzer

Слайд 14Клиенты и серверы локальных сетей
Рабочая станция - для работы пользователя,
потребности

пользователя определяют ее ресурсы
Сервер - предоставляет ресурсы (услуги) рабочим станциям

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

Слайд 15Архитектура "клиент-сервер"
Обеспечение коллективного доступа к ресурсам сети, для которого требуется


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

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

Архитектура

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

станциях
Файловый сервер
общее хранилище файлов для всех рабочих станций
Сервер

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

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

Слайд 17Клиент-сервер












Клиент-сервер

Слайд 18Разделение функций между клиентами и серверами
"Толстый клиент"
клиентские станции должны иметь

достаточную мощностью
на стороне клиента - реализация всей или существенной

части обработки данных (прикладной логики)
сервер может только обеспечивать хранение данных
"Тонкий клиент"
разница в мощностях клиента и сервера велика
клиент только обеспечивает визуальный интерфейс системы
на стороне сервера - хранение и вся обработка данных (необходимы соответствующие программные средства)
"Сервер приложений"
сервера БД осуществляет хранение данных и обеспечивает их целостность
сервера приложений (application serever) обеспечивает обработку данных системы
клиент представляет визуальный интерфейс системы
Разделение функций между клиентами и серверами

Слайд 19БД и СУБД

БД и СУБД

Слайд 20Базовая концепция ИТ
данные должны быть организованы в базы данных (БД)

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

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

Слайд 21Что есть база данных (БД)?
структурированная коллекция логически согласованных данных
служащая

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

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

Слайд 22Характеристики БД
структурированные данные (в отличие от файлов)
типы данных &

«поведение» данных
постоянное существование (хранимость)
данные хранятся во внешней памяти
манипулирование данными
декларативные языки

запросов
процедурные языки программирования БД
согласованность, корректность данных
исполнение операций
быстрое извлечение и сохранение данных
разделение данных
одновременный доступ
достоверность
Характеристики БД структурированные данные (в отличие от файлов)типы данных & «поведение» данныхпостоянное существование (хранимость)данные хранятся во внешней

Слайд 23Что есть СУБД?
коллекция программных средств для создания и управления

базами данных, обеспечивающих
определение
хранимых типов данных (моделей данных предметной области)
построение
сохранение,

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

Слайд 24Ключевые требования к СУБД
согласованное хранение данных
поддержка взаимосвязи данных
обеспечение

надежности хранения
быть в состоянии восстановить последнее согласованное состояние БД

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

Слайд 25Реляционные СУБД (РСУБД)
Распространение реляционных (табличных) СУБД обусловлено:
увеличением объема хранимых данных,


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

понимания набором понятий
РБД - совокупность таблиц
математическим обоснованием (реляционная модель данных - РМД)
Реляционные СУБД (РСУБД)Распространение реляционных (табличных) СУБД обусловлено:увеличением объема хранимых данных, их структурной сложностью, расширением круга пользователей ИС,

Слайд 26
Основные понятия и термины

Основные понятия и термины

Слайд 27Пример-1

Пример-1

Слайд 28Пример-2

Пример-2

Слайд 30Общие понятия реляционного подхода - 1
тип данных
элементарные/простые
домен
базовый тип

данных и логическое выражение, применяемое к элементам типа данных.
множества

допустимых значений
схема отношения (описание таблицы)
именованное множество пар
{имя атрибута, имя домена}
называют заголовком отношения
атрибуты именуют столбцы таблицы
«столбец таблицы» - «атрибут отношения»"
схема БД
набор именованных схем отношений (описаний таблиц)
Общие понятия реляционного подхода - 1тип данных элементарные/простыедомен базовый тип данных и логическое выражение, применяемое к элементам

Слайд 31Общие понятия реляционного подхода - 2
кортеж (строка, запись таблицы)
множество пар

{имя атрибута, значение}
одно вхождение каждого имени атрибута, принадлежащего схеме отношения.
"значение"

является допустимым значением домена атрибута
отношение (таблица)
это множество кортежей
соответствующих одной схеме отношения
называют телом отношения
результат запроса – отношение
Общие понятия реляционного подхода - 2кортеж (строка, запись таблицы)множество пар {имя атрибута, значение}одно вхождение каждого имени атрибута,

Слайд 32Общие понятия реляционного подхода - 3
суперключ, уникальный идентификатор
набор атрибутов
уникально

идентифицируют кортежи отношений
по значениям которых можно однозначно найти требуемый кортеж

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

Слайд 33Общие понятия реляционного подхода - 4
Внешний ключ
множество атрибутов отношения, которые

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

другими
области значений (домены) атрибутов должны быть такими же
внешний ключ в отношении B и соответствующий ему первичный ключ в отношении A обычно представляют отношение вида «один-ко-многим» между A и B. Student(studNo,name) Course (courseNo, subject, equipment) Enrol(studNo,courseNo,labmark)

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

Слайд 34Фундаментальные свойства РБД
отсутствие кортежей-дубликатов
отсутствие упорядоченности кортежей
отсутствие упорядоченности

атрибутов
атомарность значений атрибутов
два базовых требования целостности РМД
целостность сущностей


любой кортеж любого отношения отличим от любого другого кортежа этого отношения
любое отношение должно обладать первичным ключом
целостности по ссылкам
для каждого значения внешнего ключа ссылающегося отношения, в отношении, на которое ведет ссылка, должен
найтись кортеж с таким же значением первичного ключа
либо
значение внешнего ключа должно быть неопределенным (NULL)
Фундаментальные свойства РБД отсутствие кортежей-дубликатов отсутствие упорядоченности кортежей отсутствие упорядоченности атрибутов атомарность значений атрибутов два базовых требования

Слайд 35Сравнимые термины

Сравнимые термины

Слайд 36Реляционные операции

Реляционные операции

Слайд 37SQL SELECT

SQL SELECT

Слайд 38Select-From-Where
Основная форма запроса имеет вид:

SELECT (ВЫБРАТЬ) требуемые атрибуты
FROM

(ИЗ) одной или более таблиц
WHERE (ГДЕ) условие

на записи таблицы
Select-From-WhereОсновная форма запроса имеет вид:	SELECT  (ВЫБРАТЬ) требуемые атрибуты	FROM    (ИЗ) одной или более таблиц	WHERE

Слайд 39БД примеров
Большинство SQL запросов будет использовать БД со следующими заголовками

отношений.
Beers(name, manf)
Bars(name, addr, license)
Drinkers(name, addr, phone)
Likes(drinker, beer)
Sells(bar, beer, price)
Frequents(drinker,

bar)
Подчеркнуты атрибуты первичного ключа

БД примеровБольшинство SQL запросов будет использовать БД со следующими заголовками отношений.			Beers(name, manf) 			Bars(name, addr, license)			Drinkers(name, addr, phone)			Likes(drinker,

Слайд 40Запросы с одной таблицей

Запросы с одной таблицей

Слайд 41Пример
Используя Beers(name, manf), узнаем какие виды пива производит «Guinness Brewing

Worldwide»?

SELECT name
FROM Beers
WHERE manf =
’Guinness

Brewing Worldwide’;

ПримерИспользуя Beers(name, manf), узнаем какие виды пива производит «Guinness Brewing Worldwide»?		SELECT name		FROM Beers		WHERE manf =

Слайд 42 name
‘Guinness Extra Stout’ ‘Guinness Foreign Extra Stout’
‘Harp’
‘Kilkenny’
Результат запроса

Ответ

- отношение с одним атрибутом
name и записи с именами пива

производимого «Guinness Brewing Worldwide», такими как «Guinness».
name		‘Guinness Extra Stout’    ‘Guinness Foreign Extra Stout’		‘Harp’		‘Kilkenny’Результат запросаОтвет - отношение с одним атрибутомname и

Слайд 43Соглашения (регулярные выражения)
[A] – необязательно есть A, может отсутствовать A

или отсутствует
(A), (A)+ – непустая последовательность A A или A A

A A A или A A A A …
A ..., (A)* , {A} – возможно пустая последовательность A A или отсутствует A или A A A A A или A A A A …
A | B | C | D – одно из A, B, C, D A или B C или D
Соглашения (регулярные выражения)[A] – необязательно есть A, может отсутствовать  A 			или			отсутствует(A), (A)+ – непустая последовательность A

Слайд 44Структура Select - а
SELECT[all|distinct]
{*|{table.*|expr[alias]|view.*}
[,{table.*|expr[alias]}]...}
FROM table [alias][,table[alias]] ...
[WHERE condition]
[GROUP BY

expr [,expr] ...]
[HAVING condition]
[{UNION|UNION ALL|INTERSECT|MINUS}
SELECT ...]
[ORDER BY {expr|position}


[ASC|DESC][,expr|position}[ASC|DESC].
Структура Select - аSELECT[all|distinct] 		{*|{table.*|expr[alias]|view.*}		[,{table.*|expr[alias]}]...}FROM table [alias][,table[alias]] ...[WHERE condition][GROUP BY expr [,expr] ...] [HAVING condition][{UNION|UNION ALL|INTERSECT|MINUS} 		SELECT

Слайд 45SELECT
SELECT [[ALL] | DISTINCT]
{ * | элемент_SELECT [,элемент_SELECT] ...}
FROM

{базовая_таблица | представление} [псевдоним] [,{базовая_таблица | представление} [псевдоним]] ...
WHERE

[NOT] WHERE_условие [[AND|OR][NOT] WHERE_условие]...
[GROUP BY фраза [HAVING фраза]];

SELECT SELECT [[ALL] | DISTINCT]{ * | элемент_SELECT [,элемент_SELECT] ...}FROM {базовая_таблица | представление} [псевдоним] [,{базовая_таблица | представление}

Слайд 46Элемент_SELECT
[таблица.]* | значение | SQL_функция | системная_переменная



Значение – это
[таблица.]столбец | (выражение) | константа |

переменная
Выражение– это
{[ [+] | - ] {значение | функция_СУБД} [ + | - | * | ** ]}...
Элемент_SELECT  [таблица.]* | значение | SQL_функция | системная_переменная Значение – это  [таблица.]столбец | (выражение) |

Слайд 47Фраза WHERE
WHERE_условие:
значение { = | | < |

| >= }
{ значение | (

подзапрос ) }
значение_1 [NOT] BETWEEN
значение_2 AND значение_3
значение [NOT] IN
{ ( константа [,константа]... ) | ( подзапрос ) }
[таблица.]столбец [NOT] LIKE 'строка_символов' [ESCAPE 'символ']
значение IS [NOT] NULL
EXISTS ( подзапрос )
Фраза WHERE WHERE_условие:значение { = | | < | | >= } 		{ значение | ( подзапрос

Слайд 48Смысл запроса с одной таблицей
Используя отношения/таблицы, указанные в FROM части
Осуществить

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

с требованиями SELECT части
выбрать данные указанных столбцов,
выполнить необходимое их преобразование
Смысл запроса с одной таблицейИспользуя отношения/таблицы, указанные в FROM частиОсуществить отбор записей, следуя указаниям WHERE частиПрименить операцию

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

ли текущая запись условиям WHERE части
Если да, в соответствии с

требованиями SELECT части выбираем значения атрибутов, вычисляем выражения, используя элементы текущей записи
Операционная семантикаПоследовательно перебираем записи таблицы, указанной в FROM частиПроверяем, удовлетворяет ли текущая запись условиям WHERE частиЕсли да,

Слайд 50* в SELECT части
Если в FROM части указано одно отношение,

то символ * в SELECT части означает - “все атрибуты

этого отношения”
Пример для отношения Beers(name, manf):
SELECT *
FROM Beers
WHERE manf =
’Guinness Brewing Worldwide’;
* в SELECT частиЕсли в FROM части указано одно отношение, то символ  * в SELECT части

Слайд 51name

manf
‘Guinness Extra Stout’ ‘Guinness Brewing Worldwide’
‘Guinness Foreign Extra Stout’ ‘Guinness Brewing Worldwide’
‘Harp’ ‘Guinness Brewing Worldwide’
‘Kilkenny’ ‘Guinness Brewing Worldwide’

Результат запроса


Результат содержит все атрибуты Beers записей пива производимого «Guinness Brewing Worldwide».

name

Слайд 52Company(sticker, name, country, stockPrice)

Все компании UK, имеющие акции дороже >

50:







Заголовок результирующего отношения:
R(sticker, name, country, stockPrice)
Еще пример
SELECT * FROM

Company WHERE country=“UK” AND stockPrice > 50
Company(sticker, name, country, stockPrice)Все компании UK, имеющие акции дороже > 50:Заголовок результирующего отношения: R(sticker, name, country, stockPrice)Еще

Слайд 53Переименование атрибутов
Если необходимо, чтобы столбец результата имел другое имя, то

используя AS

имя> , можно переименовать столбец.
Пример для Beers(name, manf):
SELECT name AS beer, manf
FROM Beers
WHERE manf =
‘Guinness Brewing Worldwide’
Переименование атрибутовЕсли необходимо, чтобы столбец результата имел другое имя, то используя

Слайд 54beer

manf
‘Guinness Extra Stout’ ‘Guinness Brewing Worldwide’
‘Guinness Foreign Extra Stout’ ‘Guinness Brewing Worldwide’
‘Harp’ ‘Guinness Brewing Worldwide’
‘Kilkenny’ ‘Guinness Brewing Worldwide’

Результат запроса


beer

Слайд 55Выражения в SELECT части
Любое имеющее смысл выражение можно указать как

элемент SELECT части (атрибут результирующего отношения, столбец таблицы)
Пример для

Sells(bar, beer, price):
SELECT bar, beer,
price * 28.5 AS priceInRub
FROM Sells;

Выражения в SELECT частиЛюбое имеющее смысл выражение можно указать как элемент SELECT части (атрибут результирующего отношения, столбец

Слайд 56Результат запроса
bar beer priceInRub
Удача Kilkenny 180
Встреча

Miller 70
… … …

Результат запроса		bar		beer	   	priceInRub		Удача 	Kilkenny	    180		Встреча 	Miller	     70		 …

Слайд 57Константные выражения
Используя Likes(drinker, beer):

SELECT drinker,
‘любит Харп’ AS whoLikesHarp
FROM Likes
WHERE beer

= ‘Harp’;

Константные выраженияИспользуя Likes(drinker, beer):	SELECT drinker,		‘любит Харп’ AS whoLikesHarp	FROM Likes	WHERE beer = ‘Harp’;

Слайд 58Результат запроса
drinker whoLikesHarp
‘Алекс’ ‘любит Харп’
‘Тим’ ‘любит Харп’
… …

Результат запроса		drinker	whoLikesHarp		‘Алекс’	‘любит Харп’		‘Тим’	‘любит Харп’		 …		 …

Слайд 59Сложные выражения в WHERE части
В Sells(bar, beer, price) найти стоимость

пива «Харп» в баре «Встреча» :

SELECT price
FROM Sells
WHERE bar =

‘Встреча’ AND
beer = ‘Harp’;

Сложные выражения в WHERE частиВ Sells(bar, beer, price) найти стоимость пива «Харп» в баре «Встреча» :		SELECT price		FROM

Слайд 60Элементы условий
Что можно использовать в WHERE части:

имена атрибутов отношений
операторы сравнения: =, ,

>, <=, >=
арифметические операторы: stockprice*2
строковые операторы (“||” конкатенация).
лексикографический порядок при сравнении строк
дополнение строк пробелами до равной длины
сопоставление с шаблоном: s LIKE p
операторы/функции над датами, временными значениями
Элементы условийЧто можно использовать в WHERE части:    имена атрибутов отношений   операторы сравнения:

Слайд 61Важные моменты
Две одиночных кавычки в строке представляют саму кавычку (апостроф

- ').
Условия в WHERE части могут использовать операции AND, OR,

NOT, и скобки в соответствии с обычным способом построения логических выражений.
SQL не чувствителен к регистру букв. Прописные и строчные буквы суть одно и тоже, пока не заключены в двойные кавычки (").
Важные моментыДве одиночных кавычки в строке представляют саму кавычку (апостроф - ').Условия в WHERE части могут использовать

Слайд 62Шаблоны
WHERE часть может включать условия, в которых строки сопоставляются с

шаблонами, чтобы обнаружить соответствия.
LIKE или NOT LIKE


Шаблон это строка в кавычках с метасимволами
% = “любая цепочка символов”
_ = “любой символ”
ШаблоныWHERE часть может включать условия, в которых строки сопоставляются с шаблонами, чтобы обнаружить соответствия. LIKE или

Слайд 63Пример
В Drinkers(name, addr, phone) найти с любителей пива с тф.

номером от «МТС» или «Мегафон» - 916 или 926 :

SELECT

name
FROM Drinkers
WHERE phone LIKE ’89_6%’; P -> 89D6S D -> цифра | S -> цифра S |
ПримерВ Drinkers(name, addr, phone) найти с любителей пива с тф. номером от «МТС» или «Мегафон» - 916

Слайд 64Пример

Company(sticker, name, address, country, stockPrice)

Найти все компании из UK, чей

адрес содержит ‘London’:


SELECT * FROM Company WHERE country=‘UK’

AND address LIKE ‘% London %’
ПримерCompany(sticker, name, address, country, stockPrice)Найти все компании из UK, чей адрес содержит ‘London’:SELECT  * FROM

Слайд 65Обзор проектирования и создания БД (лаб.2)

Обзор проектирования и создания БД (лаб.2)

Слайд 66Проектирование РБД

Проектирование РБД

Слайд 67Этапы построения приложения БД-1
Этап 1: анализ предметной области приложения
Обсуждаем с

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

выдвигаются к ней, к приложению

Этапы построения приложения БД-1Этап 1: анализ предметной области приложенияОбсуждаем с заказчиком, коллегами, что подлежит моделированию в предметной

Слайд 68Требования предметной области
предустановленный набор должностей
перечень должностей отдела определяется штатным расписанием
строка

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

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

Слайд 69Этапы построения приложения БД-2
Этап 2: Концептуальное моделирование
Требуется язык моделирования, чтобы

выразить то, что мы хотим
ER модель данных – наиболее популярный

язык для этих целей
выход: ER диаграммы предметной области
Этапы построения приложения БД-2Этап 2: Концептуальное моделированиеТребуется язык моделирования, чтобы выразить то, что мы хотимER модель данных

Слайд 70Лаб.2 - концептуальная схема данных - 1

Лаб.2 - концептуальная схема данных - 1

Слайд 71Лаб.2 - концептуальная схема данных - 2

Лаб.2 - концептуальная схема данных - 2

Слайд 72Этапы построения приложения БД-3
Этап 3: отображаем концептуальную схему предметной области

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

усовершенствования схемы данных, чтобы по реляционной схеме получить хорошую реляционную схему
Выход:
имеем на «бумаге» хорошую реляционную схему
Этапы построения приложения БД-3Этап 3: отображаем концептуальную схему предметной области в реляционную схемуиспользуем набор правил для этого

Слайд 73Этапы построения приложения БД-4
Этап 4: реализуем РБД
используя язык РСУБД SQL

DDL
create table,
alter table,
delete table …
Физическое моделирование, в основном через SQL

DDL
управление размещением файлов РБД, создание индексов …
Этап 5: манипулируем РБД
используя язык РСУБД SQL DML
select
insert, update
delete
Этапы построения приложения БД-4Этап 4: реализуем РБДиспользуя язык РСУБД SQL DDLcreate table,alter table,delete table …Физическое моделирование, в

Слайд 74Этапы построения приложения БД-5
Следующие этапы могут включать:
язык SQL может оказаться

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

Java, C/C++, Delphi, и т.п., чтобы осуществить взаимодействие с РСУБД, чтобы выполнить все требуемые от приложения БД действия.
Этапы построения приложения БД-5Следующие этапы могут включать:язык SQL может оказаться недостаточным для реализации требуемых вам действийтогда пишем

Слайд 75Итого, проектирование РБД - 1
Анализ предметной области
Концептуальное моделирование
построение концептуальных

схем(ER-диаграмм)
настройки/управление отображением
Логическое моделирование
построение реляционных схем (ER-диаграмм
Схемы РБД
Физическое моделирование
настройки/управление

характеристиками физического размещения

Итого, проектирование РБД - 1Анализ предметной областиКонцептуальное моделирование построение концептуальных схем(ER-диаграмм)настройки/управление отображением Логическое моделирование построение реляционных схем

Слайд 76Обзор концептуального проектирования

Обзор концептуального проектирования

Слайд 77Обзор концептуального моделирования
Инфологическая модель данных "Сущность-связь"
Основные понятия
Сущность – любой различимый

объект
Атрибут – поименованная характеристика сущности.
Ключ – минимальный набор

атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности.
Связь – ассоциирование двух или более сущностей.
Графический язык описания концептуальных/ семантических/инфологических моделей
ER-диаграммы (Entity-Relationship) - запись описания предметной модели средствами ER-модели (Питер Чен)

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

Слайд 78address
name
ssn
Person
buys
makes
employs
Company
Product
name
category
stockprice
name
price
Базовые понятия

addressnamessnPersonbuysmakesemploysCompanyProductnamecategorystockpricenamepriceБазовые понятия

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

набор атрибутов





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

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

Слайд 80Сущность
реальный или представляемый объект, существующий сам по себе, отличимый от

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

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

Слайд 81Атрибут
поименованная характеристика / свойство сущности.
любая деталь, которая служит для
уточнения,


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

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

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

Слайд 82Ассоциации/отношения
Математическое определение:
Если A, B - множества, то отношение R –

это подмножество произведения A x B (множества пар элементов A,

B )
A={1,2,3}, B={a,b,c,d},
R = {(1,a), (1,c), (3,b)}

Подмножество Product x Company выражается:
Ассоциации/отношенияМатематическое определение:Если A, B - множества, то отношение R – это подмножество произведения A x B (множества

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

отыскания одних сущностей по значениям других
изображаются
помеченными ромбами или шестиугольниками
[могут иметь

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

Слайд 84Связь
бинарная, устанавливаемая между двумя
сущностями, атрибутами, ассоциациями
сущностями или между сущностью и

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


степень связи – 0, 1, цифра, M ("много")
необходимое пояснение.
возможны три вида связей.
Связьбинарная, устанавливаемая между двумясущностями, атрибутами, ассоциациямисущностями или между сущностью и ей же самой (рекурсивная связь)изображаютсяненаправленными линиями, над

Слайд 85
один-к- одному:

многие-к-одному

многие-ко-многим
Множественность ER отношений/связей



один-к- одному:многие-к-одномумногие-ко-многимМножественность ER отношений/связей

Слайд 86Связь один-к-одному (1:1)
связи может участвовать только один экземпляр
каждому экземпляру А

соответствует 1 [или 0] представителей В
одноточечный вход
конец связи
обязательный
изображается сплошной

линией,
указывается степень - 1
необязательный
изображается прерывистой линией.
указывается степень - 0
Связь один-к-одному (1:1)связи может участвовать только один экземпляркаждому экземпляру А соответствует 1 [или 0] представителей Водноточечный входконец

Слайд 87Связь один-ко-многим (1:M)
одному представителю сущности А соответствуют 0, 1 или

несколько представителей сущности В.
для сущности В в связи могут использоваться

много экземпляров



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

Связь один-ко-многим (1:M)одному представителю сущности А соответствуют 0, 1 или несколько представителей сущности В.для сущности В в

Слайд 88Связь многие-ко-многим (M :M)
множество связей между одними и теми же

сущностями


тернарные связи




Связь многие-ко-многим (M :M)множество связей между одними и теми же сущностямитернарные связи

Слайд 89Многообразие связей
полигамный брак
моногамный брак
многоженство
многомужие

Многообразие связейполигамный бракмоногамный бракмногоженствомногомужие

Слайд 90Многосторонние связи
Как моделировать отношение покупки(purchase) между покупателями (buyer), товарами(product) и

магазинами(store)?

Многосторонние связиКак моделировать отношение покупки(purchase) между  покупателями (buyer), товарами(product) и магазинами(store)?

Слайд 91Атрибуты связи

Атрибуты связи

Слайд 92Преобразование n-арных связей в бинарные
Purchase
Person
Store
Product
StoreOf
ProductOf
BuyerOf
date





Преобразование n-арных связей в бинарныеPurchasePersonStoreProductStoreOfProductOfBuyerOfdate

Слайд 93Связи: резюме
Отношения моделируются как математическое множество
имеются бинарные и n-арные связи
n-арные

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

многие-ко-многим
ограничения стрелок
атрибуты связей
Необязательны, но полезны
Связи: резюмеОтношения моделируются как математическое множествоимеются бинарные и n-арные связиn-арные связи можно выразить через бинарные ограничения на

Слайд 94Ограничения целостности данных

Ограничения целостности данных

Слайд 95Ограничения целостности данных
Ограничения = утверждения о том, что обязательно должно

быть истинным в массиве данных, в БД
Указываются в схеме БД
Ограничение

– это взаимосвязь между элементами данных, поддержка которых возлагается на СУБД.
Важный аспект проектирования БД

Ограничения целостности данныхОграничения = утверждения о том, что обязательно должно быть истинным в массиве данных, в БДУказываются

Слайд 96Почему ограничения важны?
Представляют больше смысла/семантики данных
помогают лучше понять данные
Позволяют ссылаться

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

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

Слайд 97Моделирование ограничений
Выявление ограничений – часть процесса моделирования
Обычно используемые отношения:
Ключи:
номер

паспорта, ИНН уникально идентифицируют персону
Ограничения уникальности значений (на отдельные):
персона

может иметь одну мать
Ограничения ссылочной целостности:
если персона является сотрудником компании, то компания должна иметься в БД
Ограничения области значений:
возраст людей представляется значениями между 0 и 150
Ограничения общего вида: все остальное
средняя цена пива не должна превышать 150
Моделирование ограниченийВыявление ограничений – часть процесса моделированияОбычно используемые отношения:Ключи: 	номер паспорта, ИНН уникально идентифицируют персонуОграничения уникальности значений

Слайд 98Ключи
Каждая каждое множество сущностей должно иметь ключ
почему?
Ключ может представляться более,

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

указать на ER-диаграмме
В РБД один из ключей является первичным
КлючиКаждая каждое множество сущностей должно иметь ключпочему?Ключ может представляться более, чем одним атрибутомМожет быть более одного ключа

Слайд 99Ключи в E/R диаграммах
address
name
ssn
Person
Product
name
category
price
Нет формального способа указать
в ER диаграмме несколько

ключей
Подчеркивание:

Ключи в E/R диаграммахaddressnamessnPersonProductnamecategorypriceНет формального  способа указать в ER диаграмме несколько ключейПодчеркивание:

Слайд 100Ограничения на отдельные значения
Отдельное значение играет индивидуальную роль, представляет отдельный

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

обязательным или нет (указывается NULL)
Связи многие-к-одному, многие-ко-многим могут сопровождаться константой
Ограничения на отдельные значенияОтдельное значение играет индивидуальную роль, представляет отдельный факт, конкретное понятиеАтрибуты сущностей имеют одиночные значенияМожно

Слайд 101Ограничения ссылочной целостности
Ограничения на отдельные значения
не более чем одно значение

имеется в данной роли
Ограничения ссылочной целостности:
ровно одно значение имеется в

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

Слайд 102Ограничения ссылочной целостности
В некоторых формализмах можно ссылаться на другие объекты

и получать вместо них мусор
«висячие» указатели в C/C++
«Ограничения ссылочной целостности»

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

Слайд 103Ограничения ссылочной целостности
Company
Product
makes
Company
Product
makes

Ограничения ссылочной целостностиCompanyProductmakesCompanyProductmakes

Слайд 104Другие виды ограничений
ограничения области значений
более общие ограничения
можно указать комментриями

Другие виды ограниченийограничения области значений более общие ограниченияможно указать комментриями

Слайд 105Слабые множества сущностей-2
Иногда сущностям необходимо «помощь», чтобы обеспечить их уникальную

идентификацию

Набор сущностей E называется слабым (weak), если для того, чтобы

уникально идентифицировать сущности E , нам нужно «проследовать» от E по одной или нескольким связям и использовать ключ(и) соответствующих сущностей
Слабые множества сущностей-2Иногда сущностям необходимо «помощь», чтобы обеспечить их уникальную идентификациюНабор сущностей E называется слабым (weak), если

Слайд 106Техники моделирования...

Техники моделирования...

Слайд 107Принцип проектирования 1: достоверность, будь точен
Purchase
Product
Person
President
Person
Country
Teaches
Course
Instructor

Принцип проектирования 1: достоверность,  будь точенPurchaseProductPersonPresidentPersonCountryTeachesCourseInstructor

Слайд 108Принцип проектирования 2: отсутствие избыточности
Purchase
Product
Store
date
personName
personAddr

Принцип проектирования 2: отсутствие избыточностиPurchaseProductStoredatepersonNamepersonAddr

Слайд 109Принцип проектирования 3: адекватные сущности
Purchase
Product
Person
Store
date
Dates

Принцип проектирования 3: адекватные сущностиPurchaseProductPersonStoredateDates

Слайд 110Избегай избыточности
Избыточность возникает, когда мы одно и тоже можем выразить/представить

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

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

Слайд 111Пример: хорошо
Beers
Manfs
ManfBy
name
Производитель имеет ровно один адрес
name
addr

Пример: хорошоBeersManfsManfBynameПроизводитель имеет ровно один адресnameaddr

Слайд 112Пример: плохо
Beers
Manfs
ManfBy
name
Производитель пива указывается дважды: как атрибут и как соответствующая

сущность
name
manf
addr

Пример: плохоBeersManfsManfBynameПроизводитель пива указывается дважды:  как атрибут и как соответствующая сущностьnamemanfaddr

Слайд 113Пример : плохо
Beers
name
Повторяем адрес производителя каждый раз для каждого сорта

пива.
Теряем адрес, если временно нет данных по сортам пива производителя


manf

manfAddr

Пример : плохоBeersnameПовторяем адрес производителя каждый раз для каждого сорта пива.Теряем адрес, если временно нет данных по

Слайд 114Множества сущностей vs. атрибуты
Множество сущностей должно удовлетворять хотя бы одному

из следующего:
имеет хотя бы один атрибут, не относящийся к ключу,

более чем «имя» чего-то
или
представляет “много” в многие-к-одному или многие-ко-многим связи
Множества сущностей vs. атрибутыМножество сущностей должно удовлетворять хотя бы одному из следующего:имеет хотя бы один атрибут, не

Слайд 115Пример : хорошо
Beers
Manfs
ManfBy
name
Manfs заслуживает того, чтобы быть сущностью, поскольку имеет

неключевой атрибут addr.

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

“многие” в связи многие-к-одному с ManfBy

name

addr

Пример : хорошоBeersManfsManfBynameManfs заслуживает того, чтобы быть сущностью, поскольку имеет неключевой атрибут addr.Beers заслуживает того, чтобы быть

Слайд 116Пример: хорошо
Beers
name
Производителя не нужно представлять сущностью, поскольку мы фиксируем о

нем ничего более, чем имя
manf

Пример: хорошоBeersnameПроизводителя не нужно представлять сущностью, поскольку мы фиксируем о нем ничего более, чем имяmanf

Слайд 117Пример: плохо
Beers
Manfs
ManfBy
name
Поскольку фиксируем о производителе только имя и он не

является концом “многие” в какой-либо связи, производитель не должен представляться

множеством сущностей.

name

Пример: плохоBeersManfsManfBynameПоскольку фиксируем о производителе только имя и он не является концом “многие” в какой-либо связи, производитель

Слайд 118Слабые множества сущностей
University
Team
affiliation
number
sport
name


отношение Team:

Sport

Number AffiliatedUniversity

плавание 15 МФТИ


- нужны все атрибуты, что составляют ключ сущности Team
- не нужно отношение для Affiliation

Слабые множества сущностейUniversityTeamaffiliationnumbersportnameотношение Team:    Sport

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

ли свойство быть ключем
Они делают все множества сущностей слабыми, которым

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

Слайд 120Когда нам нужны слабые множества сущностей?
Обычная причина в том, что

нет глобального авторитетного источника, способно формировать уникальные ID
Маловероятно, что может

быть достигнуто какое-согласие по сопоставлению уникальных номеров футболистам всех футбольных команд мира
Когда нам нужны слабые множества сущностей?Обычная причина в том, что нет глобального авторитетного источника, способно формировать уникальные

Слайд 121ER резюме
Основные элементы
сущности, атрибуты, множества сущностей
Связи/ассоциации: бинарные, n-арные, преобразование n-арных

в бинарные
роли связей, атрибуты связей
подклассы (isa связи)
Ограничения
на on связи
многие-к-одному, один-к-одному,

многие-ко-многим
ограничения стрелок
ключи, отдельные значения, ссылочная целостность, области значений, ограничения общего вида
ER резюмеОсновные элементысущности, атрибуты, множества сущностейСвязи/ассоциации: бинарные, n-арные, преобразование n-арных в бинарныероли связей, атрибуты связейподклассы (isa связи)Ограниченияна

Слайд 122Построение ER-модели –1
выявление потенциальных сущностей
выявление связей, их типов
выявление неявных

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

уникального идентификатора сущности
атрибут, комбинация атрибутов, комбинация связей или комбинация связей и атрибутов, уникально отличающая любой экземпляр сущности от других экземпляров сущности того же типа; «указывает» экземпляр
устраняются атрибуты, зависящие только от части уникального идентификатора.
выявление основы отдельной сущности
устраняются атрибуты, зависящие от атрибутов, не входящих в уникальный идентификатор
Построение ER-модели –1 выявление потенциальных сущностейвыявление связей, их типоввыявление неявных сущностей,

Слайд 123Построение ER-модели - 2
выявление подтипов и супертипов сущностей
моделирование наследования типа

сущности
разрешение связей «многие-ко-многим»
уточняемые степени связей
выявление сильных связей «один-ко-многим»
каскадные удаления
определения потенциально

допустимого множества значений атрибута сущности (домена)
ограничения целостности значений атрибутов
определение ограничений целостности сущностей и связей
процедурные действия
Построение ER-модели - 2выявление подтипов и супертипов сущностеймоделирование наследования типа сущностиразрешение связей «многие-ко-многим»уточняемые степени связейвыявление сильных связей

Слайд 124Трансляция ER модели в реляционную

Трансляция ER модели в реляционную

Слайд 125Трансляция ER диаграмм в реляционную схему
Базовые варианты
Множество сущностей E =

отношение с атрибутами E
связь R = отношение с ключами связываемых

множеств сущностей + непосредственно атрибуты R
Специальные случаи
комбинирование двух отношений
трансляция слабых множеств сущностей
трансляция isa связей и подклассов
Трансляция ER диаграмм в реляционную схемуБазовые вариантыМножество сущностей E = отношение с атрибутами Eсвязь R = отношение

Слайд 126NULL значения

NULL значения

Слайд 127NULL значения
Кортежи SQL отношений могут содержать NULL в качестве значения.
Смысл

зависит от контекста. Два общих случая:
Пропущено/Неизвестно: знаем бар «Встреча» имеет

адрес, но не знаем какой.
Неприменимо : значение атрибута spouse (супруга) для холостого мужчины.
Если x=NULL, то 4*(3-x)/7 - NULL
NULL значенияКортежи SQL отношений могут содержать NULL в качестве значения.Смысл зависит от контекста. Два общих случая:Пропущено/Неизвестно: знаем

Слайд 128Сравнение NULL со значениями
Логические условия в SQL относятся к трехзначной

логике :
TRUE, FALSE, UNKNOWN (неопределенно).
Когда некоторое значение сравнивается с

NULL, значение результата - UNKNOWN.
Если x=NULL, то (x=‘Встреча’) – UNKNOWN
Результат запроса включает кортеж, если значение выражения WHERE части
TRUE (ни FALSE, ни UNKNOWN).
Сравнение NULL со значениямиЛогические условия в SQL относятся к трехзначной логике : TRUE, FALSE, UNKNOWN (неопределенно).Когда некоторое

Слайд 129Из отношения Sells:
bar beer price
Встреча Харп NULL
SELECT bar
FROM Sells
WHERE price < 20.0 OR price

>= 20.0; Бар «Встреча» не попадает в результат.
Что делать?
Пример

Из отношения Sells:			bar		beer		price			Встреча	Харп		NULL	SELECT bar	FROM Sells	WHERE price < 20.0 OR price >= 20.0;    Бар «Встреча»

Слайд 130Проверка на Null
Можно явно проверить на наличие NULL значения:
x IS

NULL
x IS NOT NULL

SELECT bar
FROM Sells
WHERE price

20.0 OR price >= 20.0 OR price IS NULL

Включены все бары.
Проверка на NullМожно явно проверить на наличие NULL значения: x IS NULLx IS NOT NULL	SELECT bar	FROM

Слайд 131Трехзначная логика
Чтобы понять, что представляют AND, OR, и NOT в

трехзначной логике можно считать, что
TRUE = 1, FALSE =

0, UNKNOWN = ½.
x AND y = min(x, y) x OR y = max(x, y) NOT(x) = 1-x
Пример:
TRUE AND (FALSE OR NOT(UNKNOWN)) = MIN(1, MAX(0, (1 - ½ ))) =
MIN(1, MAX(0, ½ ) = MIN(1, ½ ) = ½.
Трехзначная логикаЧтобы понять, что представляют AND, OR, и NOT в трехзначной логике можно считать, что TRUE =

Слайд 132двухначная логика != трехзначной логике
Некоторые общие законы, например, коммутативность AND,

сохраняется в трехзначной логике.
Но некоторые нет, например, : “закон

отсутствия середины,”
p OR NOT p = TRUE.
Если p = UNKNOWN, то получаем
MAX( ½, (1 – ½ )) = ½ ( != 1)
двухначная логика != трехзначной логикеНекоторые общие законы, например, коммутативность AND, сохраняется в трехзначной логике.Но некоторые нет, например,

Слайд 133Запросы с несколькими отношениями

Запросы с несколькими отношениями

Слайд 134Запросы с несколькими отношениями
Часто требуемые запросы должны комбинировать данные из

более одного отношения
Можно обратиться к нескольким отношениям в одном запросе

указав их всех в FROM части
Чтобы различить одноименные атрибуты разных отношений, следует указывать отношение
<отношение>.<атрибут>
Запросы с несколькими отношениямиЧасто требуемые запросы должны комбинировать данные из более одного отношенияМожно обратиться к нескольким отношениям

Слайд 135Пример
Используя отношения Likes(drinker, beer) и Frequents(drinker, bar), найти сорта пива,

предпочитаемые посетителями бара «Встреча»

SELECT beer
FROM Likes, Frequents
WHERE bar = ’Встреча’

AND
Frequents.drinker = Likes.drinker;
ПримерИспользуя отношения Likes(drinker, beer) и Frequents(drinker, bar), найти сорта пива, предпочитаемые посетителями бара «Встреча»	SELECT beer	FROM Likes, Frequents	WHERE

Слайд 136Пример
drinker bar drinker beer

tv1 tv2
Алекс

Харп
Алекс Встреча


Likes
Frequents


Пример	drinker    bar		drinker   beertv1								tv2					 Алекс	   Харп	Алекс	  Встреча						Likes	  Frequents

Слайд 137Еще пример

Product (pname, price, category, maker)
Purchase (buyer, seller, store,

product)
Company (cname, stockPrice, country)
Person(pname, phoneNumber, city)

Найти персон, живущих в Долгопрудном,

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

SELECT pname, store FROM Person, Purchase WHERE pname=buyer AND city=’Долгопрудный’ AND product=‘компьютер’

Еще пример Product (pname, price, category, maker)Purchase (buyer, seller, store, product)Company (cname, stockPrice, country)Person(pname, phoneNumber, city)Найти персон,

Слайд 138Одноименные атрибуты
Product (name, price, category, maker)
Purchase (buyer, seller, store, product)
Person(name,

phoneNumber, city)
Найти имена персон покупающих телефоны:
SELECT Person.name
FROM

Person, Purchase, Product
WHERE Person.name=Purchase.buyer
AND product=Product.name
AND Product.category=‘телефон’
Одноименные атрибутыProduct (name, price, category, maker)Purchase (buyer, seller, store, product)Person(name, phoneNumber, city)Найти имена персон покупающих телефоны:SELECT

Слайд 139Псевдонимы
Иногда в запросах нужно использовать две копии одного и того

же отношения
Чтобы различать копии, в FROM части после имени копии

указывают «псевдоним» (алиас, alias).
Можно переименовывать отношения для лучшей «читаемости» запросов

ПсевдонимыИногда в запросах нужно использовать две копии одного и того же отношенияЧтобы различать копии, в FROM части

Слайд 140Пример
В Beers(name, manf) найти все пары наименований пива одного и

того же производителя.
не выводить пары вида (Харп, Харп).
выводить пары в

алфавитном порядке, например, (Миллер, Харп), не (Харп, Миллер).
SELECT b1.name, b2.name
FROM Beers b1, Beers b2
WHERE b1.manf = b2.manf AND
b1.name < b2.name;
ПримерВ Beers(name, manf) найти все пары наименований пива одного и того же производителя.не выводить пары вида (Харп,

Слайд 141Еще пример
SELECT product1.maker, product2.maker
FROM Product as product1, Product

as product2
WHERE product1.category=product2.category
AND product1.maker product2.maker
Найти

пары компаний, производящих товары одной и той же категории

Product ( name, price, category, maker)

Еще примерSELECT product1.maker, product2.makerFROM   Product as product1, Product as product2WHERE product1.category=product2.category   AND product1.maker

Слайд 142Псевдонимы
Псевдонимы вводятся компилятором языка SQL автоматически

Product ( name, price, category, maker)




Становится:





Не срабатывает, когда Product встречается более одного раза:
В этом случае пользователь должен явно определить псевдоним.

SELECT name
FROM Product
WHERE price > 100

SELECT Product.name
FROM Product as Product
WHERE Product.price > 100

ПсевдонимыПсевдонимы вводятся компилятором языка SQL автоматически     Product ( name, price, category, maker)Становится:

Слайд 143Формальная семантика запросов с несколькими отношениями
Почти тоже самое, что для

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

FROM части.
применить условия отбора из WHERE части
выполнить проекцию на список атрибутов и выражений в SELECT части
Формальная семантика запросов с несколькими отношениямиПочти тоже самое, что для запросов с одним отношением:Начиная с произведения всех

Слайд 144Операционная семантика запросов с несколькими отношениями
Последовательно перебираем записи всех таблиц,

указанных в FROM части
Кортеж-переменная для каждого отношения
Кортеж-переменные перебирают все комбинации

кортежей (вложенные циклы)
Проверяем, удовлетворяют ли набор текущих записей условиям WHERE части
Если да, в соответствии с требованиями SELECT части выбираем значения атрибутов, вычисляем выражения, используя элементы текущих записей
Операционная семантика запросов с несколькими отношениямиПоследовательно перебираем записи всех таблиц, указанных в FROM частиКортеж-переменная для каждого отношенияКортеж-переменные

Слайд 145Вложенные циклы
SELECT a1, a2, …, ak
FROM R1 as x1,

R2 as x2, …, Rn as xn
WHERE Conditions

1. Вложенные циклы:
Answer

= {}
for x1 in R1 do
for x2 in R2 do
…..
for xn in Rn do
if Conditions
then Answer = Answer U {(a1,…,ak)
return Answer
Вложенные циклыSELECT a1, a2, …, akFROM  R1 as x1, R2 as x2, …, Rn as xnWHERE

Слайд 146Параллельное вычисление
SELECT a1, a2, …, ak
FROM R1 as x1,

R2 as x2, …, Rn as xn
WHERE Conditions

2. Параллельное вычисление






Не

предполагает какого-либо порядка

Answer = {}
for all assignments x1 in R1, …, xn in Rn do
if Conditions then Answer = Answer U {(a1,…,ak)}
return Answer

Параллельное вычислениеSELECT a1, a2, …, akFROM  R1 as x1, R2 as x2, …, Rn as xnWHERE

Слайд 147В реляционной алгебре
SELECT a1, a2, …, ak
FROM R1 as

x1, R2 as x2, …, Rn as xn
WHERE Conditions

3. Трансляция

в реляционную алгебру:


a1,…,ak ( σ Conditions (R1 x R2 x … x Rn))


Select-From-Where = Select-Project-Join запросы выражения
В реляционной алгебреSELECT a1, a2, …, akFROM  R1 as x1, R2 as x2, …, Rn as

Слайд 148Реляционные операции

Реляционные операции

Слайд 149Подзапросы

Подзапросы

Слайд 150Подзапросы
SELECT-FROM-WHERE оператор в круглых скобках (подзапрос) может использоваться в качестве

операнда в ряде мест, включая FROM и WHERE части.
Пример: на

место отношения в FROM части, можно поместить другой запрос и выполнить запрос к его результату.
Лучше использовать псевдонимы для именования кортежей результата
ПодзапросыSELECT-FROM-WHERE оператор в круглых скобках (подзапрос) может использоваться в качестве операнда в ряде мест, включая FROM и

Слайд 151Подзапросы, возвращающие одну запись
Если гарантируется, что запрос возвращает одну запись,

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

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

Слайд 152Пример
В Sells(bar, beer, price) найти бары предлагающие «Миллер» по той

же цене, что «Встреча» продает «Харп».
Два запроса обеспечивают ответ:
найти стоимость

«Харп» в баре «Встреча»
найти бары продающие «Миллер», по этой цене
ПримерВ Sells(bar, beer, price) найти бары предлагающие «Миллер» по той же цене, что «Встреча» продает «Харп».Два запроса

Слайд 153
Запрос + Подзапрос
SELECT bar
FROM Sells
WHERE beer = ‘Миллер’ AND
price =

(SELECT price
FROM Sells
WHERE bar

= ‘Встреча’
AND beer = ‘Харп’);

Цена продажи
«Харп» в баре
«Встреча»

Запрос + Подзапрос	SELECT bar	FROM Sells	WHERE beer = ‘Миллер’ AND		price = (SELECT price			   FROM Sells

Слайд 154Логические операторы IN, EXISTS, ANY, ALL

Логические операторы IN, EXISTS,  ANY, ALL

Слайд 155Оператор IN
IN истинно, если кортеж содержится в отношении.

NOT IN если кортеж не содержится в отношении
очень

часто <отношение> – это подзапрос
IN-выражения могут использоваться в WHERE части
Оператор IN IN  истинно, если кортеж содержится в отношении. NOT IN   если кортеж не

Слайд 156
Пример
В Beers(name, manf) и Likes(drinker, beer) найти наименование и производителя

сортов пива, предпочитаемых Алексом.
SELECT *
FROM Beers

WHERE name IN
(SELECT beer FROM Likes
WHERE drinker = ‘Алекс’);

Набор
сортов
любимых
Алексом

ПримерВ Beers(name, manf) и Likes(drinker, beer) найти наименование и производителя сортов пива, предпочитаемых Алексом.	  SELECT *

Слайд 157Оператор Exists
EXISTS( ) истинен, тогда и только тогда, когда

не пусто
EXISTS логический оператор, может входить в WHERE часть
Пример:

В Beers(name, manf) найти сорта пива, уникальные для их производителя (им производится только этот сорт пива)
Оператор ExistsEXISTS( ) истинен, тогда и только тогда, когда не пусто EXISTS логический оператор, может входить в

Слайд 158
Пример запроса с EXISTS
SELECT name
FROM Beers b1
WHERE NOT EXISTS(
SELECT *
FROM

Beers
WHERE manf = b1.manf AND
name b1.name);

Выбирает сорта пива с

тем же производителем, что и b1, но с другим сортом

Сссылка на b1 – запросы как вложенные циклы.

Области видимости: manf относится
к непосредственно охватывающему
FROM c отношением, имеющем этот атрибут

Пример запроса с EXISTSSELECT nameFROM Beers b1WHERE NOT EXISTS(	SELECT *	FROM Beers	WHERE manf = b1.manf AND			name b1.name);Выбирает сорта

Слайд 159Оператор ANY
x = ANY( ) логическое условие, означающее, что

x равен хотя бы одному кортежу отношения
вместо = может стоять

любой оператор сравнения.
Пример : x >= ANY( <отношение> ) означает, что x не меньше, чем все кортежи отношения
В кортежах отношения ДОЛЖЕН быть только один атрибут
Оператор ANYx = ANY( ) логическое условие, означающее, что x равен хотя бы одному кортежу отношениявместо =

Слайд 160Оператор ALL
x ALL( ) истинен, тогда и только

тогда, когда для каждого кортежа t отношения, x не равен

t.
то есть x не входит в отношение
вместо <> может стоять любой оператор сравнения
Пример: x >= ALL( <отношение> ) означает, что в отношении нет кортежей больших, чем x
В кортежах отношения ДОЛЖЕН быть только один атрибут
Оператор ALLx ALL( ) истинен, тогда и только тогда, когда для каждого кортежа t отношения, x не

Слайд 161
Пример
В Sells(bar, beer, price) найти самые дорогие сорт(а) пива
SELECT beer
FROM

Sells
WHERE price >= ALL(
SELECT price
FROM Sells);
Цена пива для охватывающего
Sells

не должна быть меньше, чем какая-либо цена пива
ПримерВ Sells(bar, beer, price) найти самые дорогие сорт(а) пива	SELECT beer	FROM Sells	WHERE  price >= ALL(			SELECT price			FROM Sells);Цена

Слайд 162Все



Все☺

Слайд 163Базовые кафедры ФУПМ

Базовые кафедры ФУПМ

Слайд 164Наши базовые кафедры
МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ СЛОЖНЫХ ПРОЦЕССОВ И СИСТЕМ
на базе

ВЦ РАН, зав. кафедрой член-корр. И.Г.Поспелов.
МАТЕМАТИЧЕСКИХ ОСНОВ УПРАВЛЕНИЯ
на базе

МФТИ, зав. кафедрой к.ф.-м.н. С.А.Гуз
КАФЕДРА НЕЛИНЕЙНЫХ ПРОЦЕССОВ
на базе ВЦ РАН,зав.кафедрой академик Ю.Г.Евтушенко
ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ
на базе ВЦ РАН,  зав. кафедрой член-корр. К.В.Рудаков.
http://fupm.fizteh.ru/basechairs/
Наши базовые кафедрыМАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ СЛОЖНЫХ ПРОЦЕССОВ И СИСТЕМ на базе ВЦ РАН, зав. кафедрой член-корр. И.Г.Поспелов. МАТЕМАТИЧЕСКИХ

Слайд 165МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ СЛОЖНЫХ ПРОЦЕССОВ И СИСТЕМ
Специализации:
Математическая физика — зав.

специализацией Ю.Г. Евтушенко;
Теория управления и исследования операций — зав.

специализацией Ю.Н. Павловский.
Специализация «Теория управления и исследование операций»
Направления: методы оптимизации; теория языков программирования; системное программирование; математическая логика; теория игр; математическая теория макроэкономических процессов; разработка систем поддержки принятия решений в управлении и планировании.
В проблемно-ориентированной сфере разрабатываются системы распознавания образов (в медицине, геологии и т.д.), системы автоматизации проектирования, интерактивные системы имитации сложных процессов.
Учебный план предусматривает знакомство студентов с элементами системного анализа, теорией управления, теорией игр, теорией макро­экономических процессов, избранными главами системного программирования.
МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ СЛОЖНЫХ ПРОЦЕССОВ И СИСТЕМСпециализации: Математическая физика — зав. специализацией Ю.Г. Евтушенко; Теория управления и исследования

Слайд 166МАТЕМАТИЧЕСКИХ ОСНОВ УПРАВЛЕНИЯ
Нынешние студенты ФУПМ имеют возможность прослушать курсы лекций

ведущих российских ученых: д.т.н., профессора А.А. Натана (его основные работы

посвящены статистическим методам обработки данных, теории и методам статистического распознавания и классификации, стохастическим методам в экономике); д.ф.-м.н., профессора, зав. отделом прикладных проблем оптимизации ВЦ РАН В.Г. Жадана; д.ф.-м.н., профессора зав. сектором комбинаторного анализа ВЦ РАН В.К. Леонтьева; д.ф.-м.н., профессора зав. отделом систем математического обеспечения ВЦ РАН, ведущего специалиста по языкам программирования и методам построения трансляторов В.А. Серебрякова; члена-корреспондента РАЕН, профессора, д.ф.-м.н., зав. отделом ВЦ РАН, ведущего специалиста в России в области создания информационно-вычислительных систем и систем автоматизированного проектирования в машиностроении Ю.А. Флерова.
Направления:
фундаментальные основы информатики (дискретный анализ, теория и реализация языков программирования, [математическое] моделирование вычислительных систем, операционные системы);
вероятностно-статистическое (теория вероятностей, математическая статистика, случайные процессы);
теория и методы оптимизации (методы оптимизации, методы оптимального управления).
МАТЕМАТИЧЕСКИХ ОСНОВ УПРАВЛЕНИЯНынешние студенты ФУПМ имеют возможность прослушать курсы лекций ведущих российских ученых: д.т.н., профессора А.А. Натана

Слайд 167КАФЕДРА НЕЛИНЕЙНЫХ ПРОЦЕССОВ
Специализация «Математическая физика» зав. специализацией академик Евтушенко Ю. Г.

Направления:
газодинамические процессы (динамика излучающего газа, динамика плазмы, газовые разряды);
процессы

в полупроводниковых структурах;
процессы в трубопроводах;
ударно-волновые течения конденсированных сред;
моделирование климата и биосферы
Специализация — «Прикладные методы оптимизации» зав. Специализацией Кривцов В.М. Направления:
теория и численные методы оптимизации, в частности, теория и численные методы решения задач линейного и нелинейного программирования;

разработка диалоговых систем оптимизации, решение прикладных задач, требующих использования методов оптимизации
КАФЕДРА НЕЛИНЕЙНЫХ ПРОЦЕССОВСпециализация «Математическая физика» зав. специализацией академик Евтушенко Ю. Г. Направления: газодинамические процессы (динамика излучающего газа,

Слайд 168ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ
Специализация «Проектирование и организация систем» зав. специализацией д.т.н., профессор А.И.

Эрлих; Направления:
оптимизация сложных систем;
искусственный интеллект;
методы автоматизации управления

и проектирования.
Исследования и разработки, выполняемые в рамках данной специализации, направлены на решение задач массового использования современных компьютеров в системах управления, научных исследованиях, проектировании и конструировании новой техники. Одной из научно-технических основ новых информационных технологий — идеи и методы искусственного интеллекта.
Благодаря широким международным научным связям всегда доступна новейшая информация о развитии исследований в области искусственного интеллекта за рубежом. Подготовка студентов ориентирована на их дальнейшую работу по развитию новых методов и средств создания сложных интеллектуальных систем различного прикладного назначения.
Специализация — «Интеллектуальный анализ данных» зав. специализацией К.В. Рудаков. Направления:
комбинаторные и алгебраические методы анализа алгоритмов;
распознавание образов;
математические методы прогнозирования;
data mining;
прикладные системы распознавания и прогнозирования.
Интеллектуальный анализ данных является одним из наиболее актуальных и востребованных направлений современной прикладной математики. Окончание периода чисто экстенсив­ного развития вычислительной техники и телекоммуникаций, огромные объемы накопленной информации о самых разных областях человеческой деятельности требуют разработки и при­менения более изощренных методов анали­за данных и подготовки специалистов соответствующей квалификации.
ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫСпециализация «Проектирование и организация систем» зав. специализацией д.т.н., профессор А.И. Эрлих; Направления: оптимизация сложных систем; искусственный

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

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

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

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

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


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

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