Университетский курс «Базы данных». О чем?

С высоты полученного опыта, чего бы вы хотели в свое время увидеть в университетском курсе «Базы данных»?

Мимо каких тем нельзя пройти мимо?
  • Вопрос задан
  • 7189 просмотров
Решения вопроса 1
@grigorym
Веду курс по БД в университете, один семестр второго курса, 12 лекций, много лаб и курсовая. Последовательность подавания материала примерно такая:
0. Байки о том, что БД — это хлеб программиста, и описание всех полученных за последнюю неделю просьб найти oracle-программиста для банка на NNN тыщ рублей в месяц :)
1. Вступление, общее описание проблемы, немного истории. (0.5 лекции)
2. Табличное представление данных сразу на примере: рисуем огромную денормализованную таблицу с проданными билетами в кинотеатр и начинаем думать о том, что в ней не так, и как это исправить. Студенты сами называют слова «дублирование», «противоречивость» и пр., и сами придумывают, как эти проблемы решать (разбиение на таблицы); рождаются (пока неформально) понятия первичного ключа и внешнего. Это самый важный раздел, я считаю — здесь мы учимся проектировать реляционные БД на примере нетривиальной БД кинотеатра. Здесь же обсуждаются и многие концептуальные вопросы БД на примере того же кинотеатра. (1-1.5 лекций)
3. Реляционная модель данных: формальные определения, обозначения, и определения первичных и внешних ключей и функциональных зависимостей; NULL и трехзначная логига (1 лекция) (1 лекция)
4. Нормальные формы 1-3 и НФБК, формальные определения и процедура нормализации. (1 лекция)
5. Транзакции и параллелизм (описание проблематики, возможные подходы к решению). (0.5 лекций)
6. Язык SQL: DDL, DML (insert-update-delete), транзации. (1 лекция)
7. Язык SQL: select: from, where, select. (0.5 лекции)
8. Язык SQL: соединение, группировка, мелочи (union-minus, exist, outer join). (1 лекция)
9. Язык SQL: подзапросы (в from, в where, в select). (1 лекция)
10. Язык SQL: сложные подзапросы, решение задач выборки реляционных данных (1-1.5 лекции)
11. Процедурные расширения: процедуры, функции, триггеры (0.5 лекции)
12. Индексирование: что такое индекс, как и для чего он работает (0.5 лекции)
13. Прочие объекты схемы Oracle: последовательности (и вообще проблема уникальности), обзоры, снапшоты, временные таблицы и т.д. (0.5 лекции)
14. Инфологическое моделирование (0.5 лекции)
15. Нереляционные БД (1 лекция)
Ответ написан
Пригласить эксперта
Ответы на вопрос 8
У меня только 1 мысль, господи только не ОпенОфисБэйз.

Нужны современные базы, теория построения баз, нормальные формы, вот это все. Хотел бы услышать по реальные применения баз, например когда сознательно идут на денормализацию. В кратце про ОРМ и не реляционные БД. Бест практисис проектирования схем БД.
Ответ написан
@stash
Посмотрите что есть в курсе «Базы Данных» Ильи Тетерина. Они очень хороши на мой взгляд.
Ответ написан
Urvin
@Urvin
Нам давали построение запросов в mySQL, вполне доволен, ибо 1 пара в неделю была. Немного, но вполне емко.
Я бы, пожалуй, хотел бы еще некого расширениия кругозора — т.е. знать о канонических различиях MySQL, MS SQL, Oracle…
Еще бы в курс воткнуть триггеры, транзакции, процедуры…
Ответ написан
Комментировать
Очень станный и глупый вопрос.

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

Другое дело практическая часть данного курса — у Вас есть возможность выбора СУБД.
Ответ написан
@northbear
Рекомендую использовать только OpenSource DBMS для курса.

Основой конечно же должна быть Relational Databases. Реляционная алгебра, SQL, деревья и построение индексов, организация хранения данных на дисках.

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

Далее… Технологии организации кластеров: репликация, шардинг и прочая… Хороший инструмент — Apache Cassandrа, это правда NoSQL…
Обязательно надо давать материал по оценки сложности и ресурсоемкости запросов с учётом индексов и без них.
После этого переходить на NoSQL и key-value storages, map/reduce запросы и прочая… По нынешним временам это должно быть обязательно. Это лучше давать в конце. К этому времени вся необходимая теория им будет уже известна…

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

Не ведитесь на Oracle. Я так понимаю, что Oracle обещает бесплатные сервера и материалы для обучения. Но:
1) вам придется разориться железо. Системные требования весьма и весьма немаленькие…
2) При поставке Oracle ВУЗу придется подписать весьма кабальное соглашение ограничивающее ваши возможности. Хорошо, если они не заставят вас носить трусы с логотипом Оracle. Футболки и прочая маркетинговая мишура в хорошем хозяйстве найдут применение. Но почти наверняка запретят использовать у учебном процессе базы данных других производителей и open-source СУБД… Бесплатный сыр, как говорится…
3) Вы лишите своих студентов возможности делать практику дома. Express Edition и Personal Edition сильно урезаны. Например кластеры вы на них не соберете… Оpen-Source по многим параметрам предпочтительней.
4) Реальные потребности рынка в Oracle-программистах не высоки. Особенно на периферии. Если у вас не столичный вуз то это бессмысленно…
Ответ написан
@DevAndrew
нам давали пол года сам SQL в среде MS sql server. И ещё целый год проходили Oracle
Ответ написан
foxmuldercp
@foxmuldercp
Системный администратор, программист, фотограф
Оракл, конечно хорошо, но что-то я не видел ни одной мелкой конторы, где он используется, в отличие от банков и крупных интернет/телеком-провайдеров с миллионами пользователей.
кстати, по поводу железа и ОС — у них сейчас идет уход от соляриса в сторону сертифицированных линуксов — рхел, центоси, сьюзи, оракл линукса.
А для небольших студенческих баз этого должно хватить, хотя есть еще требования дистрибутива оракла к установке по носителю/оперативной памяти и процессору(ам) — это стоит уточнять уже по Вашей редакции.

Я бы еще давал отдельно администрирование БД — конфигурацию сервера БД, бекапы, проверки, восстановления, создание/изменение баз, схем, таблиц, управление пользователями и правами, оптимизацию под высокую нагрузку, репликации, кластеризацию, мониторинг, защиту доступа — фаерволом, например. Стоит упомянуть — как эти базы лежат на носителях — где индексы, где схемы, где логи/данные и т.п, варианты доступа к серверу — потоки/нити/сокеты/tcpip/что он там еще умеет. Кстати, анализ логов сервера БД тоже стоит дать.
Ответ написан
Комментировать
@KoteSoft
У нас было два семестра. Первый: реляционные БД в общем, отношения, структура, ключи, индексы, триггеры, целосность данных, транзакции, нормальные формы и т.д. Было много примеров и заданий направленных на создание правильной концептуальной модели БД для различных предметных областей. Второй семестр: язык SQL, начиная от создания БД и заканчивая страшными вложенными запросами, считающими среднюю температуру по больнице и берущих данные с нескольких таблиц. Закончилось все курсовой работой — созданием автоматизированного рабочего места для заданной предметной области. Курс очень неплох, вот только лабораторные мы делали на Microsoft Visual FoxPro — немного устаревшая среда разработки. Хотя курсовую можно было делать на чем угодно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы