SlideShare una empresa de Scribd logo
1 de 46
Descargar para leer sin conexión
Спецкурс	
  ОмГУ-­‐2014	
  
Базы	
  данных	
  
Занятие	
  6	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
База	
  данных	
  –	
  определений	
  
много,	
  в	
  основном,	
  по	
  признакам	
  
(логическая	
  связанность,	
  
обработка	
  на	
  ЭВМ	
  и	
  т.д.)	
  
	
  
Определения	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Система	
  управления	
  базами	
  
данных	
  (СУБД)	
  –	
  программная	
  
система	
  для	
  создания	
  и	
  
управления	
  базами	
  данных	
  
Определения	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Виды	
  баз	
  данных	
  (по	
  модели):	
  
1.	
  реляционные	
  
2.	
  иерархические	
  
3.	
  сетевые	
  
4.	
  объектные	
  
5.	
  объектно-­‐реляционные	
  
	
  
Определения	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Реляционная	
  модель	
  –	
  модель,	
  
основанная	
  на	
  реляционной	
  
алгебре	
  (алгебра	
  отношений	
  на	
  
кортежах)	
  
	
  
Определения	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Примеры	
  реляционных	
  СУБД:	
  
1.	
  Oracle	
  
2.	
  Postgres	
  
3.	
  MySQL	
  
4.	
  MS	
  SQL	
  
5.	
  SQLite	
  
	
  
Определения	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Схема	
  реляционной	
  БД:	
  
1.	
  Таблицы	
  –	
  физическое	
  
представление	
  отношений	
  
(столбцы	
  –	
  атрибуты,	
  строки	
  –	
  
кортежи)	
  
	
  
Реляционные	
  БД	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Схема	
  реляционной	
  БД:	
  
2.	
  Внешние	
  файлы	
  –	
  для	
  больших	
  
объемов	
  данных	
  (чаще	
  бинарных)	
  	
  
3.	
  Индексы	
  –	
  уникальные,	
  
поисковые	
  
4.	
  Ограничения	
  -­‐	
  первичные	
  и	
  
внешние	
  ключи,	
  формульные	
  	
  
	
  
Реляционные	
  БД	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Программный	
  код	
  в	
  реляционных	
  
СУБД:	
  
1.	
  Триггеры	
  –	
  для	
  реакции	
  на	
  
события	
  
2.	
  Хранимые	
  процедуры	
  и	
  
функции	
  –	
  произвольные	
  
алгоритмы	
  обработки	
  данных	
  
	
  
Реляционные	
  БД	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Первичный	
  ключ	
  (primary	
  key):	
  
основной	
  ключ	
  таблицы,	
  
уникальный	
  как	
  следствие,	
  
может	
  быть	
  простым	
  и	
  
составным	
  (несколько	
  
столбцов)	
  
Реляционные	
  БД	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Внешний	
  ключ	
  (foreign	
  key):	
  
столбцы	
  таблицы,	
  значения	
  
которых	
  являются	
  
подмножеством	
  первичного	
  
ключа	
  другой	
  таблицы	
  
Реляционные	
  БД	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Нормальная	
  форма:	
  
набор	
  свойств	
  отношений,	
  для	
  
обеспечения	
  целостности	
  
данных	
  (1-­‐НФ,	
  2-­‐НФ,	
  3-­‐НФ	
  –	
  
самая	
  распространенная)	
  
Реляционные	
  БД	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Department:	
  
id	
  
name	
  
Пример	
  БД	
  в	
  3-­‐й	
  нормальной	
  форме	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Group:	
  
id	
  
name	
  
department_id	
  
Пример	
  БД	
  в	
  3-­‐й	
  нормальной	
  форме	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Chair:	
  
id	
  
name	
  
department_id	
  
Пример	
  БД	
  в	
  3-­‐й	
  нормальной	
  форме	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Student:	
  
id	
  
first_name	
  
last_name	
  
group_id	
  
chair_id	
  
Пример	
  БД	
  в	
  3-­‐й	
  нормальной	
  форме	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Денормализация	
  –	
  снижение	
  
уровня	
  нормализации,	
  как	
  
правило	
  с	
  целью	
  повышения	
  
производительности	
  (чаще	
  
всего	
  уход	
  от	
  3-­‐НФ)	
  
Денормализация	
  БД	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Student:	
  
id	
  
first_name	
  
last_name	
  
group_id	
  
chair_name	
  
department_name	
  
Денормализация	
  БД	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Минус	
  денормализации	
  –	
  
нужно	
  тщательнее	
  следить	
  за	
  
целостностью	
  и	
  
непротиворечивостью	
  данных	
  
Денормализация	
  БД	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Structured	
  query	
  language	
  (SQL)	
  
–	
  язык	
  написания	
  запросов	
  к	
  
реляционной	
  БД	
  
	
  
SQL	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Варианты	
  SQL:	
  
1.	
  ANSI	
  SQL	
  	
  
2.	
  Oracle-­‐диалект	
  (Oracle	
  SQL)	
  
3.	
  Postgres-­‐диалект	
  
4.	
  MySQL-­‐диалект	
  
	
  
SQL	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Data	
  descripcon	
  language	
  (DDL):	
  
1.	
  create/drop	
  –	
  database,	
  table,	
  
index,	
  constraint	
  	
  
2.	
  alter	
  –	
  database,	
  table,	
  index,	
  
constraint	
  
	
  
SQL	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Все	
  дальнейшие	
  примеры	
  для	
  
выполнения	
  на	
  MySQL	
  5.x	
  
Реляционные	
  БД	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Создание	
  БД:	
  
create	
  database	
  `omsu`	
  
character	
  set	
  u•8	
  
collate	
  u•8_general_ci;	
  	
  
	
  
SQL	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Таблица	
  «Факультет»:	
  
	
  
create	
  table	
  `Department`(	
  
	
  	
  	
  	
  	
  	
  	
  	
  id	
  int(20)	
  not	
  null,	
  
	
  	
  	
  	
  	
  	
  	
  	
  name	
  varchar(50)	
  not	
  null,	
  
	
  	
  	
  	
  	
  	
  	
  	
  primary	
  key(id)	
  
)	
  engine=InnoDB	
  character	
  set=u•8;	
  
	
  
SQL	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Индекс	
  на	
  таблицу	
  «Факультет»:	
  
	
  
create	
  unique	
  index	
  
`Department_unique`	
  on	
  
Department(name);	
  
	
  
SQL	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Таблица	
  «Группа»:	
  
	
  
create	
  table	
  `Group`(	
  
	
  	
  	
  	
  	
  	
  	
  	
  id	
  int(20)	
  not	
  null,	
  
	
  	
  	
  	
  	
  	
  	
  	
  name	
  varchar(50)	
  not	
  null,	
  
	
  	
  	
  	
  	
  	
  	
  	
  department_id	
  int(20)	
  not	
  null,	
  
	
  	
  	
  	
  	
  	
  	
  	
  primary	
  key(id),	
  
	
  	
  	
  	
  	
  	
  	
  	
  foreign	
  key	
  (department_id)	
  references	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Department(id)	
  
)	
  engine=InnoDB	
  character	
  set=u•8;	
  
	
  
SQL	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Индекс	
  на	
  таблицу	
  «Группа»:	
  
	
  
create	
  unique	
  index	
  
`Group_unique`	
  on	
  
Group(department_id,	
  name);	
  
	
  
SQL	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Data	
  modeling	
  language	
  (DML):	
  
1.	
  insert/update/delete	
  –	
  
модификация	
  данных	
  	
  
2.	
  select	
  –	
  построение	
  множества	
  
кортежей	
  по	
  декларативному	
  
запросу	
  (query)	
  
	
  
SQL	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Вставка	
  в	
  таблицу	
  «Факультет»:	
  
	
  
insert	
  into	
  Department(id,	
  name)	
  
values	
  
	
  	
  	
  	
  	
  	
  	
  (1,	
  ‘ИМИТ’),	
  
	
  	
  	
  	
  	
  	
  	
  (2,	
  ‘Физический’);	
  	
  
SQL	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Вставка	
  в	
  таблицу	
  «Группа»:	
  
	
  
insert	
  into	
  Group(id,	
  name,	
  
department_id)	
  
values	
  
	
  	
  	
  	
  	
  	
  	
  	
  (1,	
  ‘ММ-­‐01’,	
  1),	
  
	
  	
  	
  	
  	
  	
  	
  	
  (2,	
  ‘Ф-­‐05-­‐О’,	
  2),	
  
	
  	
  	
  	
  	
  	
  	
  	
  (3,	
  ‘МП-­‐01’,	
  1);	
  	
  
SQL	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Запрос	
  к	
  таблице	
  «Факультет»:	
  
	
  
select	
  name	
  from	
  Department;	
  
	
  
ИМИТ	
  
Физический	
  
	
  
SQL	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Запрос	
  к	
  таблице	
  «Группа»:	
  
	
  
select	
  g.*	
  
from	
  Group	
  g	
  inner	
  join	
  Department	
  d	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  on	
  g.department_id	
  =	
  d.id	
  
where	
  d.name	
  =	
  ‘ИМИТ’;	
  
	
  
1,	
  ММ-­‐01	
  
3,	
  МП-­‐01	
  
	
  
SQL	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Структура	
  запроса:	
  
select	
  <описание	
  кортежа>	
  
from	
  <список	
  таблиц>	
  
[where	
  <условия	
  на	
  исходные>]	
  
[group	
  by	
  <список	
  столбцов>]	
  
[having	
  <условия	
  на	
  группировку>]]	
  
[order	
  by	
  <список	
  столбцов>]	
  
SQL	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Пример:	
  
select	
  d.name,	
  count(g.id)	
  
from	
  Group	
  g	
  inner	
  join	
  Department	
  d	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  on	
  g.department_id	
  =	
  d.id	
  
where	
  d.name	
  like	
  ‘%И%’	
  
group	
  by	
  d.name	
  
having	
  count(g.id)	
  >	
  1	
  
order	
  by	
  d.name;	
  
	
  
ИМИТ,	
  2	
  
	
  
SQL	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Соединение	
  таблиц	
  –	
  
получение	
  декартова	
  
произведения	
  таблиц,	
  
ограниченного	
  условием	
  
соединения	
  
Соединения	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Пример:	
  
	
  
select	
  *	
  
from	
  Group	
  g,	
  Department	
  d	
  
where	
  g.department_id	
  =	
  d.id;	
  
	
  
1,	
  ММ-­‐01,	
  1,	
  ИМИТ	
  
2,	
  ФФ-­‐01-­‐О,	
  2,	
  Физический	
  
3,	
  МП-­‐01,	
  1,	
  ИМИТ	
  
	
  
Соединения	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Алгоритмы	
  соединения	
  таблиц:	
  
1.	
  вложенными	
  циклами	
  (nested	
  
loops)	
  –	
  самый	
  универсальный	
  
2.	
  хэшированием	
  
3.	
  слиянием	
  сортированных	
  
списков	
  
	
  
Соединения	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Виды	
  соединений:	
  
	
  
1.	
  внутреннее	
  –	
  inner	
  join	
  
2.	
  внешнее	
  –	
  outer	
  join	
  
	
  	
  2.1	
  левое	
  –	
  le;	
  join	
  
	
  	
  2.1	
  правое	
  –	
  right	
  join	
  
	
  	
  2.3	
  полное	
  –	
  full	
  join	
  
3.	
  перекрестное	
  –	
  cross	
  join	
  (то	
  же,	
  что	
  ‘,’	
  в	
  
примере	
  выше)	
  
	
  
Соединения	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Пример:	
  
	
  
select	
  c.name	
  
from	
  Student	
  s	
  right	
  join	
  Chair	
  c	
  
	
  	
  	
  	
  	
  	
  	
  	
  on	
  s.chair_id	
  =	
  c.id	
  
where	
  s.chair_id	
  is	
  null;	
  
	
  
При	
  отсутствии	
  нужной	
  строки	
  в	
  таблице	
  
«Студент»,	
  на	
  ее	
  месте	
  будет	
  кортеж	
  из	
  null	
  
Соединения	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Подзапрос:	
  
вложенный	
  запрос	
  в	
  другом	
  
запросе,	
  может	
  быть	
  внутри	
  
любого	
  DML-­‐оператора	
  
	
  
Подзапросы	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Результат	
  подзапроса	
  в	
  where	
  
используется:	
  
1.	
  в	
  операциях	
  сравнения	
  (скаляр)	
  
2.	
  принадлежность/не	
  
принадлежность	
  кортежа	
  
множеству	
  –	
  in/not	
  in	
  
3.	
  непустота/пустота	
  множества	
  –	
  
exists/not	
  exists	
  	
  
Подзапросы	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Пример:	
  
	
  
select	
  c.name	
  
from	
  Chair	
  c	
  
where	
  not	
  exists	
  (	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  select	
  null	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  from	
  Student	
  s	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  where	
  s.chair_id	
  =	
  c.id	
  
);	
  
	
  Подзапросы	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Операции	
  с	
  результатами	
  
запросов:	
  
1.	
  dis=nct	
  –	
  исключение	
  повторов	
  
2.	
  union	
  [all]	
  -­‐	
  объединение	
  
3.	
  intersect	
  –	
  пересечение	
  
4.	
  except	
  –	
  исключение	
  строк	
  2-­‐го	
  
множества	
  из	
  1-­‐го	
  
Подзапросы	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Для	
  дальнейшего	
  изучения:	
  
1.	
  хорошие	
  упражнения	
  по	
  SQL	
  
2.	
  хорошие	
  лекции	
  по	
  БД	
  
Подзапросы	
  
	
  	
  
Спецкурс	
  ОмГУ-­‐2014	
  
Email:	
  at@7bits.it	
  
Skype:	
  anna_tarasenko	
  
Web:	
  7bits.ru	
  
Вопросы?	
  	
  

Más contenido relacionado

Destacado

Стажировка-2014, занятие 4. Планирование процесса тестирования.
Стажировка-2014, занятие 4. Планирование процесса тестирования.Стажировка-2014, занятие 4. Планирование процесса тестирования.
Стажировка-2014, занятие 4. Планирование процесса тестирования.7bits
 
Стажировка-2015. Разработка. Занятие 10 (часть 2). Исключения и логи.
Стажировка-2015. Разработка. Занятие 10 (часть 2). Исключения и логи.Стажировка-2015. Разработка. Занятие 10 (часть 2). Исключения и логи.
Стажировка-2015. Разработка. Занятие 10 (часть 2). Исключения и логи.7bits
 
Стажировка 2015. Разработка. Занятие 6. Адаптивная верстка
Стажировка 2015. Разработка. Занятие 6. Адаптивная версткаСтажировка 2015. Разработка. Занятие 6. Адаптивная верстка
Стажировка 2015. Разработка. Занятие 6. Адаптивная верстка7bits
 
Спецкурс 2014, занятие 5 (часть 1). Исключения и логи
Спецкурс 2014, занятие 5 (часть 1). Исключения и логиСпецкурс 2014, занятие 5 (часть 1). Исключения и логи
Спецкурс 2014, занятие 5 (часть 1). Исключения и логи7bits
 
Стажировка 2015. Разработка. Занятие 9. BEM
Стажировка 2015. Разработка. Занятие 9. BEMСтажировка 2015. Разработка. Занятие 9. BEM
Стажировка 2015. Разработка. Занятие 9. BEM7bits
 
Стажировка 2015. Дизайн. Занятие 1. История дизайна, тренды 2015, логотипы.
Стажировка 2015. Дизайн. Занятие 1. История дизайна, тренды 2015, логотипы.Стажировка 2015. Дизайн. Занятие 1. История дизайна, тренды 2015, логотипы.
Стажировка 2015. Дизайн. Занятие 1. История дизайна, тренды 2015, логотипы.7bits
 
Стажировка-2014, занятие 3. Тест-кейсы, ручное и автоматическое тестирование.
Стажировка-2014, занятие 3. Тест-кейсы, ручное и автоматическое тестирование.Стажировка-2014, занятие 3. Тест-кейсы, ручное и автоматическое тестирование.
Стажировка-2014, занятие 3. Тест-кейсы, ручное и автоматическое тестирование.7bits
 
Стажировка-2015. Разработка. Занятие 12. Транзакции в БД, работа с БД из прил...
Стажировка-2015. Разработка. Занятие 12. Транзакции в БД, работа с БД из прил...Стажировка-2015. Разработка. Занятие 12. Транзакции в БД, работа с БД из прил...
Стажировка-2015. Разработка. Занятие 12. Транзакции в БД, работа с БД из прил...7bits
 
Стажировка-2015. Дизайн. Занятие 4 (2 часть). Цвет в web-дизайне
Стажировка-2015. Дизайн. Занятие 4 (2 часть). Цвет в web-дизайнеСтажировка-2015. Дизайн. Занятие 4 (2 часть). Цвет в web-дизайне
Стажировка-2015. Дизайн. Занятие 4 (2 часть). Цвет в web-дизайне7bits
 
Стажировка-2015. Разработка. Занятие 1. Основы языков разметки.
Стажировка-2015. Разработка. Занятие 1. Основы языков разметки.Стажировка-2015. Разработка. Занятие 1. Основы языков разметки.
Стажировка-2015. Разработка. Занятие 1. Основы языков разметки.7bits
 
Стажировка-2014, занятие 2 (часть 2). Исключения и логи
Стажировка-2014, занятие 2 (часть 2). Исключения и логиСтажировка-2014, занятие 2 (часть 2). Исключения и логи
Стажировка-2014, занятие 2 (часть 2). Исключения и логи7bits
 
Курс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. WebКурс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. Web7bits
 
Спецкурс 2014, занятие 9 (2 часть). Code conventions and best practices
Спецкурс 2014, занятие 9 (2 часть). Code conventions and best practicesСпецкурс 2014, занятие 9 (2 часть). Code conventions and best practices
Спецкурс 2014, занятие 9 (2 часть). Code conventions and best practices7bits
 
Стажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworks
Стажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworksСтажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworks
Стажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworks7bits
 
Стажировка-2014, занятие 9. Code conventions and best practices
Стажировка-2014, занятие 9. Code conventions and best practicesСтажировка-2014, занятие 9. Code conventions and best practices
Стажировка-2014, занятие 9. Code conventions and best practices7bits
 
