Bazy Danych II – Prezentacja 2.

Slides:



Advertisements
Podobne prezentacje
Migrating Desktop Podsumowanie projektu
Advertisements

Indeksy w bazie danych Oracle
20041 Projektowanie dynamicznych witryn internetowych Paweł Górczyński ASP 3.0.
Przekształcanie dokumentów XML - XSL
Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
Architektura SAP R/3 Wybrane zagadnienia.
SQL INJECTION Wykorzystanie błędów w językach skryptowych
ADAM Active Directory w trybie aplikacyjnym
WPROWADZENIE DO BAZ DANYCH
Projektowanie Aplikacji Komputerowych
25/08/2001 Bazy danych II 1 Piotr Górczyński Wstęp do SQL.
20/09/ Języki programowania 1 Piotr Górczyński Kreator form.
18/11/ Języki programowania 1 Piotr Górczyński Łączenie z bazą danych.
Wycofywanie potwierdzonych transakcji
Platforma .Net i Vs.Net.
(Content Management System)
Bazy Danych II – Prezentacja 1.
Tomasz Smieszkoł - 15 stycznia
Rozdział 13: Architektura systemu Oracle
Eclipse jako IDE III a.
WekaSQL Język i aplikacja przetwarzania oraz eksploracji danych.
Bezpieczeństwo Procedury składowane Funkcje i Wyzwalacze
Czym jest ISA 2004 Microsoft Internet Security and Acceleration Server 2004 jest zaawansowaną zapora filtrującą ruch w warstwie aplikacji. Razem z zaporą.
Zapytania SQL: wydajność i optymalizacja
Wykład 8 Wojciech Pieprzyca
P I OTR SKOŁYSZ. POCHODZENIE I CELE CZYM JEST.NET ? CO IMPLEMENTUJE MONO ? ŚRODOWISKO PRACY [MONODEVELOP] SYTEMY OPERACYJNE CO PROGRAMOWAĆ ? JĘZYKI PRZYKŁADOWY.
Project made by Bartosz Rumiński Kl. III i rok 2007/2008.
Rozproszone bazy danych
Systemy zarządzania treścią CMS
Projekt i implementacja aplikacji do zasilania bazy danych testowymi danymi Jacek Lis Promotor: prof. dr hab. inż. Włodzimierz KASPRZAK.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Relacyjne Bazy Danych (Oracle) Prezentacja jest współfinansowana.
Bezpieczeństwo baz danych
Przykład włamania do aplikacji internetowej poprzez modyfikację zapytań SQL Skrypty ASP Serwer bazy danych MS SQL Server Piotr Kuźniacki BDi.
SZPIF – Harmonogram, Opis narzędzi, Schemat bazy danych
WebSphere Everyplace Micro Environment IBM Workplace Client Technology, Micro Edition Monika Nawrot, Tomasz Jadczyk, Tomasz Sadura KI, EAIiE, AGH.
Budowa, przeglądanie i modyfikacja
Prezętacja pokazująca możliwości i sam język MySQL
InfinitERP prezentacja systemu.
TBD - P ERFORMANCE W BAZACH M ICROSOFT SQL S ERVER, CZYLI O CO W TYM W OGÓLE CHODZI Michał Grodzicki MCTS SQL SERVER lipca 2012.
MySQL – ODBC - ACCESS.
Witold Bołt Wprowadzenie do .NET Witold Bołt
Web Serwisy w praktyce Technologie internetowe ( )
Struktura aplikacji System elektronicznej obsługi klienta
Wirtualna baza SQL zgodna z SQL Server SQL as a Service
N OWOŚCI W SQL S ERVER 2008 Z PUNKTU WIDZENIA ZESPOŁÓW PROJEKTUJĄCYCH W.NET Oskar Jarczyk.
Administracja serwerem bazy danych Oracle 11g Zarządzanie strukturą bazy danych Wykład nr 2 Michał Szkopiński.
Programy do tworzenia stron internetowych
Administracja serwerem bazy danych Oracle 11g Instancja i dostęp do bazy danych Wykład nr 1 Michał Szkopiński.
Licencjonowanie narzędzi dla programistów
SQL - Structured Query Language
Narzędzia administracyjne
Aplikacje bazodanowe ADO.NET PHP i MySQL
Komendy SQL do pracy z tabelami i bazami
Systemy zarządzania treścią Wykład 5
Aplet JavaCard, pełniący funkcję autoryzującą (obowiązkowo) oraz identyfikującą (opcjonalna) Aplet wystawia metody pozwalające zarejestrować swoją obecność,
systemy zarządzania bazami danych
Technologie programowania systemów internetowych
Podstawy języka skryptów
1 SBD, L.Banachowski Oprogramowanie strony serwera cz. 1 Powtórzenie wyk ł adu 6.
PHP. PHP obiektowy, skryptowy język programowania zaprojektowany do generowania stron internetowych w czasie rzeczywistym.
XML w bazach danych.
Optymalna konfiguracja Microsoft SQL Server 2014
Temat: Porównanie technologii php,c# oraz javascript na przykładzie webaplikacji typu społecznościowy agregator treści Autor: Wojciech Ślawski.
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Darmowe narzędzia Veeam dla administratorów infrastruktury.
Strukturalny język zapytań SQL - historia
Podstawy programowania
Technologie Informacyjne Bazy danych
Programowanie w Javie 1 Dr Robert Kowalczyk
Zapis prezentacji:

