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

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

Мимо каких тем нельзя пройти мимо?
  • Вопрос задан
  • 7254 просмотра
Решения вопроса 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 — немного устаревшая среда разработки. Хотя курсовую можно было делать на чем угодно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
ФЛАЙ НЭТ Москва
от 70 000 до 70 000 ₽
Альмед Красноярск
от 400 000 ₽
Wanted. Москва
от 60 000 до 120 000 ₽
22 нояб. 2024, в 06:06
1500 руб./в час
22 нояб. 2024, в 06:04
1 руб./за проект
22 нояб. 2024, в 03:54
1500 руб./за проект