Спецкурс 2014, занятие 10. Lean startup
Спецкурс 2014, занятие 10. Lean startupСпецкурс 2014, занятие 10. Lean startup
Спецкурс 2014, занятие 10. Lean startup7bits
 
Спецкурс 2014, занятие 10. Lean startup
Спецкурс 2014, занятие 10. Lean startupСпецкурс 2014, занятие 10. Lean startup
Спецкурс 2014, занятие 10. Lean startup7bits
 
Курс Java-2016. Занятие 05. Тестирование и Java
Курс Java-2016. Занятие 05. Тестирование и JavaКурс Java-2016. Занятие 05. Тестирование и Java
Курс Java-2016. Занятие 05. Тестирование и Java7bits
 
Стажировка-2014, занятие 11. MVP, метод прогрессивного JPEG, Story mapping, A...
Стажировка-2014, занятие 11. MVP, метод прогрессивного JPEG, Story mapping, A...Стажировка-2014, занятие 11. MVP, метод прогрессивного JPEG, Story mapping, A...
Стажировка-2014, занятие 11. MVP, метод прогрессивного JPEG, Story mapping, A...7bits
 
Стажировка-2015. Разработка. Занятие 4. Системы контроля версий
Стажировка-2015. Разработка. Занятие 4. Системы контроля версийСтажировка-2015. Разработка. Занятие 4. Системы контроля версий
Стажировка-2015. Разработка. Занятие 4. Системы контроля версий7bits
 

Destacado (20)

Стажировка-2014, занятие 4. Планирование процесса тестирования.
Стажировка-2014, занятие 4. Планирование процесса тестирования.Стажировка-2014, занятие 4. Планирование процесса тестирования.
Стажировка-2014, занятие 4. Планирование процесса тестирования.
 
Стажировка-2015. Разработка. Занятие 10 (часть 2). Исключения и логи.
Стажировка-2015. Разработка. Занятие 10 (часть 2). Исключения и логи.Стажировка-2015. Разработка. Занятие 10 (часть 2). Исключения и логи.
Стажировка-2015. Разработка. Занятие 10 (часть 2). Исключения и логи.
 
Стажировка 2015. Разработка. Занятие 6. Адаптивная верстка
Стажировка 2015. Разработка. Занятие 6. Адаптивная версткаСтажировка 2015. Разработка. Занятие 6. Адаптивная верстка
Стажировка 2015. Разработка. Занятие 6. Адаптивная верстка
 
Спецкурс 2014, занятие 5 (часть 1). Исключения и логи
Спецкурс 2014, занятие 5 (часть 1). Исключения и логиСпецкурс 2014, занятие 5 (часть 1). Исключения и логи
Спецкурс 2014, занятие 5 (часть 1). Исключения и логи
 
Стажировка 2015. Разработка. Занятие 9. BEM
Стажировка 2015. Разработка. Занятие 9. BEMСтажировка 2015. Разработка. Занятие 9. BEM
Стажировка 2015. Разработка. Занятие 9. BEM
 
Стажировка 2015. Дизайн. Занятие 1. История дизайна, тренды 2015, логотипы.
Стажировка 2015. Дизайн. Занятие 1. История дизайна, тренды 2015, логотипы.Стажировка 2015. Дизайн. Занятие 1. История дизайна, тренды 2015, логотипы.
Стажировка 2015. Дизайн. Занятие 1. История дизайна, тренды 2015, логотипы.
 
Стажировка-2014, занятие 3. Тест-кейсы, ручное и автоматическое тестирование.
Стажировка-2014, занятие 3. Тест-кейсы, ручное и автоматическое тестирование.Стажировка-2014, занятие 3. Тест-кейсы, ручное и автоматическое тестирование.
Стажировка-2014, занятие 3. Тест-кейсы, ручное и автоматическое тестирование.
 
Стажировка-2015. Разработка. Занятие 12. Транзакции в БД, работа с БД из прил...
Стажировка-2015. Разработка. Занятие 12. Транзакции в БД, работа с БД из прил...Стажировка-2015. Разработка. Занятие 12. Транзакции в БД, работа с БД из прил...
Стажировка-2015. Разработка. Занятие 12. Транзакции в БД, работа с БД из прил...
 
Стажировка-2015. Дизайн. Занятие 4 (2 часть). Цвет в web-дизайне
Стажировка-2015. Дизайн. Занятие 4 (2 часть). Цвет в web-дизайнеСтажировка-2015. Дизайн. Занятие 4 (2 часть). Цвет в web-дизайне
Стажировка-2015. Дизайн. Занятие 4 (2 часть). Цвет в web-дизайне
 
Стажировка-2015. Разработка. Занятие 1. Основы языков разметки.
Стажировка-2015. Разработка. Занятие 1. Основы языков разметки.Стажировка-2015. Разработка. Занятие 1. Основы языков разметки.
Стажировка-2015. Разработка. Занятие 1. Основы языков разметки.
 
Стажировка-2014, занятие 2 (часть 2). Исключения и логи
Стажировка-2014, занятие 2 (часть 2). Исключения и логиСтажировка-2014, занятие 2 (часть 2). Исключения и логи
Стажировка-2014, занятие 2 (часть 2). Исключения и логи
 
Курс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. WebКурс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. Web
 
Спецкурс 2014, занятие 9 (2 часть). Code conventions and best practices
Спецкурс 2014, занятие 9 (2 часть). Code conventions and best practicesСпецкурс 2014, занятие 9 (2 часть). Code conventions and best practices
Спецкурс 2014, занятие 9 (2 часть). Code conventions and best practices
 
Стажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworks
Стажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworksСтажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworks
Стажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworks
 
Стажировка-2014, занятие 9. Code conventions and best practices
Стажировка-2014, занятие 9. Code conventions and best practicesСтажировка-2014, занятие 9. Code conventions and best practices
Стажировка-2014, занятие 9. Code conventions and best practices
 
Спецкурс 2014, занятие 10. Lean startup
Спецкурс 2014, занятие 10. Lean startupСпецкурс 2014, занятие 10. Lean startup
Спецкурс 2014, занятие 10. Lean startup
 
Спецкурс 2014, занятие 10. Lean startup
Спецкурс 2014, занятие 10. Lean startupСпецкурс 2014, занятие 10. Lean startup
Спецкурс 2014, занятие 10. Lean startup
 
