Pages

Sabtu, 08 Oktober 2011

pengertian data


Basis Data
Basis data atau database, berasal dari kata basis dan data, adapun pengertian dari kedua pengertian tersebut adalah sebagai berikut :

Basis :       dapat diartikan sebagai markas atau gudang, tempat bersarang atau berkumpul.

Data :       representasi  fakta  dunia  nyata  yang  mewakili  suatu  objek  seperti manusia   (pegawai,   siswa,   pembeli,   pelanggan),   barang,   hewan peristiwa,  konsep,  keadaan,  dan  sebagainya  yang  direkam  dalam bentuk angka, huruf, simbol, teks, gambar, bunyi, atau kombinasinya.
Dari kedua pengertian tersebut, maka dapat ditarik kesimpulan  bahwa pengertian dari   Basis Data adalah   Kumpulan file / table yang saling berelasi (berhubungan)   yang disimpan dalam media penyimpanan  eletronik. Dapat dikatakan pengertian lain dari basis data  adalah                 koleksi  terpadu  dari  data  yang  saling  berkaitan  yang  dirancang  untuk memenuhi  kebutuhan  informasi  suatu  enterprise (dunia  usaha).  Dari pengertian  tersebut dapat diambil kesimpulan  pada masing  – masing table / file didalam database berfungsi untuk menampung / menyimpan data – data, dimana masing – masing data yang ada pada table / file tersebut saling berhubungan dengan satu sama lainnya.

Tujuan dari dibentuknya basis data pada suatu perusahaan pada dasarnya adalah kemudahan dan kecepatan dalam pengambilan kembali data.

Untuk lebih jelasnya dapat dilihat pada gambar 1.1, terlihat bahwa pada gambar diatas itu bukan basis data melainkan lemari arsip, dimana pada setiap rak dalam lemari tersebut  dapat  menyimpan  dokumen  –  dokumen  manual  yang  terdiri  dari  lembaran  – lembaran kertas. Masalah yang dihadapi pada lemari arsip adalah kelambatan dalam menelusuri data – data yang ada pada lemari arsip tersebut, misalkan kita ingin mencari arsip untuk pegawai tertentu dihasilkan dengan lambat dikarenakan petugas harus mencari lembaran – lembaran yang ada pada dokumen tersebut dan ini sangat menyita waktu.

Sedangkan kalau kita bicara basis data, maka seluruh data – data disimpan dalam basis data pada masing – masing table / file sesuai dengan fungsinya, sehingga kita dengan mudah dapat melakukan penelusuran data yang diinginkan hal ini akan mengakibatkan pada kecepatan atas informasi yang disajikan.

Lemari arsip di sebuah ruang


Basis Data di sebuah hardisk
Gambar 1.1.  Lemari Arsip dan Basis Data

Didalam suatu media penyimpanan (hard disk misalnya), kita dapat menempatkan lebih dari 1 (satu) basis data dan tidak semua bentuk penyimpanan data secara elektronik dikatakan  basis  data,  karena  kita  bisa  menyimpan  dokumen  berisi  data  dalam  file  teks (dengan program pengolahan kata), spread sheet, dan lainnya.

Yang ditonjolkan dalam basis data adalah pengaturan / pemilahan / pengelompokan/ pengorganisasian data yang akan disimpan  sesuai dengan fungsi / jenisnya. Hal tersebut bisa berbentuk sejumlah file / table terpisah atau dalam bentuk pendefinisian kolom / field data dalam setiap file / table tersebut.

1.2.      Hirarki Data
Hirarki data dalam dikelompokkan  menjadi 3 (tiga) buah yaitu file, record dan elemen data, untuk lebih jelaskan dapat dilihat pada gambar 1.2. berikut ini.
Gambar 1.2. Hirarki Data
Pengertian dari gambar tersebut diatas adalah sebagai berikut :

1).     Elemen Data / Field / Atribut adalah satuan data terkecil yang   tidak dapat dipecah lagi menjadi  unit lain yang bermakna.  Pada data Mahasiswa,  field / atribut datanya

dapat berupa : nim, nama_m, tpt_lhr_m, tgl_lhr_m, alm_m dan dan atribut lainnya yang menyangkut mahasiswa tersebut. Istilah lain elemen data adalah medan / field, kolom, item, dan atribut. Istilah yang umum dipakai adalah field, atribut atau kolom.

2).     Rekaman  /  Record /  Baris adalah     gabungan  sejumlah  elemen  data  yang  saling terkait. Contohnya adalah nim, nama_m, tpt_lhr_m, tgl_lhr_m, alm_m an atribut lainnya dari seorang Mahasiswa dapat dihimpun dalam sebuah record / baris.

3).     Berkas / File / Table adalah kumpulan record sejenis yang mempunyai panjang atribut/ field sama, namun berbeda isi datanya.

Dalam basis data relasional, berkas mewakili komponen yang disebut Table atau Relasi. Sedangkan  pengertian  Data  value (nilai  atau  isi  data)  adalah  data  aktual  atau informasi  yang disimpan  pada setiap   field / atributField nama_m  menunjukkan  tempat dimana  informasi  nama  mahasiswa  disimpan,  sedangkan  isi  datanya  adalah  Mulyani, Ahmad Sofyan dan lain sebagainya.

