Projektowanie: architektura baz danych



Podobne dokumenty
Programowanie obiektowe

Wykład I. Wprowadzenie do baz danych

Praca przejściowa. Sklep internetowy. Tomasz Konopelski ZIP50-IWZ Katowice 2006

Pojęcie systemu baz danych

ZSE - Systemy baz danych 1 SIECIOWE SERWERY BAZ DANYCH

Przetwarzanie danych z wykorzystaniem technologii NoSQL na przykładzie serwisu Serp24

Migracja do PostgreSQL za pomocą narzędzi Enterprise DB

Przetwarzanie danych w chmurze

LANDINGI.COM. Case Study. Klient Landingi.com. Branża IT, marketing i PR. Okres realizacji od grudnia 2013 do chwili obecnej.

HP Service Anywhere Uproszczenie zarządzania usługami IT

Projektowanie i implementacja wysokowydajnych aplikacji w języku

Szkolenie wycofane z oferty. Apache Cassandra - modelowanie, wydajność, analiza danych

Instalacja SQL Server Konfiguracja SQL Server Logowanie - opcje SQL Server Management Studio. Microsoft Access Oracle Sybase DB2 MySQL

Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS. (c) 2008 Grupa SPOT SJ

Open Source na Uniwersytecie Łódzkim

Identity Management w Red Hat Enterprise Portal Platform. Bolesław Dawidowicz

AUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7

Rozwiązania bazodanowe EnterpriseDB

Prestige MJM Case Study

Case Study: Migracja 100 serwerów Warsaw Data Center z platformy wirtualizacji OpenSource na platformę Microsoft Hyper-V

Hosting aplikacji on-line

Hurtownie danych wykład 5

Technologia informacyjna

JBoss: MetaMatrix, Mobicents, Seam, Rools, ESB

Baza danych. Modele danych

egroupware czy phpgroupware jest też mniej stabilny.

PureSystems zautomatyzowane środowisko aplikacyjne. Emilia Smółko Software IT Architect

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Ełk, dn r. DOMSET Marcin Brochacki. ul. Wojska Polskiego 43 lok. 3, Ełk. Nip ZAPYTANIE OFERTOWE

Mateusz Kurleto NEOTERIC. Analiza projektu B2B Kielce, 18 października 2012

CloudFerro. Chmury publiczne, chmury prywatne, serwery dedykowane zalety, wady, problemy, ograniczenia, wyzwania.

REKOMENDACJE DOTYCZĄCE PLATFORMY ZARZĄDZANIA KOMPETENCJAMI

Bazy danych - ciągłość działania, spójność danych i disaster recovery. Daniel Polek-Pawlak Jarosław Zdebik

Budowanie interfejsów do baz danych

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Analityka danych w środowisku Hadoop. Piotr Czarnas, 5 czerwca 2017

Przepełnienie bufora. SQL Injection Załączenie zewnętrznego kodu XSS. Nabycie uprawnień innego użytkownika/klienta/administratora

Elektroniczna Ewidencja Materiałów Wybuchowych

Piotr Bubacz Cloud Computing

Klient SmartMedia Sp. z o.o., Dziennikus Sp. z o.o. Branża. IT, software. Okres realizacji. Lipiec nadal. Rodzaj usługi:

Case Study: Migracja 100 serwerów Warsaw Data Center z platformy wirtualizacji OpenSource na platformę Microsoft Hyper-V

ActiveXperts SMS Messaging Server

Jarosław Żeliński analityk biznesowy, projektant systemów

Firebird Alternatywa dla popularnych darmowych systemów bazodanowych MySQL i Postgres

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Miejsce realizacji usługi. szkolenia (informacje zalecane zgodnie z kartą usługi) bez ułamków) uczestnika usługi ul. W. Syrokomli 11/8.

EJB 3.0 (Enterprise JavaBeans 3.0)

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

PROGRAMY SPECJALNOŚCI: Informatyka w Biznesie Bazy danych

Programowanie MorphX Ax

MongoDB. wprowadzenie. dr inż. Paweł Boiński, Politechnika Poznańska

Rozwiązanie Compuware Data Center - Real User Monitoring

