Sumber: Fundamentals of Database Systems, Third Edition ch.26, Elmasri Teknologi Database ADVANCED DATABASE Sumber: Fundamentals of Database Systems, Third Edition ch.26, Elmasri 1
Distributed vs Centralized (DBMS) Distributed Database : Search Engine (Google, yahoo, altavista) Distributed System : Bangking - e-commerce
Distributed Database - Ditempatkan Banyak Lokasi yang sama Replikasi (Replication) - Ditempatkan Parsial Segmentasi (Fragmentation) - Gabungan Replikasi + Segmentasi
Penghubung Komunikasi Database dg Network) - Extranet (Database Satu Perusahaan) - Intranet (Database Lebih dari Satu Perusahaan) - Internet (Database Umum)
Database Technology DBMS - Database - Table - Records - Fields - Char – Byte DBMS adalah Tools atau Utilities Database adalah Contents atau values data Applicatios Program adalah Program yang digunakan untuk Meng-interface DBMS-Database
Distributed vs Paralel System Distributed : Database digunakan bersama Paralel : Malaksanakan perkerjaan secara serentak dan bersamaan Ilustrasi a + b + c + d + e + f + g + h Jika satu processor 7 x Penjumlahan a + b + c + d + e + f + g + h p1 p2 p3 p4 Jika satu processor 1 x Penjumlahan
Konsep Basis Data Terdistribusi Sistem Komputasi Terdistribusi adalah sejumlah elemen proses yang terkoneksi melalui jaringan komputer dan saling bekerjasama dalam melakukan suatu tugas Basis Data Teridistribusi adalah kumpulan basis-basis data yang saling berhubungan secara logika dan tersebar pada sebuah jaringan komputer Sistem Manajemen Basis Data adalah sebuah sistem software yang mengelola basis data terdistribusi
Keuntungan Basis Data Terdistribusi Manajemen data terdistribusi dengan tingkat transparansi yang berbeda Keandalan dan ketersediaan Peningkatan performa Ekspansi yang lebih mudah
Fungsi Tambahan Basis Data Terdistribusi Keeping track of data Proses query yang terdistribusi Manajemen transaksi yang terdistribusi Manajemen replikasi data Pemulihan basis data terdistribusi Keamanan Manajemen direktori (katalog) terdistribusi
Perbedaan DDBMS dengan Sistem Sentral: Hardware Ada banyak komputer yang disebut sites atau nodes Site-site ini terhubung oleh jaringan komunikasi untuk mengirim data dan perintah-perintah di antara site-site tersebut
Teknik Memecah Basis Data Memecah basis data menjadi unit-unit logika yang disebut fragmen-fragmen yang bisa diassign untuk disimpan di berbagai site Penggunaan replikasi data yang memungkinkan data tertentu untuk disimpan di lebih dari satu site Proses alokasi fragmen –atau replika fragmen- untuk penyimpanan di berbagai site
Teknik Memecah Basis Data (2) Teknik-teknik di atas digunakan dalam proses perancangan basis data terdistribusi Informasi yang berhubungan dengan fragmentasi, alokasi dan replikasi data disimpan dalam sebuah global directory yang diakses oleh aplikasi DDBS
Fragmentasi Data Fragmentasi Horizontal Fragmentasi Vertical Membagi sebuah relasi secara horisontal dengan mengelompokkan baris-baris untuk membuat subset dari tuples Fragmentasi Vertical Membagi sebuah relasi secara vertikal berdasarkan kolom Fragmentasi Hibrid
Hubungan Antara NIN dan Nomor Identitas Lainnya Askes Paspor NPWP Astek SIM KTP KK Akta Lahir Sertifikat PLN Dan Lain-lain Referensi dengan NIN Ekstraksi data yang diperlukan Verifikasi data NIN Nomor Identitas Nasional NIN Nama Tempat Lahir Tgl Lahir Jenis Kelamin Biometri Ekstrasi Data Replikasi Data Validasi dan verifikasi dengan Biometri Penyimpanan data E-GOV Nomor Induk Kependudukan Nama Tempat Lahir Tgl Lahir Status Kawin Jenis Kelamin Biometri Alamat Pekerjaan Pendaftaran Pendataan Populasi Database
Membangun Bank Data Bank Data Pemko Implementasi e-Government berbasis IT diarahkan untuk membangun Bank Data (Data Warehouse) yang didukung oleh Sistem Informasi Eksekutif dan Informasi Pendukung Pengambil Kebijakan secera cepat dan tepat melalui pengintegrasian data/informasi Bank Data Pemko Sekretariat Kota Dinas Kantor Arsip & Perpusta- kaan Bag. Hukum dan Ortal Dinas Industri & Perdagangan Dinas Pemuda & Olah Raga Bag. Pembangunan Dinas Kependudukan Dinas Kebersihan & Taman Bag. Protokol Dinas Inkom & Humas Dinas Pasar Bag. Kuangan Badan Pengawas Dinas Perhubungan Dinas KimPrasWil Bappeda Payakumbuh Dinas Pertanahan Dinas Pendidikan Kantor Satpol & Pamong Praja Dinas Kesejahteraan Sosial Dinas PemMasyKop & UKM Badan Penanaman Modal Ass. Adm. Pem. & pembangunan Dinas KelPerikanan&Pertanian Ass. Adm dan Umum Badan KesBang & Pel. Masy. Dinas Pendapatan Bag. Tata Pemerintahan Dinas Tenaga Kerja
Membangun Aplikasi Operasional Instansi Otonomi Daerah Aplikasi Ketataprajaan Asisten Ketataprajaan OrTal Pemerintahan Per- ekonomian Aplikasi Ekonomi & Pembangunan Asisten Ekonomi & Pembangunan Pem- bangunan Bina Sosial Aplikasi Pembinaan Hukum & Sosial Asisten Pembinaan Hukum Pemberd. Perempuan Perleng- kapan Aplikasi Administrasi Asisten Administrasi Adm & Umum Keuangan SIM Sekretariat Kota Aplikasi Pelaporan Ke Pemprop. & Pusat KOORDINASI KE BAWAH
Aplikasi Operasional e-Gov Aplikasi Sekretariat Subbag Kepegawaian Subbag Keuangan Subbag Umum Subbag Organisasi & Hukum Aplikasi Perencanaan Ekonomi & Keuangan Subbid Pertanian Subbid Keuangan, PDU, & Parawisata Subbid Perdagangan Koperasi & Jasa Subbid Industri, Sumber Daya Alam & Kelautan SDM & Sosial Budaya Subbid Kependudukan, TK & PP Subbid Pemerintahan, Hukum & Komunikasi Subbid Pendidikan,Mental Spritual & udaya Subbid Kesehatan & Kesejah.Masyarakat Aplikasi Sarana & Prasarana Subbid Perhubungan Subbid Tata Ruang & Lingkungan Hidup Subbid Pengairan & Sumber daya Air Subbid Pengembangan Wilayah Pembangunan Aplikasi RenBang & BangTek Subbid Kerjasama Luar Negeri Subbid Kerjasama Antar Daerah & Lembaga Masyarakat Subbid Teknologi & Informasi e-Gov
Replikasi dan Alokasi Data Berguna untuk meningkatkan ketersediaan data Kasus paling ekstrim: replikasi keseluruhan basis data pada setiap site dalam sistem terdistribusi fully replicated distributed database Keuntungan: sistem terus beroperasi selama paling tidak satu site tetap berjalan Kelemahan: operasi update menjadi lambat Kasus paling ekstrim lainnya: tidak ada replikasi
Replikasi dan Alokasi Data (2) Kasus khusus replikasi partial untuk pekerja yang mobile –seperti sales rep, financial planners dan claim adjustors- mereka membawa basis data replikasi dalam laptop atau PDA dan melakukan sinkronisasi secara periodik dengan server basis data
Replikasi dan Alokasi Data (3) Masing-masing fragmen –atau salinan dari sebuah fragmen- harus diassign ke site tertentu dalam sistem terdistribusi. Proses ini disebut distribusi data (atau alokasi data)
Arsitektur Client/Server Menggunakan LAN untuk mendukung jaringan PC Masing-masing PC memiliki penyimpan tersendiri Berbagi hardware atau software Server Printer Client Jaringan Basis Data 27
Arsitektur File Server Model pertama Client/Server Semua pemrosesan dilakukan pada sisi workstation Satu atau beberapa server terhubungkan dalam jaringan Server bertindak sebagai file server File server bertindak sebagai pengelola file dan memungkinkan klien mengakses file tersebut 28
Arsitektur File Server (Lanjutan…) Setiap klien dilengkapi DBMS tersendiri DBMS berinteraksi dengan data yang tersimpan dalam bentuk file pada server Aktivitas pada klien: Meminta data Meminta penguncian data Tanggapan dari klien Memberikan data Mengunci data dan memberikan statusnya LAN Permintaan data Permintaan penguncian data Status penguncian Klien File Server 29
Batasan File Server Beban jaringan tinggi karena tabel yang diminta akan diserahkan oleh file server ke klien melalui jaringan Setiap klien harus memasang DBMS sehingga mengurangi memori Klien harus mempunyai kemampuan proses tinggi untuk mendapatkan response time yang bagus Salinan DBMS pada setiap klien harus menjaga integritas databasse yang dipakai secara bersama-sama tanggung jawab diserahkan kepada programmer 30
Arsitektur Database Server Klien bertanggung jawab dalam mengelola antar muka pemakai (mencakup logika penyajian data, logika pemrosesan data, logika aturan bisnis) Database server bertanggung jawab pada penyimpana, pengaksesan, dan pemrosesan database 31
Arsitektur Database Server (Lanjutan…) Database serverlah yang dituntut memiliki kemampuan pemrosesan yang tinggi Beban jaringan menjadi berkurang Otentikasi pemakai, pemeriksaan integrasi, pemeliharaan data dictionary dilakukan pada database server Database server merupakan implementasi dari two-tier architecture LAN Permintaan data Klien Database Server Data yang diminta saja 32
Application Architectures Two-tier architecture: Contoh - program klien menggunakan ODBC/JDBC untuk berkomunikasi dengan database Three-tier architecture: Contoh aplikasi berbasis Web 33
Contoh Two-Tier Architecture Program Visual BASIC MyODBC Database Server MySQL 34
Contoh Three-tier Architecture 35
Three-Tier Architecture LAN Lapisan Klien Database Server Lapisan Bisnis Lapisan Database Application Server Melibatkan lapisan server yang lain selain lapisan database server 36
Beberapa Keuntungan Arsitektur Three-Tier Keluwesan teknologi Mudah untuk mengubah DBMS engine Memungkinkan pula middle tier ke platform yang berbeda Biaya jangka panjang yang rendah Perubahan-perubahan cukup dilakukan pada middle tier daripada pada aplikasi keseluruhan Keunggulan kompetitif Kekampuan untuk bereaksi thd perubahan bisnis dengan cepat, dengan cara mengubah modul kode daripada mengubah keseluruhan aplikasi 37
Middleware S/W yang memungkinkan aplikasi berhubungan dengan S/W lain tanpa memerlukan pengetahuan pemakai terhadap kode yang diperlukan agar interoperatibiltas tercapai Implementasinya bisa berupa API (Application Program Interface) 38
ODBC ODBC (open database connectivity) adalah suatu middleware berbasis Windows yang digunakan untuk berinteraksi denga berbagai database 39
Contoh Menguji ODBC Klik tombol Start (). Klik pada Control Panel. Klik pada Administrative Tools. Klik ganda pada Data Source (ODBC). 40
Contoh Menguji ODBC (Lanjutan…) Klik pada System DSN. Klik pada Add.... Pilih pada MySQL ODBC 3.5.1 41
Contoh Menguji ODBC (Lanjutan…) Klik tombol Finish. 42
Contoh Menguji ODBC (Lanjutan…) Ketikkan MySQL pada Data Source Name. Ketikkan 127.0.0.1 pada Server. Ketikkan root pada User. Ketikkan rahasia pada Password. Pilih pegawai pada Database. Klik tombol Test. 43
Pemanfaatan ODBC pada VB6 Function KoneksiMySQL(Conn As ADODB.Connection, _ Server As String, _ Database As String, _ User As String, Password As String) As Boolean 'Koneksi ke database MySQL Conn.ConnectionString = "DRIVER={MySQL ODBC 3.52 Driver};" & _ "SERVER=" & Server & ";" & _ "DATABASE=" & Database & ";" & _ "UID=" & User & "; PWD=" & _ Password On Error Resume Next Conn.Open On Error GoTo 0 KoneksiMySQL = (Err.Number = 0) End Function 44
JDBC JDBC (Java Database Connectivity) memungkinkan applet mengakses database Bisa digunakan pada JSP 45
Query-By-Example (QBE) Suatu tool yang memungkinkan pengaksesan database secara lansung menggunakan pendekatan grafis 46
Internet Internet merupakan contoh jaringan terbesar yang menghubungkan jutaan komputer yang tersebar di seluruh penjuru dunia dan tak terikat pada satu organisasipun Siapa saja dapat bergabung pada Internet Dengan menggunakan jaringan ini, sebuah organisasi dapat melakukan pertukaran informasi secara internal ataupun melakukan pertukaran informasi secara eksternal dengan organisasi-organisasi yang lain 47
Internet Jaringan tersusun atas berbagai jenis komputer dan sistem operasi 48
World Wide Web Sistem pengaksesan informasi dalam Internet yang paling terkenal dan biasa dikenal dengan istilah Web Web menggunakan protokol yang disebut HTTP (HyperText Transfer Protocol) Dokumen Web ditulis dalam format HTML (HyperText Markup Language) Dokumen ini diletakkan dalam Web server dan diakses oleh klien (Pengakses informasi) melalui perangkat lunak yang disebut Web browser atau sering disebut browser saja 49
e-Business Penggunaan teknologi Internet untuk menghubungkan dan memperkuat proses-proses bisnis, perdagangan elektronis (electronic commerce atau e-commerce), dan komunikasi serta kolaborasi antar sebuah perusahaan dengan para pelanggan, pemasok, dan mitra kerja bisnis elektronis lainnya (O’Brien) 50
Cakupan e-Business 51
Aplikasi Komunikasi dan Kolaborasi Perusahaan Digunakan untuk mendukung komunikasi, koordinasi, dan kolaborasi para anggota tim bisnis dalam perusahaan Contoh, para pegawai dan konsultan yang terlibat dalam sebuah proyek bisa menggunakan jaringan Internet, Intranet, atau bahkan Extranet untuk saling berkomunikasi Komponen pendukung: e-mail, v-mail, forum diskusi, sistem chat, konferensi suara dan video, sistem pertemuan elektronis 52
Aplikasi Bisnis Internal Digunakan untuk mendukung kegiatan, proses, dan operasi bisnis yang bersifat internal bagi perusahaan Contoh: Pemrosesan transaksi internal Enterprise information portal Sistem pendukung manajemen 53
E-Commerce Aplikasi perdagangan elektronis digunakan untuk mendukung kegiatan pembelian dan penjualan, pemasaran produk, jasa, dan informasi melalui Internet Contoh penerapan: Electronic Funds Transfer (EFT) Lelang online 54
E-Commerce E-commerce dibagi menjadi dua jenis: B2B dan B2C 55
B2B (Business-to-Business) Menyatakan penjualan produk atau jasa yang melibatkan antarperusahaan dan dilakukan dengan sistem otomasi Umumnya perusahaan yang terlibat adalah pemasok, distributor, pabrik, tokok, dan lain-lain Kebanyakan transaksi berlangsung secara langsung antara dua sistem 56
B2B (Business-to-Business) (Lanjutan) Keuntungan B2B, jika dikerjakan dengan benar, dapat menghemat biaya, meningkatkan pendapatan, memberikan pengiriman yang lebih cepat, mengurangi biaya administrasi, dan meningkatkan layanan kepada pelanggan (Karper dan Ellis) 57
B2C (Business-to-Consumer) Melibatkan interaksi dan transaksi antara sebuah perusahaan dengan para pelanggan Keunggulan B2C dibandingkan dengan penjualan konvensional melalui toko fisik adalah memungkinkan layanan selama 24 jam 58
Aplikasi Web Aplikasi Web dapat dibagi menjadi 2 macam: Web Statis dan Web Dinamis 59
Web Statis Web statis dibentuk dengan menggunakan HTML saja Kekurangan Web statis terletak pada keharusan untuk memelihara halaman Web secara terus-menerus setiap ada perubahan informasi 60
Web Dinamis Isi halaman bersifat dinamis, dapat mengikuti perubahan isi database Pengertian Web dinamis terkadang diartikan sebagai halaman Web yang dilengkapi dengan gambar-gambar bergerak Web dinamis dapat digunakan untuk membentuk aplikasi interaktif, yang memungkinkan pemakai tak hanya memperoleh informasi terkini tetapi juga dapat melakukan perubahan data. Misalnya: Untuk pengisian KRS Perubahan data pribadi Pengisian berita baru dll Web dinamis dibentuk dengan menambahkan perangkat lunak tambahan, seperti ASP atau PHP 61
Prinsip Kerja Web Berbasis HTML Browser meminta sebuah halaman ke suatu situs Permintaan diterima oleh Web server (server yang bertanggung jawab melayani permintaan browser) Web server segera mengirimkan halaman HTML yang diminta ke klien) Browser pada klien segera menampilkan dokumen HTML berdasarkan kode-kode yang terdapat pada HTML 62
Prinsip Kerja Web Berbasis HTML 63
Prinsip Kerja Web Dinamis (Contoh dengan PHP) 64
Teknologi Web Teknologi untuk membentuk aplikasi Web yang dinamis : Teknologi pada sisi klien (client-side technology) Teknologi pada sisi server (server-side technology) 65
Teknologi pada Sisi Klien Kontrol Active X Java applet Client-side script (JavaScript dan VBScript) DHTML (CSS / Cascading Style Sheets) 66
Teknologi pada Sisi Server CGI FastCGI Proprietary Web Server API (ISAPI dan NSAPI) Active Server Pages (ASP) Java Server Pages (JSP) dan Java Servlets Server-side JavaScript PHP 67
DEFINISI ARSITEKTUR Arsitektur: Arsitektur Sistem Software: Struktur, artinya komponen-komponen apa yang ada dalam suatu sistem dan fungsi masing-masing komponen tersebut, serta bagaimana inter-relasi dan interaksi antar komponen dalam sistem tersebut. Arsitektur Sistem Software: Spesifikasi dari arsitektur sistem software, menyebutkan bermacam-macam modul beserta interface dan inter-relasi antar data dan alur kontrol dalam suatu sistem: Programming-in-the-small: Pengembangan individual modul Programming-in-the-large: Pengintegrasian modul-modul menjadi suatu sistem yang komplit. Jadi, Distributed DBMS adalah Large Scale Software System.
Reference Architecture: Struktur “Ideal” (Standard): Segala bentuk sistem mengacu atau merupakan turunan dari Reference Architecture ini. Untuk menciptakan Reference Architecture ini diperlukan STANDARDISASI. Contoh: ISO/OSI Model yang merupakan reference architecture dari Wide Area Computer Networks
STANDARDISASI DBMS Reference Model (Arsitektur Sistem) dapat dinyatakan berdasarkan 3 pendekatan yang berbeda: Berdasarkan Komponen: Inter-relasi antar komponen yang masing-masing mempunyai fungsi yang berbeda-beda. Berdasarkan Fungsi: Penyediaan fungsi-fungsi/fasilitas-fasilitas yang dapat memenuhi kebutuhan user yang berbeda-beda. Strukturnya kebanyakan berbentuk hirarkhi, sesuai klasifikasi user, contohnya ISO/OSI model. Berdasarkan Data: Karena data merupakan sumber daya utama yang di-manage oleh DBMS, maka pendekatan ini menjadi pilihan yang tepat untuk melangkah lebih jauh ke proses standardisasi. Penyediaan beberapa tipe data dan arsitektur sistem ditekankan pada penyediaan fungsi berdasarkan klasifikasinya yang dapat menggunakan tipe-tipe data pada masing-masing klasifikasi.
ANSI/SPARC Architecture Akhir tahun 72, the Computer and Information Processing Committee (X3) of the American National Standards Institute (ANSI) membuat Study Group DBMS dibawah bantuan Standards Planning and Requirements Committee (SPARC). Misinya adalah studi tentang kelayakan/feasibility membuat suatu standard di DBMS dan aspek apa yang memungkinkan untuk distandardisasikan.
ANSI/SPARC Architecture
Arsitektur ANSI/SPARC: Arsitektur sistem yang berbasis organisasi data. Three Views of Data: External View Struktur data yang terlihat oleh user. Internal View Struktur data dalam sistem atau mesin. Berhubungan erat dengan organisasi data secara fisik. Lokasi dan mekanisme akses ke data Conceptual View : Yang menjembatani, definisi abstrak dari database. Representasi data dan relasi antar data tanpa memperhatikan kebutuhan setiap aplikasi atau keterbatasan media penyimpanan. Perlu Schema pada masing2 Dan Mapping
Conceptual Schema RELATION EMP [ KEY = {ENO} ATTRIBUTES = { ENO : CHARACTER(9) ENAME : CHARACTER(15) TITLE : CHARACTER(10) } ] RELATION PAY [ KEY = {TITLE} SAL : NUMERIC(6) RELATION PROJ [ KEY = {PNO} PNO : CHARACTER(7) PNAME : CHARACTER(20) BUDGET : NUMERIC(7) RELATION ASG [ KEY = {ENO,PNO} RESP : CHARACTER(10) DUR : NUMERIC(3)
Internal Schema: INTERNAL_REL EMPL [ INDEX ON E# CALL EMINX FIELD = { HEADER : BYTE(1) E# : BYTE(9) ENAME : BYTE(15) TIT : BYTE(10) } ]
External Schema: Contoh 1 (Create a BUDGET view from the PROJ relation): CREATE VIEW BUDGET(PNAME, BUD) AS SELECT PNAME, BUDGETFROM PROJ Contoh 2 (Create a Payroll view from relations EMP and TITLE_SALARY): CREATE VIEW PAYROLL (ENO, ENAME, SAL) AS SELECT EMP.ENO,EMP.ENAME,PAY.SAL FROM EMP, PAY WHERE EMP.TITLE = PAY.TITLE
MODEL ARSITEKTUR UNTUK DISTRIBUTED DBMS Klasifikasi Distributed DBMS (3 Dimensi Permasalahan): Distribusi: Lokasi komponen sistem di satu tempat atau tidak. Heterogenitas: Bermacam-macam level (H/W, Komunikasi, OS) Yang terpenting (Data model, Query language, Transaction Management Algorithms) Otonomi: Versi Design Autonomy: Masing-masing DBMS bebas menggunakan model data dan manajemen transaksi yang disukai. Versi Communication Autonomy: Masing-masing DBMS menentukan apa dan bagaimana cara berkomunikasi dengan DBMS lain. Versi Execution Autonomy: Masing-masing DBMS mengeksekusi operasi-operasi lokal dengan berbagai cara yang disukai.
Alternatif Implementasi DBMS:
Distributed Database Reference Architecture (Data Organizational View): LIS (Local Internal Schema): Physical Data Organization pada setiap site mungkin berbeda, untuk itu pada masing-masing site dibutuhkan individual internal schema. LCS (Local Conceptual Schema): Karena data pada Distributed Database biasanya terfragmentasi atau terduplikasi, maka organisasi data secara logispun dibutuhkan di setiap site. GCS (Global Conceptual Schema): Struktur logis data yang ada pada semua site. Mendukung Data Independensi (Ekstensi ANSI/SPARC Arc.), Transparansi Replikasi data, Transparansi Network.. Local Database Management diintegrasikan dalam Global DBMS.
Komponen-komponen Distributed DBMS (Peer-to-Peer):
Komponen-komponen Distributed DBMS (Peer-to-Peer): USER PROCESSOR: User Interface Handler: Menerjemahkan perintah user dan menampilkan data ke user. Semantic Data Controller: Chek terhadap user query, dapat diproses atau tidak? Global Query Optimizer and Decomposer: Strategi eksekusi dengan cost yang minimal, penerjemahan global query ke local query. Distributed Execution/Transaction Monitor: Koordinasi Eksekusi yang terdistribusi.Physical Data Organization pada setiap site mungkin berbeda, untuk itu pada masing-masing site dibutuhkan individual internal schema. DATA PROCESSOR: Local Query Optimizer: Bertugas sebagai Access Path Selector (indexing attribute2) Local Recovery Manager: Menjaga konsistensi database lokal ketika terjadi kegagalan. Run-time Support Processor: Interface ke OS dan terdapat database buffer (cache) manager yang memaintain main memory buffer dan akses data.
Multi DBS Architecture:
Ten Years of Writing on the Oracle PL/SQL Language 1/10/2019
These "Old" Programmers
User 2 System Global Area (SGA) of RDBMS Instance Shared Pool Library cache Reserved Pool Shared SQL Pre-parsed Select * from emp Update emp Set sal=... Large Pool calc_totals show_emps upd_salaries Session 1 memory (PGA/UGA) emp_rec emp%rowtype; tot_tab tottabtype; Session 2 memory (PGA/UGA) emp_rec emp%rowtype; tot_tab tottabtype; User 1 User 2 mysess.pkg Sess2.sql
Procedural statement executor SQL statement executor Enter the “Bulk Bind” Oracle server PL/SQL Runtime Engine SQL Engine Procedural statement executor PL/SQL block SQL statement executor FORALL aDept IN deptlist.FIRST.. deptlist.LAST DELETE emp WHERE deptno = deptlist(aDept); Much less overhead for context switching
Procedural statement executor SQL statement executor Enter the “Bulk Bind” Oracle server PL/SQL Runtime Engine SQL Engine Procedural statement executor PL/SQL block SQL statement executor FOR aDept IN deptlist.FIRST.. deptlist.LAST LOOP DELETE emp WHERE deptno = deptlist(aDept); END LOOP; Performance penalty for many “context switches”