Berikut ini dapat diberikan illustrasi  dari pengertian ketiga pengertian file, field, record dan data value (isi data ).
Mahasiswa      nama table / file
Atribut / field : nim,nama_m,tpt_lhr_m,tgl_lhr_m,j_kelamin,alm_m,kota_m,aama_m dan kode_jur

Data value / Isi data :
Pada record pertama : 01031417 adalah isi data untuk kolom nim, Mulyanti untuk kolom nama_m dan seterusnya
Gambar 1.3. Contoh file, field, record dan data value
Pada contoh diatas yang merupakan  table / file adalah Mahasiswa,  yang merupakan  field adalah nim,nama_m,tpt_lhr_m,tgl_lhr_m,j_kelamin,alm_m,kota_m,aama_m dan kode_jur, sedangkan untuk isi data pada record pertama adalah 01031417 (nim), Mulyanti (nama_m) dan seterusnya. Pada tabel mahasiswa tersebut misalkan jumlah mahasiswanya adalah 2000 untuk berbagai jurusan, maka jumlah recordnya  adalah 2000 juga dan kita dapat melakukan manipulasi data pada tabel tersebut yaitu insert, update dan delete.
1.3.      Sistem Basis Data
Sistem  basis  data  dapat  diartikan   sebagai   kumpulan   file  /  table yang  saling berhubungan  (dalam  sebuah  basis  data  di  sebuah  sistem  komputer),  dan  sekumpulan program (DBMS / Database Management System) yang memungkinkan beberapa user (pemakai), dan / atau program lain  untuk mengakses dan memanipulasi file (table) tersebut. Komponen – komponen utama dari sebuah sistem basis data adalah sebagai  berikut :
1).     Perangkat keras (hardware)
2).     Sistem operasi (operating system)
3).     Basis data (database)
4).     Sistem (aplikasi/perangkat lunak) pengelola basis data (DBMS)
5).     Pemakai (user)
6).     Aplikasi (perangkat lunak) lain (bersifat optional)
Pada  gambar  1.3.  sistem  basis  data  dapat  dilihat  bahwa  basis  data  pada  intinya adalah  disimpan  pada  media  penyimpanan  elektronik  (hardisk),  sedangkan  database  adalah terdiri dari beberapa file / table yang saling berelasi (berhubungan). Basis data tersebut dikelola oleh DBMS (database  management  system) dan database tersebut dapat dimanfaatkan  oleh beberapa user (pemakai) yang dapat melakukan manipulasi pada database. Tidak semua user

dapat melakukan manipulasi data didalam database, hal ini diatur sesuai dengan hak aksesnya
Gambar 1.4. Sistem Basis Data

1.3.1.      Perangkat Keras
Perangkat  keras  yang  biasanya  terdapat  dalam  sistem  basis  data  adalah sebagai berikut:
1).     Komputer  (satu  untuk  yang  stand-alone atau  lebih  dari  satu  untuk  sistem jaringan).
1).     Memori sekunder yang on-line (harddisk).
3).     Memori sekunder yang off-line (tape) untuk keperluan backup data.
4).     Media / perangkat komunikasi (untuk sistem jaringan).
1.3.2.      Sistem Operasi
Merupakan  program yang mengaktifkan  / memfungsikan  sistem komputer, mengendalikan  seluruh  sumber  daya  dalam  komputer  dan  melakukan operasi  – operasi  dasar  dalam  komputer  (operasi  input/output),  pengelolaan  file,  dan  lain sebagainya.
Program  pengelola  basis  data  (DBMS)  akan  aktif  (running)  jika  sistem operasi yang dikehendakinya (sesuai) telah aktif.
Contoh daripada sistem operasi pada sistem komputer adalah MS-DOS, MS Windows (3.11,95,98 dan lainnya) untuk yang stand alone dan MS Windows (2000 Server, UNIX, LINUX,  Novel_Netware dan lain sebagainya) utuk yang jaringan.
1.3.3.      Basis Data
Sebuah sistem basis data dapat memiliki beberapa basis data. Setiap basis data dapat memiliki  sejumlah  objek basis data (seperti  file/table, store procedure, indeks, dan lainya). Disamping berisi / menyimpan data, setiap basis data juga mengandung  / menyimpan  definisi struktur  (baik untuk basis  data maupun  objek- objeknya secara detail).
1.3.4.      Sistem pengelola basis data (DBMS)
Pengelolaan basis data secara fisik tidak ditangani langsung oleh user (pemakai),  tetapi  ditangani  oleh  sebuah  perangkat  lunak  (sistem)  yang  khusus  / spesifik.
Perangkat  inilah  disebut  DBMS,  yang  akan  menentukan  bagaimana  data diorganisasi,   disimpan,   diubah,  dan  diambil  kembali.   Perangkat   tersebut   juga menerapkan   mekanisme   pengamanan   data  (security),   pemakaian   data  secara bersama (sharing data), pemaksaan keakuratan / konsistensi data, dan sebagainya. Perangakat  lunak  yang  termasuk  DBMS  adalah  MS-Access,  Foxpro,  Dbase-IV, Foxbase, Clipper, dan lainnya untuk kelas sederhana, dan Oracle, Informix, Sybase, MS-SQL Server, dan lainnya untuk kelas kompleks / berat.
1.3.5.      Pemakai (Users)
Ada beberapa jenis / tipe pemakai pada sistem basis data, berdasarkan cara mereka berinteraksi pada basis data, diantaranya adalah:
1).     Programmer Aplikasi
Adalah pemakai yang berinteraksi dengan basis data melalui  DML (data  manipulation  language),  yang disertakan dalam program yang ditulis dalam bahasa pemrograman   induk   (seperti   pascal,   cobol,   clipper, foxpro, dan lainnya).
2). User Mahir (casual user)
Adalah pemakai yang berinteraksi dengan sistem tanpa menulis   modul   program.   Mereka   menyatakan   query (untuk akses data), dengan bahasa query yang telah disediakan oleh suatu DBMS.
3).     User Umum (End User)
Adalah pemakai yang berinteraksi  dengan sistem basis data              melalui    pemanggilan         satu         program                 aplikasi permanen, yang telah ditulis / disediakan sebelumnya.
4).     User Khusus (Specialized User)
Adalah  pemakai  yang  menulis  aplikasi  basis  data  non konvensional  untuk keperluan   khusus,   seperti   untuk aplikasi AI, Sistem Pakar, Pengolahan Citra, dan lainnyal, yang  bisa  saja  mengakses  basis  data  dengan  / tanpa DBMS.
Untuk sebuah sistem basis data yang stand-alone,  maka pada suatu saat hanya ada satu pemakai, sedangkan  untuk jaringan pada suatu saat ada banyak pemakai  yang dapat berhubungan  (menggunakan)  basis data yang sama. Pilihan untuk  stand-alone atau  jaringan  (multiuser)  tergantung   pada (ditentukan  oleh) kebutuhan pemakai, perangkat keras yang tersedia, sistem operasi yang digunakan, serta DBMS yang dipilih.

