Association table mapping Jakub Chalupa Naim Ashhab ČVUT FEL A7B36ASS – Architektura SW systémů LS 2014.

Slides:



Advertisements
Podobné prezentace
Funkce Připomeňme si program pro výpočet faktoriálu:
Advertisements

Zpracování SQL Lubomír Andrle 5. přednáška
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - PŘEDNÁŠKA
LOV, Listbox, Poplist a Combobox v Oracle Forms LOV – seznam hodnot, které se zobrazí po stisku klávesy Enter v textovém poli. LOV – seznam hodnot, které.
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Pole, ukazatele a odkazy
Databázové systémy 1 Cvičení č. 2 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy II Přednáška č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Fakulta elektrotechniky a informatiky
A4M33NMS Návrh a modelování softwarových systémů
Chain of responsibility Martin Malý prezentace na předmět Návrhové vzory (PRG024) na MFF UK
State. State – kontext a problém Kontext  chování objektu má záviset na jeho stavu, který se typicky mění za běhu Neflexibilní řešení  metody obsahují.
Databázové systémy 2 Cvičení č. 7 Ing. Tomáš Váňa Fakulta elektrotechniky a informatiky Univerzita Pardubice.
DATOVÉ MODELY (c) Tralvex Yeap. All Rights Reserved.
Softwareová architektura
PB161 – Programování v jazyce C++ Objektově Orientované Programování
Identity Field Radim Veselý ČVUT v Praze Radim Veselý ČVUT v Praze Michal Kouřík ČVUT v Praze
Databázové systémy teorie a návrh relačních databázových systémů část II.
PRÁCE S VLÁKNY A APLIKAČNÍ DOMÉNY V.NET FRAMEWORK APLIKACÍCH Architektura technologie.NET Jan Martinovič, FEI - Katedra Informatiky.
Strategy. Strategy – „All-in-1“ na začátek class AStrategy { public: virtual void Algorithm()=0; protected: AStrategy(); }; class SpecificStrategy: public.
Offline concurrency patterns Petr Smrček Ondřej Svoboda ČVUT FEL A7B36ASS – Architektura SW sytémů LS 2013.
Informatika pro ekonomy II přednáška 10
Composite [kompozit, ne kompozajt]. Composite Výslovnost  kompozit, ne kompozajt Účel  Popisuje, jak postavit hierarchii tříd složenou ze dvou druhů.
Dependency injection Předávání závislostí Petr Kalivoda
Principals, Securables, Schema Vít Ochozka. Entity databáze - zdroje Securables –Entity databáze (zdroje), ke kterým SQL reguluje přístup podle práv –Hierachie.
Memento. Obnovení operačního systému ( Windows | Linux...) Všichni víme, co jsou transekce v databázi Memento – zálohování databáze.
Jan Bartoš MPC,MCTS. OFFICE 365 ÚVOD Microsoft Office 365 Správa a automatizace prostředí Office 365 pomocí Windows PowerShell Základní přehled a vlastnosti.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy II Přednáška č. 9. Transakce je logická jednotka práce sestávající z jednoho nebo více SQL příkazů, které jsou atomické z hlediska.
Metodický list Pořadové číslo: VY_32_INOVACE_I.C.15 Název pro školu:
ADO – práce s databázemi
DATABÁZOVÉ SYSTÉMY. 2 DATABÁZOVÝ SYSTÉM SYSTÉM ŘÍZENÍ BÁZE DAT (SŘBD) PROGRAM KTERÝ ORGANIZUJE A UDRŽUJE NASHROMÁŽDĚNÉ INFORMACE DATABÁZOVÁ APLIKACE PROGRAM.
Metodologie OOHDM, jazyk Lua a tvorba webových aplikací
Databázové systémy 2 Zkouška – 12:00. Příklad I - Funkce Vytvořte funkci ZK_TRP_TREND(P_ID_TRPASLIKA IN NUMBER, P_DATUM_OD IN VARCHAR2, P_DATUM_DO.
Databázové modelování
Databázové systémy 2 Zkouška – 8:00. Příklad I – Procedura – 5 bodů Vytvořte proceduru P_ZK2(p_table_name VARCHAR2, p_min_nuls NUMBER, p_drop.
Databázové systémy Informatika pro ekonomy, př. 18.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B13 Autor Ing. Jiří Kalousek Období vytvoření březen.
Databázové Aplikace Slidy ke cvičení DBI026, část 3 KSI MFF UK Verze
Foreign key mapping Jakub Chalupa Naim Ashhab ČVUT FEL
DBXplorer Systém pro vyhledávání nad relačními databází podle klíčových slov. zpracovala Margarita Vishnyakova.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B15 Autor Ing. Jiří Kalousek Období vytvoření březen.
Databázové systémy 2 Zkouška – 8:00. Příklad I - Funkce Vytvořte funkci ZK_DIFF_MIN_MAX (P_ZAM_ID NUMBER) RETURN VARCHAR2. Funkce může vracet.
Vazby dynamických proměnných,databázové systémy Přednáška č. 10.
Vícerozměrný přístup pro indexování XML dat
Kam se ubírá jazyk C#? Dr. Ing. Dalibor Kačmář Academic Developer Evangelist Developer & Platform Evangelist Group Microsoft Czech & Slovakia Anders Hejlsberg.
Service layer. Service layer – úvod Problém  Vytvoření API aplikace  Odstínění bussiness logiky a transakčního chování od zbytku aplikace  Kam s aplikační.
Observer Martin Dráb Návrhové vzory, Co to je?  Definuje závislost 1:N mezi objekty  Závislé objekty jsou informovány o změně stavu  Konzistentní.
Strategy. Motivace Různé algoritmy pro stejnou akci Hromada kódu v mnoha podmínkách Důsledky  Komplexnost  Špatná čitelnost  Těžká správa kódu  Těžka.
Iterator Iterator – Problém struct Item { int _value; Item * _next; Item( int value, Item * next ) : _value( value ), _next( next ) { } }; void Print(
FUN WITH C# EPISODE XIII INTERFACES STRIKE BACK CLI Type System All types Reference types (allocated on managed heap) PointersValue types (allocated.
Objektově relační mapování - ORM. Obsah Co je to ORM Využití ORM Dědičnost –jednoduchý příklad –metody jak dědičnost popsat pomocí relační databáze Vztahy.
YOUR LOGO C# Entity Framework. YOUR LOGO  Entity framework nám poskytuje: -Vytváří objektový model na základě databázového schématu -Mapuje tabulky,
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Relační databázová technologie
NÁZEV ŠKOLY:SOŠ Net Office, spol. s r.o. Orlová Lutyně
Dotazovací jazyk SQL - III
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Návrhový vzor Flyweight
Lazy load Použity informace z knihy Patterns of Enterprise Application Architecture od M. Fowlera Jan Sládek.
Informatika pro ekonomy přednáška 8
Bridge.
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - PŘEDNÁŠKA
Přednáška 9 Triggery.
Distribuovaný systém souborů
1. Exercise Tomas Hogenauer
Unit of Work vzor z P of EAA (Fowler) 1.
Composite “Spojuj a panuj”.
Transkript prezentace:

Association table mapping Jakub Chalupa Naim Ashhab ČVUT FEL A7B36ASS – Architektura SW systémů LS 2014

Association table mapping – úvod Problém  objekty jsou mezi sebou provázány referencemi  každý objekt udržuje kolekci referencí na jiné objekty Příklad: zaměstnanci a jejich zkušenosti  každý zaměstnanec má více zkušeností  každá zkušenost může být připárována k více zaměstnancům Jak na to?  v relační databázi vytvoříme asociační tabulku, která nám zaznamená jednotlivé reference mezi entitami

Association table mapping – schéma Transformace relací mezi objekty do relační databáze  zaměstnanec vlastní kolekci zkušeností  zkušenost vlastní kolekci zaměstnanců, které tuto zkušenost mají  každá jednotlivá vazba bude reprezentována řádkem v asociační tabulce

Association table mapping - implementace Zaměstnanci a zkušenosti  zaměstnanec má kolekci zkušeností, zkušenost má kolekci zaměstnanců class Employee... { private List skills; public List getSkills() { return skills; } public void setSkills(List skill) { this.skills= skills; } public void addSkill(Skill skill) { if(!skills.contains(skill)) { skills.add(skill); } public void removeSkill(Skill skill) { skills.remove(skill); } class Skill... { private List employees; public List getEmployees() { return employees; } public void setEmployees(List employees) { this.employees = employees; } public void addEmployee(Employee employee) { if(!employees.contains(employee)) { employees.add(employee); } public void removeEmployee(Employee employee) { employees.remove(employee); }

Association table mapping – spojovací tabulka  kdo managuje spojovací tabulku? class EmployeeMapper... { private List loadSkills(Employee emp) { List skills = new ArrayList (); for(DataRow row : skillLinkTable.getRows("employeeId = ?", emp.id)) { skills.add(Skill.find("id", row.id)); } return skills; } private void saveSkills(Employee emp) { deleteSkills(emp); for(Skill s : emp.skills) { DataRow row = skillLinkTable.newRow(); row.employeeId = emp.id; row.skillId = s.id; skillLinkTable.addRow(row); } private void deleteSkills(Employee emp) { for(DataRow row : skillLinkTable.getRows("employeeId = ?", emp.id)) { row.delete(); }.... }

Association table mapping – zmeny v referencích Problémy  co se stane při změně jedné kolekce?  musíme zajistit update druhé kolekce  např. celým novým načtením z databáze  co se stane při odstranění jedné položky z kolekce?  co se stane při přidání položky do jedné kolekce? Odpověď  rozumná ORM řeší všechny tyto nepříjemnosti na pozadí

Association table mapping – pouzití ORM  všude u relací *.. *  JPA (Hibernate): class Employee... { private Set = CascadeType.ALL, fetch = = "employee_skills", joinColumns = = "employee_id", nullable = false, updatable = = = "skill_id", nullable = false, updatable = false)} ) public Set getSkills() { return skills; }... class Skill... { private Set = FetchType.LAZY, mappedBy = "skills") public Set getEmployees() { return employees; }...

Association table mapping – shrnutí Výhody  převedení n..n relace mezi objekty do relační databáze Nevýhody  složitá údržba spojovací tabulky a jednotlivých kolekcí  při změně jedné kolekce nutnost změny druhé kolekce Související vzory  dependent mapping

Zdroje Martin Fowler - Catalog of Patterns of Enterprise Application Architecture ( Jimmy Nilsson – Applying domain-driven design and patterns: with examples in C# and.NET