Konsolidacja wysokowydajnych systemów IT. Macierze IBM DS8870 Serwery IBM Power Przykładowe wdrożenia

ZAPYTANIE OFERTOWE. Firma DOMSET Marcin Brochacki zwraca się z prośbą o przesłanie oferty cenowej na

Cleeng Case Study. Klient Cleeng. Branża. Okres realizacji. Zakres usługi: Consulting. Projekt i wdrożenie Chmury AWS. Zarządzanie chmurą

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Extranet narzędzie zapewniające kontrolę i usprawniające współpracę z oddziałami spółki oraz partnerami zewnętrznymi.

Bazy danych i ich aplikacje

Dokument Detaliczny Projektu

Spis treści. Przedmowa

Projekt: MS i CISCO dla Śląska

Relacyjne, a obiektowe bazy danych. Bazy rozproszone

Łatwe w obsłudze narzędzie ochrony danych w środowiskach wirtualnych STORWARE.EU

Podstawowe informacje o bazach danych. Technologie Informacyjne

Licencjonowanie pytania i odpowiedzi

Hurtownie danych - przegląd technologii Robert Wrembel Politechnika Poznańska Instytut Informatyki Robert.Wrembel@cs.put.poznan.pl

ORGANIZACJA ZAJĘĆ BAZY DANYCH PLAN WYKŁADU SCHEMAT SYSTEMU INFORMATYCZNEGO

Hurtownie danych - przegląd technologii

Zenoss. Monitorowanie nowoczesnej serwerowni

BAZY DANYCH. Co to jest baza danych. Przykłady baz danych. Z czego składa się baza danych. Rodzaje baz danych

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

Szczegółowy opis przedmiotu zamówienia

e-off f i f ce: :Sekr k e r tari r at t w chm h urz r e Marcin Pytel

Dzięki chmurze konsultanci IT oszczędzają do 90% kosztów relacyjnych baz danych

Absolwenci kierunków informatycznych

Bazy danych 2. Wykład 1

PRZEWODNIK PO PRZEDMIOCIE

Harmonogram szkoleń: Marzec 2011r./Kwiecień 2011r.

W książce omówiono: SAP zostań ekspertem w 24 godziny!

Programowanie Komponentowe WebAPI

SunBajt Sp. z o.o. ul. Przejazdowa Pruszków KRS NIP REGON

TOPWEB Microsoft Excel 2013 i PowerBI Przygotowanie danych, analiza i efektowna prezentacja wyników raportów

III Edycja ITPro 16 maja 2011

Data zakończenia usługi (RRRR-MM-DD) Data rozpoczęcia usługi (RRRR-MM-DD)

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

Metody replikacji baz danych Oracle pomiędzy ośrodkami przetwarzania danych

Szkolenie autoryzowane. MS 6232 Wdrażanie bazy danych Microsoft SQL Server 2008 R2

Analityka danych w środowisku Hadoop. Piotr Czarnas, 27 czerwca 2017

Przetwarzanie i zabezpieczenie danych w zewnętrznym DATA CENTER

Licencjonowanie SQL Server. Licencje SAL

Środowisko NetBeans. Paweł Boguszewski

Hurtownie danych. 31 stycznia 2017

Elastyczne centrum przetwarzania danych

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Administracja bazami danych. dr inż. Grzegorz Michalski

Transkrypt:

2012 Projektowanie: architektura baz danych Paweł Sieniawski, Columb Technologies S.A. Wyzwania w projektowaniu i programowaniu e-usługi Poznań, 11 października 2012

Dobra architektura czyli jaka?

Taxxo nasze doświadczenie Codziennie integrujemy bazy danych ponad 2500 klientów głównie spółek Współdziałamy z ponad 25 różnymi systemami księgowymi W internetowej Platformie Taxxo obsługiwane są firmy o łącznym obrocie rocznym > 1,2mld zł Sieć Taxxo to ponad 50 biur rachunkowych w całej Polsce www.taxxo.pl

Architektura bazy danych, czyli: 1. Silnik bazy danych 2. Hosting - infrastruktura 3. Model danych - sposób organizacji danych w bazie 4. Procedury dotyczące rozwoju i wdrażania

JAK WYBRAĆ SILNIK BAZY DANYCH?

