C, PHP, VB, .NET

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


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

* Привеждане на база от данни до 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 в раздел Бази от Данни.

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

.

 


* innodb_file_per_table – необходимото зло

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

По подразбиране MySQL използва един общ системен файл за запазване на цялата информация свързана с InnoDB таблиците. Файлът се казва ibdata1 и съдържа цялата информация записана във всички InnoDB таблици, всички индекси, както и различни буфери. Един основен недостатък при използването на общо запазване е… че ibdata1 никога не намалява размера си. Дори да изтривате информация от таблиците си, даже и да изтриете цели таблици, файлът няма да намали своята големина. В него остават „дупки“. Така в зависимост от системата, която работи, е съвсем възможно иначе малка база от данни да заема все повече и повече дисково пространство, докато в един момент не запълни целия хард диск. Прочети още…

.

 


* Свързване на Java с MySQL

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

В тази статия ще бъде показан най-елементарен пример за свързване на програма на Java с база от данни на MySQL. За целта освен инсталирани MySQL сървър и наличие на JDK ще ни е нужен драйвера Connector/J. Него трябва да го изтеглите от сайта на MySQL.

Нека първо да създадем една елементарна база от данни и да създадем потребител за нея: Прочети още…

.

 


* MySQL и memcached

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

Memcached е приложение, което се използва основно за кеширане на данни и работи принципа ключ-стойност (хеш таблица). Обикновено записва данните само в рам паметта. Правейки аналогия с релационните бази от данни, може да си го представите като една таблица, в която има две колони – в първата записвате уникални идентификатори на данни, а във втората записвате самите данни. Освен това тази таблица може да е разделена между множество физически сървъри (sharding). А работата с този софтуер реално е много лесна. Имате няколко команди: Прочети още…

.

 


* Учебник по Бази от Данни

Публикувано на 16 септември 2012 в раздел Бази от Данни.

След близо три години протакане, размотаване и мързел, това лято най-накрая дойде принудата и от „няма накъде“ довърших моята част от отдавна чакания за издаване учебник по предмета „Бази Данни“ в Технически Университет – София. От една страна е хубаво, че нещата отлежаха толкова дълго – имаше време да с преосмислят и редактират много неща. „Така става като старо вино“ каза мой приятел. От друга страна се получава нещо, което наричам „ефектът на многото редакции“ – при всеки нов прочит и редакция на стар свой материал, авторът се разочарова все повече и повече от него. Бях гледал интервюта с известни музиканти, които разказват как не харесват най-популярните си песни и всъщност са ги презаписвали множество пъти преди да бъдат издадени – дори някои хитове били на ръба на изхвърляне от албумите им. Сега и аз имам точно такова усещане – чета отпечатаното и намирам все повече и повече грешки, неточности, не ми харесва стила с който съм писал (не е като за учебник) и какво ли още не. Даже вчера с молив успях да си поставя забележки по близо една трета от страниците, които съм писал. Както и да е – всъщност читателите ще са тези, който ще съдят най-добре и ако не ме замерват с камъни, значи като за първи труд в живота си съм се справил добрe. Така, че станалото – станало и връщане назад няма: Прочети още…

.

 


* Някои задачи от контролна работа №2

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

Прилагам трите най-сложни задачи, които се паднаха на контролната работа на 21.05.2012г., заедно с примерни (бързи) решения. Във вариант 4 „трудната задача“ беше от друго естество, затова по-нататък ще я разгледам отделно. Другите задачи от вариантите смятам за достатъчно лесни (решават се непосредствено чрез прилагане на заучени правила) и на тях няма да давам решения. Прочети още…

.