Предикат е покажувач на функција или функција објект (предмет кој со повик на функција, оператор () ()), кој дава да / не одговори на прашањето за објектот. многу алгоритми користат предикат да се донесе одлука за секој елемент тие работат на, предикатот се користи како што следува:

if( pred( *first ) ) { /* ... */ }

Како што можете да видите од овој пример, pred треба да врати вредност што може да се тестира како вистина. Имајте на ум дека предикатот е дозволено да користи const функции само преку dereferenced iterator. Некои предикати се бинарни, односно, тие се два предмети (често dereferenced iterators) како аргументи. Ова значи дека бинарен предикатната bpred треба да работи правилно кога се користи како што следува:

if( bpred( *first1, *first2 ) ) { /* ... */ }

имплементација find_if од стандардниот алгоритам (стандардната библиотека на алгоритми)

template<typename Iter, typename Pred> inline Iter find_if( Iter first, Iter last, Pred pred ) { while( first != last && !pred(*first) ) { ++first; } return first; }

Find_if е функција која прима на влез два итератори, и предикат односно функција предикат која ќе прави некоја проверка и ќе враќа вредност во зависност од проверката.

Покажувач на функција bool GreaterThanFive( int i ) { return i > 5; } bool IsAnyElementGreaterThanFive( vector<int>& v ) { return find_if( v.begin(), v.end(), GreaterThanFive ) != v.end(); }

Објект на функција

class GreaterThanFive

public std::unary_function<int, bool>

{ public: bool operator()( int i ) const { return i > 5; } }; bool IsAnyElementGreaterThanFive( vector<int>& v ) { return find_if( v.begin(), v.end(), GreaterThanFive() ) != v.end(); }

Генерализирана функција

class GreaterThan

public std::unary_function<int, bool>

{ public: GreaterThan( int value ) : value_( value ) { } bool operator()( int i ) const { return i > value_; } private: const int value_; }; bool IsAnyElementGreaterThanFive( vector<int>& v ) { return find_if( v.begin(), v.end(), GreaterThan(5) ) != v.end(); }

Ова предикатна GreaterThan функција има член што ја памти неговата вредност, во овој случај тоа е вредноста што треба да се споредува со секој елемент тоа е const int value_.

