C, PHP, VB, .NET

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


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

* Релационно деление с MySQL

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

Вече знаете за Декартовото произведение на таблици и как то се осъществява с JOIN операция без ON условие. Това е случаят, когато всеки елемент от едната релация се свърже с всеки елемент от другата. Бележи се с C = A x B. Операцията „релационно деление“ e обратната операция на Декартовото произведение – можем да кажем, че A = C ÷ B, както и B = C ÷ A. Прочети още…

.

 


* Контролна работа, 18.04.2015, вариант 2

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

На представената ER диаграма е показан фрагмент от база от данни за лечебните процедури, които се прилагат върху пациентите в клиника. За всеки пациент (Patient) се пази EГН и име. За леченията (Threatment) пазим уникален идентификационен номер и цена. За докторите (Doctor) пазим уникален идентификационен номер и име. Всяка лечебна процедура (Procedure) е извършена в точно определено време и в точно определен номер на стая. Прочети още…

.

 


* Контролна работа, 18.04.2015, вариант 1

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

На представената ER диаграма е моделирана база от данни за прожекциите на филми в различни кина. Всяко кино (Theater, за които пазим уникален номер, уникални име и град в който се намира) има по няколко зали (Screen, за които пазим номер на залата и тип – един от три възможни: normal, deluxe и VIP), които правят прожекции (Show, за които пазим време на излъчване на прожекциите и брой на зрители, които са си закупили билети) на определени филми (Movie, за които пазим уникален номер, уникално име, година и държава, в която са снимани). Специално отбелязваме, че номера на зала (screen.no) НЕ е първичен ключ – този номер отбелязва зала 1, 2, 3 и т.н. във всяко кино и не е уникален идентификатор за зала в системата. Прочети още…

.

 


* 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 долар). За всеки потребител се пази дневна статистика. Прочети още…

.