1.3.6.      Aplikasi (perangkat lunak) lain
Aplikasi lain ini bersifat optional, ada tidaknya  tergantung  pada kebutuhan kita. DBMS yang kita gunakan lebih berperan dalam pengorganisasian  data dalam basis data, sementara bagi pemakai basis data (khususnya yang menjadi end user) dapat disediakan program khusus untuk melakukan pengisian, pengubahan dan pengambilan data.
1.4.      Sistem Manajemen Basis Data (DBMS)
DBMS adalah koleksi terpadu dari program-program  (sistem perangkat lunak) yang digunakan  untuk mendefinisikan,  menciptakan,  mengakses  dan merawat database  (basis data).   Tujuannya   adalah   menyediakan   lingkungan   yang   mudah   dan   aman   untuk penggunaan dan perawatan database. Contoh daripada DBMS adalah Ms-Access, MS Sql Server dan Oracle.
Download filenya disini
Sumber : http://www.didiksetiyadi.com

Minggu, 08 Mei 2011

Unit Pengolah Pusat

Unit Pengolah Pusat (UPP) (bahasa Inggris: CPU, singkatan dari Central Processing Unit), merujuk kepada perangkat keras komputer yang memahami dan melaksanakan perintah dan data dari perangkat lunak. Istilah lain, prosesor (pengolah data), sering digunakan untuk menyebut CPU. Adapun mikroprosesor adalah CPU yang diproduksi dalam sirkuit terpadu, seringkali dalam sebuah paket sirkuit terpadu-tunggal. Sejak pertengahan tahun 1970-an, mikroprosesor sirkuit terpadu-tunggal ini telah umum digunakan dan menjadi aspek penting dalam penerapan CPU.
Pin mikroprosesor Intel 80486DX2.

Daftar isi

[sembunyikan]

[sunting] Komponen CPU

Diagram blok sederhana sebuah CPU.
Komponen CPU terbagi menjadi beberapa macam, yaitu sebagai berikut.
  • Unit kontrol yang mampu mengatur jalannya program. Komponen ini sudah pasti terdapat dalam semua CPU.CPU bertugas mengontrol komputer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi-fungsi operasinya. termasuk dalam tanggung jawab unit kontrol adalah mengambil intruksi-intruksi dari memori utama dan menentukan jenis instruksi tersebut. Bila ada instruksi untuk perhitungan aritmatika atau perbandingan logika, maka unit kendali akan mengirim instruksi tersebut ke ALU. Hasil dari pengolahan data dibawa oleh unit kendali ke memori utama lagi untuk disimpan, dan pada saatnya akan disajikan ke alat output. Dengan demikian tugas dari unit kendali ini adalah:
    • Mengatur dan mengendalikan alat-alat input dan output.
    • Mengambil instruksi-instruksi dari memori utama.
    • Mengambil data dari memori utama (jika diperlukan) untuk diproses.
    • Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja dari ALU.
    • Menyimpan hasil proses ke memori utama.
  • Register merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi, yang digunakan untuk menyimpan data dan/atau instruksi yang sedang diproses. Memori ini bersifat sementara, biasanya di gunakan untuk menyimpan data saat di olah ataupun data untuk pengolahan selanjutnya. Secara analogi, register ini dapat diibaratkan sebagai ingatan di otak bila kita melakukan pengolahan data secara manual, sehingga otak dapat diibaratkan sebagai CPU, yang berisi ingatan-ingatan, satuan kendali yang mengatur seluruh kegiatan tubuh dan mempunyai tempat untuk melakukan perhitungan dan perbandingan logika.
  • ALU unit yang bertugas untuk melakukan operasi aritmetika dan operasi logika berdasar instruksi yang ditentukan. ALU sering di sebut mesin bahasa karena bagian ini ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean yang masing-masing memiliki spesifikasi tugas tersendiri. Tugas utama dari ALU adalah melakukan semua perhitungan aritmatika (matematika) yang terjadi sesuai dengan instruksi program. ALU melakukan semua operasi aritmatika dengan dasar penjumlahan sehingga sirkuit elektronik yang digunakan disebut adder.
