Sistem Katalog – Catalog System
IKI20410 – Basis Data
Fanny Santosa & Aniati Murni
Fakultas Ilmu Komputer
Universitas Indonesia
2
Database System ArchitectureApakah Catalog SystemCatalog System dari RDBMSImplementasi Catalog SystemInformasi yang disimpan didalam Catalog SystemInteraksi modul RDBMS, pemakai RDBMS, dengan Catalog System
Elmasri Bab 17
TOPIK PEMBAHASAN
Centralized DBMS Architecture
Sistem komputer terdiri dari suatu komputermain 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 Display … Displaymonitor monitor monitor Terminal
NetworkApplication Terminal TextPrograms display control editor
DBMS CompilersSOFTWARE
Operating System
CPU System busMemory DiskControllers I/O devices
HARDWARE/FIRMWARE
Client-Server DBMS Architecture
Terminal sudah diganti dengan PC yang merupakan intelligent machine yang dapat melakukan local processingTerdapat file server, data server, print server dan DBMS server yang bekerja bila ada client program yang ingin berkomunikasi dengan DBMSContoh 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
8
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 Constraint Enforcer, Security Administrator
Katalog
9
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
Data Dictionary System atau Information/Data Repositories
10
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 antar perancang
Passive vs ActiveData Dictionary
11
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 user dan transaksi
Data Dictionary System (1)
12
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
Data Dictionary System (2)
13
Integrity constraints didefinisikan oleh database designer pada tahap perancangan databaseContoh 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.
Integrity Constraints
14
Misal suatu data item mempunyai data type INTEGER dan batas harga antara 1 s/d 5Integrity Constraint Enforcer: melakukan pemeriksaan ketika proses DATA ENTRY pada setiap pemasukan record dengan data item tersebutPemeriksaan 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 bisa terdeteksi sampai mahasiswa komplain.
Integrity Constraints Enforcer
15
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 Pembimbing Akademis.
Bentuk Integrity Constraint Violation
16
Sysdatabases(Tabel Database)– name : nama database
– dbid : id database
– suid : server userid dari pembuat database
– crdate : creation date
Sysobjects(Tabel Object)– name : nama object (tabel procedure, view, …)
– id : id object
– uid : userid dari pembuat tabel
– type : jenis object
Contoh Isi Katalog (1)
17
Sysusers(Tabel User / Pemakai)– suid : server userid
– uid : user id
– gid : group id
– name : user name
Sysindexes(Tabel Indeks)– name : nama indeks
– id : id tabel
– key1 : deskripsi kolom key1
– key2 : deskripsi kolom key2
Contoh Isi Katalog (2)
18
Merupakan sebuah minidatabase
Data disimpan dalam bentuk relasi
Informasi diakses melalui DBMS routing: seperti retrieve dan update.
Implementasi Sistem Katalog (1)
19
Contoh Relasi KatalogREL_AND_ATTR_CATALOG
REL_NAME ATTR_NAME ATTR_TYPE MEMBER_OF_PK MEMBER_OF_FK FK_RELATION
EMPLOYEE FNAME VSTR15 no no
EMPLOYEE SSN STR9 yes no
EMPLOYEE DNO INTEGER no yes EMPLOYEE
DEPARTMENT DNAME VSTR10 no no DEPARTMENT
DEPARTMENT DNUMBER INTEGER yes no
DEP_LOC DNUMBER INTEGER yes yes
Dst.nya
Implementasi Sistem Katalog (2)
20
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
Informasi Sistem Katalog (1)
21
Security and Authorization:
–Users’ authorization
–Creator / owner dari setiap relasi
Informasi Sistem Katalog (2)
22
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 di-
update secara otomatis oleh DBMS
Informasi Sistem Katalog (3)
23
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
Interaksi Sistem Katalog (1)
24
Database Application EndAdministrator Programmers Users
HUMAN INTERFACESDATA DICTIONARY
SOFTWARE ANDDBMS INTERFACES
Security and QueryAuthorization Optimizer
SubsystemCompilers/ Application Integrity
Precompilers Programs / Report ConstraintGenerators Enforcer
Interaksi Sistem Katalog (2)
25
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
sesuai dengan tabel-tabel yang ada.
Penggunaan Katalog oleh DBMS (1)
26
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)
Penggunaan Katalog oleh DBMS (2)
27
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
Penggunaan Katalog oleh DBMS (3)
28
Dengan memberikan query SELECT ke tabel-tabel di katalog– Contoh:
Select* from sysdatabases
Select* from sysobjects
Select* from syscolumns
DBA dapat mengubah informasi pada sejumlah tabel katalog secara langsung
Melihat Informasi Katalog
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
31
CREATE VIEW nama_view AS SELECT select_clause
CREATE VIEW Peg_Edp AS SELECT* FROM Pegawai WHERE Unit=“EDP”
Membuat View
32
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.
Akses Isi View
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 SQLJDBC 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 attributesModel 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