Sistem Katalog – Catalog System

advertisement
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 (?,?)}” );
Download