Tugas lain dari ALU adalah melakukan keputusan dari suatu operasi logika sesuai dengan instruksi program. Operasi logika meliputi perbandingan dua operand dengan menggunakan operator logika tertentu, yaitu sama dengan (=), tidak sama dengan (¹ ), kurang dari (<), kurang atau sama dengan (£ ), lebih besar dari (>), dan lebih besar atau sama dengan (³ ).
  • CPU Interconnections adalah sistem koneksi dan bus yang menghubungkan komponen internal CPU, yaitu ALU, unit kontrol dan register-register dan juga dengan bus-bus eksternal CPU yang menghubungkan dengan sistem lainnya, seperti memori utama, piranti masukan /keluaran.

[sunting] Cara Kerja CPU

Saat data dan/atau instruksi dimasukkan ke processing-devices, pertama sekali diletakkan di RAM (melalui Input-storage); apabila berbentuk instruksi ditampung oleh Control Unit di Program-storage, namun apabila berbentuk data ditampung di Working-storage). Jika register siap untuk menerima pengerjaan eksekusi, maka Control Unit akan mengambil instruksi dari Program-storage untuk ditampungkan ke Instruction Register, sedangkan alamat memori yang berisikan instruksi tersebut ditampung di Program Counter. Sedangkan data diambil oleh Control Unit dari Working-storage untuk ditampung di General-purpose register (dalam hal ini di Operand-register). Jika berdasar instruksi pengerjaan yang dilakukan adalah arithmatika dan logika, maka ALU akan mengambil alih operasi untuk mengerjakan berdasar instruksi yang ditetapkan. Hasilnya ditampung di Accumulator. Apabila hasil pengolahan telah selesai, maka Control Unit akan mengambil hasil pengolahan di Accumulator untuk ditampung kembali ke Working-storage. Jika pengerjaan keseluruhan telah selesai, maka Control Unit akan menjemput hasil pengolahan dari Working-storage untuk ditampung ke Output-storage. Lalu selanjutnya dari Output-storage, hasil pengolahan akan ditampilkan ke output-devices.

[sunting] Fungsi CPU

CPU berfungsi seperti kalkulator, hanya saja CPU jauh lebih kuat daya pemrosesannya. Fungsi utama dari CPU adalah melakukan operasi aritmatika dan logika terhadap data yang diambil dari memori atau dari informasi yang dimasukkan melalui beberapa perangkat keras, seperti papan ketik, pemindai, tuas kontrol, maupun tetikus. CPU dikontrol menggunakan sekumpulan instruksi perangkat lunak komputer. Perangkat lunak tersebut dapat dijalankan oleh CPU dengan membacanya dari media penyimpan, seperti cakram keras, disket, cakram padat, maupun pita perekam. Instruksi-instruksi tersebut kemudian disimpan terlebih dahulu pada memori fisik (RAM), yang mana setiap instruksi akan diberi alamat unik yang disebut alamat memori. Selanjutnya, CPU dapat mengakses data-data pada RAM dengan menentukan alamat data yang dikehendaki.
Saat sebuah program dieksekusi, data mengalir dari RAM ke sebuah unit yang disebut dengan bus, yang menghubungkan antara CPU dengan RAM. Data kemudian didekode dengan menggunakan unit proses yang disebut sebagai pendekoder instruksi yang sanggup menerjemahkan instruksi. Data kemudian berjalan ke unit aritmatika dan logika (ALU) yang melakukan kalkulasi dan perbandingan. Data bisa jadi disimpan sementara oleh ALU dalam sebuah lokasi memori yang disebut dengan register supaya dapat diambil kembali dengan cepat untuk diolah. ALU dapat melakukan operasi-operasi tertentu, meliputi penjumlahan, perkalian, pengurangan, pengujian kondisi terhadap data dalam register, hingga mengirimkan hasil pemrosesannya kembali ke memori fisik, media penyimpan, atau register apabila akan mengolah hasil pemrosesan lagi. Selama proses ini terjadi, sebuah unit dalam CPU yang disebut dengan penghitung program akan memantau instruksi yang sukses dijalankan supaya instruksi tersebut dapat dieksekusi dengan urutan yang benar dan sesuai.

[sunting] Percabangan instruksi