Bazy Danych II – Prezentacja 2. Mariusz Mikoszek Damian Kiełbasa Jacek Psiuk Adam Mika

Outline Przegląd narzędzi bazodanowych. Nasz wybór: Oracle Nasz wybór: NetBeans Nasz wybór: PHP+Apache Nasz wybór: CakePHP Analiza kwerend Harmonogram prac Zmiany w schemacie bazy

Przegląd SZBD – DB2 Główne cechy i atuty: Skompresowany format zapisu Silnik XML Przetwarzanie klastrowe Menadżer obciążenia Możliwości deweloperskie Obsługa SQL, XQuery, XPath, CLI-ODBC, Perl, PHP, C/C++, Java, rozbudowane wsparcie MS .NET Wersja bezpłatna: IBM DB2 v9.5 Express-C – ograniczenia: Max 2 rdzenie, 2GB pamięci, platformy: Linux, Windows, Solaris

Przegląd SZBD – MS SQL Server Główne cechy i atuty: Nieprzenośny Bardzo rozbudowana wersja Enterprise Wsparcie ze strony narzędzi MS Edycje darmowe

Przegląd SZBD – MySQL Główne cechy i atuty: Wolnodostępny Szybki Dobry dla często odwiedzanych stron WWW Procedury składowane, wyzwalacze, perspektywy, kursory Partycjonowanie tabel Harmonogram zadań Wsparcie replikacji BD Wsparcie wielojęzyczności Wsparcie wielu platform Narzędzia administracyjne, np. phpMyAdmin

Przegląd SZBD – PostgreSQL Główne cechy i atuty: Wolnodostępny Procedury składowane w wielu językach programowania Obsługa wielu typów indeksów Wyzwalacze Multiversion Concurrency Control Reguły Rozszerzona definicja typów danych Obiekty definiowane przez użytkownika Obiektowe rozszerzenia Narzędzia do współpracy z BD

HISTORIA 1979 : L. Ellison, R. Miner i E. Oetaes zakładają firmę SDL (Software Development Laboratories) • brak transakcji • basic SQL • napisany w kodzie maszynowym komputera PDP-11 1982 : firma zmienia nazwę na ORACLE CORPORATION (oracle - wyrocznia) i wprowadza pierwszą komercyjną wersję bazy danych opartą na SQL 1983 : reimplementacja w C, wprowadzenie sys. transakcyjnego

