Категория ‘Бази от Данни’
* Домейн-ключ нормална форма
Публикувано на 05 декември 2022 в раздел Бази от Данни.
Домейн-ключ нормалната форма в общи линии не се ползва в практиката и рядко се изучава дори в университетите. При нея се дефинират множества от допустими стойности чрез таблици. Обикновено е много по-подходящо въпросните ограничения да се правят в приложния софтуер, чрез CHECK ограничения или с тригери. Въпреки това за пълнота ще ги разгледам техниката за тази нормализация и тук. Прочети още…
* Рекурсивно извикване на подзаявки – още примери
Публикувано на 05 юни 2020 в раздел Бази от Данни.
В предишната статия показах един прост пример за използване на оператор WITH. Тук ще дам още няколко. Прочети още…
* Рекурсивно извикване на подзаявки
Публикувано на 04 юни 2020 в раздел Бази от Данни.
Рекурсията е традиционно слаб елемент в езика SQL. Едни от най-трудните задачи обикновено са свързани именно с извеждане на данни, които са наредени в някаква йерархия (например дървовидна структура) и зависят едни от други. В тази статия ще дам много прост пример за начални стъпки в рекурсивните заявки с оператор WITH.
Нека първо решим една наглед проста, но всъщност не съвсем тривиална задача. Нека имаме таблица, в която се отбелязват датите на възникнали покупки на продукти. Искаме да извадим списък с дата и брой покупки за деня от текущата седмица. За улеснение ще направя таблицата максимално проста: Прочети още…
* Виртуални колони
Публикувано на 16 декември 2016 в раздел Бази от Данни.
С MySQL 5.7.7 се появава още една сериозна добавка – виртуални колони в таблици. Друг възможен адекватен превод би бил „изчислими колони“ – такива, които се генерират динамично на базата на друга съществуваща информация. Нека разгледаме най-простия пример – дадена е следната таблица: Прочети още…
* Курсори
Публикувано на 19 юли 2015 в раздел Бази от Данни.
Курсорите не съдържат нищо по-особено от обикновена резултатна таблица (т.е. result set) от SELECT заявка. Това, което ги прави по-специални, е че MySQL ни позволява да обхождаме тази резултатна таблица с цикли с помощта на итератор. Може да си представите курсора като референция (или указател) към пореден ред от дадена таблица. Прочети още…
* Задача от контролно 2 – 2015 г. вариант 2
Публикувано на 17 юни 2015 в раздел Бази от Данни.
Има ежегоден рок фестивал, в който се провеждат поредица от концерти в няколко поредни дни. Във всеки отделен ден свирят по няколко групи на три различни сцени – една голяма и две малки. По правило всеки ден на голямата сцена свирят две популярни групи – една подгряваща и една основна (headliners). През останалото време на малките сцени един след друг свирят по-неизвестни състави. Трябва да се състави база от данни, в която да се пази следната информация: Прочети още…
* Задача от контролно 2 – 2015 г. вариант 1
Публикувано на 17 юни 2015 в раздел Бази от Данни.
Задачата е от 13.06.2015 г. Да се създаде база от данни, в която да се пази следната информация: Прочети още…
* FEDERATED таблици в MySQL
Публикувано на 21 май 2015 в раздел Бази от Данни.
Представете си, че имаме две различни системи, които работят с различни бази от данни, но желаем част от информацията в тези бази от данни да бъде споделена. Например имаме чат и форум – искаме когато някой се регистрира в чата, да бъде регистриран автоматично и във форума (и обратно). Тоест таблиците на двете бази от данни в по-голямата си част са различни, но една от тях – таблицата Users – трябва да бъде споделена между двете бази от данни. Прочети още…
* Регулярни изрази в MySQL
Публикувано на 21 май 2015 в раздел Бази от Данни.
Имаме таблица, в която ще съхраняваме потребителски имена и пароли. Искаме да направим така, че СУБД да валидира данните, които се въвеждат в базата от данни. Например искаме имената да са съставени само от малки букви и цифри, от 4 до 32 символа, а паролите да са от 6 до 64 символа, като задължително има поне една малка, поне една главна буква и поне една цифра. Дадената таблица е следната: Прочети още…
* Задача от контролно 2 – 2015 г. за заминаващи на бригада
Публикувано на 20 май 2015 в раздел Бази от Данни.
Задачата е дадена за заминаващите на бригада през 2015 г. Задачата от основното второ контролно през 2015 г. ще бъде формулирана в същия дух. Прочети още…