Universitas Airlangga Pertemuan 1 Jumlah data yang sangat banyak Manfaat informasi Untuk memanfaatkan data yang sangat besar diperlukan alat yang memudahkan untuk mengatur data dan mengekstrak informasi
3 Basis Data 1. Koleksi data yang berkaitan. 2. Merepresentasikan beberapa aspek dari dunia nyata miniworld 3. Basis data dirancang, dibangun, dan diisi dengan data untuk tujuan spesifik. 4. Dapat dibangkitkan secara manual atau terkomputerisasi. Sistem Manajemen Basis Data 1. Aplikasi / perangkat lunak yang memfasilitasi proses definisi, konstruksi, manipulasi, berbagi, dan pemeliharaan basis data untuk keperluan beragam pengguna dan aplikasi. Basis data : kumpulan data yang saling berhubungan dan diorganisasi sedemikian rupa sehingga dapat dimanfaatkan kembali dengan mudah dan cepat.
Data : fakta-fakta dan angka-angka yang secara relatif tidak berguna bagi pemakai Teks (angka, huruf, simbol, dll) Gambar Suara Multimedia
Informasi : data yang sudah diolah dan diproses sehingga memiliki arti tertentu
DBMS (Database Management System) : perangkat lunak yang didesain untuk membantu memelihara dan memanfaatkan kumpulan data yang besar
Contoh : basis data universitas Entitas : mahasiswa, fakultas, dosen, mata kuliah, ruang kuliah Hubungan: mahasiswa melakukan registrasi, mahasiswa melakukan krs, dosen mengajarkan mata kuliah, penggunaan ruang untuk kuliah, dll
Collection of interrelated data Set of programs to access the data DBMS contains information about a particular enterprise DBMS provides an environment that is both convenient and efficient to use. Database Applications: Banking: all transactions Airlines: reservations, schedules Universities: registration, grades Sales: customers, products, purchases Manufacturing: production, inventory, orders, supply chain Human resources: employee records, salaries, tax deductions Databases touch all aspects of our lives
In the early days, database applications were built on top of file systems The system stores permanent records in various files, and it needs different application programs to extract records from, and add records to, the appropriate files. Drawbacks of using file systems to store data: Data redundancy and inconsistency Multiple file formats, duplication of information in different files Difficulty in accessing data Need to write a new program to carry out each new task Data isolation multiple files and formats Integrity problems Integrity constraints (e.g. account balance > 0) become part of program code Hard to add new constraints or change existing ones Drawbacks of using file systems (cont.) Atomicity of updates Failures may leave database in an inconsistent state with partial updates carried out E.g. transfer of funds from one account to another should either complete or not happen at all Concurrent access by multiple users Concurrent accessed needed for performance Uncontrolled concurrent accesses can lead to inconsistencies E.g. two people reading a balance and updating it at the same time Security problems Not every user of the database system should be able to access all the data. Database systems offer solutions to all the above problems 9 Sistem Basis Data Software untuk memproses query Software untuk mengakses data yang tersimpan Basis Data Software Sistem Manajemen Basis Data Aplikasi Pengguna / User 1. Definisi: menentukan tipe data, struktur data, constraint dat yang disimpan dalam basis data. 2. Konstruksi: proses penyimpanan data pada media penyimpanan yang dikendalian oleh SMBD. 3. Manipulasi: proses querying basis data, memperbarui basis data, membangkitkan laporan. 4. Berbagi: memungkinkan banyak pengguna dan program mengakses basis data secara konkuren. 5. Proteksi: perlindungan basis data dari malfungsi HW, SW dan perlindungan keamanan. 6. Pemeliharaan: SMDB memungkinkan sistem berevolusi sesuai dengan perubahan.
10 A. Self Describing Nature Suatu basis data berisi : 1. kumpulan data yang berkaitan, 2. deskripsi dan definisi lengkap mengenai data yang disimpan (meta data), 3. Constraint B. Insulation betwen Programs and Data Program-data independence. Program-operation independence. Abstraksi data Model Data C. Mendukung Berbagai Tampilan Data Banyak pengguna = banyak perspektif = banyak cara menampilkan data 11 D. Sharing of Data and Multi User Transaction Processing Basis data memungkinkan banyak pengguna mengakses basis data pada saat bersamaan Dibutuhkan concurrency control mekanisme pengubahan data berlangsung dengan benar, konsistensi data terjaga pada saat diakses secara bersamaan.
ON THE SCENE BEHIND THE SCENE 12 Database Administrator: mengelola autorisasi akses basis data, koordinasi dan monitor penggunaan, mengatur kebutuhan sumber data HW dan SW. Database Designer: bertanggung- jawab identifikasi data, struktur dan format data yang disimpan. End User: pekerja yang membutuhkan akses, query, baca, tulis terhadap basis data. Software Engineer DBMS System Designers & Implementers: merancang dan mengimplementasikan modul DBMS dan antarmukanya sebagai paket-paket SW. Tools developer: merancang dan mengimplementasikan paket SW yang memfasilitasi desain dan penggunaan sistem basis data. Operator and maintenance personnel: administrator yang bertanggungjawab terhadap operasional dan pemeliharaan HW dan SW di lingkungan sistem basis data. Mengendalikan redundansi Membatasi akses yang tidak berhak Struktur penyimpanan yang mendukung efisiensi query Menyediakan fasilitas backup dan recovery Menyediakan fasilitas multiple view Merepresentasikan hubungan kompleks antar data Memfasilitasi integrity constraint 13 Physical level describes how a record (e.g., customer) is stored. Logical level: describes what data are stored in database, and the relationships among the data. type customer = record name : string; street : string; city : integer; end; View level: application programs hide details of data types. Views can also hide information (e.g., salary) for security purposes. An architecture for a database system Similar to types and variables in programming languages Schema the logical structure of the database e.g., the database consists of information about a set of customers and accounts and the relationship between them) Analogous to type information of a variable in a program Physical schema: database design at the physical level Logical schema: database design at the logical level Instance the actual content of the database at a particular point in time Analogous to the value of a variable Physical Data Independence the ability to modify the physical schema without changing the logical schema Applications depend on the logical schema In general, the interfaces between the various levels and components should be well defined so that changes in some parts do not seriously influence others.
A collection of tools for describing data data relationships data semantics data constraints Entity-Relationship model Relational model Other models: object-oriented model semi-structured data models Older models: network model and hierarchical model Example of schema in the entity-relationship model E-R model of real world Entities (objects) E.g. customers, accounts, bank branch Relationships between entities E.g. Account A-101 is held by customer Johnson Relationship set depositor associates customers with accounts Widely used for database design Database design in E-R model usually converted to design in the relational model (coming up next) which is used for storage and processing Example of tabular data in the relational model customer- name Customer-id customer- street customer- city account- number Johnson
Smith
Johnson
Jones
Smith 192-83-7465
019-28-3746
192-83-7465
321-12-3123
019-28-3746 Alma
North
Alma
Main
North Palo Alto
Rye
Palo Alto
Harrison
Rye A-101
A-215
A-201
A-217
A-201 Attributes 22 TUJUAN PEMANFAATAN BASIS DATA 1. Kecepatan dan Kemudahan (Speed) Yakni agar pengguna basis data bisa: menyimpan data melakukan perubahan/manipulasi terhadap data menampilkan kembali data dengan lebih cepat dan mudah dibandingkan dengan cara biasa (baik manual ataupun elektronis). 2. Efisiensi Ruang Penyimpanan (Space) Dengan basis data kita mampu melakukan penekanan jumlah redundansi (pengulangan) data, baik dengan menerapkan sejumlah pengkodean atau dengan membuat relasi-relasi antara kelompok data yang saling berhubungan. Specification notation for defining the database schema E.g. create table account ( account-number char(10), balance integer) DDL compiler generates a set of tables stored in a data dictionary Data dictionary contains metadata (i.e., data about data) database schema Data storage and definition language language in which the storage structure and access methods used by the database system are specified Usually an extension of the data definition language Data manipulation is retrieval, insertion, deletion, modification of information stored in the database Language for accessing and manipulating the data organized by the appropriate data model DML also known as query language Two classes of languages Procedural user specifies what data is required and how to get those data Nonprocedural user specifies what data is required without specifying how to get those data SQL is the most widely used query language SQL: widely used non-procedural language E.g. find the name of the customer with customer-id 192-83-7465 select customer.customer-name from customer where customer.customer-id = 192-83-7465 E.g. find the balances of all accounts held by the customer with customer-id 192-83-7465 select account.balance from depositor, account where depositor.customer-id = 192-83-7465 and depositor.account-number = account.account-number Application programs generally access databases through one of Language extensions to allow embedded SQL Application program interface (e.g. ODBC/JDBC) which allow SQL queries to be sent to a database
Users are differentiated by the way they expect to interact with the system Application programmers interact with system through DML calls Sophisticated users form requests in a database query language Specialized users write specialized database applications that do not fit into the traditional data processing framework Nave users invoke one of the permanent application programs that have been written previously E.g. people accessing database over the web, bank tellers, clerical staff Coordinates all the activities of the database system; the database administrator has a good understanding of the enterprises information resources and needs. Database administrator's duties include: Schema definition Storage structure and access method definition Schema and physical organization modification Granting user authority to access the database Specifying integrity constraints Acting as liaison with users Monitoring performance and responding to changes in requirements 28 TUJUAN PEMANFAATAN BASIS DATA 3. Keakuratan (Accuracy) Agar data sesuai dengan aturan dan batasan tertentu dengan cara memanfaatkan pengkodean atau pembentukan relasi antar data bersama dengan penerapan aturan/batasan (constraint) tipe data, domain data, keunikan data dsb. 4. Ketersediaan (Availability) Agar data bisa diakses oleh setiap pengguna yang membutuhkan, dengan penerapan teknologi jaringan serta melakukan pemindahan/penghapusan data yang sudah tidak digunakan / kadaluwarsa untuk menghemat ruang penyimpanan. 29 TUJUAN PEMANFAATAN BASIS DATA
4. Kelengkapan (Completeness) 5. Keamanan (Security) Agar data yang dikelola senantiasa lengkap baik relatif terhadap kebutuhan pemakai maupun terhadap waktu, dengan melakukan penambahan baris- baris data ataupun melakukan perubahan struktur pada basis data; yakni dengan menambahkan field pada tabel atau menambah tabel baru. Agar data yang bersifat rahasia atau proses yang vital tidak jatuh ke orang / pengguna yang tidak berhak, yakni dengan penggunaan account (username dan password) serta menerapkan pembedaan hak akses setiap pengguna terhadap data yang bisa dibaca atau proses yang bisa dilakukan. 30 TUJUAN PEMANFAATAN BASIS DATA 6. Kebersamaan (Shareability) Agar data yang dikelola oleh sistem mendukung lingkungan multiuser (banyak pemakai), dengan menjaga / menghindari munculnya problem baru seperti inkonsistensi data (karena terjadi perubahan data yang dilakukan oleh beberapa user dalam waktu yang bersamaan) atau kondisi deadlock (karena ada banyak pemakai yang saling menunggu untuk menggunakan data). 7. Penekanan Biaya Penekanan biaya disini berkaitan dengan 3 hal : biaya penyimpanan, biaya penggunaan data dan tingginya biaya ketika membuat perubahan-perubahan basis data 31 .: KEUNTUNGAN BASIS DATA...
1. Kerangkapan data dapat diminimalkan 2. Inkonsistensi data dapat dihindari 3. Data dalam basis data dapat digunakan secara bersama-sama 4. Standarisasi data dapat dilakukan 5. Pembatasa untuk keamanan data dapat diterapkan 6. Integritas data dapat terpelihara 7. Perbedaan kebutuhan data dapat diseimbangkan Transaksi : proses (executing program) yang melibatkan akses terhadap satu atau lebih basis data, seperti membaca atau meng-update record di basis data. Tiap transaksi akan mengeksekusi operasi terhadap basis data dengan urutan lojik yang benar jika tidak terjadi interferensi dari transaksi lainnya. Jika terjadi multiple transaksi secara bersamaan: Isolation : memastikan tiap transaksi dieksekusi secara terisolasi dari transaksi lainnya. Atomicity: memastikan semua operasi dalam satu transaksi dieksekusi semua atau tidak dieksekusi satupun.
32 Two-tier architecture: E.g. client programs using ODBC/JDBC to communicate with a database Three-tier architecture: E.g. web-based applications, and applications built using middleware This chapter has described several major advantages of a database system. What are two disadvantages? Setup of the database system requires more knowledge, money, skills, and time. The complexity of the database may result in poor performance.