HISTORIA 1985 : wsparcie dla modelu client-server 1986 : ORACLE 5, wprowadzenie distributed queries 1988 : ORACLE 6, wsparcie dla PL/SQL, wprowadzenie locking mech. (mechanism for enforcing limits on access to a resource) oraz backup mech. 1992 : referential integrity, stored procedures and triggers 1997 : wsparcie dla object-oriented development

HISTORIA 1999 : ORACLE 8i, reimplementacja z C do Java lang., koncentracja na opracowaniu aplikacji działających w sieci Internet 2001 : computer-cluster database 2003 : ORACLE 10g ("grid-computing ready") 2008 : Oracle Database 11g for Linux and for Microsoft Windows

Oracle Corporation Rok założenia – 1977 Oddziały - w 150 krajach Roczne obroty - 14 mld $ Zatrudnienie - 56 tys. pracowników (16 tys. w USA)

Dlaczego Oracle ? Nr 1 na światowym rynku BD Nr 1 na rynku narzędzi internetowych Nr 1 na rynku narzędzi analitycznych Nr 2 na rynku aplikacji do zarządzania po SAP (Systemanalyse und Programmentwicklung) ORACLE DB przechowują ponad 63% danych korporacyjnych na świecie

Oracle w Polsce Około 300 partnerów 40% udział w rynku BD Około 5 000 firm używa oprogramowania Oracle Przykłady: • banki, m. in. Biuro Informacji Kredytowej • firmy ubezpieczeniowe • giełda papierów wartościowych • GUS, NBP, PZU • policja, m. in. Krajowy System Informacji Policji, Krajowy rejestr karny • itd.

Oracle Database Editions Enterprise Edition (EE) • hight performance and security sortware • typically for servers running 4 or more CPUs • no memory limits • utilize clustering using Oracle RAC software • table partitioning mechanism Standard Edition (SE) • base database functionality • lack of DataGuard functionality • no possibility of further development • typically for servers running from one to four CPUs • can utilize clustering

Oracle Database Editions Standard Edition One • for servers running on one or two CPUs • unable to utilize clustering • introduced with Oracle 10g Express Edition (XE) • offers Oracle 10g • free to distribute on Windows and Linux platforms • many restrictions (one CPU, max 4GB of user data, max 1GB of RAM memory for data, max 150MB of footprint memory /stacks, program structures, etc./) Oracle Personal Oracle Lite (intended to run on mobile devices)

Przykład: Oracle Express Edition Specific • Developers working on PHP, Java, .NET, XML, and Open Source applications • DBAs who need a free, starter database for training and deployment • Independent Software Vendors (ISVs) and hardware vendors who want a starter database to distribute free of charge • Educational institutions and students who need a free database for their curriculum

Przykład: Oracle XE Wersje: • OracleXE.exe (165,332,312 bytes) - Western European language storage - user interface in English only • OracleXEUniv.exe (216,933,372 bytes) (~1,5GB after instalation) - for all language deployment - user interface available in 10 languages • OracleXEClient.exe (30,943,220 bytes) - for remotely accessing Oracle Database 10g XE • Downloads for developers, e.g. .Net, Java, ... http://www.oracle.com/technology/software/products/database/xe/index.html

Struktura serwera BD Oracle Background processes System global area (SGA) Redo log files Database files Control files Parameter files

Background processes (main) DBWR - DataBase WRiter - zapisuje dane wprowadzone przez użytkowników do bazy z buforów SGA do plików dyskowych LGWR - LoG WRiter - zapisuje pliki dziennika powtórzeń PMON - Process MONitor - monitoruje procesy oraz zarządza zasobami bazy SMON - System MONitor - monitoruje system zarządzający pamięcia SGA

