Foreign key mapping Jakub Chalupa Naim Ashhab ČVUT FEL

Slides:



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

VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - PŘEDNÁŠKA
Proxy. Definice  zástupce nebo náhradník za dotyčný objekt  proxy i zastoupený objekt dědí od stejného interfacu  proxy kontroluje přístup k objektu.
Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
Pole, ukazatele a odkazy
„Programátor by měl být v prvé řadě líný.“. PIFovo Web API (API = Application Programming Interface)
Použití návrhových vzorů v prostředí jazyka C# .NET
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
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
A4B33DS & X33MIS Zdeněk Kouba
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áze výhody a nevýhody Ing. Emilie Šeptáková
Ing. Josef Veselý Označení šablony a vzdělávací sady viz.rozpis.
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
Jedenácté cvičení Vlákna. Java cv112 Vlákna Operační systém Mutitasking – více úloh se v operačním programu vykonává „současně“ Java Multithreading -
Seminář C cvičení Obsluha výjimek Ing. Jan Mikulka.
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.
Seminář C++ 4. cvičení Objekty Ing. Jan Mikulka. Co je objekt ► obraz třídy i instance ► třída – definovaná za pomocí klíčového slova class ► instance.
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.
OBJEKTOVÉ METODOLOGIE – JEJICH UŽITÍ A VÝKLAD Ing. Martin Molhanec, CSc.
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.
KIV/ZIS cvičení 3 Tomáš Potužák.
Association table mapping Jakub Chalupa Naim Ashhab ČVUT FEL A7B36ASS – Architektura SW systémů LS 2014.
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.
Metodologie OOHDM, jazyk Lua a tvorba webových aplikací
Databázové modelování
Databázové modelování
123.
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.
Netrvaloppa21 Vytvořte třídu Student pro reprezentaci struktury student na ZČU. Atributy třídy budou fakulta a osobniCislo. Název třídy: Student proměnné.
Databázové Aplikace Slidy ke cvičení DBI026, část 3 KSI MFF UK Verze
FEL Komunikátor. Memory Leak program konsumuje operační paměť, kterou neumožňuje uvolnit o uvolnění paměti stará Garbage Collector ▫plně v režii Java.
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.
PŘÍKAZ while úkol 1_42.
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í.
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.
Uživatelská rozhraní Cvičení 12a Martin Němec A
E-R diagram Entity – Relation diagram, diagram entit a vztahů mezi nimi Entity – objekty, které chci v databázi popisovat, mohou nabývat různých hodnot,
Úvod do databází zkrácená verze.
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,
Optimistic and pessimistic offline lock. Naivní přístup:  Uživatel A načte data  Uživatel B načte (stejná) data  Uživatel A upraví data a uloží je.
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:SOŠ Net Office, spol. s r.o. Orlová Lutyně
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ
Návrhový vzor Flyweight
Abstract Factory.
Lazy load Použity informace z knihy Patterns of Enterprise Application Architecture od M. Fowlera Jan Sládek.
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Bridge.
Databázové systémy UIN010
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
Distribuovaný systém souborů
1. Exercise Tomas Hogenauer
Unit of Work vzor z P of EAA (Fowler) 1.
Composite “Spojuj a panuj”.
Bridge.
Transkript prezentace:

Foreign key mapping Jakub Chalupa Naim Ashhab ČVUT FEL A7B36ASS – Architektura SW systémů LS 2014 1

Foreign key mapping – úvod Problém objekty jsou mezi sebou provázány referencemi objekt může udržovat kolekci referencí Příklad: skladby na albu skladba byla vydána právě na jednom albu album obsahuje více skladeb Jak na to? referenci zapíšeme jako cizí klíč do jedné z tabulek reprezentujících entitu 2

Foreign key mapping – schéma Transformace relací mezi objekty do relační databáze album vlastní kolekci skladeb v databázi otočíme směr reference – skladba náleží jednomu albu 3

Foreign key mapping – single reference – implelementace Skladba náleží albu skladba bude mít jedinou referenci na album class Album ... { private String title; public Album(Long id, String title){ super(id); this.title = title; } public String getTitle() { return this.title; public void setTitle(String title) { class Track ... { private String title; private Album album; public Track(Long id, String title, Album album) { super(id); this.title = title; this.album = album; } public String getTitle { return title; public void setTitle(String title) { public Album getAlbum() { return album; public void setAlbum(Album album) { 4

Foreign key mapping – single reference – sekvencní diagram album má právě jednoho iterpreta načtení alba 5

Foreign key mapping – kolekce referencí Situace hokejový tým se skládá z hráčů každý hráč patří právě do jednoho týmu Nevýhoda single reference u týmu chceme udržovat kolekci všech jeho hráčů single reference zde selhává 6

Foreign key mapping – kolekce referencí - implementace class Player ... { private String name; private Team team; public Player(Long id, String name, Team team) { super(id); this.name = name; this.team = team; } public Team getTeam() { return team; public void setTeam(Team team) { ... /*name getter and setter*/ ... class Team ... { private String name; private List<Player> players; public Team(Long id, String team, List<Player> players) { super(id); this.name = name; this.players = players; } public List<Player> getPlayers() { return players; public void setPlayers(List<Player> players) { public void addPlayer(Player player) { if(!players.contains(player)) { players.add(player); public void removePlayer(Player player) { players.remove(player); 7

Foreign key mapping – zmeny v referencích Problémy co se stane při smazání hráče z kolekce? co se stane při změně týmu u hráče? Řešení delete a insert smaž všechny reference a znovu vlož žádoucí back pointer diff ulož jednu entitu a porovnej jí s druhou 8

Foreign key mapping – pouzití ORM všude u relací 1 .. 1 či 1 .. * JPA (Hibernate) 9

Foreign key mapping – shrnutí Výhody efektivní převedení relace mezi objekty do relační databáze Nevýhody složitější logika při update a remove akcích Související vzory dependent mapping optimistic offline lock 10

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