Курс Java-2016. Занятие 05. Тестирование и Java
Курс Java-2016. Занятие 05. Тестирование и JavaКурс Java-2016. Занятие 05. Тестирование и Java
Курс Java-2016. Занятие 05. Тестирование и Java
 
Стажировка-2014, занятие 11. MVP, метод прогрессивного JPEG, Story mapping, A...
Стажировка-2014, занятие 11. MVP, метод прогрессивного JPEG, Story mapping, A...Стажировка-2014, занятие 11. MVP, метод прогрессивного JPEG, Story mapping, A...
Стажировка-2014, занятие 11. MVP, метод прогрессивного JPEG, Story mapping, A...
 
Стажировка-2015. Разработка. Занятие 4. Системы контроля версий
Стажировка-2015. Разработка. Занятие 4. Системы контроля версийСтажировка-2015. Разработка. Занятие 4. Системы контроля версий
Стажировка-2015. Разработка. Занятие 4. Системы контроля версий
 

Similar a Спецкурс 2014, занятие 6. Базы данных

DBD lection 1. Intro in Database Design. In Russian.
DBD lection 1. Intro in Database Design. In Russian.DBD lection 1. Intro in Database Design. In Russian.
DBD lection 1. Intro in Database Design. In Russian.mikhaelsmirnov
 
презентация дипломной работы
презентация дипломной работыпрезентация дипломной работы
презентация дипломной работыCherkashinaMS
 
лабораторная работа 2
лабораторная работа 2лабораторная работа 2
лабораторная работа 2student_kai
 
Стажировка-2013, разработчики, занятие 11. Базы данных
Стажировка-2013, разработчики, занятие 11. Базы данныхСтажировка-2013, разработчики, занятие 11. Базы данных
Стажировка-2013, разработчики, занятие 11. Базы данных7bits
 
рп по у сп практике в
рп по у сп практике врп по у сп практике в
рп по у сп практике вAnastasia Snegina
 
2015-12-05 Александр Коротков, Иван Панченко - Слабо-структурированные данные...
2015-12-05 Александр Коротков, Иван Панченко - Слабо-структурированные данные...2015-12-05 Александр Коротков, Иван Панченко - Слабо-структурированные данные...
2015-12-05 Александр Коротков, Иван Панченко - Слабо-структурированные данные...HappyDev
 
лекция
лекциялекция
лекцияvuvuzella
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 087bits
 
Спецкурс 2014, занятие 3. Абстракции, именование, документирование
Спецкурс 2014, занятие 3. Абстракции, именование, документированиеСпецкурс 2014, занятие 3. Абстракции, именование, документирование
Спецкурс 2014, занятие 3. Абстракции, именование, документирование7bits
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике втAnastasia Snegina
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике втAnastasia Snegina
 
прикл.прогр птп 13 14
прикл.прогр птп 13 14прикл.прогр птп 13 14
прикл.прогр птп 13 14Anastasia Snegina
 
J-Testy - Инструкция администратора данных (RU)
J-Testy - Инструкция администратора данных (RU)J-Testy - Инструкция администратора данных (RU)
J-Testy - Инструкция администратора данных (RU)Jaroslav Kačer
 
Advanced Sql Injection
Advanced Sql InjectionAdvanced Sql Injection
Advanced Sql InjectionDmitry Evteev
 
C++ осень 2012 лекция 9
C++ осень 2012 лекция 9C++ осень 2012 лекция 9
C++ осень 2012 лекция 9Technopark
 
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ В КОМПЕТЕНТНОСТНОЙ ОЦЕНКЕ КАДРОВ - Алексей Князев
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ В КОМПЕТЕНТНОСТНОЙ ОЦЕНКЕ   КАДРОВ - Алексей КнязевИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ В КОМПЕТЕНТНОСТНОЙ ОЦЕНКЕ   КАДРОВ - Алексей Князев
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ В КОМПЕТЕНТНОСТНОЙ ОЦЕНКЕ КАДРОВ - Алексей Князевrusbase
 

Similar a Спецкурс 2014, занятие 6. Базы данных (20)

DBD lection 1. Intro in Database Design. In Russian.
DBD lection 1. Intro in Database Design. In Russian.DBD lection 1. Intro in Database Design. In Russian.
DBD lection 1. Intro in Database Design. In Russian.
 
презентация дипломной работы
презентация дипломной работыпрезентация дипломной работы
презентация дипломной работы
 
лабораторная работа 2
лабораторная работа 2лабораторная работа 2
лабораторная работа 2
 
я.прогр птп
я.прогр птпя.прогр птп
я.прогр птп
 
Стажировка-2013, разработчики, занятие 11. Базы данных
Стажировка-2013, разработчики, занятие 11. Базы данныхСтажировка-2013, разработчики, занятие 11. Базы данных
Стажировка-2013, разработчики, занятие 11. Базы данных
 
рп по у сп практике в
рп по у сп практике врп по у сп практике в
рп по у сп практике в
 
2015-12-05 Александр Коротков, Иван Панченко - Слабо-структурированные данные...
2015-12-05 Александр Коротков, Иван Панченко - Слабо-структурированные данные...2015-12-05 Александр Коротков, Иван Панченко - Слабо-структурированные данные...
2015-12-05 Александр Коротков, Иван Панченко - Слабо-структурированные данные...
 
PT MIFI Labsql
PT MIFI LabsqlPT MIFI Labsql
PT MIFI Labsql
 
лекция
лекциялекция
лекция
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08
 
Спецкурс 2014, занятие 3. Абстракции, именование, документирование
Спецкурс 2014, занятие 3. Абстракции, именование, документированиеСпецкурс 2014, занятие 3. Абстракции, именование, документирование
Спецкурс 2014, занятие 3. Абстракции, именование, документирование
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике вт
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике вт
 
прикл.прогр птп 13 14
прикл.прогр птп 13 14прикл.прогр птп 13 14
прикл.прогр птп 13 14
 
лекция 10
лекция 10лекция 10
лекция 10
 
PT Hackday#2
PT Hackday#2PT Hackday#2
PT Hackday#2
 
J-Testy - Инструкция администратора данных (RU)
J-Testy - Инструкция администратора данных (RU)J-Testy - Инструкция администратора данных (RU)
J-Testy - Инструкция администратора данных (RU)
 
