Barátok Csala Péter webfejlesztő

Slides:



Advertisements
Hasonló előadás
Tananyag: konzultáció
Advertisements

2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
ADATBÁZISOK.
Adatbázis gyakorlat 1. Szerző: Varga Zsuzsanna ELTE-IK (2004) Budapest
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
C++ programozási nyelv Gyakorlat hét
Anyagadatbank c. tárgy gyakorlat
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
1 Informatikai Szakképzési Portál Adatbázis kezelés DCL – Adatvezérlő nyelv.
Delphi programozás alapjai
SQL Structured Query Language
Vállalati adatok megnyitása a külvilág felé
Adatbázis kezelés. Hierarchikus modell Legrégebbi modell, ma már nem használatos. Az adatokat fákban tároljuk, ahol minden pont a szegmens adatokat, és.
Az MVC tervezési minta 2. előadás.
ASP.NET MVC 3 platform áttekintés
Adatbázis rendszerek II.
Készítette: Sárközi Anikó
Adatbázis-kezelés ACCESS program:
2006. október 9.Markó Tamás, PTE TTK1 Az Oracle SQL 7. Kényszerek megadása. Indexek kezelése.
SQL92 lehetőségek KL A tábla B tábla C view adatok VIEW működése utasítás: SELECT.. FROM A,B … SELECT.. FROM C Az adatok a hivatkozáskor állítódnak elő.
Entity framework Krizsán Zoltán
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
Előadó: Kárpáti Péter Üzleti folyamatvezérlés nagyvállalati környezetben (BizTalk Server 2004, Office InfoPath 2003 és Windows.
Oktassunk adatbázis-kezelést! Micskei Zoltán Microsoft Referencia Iskola.
Adatbázis kezelés Delphiben
Egyszerű webes alkalmazás fejlesztése
Kényszerek megadása. Indexek kezelése.
WEB Technológiák ISAPI ME Általános Informatikai Tsz. dr. Kovács László.
Statisztika, kutatásmódszertan I.
Többtáblás adatbázisok
Adatkezelés Ez az előadó neve beosztása vállalata.
Adatkezelés ABC: A Create Table-től a megjelenítésig Árvai Zoltán Consultant, Trainer Számalk Oktatóközpont.
Optimalizálás Ez az előadó neve beosztása vállalata.
Vezérlők használata és írása Ez az előadó neve beosztása vállalata.
Publikációs portál Analízis modell UML bázisú modellezés és analízis Csapat: UML7 (Percze Dániel, Rajnai Zoltán, Ráth István, Tóth Dániel, Vágó Dávid)
DDL – Adatdefiníciós nyelv
Adatbázis adminisztrátori ismeretek
Felhasználók és jogosultságok
SQL DDL DATA DEFINITION LANGUAGE. Táblák létrehozása CREATE TABLE táblanév ( oszlopnév1 típus(méret) /DEFAULT érték/ /NOT NULL/, oszlopnév2 típus(méret)
Készítette: Tóth Ervin
Nézzük, mit tudunk…. Mire gondoltam? Megjeleníti az adott adatbázishoz kapcsolódó összes objektumot : adatbázis ablak.
Fejlesztés PHP-NUKE portál rendszerre Horváth Zoltán Második Magyarországi PHP Konferencia március 27. Copyright PHP Konferencia,
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
APEX BMF, II. félév.
SQL-Structured Query Language. Parancs(utasítás) csoportok CREATE - táblák létrehozása ALTER – táblák módosítása DROP – táblák törlése DDL –Data Definition.
SQL.
1 Verseny 2000 gyakorlat ASP. 2 Gyakorlat Web létrehozása: Frontpage 2000 New Web:
1 Sramó András Adatbázis-technológia V. előadás Adatbázis-technológia 5. előadás Az SQL.
Tarcsi Ádám, Adatbázis gyakorlat – Adattáblák – Tarcsi Ádám, január.
Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai
Szerver és kliens gép közötti kommunikáció Adattárolási modellek  OLTP: OnLine Transaction Processing az MSSQL Szervert egy időben egyszerre sok felhasználó.
5. gyakorlat Fleiner Rita.
Webprogramozó tanfolyam
User Account Management Endrődi Tamás (MCT, MCP, MCITP) GDF Informatikai Intézet vezetője SZÁMALK Oktatóközpont.
1 Verseny 2000 gyakorlat SQL 2000 Server Portál adatbázis létrehozása.
Spanyolország gyöngyszeme: GRANADA Egy hobby portál kivitelezése.
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
Java web programozás 6..
Galéria Turóczy Attila (MCT, MCP, MCTS) Livesoft Kft.
Gráfadatbázisok Rácz Gábor.
Adatbázis-kezelés 1-2. adatbázis-kezelő rendszer 1.új adatbázisokat hozhassanak (adat definició 2.lekérdezések és módosítások (adat manipuláció) 3.Támogassa.
Programozás III JPA.
Táblák létrehozása és feltöltése adatokkal Rendezés Szűrés.
Adatbáziskezelés.
Adatkötés Sablonokkal
Logisztikai projekt - gyakorlat Adatbázis-elmélet
Előadás másolata:

Barátok Csala Péter webfejlesztő

Tartalom (Problem – Design – Solution) Hogyan kezdjünk hozzá? Adatbázis megtervezése – Hogyan érdemes implementálni a barátság modellt? – Mire ügyeljünk tervezéskor? Adatok lekérése az adatbázisból Adatok megjelenítése Adatbázis optimalizáció

Hogyan kezdjünk hozzá? Határozzunk meg mivel és mit szeretnénk csinálni – Ezt hívjuk modell alkotásnak – Milyen objektumokkal fogunk dolgozni Felhasználók – Milyen műveletek lesznek az objektumokhoz Barátság kérvényezés, elfogadás, felbontás Megj.: Alkalmazáshoz készítjük az adatbázist és nem fordítva!

Hogyan tároljuk el az információkat? A Felhasználó tábla kiegészítése – Barát1, Barát2, … Barát50, stb. Ne korlátozzuk a barátok számát! – Barátság és Felhasználó külön szedése – 2-sok kapcsolat Egy felhasználóhoz sok barátság rekord tartozhat Egy barátsághoz két ember kell Felhasználónként 1-1 barátság rekord? – Nem, elég egy fél rekord is! WTF?

Egy kis matek Tekintsünk a barátságra, mint egy relációra – Friends(a,b) Mit tudunk róla? – Tranzitív? Friends(a,b) + Friends(b,c) !=> Friends(a,c) Láncolás kilőve… – Kommutatív? Friends(a,b) = Friends(b,a) Két felhasználóhoz elég egy barátság rekord!

Barátságról információk Kik barátok √ – A 2 résztvevőre egy-egy mutató Barátság állapota – Barátságokon értelmezett műveletekhez kérvényezés, elfogadás, felbontás – Lehetséges állapotok Kérvény elküldve, de még nincs elfogadva (Waiting) Kérvény elküldve és elfogadva (Accepted) Barátság felbontása (Broken)

Az Adatbázisunk CREATE TABLE [dbo].[Relationships] ( Id int IDENTITY(1,1) NOT NULL PRIMARY KEY, ApplicantID int NOT NULL, PersonID int NOT NULL, Accepted smallint NULL, )

Mire ügyeljünk tervezéskor? Beszédes nevek választása – Angol esetén: figyeljünk az egyes és többes számra Megfelelő adattípusok használata – Mindig a legszűkebb olyan halmazt válasszuk, amibe még belefér a tárolandó adat (pl.: smallint) Minimalizáljuk a duplikált adatokat Gondoljunk a jövőre is! Okosan válasszuk meg a kulcsokat/indexeket

Kulcsok Két tábla összekapcsolására használjuk őket 1-sok kapcsolatnál megköveteljük az egyediséget Kulcstípusok – Természetes kulcsok (Intelligent Key) Egy vagy több mező alapján – Helyettesítő kulcsok (Surrogate Key) Rendszer által generált értékek AutoIncrement, GUID

Demó Barátság tábla létrehozása

Adatbázis elérése Linq To Sql – Adatbázis objektumokból.NET entitások – (LinqDataSource) Fölötte a DAL – Data Access Layer (Adatelérési réteg) Egyszerű statikus osztály/statikus metódusokkal Repository gyűjtemény (IRepository + SDSRepository) – Kódból is használható, illetve ObjectDataSource- szal is

Hogy néz ki egy Repository? CRUD műveletek vannak benne – Create, Retrieve ( = Select), Update, Delete Create pl.: NewObject(string name, …) Retrieve pl.: GetObjectById(int _id), GetAllObjects() – Filter, Query, Paging Update pl.: SaveObject(Something _s) Delete pl.: RemoveObject(Something _s) Egy interfészen keresztül definiáljuk – Könnyen cserélhető >> könnyen tesztelhető

Rétegek egymásra épülése

Demó DAL elkészítése

Adatmegjelenítés/Adatkötés Adatbázisbeli információk felhasználó felülethez történő kapcsolása – Pl.: Text= //one-way binding (Létezik kétirányú adatkötés is: Bind()) – Több rekord egyidejű megjelenítése esetén Visszavezetés egyszerű adatkötésre ItemTemplate (Listás ábrázolás) ColumnTemplate/FieldTemplate (Táblás reprezentáció)

ItemTemplate >> User Control Név: Életkor: ">Tovább... Ez is HTML kód. Csomagoljuk be egy „mini” oldalként = UserControl

Egyedi vezérlők UserControl/(Page fragment) (*.ascx) – Mini oldal, amely beágyazható más oldalakba – Ugyanúgy van markup és code-behind CompositeControl (*.cs >> dll) – Több vezérlő együttese – Nekünk kell megadnunk kódból a renderelt html-t CustomControl (*.cs >> dll) – Egy egyedi vezérlő – Új funkcionalitás

Egyedi vezérlők előnyei Újrahasznosíthatóság Kiterjeszthetőség Templatezhetőség Könnyű hordozhatóság

Demó Megjelenítési réteg

Barátságok kezelése automatával I. Friends.aspx?Mode={add|remove|accept}&Id ={1..} Kapcsolódó probléma: Barát kérvényezés gomb megjelenése, amikor nem kéne – Mi megoldásunk: Gomb megjelenik, ha már barát, akkor nem történik semmi Nem túl felhasználó barát meo.  – Javítás: Csak ott jelenjen meg a gomb, ahol kell is

Barátságok kezelése automatával II. – Javítás: Csak ott jelenjen meg a gomb, ahol kell is Megoldás: – ItemDataBound eseménykor kontrolláljuk a megjelenést – Lekérdezzük, hogy barátok-e, ha igen, akkor Visibilty=false – Túlságosan adatbázis igényes egyesével lekérdezgetni Megoldás javítása: – Először lekérjük az összes barátunkat – Eltároljuk egy ideiglenes tárolóban – Majd ennek segítségével hajtjuk végre a barátság vizsgálatot

Adatbázis optimalizáció Egy egyszerű példán keresztül – Hányan regisztráltak az oldalra? – Select Count(*) … >> költséges megoldás – Külön statisztika tábla (StatName, StatValue) SumRegUser:15670, FemaleUser:7817, (Male:rest) – 2 táblát kell most már így karbantartani Bonyolódik a DAL >> nem jó dolog  – Használjunk trigger-eket Insert, Update, Delete esetén módosítjuk a stat táblát is

Továbbfejlesztési lehetőségek Barát kérvényezésről értesítés Barát invitálás rendszeren kívülieknek Megismerkedési körülmények tárolása Mások barátainak megtekintése Csoport létrehozási lehetőség Nyitás a külvilág/fejlesztők felé (API) Friends.aspx?Mode=add&Id=1 cseréje Friends/add/1 (ASP.NET Routing) …

Elmélyülési javaslatok

Kérdések és válaszok 1) Mi az a Repository és mire jó? 2) Mire kell ügyelni egy adatbázis megtervezésekor? 3) Ti jöttök! 4)?