Dane serce e-usługi ebay - 26 mld zapytań SQL / dzień do 2 petabyte ów danych [2008 rok]!

Wymagania charakter usługi / danych Czy zgubienie jednego rekordu to problem? GOOGLE vs NBP Czy wszyscy natychmiast muszą widzieć modyfikację? FACEBOOK vs PKP Czu użytkownik poczeka 1 minutę? RYANAIR vs WIKIPEDIA

Wymagania inwestor czyli $$$ Wymagania cenowe odnośnie rozwiązania OPEN SOURCE vs BAZA Z PEŁNYM WSPARCIEM Preferencje np. Microsoft Partner, członek Open Software Foundation Wizja bezpieczeństwa inwestycji stabilny duży producent, powszechnie używana technologia, kod źródłowy a MySQL przejęty przez Oracle?

Wymagania dostępna wiedza & zasoby

Wymagania wykonawca Język programowania / środowisko programistyczne PHP,.NET, JAVA/J2EE,. Posiadane kompetencje ludzie z doświadczeniem PL/SQL, T-SQL, CQL, Hibernate, Posiadane licencje, narzędzia, komponenty

Wymagania - architekt Determinacja architekta rozwiązania krytyczny wpływ na końcowy wybór W tej technologii dostarczymy dobrej jakości produkt na czas vs To jest takie fajne, nowe chętnie bym w tym to zrobił

Jaki silnik wybrać? MySQL, Oracle, PostgreSQL, MS SQL Server, Amazon S3, MonoDB, Apache Cassandra, IBM DB/2, Teradata, SQL Azure, Amazon SimpleDB, BigTable, Jet Engine (MS Access), Btrieve, PervasiveSQL, InnoDB, Firebird, FoxPro, SQLite, Sybase, Netezza, Panorama, OpenOffice Base, Clarion, Informix, InterBase, SAS DB, Apache CouchDB, FlockDB, objectdb, Virtuoso Ten najlepiej spełniający kryteria

Silnik bazy danych typowe wybory: Nie róbcie swojego silnika Najczęściej w Internecie PHP + MySQL (np. Joomla, Wordpress) Dla wymagających rozbudowanej darmowej bazy danych do PHP PostgreSQL (np. Skype) Dla.NET MS SQL Server (np. Taxxo) Duże, transakcyjne bazy Oracle (np. Allegro) Duże ilości danych, do bardzo szybkiego przetwarzania BigTable, Apache Cassandra (np. Google Earth, Facebook search) Bazy w chmurze Dla.NET najczęściej wybierane SQL Azure bardzo rozbudowane, praktycznie (95%) zgodne z bazą tradycyjną Dla pozostałych środowisk Amazon Web Services (S3, SDB)

HOSTING INFRASTURKTURA BAZY DANYCH

Hosting jakie mamy opcje? Niewiele użytkowników Ogromna popularność Współdziel ony VPS Serwer dedykowany Kilka serwerów Farma serwerów Usługa hostingowa Własna serwerownia Data center Chmura

Co możemy zyskać dzięki odpowiedniej infrastrukturze? Wydajność czas obsługi użytkownika nie przekracza dopuszczalnej normy Wysoka dostępność pełne działanie usługi w przypadku awarii części podsystemu Skalowalność możliwość łatwego obsłużenia większej liczby użytkowników Spokój

Infrastruktura bazy danych podstawowa

Infrastruktura bazy danych wysoka dostępność

Infrastruktura bazy danych wydajność i skalowalność

Infrastruktura bazy danych wysoka dostępność, wydajność, skalowalność

Model danych PRZECHOWYWANIE DANYCH WIELU KLIENTÓW

Model danych przechowywanie danych wielu klientów Wariant 1. Jedna tabela dla danych wszystkich klientów BAZA: MojaBaza TABELA: FAKTURY ID_KLIENT NR_FAKT DATA KONTRAHENT --------- ------- ---------- ----------- 1 1/10/2012 01.10.2012 Firma Krzak 1 2/10/2012 07.10.2012 PKN Orlen 2 17/2012 03.10.2012 Columb Tech 3 1/10/2012 06.10.2012 PARP

