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
1
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
Terminal
Network Application Programs
Terminal display control
Text editor
DBMS
Compilers
SOFTWARE Operating System CPU Memory Controllers
System bus Disk I/O devices
HARDWARE/FIRMWARE
2
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
3
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
4
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
5
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
6
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.
7
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
8
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
9
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
10
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
11
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
12
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
13
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
14
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
15
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
16
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
17
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 (?,?)}” );
18