Програма на курса "Бази данни"


16

Колеги, имаме начален вариант на учебната програма в курса "Бази данни", разписана по теми и по дати. Курсът се очаква да е 3 седмици (2 седмици по същина + 1 седмица практически проекти и изпити).

Програмата не е окончателна!

Програма на курса "Бази данни"

Тема

Структура

Въведение в съвременните бази данни

  • RDBMS системи – сървъри за управление на бази данни
  • Модели за организация и съхранение на данни
  • Релационни бази данни: таблици, първичен ключ, външен ключ, релации, множественост, E/R диаграми, нормализация, индекси, ограничения, език SQL, изгледи, съхранени процедури, тригери
  • Нерелационни (NoSQL) бази данни: модел ключ-стойност, модел "документ", JSON модел
  • Упражнения: инсталиране на MS SQL Server и MySQL и работа с MongoDB в cloud среда

8 юли 2013

2 часа лекции

2 часa упражнения

Въведение в MS SQL Server и MySQL

  • MS SQL Server – услуги, бази данни, типове бази, автентикация и достъп, SQL Server Management Studio, създаване на база, създаване на таблици, извличане и редактиране на данни, преместване на база (чрез SQL скрипт, attach / detach, backup / restore)
  • MySQL – конзолен клиент, създаване на бази данни, създаване на таблици,  потребители и автентикация, MySQL Workbench, извличане и редактиране на данни, phpMyAdmin
  • Упражнения: запознаване с SQL Server, SQL Server Management Studio, MySQL и MySQL Workbench

8 юли 2013

2 часа лекция
2 часа упражнения

Моделиране на данни и E/R диаграми

  • Моделиране на данни – основни принципи
  • Типове данни в SQL Server и MySQL
  • Създаване на база данни в SQL Server и MySQL
  • Дефиниране на таблици, колони, първичен ключ и autoincrement / identity колони
  • Дефиниране на релации (връзки) между таблици: едно към много (1 x *), много към много (* x *), едно към едно (1 x 1, наследяване), авторелации
  • Задаване на стойност по разбиране и ограничения за стойностите
  • Конвенции за именуване на обектите в базата данни
  • Упражнения: дизайн на бази данни в SQL Server и в MySQL

9 юли 2013

2 часа лекция
2 часа упражнения

Език SQL – основи

  • Синтаксис на езика SQL и DML команди (SELECT, INSERT, UPDATE, DELETE)
  • SELECT заявки, селектиране на данни, филтриране, сортиране, съединения (joins), вътрешни и външни съединения
  • Добавяне, промяна и изтриване на данни
  • Упражнения: писане на SQL заявки върху релационна база данни

9 юли 2013

2 часа лекция
2 часа упражнения

Език SQL – групиране и DDL

  • Вложени заявки
  • Агрегатни функции и групиране
  • Функции в SQL Server и MySQL
  • DDL команди за промяна на релационната схема
  • Упражнения: писане на SQL заявки върху релационна база данни

10 юли 2013

2 часа лекция
2 часа упражнения

Език Transact-SQL и съхранени процедури

  • Езикът Transact-SQL: DML, DDL, DCL
  • Съхранени процедури в SQL Server: дефиниране, извикване, параметри
  • Тригери и потребителски функции
  • Работа с курсори
  • Упражнения: писане на съхранени процедури

10 юли 2013

2 часа лекция
2 часа упражнения

Достъп до данни с ADO.NET

  • Библиотека ADO.NET – архитектура и основни класове
  • Модели за достъп до данни: свързан, разкачен, ORM модел
  • Извличане на данни от SQL Server и MySQL, връзка към базата, команди, четци, параметрични заявки, връзка с MS Access и Excel, SQL Injection
  • Упражнения: достъп до SQL Server и MySQL от C# чрез ADO.NET

11 юли 2013

3 часа лекция
5 часа упражнения