Model danych przechowywanie danych wielu klientów Wariant 2. Osobna baza dla danych każdego klienta BAZA: Klient1 TABELA: FAKTURY NR_FAKT DATA KONTRAHENT 1/10/2012 01.10.2012 Firma Krzak 2/10/2012 07.10.2012 PKN Orlen BAZA: Klient2 TABELA: FAKTURY NR_FAKT DATA KONTRAHENT 17/2012 03.10.2012 Columb Tech

Model danych porównanie wariantów 1. Jedna tabela Zalety: Łatwe modelowanie relacji (akcji) pomiędzy klientami Łatwe wdrożenie / aktualizacja jedna instancja danych Łatwe zarządzanie (np. backup danych) Wady: Łatwo o błąd programisty - pomieszanie danych Wymaga implementacji filtrowania danych przy każdym dostępie Skalowanie wymaga zaawansowanych mechanizmów 2. Osobna baza Zalety: Izolowanie danych klientów (np. odporność na błąd programisty) Łatwość implementacji (użytkownik powiązany z nazwą bazy) Łatwa skalowalność poprzez rozrzucenie danych na różne serwery Wady: Kosztowne (limity baz danych / opłaty per baza) Kłopotliwe wdrożenie / aktualizacja Kłopotliwy backup

Jak to robiliśmy w Taxxo? Wymagania do modelu bazy danych Taxxo Odporność na błędy programisty niedopuszczalne aby klienci zobaczyli nawzajem swoje dane! Brak potrzeby odzwierciedlenia relacji pomiędzy klientami Łatwa i szybka implementacja rozwiązania Wysoka skalowalność zbliżona do liniowej Niski koszt użytkowania Łatwe zarządzanie i wdrażanie nowych wersji Możliwość wybrania różnych wariantów hostingu rozwiązania

Jak to robiliśmy w Taxxo? BAZA: Fizyczna1 TABELA: Klient1_FAKTURY NR_FAKT DATA KONTRAHENT 1/10/2012 01.10.2012 Firma Krzak 2/10/2012 07.10.2012 PKN Orlen BAZA: Fizyczna2 TABELA: Klient3_... TABELA: Klient2_FAKTURY NR_FAKT DATA KONTRAHENT 17/2012 03.10.2012 Columb Tech

Jak to robiliśmy w Taxxo? Wirtualizacja: Separacja fizycznych baz danych od instancji danych klienta Zalety: Izolowanie danych klientów (np. odporność na błąd programisty) Łatwość implementacji (użytkownik powiązany z nazwą bazy i prefixem) Łatwa skalowalność poprzez rozrzucenie danych klientów na różne serwery Wady Kosztowne (limity baz danych / opłaty per baza) Kłopotliwy backup Kłopotliwe wdrożenie / aktualizacja Wyeliminowaliśmy wady dzięki modelowi i narzędziom

Procedury ROZWÓJ APLIKACJI W OBSZARZE BAZY DANYCH

Procedury: Rozwój struktury bazy danych Przemyślana konwencja nazewnicza Proces modyfikacji struktury bazy Gromadzenie informacji o zmianach w strukturze Ochrona struktury bazy

Jak to robiliśmy w Taxxo?

Komunikacja z bazą wytyczne dla programistów Używaj mapowania obiektowo-relacyjnego (ORM) - automatyczne tłumaczenie świata tabel i rekordów na świat kolekcji i obiektów (np. Hibernate, Linq2SQL, Zend/Doctrine) Unikaj tworzenia poleceń SQL bezpośrednio w kodzie słabo zarządzalne, narażone na ataki SQL Injection Używaj tej samej metody dostępu w ramach całej aplikacji Jeżeli przetwarzasz dane (np. sumujesz rekordy, liczysz średnią) optymalniej wykona to silnik bazy danych niż Twój kod

Podsumowanie: POZNAJ WYMAGANIA

Podsumowanie: NIE KIERUJ SIĘ MODĄ

Podsumowanie: PRZEWIDUJ ZMIANY

Architektura to nauka i sztuka projektowania, konstruowania i wykonywania (Wikipedia / MySQL) Dziękuję za uwagę! p.sieniawski@ctsa.pl