Advanced Sql Injection
Advanced Sql InjectionAdvanced Sql Injection
Advanced Sql Injection
 
C++ осень 2012 лекция 9
C++ осень 2012 лекция 9C++ осень 2012 лекция 9
C++ осень 2012 лекция 9
 
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ В КОМПЕТЕНТНОСТНОЙ ОЦЕНКЕ КАДРОВ - Алексей Князев
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ В КОМПЕТЕНТНОСТНОЙ ОЦЕНКЕ   КАДРОВ - Алексей КнязевИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ В КОМПЕТЕНТНОСТНОЙ ОЦЕНКЕ   КАДРОВ - Алексей Князев
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ В КОМПЕТЕНТНОСТНОЙ ОЦЕНКЕ КАДРОВ - Алексей Князев
 

Más de 7bits

Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап? Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап? 7bits
 
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофтаГудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта7bits
 
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакатьГудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать7bits
 
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи 7bits
 
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE 7bits
 
Goodbye, IT-loft! Тараканов Алексей: Идеология в IT
Goodbye, IT-loft! Тараканов Алексей: Идеология в ITGoodbye, IT-loft! Тараканов Алексей: Идеология в IT
Goodbye, IT-loft! Тараканов Алексей: Идеология в IT7bits
 
Курс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 13. SpringКурс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 13. Spring7bits
 
Курс Java-2016. Занятие 12. DBMS, JDBC
Курс Java-2016. Занятие 12. DBMS, JDBCКурс Java-2016. Занятие 12. DBMS, JDBC
Курс Java-2016. Занятие 12. DBMS, JDBC7bits
 
Курс Java-2016. Занятие 11. Servlets, JSP
Курс Java-2016. Занятие 11. Servlets, JSPКурс Java-2016. Занятие 11. Servlets, JSP
Курс Java-2016. Занятие 11. Servlets, JSP7bits
 
Курс Java-2016. Занятие 10. Reflection, mock
Курс Java-2016. Занятие 10. Reflection, mockКурс Java-2016. Занятие 10. Reflection, mock
Курс Java-2016. Занятие 10. Reflection, mock7bits
 
Курс Java-2016. Занятие 08. Итераторы, многопоточность
Курс Java-2016. Занятие 08. Итераторы, многопоточностьКурс Java-2016. Занятие 08. Итераторы, многопоточность
Курс Java-2016. Занятие 08. Итераторы, многопоточность7bits
 
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекцииКурс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции7bits
 
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
Курс Java-2016. Занятие 06. Файлы и ввод-выводКурс Java-2016. Занятие 06. Файлы и ввод-вывод
Курс Java-2016. Занятие 06. Файлы и ввод-вывод7bits
 
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub
Курс Java-2016. Занятие 04 (часть 2). Git и GitHubКурс Java-2016. Занятие 04 (часть 2). Git и GitHub
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub7bits
 
Курс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
Курс Java-2016. Занятие 04 (часть 1). Еще немного про GenericsКурс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
Курс Java-2016. Занятие 04 (часть 1). Еще немного про Generics7bits
 
курс Java 2016. занятие 03. интерфейсы, generic, исключения
курс Java 2016. занятие 03. интерфейсы, generic, исключениякурс Java 2016. занятие 03. интерфейсы, generic, исключения
курс Java 2016. занятие 03. интерфейсы, generic, исключения7bits
 
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с MavenКурс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven7bits
 
Курс Java-2016. Занятие 01. Введение в Java как технологию
Курс Java-2016. Занятие 01. Введение в Java как технологиюКурс Java-2016. Занятие 01. Введение в Java как технологию
Курс Java-2016. Занятие 01. Введение в Java как технологию7bits
 
Спецкурс-2015. Занятие 05. Системы контроля версий
Спецкурс-2015. Занятие 05. Системы контроля версийСпецкурс-2015. Занятие 05. Системы контроля версий
Спецкурс-2015. Занятие 05. Системы контроля версий7bits
 
Спецкурс-2015. Занятие 04 (часть 2). Обработка исключительных ситуаций, запи...
Спецкурс-2015. Занятие 04 (часть 2). Обработка исключительных ситуаций, запи...Спецкурс-2015. Занятие 04 (часть 2). Обработка исключительных ситуаций, запи...
Спецкурс-2015. Занятие 04 (часть 2). Обработка исключительных ситуаций, запи...7bits
 

Más de 7bits (20)

Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап? Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
 
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофтаГудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
 
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакатьГудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
 
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
 
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
 
Goodbye, IT-loft! Тараканов Алексей: Идеология в IT
Goodbye, IT-loft! Тараканов Алексей: Идеология в ITGoodbye, IT-loft! Тараканов Алексей: Идеология в IT
Goodbye, IT-loft! Тараканов Алексей: Идеология в IT
 
Курс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 13. SpringКурс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 13. Spring
 
Курс Java-2016. Занятие 12. DBMS, JDBC
Курс Java-2016. Занятие 12. DBMS, JDBCКурс Java-2016. Занятие 12. DBMS, JDBC
Курс Java-2016. Занятие 12. DBMS, JDBC
 
Курс Java-2016. Занятие 11. Servlets, JSP
Курс Java-2016. Занятие 11. Servlets, JSPКурс Java-2016. Занятие 11. Servlets, JSP
Курс Java-2016. Занятие 11. Servlets, JSP
 
Курс Java-2016. Занятие 10. Reflection, mock
Курс Java-2016. Занятие 10. Reflection, mockКурс Java-2016. Занятие 10. Reflection, mock
Курс Java-2016. Занятие 10. Reflection, mock
 
Курс Java-2016. Занятие 08. Итераторы, многопоточность
Курс Java-2016. Занятие 08. Итераторы, многопоточностьКурс Java-2016. Занятие 08. Итераторы, многопоточность
Курс Java-2016. Занятие 08. Итераторы, многопоточность
 
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекцииКурс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции
 
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
Курс Java-2016. Занятие 06. Файлы и ввод-выводКурс Java-2016. Занятие 06. Файлы и ввод-вывод
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
 
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub
Курс Java-2016. Занятие 04 (часть 2). Git и GitHubКурс Java-2016. Занятие 04 (часть 2). Git и GitHub
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub
 