archiver processes (ARCn) checkpoint process (CKPT) *REQUIRED* coordinator-of-job-queues process (CJQn): dynamically spawns slave processes for job-queues database writer processes (DBWn) *REQUIRED* dispatcher processes (Dnnn): multiplex server-processes on behalf of users memory-manager process (MMAN): used for internal database tasks such as Automatic Shared Memory Management log-writer process (LGWR) *REQUIRED* log-write network-server (LNSn): transmits redo logs in Data Guard environments logical standby coordinator process (LSP0): controls Data Guard log-application media-recovery process (MRP): detached recovery-server process memory-monitor process (MMON) memory-monitor light process (MMNL): gathers and stores Automatic Workload Repository (AWR) data process-monitor process (PMON) *REQUIRED* process-spawner (PSP0): spawns Oracle processes queue-monitor processes (QMNn) recoverer process (RECO) remote file-server process (RFS) shared server processes (Snnn): serve client-requests system monitor process (SMON) *REQUIRED*

System global area (SGA): Shared Pool Library Cache Shared SQL Area PL/SQL Area SQL Area Data Dictionary Cache Database Buffer Cache Redo Log Buffer Cache Large Pool Java Pool Program Global Area (PGA): Software Code Area Stack Space Process information space Sort Area

Files... (main) Parameter files - parametry instancji BD, ścieżki do plików kontrolnych Control files - info na temat struktury BD (informacje o plikach danych, historie backupów, numery SCN, informacje na temat archiwalnych dzienników powtórzeń, trybu pracy BD) Redo Log files - historia operacji wykonywanych na bazie Data files - dane użytkowników + dane pomocnicze (np. indeksy)

Oracle – informacje ogólne SCHEMA - grupa użytkowników powiązana z określonym "username„ SQL (Structured Query Language) • DML (manipulation) • DDL (definition/description) • DCL (control) PL/SQL (Procedural Language/SQL) • własność Oracle Corporation • umożliwiające tworzenie konstrukcji takich jak pętle, instrukcje warunkowe oraz zmienne • używany do tworzenia wyzwalaczy, procedur i funkcji JAVA - wbudowana w BD Oracle

PL/SQL - przykład DECLARE -- blok deklaracji (opcjonalnie) BEGIN -- blok programu EXCEPTION -- obsługa wyjątków (opcjonalnie) END /* Przykładowy komentarz w wielu liniach... */ DECLARE liczba1 NUMBER(2); liczba2 NUMBER(4,2) := 17.25; text1 VARCHAR2(12) := 'Waldek'; data1 DATE := SYSDATE; -- obecna data i czas BEGIN SELECT numer_ulicy INTO liczba1 FROM address WHERE name = text1; END;

NetBeans Co to jest? Projekt otwartego oprogramowania Projekt studencki, wykupiony przez Sun Microsystems Narzędzia programowania dla Javy, C/C++, aplikacji mobilnych… IDE (Integrated Development Environment) RAD (Rapid Application Development)

NetBeans Edytor GUI Builder Integracja bazy danych Debugger Profiler Co nas interesuje najbardziej? Edytor GUI Builder Integracja bazy danych Debugger Profiler Użycie testów Fan NetBeans

NetBeans - Edytor Wsparcie wielu języków, np. Java, Ruby, C/C++, XML, HTML, RHTML, PHP, Groovy, Javadoc, JavaScript, i JSP Wcięcia, dopasowywanie słów i nawiasów, podświetlanie sytaktyczne i semantyczne Live parsing Refactoring

NetBeans – Edytor cd. Smart Code Completion Nawigacja - Go to File, Go to Type, Go to Symbol Insert Code Inspektor klas, plików, pakietów Itd…

NetBeans – GUI Builder drag & drop Automatyczne pozycjonowanie i wyrównywanie Gotowe komponenty Swing i AWT

NetBeans – Integracja BD IDE zawiera sterowniki MySQL i PostgreSQL Możliwość integracji dowolnej bazy dla której mamy sterownik JDBC Autowykrywanie istniejących baz MySQL Narzędzia dla aplikacji webowych SQLEditor Database Explorer