ORM технологии и Entity Framework

  • Технология LINQ и използване на LINQ заявки в C#
  • Въведение в ORM технологиите
  • ADO.NET Entity Framework (EF), Visual Studio Entity Framework Designer
  • Използване на ObjectContext за създаване, четене, обновяване и изтриване на информация (CRUD операции), LINQ заявки върху EF, проследяване на заявки, native SQL заявки, параметрични заявки, съединения и групиране
  • Упражнения: достъп до SQL Server и MySQL от C# през Entity Framework

12 юли 2013

3 часа лекция
5 часа упражнения

Производителност в Entity Framework

  • Извличане на част от колоните, не всички
  • Проблемът с ToList()
  • Избягване на проблема „N+1 заявки“
  • Групови промени (batch updates)
  • Упражнения: оптимизация на EF код

15 юли 2013

1 часа лекция
2 часа упражнения

Модел “Code First” в Entity Framework

  • Моделът на разработка “Code First” в ADO.NET Entity Framework
  • Анотации на данните за дефиниране на съответствия и ограничения
  • Entity Framework Fluent API за дефиниране на съответствия и ограничения
  • Дизайн шаблон „Repository“
  • Упражнения: разработка на приложение за обработка на данни, базирано на EF Code First подхода с data annotations и Fluent API

15 юли 2013

2 часа лекция
3 часа упражнения

OpenAccess ORM Framework

  • OpenAccess ORM
  • Forward Mapping, Reverse Mapping, CRUD операции
  • OpenAccess Designer във Visual Studio
  • Типове mapping: flat, horizontal, vertical, mixed
  • Упражнения: достъп до SQL Server и MySQL от C# през OpenAccess ORM

16 юли 2013

2 часа лекция
2 часа упражнения

Database проекти във Visual Studio

  • Работа с бази данни от Visual Studio: Database Projects & Data-Tier Applications
  • Импортиране на база данни
  • Редактиране на релационната схема
  • Публикуване на база данни
  • Сравнение на различията между две схеми (Schema Comparison)
  • Компонентно тестване на база данни (database unit testing)
  • Упражнения: импортиране на база данни, променя на схемата, сравнение на различията и публикуване; писане на database unit тестове

16 юли 2013

2 часа лекция
2 часа упражнения

Производителност на релационните бази данни (SQL Performance)

  • Производителност на SQL Server
  • Фактори за производителност при релационни бази данни
  • Индекси (клъстерирани и неклъстерирани)
  • Планове за изпълнение (execution plans)
  • Индексирани изгледи (indexed views)
  • Разделяне на таблици (partitioning)
  • Упражнения: оптимизация на производителност в SQL Server и MySQL

17 юли 2013

 

3 часа лекция
1 часа упражнения

Обработка на транзакции

  • Транзакции и управление на конкурентния достъп в релационни бази данни
  • ACID транзакции. Нива на изолация. Транзакции в езика SQL
  • Конкурентност чрез заключване (Pessimistic Concurrency Control & Locking)
  • Оптимистична конкурентност (Optimistic Concurrency Control)
  • Журнал на транзакциите (transaction log) и възстановяване
  • Управление на супермаркет: case study
  • Транзакции в ADO.NET и Entity Framework
  • Упражнения: изграждане на транзакционна система за обслужване на банкомат (ATM), базирана на MS SQL Server и ADO.NET Entity Framework

17 юли 2013

4 часа лекция
2 часа упражнения

Нерелационни бази данни: Redis и MongoDB

  • Модели на нерелационните (NoSQL) бази данни: ключ-стойност, документни, JSON-базирани
  • База данни Redis: създаване на обекти, търсене, промяна, изтриване
  • База данни MongoDB: създаване на обекти, търсене, промяна, изтриване
  • Упражнения: достъп до данни с Redis и MongoDB (в cloud среда) – изпълнение на CRUD операции през JavaScript и C#

18 юли 2013

2 часа лекция
6 часа упражнения

