[Summary] Sistem Informasi Perusahaan Chapter 6 I. Bisnis QUERYING RELATIONAL DATABASES membutuhkan banyak informasi dalam menentukan pengambilan keputusan. Informasi bisa didapatkan dari berbagai data namun beberapa data bisa diagregasi dalam berbagai bentuk. Karena data disimpan dalam beragam format sesuai dengan kebutuhan, maka dibutuhkan skill tertentu untuk bisa secara efektif memanipulasi data. Beberapa ketentuan yang dibutuhkan untuk menghasilkan sebuah informasi yang baik yaitu pertama sumber data harus didesain dengan baik.. Kedua , data harus dibuat oleh ahli atau orang yang memiliki pengetahuan baik bagaimana memanipulasi data dan yang terakhir pemanipulasi data harus mengetahui output dari hasil olahan data. Beberapa bahasa manipulasi data akan dijelaskan selanjutnya. RELATIONAL ALGEBRA (Aljabar relasional) Aljabar relasional adalah sebuah bahasa query prosedural yang terdiri dari sekumpulan operasi dimana masukkannya adalah satu atau dua relasi dan keluarannya adalah sebuah relasi baru sebagai hasil dari operasi tersebut. Tiga operator utamanya adalah select, project dan join. Operator ini nantinya akan membantu dalam memanipulasi tabel relational database. Project merupakan subset vertikal dari tabel, sementara select merupakan subset tabel horizontal. JOIN, adalah operator yang menggabungkan hubungan antar operator aljabar Project dan Select. Project Example Di dalam contoh ini, Operasi Proyeksi menggambarkan suatu relasi yang berisi hanya Atribut Staff yang ditunjuk staff number, first Name, last name, dan salary di dalam order yang ditetapkan itu. Hasil dari operasi ini diperlihatkan pada gambar : Staff number First Name Last Name Salary SL21 SG37 SG14 SA9 SG5 SL41 John Ann David Mary Susan Julie White Beech Ford Howe Brand Lee 30000 12000 18000 9000 24000 9000 Operasi Proyeksi bekerja pada relasi tunggal R dan menggambarkan suatu relasi yang berisi suatu subset vertikal dari atribut yang ditetapkan dan mengeliminir salinan. Select Example Di sini, relasi masukan adalah staff dan predikat adalah gaji (salary) > 10000. Operasi select menggambarkan suatu relasi hanya berisi Staff itu tuples dengan suatu gaji lebih besar dari £ 10,000. Hasil dari operasi ini ditunjukkan pada gambar. Staff Number First Name Last Name SL21 SG37 SG14 John Ann David White Beech Ford SG5 Susan Brand position Sex DOB salary Branch Manager Assistant Superviso r Manager M F M 1-Oct-45 10-Nov-60 24-Mar58 3-Juni-40 30000 12000 18000 B005 B003 B003 24000 B003 F Daftar semua staff dengan suatu gaji lebih besar dari£10,000 σ salary > 10000 (Staff) Join Example Operasi Join, yang dikombinasikan dua relasi untuk membentuk suatu relasi baru, adalah salah satu dari operasi yang penting di dalam algebra/aljabar relasional. Operasi join terdiri dari dua maksudnya: 1. Inner join (atau equi-join) Hanya mengikutsertakan records dari kedua tabel yang memiliki nilai yang sama pada field yang digabungkan. Client Number First Name Last Name Viewing.client Number Property Number CR76 CR76 CR76 CR76 CR76 CR56 CR56 CR56 CR56 CR56 CR74 CR74 CR74 CR74 CR74 CR62 CR62 CR62 CR62 CR62 John John John John John Aline Aline Aline Aline Aline Mike Mike Mike Mike Mike Mary Mary Mary Mary Mary Kay Kay Kay Kay Kay Stewart Stewart Stewart Stewart Stewart Ritchie Ritchie Ritchie Ritchie Ritchie Tregar Tregar Tregar Tregar Tregar CR56 CR76 CR56 CR62 CR56 CR56 CR56 CR76 CR62 CR56 CR56 CR76 CR56 CR62 CR56 CR56 CR76 CR56 CR62 CR56 PA14 PG4 PG4 PA14 PG36 PA14 PG4 PG4 PA14 PG36 PA14 PG4 PG4 PA14 PG36 PG14 PG4 PG4 PA14 PG36 Client.clientNo fName lName Viewing.clientNo propertyNo CR76 CR56 CR56 CR56 CR76 John Aline Aline Aline Mary Kay Stewart Stewart Stewart Tregar CR76 CR56 CR56 CR56 CR62 PG4 PA14 PG4 PG36 PA36 (Π clientNo,fName, Name(Client)) (Π clientNo, propertyNo, comment(Viewing)) Result ← TempClient TempViewing Client Number First Name Last Name Viewing.client Property Number Number CR76 CR56 CR56 CR56 John Aline Aline Aline Kay Stewart Stewart Stewart CR76 CR56 CR56 CR56 2. PG4 PA14 PG4 PG36 Outer join Mengikutsertakan semua records dari satu tabel, dan mencocokkan records dari tabel lain yang nilai pada field yang digabungkannya adalah sama. Client Number View Date PropertyNo Street city PA14 16 Holhead Aberdeen CR56 PA14 16 Holhead Aberdeen CR62 PL94 PG4 London Glasgow Null CR76 Glasgow CR56 PG36 6 Argyl St 6 Lowerence St 6 Lowerence St 2 Manor Rd Glasgow CR56 PG21 18 Dale Rd Glasgow Null 24-May01 14-May01 Null 20-Apr01 26-May01 28-Apr01 Null PG16 5 Novar Dr Glasgow Null Null PG4 Contoh left outer join II. STRUCTURED QUERY LANGUAGE Meskipun aljabar relasional (relational algebra) dikembangkan sebagai bagian dari model relasional, tapi itu bukan data manipulation language yang paling umum digunakan saat ini. Salah satu kelemahan dari aljabar relasional (relational algebra) adalah bahwa setiap operator harus diselesaikan dalam query yang terpisah. Yang artinya, proyeksi dan seleksi tidak dilakukan dalam query yang sama atau untuk mudahnya berarti dua pertanyaan yang perlu dilakukan untuk mencapai dua operasi. Structured Query Language (SQL) dikembangkan untuk memungkinkan kinerja beberapa operasi dalam satu query. Dipercaya juga bahwa penggunaan format standar untuk setiap query akan menyederhanakan tugas pembangunan query, yang telah terbukti sangat sulit bagi banyak pengguna. Untuk aljabar relasional, pengguna harus belajar syntax yang berbeda untuk masing-masing dari berbagai operator aljabar relasional (termasuk tiga yang telah kita bahas serta beberapa orang lain). Dalam SQL, setiap query pencarian informasi mengikuti, sintaks yang telah ditetapkan terstruktur sebagai berikut: a. SELECT – Attribute name(s) b. FROM – Table name(s) c. WHERE – Condition criteria is met; Perlu pernyataan diperhatikan SQL sangat bahwa titik penting koma jika (semicolon) sistem yang pada akhir digunakan memungkinkan pernyataan lebih dari satu SQL yang akan dieksekusi dalam panggilan yang sama ke server database. Jika hal itu dibiarkan, pertanyaan tidak akan dieksekusi. Sebagian besar relational database software packages saat ini secara otomatis menempatkan titik koma pada akhir pernyataan untuk membantu menghindari kesalahan syntax yang mungkin terjadi saat itu hilang. Untuk beberapa permintaan tidak setiap komponen dalam syntax ini diperlukan, dan untuk pertanyaan lain komponen tambahan harus disertakan, tetapi secara umum setiap pernyataan SQL harus sesuai dengan format ini. Meskipun sebagian besar perusahaan dan sebagian besar paket perangkat lunak database tidak menggunakan langsung syntax aljabar relasional, akan sangat membantu ketika query digunakan untuk mempertimbangkan tiga operator aljabar relasional utama dan menentukan bagaimana menyelesaikannya, entah menggunakan SQL ataupun QBE. Untuk memulai kita meneliti bagaimana pemilihan, proyeksi, dan bergabung operator yang dicapai dalam SQL. Relational Algebra Operator SQL Statement Component(s) PROJECT SELECT attribute name(s) SELECT WHERE criteria are met FROM table names JOIN WHERE posted key field data values match TABLE 7-1. Correspondence of Relational Algebra Operators and SQL Statement Components Komponen pertama dari setiap pernyataan SQL (yaitu, SELECT komponen) menentukan mana atribut harus dimasukkan dalam jawaban atas pertanyaan tersebut. Ingat bahwa atribut adalah kolom tabel. Jadi komponen ini pernyataan SQL menyelesaikan operator proyeksi relasional aljabar. Komponen kedua dari setiap pernyataan SQL (yaitu, FROM komponen) menentukan tabel yang berisi data yang akan disertakan dalam jawabannya. Jika hanya ada satu meja, komponen ini dari pernyataan SQL hanya mengidentifikasi tabel yang itu. Jika beberapa tabel yang diperlukan untuk memenuhi permintaan informasi, komponen ini membantu untuk mencapai aljabar relasional JOIN operasi (tetapi tidak mencapai bergabung tanpa komponen berikutnya). Komponen ketiga dari pernyataan SQL dapat melayani dua tujuan. Dalam kombinasi dengan FROM komponen, hal ini membantu untuk mencapai aljabar relasional JOIN dengan menentukan kolom untuk dua tabel yang bergabung harus memiliki nilai yang sama. Atau komponen WHERE menentukan kriteria yang harus dipenuhi oleh catatan dalam rangka untuk dimasukkan dalam jawabannya. Dengan demikian komponen WHERE dari pernyataan SQL menyelesaikan operator pilihan aljabar relasional. PROJECT Example Pertanyaan pertama yang dihasilkan daftar nama karyawan dan nomor telepon yang akan digunakan untuk pohon telepon darurat. Query hanya dibutuhkan operator proyeksi saja. Dalam SQL query dinyatakan sebagai berikut: SELECT – LastName; FirstName, Telephone FROM – Employee; Perhatikan bahwa ketika kita tidak mencoba untuk menyelesaikan aljabar relasional JOIN maupun aljabar relasional SELECT operator, tidak ada kriteria yang harus dipenuhi sehingga tidak ada komponen WHERE dalam pernyataan. SELECT Example Permintaan kedua kami diformulasikan dengan aljabar relasional adalah daftar karyawan (termasuk semua atribut) yang upah kurang bahwa $ 15 per jam. Query ini diperlukan relasional Operator pilihan aljabar tapi tidak ada proyeksi atau bergabung operator. Pernyataan SQL untuk query ini adalah sebagai berikut: SELECT – * FROM – Employee WHERE – PayRate <15.00; Perhatikan bahwa tanda bintang (*) adalah simbol wildcard dan hanya memberitahu database software package untuk memasukkan semua atribut dalam hasil query. Combining SELECT and PROJECT in SQL Perlu diperhatikan bahwa sangat mudah untuk menggabungkan operator relational algebra selection dengan operator proyeksi dalam sebuah pernyataan SQL tunggal. Katakanlah sebuah perusahan ingin mengambil nama dan nomor telepon dari karyawan yang memiliki upah kurang dari $15 sehingga perusahaan bisa menelepon karyawan untuk memberitahu mereka kalau mereka mendapatkan biaya kenaikan hidup. Berikut pernyataan SQL menyelesaikan semuanya dua pernyataan sebelumnya itu. SELECT – LastName, FirstName, Telephone FROM – Employee WHERE – PayRate <15.00; III. JOIN EXAMPLES JOIN operation pada SQL sama dengan JOIN statement pada algebra. Operasi ini digunakan untuk mendapatkan informasi gabungan. Statementnya adalah: SELECT * FROM Employee, Department WHERE Employee.DeptID=Department.DepartmentID Dalam contoh agebra, kita harus mengeksekusi query kedua untuk memenuhi PROJECT operation. SQL statement dapat diubah untuk memenuhi JOIN dan PROJECT hanya dalam satu query, seperti: SELECT LastName, FirstName, Name FROM Employee, Department WHERE Employee.DeptID=Department.DepartmentID Perlu diingat bahwa dalam relational algebra kita harus menggunakan dua query terpisah untuk memenuhi dua operasi berbeda. Namun pada SQL kita mengombinasikan keduanya dalam satu query. Untuk menentukan apakah sebuah JOIN harus menjadi outer join (untuk mengambil seluruh data pada table yang tidak ada sebelumnya dalam table gabungan), syntax perlu bervariasi. Outer JOIN harus dispesifikasi sebagai Left Join maupun Right Join pada klausa From dalam SQL statement. Penggunaan kanan atau kiri tergantung pada informasi yang kita inginkan pada SQL statement tersebut. Contoh: SELECT DeptName, LastName, FirstName, Name FROM Department LeftJoin Employee On Department.DepartmentID=Employee.DeptID Klausa lain kita butuhkan untuk memenuhi query lain untuk pengambilan keputusan. Misalnya, kita membutuhkan kemampuan untuk menghitung jumlah berdasarkan bidang pada database, lebih baik kita tidak menyimpan derivable attributes yang nilainya dapat berubah jika dimasukkan data baru. Using Mathematical, Special Comparison, and Logical Operators in SQL Queries Operator Komparasi Matematis terkadang dibutuhkan sebagai kriteria dimana nilai data dipilih untuk dicantumkan dalam hasil query. Contoh operator komparasi matematis adalah: = sama dengan < kurang dari > lebih dari <= kurang dari sama dengan >= lebih dari sama dengan <> tidak sama dengan (dalam beberapa software di notasikan dengan !) Operator komparasi tersebut dapat diaplikasikan pada berbagai tipe bidang. Karena operator komparasi membantu dalam memisahkan beberapa baris, maka operator tersebut terdapat pada WHERE clause dari SQL statement. Contoh, SELECT * FROM Employee WHERE PayRate < 15.00. Operator komparasi special diantaranya adalah BETWEEN, yang mengidentifikasi permintaan dalam range nilai tertentu. Penggunaanya sama seperti penggunaan kombinasi dari kurang dari atau lebih dari. Contoh: WHERE SaleDate >=6/1/2005 AND SaleDate <=6/30/2005 atau dapat dituliskan dengan: WHERE Sale Date BETWEEN 6/1/2005 and 6/30/2005 Selain itu, terdapat operasi IS NULL, yang mengidentifikasi permintaan dimana nilai atribut tidak ada. Sebaliknya, EXIST mengidentifikasi permintaan dimana nilai atribut ada. Queries dapat mengandung logical operator, yang dikenal dengan operator pencari Boolean, seperti AND, OR, dan NOT. AND menunjukkan intersepsi, OR menunjukkan seperangkat union, sedangkan NOT mengidentifikasi permintaan yang tidak memenuhi satu atau lebih kondisi. Using Calculation and Aggregation Function in SQL Queries Terdapat dua jenis kalkulasi yang dibutuhkan dalam queries. Salah satunya adalah menggunakan operasi matematika seperti rata-rata atau jumlah dari nilai pada satu kolom. Perhitungan dalam kolom adalah aggregation function. Untuk menghitung rata-rata, dapat menggunakan perintah AVG didepan field name pada SELECT clause. Contoh: SELECT AVG(PayRate) FROM Employee Aggregation function lainnya adalah SUM (jumlah), MAX (nilai terbesar), MIN (nilai terkecil), dan COUNT (menghitung banyak data pada kolom). Untuk mengelompokkan data yang dihitung berdasarkan kombinasi tertentu, dapat digunakan perintah GROUP BY yang ditambahkan setelah komponen WHERE. Contoh: SELECT Date, SUM(Amount) FROM Sale GROUP BY Date Jenis perhitungan lain yang dibutuhkan dalam queries adalah perhitungan matematis menggunakan nilai data dari dua bidang dalam informasi. Misalkan, ingin mengetahui hubungan Inventory. Maka digunakan formula seperti berikut: SELECT QtySold*UnitSellPrice As SaleLineExtension FROM Stockflow antara Sale dan VI. Query by example (QBE) in MS Access • Suatu interface yang dikembangkan agar query dapat dilakukan dengan lebih mudah (point-click) • Pengguna tidak harus mempelajari kode SQL untuk melakukan query, program MS Access mampu memberikan jawaban semestinya • Namun demikian pada saat membuat suatu query, harus dipahami apa yang akan dihasilkan oleh berbagai elemen QBE interface yang berbeda – bila pertanyaannya salah jawabannya akan salah MS Access juga menyediakan SQL View Contoh Penggunaan MS Access : Relational Algebra Cash Receipts from Customer C-2 SELECT in QBE Relational Algebra “Select” QBE Example: Cash Receipts from Customer C-2 Relational Algebra SELECT in QBE SELECT in QBE Cash Receipts from Customer C-2 Relational Algebra Cash Receipts from Customer C-2 Relational Algebra Cash Receipts from Customer C-2 SELECT in QBE Familiarization with Data Base • Relational Algebra Inner Join For Instance; All details of customers and their salespeople in QBE: Kesimpulan: • SDM sebagai operator pemograman ini, idealnya familiar terhadap design view dalam Ms Access karena setiap data akan mempunyai relasi yang memiliki nilai informasi untuk pengambilan keputusan suatu entitas. Oleh: 1. 2. Dewi Indira – 1206214734 Eva Septiana – 1206215283 - 3. Fahmi Muhammad – 1206246130 4. 5. Fatimah Shafiyyah -1206215485 – Yudhistira Kurniadi – 1206215390 -