NetBeans – Debugger Okno debuggera Breakpointy linii, metody, klasy, wątku, wyjątku i zmiennej Ewaluacja wyrażeń „live” Multi-Session/Multi-Threaded Debugging HeapWalker

NetBeans – Profiler Task-Based (CPU, memory, monitor) Profiling Points Identyfikacja „wąskich gardeł”, wycieków pamięci HeapWalker Remote Profiling Attach Profiler

Testy - JUnit Wsparcie NetBeans dla JUnit 3.x i JUnit 4 Testy jednostkowe, metoda najmniejszą jednostką testowania przypadki testowe oddzielenie testów od kodu wiele mechanizmów uruchamiania budowanie raportów

Dlaczego Apache? (prawie) Same zalety: darmowy otwarty wieloplatformowy popularny zaawansowany

Dlaczego PHP? Podobnie jak poprzednio: darmowy otwarty wieloplatformowy popularny Ponadto: obiektowość wiele różnych frameworków (np. CakePHP)

Dlaczego CakePHP? Ostatnio trudno się obejść bez frameworku. ;) Zalety CakePHP: (oczywiście) darmowy łatwy w konfiguracji oparty o MVC zajmuje się zabezpieczeniami ogólnie ułatwia tworzenie i utrzymywanie projektu

Analiza kwerend Zapytania częste, będące potencjalnym źródłem obciążenia bazy danych oraz powodujące dodatkowe trudności implementacyjne: 1. Przegląd towarów w sklepie internetowym przez klienta – możliwość wielu użytkowników generujących liczne zapytania bazy danych zwracające znaczną ilość rekordów. 2. Śledzenie stanu realizacji zamówienia przez klienta. 3. Składanie zamówienia przez klienta internetowego – konieczność stosowania transakcji i obsługa sekcji krytycznych (dwóch klientów zamawiających w tym samym czasie). 4. Przeglądanie historii zamówień – możliwa bardzo duża ilość wyników zapytania. 5. Statystyki – zapytania rozległe, dotyczące wielu tabel i przetwarzające wiele rekordów.

Harmonogram prac Czynność Zespół Termin Legenda: Nawiązanie do projektu (prezentacja) wspólnie 13.03.2009 Propozycja realizacji projektu 20.03.2009 Redagowanie dokumentacji cały czas Opanowanie narzędzi Implementacja bazy danych 3.04.2009 Implementacja funkcji: obsługa zamówień, zarządzanie bazą danych kontrahentów, obsługa magazynu, obsługa statystyk zespół 1. 17.04.2009 obsługa produktów, obsługa księgowości, zarządzanie użytkownikami zespół 2. Interfejs graficzny 08.05.2009 Serwis WWW Testowanie 15.05.2009 Oddanie projektu jak najszybciej :) Legenda: zespół 1.: Adam Mika, Damian Kiełbasa zespół 2.: Jacek Psiuk, Mariusz Mikoszek

Stara wersja modelu bazy danych

Zmiany w schemacie bazy usunięcie tabel dot. usług: Usługi, SprzedażeUsługi, ZamówieniaUsługi rozbicie tabeli Kontrahenci na trzy tabele: Kontrahenci (pola wspólne dla Klientów i Dostawców), Klienci, Dostawcy dodanie do tabeli Klienci pól potrzebnych, do ich zalogowania w systemie scalenie dwóch odrębnych części bazy w jedną poprzez relację pracowników z zamówieniami (system musi pamiętać, kto rejestruje sprzedaż, zamówienie, etc.) usunięcie tabeli Zażalenia dodanie informacji autoryzacyjnych (dla serwera WWW) do tabeli Klienci powiązanie bazy Zamówienia z bazą Pracownicy (musimy wiedzieć, kto przyjmował zamówienie) powiązanie bazy RejestrSprzedaży z bazą Pracownicy (informacja, kto realizował sprzedaż)

Nowa wersja

Koniec prezentacji nr 2. Ciąg dalszy nastąpi. Dziękujemy!