Курс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
Курс Java-2016. Занятие 04 (часть 1). Еще немного про GenericsКурс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
Курс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
 
курс Java 2016. занятие 03. интерфейсы, generic, исключения
курс Java 2016. занятие 03. интерфейсы, generic, исключениякурс Java 2016. занятие 03. интерфейсы, generic, исключения
курс Java 2016. занятие 03. интерфейсы, generic, исключения
 
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с MavenКурс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
 
Курс Java-2016. Занятие 01. Введение в Java как технологию
Курс Java-2016. Занятие 01. Введение в Java как технологиюКурс Java-2016. Занятие 01. Введение в Java как технологию
Курс Java-2016. Занятие 01. Введение в Java как технологию
 
Спецкурс-2015. Занятие 05. Системы контроля версий
Спецкурс-2015. Занятие 05. Системы контроля версийСпецкурс-2015. Занятие 05. Системы контроля версий
Спецкурс-2015. Занятие 05. Системы контроля версий
 
Спецкурс-2015. Занятие 04 (часть 2). Обработка исключительных ситуаций, запи...
Спецкурс-2015. Занятие 04 (часть 2). Обработка исключительных ситуаций, запи...Спецкурс-2015. Занятие 04 (часть 2). Обработка исключительных ситуаций, запи...
Спецкурс-2015. Занятие 04 (часть 2). Обработка исключительных ситуаций, запи...
 