Pemrosesan instruksi dalam CPU dibagi atas dua tahap, Tahap-I disebut Instruction Fetch, sedangkan Tahap-II disebut Instruction Execute. Tahap-I berisikan pemrosesan CPU dimana Control Unit mengambil data dan/atau instruksi dari main-memory ke register, sedangkan Tahap-II berisikan pemrosesan CPU dimana Control Unit menghantarkan data dan/atau instruksi dari register ke main-memory untuk ditampung di RAM, setelah Instruction Fetch dilakukan. Waktu pada tahap-I ditambah dengan waktu pada tahap-II disebut waktu siklus mesin (machine cycles time).
Penghitung program dalam CPU umumnya bergerak secara berurutan. Walaupun demikian, beberapa instruksi dalam CPU, yang disebut dengan instruksi lompatan, mengizinkan CPU mengakses instruksi yang terletak bukan pada urutannya. Hal ini disebut juga percabangan instruksi (branching instruction). Cabang-cabang instruksi tersebut dapat berupa cabang yang bersifat kondisional (memiliki syarat tertentu) atau non-kondisional. Sebuah cabang yang bersifat non-kondisional selalu berpindah ke sebuah instruksi baru yang berada di luar aliran instruksi, sementara sebuah cabang yang bersifat kondisional akan menguji terlebih dahulu hasil dari operasi sebelumnya untuk melihat apakah cabang instruksi tersebut akan dieksekusi atau tidak. Data yang diuji untuk percabangan instruksi disimpan pada lokasi yang disebut dengan flag.

[sunting] Bilangan yang dapat ditangani

Kebanyakan CPU dapat menangani dua jenis bilangan, yaitu fixed-point dan floating-point. Bilangan fixed-point memiliki nilai digit spesifik pada salah satu titik desimalnya. Hal ini memang membatasi jangkauan nilai yang mungkin untuk angka-angka tersebut, tetapi hal ini justru dapat dihitung oleh CPU secara lebih cepat. Sementara itu, bilangan floating-point merupakan bilangan yang diekspresikan dalam notasi ilmiah, di mana sebuah angka direpresentasikan sebagai angka desimal yang dikalikan dengan pangkat 10 (seperti 3,14 x 1057). Notasi ilmiah seperti ini merupakan cara yang singkat untuk mengekspresikan bilangan yang sangat besar atau bilangan yang sangat kecil, dan juga mengizinkan jangkauan nilai yang sangat jauh sebelum dan sesudah titik desimalnya. Bilangan ini umumnya digunakan dalam merepresentasikan grafik dan kerja ilmiah, tetapi proses aritmatika terhadap bilangan floating-point jauh lebih rumit dan dapat diselesaikan dalam waktu yang lebih lama oleh CPU karena mungkin dapat menggunakan beberapa siklus detak CPU. Beberapa komputer menggunakan sebuah prosesor sendiri untuk menghitung bilangan floating-point yang disebut dengan FPU (disebut juga math co-processor) yang dapat bekerja secara paralel dengan CPU untuk mempercepat penghitungan bilangan floating-point. FPU saat ini menjadi standar dalam banyak komputer karena kebanyakan aplikasi saat ini banyak beroperasi menggunakan bilangan floating-point.

[sunting] Referensi

[sunting] Pranala luar

[sunting] Perancang CPU

[sunting] Informasi lain

Basis data

Database

From Wikipedia, the free encyclopedia
Jump to: navigation, search
A database is a system intended to organize, store, and retrieve large amounts of data easily. It consists of an organized collection of data for one or more uses, typically in digital form. One way of classifying databases involves the type of their contents, for example: bibliographic, document-text, statistical. Digital databases are managed using database management systems, which store database contents, allowing data creation and maintenance, search and other access.

Contents

[hide]

[edit] Architecture

Database architecture consists of three levels: external, conceptual and internal. Clearly separating the three levels was a major feature of the relational database model that dominates 21st century databases.[1]
The external level defines how users understand the organization of the data. A single database can have any number of views at the external level. The internal level defines how the data is physically stored and processed by the computing system. Internal architecture is concerned with cost, performance, scalability and other operational matters. The conceptual is a level of indirection between internal and external. It provides a common view of the database that is uncomplicated by details of how the data is stored or managed, and that can unify the various external views into a coherent whole.[1]

[edit] Database management systems

A database management system (DBMS) consists of software that operates databases, providing storage, access, security, backup and other facilities. Database management systems can be categorized according to the database model that they support, such as relational or XML, the type(s) of computer they support, such as a server cluster or a mobile phone, the query language(s) that access the database, such as SQL or XQuery, performance trade-offs, such as maximum scale or maximum speed or others. Some DBMS cover more than one entry in these categories, e.g., supporting multiple query languages. Examples of some commonly used DBMS are MySQL, PostgreSQL, Microsoft Access, SQL Server, FileMaker,Oracle,Sybase, dBASE, Clipper,FoxPro etc. Almost every database software comes with an Open Database Connectivity (ODBC) driver that allows the database to integrate with other databases.

[edit] Components of DBMS

Most DBMS as of 2009 implement a relational model.[2] Other DBMS systems, such as Object DBMS, offer specific features for more specialized requirements. Their components are similar, but not identical.