Вектор Со користење на вектор е полесно и побезбедно отколку на низа, бидејќи веткрот може да се намалува и зголемува за разлика од низата. вектор е тип на секвенца која треба да се користи по дифолт. ... Deque е податочна структура на избор кога сакаме вметнување и бришење на почетокот или на крајот на низата. вектор и deque понуди речиси идентични интерфејси и обично се менливи. deque исто така, нуди push_front () и pop_front (),векторот не. (Точно, вектор нуди capacyti() и reserve (), кaј deque не, но тоа е без загуби. Главните структурни разликата помеѓу вектор и deque лежи во начинот на кој два контејнери ги организираат своите внатрешна меморија. deque неговото складирање го прави во страници, или "делови", со фиксен број на содржани елементи во секоја страница. нејзиното име првично дојде од "double-ended queue" поради неговата способност да се вметне елементи ефикасно на едниот крај на низата. Од друга страна, еден вектор доделува соседни блокови од меморија, и може само да се вметне елементи ефикасно на крајот на низата. Вовед

Релациноите бази на подаотоци се темелат на математичката теорија на релации

Релација е подмножество од декартовиот прозивод D1xD2,D3,…Dn каде D1, D2, D3,…Dn се домени, а n е степен.

А декартовиот производ на овие н множества е множеството на сите можни подредени n-торки (d1,d2,dn) тш d1e D1, dn e Dn.

Релациите наједноставносе претставуваат во облик на табела, каде редиците се нарекуваат торки, а колоните атрибути.

Релациониот модел на подаотоци може да се разгледува од три аспекти структура на подаотоци Интегритет на подаотоци Манипулација со податоци

Клучеви на релација

Најпрвин клучевите може да се поделат на прост и сложен Прост е кога стануува збор за еден атрибут а сложен ако станув збор за груша на атрибути. Клучот на релацијата R е колекција на атрибути кој ги задоволува условите за единственост и минималност. Единственост е кога не постојат две редици со иста вредност на клучот Минималност нема атрибут што може да се отстрани од клучот, а да не се наруши неговата единственост

Кај релациноте БП разликуваме неколку видови на клучеви и тоа: - Кандидат клуч или примарен клуч кој ги вклучува особините на единственост и минималност - Алтернативен клуч е секој кандидат клуч кој не е примарен - Надворешен клуч е атрибут во релацијата чии вредности мора да се софпаќаат со вредностите на примарниот клуч од некоја релација Р1 Уште неколку прави за клучевите колоната во која се внесуваат примарните клучеви не смее да има нулта вредност Ако релацита р2 содржи надворешниот клуч тогаш вредноста на надворешниот клуч во р1 мора да биде иста или со вредноста од некој од примарните клучеви од р2 илид а биде нула.

РЕалциони прашални јазици

Релационите прашални јазици се засновани на релациона алгебра, релационити сметање на торки или нјивна комбинација Јазиците го поддржуваат и извршувањето на операциите Вметнување, бришење и модификација на подаотци Разни аритметички операции Доделување вредности и команди за печатење Операции за наоќање средна вредност, сума, минимум, максимум и сл.

Производ на две множества A и B се дефинира со:

A×B={(a,b)∣a∈A,b∈B}.

Овој производ се нарекува уште и Декартов производ и неговите елементи се подредени парови на елементи во кои првиот елемент од парот припаѓа на првото, а вториот елемент на второто множество од производот.

Пример 5 .

За множествата A={a,b,c},B={a,1,2} производот е:

A×B={(a,a),(a,1),(a,2),(b,a),(b,1),(b,2),(c,a),(c,1),(c,2)}.

Пример 6 .

Ако A={x∣1≤x≤4}, B={y∣2≤y≤6}, тогаш:

A×B={(x,y)∣(1≤x≤4)∧(2≤y≤6)}

и геометриски претставува множество на внатрешни и грани­чни точки од правоаголникот ограничен со правите: x=1,x=4,y=2,y=6.

Примери на релациони јазици

ISBL(iformation System Base language) се заснова на релациона алгебра и е развиен од IBM Quel се заснова на релационо сметање со торки а е проектиран во околина на UNIX QBE (Query by example) се заснова на релационо сметање SQUARE и SEQUEL се заснова на релационо сметање и на алгебра SEQUEL од него кон крајот на 70 тите години се развива SQL(Structured Query Language)

Релациона алгебра

Релационата алгебра може да се дефинира како множество релации со колекција операции над нив. Разликуваме три типа Унарни операции - (селекција и проекција), кои се наједноставни затоа што тие овозможуваат произлегување на нова табела врз основа на една постоечка табела.

Бинарни операции - (унија, пресек, разликата) овозможуваат да произлезе нова табела врз основа на две релации кои имаат ист степен и домен.

Бинар операции - (Декартов производ, спојување) - овозможуваат да произлезе нова релација врз основа на две или повеќе постоечки релации.

Проекција Проекција е унарна операција со која од една релација се добиваат само наведените атрибути. Со други зборови селекцијата овозможува да се изберат само оние колони од табелите кои ги сакаме.

СЕЛЕКТИРАЈ <Име на колоната>

ОД <Име на табелата>

Пр.

СЕЛЕКТИРАЈ Ime,Prezime,Godini

ОД Podatoci

СЕЛЕКТИРАЈ Ime,Godini

ОД Podatoci

Селекција Од дадена релација се селектираан оние н-торки што ги исполнуваат условот.

СЕЛЕКТИРАЈ <Име на колоната>

ОД <Име на табелата>

КАДЕ ШТО <услов>

Пр.

СЕЛЕКТИРАЈ Ime,Prezime,Godini

ОД Podatoci

КАДЕ ШТО Godini=22

СЕЛЕКТИРАЈ Ime,Prezime,Godini

ОД Podatoci

КАДЕ ШТО Ime='Vlatko'

Пр.2

СЕЛЕКТИРАЈ ID, X, Y, Z

ОД Broj

КАДЕ ШТО Y=4

Унија

Резултат на унија на две релации е нова релација R која ја има истата шема како и релациите од кои е направена. Ако две релации имаат исти торки ти нема да се повторат во новата релација.

СЕЛЕКТИРАЈ <Име на колоната>

ОД <Име на табелата>

УНИЈА

СЕЛЕКТИРАЈ <Име на колоната>

ОД <Име на табелата>

Корисник

Вработен

СЕЛЕКТИРАЈ Ime,Prezime

ОД Vraboten

УНИЈА

СЕЛЕКТИРАЈ Ime,Prezime

ОД Korisnik

Пресек Кога правиме пресек ќе ги покаже заедницките торки до двете табели

СЕЛЕКТИРАЈ <Име на колоната>

ОД <Име на табелата>

ПРЕСЕК

СЕЛЕКТИРАЈ <Име на колоната>

ОД <Име на табелата>

СЕЛЕКТИРАЈ Ime,Prezime

ОД Vraboten

ПРЕСЕК

СЕЛЕКТИРАЈ Ime,Prezime

ОД Korisnik

Разлика

Кога правиме разлика ги покажува сите торки што ги има во релацијата R1 што не припаќаат на релација Р2 Р1-Р2

СЕЛЕКТИРАЈ <Име на колоната>

ОД <Име на табелата>

РАЗЛИКА

СЕЛЕКТИРАЈ <Име на колоната>

ОД <Име на табелата>

СЕЛЕКТИРАЈ Ime,Prezime

ОД Vraboten

РАЗЛИКА

СЕЛЕКТИРАЈ Ime,Prezime

ОД Korisnik

Декартов прозивод

Спојување За прикажување на подаотоци од повеќе табели неопходно е да се изврши спојување на табели.

ВРабоден

ЕМБГ

СЕЛЕКТИРАЈ <Име на колоната>

ОД <Име на табелата1>

ВНАТРЕШНО СПОЈУВАЊЕ <Име на табелата2>

НА <услов>

Пр. СЕЛЕКТИРАЈ Ime,Prezime,EMBG

ОД Podatoci

ВНАТРЕШНО СПОЈУВАЊЕ EMBG

НА ID_Podatoci=ID_Vraboten Do you have access to a computer with rdmbs installed on it, like oracle, mssql. Or one that you can install mysql, or other rdbms on Do you prefer stimulating dinner partry conversiation to dry, dull, academic lectures Don’t you just hate losing things? Whether its your car keys, that 25 off coupon for urban outfitters, or your applications data, theres nothing worse than not being able to keep up with what you need. When you need it. And when it comes to your applications, theres no better place to store yoyur important information than in a table. So turn the page, come on in, and take a walk through the world of relational database.

Не само мразам губи работи? Дали нејзиниот вашиот клучевите од колата, дека 25 исклучување талон за урбана Outfitters, или вашите апликации податоци, theres ништо полошо отколку да не биде во можност да остане во чекор со она што ви треба. Кога ви треба. И кога станува збор за вашите апликации, таму е нема подобро место да ги чувате вашите важни информации отколку во табелата. Па сврти нова страница, ајде во, и прошетај низ светот на релациона база на податоци.

Defining your data Greg knows many lonely single people. He likes keeping track of what his friends are up to, and enjoys introducing them to each other. He has lots of information aboyut them scrawled on sticky notes like this Дефинирање на вашите податоци Грег знае многу осамени луѓе. Тој сака да ги следи неговите пријатели и тоа што тие прават, и сака да ги запознава едни со други. Тој има многу информации и тој ги запишува на лепливи белешки вака:


Greg’s been using his for a very long time. Last week be expanded his connections to include people who are seeking new jobs, so his listings are growing quickly. Very quickly… Тој за да ги прошири своите врски вклучил луѓе кои бараат нови работни места, така што неговата листа растела брзо и тоа изгледало вака

Is there a better way to organizer this information? What would you do. Е сега се поставува прашањето како може грег да се осрганизира подобро. Whell how about a database? That is what this book is about, right. Exactly right.a database is just what we need. Па како за базата на податоци? Тоа е она што оваа книга е за, нели. Се разбира со база на податоци ова може да се реши подобро. But before you can into creating databases, you re going to need to have a better idea of what kinds of data you re going to want to store and some ways of categorizing

Но, пред да може во создавање на бази на податоци, може да се случува да имаате подобра идеја за во зависност на видовите на податоците да сакаме да ги зачуваме категоризирано

Here are some od greg notes.look for similar informationthat greg collected about each prson. Give each common bit of data a label that describes the category of information it is, then write those labels in the space below.

Е сега ако да ги организираме белешките на грег во база на податоци. Најпрво ги бараме сличните информации за секоја личност

Look at your data in categories Lets look at your data in a different way. If you cut each note into pieces then spread the pieces out horizontally you get something that looked like this Е сега доколку сите белешки ги исечеме на парчиња и ги поставиме хоризонтално би добиле нешто како ова

Then if you cut up another sticky note with the categories you just noticed and put the pieces above their corresponding information oyu have something that looks a lot like thie Е сега доколку ги земиме информаиите прески кои ги оделивме тогас би добиле нешто како ова

Е сега веќе се гледа која е идејата на овај нашин се гледа дека ова изгледа како некоја табела со една редица. Подолу ни се прикажани поубаво податоците во табела во колони и редови.

Што во базата на податоци? Before we get into the details of what tables, rows, and columns are let step back and look at the bigger picture. The first sql structure you need to know about is the container that holds all your tables known as a database. Пред да се навлезе во детали на она табели, редови, и колони да видиме првин што е база на податоци. Првата SQL структура е сад кој ги содржи сите ваши табели позната како база на податоци. A database is a container that holds tables and other sql structures related to those tables. Базата на податоци е сад кој има табели и други SQL структури поврзани со овие табели. Every timeyou search online, go shopping, call information use your tivo make a reservation get a speeding ticker or buy groceris a database is being asked for information otherwise known as being queried.

A database contains tables. A table is the structure inside your database that contains data, organized in columns and rows. Remember those categories you came up with? Each category becomes a column in your table. These values might be in the same column: single, married ,divorced. A table row contains all the information about one object in your table. In greg new table a row would be all the data about one person. Here an example of some of the data than might be in one row: ime prezime, single, writer, email. Базата на пододатоци е контејнер од табели. Табелите се структурата внатре во базата која содржи податоци организирани во колони и редови. Еден ред во табелата ги создржи сите информации за еден предмет, лице и.т.н во табелата.на приерво грег табелата еден ред ќе биде сите подаотоци за едно лице. The information inside is organized into tables. Информациите во базата се организирани во табела.

Database contain connected data All of the tables in database should be connected in some way. For example here are the tables that might be in a database holding information about doughnuts. Базата содржи поврзани подаотци. Сите табели во базата треба да бидат поврзани на некој начин. На пример во базата може да има табели со податоци кои имаат информации за крофни. Името на базата треба да биде нешто на што ќе асоцира на она что се чува во ена однсоно во табелите. На пример името на базата е оброк, името на табелата желе крофни, глазура крофни и др. Тој во базата во табелите запишува каква крофна во кое време и на кое место ајде за оброк.

А coloumn is a piece of data stored by your table. A row is a single of columns that describe attributes of a single thing. Columns and rows together make up a table. Колона е дел од податоците кои се чуваат во нашата табела. Ред еден од колони ја опишува атрибут на едно нешто. Колони и редови заедно сочинуваат табела. Here an example of what an address book table containing your personal information might look like. You often see the word fieled used instead of column. They mean the same thing. Also row and record are often used interchangeably. Еве еден пример за адресар табела со вашите лични информации и таа може да изгледа. Често зборот поле се користи наместо колона. Тие значат иста работа. Исто така, ред и евиденција често се користат наизменично.

Exactly.you can identify categories for the type of data you are collection for each person. Your categories then become your columns. Each sticky note becomes a row. You can all that information from your stickies and turn it into a table. Точно може да се идентификуваат категориите за видот на податоците што се собирање за секое лице. Вашиот категории потоа да стане вашиот колони. Секоја леплива белешка станува ред. Можете да сите информации од вашиот stickies и завртите го во табелата. Да направиме сега еден тест за секоја табела да се цнесе соодветни колони. Take command Start up your sql relational database management system and open a command-line window or graphical environment that allows you to communicate with your rdbms here our terminal window after start mysql. преземе командата Стартувате вашиот SQL релациона база на податоци за управување со системот и да се отвори командната линија прозорец или графичка околина која ви овозможува да комуницирате со вашите Базе тука нашите терминален прозорец по почетокот MySQL.

Setting the table th create table statement

Let see all this in action with the doughnut data. Say you were having trouble remembering what type of doughnuts asnack in your list was just from its name you migh create table to save having remember them instead. Below is a single command to type into your console window. When you typed it you can press return to tell your sql rdbms to carry out the command Е сега откако научивме да ги организираме табелите во базата може да започнеме и да создадеме една база на податоци во својата работна околина со табели. Ќе направиме база за крофни и нејзини видови на крофни.ѓ

Есега да видиме какос е создаава база:

Тоа се прави со командата CREATE DATABASE ime_na_bazata CREATE DATABASE Korisnik Потоа создаваме табела во базата односно пишуваме ново квери и тоа изгледа вака use Krofni

CREATE TABLE Vidovi_krofni ( ime_krofni VARCHAR(15), vid_krofna VARCHAR(10) );


CREATE TABLE Podatoci ( Ime NVARCHAR (50) not Null, Prezime NVARCHAR (50) not Null . . Godini int (50) not Null );

Разлика помеѓу nulls и not nulls So I all always store everything in either varchar or date data types. Actually, you all need a few more data types for other kinds of data, like number. Soppose we added a price column to our doughnut table. We would not want to store that as a varchar. Values stored as varchar are interpreted as text, and you wonot be able to perform mathematical operations od them. But there are more data type you have not met yet. Типови на подаотоци во sql:

Cood call. Checking your work is important To see how the table you created looks you can use the desk command to view it Your table described When you entered the desc command you all see something that looks similar to this Cood повик. Проверка на вашата работа е важна Да се види како табела имаш создадено изгледа можете да го користите маса команда за да ја видите. Вашата маса е опишано Кога ќе влезе во командата опис сите вас видите нешто што изгледа слично на ова desc Vidovi_krofni out with the old table, in with the new drop table will work whether or not there is data in your table, so use the command with extreme caution. Once table is dropped its gone along with any data was in it. Drop table deletes your data in it Drop наредбата бриши подаотоците во одредена табела односно ја брши цела табела, и таа работи без разлика дали табелата има подаотоци или не така да треба да се биди претпазливи со користењето на оваа наредба. use Korisnik

DROP TABLE Podatoci To add data to your table you all use the insert statement This pretty much does what it says in the name. take a lookat the statement below to see each part works. The values in the second set of parentheses have to be in the same order as the column names. The command below isnt a real command it a template of a statement to show you the format of an insert statement Командава прикажана подолу на сликава е само дефиниција за она како се внесува во табела во база.

use Korisnik

INSERT INTO Podatoci(Ime,Prezime,Adresa,EMBG,Godini,Email) values('Vlatko','Rzanikoski','Mosa Pijade',0809988,24,'vlatko@yahoo.com')

use Krofni

INSERT INTO Vidovi_krofni(ime_krofni,vid_krofna) values('Bloberry','Polneti')

Columns without values Lets insert a record into the my_contacts database from this incomplete sticky note. Because the sticky is missing some data. Greg will have to enter an incomplete record. But that okay he all be able to add in the missing information later. Колумни без вредности Ај вметнете рекорд во my_contacts базата на податоци од овој нецелосни леплива белешка. Бидејќи леплива е недостасуваат некои податоци. Грег ќе мора да влезе нецелосна евиденција. Но, тоа во ред, тој сите бидат во можност да го додадете во недостасуваат информации подоцна. Peek at your table with select statement

So you want tio see what your table looks like. Well desc wont cut it anymore, because it only shows the structure of the table and not the information inside of it. Instead, you should use a simple select statement so you can see what data is in your table.

Значи сакате да се види она што вашата табела изгледа. И опис сакајте ја исече повеќе, бидејќи тоа само ја покажува структурата на табелата, а не на информации внатре од неа. Наместо тоа, треба да го користите едноставен изберете изјава, па можете да видите какви податоци е во вашата маса. Значи доколку сакаме да видиме што има во нашата табела и како таа тоа се прави: Проекција е унарна операција со која од една релација се добиваат само наведените атрибути. Со други зборови селекцијата овозможува да се изберат само оние колони од табелите кои ги сакаме.

select* from Podatoci

select Ime,Prezime,Email from Podatoci

Селекција Од дадена релација се селектираан оние н-торки што ги исполнуваат условот.

select* from Podatoci where Ime='Vlatko'

Дефинирање на проблемот

Дадена ние една триангулеста површина на која поминува една крива. Бидејќи кривата претставува низа од точки и доколку ја претставиме како низа од точки ќе видиме дека на рабовите од триаголниците онаму каде што поминува кривата нема точки. Нашата задача е да ги најдеме сите точки на рабовите на триаголниците онаму каде што поминува кривата. Поблемов може да се подели значи на два случаи еден од случаите е кога точките од кривата поминуваат ни триаголници кои се раб соседни и другио случај е кога наидуваме на точки се наоѓаат во триаголници кои не се раб соседни т.е. се теме соседни. Подаотоци на располагање за проблемов беа тоцчките од кривата , теминња од триаголниците и триаголниците.

Идејата со која пристапив на проблемот е да ја најдам првата точка во кој триаголник се наоѓа. Бидејќи точките ни се дадени со ред ја земам првата точка и со функцијата барицентрични ја проверувам со секој триаголлник и наоѓам во кој триаголник се наоѓа точката од кога ќе го нарпавам тоа ја запишувам точката во друга матрица и ID на темемто на триаголникот во кој сум ја нашол. Следната точка не ја проверувам со сите триаголнци бидејќи сега имам информација за едне триаголник ја проверувам да не е случајно во истиот триаголник. доколку е тогаш истот така запишија точката и ID на триаголникот односно станува збор за истиот триаголни. Се сега доколку наидам на точка која не се наѓа во истиот триаголник тогаш ги барам соседните триаголници на првиот триаголник, бидејќи знам со сигурност дека е во едне од нив. И ги барам сите теме соседни триаголници, можи да барам и низ раб соседни ама вака ми е сигурно да не правам две пребарувања и ми се вклучени во препарувањето. На овај начин ги запишувам сите точки и кај се наоѓаат. Запишување на податоците Tabela 1

Но бидејќи може да ми се јави случај каде што ID на темиња на еден ист триаголник може да не се запишат со ист редослед па оваа матрица ја транспонира и од 4 ред до крајот на редот му викам да ги сортира. Бидејќи не можам да направам сорт по колони односно да сортирам ред по ред со однапред зададени колони мора да ја свртам матрица на тој начин сортирам колона по колона и откако ќе ми ги сортира ја враќам матрицата во првичната состојба и на тој начин ги имам сортирано податоците од 4 колона до крајот во секој ред. Tabela 2

Tabela 3

Зошто ова е потребно Идејата за да најдам точка на раб е следнава: тоа ќе го направам со пресек на две прави за пресек на две прави потребни ми се четири точки. Е сега потребно ми е да ги најдам ови четири точки то ќе го нарпавам на следниов начин. Ги земам точките од матрица сортирани. Ја земам првата точка и и нејзините Id и Id ги споредувам со Id од следната точка. Доколку не ми беа сортирани Id колоните ќе требаше да ги споредувам секоја вредност од редицата од секоја колона со вредност од секоја колона од следниот ред. Со сортирањето сега бидејќи ми се сортирани ги земам во редот од 4 колона до крајот на редот вредностите и ги споредува со следните вредности во нареднио ред. Доколку се исти овие вредности тогаш спореди ги следните две редици итн. кога ќе наидам на разлечни вредности од 4 колона до крајот на редот тогаш тие две вредности запиши ги (обележани со сино) истото го правам понатаму. Tabela 5 Откако ќе ги добијам вредностите како што се насликава прикажани тогаш помеѓу првите барам дали се раб соседни или теме соседни.раб соседни се доколку две од темината на триаголниците му се исти, а теме соседни се доколку еден од темината на триаголниците му се исти. Така во табелата погоре помеѓу првите два ќе најдиме две заеднички темина 3 и 2, во третат и четвртат колона ќе најдиме пак две темина исти 3 и 4, и во последните редови ќе најдиме едно теме исто 3 и тие триаголници се теме соседни. Slika 4 tocki

Раб соседни Tabela 6

Сега откако ги имам раб соседните точки со формулите за пресек помеѓу две прави ги наоѓам точките на рабовите.

Slika Rb tocki

Теме соседни Tabela 7

Ги барам сите триаголници со теме 3 или А и потоа ги запишувам нивните координати. Во овај случај би се добиле триаголници на кој координатите на некој од темињата би му биле исти. Slika Teme sosedni koordinati Slika Teme sosedni


Tabela 7 За да не се повторува координатите бидејќи едната координата ни е позната тоа е 1 или А правиме унија со што ќе ни ги избриши сите дупликати и ќе добијаме нешто како на сликава Tabela 8

Tabela 9 Teme tocki

Do you have access to a computer with rdmbs installed on it, like oracle, mssql. Or one that you can install mysql, or other rdbms on Do you prefer stimulating dinner partry conversiation to dry, dull, academic lectures Don’t you just hate losing things? Whether its your car keys, that 25 off coupon for urban outfitters, or your applications data, theres nothing worse than not being able to keep up with what you need. When you need it. And when it comes to your applications, theres no better place to store yoyur important information than in a table. So turn the page, come on in, and take a walk through the world of relational database.

Не само мразам губи работи? Дали нејзиниот вашиот клучевите од колата, дека 25 исклучување талон за урбана Outfitters, или вашите апликации податоци, theres ништо полошо отколку да не биде во можност да остане во чекор со она што ви треба. Кога ви треба. И кога станува збор за вашите апликации, таму е нема подобро место да ги чувате вашите важни информации отколку во табелата. Па сврти нова страница, ајде во, и прошетај низ светот на релациона база на податоци.

Defining your data Greg knows many lonely single people. He likes keeping track of what his friends are up to, and enjoys introducing them to each other. He has lots of information aboyut them scrawled on sticky notes like this Дефинирање на вашите податоци Грег знае многу осамени луѓе. Тој сака да ги следи неговите пријатели и тоа што тие прават, и сака да ги запознава едни со други. Тој има многу информации и тој ги запишува на лепливи белешки вака:


Greg’s been using his for a very long time. Last week be expanded his connections to include people who are seeking new jobs, so his listings are growing quickly. Very quickly… Тој за да ги прошири своите врски вклучил луѓе кои бараат нови работни места, така што неговата листа растела брзо и тоа изгледало вака

Is there a better way to organizer this information? What would you do. Е сега се поставува прашањето како може грег да се осрганизира подобро. Whell how about a database? That is what this book is about, right. Exactly right.a database is just what we need. Па како за базата на податоци? Тоа е она што оваа книга е за, нели. Се разбира со база на податоци ова може да се реши подобро. But before you can into creating databases, you re going to need to have a better idea of what kinds of data you re going to want to store and some ways of categorizing

Но, пред да може во создавање на бази на податоци, може да се случува да имаате подобра идеја за во зависност на видовите на податоците да сакаме да ги зачуваме категоризирано

Here are some od greg notes.look for similar informationthat greg collected about each prson. Give each common bit of data a label that describes the category of information it is, then write those labels in the space below.

Е сега ако да ги организираме белешките на грег во база на податоци. Најпрво ги бараме сличните информации за секоја личност

Look at your data in categories Lets look at your data in a different way. If you cut each note into pieces then spread the pieces out horizontally you get something that looked like this Е сега доколку сите белешки ги исечеме на парчиња и ги поставиме хоризонтално би добиле нешто како ова

Then if you cut up another sticky note with the categories you just noticed and put the pieces above their corresponding information oyu have something that looks a lot like thie Е сега доколку ги земиме информаиите прески кои ги оделивме тогас би добиле нешто како ова

Е сега веќе се гледа која е идејата на овај нашин се гледа дека ова изгледа како некоја табела со една редица. Подолу ни се прикажани поубаво податоците во табела во колони и редови.

Што во базата на податоци? Before we get into the details of what tables, rows, and columns are let step back and look at the bigger picture. The first sql structure you need to know about is the container that holds all your tables known as a database. Пред да се навлезе во детали на она табели, редови, и колони да видиме првин што е база на податоци. Првата SQL структура е сад кој ги содржи сите ваши табели позната како база на податоци. A database is a container that holds tables and other sql structures related to those tables. Базата на податоци е сад кој има табели и други SQL структури поврзани со овие табели. Every timeyou search online, go shopping, call information use your tivo make a reservation get a speeding ticker or buy groceris a database is being asked for information otherwise known as being queried.

A database contains tables. A table is the structure inside your database that contains data, organized in columns and rows. Remember those categories you came up with? Each category becomes a column in your table. These values might be in the same column: single, married ,divorced. A table row contains all the information about one object in your table. In greg new table a row would be all the data about one person. Here an example of some of the data than might be in one row: ime prezime, single, writer, email. Базата на пододатоци е контејнер од табели. Табелите се структурата внатре во базата која содржи податоци организирани во колони и редови. Еден ред во табелата ги создржи сите информации за еден предмет, лице и.т.н во табелата.на приерво грег табелата еден ред ќе биде сите подаотоци за едно лице. The information inside is organized into tables. Информациите во базата се организирани во табела.

Database contain connected data All of the tables in database should be connected in some way. For example here are the tables that might be in a database holding information about doughnuts. Базата содржи поврзани подаотци. Сите табели во базата треба да бидат поврзани на некој начин. На пример во базата може да има табели со податоци кои имаат информации за крофни. Името на базата треба да биде нешто на што ќе асоцира на она что се чува во ена однсоно во табелите. На пример името на базата е оброк, името на табелата желе крофни, глазура крофни и др. Тој во базата во табелите запишува каква крофна во кое време и на кое место ајде за оброк.

А coloumn is a piece of data stored by your table. A row is a single of columns that describe attributes of a single thing. Columns and rows together make up a table. Колона е дел од податоците кои се чуваат во нашата табела. Ред еден од колони ја опишува атрибут на едно нешто. Колони и редови заедно сочинуваат табела. Here an example of what an address book table containing your personal information might look like. You often see the word fieled used instead of column. They mean the same thing. Also row and record are often used interchangeably. Еве еден пример за адресар табела со вашите лични информации и таа може да изгледа. Често зборот поле се користи наместо колона. Тие значат иста работа. Исто така, ред и евиденција често се користат наизменично.

Exactly.you can identify categories for the type of data you are collection for each person. Your categories then become your columns. Each sticky note becomes a row. You can all that information from your stickies and turn it into a table. Точно може да се идентификуваат категориите за видот на податоците што се собирање за секое лице. Вашиот категории потоа да стане вашиот колони. Секоја леплива белешка станува ред. Можете да сите информации од вашиот stickies и завртите го во табелата. Да направиме сега еден тест за секоја табела да се цнесе соодветни колони. Take command Start up your sql relational database management system and open a command-line window or graphical environment that allows you to communicate with your rdbms here our terminal window after start mysql. преземе командата Стартувате вашиот SQL релациона база на податоци за управување со системот и да се отвори командната линија прозорец или графичка околина која ви овозможува да комуницирате со вашите Базе тука нашите терминален прозорец по почетокот MySQL.

Setting the table th create table statement

Let see all this in action with the doughnut data. Say you were having trouble remembering what type of doughnuts asnack in your list was just from its name you migh create table to save having remember them instead. Below is a single command to type into your console window. When you typed it you can press return to tell your sql rdbms to carry out the command

Е сега откако научивме да ги организираме табелите во базата може да започнеме и да создадеме една база на податоци во својата работна околина со табели. Ќе направиме база за крофни и нејзини видови на крофни.ѓ
Есега да видиме како се создава база:

Тоа се прави со командата CREATE DATABASE ime_na_bazata CREATE DATABASE Korisnik Потоа создаваме табела во базата односно пишуваме ново квери и тоа изгледа вака use Krofni

CREATE TABLE Vidovi_krofni ( ime_krofni VARCHAR(15), vid_krofna VARCHAR(10) );


CREATE TABLE Podatoci ( Ime NVARCHAR (50) not Null, Prezime NVARCHAR (50) not Null . . Godini int (50) not Null );

Разлика помеѓу nulls и not nulls So I all always store everything in either varchar or date data types. Actually, you all need a few more data types for other kinds of data, like number. Soppose we added a price column to our doughnut table. We would not want to store that as a varchar. Values stored as varchar are interpreted as text, and you wonot be able to perform mathematical operations od them. But there are more data type you have not met yet. Типови на подаотоци во sql:

Cood call. Checking your work is important To see how the table you created looks you can use the desk command to view it Your table described When you entered the desc command you all see something that looks similar to this Cood повик. Проверка на вашата работа е важна Да се види како табела имаш создадено изгледа можете да го користите маса команда за да ја видите. Вашата маса е опишано Кога ќе влезе во командата опис сите вас видите нешто што изгледа слично на ова desc Vidovi_krofni out with the old table, in with the new drop table will work whether or not there is data in your table, so use the command with extreme caution. Once table is dropped its gone along with any data was in it. Drop table deletes your data in it Drop наредбата бриши подаотоците во одредена табела односно ја брши цела табела, и таа работи без разлика дали табелата има подаотоци или не така да треба да се биди претпазливи со користењето на оваа наредба. use Korisnik

DROP TABLE Podatoci To add data to your table you all use the insert statement This pretty much does what it says in the name. take a lookat the statement below to see each part works. The values in the second set of parentheses have to be in the same order as the column names. The command below isnt a real command it a template of a statement to show you the format of an insert statement Командава прикажана подолу на сликава е само дефиниција за она како се внесува во табела во база.

use Korisnik

INSERT INTO Podatoci(Ime,Prezime,Adresa,EMBG,Godini,Email) values('Vlatko','Rzanikoski','Mosa Pijade',0809988,24,'vlatko@yahoo.com')

use Krofni

INSERT INTO Vidovi_krofni(ime_krofni,vid_krofna) values('Bloberry','Polneti')

Columns without values Lets insert a record into the my_contacts database from this incomplete sticky note. Because the sticky is missing some data. Greg will have to enter an incomplete record. But that okay he all be able to add in the missing information later. Колумни без вредности Ај вметнете рекорд во my_contacts базата на податоци од овој нецелосни леплива белешка. Бидејќи леплива е недостасуваат некои податоци. Грег ќе мора да влезе нецелосна евиденција. Но, тоа во ред, тој сите бидат во можност да го додадете во недостасуваат информации подоцна. Peek at your table with select statement

So you want tio see what your table looks like. Well desc wont cut it anymore, because it only shows the structure of the table and not the information inside of it. Instead, you should use a simple select statement so you can see what data is in your table.

Значи сакате да се види она што вашата табела изгледа. И опис сакајте ја исече повеќе, бидејќи тоа само ја покажува структурата на табелата, а не на информации внатре од неа. Наместо тоа, треба да го користите едноставен изберете изјава, па можете да видите какви податоци е во вашата маса. Значи доколку сакаме да видиме што има во нашата табела и како таа тоа се прави: Проекција е унарна операција со која од една релација се добиваат само наведените атрибути. Со други зборови селекцијата овозможува да се изберат само оние колони од табелите кои ги сакаме.

select* from Podatoci

select Ime,Prezime,Email from Podatoci

Селекција Од дадена релација се селектираан оние н-торки што ги исполнуваат условот.

select* from Podatoci where Ime='Vlatko'

use Korisnik

select* from Podatoci

where Ime='Vlatko' or Godini=21

use Korisnik

select *

from Podatoci

where Adresa IN ('Mosa Pijade','Partizanska')

select *

from Podatoci

where Adresa NOT IN ('Mosa Pijade','Partizanska')

Keep changing your mind? Now it s ok! With the commands ypu are about to learn-delete and update-you are no longer stuck with a decision you made six months ago. When you first inserted that data about mullets coming back into style soon. With update, you can change data, and delete lets you get rid of data that tou do not need anymore. But we are not just giving you the tools; in yhis chapter, you all learn how to be selective with your new powers and avoid dumping data that you really do need.

Delete

from Podatoci

where Ime='Milica'

Delete

from Podatoci

where Ime Like 'M%'

update Podatoci set Email='milica@yahoo.com' where Email='milica@gmail.com'

update Podatoci set Ime='mila' where Prezime='Todoroska' and Ime='milica'

Секој ред на податоци мора да има единствен идентификатор, познат како примарен клуч Кај релациноте БП разликуваме неколку видови на клучеви и тоа: - Примарен клуч или кандидат клуч кој ги вклучува особините на единственост и минималност - Алтернативен клуч е секој кандидат клуч кој не е примарен - Надворешен клуч е атрибут во релацијата чии вредности мора да се софпаќаат со вредностите на примарниот клуч од некоја релација R2 Primary key rules The column in your table that will be your primary key has to be designated as such when you create the table. In a few pages we all create a table and designate a primary key, but before that let is take a closer look at what a primary key is. Primary keu is a column in your table that makes each record unique. The primary key is used to uniquely identify each record Which means that the data in the primary key column can not be repeated. Consider a table with the columns shown below. Do you think any of those would make good primary keys. A primary key can not be null If it is null, it can not be unique because other records can also be null.

The primary key must be given a value when the record is inserted When you insert a record without a primary key, you run the risk of ending up with a null primary key and duplicate rows in your table which violates first normal form.

The primary key must be compact A primary key should contain only the information it needs to to be unique and nothing extra.

The primary key values can not be changed If you could change the value of your key, you ed risk accidentally setting it to a value you already used. Remember it has to remain unique.

Примарен клуч правила Колоната во табелата што ќе биде вашиот примарен клуч мора да биде означен како таков, кога ќе се создаде табела. Во неколку страници ние сите создадете табела и да определи примарен клуч, но пред тоа да се донесе поблиски погледнеме во она примарен клуч е. Примарна keu е колона во вашата маса што го прави секој рекорд уникатна. Примарниот клуч се користи за да се идентификуваат уникатно секој рекорд Што значи дека податоците во примарниот клуч колона не може да се повтори.

А примарен клуч нема да биде празно Ако тоа е нула, тоа не може да биде уникатен, бидејќи другата евиденција може да биде, исто така, биде празно.

Примарниот клуч мора да се даде вредност кога рекорд е вметната Кога ќе внесете запис без примарен клуч, трчате на ризикот од завршувајќи со нула примарен клуч и дупликат редови во табелата која ги крши првата нормална форма.

Примарниот клуч мора да биде компактен А примарен клуч треба да содржи само потребните информации за да биде уникатен и ништо екстра.

Примарниот клуч вредности не може да се промени Ако може да се промени вредноста на вашиот копче, можете ед ризик случајно тоа поставување на вредноста што веќе се користи. Запомни дека мора да остане единствен. The best primary key may be anew primary key When it comes to creating primary key is, your bes bet may be to create a column that contains a unique number. Think of a table with people is info, but with an additional column containing a number. In the example below, let iscall it ID. If it weren not for the id column the records for John Brown would be identical. But in this they are actulay two different people. The ID column makes these records unique. This table is in first normal form.

Најдобрите примарен клуч може да биде нов примарен клуч Кога станува збор за создавање на примарен клуч е, вашата најдобра залог ќе биде да се создаде колона која содржи единствен број. Мислам на маса со луѓе е информации, но со дополнителна колона содржи голем број. Во примерот подолу, нека се нарекуваат проект. Ако тоа не беше за лични колона евиденција за Џон Браун ќе бидат идентични. Но, во овој се actulay две различни луѓе. Проект колона прави овие евиденција уникатен. Оваа табела е во првата нормална форма. Id Prezime Ime Godini 1 Brown Jonh Jonh 2 Ellsworth Kim Kim 3 Petrilo Maria Maria 4 Franken Esme Em 5 Ellsworth Kim Kim

create table Korisnici( Id_korisnik int not null, Ime nvarchar(50), primary key(Id_korisnik))

alter table dbo.Podatoci add Id_podatoci int not null Identity(1,1),primary key(Id_podatoci)

alter table dbo.Podatoci alter column Grad1 varchar(50) null