Спецкурс 2014, занятие 6. Базы данных

  • 1. Спецкурс  ОмГУ-­‐2014   Базы  данных   Занятие  6    
  • 2. Спецкурс  ОмГУ-­‐2014   База  данных  –  определений   много,  в  основном,  по  признакам   (логическая  связанность,   обработка  на  ЭВМ  и  т.д.)     Определения    
  • 3. Спецкурс  ОмГУ-­‐2014   Система  управления  базами   данных  (СУБД)  –  программная   система  для  создания  и   управления  базами  данных   Определения    
  • 4. Спецкурс  ОмГУ-­‐2014   Виды  баз  данных  (по  модели):   1.  реляционные   2.  иерархические   3.  сетевые   4.  объектные   5.  объектно-­‐реляционные     Определения      
  • 5. Спецкурс  ОмГУ-­‐2014   Реляционная  модель  –  модель,   основанная  на  реляционной   алгебре  (алгебра  отношений  на   кортежах)     Определения    
  • 6. Спецкурс  ОмГУ-­‐2014   Примеры  реляционных  СУБД:   1.  Oracle   2.  Postgres   3.  MySQL   4.  MS  SQL   5.  SQLite     Определения      
  • 7. Спецкурс  ОмГУ-­‐2014   Схема  реляционной  БД:   1.  Таблицы  –  физическое   представление  отношений   (столбцы  –  атрибуты,  строки  –   кортежи)     Реляционные  БД      
  • 8. Спецкурс  ОмГУ-­‐2014   Схема  реляционной  БД:   2.  Внешние  файлы  –  для  больших   объемов  данных  (чаще  бинарных)     3.  Индексы  –  уникальные,   поисковые   4.  Ограничения  -­‐  первичные  и   внешние  ключи,  формульные       Реляционные  БД      
  • 9. Спецкурс  ОмГУ-­‐2014   Программный  код  в  реляционных   СУБД:   1.  Триггеры  –  для  реакции  на   события   2.  Хранимые  процедуры  и   функции  –  произвольные   алгоритмы  обработки  данных     Реляционные  БД      
  • 10. Спецкурс  ОмГУ-­‐2014   Первичный  ключ  (primary  key):   основной  ключ  таблицы,   уникальный  как  следствие,   может  быть  простым  и   составным  (несколько   столбцов)   Реляционные  БД      
  • 11. Спецкурс  ОмГУ-­‐2014   Внешний  ключ  (foreign  key):   столбцы  таблицы,  значения   которых  являются   подмножеством  первичного   ключа  другой  таблицы   Реляционные  БД      
  • 12. Спецкурс  ОмГУ-­‐2014   Нормальная  форма:   набор  свойств  отношений,  для   обеспечения  целостности   данных  (1-­‐НФ,  2-­‐НФ,  3-­‐НФ  –   самая  распространенная)   Реляционные  БД      
  • 13. Спецкурс  ОмГУ-­‐2014   Department:   id   name   Пример  БД  в  3-­‐й  нормальной  форме      
  • 14. Спецкурс  ОмГУ-­‐2014   Group:   id   name   department_id   Пример  БД  в  3-­‐й  нормальной  форме      
  • 15. Спецкурс  ОмГУ-­‐2014   Chair:   id   name   department_id   Пример  БД  в  3-­‐й  нормальной  форме      
  • 16. Спецкурс  ОмГУ-­‐2014   Student:   id   first_name   last_name   group_id   chair_id   Пример  БД  в  3-­‐й  нормальной  форме      
  • 17. Спецкурс  ОмГУ-­‐2014   Денормализация  –  снижение   уровня  нормализации,  как   правило  с  целью  повышения   производительности  (чаще   всего  уход  от  3-­‐НФ)   Денормализация  БД      
  • 18. Спецкурс  ОмГУ-­‐2014   Student:   id   first_name   last_name   group_id   chair_name   department_name   Денормализация  БД      
  • 19. Спецкурс  ОмГУ-­‐2014   Минус  денормализации  –   нужно  тщательнее  следить  за   целостностью  и   непротиворечивостью  данных   Денормализация  БД      
  • 20. Спецкурс  ОмГУ-­‐2014   Structured  query  language  (SQL)   –  язык  написания  запросов  к   реляционной  БД     SQL    
  • 21. Спецкурс  ОмГУ-­‐2014   Варианты  SQL:   1.  ANSI  SQL     2.  Oracle-­‐диалект  (Oracle  SQL)   3.  Postgres-­‐диалект   4.  MySQL-­‐диалект     SQL      
  • 22. Спецкурс  ОмГУ-­‐2014   Data  descripcon  language  (DDL):   1.  create/drop  –  database,  table,   index,  constraint     2.  alter  –  database,  table,  index,   constraint     SQL      
  • 23. Спецкурс  ОмГУ-­‐2014   Все  дальнейшие  примеры  для   выполнения  на  MySQL  5.x   Реляционные  БД      
  • 24. Спецкурс  ОмГУ-­‐2014   Создание  БД:   create  database  `omsu`   character  set  u•8   collate  u•8_general_ci;       SQL      
  • 25. Спецкурс  ОмГУ-­‐2014   Таблица  «Факультет»:     create  table  `Department`(                  id  int(20)  not  null,                  name  varchar(50)  not  null,                  primary  key(id)   )  engine=InnoDB  character  set=u•8;     SQL      
  • 26. Спецкурс  ОмГУ-­‐2014   Индекс  на  таблицу  «Факультет»:     create  unique  index   `Department_unique`  on   Department(name);     SQL      
  • 27. Спецкурс  ОмГУ-­‐2014   Таблица  «Группа»:     create  table  `Group`(                  id  int(20)  not  null,                  name  varchar(50)  not  null,                  department_id  int(20)  not  null,                  primary  key(id),                  foreign  key  (department_id)  references                                  Department(id)   )  engine=InnoDB  character  set=u•8;     SQL      
  • 28. Спецкурс  ОмГУ-­‐2014   Индекс  на  таблицу  «Группа»:     create  unique  index   `Group_unique`  on   Group(department_id,  name);     SQL      
  • 29. Спецкурс  ОмГУ-­‐2014   Data  modeling  language  (DML):   1.  insert/update/delete  –   модификация  данных     2.  select  –  построение  множества   кортежей  по  декларативному   запросу  (query)     SQL      
  • 30. Спецкурс  ОмГУ-­‐2014   Вставка  в  таблицу  «Факультет»:     insert  into  Department(id,  name)   values                (1,  ‘ИМИТ’),                (2,  ‘Физический’);     SQL      
  • 31. Спецкурс  ОмГУ-­‐2014   Вставка  в  таблицу  «Группа»:     insert  into  Group(id,  name,   department_id)   values                  (1,  ‘ММ-­‐01’,  1),                  (2,  ‘Ф-­‐05-­‐О’,  2),                  (3,  ‘МП-­‐01’,  1);     SQL      
  • 32. Спецкурс  ОмГУ-­‐2014   Запрос  к  таблице  «Факультет»:     select  name  from  Department;     ИМИТ   Физический     SQL      
  • 33. Спецкурс  ОмГУ-­‐2014   Запрос  к  таблице  «Группа»:     select  g.*   from  Group  g  inner  join  Department  d                    on  g.department_id  =  d.id   where  d.name  =  ‘ИМИТ’;     1,  ММ-­‐01   3,  МП-­‐01     SQL      
  • 34. Спецкурс  ОмГУ-­‐2014   Структура  запроса:   select  <описание  кортежа>   from  <список  таблиц>   [where  <условия  на  исходные>]   [group  by  <список  столбцов>]   [having  <условия  на  группировку>]]   [order  by  <список  столбцов>]   SQL      
  • 35. Спецкурс  ОмГУ-­‐2014   Пример:   select  d.name,  count(g.id)   from  Group  g  inner  join  Department  d                    on  g.department_id  =  d.id   where  d.name  like  ‘%И%’   group  by  d.name   having  count(g.id)  >  1   order  by  d.name;     ИМИТ,  2     SQL      
  • 36. Спецкурс  ОмГУ-­‐2014   Соединение  таблиц  –   получение  декартова   произведения  таблиц,   ограниченного  условием   соединения   Соединения    
  • 37. Спецкурс  ОмГУ-­‐2014   Пример:     select  *   from  Group  g,  Department  d   where  g.department_id  =  d.id;     1,  ММ-­‐01,  1,  ИМИТ   2,  ФФ-­‐01-­‐О,  2,  Физический   3,  МП-­‐01,  1,  ИМИТ     Соединения      
  • 38. Спецкурс  ОмГУ-­‐2014   Алгоритмы  соединения  таблиц:   1.  вложенными  циклами  (nested   loops)  –  самый  универсальный   2.  хэшированием   3.  слиянием  сортированных   списков     Соединения      
  • 39. Спецкурс  ОмГУ-­‐2014   Виды  соединений:     1.  внутреннее  –  inner  join   2.  внешнее  –  outer  join      2.1  левое  –  le;  join      2.1  правое  –  right  join      2.3  полное  –  full  join   3.  перекрестное  –  cross  join  (то  же,  что  ‘,’  в   примере  выше)     Соединения      
  • 40. Спецкурс  ОмГУ-­‐2014   Пример:     select  c.name   from  Student  s  right  join  Chair  c                  on  s.chair_id  =  c.id   where  s.chair_id  is  null;     При  отсутствии  нужной  строки  в  таблице   «Студент»,  на  ее  месте  будет  кортеж  из  null   Соединения      
  • 41. Спецкурс  ОмГУ-­‐2014   Подзапрос:   вложенный  запрос  в  другом   запросе,  может  быть  внутри   любого  DML-­‐оператора     Подзапросы      
  • 42. Спецкурс  ОмГУ-­‐2014   Результат  подзапроса  в  where   используется:   1.  в  операциях  сравнения  (скаляр)   2.  принадлежность/не   принадлежность  кортежа   множеству  –  in/not  in   3.  непустота/пустота  множества  –   exists/not  exists     Подзапросы      
  • 43. Спецкурс  ОмГУ-­‐2014   Пример:     select  c.name   from  Chair  c   where  not  exists  (                    select  null                    from  Student  s                    where  s.chair_id  =  c.id   );    Подзапросы      
  • 44. Спецкурс  ОмГУ-­‐2014   Операции  с  результатами   запросов:   1.  dis=nct  –  исключение  повторов   2.  union  [all]  -­‐  объединение   3.  intersect  –  пересечение   4.  except  –  исключение  строк  2-­‐го   множества  из  1-­‐го   Подзапросы      
  • 45. Спецкурс  ОмГУ-­‐2014   Для  дальнейшего  изучения:   1.  хорошие  упражнения  по  SQL   2.  хорошие  лекции  по  БД   Подзапросы      
  • 46. Спецкурс  ОмГУ-­‐2014   Email:  at@7bits.it   Skype:  anna_tarasenko   Web:  7bits.ru   Вопросы?