[edit] RDBMS components

  • Sublanguages— Relational DBMS (RDBMS) include Data Definition Language (DDL) for defining the structure of the database, Data Control Language (DCL) for defining security/access controls, and Data Manipulation Language (DML) for querying and updating data.
  • Interface drivers—These drivers are code libraries that provide methods to prepare statements, execute statements, fetch results, etc. Examples include ODBC, JDBC, MySQL/PHP, FireBird/Python.
  • SQL engine—This component interprets and executes the DDL, DCL, and DML statements. It includes three major components (compiler, optimizer, and executor).
  • Transaction engine—Ensures that multiple SQL statements either succeed or fail as a group, according to application dictates.
  • Relational engine—Relational objects such as Table, Index, and Referential integrity constraints are implemented in this component.
  • Storage engine—This component stores and retrieves data from secondary storage, as well as managing transaction commit and rollback, backup and recovery, etc.

[edit] ODBMS components

Object DBMS (ODBMS) has transaction and storage components that are analogous to those in an RDBMS. Some DBMS handle DDL, DML and update tasks differently. Instead of using sublanguages, they provide APIs for these purposes. They typically include a sublanguage and accompanying engine for processing queries with interpretive statements analogous to but not the same as SQL. Example object query languages are OQL, LINQ, JDOQL, JPAQL and others. The query engine returns collections of objects instead of relational rows.

[edit] Types

[edit] Analytical database

Analysts may do their work directly against a data warehouse or create a separate analytic database for Online Analytical Processing (OLAP). For example, a company might extract sales records for analyzing the effectiveness of advertising and other sales promotions at an aggregate level.

[edit] Data warehouse

Data warehouses archive modern data from operational databases and often from external sources such as market research firms. Often operational data undergoes transformation on its way into the warehouse, getting summarized, anonymized, reclassified, etc. The warehouse becomes the central source of data for use by managers and other end-users who may not have access to operational data. For example, sales data might be aggregated to weekly totals and converted from internal product codes to use UPCs so that it can be compared with ACNielsen data. Some basic and essential components of data warehousing include retrieving and analyzing data, transforming,loading and managing data so as to make it available for further use.
Operations in a data warehouse are typically concerned with bulk data manipulation, and as such, it is unusual and inefficient to target individual rows for update, insert or delete. Bulk native loaders for input data and bulk SQL passes for aggregation are the norm.

[edit] Distributed database

These are databases of local work-groups and departments at regional offices, branch offices, manufacturing plants and other work sites. These databases can include segments of both common operational and common user databases, as well as data generated and used only at a user’s own site.

[edit] End-user database

These databases consist of data developed by individual end-users. Examples of these are collections of documents in spreadsheets, word processing and downloaded files, even managing their personal baseball card collection.

[edit] External database

These databases contain data collected for use across multiple organizations, either freely or via subscription. The Internet Movie Database is one example.

[edit] Hypermedia databases

The World Wide Web can be thought of as a database, albeit one spread across millions of independent computing systems. Web browsers "process" this data one page at a time, while Web crawlers and other software provide the equivalent of database indexes to support search and other activities.

[edit] Operational database

These databases store detailed data about the operations of an organization. They are typically organized by subject matter, process relatively high volumes of updates using transactions. Essentially every major organization on earth uses such databases. Examples include customer databases that record contact, credit, and demographic information about a business' customers, personnel databases that hold information such as salary, benefits, skills data about employees, Enterprise resource planning that record details about product components, parts inventory, and financial databases that keep track of the organization's money, accounting and financial dealings.

[edit] Models

[edit] Object database models

In recent years, the object-oriented paradigm has been applied in areas such as engineering and spatial databases, telecommunications and in various scientific domains. The conglomeration of object oriented programming and database technology led to this new kind of database. These databases attempt to bring the database world and the application-programming world closer together, in particular by ensuring that the database uses the same type system as the application program. This aims to avoid the overhead (sometimes referred to as the impedance mismatch) of converting information between its representation in the database (for example as rows in tables) and its representation in the application program (typically as objects). At the same time, object databases attempt to introduce key ideas of object programming, such as encapsulation and polymorphism, into the world of databases.
A variety of these ways have been tried[by whom?] for storing objects in a database. Some products have approached the problem from the application-programming side, by making the objects manipulated by the program persistent. This also typically requires the addition of some kind of query language, since conventional programming languages do not provide language-level functionality for finding objects based on their information content. Others[which?] have attacked the problem from the database end, by defining an object-oriented data model for the database, and defining a database programming language that allows full programming capabilities as well as traditional query facilities..

[edit] Post-relational database models

Products offering a more general data model than the relational model are sometimes classified as post-relational.[3] Alternate terms include "hybrid database", "Object-enhanced RDBMS" and others. The data model in such products incorporates relations but is not constrained by E.F. Codd's Information Principle, which requires that
all information in the database must be cast explicitly in terms of values in relations and in no other way[4]
Some of these extensions to the relational model integrate concepts from technologies that pre-date the relational model. For example, they allow representation of a directed graph with trees on the nodes. The German company sones implements this concept in its GraphDB.
Some post-relational products extend relational systems with non-relational features. Others arrived in much the same place by adding relational features to pre-relational systems. Paradoxically, this allows products that are historically pre-relational, such as PICK and MUMPS, to make a plausible claim to be post-relational.

[edit] Storage structures

