Chapter 3 & 4
Chapter 3 & 4
• Makna client-server arsitektur dan keuntungan dari jenis arsitektur untuk DBMS.
•Tujuan dari layanan Web dan teknologi standar yang digunakan untukmengembangkan
Layanan Web.
Dalam Bab 1, kami menyediakan ringkasan dari sejarah perkembangan sistem database dari tahun 1960 dan
seterusnya. Selama periode ini, meskipun pemahaman yang lebih baik dari fungsi yang pengguna diperlukan
diperoleh dan model data yang mendasari baru diusulkan dan dilaksanakan, paradigma perangkat lunak yang
digunakan untuk mengembangkan sistem perangkat lunak yang lebih umum telah mengalami perubahan yang
signifikan. Vendor sistem database harus mengakui perubahan ini dan beradaptasi dengan mereka untuk memastikan
bahwa sistem mereka saat ini dengan pemikiran terbaru. Dalam bab ini, kita meneliti arsitektur yang berbeda yang
telah digunakan dan memeriksa perkembangan yang muncul dalam layanan Web dan layanan berorientasi arsitektur
(SOA).
106 | Arsitektur database dan Web
Struktur dari bab ini Pada Bagian 3.1 kita memeriksa multi-user arsitektur DBMS berfokus pada dua-tier arsitektur
client-server dan arsitektur threetier client-server. Kami juga meneliti konsep middleware dan membahas berbagai
jenis middleware yang ada di bidang database. Dalam Bagian 3.2 kita meneliti layanan Web yang dapat digunakan
untuk menyediakan jenis baru dari layanan bisnis untuk pengguna, dan SOA yang mempromosikan desain longgar
ditambah dan jasa otonom yang dapat dikombinasikan untuk menyediakan proses bisnis komposit lebih fleksibel
dan aplikasi. Dalam Bagian 3.3 kita jelaskan secara singkat arsitektur untuk DBMS terdistribusi yang kita bahas
secara rinci dalam Bab 24 dan 25, dan membedakannya dari pemrosesan terdistribusi. Dalam Bagian 3.4 kita
jelaskan secara singkat arsitektur untuk sebuah gudang data dan alat terkait yang kita bahas secara rinci dalam Bab
31-34. Dalam Bagian 3.5 kita membahas komputasi awan dan database awan. Dalam Bagian 3.6 kita meneliti
arsitektur internal yang abstrak untuk DBMS dan dalam Bagian 3.7 kita meneliti arsitektur logis dan fisik dari
Oracle DBMS.
3.1.1 Teleprocessing
Arsitektur tradisional untuk sistem multi-user adalah teleprocessing, dimana ada satu komputer dengan satu unit
central processing (CPU) dan sejumlah terminal, seperti digambarkan pada Gambar 3.1. Semua proses dilakukan
dalam batas-batas dari komputer fisik yang sama. Terminal pengguna biasanya "bodoh" yang, tidak mampu
berfungsi pada mereka sendiri, dan kabel ke komputer pusat. Terminal mengirim pesan melalui subsistem kontrol
komunikasi dari sistem operasi untuk program aplikasi pengguna, yang pada gilirannya menggunakan jasa
DBMS. Dengan cara yang sama, pesan yang diarahkan kembali ke terminal pengguna. Sayangnya, arsitektur ini
menempatkan beban luar biasa pada komputer pusat, yang harus tidak hanya menjalankan program aplikasi dan
DBMS, tetapi juga melaksanakan sejumlah besar pekerjaan atas nama terminal (seperti data format untuk
ditampilkan di layar ). Dalam beberapa tahun terakhir, telah ada kemajuan yang signifikan dalam pengembangan
komputer pribadi kinerja tinggi dan jaringan. Sekarang ada tren diidentifikasi dalam industri menuju perampingan,
yaitu, menggantikan komputer mainframe mahal dengan jaringan lebih hemat biaya dari komputer pribadi yang
mencapai hal yang sama, atau bahkan lebih baik, hasil. Tren ini telah melahirkan dua arsitektur berikutnya: File-
server dan client-server.
Sebuah komputer terpasang ke jaringan dengan tujuan utama memberikan penyimpanan bersama file komputer
seperti dokumen, spreadsheet, gambar, dan database.
File Server
Dalam lingkungan server-file, pengolahan didistribusikan tentang jaringan, biasanya jaringan area lokal (LAN).
File-server memegang file yang dibutuhkan oleh aplikasi dan DBMS. Namun, aplikasi dan DBMS dijalankan pada
masing-masing workstation, meminta file dari file-server bila diperlukan, seperti digambarkan pada Gambar 3.2.
Dengan cara ini, file-server hanya bertindak sebagai hard disk drive bersama. DBMS pada masing-masing
workstation mengirimkan permintaan ke file-server untuk semua data yang DBMS mengharuskan disimpan pada
disk. Pendekatan ini dapat menghasilkan sejumlah besar lalu lintas jaringan, yang dapat menyebabkan masalah
kinerja. Misalnya, pertimbangkan permintaan pengguna yang membutuhkan nama-nama staf yang bekerja di cabang
di 163 Main St. Kami dapat mengungkapkan permintaan ini di SQL (lihat Bab 6) sebagai:
SELECT fname, iname
DARI Cabang b, Staf s
DIMANA b. branchNo = s.branchNo DAN b.street = '163 Main St';
Sebagai file-server tidak memiliki pengetahuan tentang SQL, DBMS harus meminta file sesuai dengan cabang dan
hubungan staf dari file-server, bukan hanya nama-nama staf yang memenuhi permintaan. Arsitektur server-file,
karena itu, memiliki tiga kelemahan utama:
(1) Ada sejumlah besar lalu lintas jaringan.
(2) Sebuah salinan lengkap dari DBMS diperlukan pada setiap workstation.
(3) Concurrency, pemulihan, dan kontrol integritas yang lebih kompleks, karena akan ada beberapa DBMSs
mengakses file yang sama.
Untuk mengatasi kerugian dari dua pendekatan pertama dan mengakomodasi lingkungan bisnis yang semakin
terdesentralisasi, arsitektur client-server dikembangkan. Client-server mengacu pada cara di mana komponen
software berinteraksi untuk membentuk suatu sistem. Seperti namanya, ada proses klien, yang membutuhkan
beberapa sumber daya, dan server, yang menyediakan sumber daya. Tidak ada persyaratan bahwa klien dan server
harus berada pada mesin yang sama. Dalam prakteknya, sangat umum untuk menempatkan server di salah satu situs
di LAN dan klien di situs lain. Gambar 3.3 menggambarkan arsitektur client-server dan Gambar 3.4 menunjukkan
beberapa kemungkinan kombinasi dari topologi client-server. Aplikasi bisnis data-intensif terdiri dari empat
komponen utama: database, logika transaksi, bisnis dan data aplikasi logika, dan user interface. Tradisional dua
tingkat arsitektur client-server menyediakan pemisahan yang sangat dasar komponen ini. Klien (lapis 1) terutama
bertanggung jawab untuk penyajian data ke pengguna, dan server (tier 2) terutama bertanggung jawab untuk
memasok layanan data ke klien, seperti yang diilustrasikan pada Gambar 3.5. Layanan presentasi menangani
antarmuka tindakan pengguna dan aplikasi bisnis dan data yang logika utama. Layanan data memberikan terbatas
logika aplikasi bisnis, biasanya validasi
bahwa klien tidak dapat melaksanakan karena kurangnya informasi, dan akses ke data yang diminta, independen dari
lokasi. Data dapat berasal dari DBMS relasional, DBMSs objek-relasional, DBMSs berorientasi objek, DBMSs
warisan, atau sistem akses data proprietary. Biasanya, klien akan berjalan pada desktop pengguna akhir dan
berinteraksi dengan database server terpusat melalui jaringan. Sebuah interaksi yang khas antara klien dan server
adalah sebagai berikut. Klien mengambil permintaan pengguna, memeriksa sintaks, dan menghasilkan permintaan
database SQL atau bahasa database lain sesuai dengan logika aplikasi. Ini kemudian mengirimkan pesan ke server,
menunggu respons, dan format respon untuk end-user. Server menerima dan memproses permintaan basis data,
kemudian mengirimkan kembali hasilnya ke klien. Pengolahan melibatkan memeriksa otorisasi, memastikan
integritas, menjaga sistem katalog, dan melakukan query dan pembaruan pengolahan. Selain itu, juga menyediakan
concurrency dan recovery control. Operasi klien dan server dirangkum dalam Tabel 3.1.
Ada banyak keuntungan untuk jenis arsitektur. Misalnya:
• Hal ini memungkinkan akses yang lebih luas ke database yang ada.
• Peningkatan kinerja: Jika klien dan server berada pada komputer yang berbeda, maka CPU yang berbeda dapat
memproses aplikasi secara paralel. Hal ini juga harus mudah untuk menyesuaikan mesin server jika tugasnya hanya
untuk melakukan pengolahan database.
• Biaya Hardware dapat dikurangi: Hanya server yang membutuhkan penyimpanan dan pengolahan daya yang
cukup untuk menyimpan dan mengelola database.
• Biaya Komunikasi dikurangi: Aplikasi melaksanakan bagian dari operasi pada klien dan mengirim hanya
permintaan untuk akses database di seluruh jaringan, sehingga data yang kurang sedang dikirim melalui jaringan.
• Peningkatan konsistensi: Server dapat menangani pemeriksaan integritas, sehingga kendala perlu didefinisikan dan
divalidasi hanya di satu tempat, daripada harus setiap program aplikasi melakukan pemeriksaan sendiri.
kebutuhan perusahaan skalabilitas menantang model client-server dua-tier tradisional. Pada pertengahan 1990-an,
aplikasi menjadi lebih kompleks dan berpotensi dapat digunakan untuk ratusan atau ribuan pengguna akhir, sisi
klien disajikan dua masalah yang mencegah skalabilitas benar:
• Seorang klien "gemuk", membutuhkan sumber daya yang cukup pada komputer klien untuk berjalan efektif. Ini
termasuk ruang disk, RAM, dan power CPU.
• Sebuah biaya overhead administrasi client-side signifikan.
Pada tahun 1995, variasi baru dari model client-server dua-tier tradisional muncul untuk memecahkan masalah
perusahaan skalabilitas.Arsitektur baru ini diusulkan tiga lapisan, masing-masing berpotensi berjalan pada platform
yang berbeda:
(1) Pengguna lapisan antarmuka, yang berjalan pada komputer pengguna akhir (klien).
(2) Logika bisnis dan lapisan pengolahan data. Tingkat menengah ini berjalan pada server dan sering disebut server
aplikasi.
(3) A DBMS, yang menyimpan data yang dibutuhkan oleh tingkat menengah. Lapis ini dapat dijalankan pada server
terpisah yang disebut database server.
Seperti diilustrasikan dalam Gambar 3.6, klien sekarang bertanggung jawab untuk hanya antarmuka pengguna
aplikasi dan mungkin melakukan beberapa pengolahan logika sederhana, seperti validasi input, sehingga
memberikan "tipis" klien. Logika bisnis inti dari aplikasi sekarang tinggal di lapisan sendiri, secara fisik terhubung
ke client dan server database melalui LAN atau wide area network (WAN). Salah satu aplikasi server dirancang
untuk melayani beberapa klien.
Desain three-tier memiliki banyak keuntungan lebih dari dua-tier atau single-tier desain tradisional, yang meliputi:
• pemeliharaan Aplikasi ini terpusat dengan transfer logika bisnis bagi banyak pengguna akhir ke server aplikasi
tunggal. Ini menghilangkan kekhawatiran distribusi software yang bermasalah dalam model client-server dua-tier
tradisional.
• modularitas menambahkan membuatnya lebih mudah untuk memodifikasi atau mengganti satu lapis
tanpa mempengaruhi tingkatan lainnya.
• Load balancing lebih mudah dengan pemisahan logika bisnis inti dari fungsi database. Keuntungan tambahan
adalah bahwa arsitektur three-tier peta secara alamiah dengan lingkungan Web, dengan browser Web yang bertindak
sebagai klien "tipis", dan server Web bertindak sebagai server aplikasi.
Tiga-tier arsitektur dapat diperluas untuk n tingkatan, dengan tingkatan tambahan menyediakan lebih banyak
fleksibilitas dan skalabilitas. Misalnya, seperti yang diilustrasikan pada Gambar 3.7, tingkat tengah arsitektur dapat
dibagi menjadi dua, dengan satu tingkat untuk Web
Tier 1 Client
Tier 2 server Web
Tier 3 Aplikasi server
Tier 4 database server yang
Gambar 3.7 Empat-tier Arsitektur dengan menengah tingkat dibagi menjadi Web server dan
aplikasi.server
3.1 Multi-user DBMS Architectures | 113
server dan tingkat lain untuk server aplikasi. Dalam lingkungan dengan volume tinggi, server Web tunggal dapat
digantikan oleh seperangkat server Web (atau Web peternakan) untuk mencapai load balancing yang efisien.
Aplikasi server
Host sebuah antarmuka pemrograman aplikasi (API) untuk mengekspos logika bisnis dan proses bisnis untuk
digunakan oleh aplikasi lain.
Aplikasi server
• Java Platform, Enterprise Edition (JEE), sebelumnya dikenal sebagai J2EE, adalah spesifikasi untuk sebuah
platform untuk pemrograman server dalam bahasa pemrograman Java. Seperti dengan spesifikasi Java Community
Process lainnya, JEE juga dianggap informal menjadi standar, sebagai penyedia harus menyetujui persyaratan
kesesuaian tertentu untuk menyatakan produk mereka untuk menjadi "JEE-compliant." Sebuah aplikasi server JEE
dapat menangani transaksi, keamanan , skalabilitas, concurrency, dan pengelolaan komponen yang dikerahkan
untuk itu, yang berarti bahwa pengembang harus dapat lebih berkonsentrasi pada logika bisnis komponen bukan
pada tugas infrastruktur dan integrasi. Beberapa terkenal JEE server aplikasi WebLogic Server dan Oracle ikan
mas Server dari Oracle Corporation, JBoss dari Red Hat, WebSphere Application Server dari IBM, dan open
source GlassFish Application Server. Kami membahas platform JEE dan teknologi yang terkait dengan mengakses
database dalam Bagian 29.7.
• .NET Framework adalah korban Microsoft untuk mendukung pengembangan tingkat menengah. Kami membahas
Microsoft .NET dalam Bagian 29.8.
• Oracle Application Server menyediakan satu set layanan untuk perakitan infrastruktur multitier scalable untuk
mendukung e-Bisnis. Kami membahas Oracle Application Server dalam Bagian 29,9.
3.1.6 Middleware
Sistem heterogen. Kebutuhan middleware muncul ketika sistem terdistribusi menjadi terlalu rumit untuk mengelola
secara efisien tanpa antarmuka umum. Kebutuhan untuk membuat sistem heterogen bekerja secara efisien di dalam
jaringan dan cukup fleksibel untuk menggabungkan modifikasi yang sering menyebabkan perkembangan dari
middleware, yang menyembunyikan kompleksitas yang mendasari sistem terdistribusi. Hurwitz (1998)
mendefinisikan enam jenis utama middleware:
• Asynchronous Remote Procedure Call (RPC): Sebuah teknologi komunikasi interprocess yang
memungkinkan klien untuk meminta layanan di ruang alamat lain (biasanya di komputer lain di dalam jaringan)
tanpa menunggu jawaban . RPC dimulai oleh klien mengirimkan pesan permintaan ke server jauh yang dikenal
dalam rangka melaksanakan prosedur yang ditentukan dengan menggunakan parameter yang disediakan. Jenis
middleware cenderung sangat scalable, sebagai sangat sedikit informasi tentang koneksi dan sesi dipelihara oleh
klien atau server. Di sisi lain, jika koneksi rusak, klien harus memulai lagi dari awal, sehingga protokol memiliki
pemulihan yang rendah. RPC asynchronous yang paling tepat ketika integritas transaksi tidak diperlukan.
• Synchronous RPC: Serupa dengan RPC asynchronous, namun, sementara server sedang memproses
panggilan, klien diblokir (itu harus menunggu sampai server telah selesai diproses sebelum melanjutkan eksekusi).
Jenis middleware adalah yang paling scalable tetapi memiliki pemulihan terbaik.
Ada sejumlah protokol analog dengan RPC, seperti:
- Jawa Remote Method Invocation (Java RMI) API menyediakan fungsionalitas mirip dengan standar metode
UNIX RPC
- XML-RPC adalah sebuah protokol RPC yang menggunakan XML untuk mengkodekan panggilan dan HTTP
sebagai mekanisme transportasi. Kami akan membahas HTTP dalam Bab 29 dan XML pada Bab 30.
-Microsoft .NET Remoting menawarkan fasilitas RPC untuk sistem terdistribusi yang diimplementasikan pada
platform Windows. Kami akan membahas NET platform dalam Bagian 29.8.
-CORBA memberikan doa prosedur remote melalui lapisan menengah disebut Kami akan membahas CORBA
dalam Bagian 28.1 "Object Request Broker.".
- Protokol Thrift dan kerangka kerja untuk jaringan sosial situs Web Facebook.
• Publish / berlangganan: Sebuah protokol pesan asynchronous mana pelanggan berlangganan pesan yang
dihasilkan oleh penerbit. Pesan dapat dikategorikan ke dalam kelas dan pelanggan mengungkapkan minat
dalam satu atau lebih kelas, dan hanya menerima pesan yang menarik, tanpa pengetahuan tentang apa (jika
ada) penerbit ada. Decoupling ini penerbit dan pelanggan memungkinkan untuk skalabilitas yang lebih besar
dan topologi jaringan yang lebih dinamis. Contoh mempublikasikan / berlangganan middleware termasuk
TIBCO Rendezvous dari TIBCO Software Inc dan Es (Internet Komunikasi Engine) dari ZeroC Inc.
• middleware Pesan berorientasi (MOM): Software yang berada di kedua klien dan server dan biasanya
mendukung panggilan asynchronous antara klien dan server aplikasi. Pesan antrian menyediakan penyimpanan
sementara ketika aplikasi tujuan sibuk atau tidak terhubung. Ada banyak produk MOM di pasar, termasuk
WebSphere MQ dari IBM, MSMQ (Microsoft Message Queuing), JMS (Java Messaging Service), yang
merupakan bagian dari JEE dan pengembangan
memungkinkan portabel, aplikasi berbasis pesan di Jawa, Sun Java sistem Message Queue (SJSMQ), yang
mengimplementasikan JMS, dan MessageQ dari Oracle Corporation.
3.1 Multi-user DBMS Architectures | 115
• Object-request broker (ORB): Mengatur komunikasi dan pertukaran data antara objek. ORB mempromosikan
interoperabilitas sistem objek terdistribusi dengan memungkinkan pengembang untuk membangun sistem dengan
mengintegrasikan bersama benda-benda, mungkin dari vendor yang berbeda, yang berkomunikasi satu sama lain
melalui ORB. The Common Object Peminta Broker Architecture (CORBA) adalah standar yang ditetapkan oleh
Management Group Object (OMG) yang memungkinkan komponen perangkat lunak yang ditulis dalam berbagai
bahasa komputer dan berjalan pada beberapa komputer untuk bekerja sama. Contoh produk ORB middleware
komersial Orbix dari Progress Software.
• akses data SQL berorientasi: Menghubungkan aplikasi dengan database di seluruh jaringan dan diterjemahkan
permintaan SQL ke dalam database SQL asli atau bahasa database lainnya. Middleware SQL berorientasi
menghilangkan kebutuhan untuk kode panggilan SQL-spesifik untuk setiap database dan kode komunikasi yang
mendasari. Lebih umum, basis data berorientasi middleware menghubungkan aplikasi untuk setiap jenis database
(tidak selalu DBMS relasional melalui SQL). Contohnya termasuk ODBC (Open Database Connectivity) API
Microsoft, yang mengekspos antarmuka tunggal untuk memfasilitasi akses ke database dan kemudian
menggunakan driver untuk mengakomodasi perbedaan antara database, dan API JDBC, yang menggunakan satu
set metode Java untuk memudahkan akses ke beberapa database. Di kategori ini kami juga akan mencakup
gateway, yang bertindak sebagai mediator dalam DBMS terdistribusi untuk menerjemahkan satu bahasa database
atau dialek bahasa ke bahasa lain atau dialek (misalnya, Oracle SQL ke DB2 SQL IBM atau Microsoft SQL Server
SQL ke Object Query bahasa, atau OQL). Kami akan membahas gateway dalam Bab 24 dan ODBC dan JDBC
dalam Bab 29.
Pada bagian berikutnya, kita meneliti satu jenis tertentu middleware untuk proses transaksi.
Sebuah program yang mengontrol transfer data antara klien dan s ervers untuk menyediakan lingkungan yang
konsisten, terutama untuk proses transaksi online (OLTP).
TP Monitor
aplikasi Complex sering dibangun di atas beberapa manajer sumber daya (seperti DBMS, sistem operasi, antarmuka
pengguna, dan software messaging). Sebuah Transaction Processing Monitor, atau TP Monitor, merupakan
komponen middleware yang menyediakan akses ke layanan dari sejumlah manajer sumber daya dan menyediakan
antarmuka yang seragam untuk programmer yang mengembangkan software transaksional. Sebuah Monitor TP
membentuk tingkat menengah dari arsitektur tiga-tier, seperti digambarkan pada Gambar 3.8. Monitor TP
memberikan keuntungan yang signifikan, termasuk:
• Transaction routing : The TP Monitor dapat meningkatkan skalabilitas dengan mengarahkan transaksi ke DBMS
tertentu.
• Mengelola transaksi terdistribusi: The TP Monitor dapat mengelola transaksi yang membutuhkan akses ke data
dalam beberapa, mungkin heterogen, DBMSs. Misalnya, transaksi mungkin perlu memperbarui data barang yang
diadakan dalam Oracle DBMS di situs 1, sebuah Informix DBMS di situs 2, dan IMS DBMS sebagai situs 3. TP
Monitor biasanya
116 | Chapter 3 Database Architectures and the Web
Gambar 3.8 Transaksi Pengolahan Monitor sebagai client-server tingkat menengah dari arsitekturtiga-tier.
Transaksi control menggunakan X / Open Distributed Transaction Processing standar (DTP). Sebuah DBMS yang
mendukung standar ini dapat berfungsi sebagai manajer sumber daya di bawah kendali Monitor TP bertindak
sebagai manajer transaksi. Kami membahas didistribusikan transaksi dan standar DTP dalam Bab 24 dan 25.
• Load balancing: The TP Monitor dapat menyeimbangkan permintaan klien di beberapa DBMS pada satu atau
lebih komputer dengan mengarahkan panggilan layanan klien ke server paling tidak dimuat. Selain itu, secara
dinamis dapat membawa DBMS tambahan yang diperlukan untuk memberikan kinerja yang diperlukan.
• Funneling : Dalam lingkungan dengan sejumlah besar pengguna, mungkin kadang-kadang sulit bagi semua
pengguna untuk login secara bersamaan ke DBMS. Dalam banyak kasus, kita akan menemukan bahwa pengguna
umumnya tidak memerlukan akses berkelanjutan ke DBMS. Daripada setiap pengguna menghubungkan ke
DBMS, TP Monitor dapat membangun koneksi dengan DBMS jika diperlukan, dan dapat menyalurkan
permintaan pengguna melalui koneksi ini. Hal ini memungkinkan sejumlah besar pengguna untuk mengakses
DBMS tersedia dengan sejumlah berpotensi jauh lebih kecil dari koneksi, yang pada gilirannya akan berarti
penggunaan sumber daya kurang.
• increased reliability : The TP monitor bertindak sebagai manajer transaksi, lakukan tindakan yang diperlukan
untuk menjaga konsistensi database, dengan DBMS bertindak sebagai manajer sumber daya. Jika DBMS gagal,
TP Monitor mungkin dapat mengirim ulang transaksi ke DBMS lain atau dapat terus transaksi sampai DBMS
menjadi tersedia lagi.
TP Monitor biasanya digunakan dalam lingkungan dengan volume yang sangat tinggi dari transaksi, dimana TP
Monitor dapat digunakan untuk offload proses dari server DBMS. Contoh menonjol dari Monitor TP termasuk
CICS (yang digunakan terutama pada mainframe IBM bawah z / OS dan z / VSE) dan Tuxedo dari Oracle
Corporation. Selain itu, API Java Transaction (JTA), salah satu Java Enterprise Edition (JEE) API,
memungkinkan didistribusikan transaksi yang akan dilakukan di beberapa X / sumber Terbuka XA di
lingkungan Jawa. Implementasi open-source dari JTA termasuk JBossTS, sebelumnya dikenal sebagai Arjuna
Layanan Transaksi, dari Red Hat dan Bitronix Transaksi Manager dari Bitronix.
3.2 Web Services and Service-Oriented Architectures | 117
Meski telah hanya sekitar 20 tahun sejak konsepsi Internet, dalam hal ini relatif singkat periode waktu yang telah
sangat berubah banyak aspek masyarakat, termasuk bisnis, pemerintah, penyiaran, belanja, rekreasi, komunikasi,
pendidikan, dan pelatihan. Meskipun Internet telah memungkinkan perusahaan untuk menyediakan berbagai layanan
kepada pengguna, kadang-kadang disebut B2C (Business to Consumer), layanan Web memungkinkan aplikasi untuk
mengintegrasikan dengan aplikasi lain di Internet dan dapat menjadi teknologi kunci yang mendukung B2B
(Business to Business ) interaksi.
Tidak seperti aplikasi berbasis web lainnya, layanan Web tidak memiliki antarmuka pengguna dan tidak
ditujukan untuk browser Web. Layanan web bukannya berbagi logika bisnis, data, dan proses melalui antarmuka
program di dalam jaringan. Dengan cara ini, itu adalah aplikasi yang antarmuka dan bukan pengguna. Pengembang
kemudian dapat menambahkan layanan Web ke halaman Web (atau program dieksekusi) untuk menawarkan fungsi
khusus untuk pengguna. Contoh layanan Web meliputi :
• Maps Bing Microsoft dan Google Maps layanan Web menyediakan akses ke layanan locationbased, seperti peta,
arah mengemudi, pencarian kedekatan, dan geocoding (yaitu, mengubah alamat ke koordinat geografis) dan
reverse geocoding.
• Amazon Simple Storage Service (Amazon S3) adalah antarmuka layanan Web sederhana yang dapat digunakan
untuk menyimpan dan mengambil sejumlah besar data, setiap saat, dari mana saja di Web. Ini memberikan setiap
akses pengembang untuk yang sangat scalable, handal, cepat, infrastruktur penyimpanan data yang murah yang
sama yang menggunakan Amazon untuk menjalankan jaringan global sendiri situs Web. Tuduhan didasarkan pada
kebijakan "pay-as-you-go", saat ini $ 0,125 per GB untuk pertama 50TB / bulan penyimpanan yang digunakan.
• GeoNames menyediakan sejumlah layanan Web terkait lokasi; misalnya, untuk kembali satu set entri Wikipedia
sebagai dokumen XML untuk nama tempat tertentu atau untuk mengembalikan zona waktu untuk diberikan
lintang / bujur.
• layanan DOTS Web dari Layanan Objects Inc, adopter awal layanan Web, menyediakan berbagai layanan seperti
informasi perusahaan, reverse lookup nomor telepon, validasi alamat email, informasi cuaca, IP address-to-
penentuan lokasi.
• Xignite adalah layanan Web B2B yang memungkinkan perusahaan untuk menggabungkan informasi keuangan ke
dalam aplikasi mereka. Layanan mencakup US informasi ekuitas, real-time quotes sekuritas, harga ekuitas AS, dan
berita keuangan.
Kunci pendekatan layanan Web adalah penggunaan teknologi diterima secara luas dan standar, seperti:
• WSDL (Web Services Description Language) Protokol, Lagi berdasarkan XML, digunakan untuk menggambarkan
Dan menemukan layanan Web.
• UDDI (Universal Discovery, Deskripsi, Dan Integrasi) Protokol Adalah platformindependent, Berbasis XML
registry Bisnis PT Diri di Internet. Penyanyi dirancang diinterogasi Oleh Pesan SOAP Dan untuk memberikan
Akses Ke Dokumen WSDL menggambarkan mengikat protokol Format Dan Pesan Yang diperlukan interact
dengan layanan Web Yang tercantum direktorinya.
Gambar 3.9 menggambarkan Hubungan Antara Teknologi tersebut. Dari Perspektif Database, Layanan Web can be
digunakan Baik Dari hearts basis data (memanggil layanan web eksternal sebagai konsumen) dan layanan web itu
mengakses basis data Sendiri (sebagai penyedia program) untuk data yang dibutuhkan memberikan layanan diminta.
Fleksibilitas diakui sebagai persyaratan utama untuk bisnis di saat IT menyediakan peluang bisnis yang tidak pernah
dibayangkan di masa lalu sementara pada saat yang sama teknologi yang mendasari yang cepat berubah. Usabilitas
sering dipandang sebagai tujuan utama dari pengembangan perangkat lunak dan mendasari paradigma berorientasi
objek: object-oriented programming (OOP) dapat dilihat sebagai koleksi benda-benda bekerja sama, sebagai lawan
dari pandangan tradisional di mana program dapat dilihat sebagai kelompok tugas untuk menghitung. Dalam OOP,
setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya. Dalam arsitektur TI
tradisional, kegiatan proses bisnis, aplikasi, dan data cenderung terkunci dalam independen, "silo," sering-
kompatibel di mana pengguna harus menavigasi jaringan yang terpisah, aplikasi, dan database untuk melakukan
rantai kegiatan yang menyelesaikan proses bisnis . Sayangnya, silo independen menyerap jumlah banyak sekali
anggaran TI dan waktu staf untuk mempertahankan. Arsitektur ini diilustrasikan pada Gambar 3.10 (a) di mana kami
memiliki tiga proses: Layanan Penjadwalan, Order Processing, dan Account Management, masing-masing
mengakses sejumlah database. Jelas ada yang umum "layanan" dalam kegiatan yang akan dilakukan oleh proses ini.
Jika kebutuhan bisnis mengubah atau peluang baru hadir sendiri, kurangnya independensi antara proses-proses ini
dapat menyebabkan kesulitan dalam beradaptasi dengan cepat proses ini. SOA Pendekatan berusaha untuk
mengatasi kesulitan ini dengan merancang longgar digabungkan dan otonom layanan yang dapat dikombinasikan
untuk menyediakan proses bisnis komposit fleksibel dan aplikasi. Gambar 3.10 (b) menggambarkan proses bisnis
yang sama rearchitected menggunakan pendekatan berorientasi layanan. Inti dari layanan, oleh karena itu, adalah
bahwa penyediaan layanan independen dari aplikasi yang menggunakan layanan ini. Penyedia layanan dapat
mengembangkan layanan khusus dan menawarkan ini untuk berbagai pengguna layanan dari organisasi yang
berbeda. Aplikasi dapat dibangun dengan menghubungkan layanan dari berbagai penyedia baik menggunakan
bahasa pemrograman standar atau layanan bahasa khusus orkestrasi seperti BPEL (Business Process Execution
Language). Apa yang membuat layanan Web yang dirancang untuk SOA berbeda dari layanan Web lain adalah
bahwa mereka biasanya mengikuti sejumlah konvensi yang berbeda. Berikut ini adalah serangkaian prinsip SOA
umum yang memberikan pendekatan desain yang unik untuk membangun layanan Web untuk SOA:
• Loose coupling:Jasa harus dirancang untuk berinteraksi secara longgar ditambah
• Reusability: Logika yang dapat berpotensi digunakan kembali dirancang sebagai layanan terpisah
• Contract: Jasa mematuhi kontrak komunikasi yang mendefinisikan pertukaran informasi dan informasi
deskripsi layanan tambahan, ditentukan oleh satu atau lebih layanan dokumen deskripsi
• Abstraction: Beyond apa yang dijelaskan dalam kontrak layanan, layanan menyembunyikan logika dari
dunia luar
120 | Chapter 3 Database Architectures and the Web
• Composability:Layanan dapat menulis layanan lainnya, sehingga logika yang dapat diwakili pada tingkat yang
berbeda dari granularity sehingga meningkatkan usabilitas dan penciptaan lapisan abstraksi;
• Autonomy:Jasa memiliki kendali atas logika mereka merangkum dan tidak tergantung pada layanan lain untuk
melaksanakan pemerintahan ini;
• Stateless: Jasa seharusnya tidak diperlukan untuk mengelola informasi negara, karena hal ini dapat mempengaruhi
kemampuan mereka untuk tetap longgar digabungkan;
• Discoverability: Layanan dirancang untuk menjadi lahiriah deskriptif sehingga mereka dapat ditemukan dan
dinilai melalui mekanisme penemuan yang tersedia.
Perhatikan bahwa SOA tidak terbatas pada layanan Web dan dapat digunakan dengan teknologi lainnya.
Pembahasan lebih lanjut tentang SOA adalah di luar cakupan buku ini dan pembaca yang tertarik disebut pembacaan
tambahan yang tercantum pada akhir buku untuk bab ini.
3.3 Distributed DBMS Seperti dibahas dalam Bab 1, motivasi utama di balik pengembangan sistem database adalah
keinginan untuk mengintegrasikan data operasional dari suatu organisasi dan untuk menyediakan akses terkontrol
untuk data. Meskipun kita mungkin berpikir bahwa integrasi dan akses dikendalikan menyiratkan sentralisasi, ini
bukan niat. Bahkan, pengembangan jaringan komputer mempromosikan mode desentralisasi kerja.ini
3.3 Distributed DBMS | 121
pendekatan desentralisasi mencerminkan struktur organisasi banyak perusahaan, yang secara logis didistribusikan ke
divisi, departemen, proyek, dan sebagainya, dan secara fisik didistribusikan ke kantor-kantor, pabrik, atau pabrik-
pabrik, di mana setiap unit memelihara data operasional sendiri. Pengembangan DBMS terdistribusi yang
mencerminkan struktur organisasi ini, membuat data di semua unit diakses, dan data toko terdekat ke lokasi di mana
ia paling sering digunakan, harus meningkatkan kemampuan untuk berbagi data dan harus meningkatkan efisiensi
dengan yang kita dapat mengakses data.
Distributed
Sebuah koleksi logis saling terkait data bersama (dan deskripsi data ini), secara fisik didistribusikan melalui jaringan
komputer.
Didistribusikan DBMS
Databasesistem perangkat lunak yang memungkinkan pengelolaan database terdistribusi dan membuat distribusi
transparan kepada pengguna.
Sebuah sistem manajemen database terdistribusi (DDBMS) terdiri dari database logis tunggal yang dibagi menjadi
beberapa fragmen. Setiap fragmen disimpan pada satu atau lebih komputer (replika) di bawah kendali DBMS yang
terpisah, dengan komputer yang terhubung dengan jaringan komunikasi. Setiap situs yang mampu secara mandiri
memproses permintaan pengguna yang membutuhkan akses ke data lokal (yaitu, setiap situs memiliki beberapa
tingkat otonomi daerah) dan juga mampu mengolah data yang tersimpan di komputer lain dalam jaringan. Pengguna
mengakses database didistribusikan melalui aplikasi. Aplikasi diklasifikasikan sebagai orang-orang yang tidak
memerlukan data dari situs lain (aplikasi lokal) dan orang-orang yang memang membutuhkan data dari situs lain
(aplikasi global). Kami memerlukan DDBMS memiliki setidaknya satu aplikasi global. Oleh karena itu A DDBMS
memiliki karakteristik sebagai berikut:
• koleksi data bersama secara logis terkait
• Data dibagi menjadi beberapa fragmen
• fragmen dapat direplikasi
• fragmen / replika dialokasikan ke situs
• situs yang dihubungkan oleh jaringan komunikasi
• data pada setiap situs adalah di bawah kendali DBMS
• DBMS pada setiap situs dapat menangani aplikasi lokal, secara otonomi
• setiap DBMS berpartisipasi dalam sedikitnya satu aplikasi global.
Hal ini tidak perlu untuk setiap situs dalam sistem untuk memiliki database lokal sendiri, seperti yang digambarkan
oleh topologi dari DDBMS yang ditunjukkan pada Gambar 3.11. Dari definisi dari DDBMS, sistem ini diharapkan
untuk membuat distribusi transparan (tak terlihat) ke pengguna. Dengan demikian, fakta bahwa database
terdistribusi dibagi menjadi fragmen yang dapat disimpan pada komputer yang berbeda dan mungkin direplikasi
harus disembunyikan dari pengguna. Tujuan dari transparansi adalah membuat sistem terdistribusi muncul seperti
sistem terpusat. Hal ini kadang-kadang disebut sebagai prinsip dasar dari DBMS terdistribusi. Persyaratan ini
menyediakan fungsionalitas yang signifikan bagi pengguna akhir tetapi, sayangnya, menciptakan banyak masalah
tambahan yang harus ditangani oleh DDBMS.
122 | Chapter 3 Database Architectures and the Web
Distributed processing
Hal ini penting untuk membuat perbedaan antara DBMS terdistribusi dan pemrosesan terdistribusi:
Sebuah database terpusat yang dapat diakses melalui komputer network.Distributed pengolahan
Titik kunci dengan definisi DBMS terdistribusi adalah bahwa sistem terdiri dari data yang didistribusikan secara
fisik di sejumlah situs dalam jaringan. Jika data yang terpusat, meskipun pengguna lain dapat mengakses data
melalui jaringan, kita tidak menganggap hal ini menjadi sebuah DBMS terdistribusi hanya didistribusikan
pengolahan. Kami menggambarkan topologi pengolahan terdistribusi pada Gambar 3.12. Bandingkan angka ini,
yang memiliki pusat data di situs 2, dengan Gambar 3.11, yang menunjukkan beberapa situs masing-masing dengan
database mereka sendiri. Kami akan membahas didistribusikan DBMS secara mendalam dalam Bab 24 dan 25.
Sejak tahun 1970, organisasi ini sebagian besar difokuskan investasi mereka dalam sistem komputer baru (disebut
pemrosesan transaksi online atau sistem OLTP) yang mengotomatisasi proses bisnis. Dengan cara ini, organisasi
memperoleh keunggulan kompetitif melalui sistem yang menawarkan layanan yang lebih efisien dan hemat biaya
kepada pelanggan. Sepanjang periode ini, organisasi akumulasi jumlah data yang disimpan dalam database
operasional mereka tumbuh. Namun, dalam beberapa kali, di mana sistem tersebut yang biasa, organisasi yang
berfokus pada cara untuk menggunakan data operasional untuk mendukung pengambilan keputusan sebagai sarana
mendapatkan kembali keunggulan kompetitif. Sistem operasional tidak pernah terutama dirancang untuk
mendukung pengambilan keputusan bisnis dan menggunakan sistem seperti mungkin tidak menjadi solusi yang
mudah. Warisan adalah bahwa organisasi yang khas mungkin memiliki banyak sistem operasional dengan definisi
tumpang tindih dan kadang-kadang bertentangan, seperti tipe data. Tantangan bagi suatu organisasi adalah untuk
mengubah arsipnya data menjadi sumber pengetahuan, sehingga satu terintegrasi / konsolidasi tampilan data
organisasi disajikan kepada pengguna. Konsep data warehouse dianggap solusi untuk memenuhi persyaratan sistem
yang mampu mendukung pengambilan keputusan, menerima data dari berbagai sumber data operasional.
Data warehouse : Sebuah konsolidasi / terpadu tampilan data perusahaan yang diambil dari sumber data operasional
yang berbeda dan berbagai akses alat pengguna akhir mampu mendukung sederhana untuk pertanyaan yang sangat
kompleks untuk mendukung pengambilan keputusan.
Data diadakan di sebuah gudang data digambarkan sebagai subjek berorientasi, terpadu, waktu-varian, dan
nonvolatile (Inmon, 1993).
• Subject-oriented, sebagai gudang yang diselenggarakan di sekitar mata pelajaran utama dari organisasi (seperti
pelanggan, produk, dan penjualan) daripada area aplikasi utama (seperti faktur pelanggan, kontrol stok, dan
penjualan produk). Hal ini tercermin dalam kebutuhan untuk menyimpan data pendukung keputusan bukan data
applicationoriented.
• Integrated,, karena datang bersama-sama dari sumber data dari organisasi-lebar sistem aplikasi yang berbeda.
Sumber data sering tidak konsisten, menggunakan, misalnya, jenis data yang berbeda dan / atau format. Sumber data
yang terintegrasi harus dibuat konsisten untuk menyajikan pandangan terpadu dari data ke pengguna.
• Time-variant, karena data di gudang akurat dan hanya berlaku di beberapa titik waktu atau lebih dari beberapa
interval waktu.
• Nonvolatile, karena data tidak diperbarui secara real time tetapi di-refresh dari sistem operasional secara teratur.
Data baru selalu ditambahkan sebagai suplemen untuk database, bukan pengganti. Arsitektur khas dari gudang data
ditunjukkan pada Gambar 3.13. Sumber data operasional untuk data warehouse disuplai dari mainframe, sistem file
proprietary, workstation pribadi dan server, dan sistem eksternal seperti Internet. Sebuah menyimpan data
operasional (BPO) adalah gudang data operasional saat ini dan terintegrasi yang digunakan untuk analisis. Hal ini
sering terstruktur dan disertakan dengan data dalam cara yang sama seperti data warehouse, tetapi mungkin
sebenarnya bertindak hanya sebagai area pementasan untuk data yang akan dipindahkan ke gudang. Manajer beban
melakukan semua
124 | Chapter 3 Database Architectures and the Web
Operasi terkait dengan ekstraksi dan pemuatan data ke dalam gudang. Manajer gudang melakukan semua operasi
yang berhubungan dengan manajemen data, seperti transformasi dan penggabungan sumber data; penciptaan indeks
dan pandangan tentang tabel dasar; generasi agregasi, dan back up dan pengarsipan data. Manajer permintaan
melakukan semua operasi yang berhubungan dengan pengelolaan permintaan pengguna. Data rinci tidak disimpan
online tapi dibuat tersedia dengan meringkas data ke tingkat berikutnya detail. Namun, secara teratur, data rinci
ditambahkan ke gudang untuk melengkapi data diringkas. Toko gudang semua ditentukan sebelumnya ringan dan
sangat Data dirangkum dihasilkan oleh manajer gudang. Tujuan dari ringkasan informasi adalah untuk mempercepat
kinerja query. Meskipun ada peningkatan biaya operasional yang terkait dengan awalnya meringkas data, biaya ini
diimbangi dengan menghapus kebutuhan untuk terus melakukan operasi Ringkasan (seperti menyortir atau
pengelompokan) dalam menjawab pertanyaan pengguna. Data Ringkasan diperbarui terus menerus sebagai data baru
dimuat ke dalam gudang. Rinci dan diringkas data disimpan offline untuk keperluan pengarsipan dan backup.
Metadata (data tentang data) definisi yang digunakan oleh semua proses di gudang, termasuk proses ekstraksi dan
pemuatan; proses manajemen gudang; dan sebagai bagian dari proses manajemen query. Tujuan utama dari data
warehouse adalah untuk memberikan informasi kepada pengguna bisnis untuk pengambilan keputusan strategis.
Para pengguna berinteraksi dengan gudang menggunakan akses alat pengguna akhir. Data warehouse harus secara
efisien mendukung ad hoc danrutin
3.5 Cloud Computing | 125
analisis serta analisis data yang lebih kompleks. Jenis akses alat pengguna akhir biasanya mencakup pelaporan dan
permintaan alat, alat pengembangan aplikasi, sistem informasi eksekutif (EIS) alat, pengolahan analisis online
(OLAP) tools, dan alat data mining. Kami akan membahas data pergudangan, OLAP, dan alat data mining secara
mendalam pada Bab 31-34. 3,5 Cloud Computing
Cloud computing
Sebuah model untuk memungkinkan di mana-mana, nyaman, on-demand akses jaringan ke kolam renang bersama
sumber daya komputasi dikonfigurasi (misalnya, jaringan, server, penyimpanan, aplikasi, dan layanan) yang dapat
dengan cepat ditetapkan dan dirilis dengan upaya manajemen yang minimal atau penyedia layanan interaksi (NIST,
2011) 1.
1 NIST, 2011. NIST Definisi Cloud Computing, NIST Publikasi Khusus 800-145, Institut Nasional Standar,
September 2011.
Cloud computing adalah istilah yang diberikan untuk penggunaan beberapa server melalui jaringan digital seolah-
olah mereka satu komputer. The 'Cloud' itu sendiri adalah virtualisasi sumber daya-jaringan, server, aplikasi,
penyimpanan data, dan layanan-yang akhir-pengguna memiliki akses on-demand untuk. Virtualisasi adalah
penciptaan versi virtual dari sesuatu, seperti server, sistem operasi, perangkat penyimpanan, atau sumber daya
jaringan. Tujuannya adalah untuk menyediakan sumber daya ini dengan manajemen yang minimal atau interaksi
penyedia layanan. Cloud computing menawarkan sumber pengguna tanpa persyaratan memiliki pengetahuan tentang
sistem atau lokasi sistem yang memberikan mereka. Selain itu, awan dapat memberikan pengguna dengan berbagai
jauh lebih besar dari aplikasi dan layanan. Oleh karena itu, tujuan dari awan adalah untuk menyediakan pengguna
dan bisnis dengan layanan scalable dan disesuaikan. NIST memandang model cloud sebagai terdiri dari lima
karakteristik penting, tiga model layanan, dan empat model penyebaran. Karakteristik penting adalah sebagai
berikut:
• On-demand self-service. Konsumen dapat memperoleh, mengkonfigurasi, dan menyebarkan layanan cloud
sendiri menggunakan katalog layanan awan, tanpa memerlukan bantuan dari siapa pun dari penyedia awan
• akses jaringan luas. Karakteristik yang paling penting dari komputasi awan, yaitu bahwa hal itu didasarkan
jaringan, dan dapat diakses dari mana saja, dari setiap platform standar (misalnya, komputer desktop, laptop,
perangkat mobile).
• Sumber Daya pooling. Sumber penyedia awan komputasi dikumpulkan untuk melayani beberapa
konsumen, dengan sumber daya yang berbeda fisik dan virtual yang ditetapkan secara dinamis dan dipindahkan
sesuai dengan permintaan konsumen. Contoh sumber daya termasuk penyimpanan, pemrosesan, memori, dan
bandwidth jaringan.
• elastisitas cepat. Sumber daya pooling menghindari belanja modal yang diperlukan untuk pembentukan jaringan
dan infrastruktur komputasi. Dengan outsourcing ke awan, konsumen dapat memenuhi lonjakan permintaan untuk
layanan mereka dengan menggunakan kapasitas komputasi penyedia awan, dan risiko pemadaman dan gangguan
layanan secara signifikan berkurang. Selain itu, kemampuan dapat elastis ditetapkan dan dirilis, dalam beberapa
kasus secara otomatis, skala cepat berdasarkan permintaan. Untuk konsumen, kemampuan tersedia untuk
penyediaan sering muncul menjadi tidak terbatas dan dapat dipanggil dalam jumlah setiap saat.
• Measured servic.(Layanan Terukur). Sistem cloud secara otomatis mengontrol dan mengoptimalkan penggunaan
sumber daya dengan memanfaatkan kemampuan metering sesuai dengan jenis layanan (misalnya, penyimpanan,
pengolahan, bandwidth, dan account pengguna aktif). Penggunaan sumber daya dapat dipantau, dikendalikan, dan
dikenakan biaya untuk.
• Software as a Service (SaaS). Software dan data terkait terpusat host di awan. SaaS biasanya diakses dari berbagai
perangkat klien melalui antarmuka thin client, seperti browser Web. Konsumen tidak mengelola atau mengendalikan
infrastruktur awan yang mendasari dengan kemungkinan pengecualian dari pengaturan konfigurasi aplikasi yang
spesifk terbatas. SaaS dapat dianggap jenis tertua dan paling matang dari komputasi awan. Contohnya termasuk
Salesforce.com aplikasi manajemen penjualan, Netsuite software manajemen bisnis terpadu, Gmail Google, dan
Cornerstone OnDemand.
• Platform sebagai Layanan (PaaS). PaaS platform komputasi yang memungkinkan pembuatan aplikasi web dengan
cepat dan mudah dan tanpa kompleksitas membeli dan memelihara perangkat lunak dan infrastruktur di bawahnya.
Kadang-kadang, PaaS digunakan untuk memperluas kemampuan aplikasi yang dikembangkan sebagai SaaS.
Sementara pengembangan aplikasi sebelumnya diperlukan hardware, sistem operasi, database, middleware, server
Web, dan perangkat lunak lainnya, dengan model PaaS hanya pengetahuan untuk mengintegrasikan mereka
diperlukan. Sisanya ditangani oleh penyedia PaaS. Contoh PaaS termasuk Salesforce.com ini Force.com, Google
App Engine, dan Microsoft Azure. Konsumen tidak mengelola atau mengendalikan infrastruktur awan yang
mendasari termasuk jaringan, server, sistem operasi, atau penyimpanan, namun memiliki kontrol atas aplikasi
dikerahkan dan pengaturan mungkin konfigurasi untuk lingkungan hosting.
• Infrastruktur sebagai Layanan (IaaS). IaaS memberikan server, storage, jaringan dan sistem operasi-biasanya
platform virtualisasi lingkungan kepada konsumen sebagai layanan on-demand, dalam sebuah paket dan ditagih
sesuai dengan penggunaan. Sebuah penggunaan populer dari IaaS adalah di hosting situs Web, di mana infrastruktur
di rumah tidak terbebani dengan tugas ini, tapi dibiarkan bebas untuk mengelola bisnis. Amazon Elastic Compute
Cloud (EC2), Rackspace, dan GoGrid adalah contoh IaaS. Konsumen tidak mengelola atau mengendalikan
infrastruktur awan yang mendasari tetapi memiliki kontrol atas sistem operasi, penyimpanan, dan aplikasi
dikerahkan, dan kontrol mungkin terbatas pilih komponen jaringan (misalnya, firewall).
Model ini diilustrasikan pada Gambar 3.14.
Umumnya, penyedia layanan cloud publik seperti Amazon AWS, Microsoft, dan Google memiliki dan
mengoperasikan infrastruktur dan menawarkan akses hanya melalui internet (konektivitas langsung tidak
ditawarkan).
•Hybrid cloud.. Infrastruktur awan adalah komposisi dari dua atau lebih yang berbeda infrastruktur cloud (swasta,
komunitas, atau masyarakat) yang tetap entitas unik, namun terikat bersama oleh teknologi standar atau eksklusif,
menawarkan manfaat dari beberapa model penyebaran.
3.5.1 Manfaat dan Risiko komputasi Cloud Computing Cloud menawarkan sejumlah manfaat yang berbeda untuk
perusahaan dibandingkan dengan pendekatan yang lebih tradisional: • Biaya-reduksi. Cloud computing
memungkinkan organisasi untuk menghindari belanja modal muka yang terkait dengan server mahal, lisensi
perangkat lunak, dan personil IT, menggeser tanggung jawab ini ke penyedia awan. Hal ini memungkinkan
perusahaan-perusahaan kecil untuk memiliki akses ke infrastruktur komputasi yang kuat bahwa mereka mungkin
sebaliknya tidak mampu membayar. Selain itu, organisasi hanya membayar untuk fasilitas komputasi yang mereka
gunakan daripada membayar terlepas dari apakah atau tidak fasilitas yang digunakan untuk kapasitas penuh.
128 | Chapter 3 Database Architectures and the Web
• Skalabilitas / Agility. Provisioning-on-demand memungkinkan organisasi untuk mengatur sumber daya yang
mereka butuhkan dan menghilangkan sumber yang tidak diinginkan pada dasar yang dibutuhkan. Ketika sebuah
proyek yang didanai, organisasi memulai layanan, dan ketika proyek berakhir sumber daya dapat dilepaskan. Ini
mendukung pertumbuhan bisnis tanpa memerlukan perubahan mahal untuk sistem TI yang ada organisasi. Hal ini
juga dikenal sebagai elastisitas dan balik nama Amazon Elastic Computing Cloud (EC2).
• Peningkatan keamanan. Keamanan dapat sebaik atau bahkan lebih baik daripada sistem di rumah, karena
penyedia cloud dapat mencurahkan sumber daya untuk memecahkan masalah keamanan yang banyak organisasi
tidak mampu. Desentralisasi data juga dapat memberikan peningkatan keamanan, karena tidak semua data organisasi
disimpan di satu tempat. Selain itu, banyak organisasi yang lebih kecil tidak memiliki sumber daya yang dibutuhkan
untuk mengelola audit dan sertifikasi proses untuk pusat data internal. Penyedia awan yang membahas standar
kepatuhan seperti Sarbanes-Oxley, Industri Kartu Pembayaran Standar Keamanan Data (PCI DSS), dan Asuransi
Kesehatan Portabilitas dan Akuntabilitas Act (HIPAA) dapat membantu organisasi mengatasi proses regulasi dan
kepatuhan.
• Peningkatan keandalan. Sekali lagi, dengan sumber daya dikhususkan penyedia cloud dapat fokus pada
peningkatan keandalan sistem mereka. Provider dapat memberikan 24/7 dukungan dan komputasi tingkat tinggi
untuk semua klien mereka sekaligus, daripada setiap klien yang membutuhkan dedicated staf di rumah sendiri. Hal
ini menyebabkan sistem yang lebih berlebihan dan aman.
• Akses ke teknologi baru. Komputasi awan dapat membantu memastikan bahwa organisasi memiliki akses ke
teknologi terbaru, termasuk akses ke perangkat keras, perangkat lunak, dan fungsi TI yang dinyatakan akan terlalu
mahal untuk membeli.
• pembangunan lebih cepat. Cloud platform komputasi menyediakan banyak layanan inti yang mungkin
biasanya dibangun di rumah. Layanan ini, ditambah template dan alat-alat lainnya, secara signifikan dapat
mempercepat siklus pengembangan.
• skala besar pengujian prototipe / beban. Cloud computing membuat prototipe skala besar dan pengujian
beban lebih mudah. Ini akan mungkin untuk bertelur 1.000 server di awan untuk memuat menguji aplikasi dan
kemudian membebaskan mereka segera setelah tes selesai, yang akan sangat sulit dan mahal dengan server di-
rumah.
• praktek kerja lebih fleksibel. Cloud computing memungkinkan staf untuk bekerja lebih fleksibel. Staf dapat
mengakses file menggunakan perangkat Web-enabled seperti laptop, netbook dan smartphone. Kemampuan untuk
secara bersamaan berbagi dokumen dan file lainnya melalui Internet juga dapat membantu mendukung kolaborasi
global dan berbagi pengetahuan serta pengambilan keputusan kelompok.
• Peningkatan daya saing. Mendelegasikan infrastruktur dan layanan komoditas memungkinkan organisasi
untuk fokus pada kompetensi inti mereka dan mengembangkan kemampuan yang dapat membedakan organisasi
mereka di pasar bisnis masing-masing, sehingga meningkatkan daya saing.
Serta manfaat, komputasi awan juga menyajikan beberapa risiko untuk organisasi seperti:
• Jaringan ketergantungan. Mungkin kelemahan paling jelas untuk komputasi awan adalah ketergantungan pada
jaringan. Listrik padam dan gangguan layanan akan mencegah akses ke fasilitas cloud. Selain itu, komputasi awan
juga rentan terhadap masalah bandwidth sederhana, misalnya, pada jam-jam puncak permintaan. Jika server
penyedia awan sedang tegang pada jam sibuk, baik kinerja dan ketersediaan layanan akan menderita. Sementara
banyak penyedia cloud akan memiliki redundansi untuk menangani beban puncak mereka, selalu ada risiko kejadian
tak terduga, kegagalan server atau serangan luar; apapun yang akan mengancam akses klien.
3.5 Cloud Computing | 129
• Sistem ketergantungan. sebuah organisasi serta mungkin Sangat tergantung pada ketersediaan dan keandalan
Sistem provider awan.penyedia gagal memberikan pemulihan bencana yang memadai, hasilnya bias menjadi
bencana besar bagi organisasi .
• Cloud provider ketergantungan. Idealnya, penyedia program awan tidak akan bangkrut atau diakuisisi Oleh
perusahaan yang lebih besar . jika terjadi, ada kemungkinan bahwa layanan akan tiba-tiba menghentikan dan
organisasi perlu memastikan mereka dilindungiterhadap sebuah kemungkinan.
• Kurangnya Kontrol. Mencari Google Artikel melakukan data ke sistem yang dikelola oleh provider cloud,
organisasi serta tidak mungkin lagi berada Penuh Dari data yang menyebarkan langkah-langkah teknis dan
organisasi serta yang diperlukan data yang Menjaga. Akibatnya, masalah berikut mungkin Timbul:
- Kurangnya ketersediaan. Jika provider awan bergantung pada Teknologi ekslusif, mungkin terbukti sulit
bagi suatu organisasi menggeser data dan dokumen antara Sistem Berbasis cloud yang berbeda (portabilitas
data) atau bertukar information dengan aplikasi yang menggunakan layanan awan yang dikelola oleh
provider layanan yang berbeda (interoperabilitas).
- Kurangnya integritas. Awan terdiri dari sistem dan infrastruktur bersama. Cloud penyedia proses data
pribadi yang datang dari berbagai mata pelajaran data dan organisasi dan adalah mungkin bahwa konflik
kepentingan dan / atau tujuan yang berbeda mungkin timbul.
- Kurangnya kerahasiaan. Data sedang diproses di awan dapat dikenakan permintaan dari lembaga penegak
hukum. Ada risiko bahwa data dapat diungkapkan kepada lembaga (asing) penegakan hukum tanpa dasar
hukum yang sah dan dengan demikian pelanggaran hukum bisa terjadi.
- Kurangnya intervenability. Karena kompleksitas dan dinamika rantai outsourcing, layanan cloud yang
ditawarkan oleh salah satu penyedia mungkin dihasilkan dengan menggabungkan layanan dari berbagai
provider lain, yang mungkin secara dinamis ditambahkan atau dihapus selama durasi kontrak organisasi.
Selain itu, penyedia awan mungkin tidak memberikan langkah-langkah yang diperlukan dan alat untuk
melindungi data organisasi atau data pribadi seseorang dalam hal, misalnya akses, penghapusan, atau koreksi
data.
- Kurangnya isolasi. Sebuah penyedia awan mungkin menggunakan kontrol fisik atas data dari klien yang
berbeda untuk menghubungkan data pribadi. Jika administrator difasilitasi dengan hak akses yang cukup
istimewa, mereka bisa menghubungkan informasi dari klien yang berbeda.
• Kurangnya informasi pada pengolahan (transparansi). Informasi yang cukup tentang operasi pengolahan
layanan awan menimbulkan risiko untuk pengendali data serta untuk data mata pelajaran karena mereka
mungkin tidak menyadari potensi ancaman dan risiko dan dengan demikian tidak dapat mengambil
langkah-langkah yang mereka anggap tepat. Beberapa potensi ancaman yang mungkin timbul dari
pengontrol data tidak mengetahui bahwa:
3.5.2 Cloud Berbasis aaS, solusi database berbasis cloud jatuh ke dalam dua kategori dasar: Data sebagai Service
(DaaS) dan Database sebagai Service (DBaaS). Perbedaan utama antara keduanya adalah terutama bagaimana data
dikelola:
• DaaS. Daas menawarkan kemampuan untuk mendefinisikan data di awan dan kemudian query data yang on
demand. Tidak seperti solusi database tradisional, DaaS tidak mengimplementasikan interface DBMS khas seperti
SQL (lihat Bab 6). Sebaliknya, data tersebut diakses melalui seperangkat API. DaaS memungkinkan organisasi
dengan data berharga untuk membuat garis pendapatan baru berdasarkan data mereka sudah sendiri. Contoh DaaS
yang Perkotaan Pemetaan, layanan geografi data, yang menyediakan data bagi pelanggan untuk menanamkan ke
dalam situs web mereka sendiri dan aplikasi; Xignite, yang membuat data keuangan tersedia untuk pelanggan; dan
Hoovers, sebuah Dun & Bradstreet perusahaan, yang menyediakan data bisnis di berbagai organisasi.
• DBaaS. DBaaS menawarkan fungsionalitas database lengkap untuk pengembang aplikasi. Dalam DBaaS, lapisan
manajemen bertanggung jawab untuk pemantauan terus menerus dan mengkonfigurasi database untuk mencapai
skala dioptimalkan, ketersediaan tinggi, multi-tenancy (yaitu, melayani beberapa organisasi klien), dan alokasi
sumber daya yang efektif di awan, sehingga hemat pengembang dari tugas-tugas administrasi database yang sedang
berlangsung.
Ada sejumlah isu arsitektur yang terkait dengan DBaaS hubungannya dengan bagaimana data satu organisasi
diisolasi dari data organisasi lain . Kami mempertimbangkan pilihan berikut:
•server terpisah
•Shared server, proses database server terpisah
•database server bersama, database yang terpisah
•Bersama basis data, skema
•terpisah,Database Bersama bersama skema
Dengan arsitektur server terpisah, masing-masing tenant memiliki host mesin server yang hanya berfungsi database
mereka. Arsitektur ini mungkin tepat untuk organisasi yang membutuhkan tingkat tinggi isolasi, memiliki database
besar, sejumlah besar pengguna, atau yang memiliki persyaratan kinerja yang sangat spesifik. Pendekatan ini
cenderung mengarah ke biaya yang lebih tinggi untuk menjaga peralatan dan back up data penyewa. Arsitektur
diilustrasikan pada Gambar 3.15.
merupakan lingkungan virtualisasi umum. Sumber daya pada mesin server yang diberikan dibagi untuk masing-
masing tenant. Setiap lingkungan virtual cadangan sumber daya memori dan disk sendiri, dan tidak dapat berbagi
sumber daya yang tidak terpakai dengan lingkungan virtual lainnya. Dengan pendekatan ini, memori dan
penyimpanan dapat menjadi masalah karena masing-masing tenant memiliki file database mereka sendiri dan proses
server. Selain itu, kinerja dapat menjadi masalah karena penyewa berbagi server yang sama meskipun penyedia
cloud dapat mengurangi risiko ini dengan mengalokasikan hanya sejumlah kecil penyewa untuk setiap server.
Keamanan tidak menjadi masalah karena penyewa benar-benar terisolasi dari satu sama lain. Arsitektur ini
diilustrasikan pada Gambar 3.16.
Dengan arsitektur ini, masing-masing tenant memiliki database yang terpisah mereka sendiri tetapi berbagi server
database tunggal (dan proses server tunggal) dengan semua penyewa lainnya. Perbaikan atas pendekatan
sebelumnya adalah bahwa proses server database tunggal dapat berbagi sumber daya seperti cache database efektif
antara penyewa, mendukung penggunaan sumber daya mesin. Arsitektur ini diilustrasikan pada Gambar 3.17.
Dengan arsitektur ini, ada server database tunggal bersama dan masing-masing tenant memiliki data dikelompokkan
ke dalam skema yang dibuat khusus untuk penyewa. DBMS harus
132 | Chapter 3 Database Architectures and the Web
Gambar 3.16 Multi-tenant cloud bersama database-server,terpisah database server proses arsitektur
database yang memiliki struktur izin untuk memastikan bahwa pengguna hanya memiliki akses ke data yang mereka
berhak. Arsitektur ini diilustrasikan pada Gambar 3.18.
Dengan arsitektur ini, ada server database tunggal bersama dan masing-masing tenant memiliki data dikelompokkan
ke dalam skema bersama tunggal. Setiap tabel database harus memiliki kolom yang digunakan untuk
mengidentifikasi pemilik baris. Setiap aplikasi mengakses baris harus mengacu pada kolom ini di setiap query untuk
memastikan bahwa salah satu penyewa tidak dapat melihat data lain penyewa. Pendekatan ini memiliki biaya
hardware dan cadangan terendah, karena mendukung jumlah terbesar dari penyewa per server database. Namun,
karena beberapa penyewa berbagi tabel database yang sama, pendekatan ini mungkin menimbulkan upaya
pengembangan tambahan dalam keamanan, untuk memastikan bahwa penyewa tidak dapat mengakses data penyewa
lain. Pendekatan ini sesuai jika penting bahwa aplikasi harus melayani sejumlah besar penyewa dengan sejumlah
kecil server, dan calon pelanggan bersedia untuk menyerah isolasi data dalam pertukaran untuk biaya yang lebih
rendah bahwa pendekatan ini memungkinkan. Arsitektur ini diilustrasikan pada Gambar 3.19.
134 | Chapter 3 Database Architectures and the Web
DBMS adalah potongan-potongan yang sangat kompleks dan canggih dari perangkat lunak yang bertujuan untuk
menyediakan layanan yang dibahas dalam Bagian 2.4. Hal ini tidak mungkin untuk menggeneralisasi struktur
komponen dari DBMS, karena sangat bervariasi dari sistem ke sistem. Namun, hal ini berguna ketika mencoba
untuk memahami sistem database untuk mencoba untuk melihat komponen dan hubungan antara mereka. Pada
bagian ini, kami menyajikan arsitektur yang mungkin untuk DBMS. Kami meneliti arsitektur DBMS Oracle pada
bagian berikutnya. Sebuah DBMS dibagi menjadi beberapa komponen software (atau modul), yang masing-masing
diberikan sebuah operasi tertentu. Seperti yang dinyatakan sebelumnya, beberapa fungsi dari DBMS yang didukung
oleh sistem operasi yang mendasarinya. Namun, sistem operasi hanya menyediakan layanan dasar dan DBMS harus
dibangun di atasnya.
Dengan demikian, desain sebuah DBMS harus memperhitungkan antarmuka antara DBMS dan sistem operasi.
Komponen software utama dalam lingkungan DBMS digambarkan pada Gambar 3.20. Diagram ini menunjukkan
bagaimana DBMS interface dengan komponen perangkat lunak lain, seperti permintaan pengguna dan metode akses
(teknik manajemen file untuk menyimpan dan mengambil catatan data). Kami akan memberikan gambaran tentang
organisasi berkas dan metode akses dalam Lampiran F. Untuk perawatan lebih komprehensif, pembaca yang tertarik
disebut Teorey dan Fry (1982), Weiderhold (1983), Smith dan Barnes (1987), dan Ullman (1988 ).
3.6 Components of a DBMS | 135
• prosesor Query. Ini adalah komponen DBMS utama yang mengubah query ke dalam serangkaian instruksi tingkat
rendah diarahkan ke database manager. Kami membahas pemrosesan query dalam Bab 23.
•database manager (DM). DM interface dengan program aplikasi yang dikirimkan pengguna dan permintaan. DM
menerima query dan menguji skema eksternal dan konseptual untuk menentukan apa catatan konseptual yang
diperlukan untuk memenuhi permintaan tersebut. DM kemudian menempatkan panggilan ke file manager untuk
melakukan permintaan. Komponen DM ditunjukkan pada Gambar 3.21.
•Manajer file. File manager memanipulasi penyimpanan file yang mendasari dan mengelola alokasi ruang
penyimpanan pada disk. Ini membangun dan mempertahankan daftar struktur dan indeks didefinisikan dalam skema
internal. Jika file hash yang digunakan, itu panggilan pada fungsi hashing untuk menghasilkan alamat record.
Namun, file manager tidak langsung mengelola input fisik dan output data. Sebaliknya, melewati permintaan ke
metode akses yang sesuai, yang baik membaca data dari atau menulis data ke dalam sistem penyangga (atau Cache).
•DML preprocessor. Modul ini mengubah pernyataan DML tertanam dalam sebuah program aplikasi ke dalam
fungsi panggilan standar dalam bahasa tuan rumah. DML preprocessor harus berinteraksi dengan query processor
untuk menghasilkan kode yang sesuai.
•DDL compiler. DDL compiler mengkonversi pernyataan DDL ke dalam satu set tabel yang berisi metadata. Tabel
ini kemudian disimpan dalam katalog sistem sedangkan informasi kontrol disimpan dalam header
136 | Chapter 3 Database Architectures and the Web
• Manajer Katalog. Manajer katalog mengelola akses ke dan memelihara sistem katalog. Sistem katalog diakses oleh
sebagian besar komponen DBMS.
Komponen perangkat lunak utama untuk manajer database adalah sebagai berikut:
•control Otorisasi. Modul ini menegaskan apakah pengguna memiliki izin yang diperlukan untuk melaksanakan
operasi yang dibutuhkan.
•prosesor Command. Setelah sistem telah mengkonfirmasi bahwa pengguna memiliki kewenangan untuk
melakukan operasi, kontrol akan diteruskan ke prosesor perintah.
•Integritas checker. Untuk sebuah operasi yang mengubah database, cek integritas checker apakah operasi yang
diminta memenuhi batasan integritas semua yang diperlukan (seperti kendala utama).
•Query optimizer. Modul ini menentukan strategi yang optimal untuk eksekusi query. Kami membahas optimasi
query pada Bab 23.
3.7 Oracle Architecture | 137
• Transaksi manajer. Modul ini melakukan pengolahan diperlukan operasi yang diterima dari transaksi.
• Scheduler. Modul ini bertanggung jawab untuk memastikan bahwa operasi bersamaan pada database melanjutkan
tanpa bertentangan dengan satu sama lain. Dia mengontrol urutan relatif di mana operasi transaksi dieksekusi.
• Manajer Pemulihan. Modul ini memastikan bahwa database tetap dalam keadaan konsisten di hadapan
kegagalan. Hal ini bertanggung jawab untuk transaksi komit dan batalkan.
• Manajer Buffer. Modul ini bertanggung jawab untuk transfer data antara memori utama dan penyimpanan
sekunder, seperti disk dan tape. Manajer pemulihan dan manajer penyangga kadang-kadang disebut secara
kolektif sebagai manajer data. Manajer penyangga kadang-kadang dikenal sebagai manajer cache.
Kami membahas empat modul terakhir dalam Bab 22. Selain modul disebutkan sebelumnya, beberapa struktur
data lain yang diperlukan sebagai bagian dari pelaksanaan physicallevel. Struktur ini meliputi data dan file
indeks dan katalog sistem. Sebuah usaha telah dilakukan untuk standarisasi DBMS, dan model referensi
diusulkan oleh Database Architecture Framework Task Group (DAFTG, 1986). Tujuan dari model referensi ini
adalah untuk menentukan kerangka kerja konseptual yang bertujuan untuk membagi upaya standardisasi ke
dalam bagian dan untuk menunjukkan pada tingkat yang sangat luas bagaimana potongan-potongan ini bisa
saling.
Oracle didasarkan pada arsitektur client-server diperiksa dalam bagian 3.1.3. Oracle Server terdiri dari database
(data mentah, termasuk log dan kontrol file) dan contoh (proses dan sistem memori pada server yang
memberikan akses ke database). Sebuah contoh dapat terhubung ke hanya satu database. Database terdiri dari
struktur logis, seperti skema database, dan struktur fisik, yang berisi file yang membentuk database Oracle. Kita
sekarang membahas struktur logis dan fisik dari database dan proses sistem secara lebih rinci.
Tablespace
database Sebuah Oracle dibagi menjadi unit penyimpanan logis yang disebut tablespace. Sebuah tablespace
digunakan untuk kelompok terkait struktur logis bersama-sama. Misalnya, tablespace umum kelompok semua objek
aplikasi untuk menyederhanakan beberapa operasi administrasi. Setiap database Oracle berisi tablespace bernama
SYSTEM, yang dibuat secara otomatis ketika database dibuat. SYSTEM tablespace selalu berisi tabel sistem
katalog (disebut kamus data dalam Oracle) untuk seluruh database. Sebuah database kecil mungkin hanya perlu
tablespace SYSTEM; Namun, dianjurkan bahwa setidaknya satu tablespace tambahan dibuat untuk menyimpan data
pengguna terpisah dari kamus data, sehingga mengurangi pertentangan antara objek-objek kamus dan obyek skema
untuk datafiles yang sama (lihat Gambar 19.11). Gambar 3.22
138 | Bab 3 Arsitektur Database dan Web
menggambarkan database Oracle terdiri dari tablespace SYSTEM dan tablespace USER_ DATA.
Sebuah tablespace baru dapat dibuat dengan menggunakan perintah CREATE tablespace,
misalnya:
CREATE tablespace user_data
datafile 'DATA3.ORA' UKURAN 100K
MANAJEMEN SEJAUH LOKAL
AUTOSEGMEN MANAJEMENRUANG;
Sebuah meja kemudian dapat dikaitkan dengan tablespace tertentu menggunakan CREATE
TABLE atau ALTER TABLE pernyataan, misalnya:
CREATE TABLE PropertyForRent PropertyNo VARCHAR2(5) NOT(...NULL,)
tablespace user_data;
Jika tidak ada tablespace ditentukan saat membuat tabel baru, default tablespace diasosiasikan-
diciptakan dengan pengguna ketika akun pengguna didirikan digunakan.
Untuk mengakses database, pengguna harus menjalankan aplikasi database (seperti Oracle
Form atau SQL * Plus) dan terhubung menggunakan username didefinisikan dalam database.
Ketika pengguna database dibuat, skema yang sesuai dengan nama yang sama diciptakan untuk
pengguna. Secara default, setelah pengguna terhubung ke database, pengguna memiliki akses ke
semua obyek yang terkandung dalam yang sesuai skema. Sebagai pengguna dikaitkan hanya
dengan skema dengan nama yang sama; istilah "user" dan "skema" sering digunakan antar-
changeably. (Perhatikan bahwa tidak ada hubungan antara tablespace dan skema: Objek dalam
skema yang sama dapat di tablespace yang berbeda, dan tablespace dapat memegang benda dari
skema yang berbeda.)
blok data adalah unit terkecil penyimpanan yang Oracle dapat menggunakan atau mengalokasikan. Satu blok data
sesuai dengan jumlah tertentu byte ruang disk fisik. Ukuran blok data dapat diatur untuk setiap database Oracle
ketika dibuat. Ukuran blok data ini harus kelipatan dari ukuran blok sistem operasi (dalam batas operasi maksimum
sistem) untuk menghindari yang tidak perlu I / O. Sebuah blok data memiliki struktur sebagai berikut:
blok Web,luasan, dan segmen. Oracle dinamis mengalokasikan ruang ketika luasan eksis-ing dari
segmen menjadi penuh. Karena luasan dialokasikan sesuai kebutuhan, luasan segmen mungkin
atau mungkin tidak berdekatan pada disk.
utama fisik struktur database dalam Oracle adalah datafile, Redo log file, dan file kontrol.
Datafiles
Setiap database Oracle memiliki satu atau lebih datafiles fisik. Data struktur data-base logis
(seperti tabel dan indeks) secara fisik disimpan di datafile tersebut. Seperti ditunjukkan dalam
Gambar 3.16, satu atau lebih datafiles membentuk tablespace. Database Oracle sederhana akan
memiliki satu tablespace dan satu datafile. Sebuah database yang lebih kompleks mungkin
memiliki empat tablespace, masing-masing terdiri dari dua datafiles, memberikan total delapan
datafiles.
Setiap database Oracle memiliki seperangkat dua atau lebih file redo log yang merekam semua
perubahan yang dibuat untuk data untuk tujuan pemulihan. Harus gagal mencegah data yang
diubah dari yang secara permanen ditulis ke datafiles, perubahan dapat diperoleh dari redo log,
sehingga mencegah kerja dari tersesat. Kita membahas pemulihan secara rinci dalam Bagian 22.3.
Kontrol file
Setiap database Oracle memiliki file kontrol yang berisi daftar semua file lain yang membentuk
database, seperti datafiles dan Redo log file. Untuk menambahkan proteksi-tion, dianjurkan
bahwa file kontrol harus multiplexing (beberapa salinan dapat ditulis untuk beberapa perangkat).
Demikian pula, mungkin disarankan untuk multipleks file redo log juga.
Contoh Oracle
Oracle instance terdiri dari proses Oracle dan memori bersama diperlukan untuk mengakses
informasi dalam database. Contoh terdiri dari proses latar belakang Oracle, proses pengguna, dan
memori bersama yang digunakan oleh proses-proses ini, seperti digambarkan pada Gambar 3.18.
Antara lain, Oracle menggunakan memori bersama untuk caching data dan indeks serta
menyimpan kode program bersama. Memori bersama dipecah menjadi berbagai struktur memori,
yang yang dasar adalah Area Global System (SGA) dan Global Area Program (PGA).
Area global sistem. SGA adalah daerah memori bersama yang digunakan untuk menyimpan
informasi data dan kontrol untuk satu contoh Oracle. SGA dialokasikan ketika instance Oracle
dimulai dan deallocated ketika instance Oracle dimatikan. Informasi dalam SGA terdiri dari
struktur memori berikut, yang masing-masing memiliki ukuran tetap dan dibuat pada startup
contoh:
3.7 Oracle Arsitektur | 141
- database cache buffer. Ini mengandung paling terakhir digunakan blok data dari database.
Blok ini dapat berisi data dimodifikasi yang belum ditulis ke disk (blok kotor), blok yang
belum dimodifikasi, atau blok yang telah ditulis ke disk karena modifikasi (blok bersih).
Dengan menyimpan blok yang terakhir digunakan, buffer paling aktif tinggal di memori
untuk mengurangi I / O dan meningkatkan kinerja. Kami membahas penyangga
kebijakan manajemen dalam Bagian 22.3.2.
- Redo log buffer. Ini berisi entri berkas redo log, yang digunakan untuk tujuan recov-ery
(lihat Bagian 22.3). Proses latar belakang LGWR (dijelaskan kemudian) menulis redo
log buffer ke file yang aktif redo log online pada disk.
- Kolam Bersama. Ini berisi struktur memori bersama, seperti daerah SQL dibagi dalam
cache perpustakaan dan informasi internal dalam kamus data. Daerah SQL bersama
berisi pohon-pohon parse dan rencana eksekusi untuk query SQL. Jika beberapa aplikasi
mengeluarkan pernyataan SQL yang sama, masing-masing dapat mengakses area SQL
bersama untuk mengurangi jumlah memori yang diperlukan dan untuk mengurangi
waktu pemrosesan yang digunakan untuk parsing dan eksekusi. Kami membahas
pemrosesan query dalam Bab 23.
- Kolam besar. Ini adalah area memori opsional dimaksudkan untuk besar memori alloca-
tions (misalnya. Untuk buffer untuk Recovery Manager (RMAN) I / O budak).
- Java renang. Daerah ini menyimpan semua sesi khusus kode Java dan data dalam Java
Virtual Machine (JVM).
- Streaming kolam renang. Toko daerah ini buffered pesan antrian dan menyediakan
memori untuk proses Oracle Streams. Oracle Streaming memungkinkan arus informasi
(seperti peristiwa database dan perubahan database) untuk dikelola dan berpotensi propa-
gated ke database lain.
- Tetap SGA. Ini adalah area rumah tangga internal yang berisi berbagai data seperti
informasi umum tentang keadaan database dan contoh Oracle dan informasi
dikomunikasikan antara proses Oracle, seperti informasi tentang kunci.
Program area global. PGA merupakan daerah memori bersama yang digunakan untuk
menyimpan informasi data dan kontrol untuk proses Oracle. PGA yang dibuat oleh Oracle
Database saat proses Oracle dimulai. Satu PGA ada untuk setiap server pro-cess dan proses
latar belakang. Ukuran dan isi dari PGA tergantung pada pilihan server Oracle diinstal.
Proses client. Setiap proses klien mewakili koneksi pengguna ke Oracle Server (misalnya,
melalui SQL * Plus atau Oracle Forms aplikasi). Proses pengguna memanipulasi input
pengguna, berkomunikasi dengan proses server Oracle, menampilkan informasi yang
diminta oleh pengguna dan, jika diperlukan, pro-proses-informasi ini menjadi bentuk yang
lebih berguna.
Proses Oracle. Oracle (server) proses melakukan fungsi bagi pengguna. Oracle pro-cesses
dapat dibagi menjadi dua kelompok: proses server (yang menangani permintaan dari
proses pengguna terhubung) dan proses latar belakang (yang melakukan asynchronous I /
O dan memberikan peningkatan paralelisme untuk meningkatkan kinerja dan kehandalan).
Dari Gambar 3.24, kita memiliki latar belakang proses berikut:
- database Penulis (DBWR). Proses DBWR bertanggung jawab untuk menulis blok mod-
ified (kotor) dari buffer cache di SGA untuk datafiles pada disk. Sebuah contoh Oracle
dapat memiliki hingga sepuluh proses DBWR, bernama DBW0 untuk DBW9, untuk
menangani I / O ke beberapa datafiles. Oracle menggunakan teknik yang dikenal sebagai
write-depan log (lihat Bagian 22.3.4), yang berarti bahwa proses DBWR mempunyai
kinerja batched menulis setiap kali buffer harus dibebaskan, belum tentu pada titik
transaksi melakukan
- Log Penulis (LGWR). Proses LGWR bertanggung jawab untuk menulis data dari log
buffer ke redo log.
- Checkpoint (CKPT). Sebuah pos pemeriksaan merupakan acara di mana semua buffer
database yang dimodifikasi ditulis dengan datafiles oleh DBWR tersebut (lihat Bagian
22.3.2). Proses CKPT bertanggung jawab untuk memberitahu proses DBWR untuk
melakukan pemeriksaan dan memperbarui semua datafiles dan file kontrol untuk
database untuk menunjukkan pos pemeriksaan terbaru. Proses CKPT adalah opsional
dan, jika dihilangkan, tanggung jawab ini diasumsikan oleh proses LGWR.
- Sistem Monitor (SMON). Proses SMON bertanggung jawab untuk pemulihan kecelakaan
ketika misalnya yang mulai mengikuti kegagalan. Ini termasuk pulih trans-tindakan yang
telah meninggal karena sistem crash. SMON juga defragments database dengan
menggabungkan luasan bebas dalam datafiles.
- Proses Monitor (PMON). Proses PMON bertanggung jawab untuk melacak proses
pengguna yang mengakses database dan memulihkan mereka setelah kecelakaan. Ini
termasuk membersihkan sumber daya tertinggal (seperti memori) dan melepaskan setiap
kunci yang dipegang oleh proses gagal.
- Archiver (ARCH). Proses ARCH bertanggung jawab untuk menyalin file redo log online
untuk penyimpanan arsip ketika mereka menjadi penuh. Sistem ini dapat config-ured
berlari hingga 10 proses ARCH, bernama ARC0 untuk ARC9. Proses arsip tambahan
dimulai oleh LWGR ketika beban menentukan.
- Recoverer (Reco). Proses RECO bertanggung jawab untuk membersihkan gagal atau
ditangguhkan didistribusikan transaksi (lihat Bagian 25.4).
- Flashback Penulis atau Recovery Penulis (RVWR). Ketika kilas balik diaktifkan atau
ketika ada dijamin restore point, proses RVWR menulis data kilas balik ke kilas balik
database log di daerah pemulihan flash. Alat Flashback memungkinkan admin-istrators
dan pengguna untuk melihat dan memanipulasi negara masa lalu data Oracle instance
tanpa memulihkan database ke titik tetap dalam waktu.
- Pengaturan Monitor (MMON). Proses ini melakukan banyak tugas yang berhubungan
dengan Otomatis Beban Kerja Repository(AWR).AWR adalah gudang data historis
perfor-Mance yang mencakup statistik kumulatif untuk sistem, sesi, masing-masing SQL
laporan, segmen, dan layanan. Antara lain, secara default, proses MMON
mengumpulkan statistik setiap jam dan menciptakan snapshot AWR.
- Pengaturan Memantau Lite (MMNL). Proses ini menulis statistik dari Session History
(ASH) penyangga Aktif di SGA ke disk. MMNL menulis ke disk ketika buffer ASH
penuh.
Dalam uraian sebelumnya kita telah menggunakan istilah "proses" generik. Saat ini, beberapa
sistem melaksanakan proses sebagai benang.
Contoh berikut menggambarkan konfigurasi Oracle dengan proses server yang berjalan pada
satu mesin dan proses pengguna menghubungkan ke server dari mesin Sepa-tingkat. Oracle
menggunakan mekanisme komunikasi yang disebut Oracle Layanan Net untuk
memungkinkan proses pada mesin fisik yang berbeda untuk berkomunikasi satu sama lain.
Oracle Layanan Net mendukung berbagai protokol jaringan, seperti TCP / IP. Layanan juga
dapat melakukan susun protokol jaringan, yang memungkinkan klien yang menggunakan satu
protokol untuk berinteraksi dengan database server menggunakan protokol lain.
jika pernyataan tidak, daerah SQL bersama baru dialokasikan untuk pernyataan sehingga bisa diurai dan
diproses.
Proses server mengambil nilai-nilai data yang diperlukan dari datafile yang sebenarnya (tabel) atau yang
disimpan di SGA.
Proses server memodifikasi data dalam SGA tersebut. Proses DBWR menulis blok modi-fied secara permanen
ke disk ketika melakukan itu adalah efisien. Karena TRANSAKSI-tion berkomitmen, proses LGWR segera
mencatat transaksi dalam file online redo log.
Proses server mengirimkan pesan keberhasilan / kegagalan seluruh jaringan ke aplikasi.
Selama ini, latar belakang lainnya proses-proses berjalan, menonton untuk kondisi yang memerlukan intervensi.
Selain itu, server Oracle mengelola transaksi pengguna lain 'dan mencegah pertentangan antara transaksi yang
meminta data yang sama.
Bab Ringkasan
Client-server arsitekturmengacu pada cara di mana komponen software berinteraksi. Ada klien proses
yang membutuhkan beberapa sumber daya, dan server yang menyediakan sumber daya. Dalam model
two-tier, klien menangani user interface dan logika bisnis pengolahan dan server menangani fungsi
database. Dalam lingkungan Web, model two-tier tradisional telah digantikan oleh model tiga-tier, yang
terdiri dari lapisan pengguna antar-muka (klien),logika bisnis dan lapisan data processing
(serveraplikasi),dan DBMS (databaseserver),yang tersebar di mesin yang berbeda.
Arsitektur three-tier dapat diperpanjang untuk n tingkatan, akan tingkatan tambahan yang
ditambahkan untuk memberikan lebih banyak fleksibilitas dan skalabilitas.
Middleware adalah perangkat lunak komputer yang menghubungkan komponen perangkat lunak
atau aplikasi. jenis middleware termasuk RPC (sinkron dan asinkron), mempublikasikan /
berlangganan, pesan-berorientasi middleware (MOM), broker objek permintaan (ORB), dan database
middleware.
layanan Web adalah sistem software yang dirancang untuk mendukung interaksi interoperable
mesin-ke-mesin melalui jaringan. Mereka didasarkan pada standar seperti XML, SOAP, WSDL, dan
UDDI.
Service-Oriented Architecture(SOA)adalah sebuah arsitektur software-centric bisnis untuk
membangun aplikasi yang menerapkan proses bisnis sebagai set layanan diterbitkan pada granularity
yang relevan dengan konsumen layanan.
Cloud computing adalah model untuk memungkinkan di mana-mana, nyaman, akses jaringan on-
demand untuk bersama pool sumber daya komputasi dikonfigurasi (misalnya, jaringan, server,
penyimpanan, aplikasi, dan layanan) yang dapat dengan cepat ditetapkan dan dirilis dengan upaya
manajemen yang minimal atau interaksi penyedia layanan. Tiga model layanan utama adalah: Software
as a Service (SaaS), Platform as a Service (PaaS), dan Infrastruktur sebagai Layanan (IaaS). Solusi
database berbasis cloud jatuh ke dalam dua kategori dasar: Data sebagai Service (DaaS) dan Database
sebagai Service (DBaaS).
A Transaction Processing (TP) Monitor adalah sebuah program yang mengontrol transfer data
antara klien dan server untuk menyediakan lingkungan yang konsisten, terutama untuk proses
transaksi online (OLTP). Keuntungan meliputi routing yang transaksi, transaksi terdistribusi, load
balancing, menyalurkan, dan peningkatan kehandalan.
CHAPTER 4
Model Relasional
Bab Tujuan
Dalam bab ini Anda akan belajar:
Asal-usul model relasional
Terminologi dari model relasional
Bagaimana tabel digunakan untuk merepresentasikan data.
Hubungan antara hubungan matematika dan hubungan dalam relasional model.
Sifat hubungan database.
Bagaimana mengidentifikasi kandidat, primer, alternatif, dan kunci asing.
Yang dimaksud dengan integritas entitas dan integritas referensial.
Tujuan dan keuntungan dari pandangan dalam sistem relasional.
Sistem Manajemen Database Relasional (RDBMS) telah menjadi perangkat lunak pengolahan data yang
dominan digunakan saat ini, dengan perkiraanpenjualan lisensil baru
DBMSrelasional meskipun,tegasnya, bukankonsep darimodel relasional perse.
Ke depan, dalam Bab 5 dan 6 kita memeriksa SQL (Structured Query Language), bahasa formal dan de
facto standar untuk RDBMSs, dan dalamBab 7 kita meneliti QBE
sebagai berikut:
normalisasi
4.2 Terminologi
Contoh dari
Cabang dan Staf
hubungan.
hjhjhjhjh
Degree
Primary key
Foreign key
staff
Tuple Tuple adalah baris dari relasi.
pada kesesuaian ini sebagai normalisasi. Kami menundapembahasan normalisasi sampai Bab
13 dan 14.
Alternatif Terminology
S ={(2, 1)}
D1 D2 D3 {(1, 2, 5), (1, 2, 6), (1, 4, 5), (1, 4, 6), (3, 2, 5), (3, 2, 6), (3, 4, 5), (3, 4, 6)}
D1 D2 . . . Dn {(d1, d2, . . . , dn) d1 ∈D1, d2 ∈D2, . . . , dn ∈Dn}
X Di
I=1
Lihat A1, A2, . . . . ., An menjadi atribut dengan domain D1, D2, . . . ., Dn . Kemudian set
{A1:D1, A2:D2, . . . An:Dn} adalah sebuah skema relasi . Sebuah relasi R didefinisikan oleh
fisikseperti relasi.
{(Nolabel: B005, Jalan: 22 Deer Rd, Kota: London, kode pos: SW1 4EH)}
database relasional, atau hanya skema relasional,R, sebagai:
identifikasiunik.
Foreign Key Atribut , atau set atribut , dalam satu hubungan yang cocok dengan kunci kandidat
dari beberapa (mungkin sama ) hubungan .
Gambar 4.3
Instance dari DreamHome sewa database.
BRANCH
STAFF
Noproper Jalan Kota kodePos Tipe uuang Sewa Nopemilik Nostaff nocabang
ti
PA14 16 Holhead Aberdeen AB75SU House 6 650 CO46 SA9 B007
PL94 6 Agryll set London NW2 Flat 4 400 CO87 SL41 B005
PG4 6 Lawrence St Glasgow G119QX Flat 3 350 CO40 B003
PG36 2 Manor Rd Glasgow G32 4QX Flat 3 375 CO93 SG37 B003
PG21 18 dale Rd Glasgow G12 House 5 600 CO87 SG37 B003
PG16 5 Novar dr Glasgow G12 9AX Flat 4 450 C093 SG14 B003
KLIEN
VIEWING
REGISTRASI
Klien (Noklien, fnama, lnama, telNo, prefTipe, maxsewa)
PrivateOwner (ownerNo, fname, lname, alamat, telNo)
manipulasirelasional.
Kita telah melihat contoh dari kendala integritas dalam Bagian 3.2.1: karenasetiap
atribut memiliki domain terkait, ada kendala (disebut kendala domain) yang terbentuk
4.3.1 NULLS
4.3.3 Integritas referensial
Intergritas referensial Jika kunci asing ada dalam hubungan , baik nilai kunci asing harus sesuai
dengan nilai candidate key dari beberapa tuple dalam kaitannya rumah atau
nilai foreign key harus sepenuhnya nol .
4.4 Tampilan
4.4.1 Terminology
Basis Hubungan Suatu relasi bernama sesuai dengan entitas dalam skema konseptual , yang tupel secara
fisik disimpan dalam database
Kita dapat menentukan pandangan dalam hal hubungan dasar
lebih terinci.
RINGKASAN
Sistem Manajemen Database Relasional (RDBMS) telah menjadi perangkat lunak pengolahan data
yang dominan digunakan saat ini, dengan perkiraan penjualan lisensi baru antara US $ 6 miliar dan US
$ 10 miliar per tahun (US $ 25 miliar dengan penjualan alat-alat termasuk). Software ini merupakan
generasi kedua dari DBMS dan didasarkan pada model data relasional diusulkan oleh EF Codd.
Suatu relasi matematika adalah subset dari Cartesian produk dari dua atau lebih set. Dalam istilah
database, relasi adalah setiap subset dari Cartesian produk dari domain dari atribut. Suatu relasi
biasanya ditulis sebagai satu set n-tupel, di mana setiap elemen dipilih dari domain yang sesuai.
Hubungan n secara fisik direpresentasikan sebagai tabel, dengan baris sesuai dengan tupel individu dan
kolom untuk atribut.
Struktur dari relasi, dengan spesifikasi domain dan kendala lainnya, adalah bagian dari kehebatan dari
database, sementara hubungan dengan semua tupel yang ditulis merupakan turunan atau perpanjangan
database.
Sifat hubungan database: setiap sel berisi tepat satu nilai atom, nama-nama atribut nilai atribut yang
berbeda, berasal dari domain yang sama, urutan atribut tidak penting, urutan tuple tidak material, dan
ada
yang tidak ada duplikat tupel.
Tingkat relasi adalah jumlah atribut, sedangkan kardinalitas adalah jumlah tuple. Suatu relasi unary
memiliki satu atribut, hubungan biner memiliki dua, hubungan terner memiliki tiga, dan relasi n-ary
memiliki atribut n.
Sebuah superkey adalah atribut atau himpunan atribut, yang mengidentifikasi tupel dari relasi unik,
sementara candidatekey adalah superkey minimal. Kunci utama adalah kunci kandidat yang dipilih
untuk digunakan dalam identifikasi tupel. Suatu relasi selalu harus memiliki kunci primer. Kunci asing
adalah atribut atau himpunan atribut, dalam satu relasi yang merupakan kunci kandidat relasi lain.
Sebuah nol merupakan nilai atribut yang tidak diketahui pada saat ini atau tidak berlaku untuk tupel
ini. integritas Badan n merupakan kendala yang menyatakan bahwa dalam hubungan dasar tidak ada
atribut dari primary key dapat null. Referensial integritas menyatakan bahwa nilai-nilai kunci asing
harus sesuai dengan nilai calon kunci dari beberapa tuple dalam relasi rumah atau menjadi sepenuhnya
null. Selain integritas relasional, kendala integritas meliputi, data yang dibutuhkan, domain, dan
kendala banyaknya; batasan integritas lain disebut kendala umum.
Tampilan dalam model relasional adalah hubungan virtual atau turunan yang dibuat secara dinamis dari
hubungan dasar yang mendasari (s) bila diperlukan.Tampilan memberikan keamanan dan
memungkinkan desainer untuk menyesuaikan model pengguna. Tidak semua pandangan ini dapat
diupdate.