Категория ‘DB’

* Симулиране на CHECK с VIEW

Публикувано на 01 април 2010 от Филип Петров. Записано в DB.


В предишна статия свързана с ограниченията CHECK писахме за нещо изключително неприятно – не се поддържат от MySQL. В същия момент именно CHECK понякога е доста важно за интегритета на данните когато пишем в „несигурна среда“, т.е. работим с програми, на които не можем да вярваме. Прочети още…

.



* MySQL OFFSET

Публикувано на 18 март 2010 от Филип Петров. Записано в DB.


Още в началото, когато се разглеждаха заявки за еднотабличен оператор SELECT, набързо се разгледа оператор LIMIT. Да припомним – той приемаше за параметър целочислено число X, чрез което от резултатната таблица се връщат само първите X реда, а останалите „се отрязват“. Това естествено има редица приложения – разглеждане на най-новите записи от статистики, разглеждане на „най-добрите“ резултати от състезание, извеждане на последните записи в таблица и т.н. Почти винаги, за такива случаи, оператор LIMIT е предхождан от ORDER BY. Прочети още…

.



* CHECK constraint

Публикувано на 25 февруари 2010 от Филип Петров. Записано в DB.


В статията за вложен SELECT представихме едно допълнение към ER диаграмата за база данни на университет. Да припомним – проблемът беше, че в оригиналния ER модел връзката между студенти и факултети минаваше през записани учебни предмети. Така ние нямаше възможност да разберем от кой факултет е даден студент, ако той не е записал нито един учебен предмет. Предложеното решение беше да пазим допълнителен външен ключ от таблицата „студенти“ към таблицата „факултети“: Прочети още…

.



* Още за ограниченията UNIQUE

Публикувано на 25 февруари 2010 от Филип Петров. Записано в DB.


В досега разглежданите примери при CREATE TABLE на няколко пъти показвахме параметър „UNIQUE“, който се добавяше след дадена променлива. Например:

CREATE TABLE university(
   `id` INT UNSIGNED AUTO_INCREMENT,
   `name` VARCHAR(255) NOT NULL UNIQUE,
   PRIMARY KEY(id)
)ENGINE=INNODB;

Казахме, че PRIMARY KEY винаги е едновременно NOT NULL и UNIQUE по подразбиране, както и че е възможно да направим комбинация от две или дори повече колони заедно PRIMARY KEY. Прочети още…

.



* Нормализация на бази данни

Публикувано на 20 май 2009 от Филип Петров. Записано в DB.


Нормализацията на бази данни е една изключително важна тема, която обаче е по-теоретично насочена и поради тази причина не наблягахме досега на нея. Текстът по-долу е реферат на студента Никола Костадинов Симеонов, който смятам, че много добре описва темата „нормализация на бази данни“…

тема:

До къде може да стигнем с номализацията?

Никола Костадинов Симеонов, ТУ-София, ФКСУ, гр. 57

Прочети още…

.



* Разделяне на части (partitioning)

Публикувано на 20 май 2009 от Филип Петров. Записано в DB.


Представената по-долу статия е написана във вид на реферат от студентката Павлина Темелакиева от Технически Университет – София.

Тема:

„Постигане на висока производителсност
на базата данни чрез разделяне на части“

Павлина Евгениева Темелакиева, ТУ – София , ФКСУ, гр. 63А

Прочети още…

.



* FULL JOIN в MySQL

Публикувано на 20 май 2009 от Филип Петров. Записано в DB.


След като научихме заявките, използващи UNION, вече сме готови да посочим как се прави и липсващия в MySQL FULL JOIN. Ще използваме таблиците с плодове и зеленчуци от предишната статия.

Нека припомним как работеха LEFT и RIGHT JOIN. За целта ще направим многотаблична заявка по колоната „цена“: Прочети още…

.



* UNION

Публикувано на 20 май 2009 от Филип Петров. Записано в DB.


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

.



* Логически оператори и цикли

Публикувано на 19 април 2009 от Филип Петров. Записано в DB.


Чрез процедурите MySQL много наподобява завършен език за програмиране. За това силно спомагат възможностите за логически оператори и цикли. Ще ги разгледаме поотделно:

1. IF-ELSE:

Операторите IF-ELSE имат следната структура:

IF <условие>
   THEN <заявки>;
   ELSE <заявки>;
END IF;

Нека демонстрираме с един пример – процедура, на която подаваме параметри сума и номер на акаунт. Процедурата връща резултат „1″ ако в акаунта има повече пари от посочените или „0″ в противен случай: Прочети още…

.



* Процедури и входни параметри

Публикувано на 18 април 2009 от Филип Петров. Записано в DB.


Процедурите ни дават възможност да създаваме скриптове за извършване на типизирани заявки с различни входни данни. Нека демонстрираме една елементарна процедура, която извиква обикновена заявка SELECT: Прочети още…

.