Databases may store relational tables/indexes in memory or on hard disk in one of many forms:
The most commonly used[citation needed] are B+ trees and ISAM.
Object databases use a range of storage mechanisms. Some use virtual memory-mapped files to make the native language (C++, Java etc.) objects persistent. This can be highly efficient but it can make multi-language access more difficult. Others disassemble objects into fixed- and varying-length components that are then clustered in fixed sized blocks on disk and reassembled into the appropriate format on either the client or server address space. Another popular technique involves storing the objects in tuples (much like a relational database), which the database server then reassembles into objects for the client.[citation needed]
Other techniques include clustering by category (such as grouping data by month, or location), storing pre-computed query results, known as materialized views, partitioning data by range (e.g., a data range) or by hash.
Memory management and storage topology can be important design choices for database designers as well. Just as normalization is used to reduce storage requirements and improve database designs, conversely denormalization is often used to reduce join complexity and reduce query execution time.[5]

[edit] Indexing

Indexing is a technique for improving database performance. The many types of indexes share the common property that they eliminate the need to examine every entry when running a query. In large databases, this can reduce query time/cost by orders of magnitude. The simplest form of index is a sorted list of values that can be searched using a binary search with an adjacent reference to the location of the entry, analogous to the index in the back of a book. The same data can have multiple indexes (an employee database could be indexed by last name and hire date.)
Indexes affect performance, but not results. Database designers can add or remove indexes without changing application logic, reducing maintenance costs as the database grows and database usage evolves.
Given a particular query, the DBMS' query optimizer is responsible for devising the most efficient strategy for finding matching data. The optimizer decides which index or indexes to use, how to combine data from different parts of the database, how to provide data in the order requested, etc.
Indexes can speed up data access, but they consume space in the database, and must be updated each time the data is altered. Indexes therefore can speed data access but slow data maintenance. These two properties determine whether a given index is worth the cost.

[edit] Transactions

As every software system, a DBMS operates in a faulty computing environment and prone to failures of many kinds. A failure can corrupt the respective database unless special measures are taken to prevent this. A DBMS achieves certain levels of fault tolerance by encapsulating in database transactions units of work (executed programs) performed upon the respective database.

[edit] The ACID rules

Most DBMS provide some form of support for transactions, which allow multiple data items to be updated in a consistent fashion, such that updates that are part of a transaction succeed or fail in unison. The so-called ACID rules, summarized here, characterize this behavior:
  • Atomicity: Either all the data changes in a transaction must happen, or none of them. The transaction must be completed, or else it must be undone (rolled back).
  • Consistency: Every transaction must preserve the declared consistency rules for the database.
  • Isolation: Two concurrent transactions cannot interfere with one another. Intermediate results within one transaction must remain invisible to other transactions. The most extreme form of isolation is serializability, meaning that transactions that take place concurrently could instead be performed in some series, without affecting the ultimate result.
  • Durability: Completed transactions cannot be aborted later or their results discarded. They must persist through (for instance) DBMS restarts.
In practice, many DBMSs allow the selective relaxation of these rules to balance perfect behavior with optimum performance.

[edit] Concurrency control and locking

Concurrency control is essential for the correctness of transactions executed concurrently in a DBMS, which is the common execution mode for performance reasons. The main concern and goal of concurrency control is isolation.

[edit] Isolation

Isolation refers to the ability of one transaction to see the results of other transactions. Greater isolation typically reduces performance and/or concurrency, leading DBMSs to provide administrative options to reduce isolation. For example, in a database that analyzes trends rather than looking at low-level detail, increased performance might justify allowing readers to see uncommitted changes ("dirty reads".)
A common way to achieve isolation is by locking. When a transaction modifies a resource, the DBMS stops other transactions from also modifying it, typically by locking it. Locks also provide one method of ensuring that data does not change while a transaction is reading it or even that it does not change until a transaction that once read it has completed.

[edit] Lock types

Locks can be shared[6] or exclusive, and can lock out readers and/or writers. Locks can be created implicitly by the DBMS when a transaction performs an operation, or explicitly at the transaction's request.
Shared locks allow multiple transactions to lock the same resource. The lock persists until all such transactions complete. Exclusive locks are held by a single transaction and prevent other transactions from locking the same resource.
Read locks are usually shared, and prevent other transactions from modifying the resource. Write locks are exclusive, and prevent other transactions from modifying the resource. On some systems, write locks also prevent other transactions from reading the resource.
The DBMS implicitly locks data when it is updated, and may also do so when it is read. Transactions explicitly lock data to ensure that they can complete without complications. Explicit locks may be useful for some administrative tasks.[7][8]
Locking can significantly affect database performance, especially with large and complex transactions in highly concurrent environments.

[edit] Lock granularity

Locks can be coarse, covering an entire database, fine-grained, covering a single data item, or intermediate covering a collection of data such as all the rows in a RDBMS table.

[edit] Deadlocks

Deadlocks occur when two transactions each require data that the other has already locked exclusively. Deadlock detection is performed by the DBMS, which then aborts one of the transactions and allows the other to complete.

[edit] Replication

Database replication involves maintaining multiple copies of a database on different computers, to allow more users to access it, or to allow a secondary site to immediately take over, if the primary site stops working. Some DBMS piggyback replication on top of their transaction logging facility, applying the primary's log to the secondary in near real-time. Database clustering is a related concept for handling larger databases and user communities by employing a cluster of multiple computers to host a single database that can use replication as part of its approach.[9][10]

[edit] Security

