Sistem Katalog – Catalog System - Website Staff...

35
Sistem Katalog – Catalog System IKI20410 – Basis Data Fanny Santosa & Aniati Murni Fakultas Ilmu Komputer Universitas Indonesia

Transcript of Sistem Katalog – Catalog System - Website Staff...

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

Procedure and Function Calls in JDBC (Sumber: Silbershatz)

JDBC provides a class CallableStatementwhich allows SQL stored procedures/functions to be invoked.

CallableStatement cs1 = conn.prepareCall( “{call proc (?,?)}” ) ;

CallableStatement cs2 = conn.prepareCall( “{? = call func (?,?)}” );