C, PHP, VB, .NET

Дневникът на Филип Петров


Категория ‘Бази от Данни’

* INTERSECT и ЕXCEPT в MySQL

Публикувано на 13 април 2015 в раздел Бази от Данни.

В теорията на релационните бази от данни се използват често основните операции върху множества. Досега не сме ги разглеждали в теоретичен план, а ги използвахме чисто интуитивно. Сега отново няма да се задълбочаваме във формализъм, а ще погледнем нещата от практична гледна точка, като естествено ще поставим основния акцент върху реализацията на операциите в MySQL. Прочети още…

.

 


* Шеста нормална форма

Публикувано на 14 март 2015 в раздел Бази от Данни.

Шеста нормална форма (6НФ) е предложена през 1990 г. от Кристофър Дейт с цел да бъдат разрешени проблеми с дублиране на информация при т.нар. „времеви масиви с информация“ (temporal data). Става въпрос за таблици, в които записваме информация за настоящи и предишни варианти на дадени записи. Нека например разгледаме следната таблица: Прочети още…

.

 


* Изтриване на дублирани записи

Публикувано на 18 август 2014 в раздел Бази от Данни.

Дадена е таблица, в която има дублиращи се записи. Вашата задача е да изтриете всички повторения (т.е. да остане по един запис от всеки дубликат). Задачата звучи привидно тривиална. Нека създадем примерна таблица и да я напълним с информация: Прочети още…

.

 


* Пета нормална форма

Публикувано на 21 юни 2014 в раздел Бази от Данни.

Предишните нормални форми имаха строги и ясни правила. В общи линии с нарастване на практическия опит спазването им става интуитивно. А в практиката дори несъзнателно започваме да спазваме едно съвсем просто (но погрешно!) правило: „да има възможно най-малко на брой таблици, като същевременно с това да няма повторение на информация“. Това правило обикновено води до добре нормализирана база от данни. А защо все пак е погрешно? Прочети още…

.

 


* Нормална форма на Бойс-Код и четвърта нормална форма

Публикувано на 08 юни 2014 в раздел Бази от Данни.

Продължавам статията свързана с примери за нормализация. Бяхме стигнали до 3НФ. Следващата нормална форма, която можем да приемем за междинна между 3-та и 4-та, е нормалната форма на Бойс-Код. Нека разгледаме следната таблица: Прочети още…

.

 


* Привеждане на база от данни до 3НФ

Публикувано на 04 юни 2014 в раздел Бази от Данни.

На упражнения обикновено избягваме формализма на теорията и се фокусираме почти изцяло върху практически задачи. Така например един от сложните в теорията раздели – този свързан с нормализация на бази от данни – го използваме и в практическите задачи, но почти винаги интуитивно. В тази статия ще се стремя да отстраня тази несправедливост и да покажа в явен вид какво е съответствието между теория и практика. Прочети още…

.

 


* Втори вариант от контролна работа 27.05.2013

Публикувано на 01 юни 2013 в раздел Бази от Данни.

В система на агенция по маркетинг и реклама се регистрират свободно потребители, които от своя страна водят свои приятели (приятелите са “referrals”, а довелите ги са „referrers”). Всеки потребител прави определено количество точки в системата (points). Всеки потребител взима и процент от точките на неговите referrals – 10% от техните точки. В крайна сметка на месечна база общият сбор от точки се превръща в пари на базата на т.нар. „pay rate” (например при pay rate 0.01 всеки 100 точки стават 1 долар). За всеки потребител се пази дневна статистика. Прочети още…

.

 


* Изготвяне на класиране с SQL код

Публикувано на 30 май 2013 в раздел Бази от Данни.

Нека имаме таблица с имена на студенти и съответни точки, които са получили на контролна работа. Повечето точки са по-добър резултат. Таблицата е следната: Прочети още…

.

 


* Първи вариант от контролна работа 27.05.2013

Публикувано на 27 май 2013 в раздел Бази от Данни.

Давам примерно решение на задачата от контролна работа 2. Показаното по-надолу решение на 80% е дадено от студент. Редактирал съм някои грешки, които е нормално да се появят по време на контролна работа на лист хартия, както и на някои места леко съм оптимизирал заявки (например съм променил начина за итериране на цикъла в задача 2). Поправил съм и двете имена на променливи, заради които условието беше определено от ваш колега като „сбъркано“, а задачата „дефектна“ в друга тема от сайта (а пък самият аз явно съм показал „дребнава и мизерна същност“ понеже условията на задачите са били неясни, а по време на контролната работа съм отказвал да помагам). Маркирал съм проблемните две места с коментари в SQL кода (както беше отбелязано и на самата контролна работа на дъската). Условието започва от следващия параграф. Оставям на читателите сами да преценят нивото на сложност и доколко задачите са дефинирани неясно. Утре ще публикувам и втория вариант, който беше даден на другите групи.

Застрахователна компания пази списък с клиенти и типове застраховки. В началото на всеки месец се извършва плащане по застраховките. Ако плащането не може да се извърши (например картата на човека няма достатъчно пари), се прави запис в таблица за длъжниците. Прочети още…

.

 


* Задача от 23.05.2013

Публикувано на 24 май 2013 в раздел Бази от Данни.

Задачата е дадена на контролната работа за заминаващите на студентска бригада. В отдел „човешки ресурси“ на фирма се пази информация за служителите и техните заплати по следния начин: Прочети още…

.