Database security denotes the system, processes, and procedures that protect a database from unauthorized activity.
DBMSs usually enforce security through access control, auditing, and encryption:
  • Access control manages who can connect to the database via authentication and what they can do via authorization.
  • Auditing records information about database activity: who, what, when, and possibly where.
  • Encryption protects data at the lowest possible level by storing and possibly transmitting data in an unreadable form. The DBMS encrypts data when it is added to the database and decrypts it when returning query results. This process can occur on the client side of a network connection to prevent unauthorized access at the point of use.

[edit] Confidentiality

Law and regulation governs the release of information from some databases, protecting medical history, driving records, telephone logs, etc.
In the United Kingdom, database privacy regulation falls under the Office of the Information Commissioner. Organizations based in the United Kingdom and holding personal data in digital format such as databases must register with the Office.[11]

[edit] See also

[edit] References

  1. ^ a b Date 1990, pp. 31–32
  2. ^ "Design of Main Memory Database System/Overview of DBMS". En.wikibooks.org. http://en.wikibooks.org/wiki/Design_of_Main_Memory_Database_System/Overview_of_DBMS. Retrieved 2010-08-29. 
  3. ^ Introducing databases by Stephen Chu, in Conrick, M. (2006) Health informatics: transforming healthcare with technology, Thomson, ISBN 0-17-012731-1, p. 69.
  4. ^ Date, C. J. (June 1, 1999). "When's an extension not an extension?". Intelligent Enterprise 2 (8). http://intelligent-enterprise.informationweek.com/db_area/archives/1999/990106/online1.jhtml;jsessionid=Y2UNK1QFKXMBTQE1GHRSKH4ATMY32JVN. 
  5. ^ Lightstone, Teorey & Nadeau 2007
  6. ^ "Information on Shared Locks". Methodsandtools.com. http://www.methodsandtools.com/archive/archive.php?id=83. Retrieved 2010-08-29. 
  7. ^ ""Locking tables and databases" (section in some documentation / explanation from IBM)". Publib.boulder.ibm.com. http://publib.boulder.ibm.com/infocenter/rbhelp/v6r3/index.jsp?topic=/com.ibm.redbrick.doc6.3/wag/wag80.htm. Retrieved 2010-08-29. 
  8. ^ "Routine Database Maintenance". Postgresql.org. http://www.postgresql.org/docs/8.3/static/routine-vacuuming.html. Retrieved 2010-08-29. 
  9. ^ "MySQL Cluster". Mysql.com. 2010-08-25. http://www.mysql.com/products/database/cluster/. Retrieved 2010-08-29. 
  10. ^ "Oracle Real Application Cluster (RAC)". Oracle.com. 2010-03-23. http://www.oracle.com/lang/de/database/rac_home.html. Retrieved 2010-08-29. 
  11. ^ "Information Commissioner's Office". ICO. http://www.ico.gov.uk/. Retrieved 2010-08-29. 

[edit] Further reading

  • Ling Liu and Tamer M. Özsu (Eds.) (2009). "Encyclopedia of Database Systems, 4100 p. 60 illus. ISBN 978-0-387-49616-0. Table of Content available at http://refworks.springer.com/mrw/index.php?id=1217
  • Beynon-Davies, P. (2004). Database Systems. 3rd Edition. Palgrave, Houndmills, Basingstoke.
  • Connolly, Thomas and Carolyn Begg. Database Systems. New York: Harlow, 2002.
  • Date, C. J. An Introduction to Database Systems, Eighth Edition, Addison Wesley, 2003.
  • Date, C. J. (2003). An Introduction to Database Systems, Fifth Edition. Addison Wesley. ISBN 0-201-51381-1. 
  • Galindo, J.; Urrutia, A.; Piattini, M. Fuzzy Databases: Modeling, Design and Implementation (FSQL guide). Idea Group Publishing Hershey, USA, 2006.
  • Galindo, J., Ed. Handbook on Fuzzy Information Processing in Databases. Hershey, PA: Information Science Reference (an imprint of Idea Group Inc.), 2008.
  • Gray, J. and Reuter, A. Transaction Processing: Concepts and Techniques, 1st edition, Morgan Kaufmann Publishers, 1992.
  • Kroenke, David M. Database Processing: Fundamentals, Design, and Implementation (1997), Prentice-Hall, Inc., pages 130–144.
  • Kroenke, David M. and David J. Auer. Database Concepts. 3rd ed. New York: Prentice, 2007.
  • Lightstone, S.; Teorey, T.; Nadeau, T. (2007). Physical Database Design: the database professional's guide to exploiting indexes, views, storage, and more. Morgan Kaufmann Press. ISBN 0-12-369389-6. 
  • O'Brien, James. "Management Information Systems". New York 1999
  • Shih, J. "Why Synchronous Parallel Transaction Replication is Hard, But Inevitable?", white paper, 2007.
  • Teorey, T.; Lightstone, S. and Nadeau, T. Database Modeling & Design: Logical Design, 4th edition, Morgan Kaufmann Press, 2005. ISBN 0-12-685352-5
  • Tukey, John W. Exploratory Data Analysis. Reading, MA: Addison Wesley, 1977.
  • Manovich, Lev.Database as a Symbolic Form, Cambridge: MIT press, 2001.