XML и работа с XML парсери

  • Въведение в езика XML: синтаксис, тагове, атрибути, пространства от имена
  • DTD и XSD схеми, валидация, XPath и XSL
  • XML парсери в .NET Framework: DOM, SAX и StAX парсери, търсене с XPath, LINQ to XML, XSL трансформации

19 юли 2013

3 часа лекция
5 часа упражнения

Практически проект (отборна работа)

  • Създаване на приложение за обработка на данни (по отбори)
  • Работа със SQL Server, MySQL и SQLite
  • Работа с Entity Framework и OpenAccess ORM
  • Четене и писане от MS Excel и MS Access
  • Четене и писане на XML файлове
  • Четене и писане на данни от MongoDB
  • Генериране на PDF документ

22 юли 2013

23 юли 2013

Подготовка за изпит

  • Създаване на база данни в SQL Server и дефиниране на релационна схема
  • Импортиране на данни от XML файл в SQL Server (през Entity Framework) + unit тестове
  • Изграждане на заявки и генериране на справки
  • Записване на информация в MongoDB, в Excel файл и в XML файл

24 юли 2013

2 часа лекции
6 часа упражнения

Изпит

  • Практически изпит по бази данни
  • Създаване на база данни в SQL Server и дефиниране на релационна схема
  • Импортиране на данни от XML файл в SQL Server (през Entity Framework) + unit тестове
  • Изграждане на заявки и генериране на справки
  • Записване на информация в MongoDB, в Excel файл и в XML файл

25 юли 2013

8 часа изпит

Проверка на изпит

  • Peer review по зададени критерии
  • Всеки студент оценява по 3 чужди изпита

26 юли 2013

8 часа проверка

Можете да коментирате свободно учебния план. Скоро ще качим и част от учебните материали в студентската система.

Курсът по принцип е за хората, които продължават присъствено в академията в целодневна форма на обучение. Може да се участва и онлайн.

Препоръчителен софтуер

Препоръчвам Microsoft SQL Server 2012 Developer with Service Pack 1 (има го в DreamSpark).

Проверете дали сте чекнали "Developer Tools" при инсталацията, защото е важно е да имате SQL Server Management Studio (ще го ползвате всеки ден през идните 3 седмици). Това е админският инструмент за SQL Server за човъркане из базата. SQL Server Developer Edition е същото като Enterprise, но лицензът е за development цели.

Алтернатива, която ще ви свърши работа и е малко по-лека (за маломощни лаптопи с малко ресурси) е Microsoft SQL Server 2012 Express with Tools with Service Pack 1. Важно е да е with Tools (за да имате Management Studio).

За MySQL инсталирайте MySQL Community Server 5.x от тука: http://dev.mysql.com/downloads/mysql/.

Ще ви трябва още инстументът MySQL Workbench (това е админският инструмент за човъркане из MySQL бази): http://dev.mysql.com/downloads/tools/workbench/.

За MongoDB и Redis не ви трябва нищо да инсталирате, защото ще ползваме cloud базирани hosted услуги:

Наков




Отговори



3
Ето това вече е програма :) Радвам се, че най-накрая ще мога да запълня свободното време, което ми оставаше... много се чудех какво да го правя. В рамките на шегата естествено!
Страхотно е, че програма идва толкова рано! Дано оцелеем след днешния изпит за да я опитаме.
Поздрави :)

от FeRt1 (2866 точки)


1

Напомням на всички, че по план седмицата 29 юли - 4 август е ваканция. След това следва курсът по уеб услуги и REST.

Наков


от svetlin.nakov (31978 точки)


0
А за уикендите преди и след седмица за почивка има ли вероятност да се насрочат лекции, тъй като вече идва време за почивки и трябва да си правим планове ?

от adrianhr91 (195 точки)

0
Няма да има учебни занятия в неработни дни.

от svetlin.nakov (31978 точки)


2
Да попитам.Има ли ориентировъчна бройка колко хора ще продължим в следващия семестър?

от iwitass (3695 точки)


0
Трудно е да се каже. Ориентировъчно между 150 и 250.

