Sistem Katalog – Catalog System IKI20410 – Basis Data Fanny Santosa & Aniati Murni Fakultas Ilmu Komputer Universitas Indonesia TOPIK PEMBAHASAN Database System Architecture Apakah Catalog System Catalog System dari RDBMS Implementasi Catalog System Informasi yang disimpan didalam Catalog System Interaksi modul RDBMS, pemakai RDBMS, dengan Catalog System Elmasri Bab 17 2 Centralized DBMS Architecture Sistem komputer terdiri dari suatu komputer main frame dan terminal untuk users. Konfigurasi centralized berawal dari teknologi terminal yang merupakan dumb machine yang hanya bisa untuk display dan tidak bisa untuk processing. Main frame processor berfungsi melaksanakan application programs, user interface programs, dan melaksanakan fungsi-fungsi database. Centralized DBMS Architecture Display monitor Display monitor … Display monitor Network Application Programs Terminal display control Text editor DBMS Compilers SOFTWARE Operating System CPU Memory Controllers HARDWARE/FIRMWARE System bus Disk I/O devices Terminal Client-Server DBMS Architecture Terminal sudah diganti dengan PC yang merupakan intelligent machine yang dapat melakukan local processing Terdapat file server, data server, print server dan DBMS server yang bekerja bila ada client program yang ingin berkomunikasi dengan DBMS Contoh standar: ODBC dan JDBC yang mempunyai API (Application Programming Interface) Client-Server DBMS Architecture Diskless Client Client with Disk Server Server and Client Site 1 Site 2 Site 3 Site 4 Communication Network Schemas, Catalogs, and Environments (Sumber: Silbershatz) Three-level hierarchy for naming relations. – Database contains multiple catalogs – each catalog can contain multiple schemas – SQL objects such as relations and views are contained within a schema e.g. catalog.bank-schema.account Each user has a default catalog and schema, and the combination is unique to the user. Default catalog and schema are set up for a connection Katalog Merupakan suatu meta-database (sering disebut sebagai metadata): informasi mengenai basis data Informasi yang disimpan: schema basis data view, konseptual, dan fisikal; mapping antar skema pada level yang berbeda; informasi yang dibutuhkan oleh suatu model DBMS Merupakan bentuk khusus Data Dictionary Pengguna: user, DBA, Program Aplikasi, DDL compiler, DML compiler, Query Optimizer, Transaction Process, Report Generator, Integrity 8 Constraint Enforcer, Security Administrator Data Dictionary System atau Information/Data Repositories Merupakan istilah software utility yang lebih umum daripada catalog yang terkait langsung (closely coupled) dengan DBMS software. Merupakan suatu mini database yang mengelola (me-manage) metadata yang terdiri dari: – Deskripsi struktur basis data – Database constraint – Application – Authorization 9 Passive vs Active Data Dictionary Passive Data Dictionary: dapat digunakan oleh perancang, users, dan administrators Active Data Dictionary: selain itu juga dapat digunakan oleh database software Data dictionary sudah dapat digunakan semenjak proses perancangan. Dalam hal ini metadata sudah ada di data dictionary dan dapat digunakan sebagai alat komunikasi 10 antar perancang Data Dictionary System (1) Menyimpan dan mengelola: – Deskripsi schema – Informasi detil dari struktur penyimpanan secara fisik (file dan record) serta access path – Deskripsi dari database user, responsibility dan access right – High level deskripsi tentang database transaction dan applikasi dan relasi antara 11 user dan transaksi Data Dictionary System (2) Menyimpan dan mengelola: – Deskripsi relasi antara transaksi dengan data item yang digunakan pada transaksi tersebut. Informasi ini berguna bila ada perubahan data definition dimana secara langsung akan diketahui akibat pada transaksi yang mana – Data statistik frekwensi query / transaksi dan access count ke bagian tertentu dari database 12 Integrity Constraints Integrity constraints didefinisikan oleh database designer pada tahap perancangan database Contoh constraint: – Spesifikasi data type suatu data item NAMA misalkan merupakan string karakter alfabetik sepanjang 30 karakter – Suatu record pada suatu file mempunyai relasi dengan suatu record pada file lainnya, misal record SECTION mempunyai relasi dengan record COURSE. 13 Integrity Constraints Enforcer Misal suatu data item mempunyai data type INTEGER dan batas harga antara 1 s/d 5 Integrity Constraint Enforcer: melakukan pemeriksaan ketika proses DATA ENTRY pada setiap pemasukan record dengan data item tersebut Pemeriksaan tidak selalu berhasil, misal pada kasus: NILAI berharga A,B,C,D atau E. Bila data entry dengan nilai Z bisa terdeteksi, tapi pada kasus seharusnya A dimasukkan C tidak bisa14 terdeteksi sampai mahasiswa komplain. Bentuk Integrity Constraint Violation Disebut NOTIFICATION: Bila suatu data item indikator temperator melebihi suatu kondisi, maka sistem akan membunyikan alarm. Disebut ENFORCER: Bila suatu data item mempunyai nilai yang tidak sesuai dengan data type yang telah didefinisikan atau melebihi batas yang telah ditentukan, maka sistem akan menolak update atau pemasukan data tersebut. Disebut BUSSINESS RULE: Bila IPK < 2.00 maka akan ada warning yang disampaikan ke 15 Pembimbing Akademis. Contoh Isi Katalog (1) Sysdatabases(Tabel Database) – – – – name dbid suid crdate : nama database : id database : server userid dari pembuat database : creation date Sysobjects(Tabel Object) – – – – name id uid type : nama object (tabel procedure, view, …) : id object : userid dari pembuat tabel : jenis object 16 Contoh Isi Katalog (2) Sysusers(Tabel User / Pemakai) – – – – suid uid gid name : server userid : user id : group id : user name Sysindexes(Tabel Indeks) – – – – name id key1 key2 : nama indeks : id tabel : deskripsi kolom key1 : deskripsi kolom key2 17 Implementasi Sistem Katalog (1) Merupakan sebuah minidatabase Data disimpan dalam bentuk relasi Informasi diakses melalui DBMS routing: seperti retrieve dan update. 18 Implementasi Sistem Katalog (2) Contoh Relasi Katalog REL_AND_ATTR_CATALOG REL_NAME ATTR_NAME ATTR_TYPE MEMBER_OF_PK MEMBER_OF_FK EMPLOYEE EMPLOYEE EMPLOYEE DEPARTMENT DEPARTMENT DEP_LOC Dst.nya FNAME SSN DNO DNAME DNUMBER DNUMBER VSTR15 STR9 INTEGER VSTR10 INTEGER INTEGER no yes no no yes yes no no yes no no yes FK_RELATION EMPLOYEE DEPARTMENT 19 Informasi Sistem Katalog (1) Informasi yang ada: – Level View: • View – Level Konseptual: • Nama-nama relasi, attribut • Domain attribut • Primary Key, Secondary Key, Foreign Key attribut – Level Fisikal: • Storage structure and indexes 20 Informasi Sistem Katalog (2) Security and Authorization: – Users’ authorization – Creator / owner dari setiap relasi 21 Informasi Sistem Katalog (3) Sifat informasi pada katalog: – Frekwensi penggunaan data sangat tinggi • Akses terhadap katalog harus efisien – Perlu dikembangkan untuk dapat memuat data statistik untuk keperluan optimisasi – Perlu ditambahkan juga informasi untuk DBA dalam mengambil keputusan – Informasi tambahan ini harus bisa diupdate secara otomatis oleh DBMS 22 Interaksi Sistem Katalog (1) Pemakai DBMS dengan sistem katalog: – DBA, End Users, Programmer Modul DBMS dengan sistem katalog: – DDL compiler – DML & Query parser – DML & Query compiler – DML & Query optimizer – Authorization & Security checker – External – Conceptual Mapper 23 Interaksi Sistem Katalog (2) Database Administrator Application Programmers End Users HUMAN INTERFACES DATA DICTIONARY SOFTWARE AND DBMS INTERFACES Security and Authorization Subsystem Query Optimizer Compilers/ Precompilers Application Programs / Report Generators Integrity Constraint Enforcer 24 Penggunaan Katalog oleh DBMS (1) DDL (dan SDL) compiler – Schema database diproses dan diperiksa melalui DDL – Hasil deskripsi dalam catalog Parser Query dan DML compiler – Query, Perintah DML, dan perintah perubahan database di-parsed dan di-compiled – Nama-nama schema yang diacu akan dicocokkan dengan informasi yang ada di katalog – Referensi nama attribut dicocokkan apakah 25 sesuai dengan tabel-tabel yang ada. Penggunaan Katalog oleh DBMS (2) Compiler Query dan DML – Compiler akan mengubah Query dan perintah DML ke dalam perintah akses file tingkat rendah (fisik) – Pemetaan dari schema konseptual ke struktur file internal dilakukan melalui katalog Query dan DML Optimizer – Eksekusi Query dan DML terbaik dioptimisasi dengan menggunakan data katalog (jumlah rekord tabel-tabel yang memiliki indeks) 26 Penggunaan Katalog oleh DBMS (3) Pemeriksaan Authorization & Security – DBMS menggunakan katalog untuk memeriksa hak akses dari setiap pemakai pada setiap instruksi akses data Pemetaan perintah External ke Conceptual – Semua perintah yang dilakukan melalui view harus dipetakan ke skema conceptual yang berkaitan melalui katalog 27 Melihat Informasi Katalog Dengan memberikan query SELECT ke tabeltabel di katalog – Contoh: Select* from sysdatabases Select* from sysobjects Select* from syscolumns DBA dapat mengubah informasi pada sejumlah tabel katalog secara langsung 28 Contoh Melihat Informasi Catalog (1): Result Set MetaData (Sumber: Silbershatz) The class ResultSetMetaData provides information about all the columns of the ResultSet. Instance of this class is obtained by getMetaData( ) function of ResultSet. Provides Functions for getting number of columns, column name, type, precision, scale, table from which the column is derived etc. ResultSetMetaData rsmd = rs.getMetaData ( ); for ( int i = 1; i <= rsmd.getColumnCount( ); i++ ) { String name = rsmd.getColumnName(i); String typeName = rsmd.getColumnTypeName(i); } Contoh Melihat Informasi Catalog (2): Result Set MetaData (Sumber: Silbershatz) The class DatabaseMetaData provides information about database relations Has functions for getting all tables, all columns of the table, primary keys etc. E.g. to print column names and types of a relation DatabaseMetaData dbmd = conn.getMetaData( ); ResultSet rs = dbmd.getColumns( null, “BANK-DB”, “account”, “%” ); //Arguments: catalog, schema-pattern, table-pattern, column-pattern // Returns: 1 row for each column, with several attributes such as // COLUMN_NAME, TYPE_NAME, etc. while ( rs.next( ) ) { System.out.println( rs.getString(“COLUMN_NAME”) , rs.getString(“TYPE_NAME”); } There are also functions for getting information such as – Foreign key references in the schema – Database limits like maximum row size, maximum no. of connections, etc Membuat View CREATE VIEW nama_view AS SELECT select_clause CREATE VIEW Peg_Edp AS SELECT* FROM Pegawai WHERE Unit=“EDP” 31 Akses Isi View Dengan memberikan perintah SELECT ke nama View Update data melalui View tidak selalu dapat dilaksanakan. Umumnya hanya bisa dilakukan apabila View didefinisikan pada satu tabel dasar. 32 Procedural Extensions and Stored Procedures (Sumber: Silbershatz) SQL provides a module language – permits definition of procedures in SQL, with if-then-else statements, for and while loops, etc. Stored Procedures – Can store procedures in the database – then execute them using the call statement JDBC (Sumber: Silbershatz) JDBC is a Java API for communicating with database systems supporting SQL JDBC supports a variety of features for querying and updating data, and for retrieving query results JDBC also supports metadata retrieval, such as querying about relations present in the database and the names and types of relation attributes Model for communicating with the database: – Open a connection – Create a “statement” object – Execute queries using the statement object to send queries and fetch results – Exception mechanism to handle errors Procedure and Function Calls in JDBC (Sumber: Silbershatz) JDBC provides a class CallableStatement which allows SQL stored procedures/functions to be invoked. CallableStatement cs1 = conn.prepareCall( “{call proc (?,?)}” ) ; CallableStatement cs2 = conn.prepareCall( “{? = call func (?,?)}” );