от svetlin.nakov (31978 точки)


2
Кога ще подписваме договори?
PS: Optimist level 9000 :D

от SVGN_H (3048 точки)


0
Да, ще има договори. Без промени от миналата година. Очаквайте ги в понеделник. Тогава ви ги даваме и ще имате няколко дни да ги огледате на спокойствие.

от svetlin.nakov (31978 точки)

0
А при подбора на хората ще се гледат ли оценките и коментарите на колегите от екипната работа и допълнителните курсове, които сме взимали(например фотошоп) ?

от plamen.yovchev (3283 точки)


0
Може ли този курс да се гледа онлайн?

от Gavril (67 точки)


0
Може, да. Все пак Наков завършва поста си с: Може да се участва и онлайн.

от JJVIlI (380 точки)

0
Може да се участва онлайн. Записвайте се, ако имате интерес. Обаче ще има нова тема всеки ден, и ако не отделиш поне по 8 часа на ден, няма как да се справиш да научиш целия този учебен материал за това време. Обемът на материала е колкото C#1 + C#2 някъде.

от svetlin.nakov (31978 точки)


2
Здравейте.Направи ми впечатление, че по програма всеки ден са по 8 часа, единствено на 17-ти Юли са 10 часа. Някаква грешка при попълването на таблицата ли е или така си е по план?
Поздрави :)

от Troev (130 точки)


0
по 8-10 часа на ден ще бъде, както и да сега, само че в академията, а не вкъщи

от svetlin.nakov (31978 точки)


0
Ще помоля лекторите на курса за някакви препоръки като литература и други ресурси, които могат да се ползват за подготовка освен лекциите и упражненията от курса.

от petarpenev (3148 точки)


0
Едва ли ще ви трябват ще ресурси. Трябва практика, не литература. Иначе книжки за бази данни и SQL ще намерите много, дори на българския пазар.

от svetlin.nakov (31978 точки)


0
Този трак дали ще е публичен?
Ако ли не, може ли някой тайно да записва :)

Поздрави

от kpacu (1114 точки)


0
Публичен ще е. ;)

от vlad_karamfilov (4595 точки)

0
Да публичен е за щастие:
"Курсът по принцип е за хората, които продължават присъствено в академията в целодневна форма на обучение. Може да се участва и онлайн."

от atodorova (1273 точки)



2
За мое огромно съжаление, най-вероятно ще трябва да приключа до тук с присъственото обучение. Просто програмата и договорите не са ми по-силите. Искрено се надявам да има материали за онлайн обучение и за следвищите курсове, защото много бих искала да продължа да се занимавам с това.

от atodorova (1273 точки)


0
Ще има всичко онлайн.

от svetlin.nakov (31978 точки)


7
Три въпроса: 1. Как стой въпроса с отсъствията, ако ни се наложи някой ден да неможем да присъстваме на лекциите и упражненията? 2. Малко повече разяснение за договорите, какво точно означава подписването им и задължително ли е за присъственото обучение? 3. Онлайн курсистите ще имат ли отново възможност да участват в проектите и да се явяват на изпити?

от AsenVal (3487 точки)


0
Отсъствия са позволени. Както и до сега ще са част от оценяването (малка част), така че трябва да се стараете да идвате редовно. Който отсъства, ще гледа видео материалите за да навакса.

от svetlin.nakov (31978 точки)

0
Договорите ви ангажират със следното: 1) да сте редовни, старателни и да вложите цялото си време в академията за около 3 месеца. 2) да отидете на интервю в Телерик, ако ви поканят. 3) да не търсите работа в други фирми, докато не получите отказ от Телерик.
Демек, ако сте от добрите и като personality пасвате на фирмената култура, ви се предлага работа в Телерик след здраво интензивно обучение през лятото. Ако не ви харесат (най-късно до октомври) получавате отказ за Телерик и отивате по другите фирми, които ще ви лапнат като топъл хляб.

от svetlin.nakov (31978 точки)