Minggu, 01 Februari 2009

Basis Data Relasional

Namanya jg berelasi pasti ada yg dihubung-hubungkan dan ada penghubungnya. Di BDR ini setiap tabelnya terdiri atas lajur mendatar yg disebut dgn Baris Data (Row/Record) dan lajur vertical yg di sbt Kolom (Column/Field). Tabel sering kita gunakan dlm segala hal karena table merupakan alami dlm menyatakan fakta/data yg sering sekali kita gunakan.
Untuk itu kita membutuhkan sebuah perangkat lunak (software) yang memang di khususkan u/ membuat table. Perangkat lunak ini yg disebut dgn DBMS Sistem Pengelola Basis Data. Contohnya: dBaseIII+, MS-Access, Borland-Paradox hingga Oracle merupakan DBMS yg di peruntukan u/mengelola basis data dlm model relasional.
Prinsip-prinsip pemakaian kesemua perangkat lunak itu hampir sama. Perbedaanya hanya terletak pada teknis pemakaian dan kelengkapan fungsi yg dimiliki o/ setiap masing-masing perangkat lunak tersebut.

Komponen dan User dalam Basis Data

Di dalam Basis Data terdapat Beberapa komponen-komponen yang harus ada dalam Basis Data tersebut. Ada 6 komponen system dalam Basis Data, a.l:
DBMS adalah komponen yang biasa digunakan dalam membentuk table

. Perangkat lunak ini yg disebut dgn DBMS Sistem Pengelola Basis Data. Contohnya: dBaseIII+, MS-Access, Borland-Paradox hingga Oraclemerupakan DBMS yg di peruntukan u/mengelola basi data dlm model relasional.
Aplikasi (application) adalah sesuatu yang memproseskan sebuah data mentah, tetapi dalam bahasa komputer dikatakan Software. Kalau anda biasa mengenal komputer,hand phone dll, pasti anda tahu apa yg namanya software.
Hardware adalah perangkat keras di dalam sebuah komponen di dalam komputer, contohnya: CPU,monitor,keyboard dll.
Sistem Operasi adalah pengoperasian yang dilakukan sesuai dengan sistem-sistem yang ada.
Basis Data adalah Sekumpulan dari beberapa inputan yang didalamnya berisikan data-data yang sudah jadi.
User adalah Pengguna itu sendiri. Pengguna yang mengoperasikan sistem di dalam komputer, kalau di dunia ini tidak ada user dalam mengoperasikan data pasti hidup kita tidak akan maju atau malah nantinya akan punah.Itulah beberapa komponen yang ada di dalam Sistem Basis Data yang harus anda telaah dalam mempelajari Sistem Basis Data. Ada 4 macam user Basis Data, a.l:
User Mahir
User Umum
User Khusus
User Program application

Urutan Dalam Membuat ERD

Sebenarnya dalam membuat ERD itu mudah, yang penting bagaimana kita tahu dan mengerti urutan-urutan dalam membuat ERD.
Kalau sudah paham pasti mudah. Di bawah ini ada urutan dalam membuat gambar ERD.
Ada langkah-langkahnya untuk bisa mengerti akan ERD, a.l:
Menentukan Entitas : maksudnya, Menentukan peran, kejadian, lokasi, hal nyata dan konsep di mana pengguna akan menyimpan data.
Menentukan Relasi : maksudnya, tentukan hubungan antara pasangan entitas menggunakan matrikas relasi.
Gambar ERD sementara : maksudnya, Entitas digambarkan dengan kotak dan relasi dengan garis yang menghubungkan entitas.
Isi Kardinalitas : maksudnya, menentukan jumlah kejadian dari setiap entitas dan entitas yang berhubungan.
Tentukan Kunci Utama : maksudnya, mengidentifikasikan atribut dan satu kejadian pada masing-masing entitas.
Gmbr ERD berdasarkan Kunci : maksudnya, gunakan Primary key dan kunci tamu pada setiap entitas dan tidak menggunakan Many-to-Many.
Menentukan Atribut : maksudnya, tuliskan field-field yang di perlukan oleh system.
Pemetaan Atribut : maksudnya, pasang-pasangkan setiap atribut dengan entitasnya masing-masing.
Gmbr ERD dengan Atribut : maksudnya, menambah entitas yang ditemukan di langkah ke 8 dan mengatur ERD dari langkah 6.
Periksa Hasil : maksudnya, sudah sesuai belum system yang di bangun dengan ERD nya.
Diposkan oleh System Basis Data di 03:58 0 komentar
Senin, 2009 Januari 12

Key dan atribut
Pengenalan Key dan Atribut dalam
Sistem Basis Data
Ada beberapa ketentuan dalam menggunakan key di Sistem Basis Data. Kita harus mengetahui mana yang Primary Key, Kandidat Key ataupun Super Key.
3 macam Key di dalam Sistem Basis Data, a.l:
Primary Key : Kunci yang menjadi tokoh utama dalam sebuah pemrograman. Bisa jg dikatakan sebagai kunci utama dari sebuah table.
Kandidat Key : Kunci/atribut minimal. Maksudnya, bahwa kunci tersebut adalah kunci pengganti dari Primary trsb, jadi setidaknya dapat membedakan dari setiap baris data dalam sebuah table secara unik.
Super Key : Kunci yang menunjang adanya Primary Key di dalam sebuah Basis Data, bisa juga di katakana sebagai kuci yang harus ada Primarynya,kalau tidak ada kunci utama maka tidak ada Kandidat Key nya.
Ada juga atribut yang melengkapi dari adanya Key-key di atas, a.l:
Deskriptif : maksudnya menjelaskan atribut-atribut yang ada, agar semua yang di jelaskan menjadi lebih jelas.
Turunan : Dari atribut tersebut mempunyai turunan atau atribut yang menjadi atribut bantuan u/ lebih memperjelas lagi yang di maksud.
Bernilai tinggi : mempunyai nilai yang bernilai lebih tinggi dari atribut-atribut yang di atas.
Bernilai banyak : mempunyai nilai banyak.
Sederhana : maksudnya punya arti yang sederhana tapi bisa membantu atribut yang lainnya.
Itu macam dari atribut yang ada serta Key yang membantunya.

Tutorial Map Info - Software SIG

PendahuluanMapInfo adalah salah satu software pengolah Sistem Informasi Geografi (SIG). MapInfo diminati oleh pemakai SIG karena mempunyai karakteristik yang menarik, seperti mudah digunakan, harga relatif murah, tampilan interaktif, user frendly dan dapat dicustomized menggunakan bahasa skrip yang dimiliki.Pembentukan peta di MapInfo dapat diilustrasikan secara analog. Dalam MapInfo suatu “table” dapat digambarkan sebagai satu lembar (sheet) dari suatu film dan suatu komposisi peta di MapInfo merupakan gabungan dari beberapa lembar (sheet) film tersebut yang disusun secara bertumpuk. Istilah yang umum digunakan untuk susunan tersebut adalah “layering”.Setiap lembar (sheet) merupakan layer yang dapat digabungkan dan di-matchkan untuk membentuk suatu peta, sehingga dapat dilakukan analisis dari peta yang terbentuk tersebut. Satu hal yang perlu diingat adalah ketika MapInfo melakukan “redraw” peta, MapInfo akan melakukan redraw dari layer yang tersusun paling bawah kemudian ke layer di atasnya, dan sebaliknya jika ingin diketahui informasi dari suatu peta.Karakteristik MapInfoGraphical User Interface yang bersifat umumUser interface dari GUI versi MapInfo adalah identik dan dapat terbaca pada semua platform yang disupport oleh MapInfo. Sehingga user dapat dengan leluasa membuka data pada sistem (platform) yang berlainan.Table structureStruktur data binary MapInfo adalah identik dengan semua platform yang disupport oleh MapInfo. Data dapat dibuka dan dibaca oleh platform yang berbeda, dan dapat didstribusikan melalui network ke user lain tanpa diterjemahkan terlebih dahulu.Grafik yang dintegrasikan dengan basis dataIstilah yang paling tepat untuk menggambarkan MapInfo adalah “geographic or graphic database”. MapInfo menggunakan basis data tekstual yang diintegrasikan dengan data grafiknya.Basis Data atau Map SelectionDengan adanya integrasi grafik dengan basis datanya di MapInfo, maka informasi dapat diketahui melalui seleksi basis data atau seleksi grafiknya.Basis Data, Map atau Graph AnalysisMapInfo menyediakan tiga jenis windows yang dapat menampilkan data anda. “Map Window” menampilkan data dalam format peta, The Browser window menampilkan data non-grafik dalam kolom dan baris, mirip dengan spreadsheets, dan the Browse merupakan perintah untuk menampilkan dan mengedit basis data. The Grapher window menampilkan data diagram dalam beberapa format, seperti Pie, Stacked Bar, 3D Bar, Area and X-Y graphs.Menampilkan Raster sebagai Background bagi VectorImage raster, seperti foto udara, peta hasil scan atau citra satelit dapat digunakan sebagai backgound peta (vektor). Sehingga penyajian peta akan tampak lebih baik dan presisi dengan detail yang match dengan raster sebagai backgorund. Dalam MapInfo juga dapat melakukan “heads up” digitizing dengan mentrace feature pada raster untuk menghasilkan feture vektor yang dapat diintegrasikan dengan basis data di MapInfo. Image raster dari aplikasi bitmap atau aplikasi lainnya juga dapat digunakan untuk menampilkan logo perusahaan di MapInfo. Beberapa format raster yang dapat dibaca oleh MapInfo dapat dilihat pada tabel berikut :File FormatFile ExtensionByte Interleave Format*.BILWindows TM Bitmap*.BMPCompuserve ® Garphics Interchange File*.GIFJoint Photographic Experts Group (JPEG) format*.JPGWindows TM Picture format*.PCXTarga Fiel Format*.TGATagged Image File Format (TIFF)*.TIFSupport untuk region yang luas dan object PolylineMapInfo dapat mensupport region dan polyline yang mencapai 32.767 segments, sehingga dapat dibuat dan menyimpan informasi geografi yang kompleks.Hot ViewsMapInfo dapat melakukan update data dari satu window yang akan berpengaruh terhadap data pada window lainnya. Sebagai contoh, jika akan menseleksi informasi pada browser (window MapInfo yang menampilkan tabel dalam baris dan kolom) maka grafik pada “Map window” yang berkorespondensi dengan informasi pada browser akan terseleksi pula. Dan dapat dilakukan updating dari salah satu window ini .SQL SelectionDapat memilih dan mengkorelasikan beberapa basis data dengan menggunakan structured query language (SQL). Fasilitas ini berguna untuk mempbuat query yang kompleks dari basis data grafik dan non-grafik yang berhubungan. SQL ini merupakan msein basis data di MapInfo.GeocodingGeocoding adalah kemampuan untuk me-match data tekstual dengan komponen geografik terhadap lokasi fisik dari suatu peta. Contoh : sebuah perusahaan melakukan geocoding pada basis data klien-nya dengan basis data jaringan jalan untuk kepentingan analisis pasar.Windows Bitmap atau Metafile exportBeberapa window pada MapInfo, apakah itu browser window, Map window dapat di export ke format Windows bitmap atau Metafile agar dapat digunakan untuk apliaksi windows lainnya. Seperti word processors, spreadsheets, paint programs atau desktop publishers.Import / Export UtilitiesMapInfo menyediakan beberapa fungsi untuk meng-import dan meng-export data. Dengan demikian dapat dibuka data grafik dan data tekstual dengan aplikasi lainnya.ODBC Table SupportMapInfo menyediakan interface untuk ODBC. Dengan interface ini, user dapat menggunakan program basis data seperti :Oracle 8iSybase 10.xDB2/2Access 2.0 , 7.0SQL ServerGupta SQL BaseEtc.OLE 2.0 CompliantWindows-windows dari mapInfo dapat dibuka dan diedit dalam aplikasi Microsoft seperti Word 6+, Excel 5+ (dan beberapa software yang mempunyai kemampuan OLE 2.0).Koneksi ke InternetAplikasi yang dibuat dengan MapInfo pada saat ini telah dapat ditampilkan dan diakses melalui jaringan internet.Versi terbaru MapInfo saat ini adalah versi 7.0. (pada saat diktat ini ditulis) serta menjual produk tambahan secara terpisah. Modul-modul tersebut diantarnya adalah MapBasic (bahasa skrip untuk mengoptimalkan unjuk kerja aplikasi SIG yang menggunakan MapInfo), MapX (komponen perangkat lunak yang dapat diintegrasikan dengan salah satu bahasa pemrograman komputer untuk membangun aplikasi SIG yang berkemampuan setara dengan kemampuan MapInfo), MapXTreme (MapX untuk aplikasi SIG yang terkoneksi dengan jaringan internet ) dsb.InstalasiSistem yang dibutuhkan untuk proses instalasi MapInfo sebagai berikut :Sistem operasi Windows 95/98Memory : MapInfo versi 4.0 membutuhkan 8 MB RAM dengan PC minimum 486Space disk : Software MapInfo sebesar 5.5 MB. Untuk instalasi standar dibutuhkan 19.5 MB dengan space untuk data adalah 4 MB.Monitor : VGA atau yang memiliki resolusi yang lebih baik.Sistem Windows NTMemory : MapInfo versi 4.0 membutuhkan 8 MB RAM dengan PC minimum 486Space disk : Software MapInfo sebesar 5.5 MB. Untuk instalasi standar dibutuhkan 19.5 MB dengan space untuk data adalah 4 MB.Monitor : VGA atau yang memiliki resolusi yang lebih baik.Sistem Windows 2000/ XP Profesional / XP HomeMemory : MapInfo versi 6.0, 6.5 dan 7.0 membutuhkan minimum 32 MB RAMSpace disk : disesuaikan dengan setiap komponen pada proses instalasi.Monitor : 16 atau 24 bit color SVGA atau yang memiliki resolusi yang lebih baik.Sebelum melakukan instalasi, sebaiknya tulis terlebih dahulu serial number-nya. Jika komputer dilengkapi modem, pastikan form informasi registrasi elektronik telah diisi dan mengirimkannnya ke MapInfo Corporation. Setelah dikirim, maka MapInfo Corporation akan mengirimkan data ke file secara gratis. Jika Installer MapInfo Profesional 6.0 mendeteksi bahwa MapInfo Profesional versi lain telah terinstal, maka selanjutnya akan mengkopi MAPINFO.WOR, STARTUP.WOR dan MAPINFO.PRF dari direktori operasi sistem ke \ ApplicationData \ MapInfo \ MapInfo.Jika diinginkan menginstal MapBasic, langkah pertama adalah menginstal MapInfo terlebih dahulu ke sistem komputer. Jika windows configuration anda tidak memiliki MapInfo program group, proses instalasi akan dimulai dengan meng-create program group, selanjutnya proses instalasi akan meng-create MapInfo icon pada group. Proses instalasi akan berlangsung secara otomatis.Tipe Setup akan ditampilkan : Tipikal Workstation adalah yang palung banyak digunakan oleh user, Cutom Installation cocok digunakan bagi advanced user, dan network installation di desain bagi administrator jaringan.Tipikal InstalasiTypical Workstation InstallationInstalasi ini dipilih untuk menginstal MapInfo Profesional program files, Online Help, Tools, Universal Translator, dan Crystal Report. Untuk ArchLink tidak dipilih. Untuk menginstal Typical Workstation :Pilih Typical Workstation Installation, Folder tujuan akan ditampilkanPilih Next jika folder tujuan telah diterima dan melanjutnkan proses instalasi, atau pilih Change untuk mengubah folder tujuan.Persiapan instalasi ditampilkan, klik instal untuk memulai proses instalasi. Klik Back untuk kembali ke tampilan sebelumnya.Progress proses instalasi akan ditampilkan.Akan ditampilkan Instalasi Complete, Pilih Finish untuk kembali ke tampilan Install Product.Costum Workstation InstallationPilih proses instalasi ini untuk memeilih komponen MapInfo Profesional 6.0 yang akan diinstal. Untuk melakukan Custom Instalasi:1. Pilih Custom Installation, Custom SetUp ditampilkan.2. Pilihan untuk Custom SetUp ditampilkan termasuk didalamnya adalah MapInfo Profesional, Tools Translator, dan Help Files. Setiap fitur diberikan gambaran dan juga diberitahu space disk yang dibutuhkan. Klik pada icon feature untuk menginstal fitur tersebut.Network InstallationPilih jenis instalasi ini, jika akan digunakan untuk Administrator Jaringan.Untuk menginstal Network Instalasi pilih Network Installation. Akan ditampilkan Screen Administrator Selection termasuk di dalamnya adalah option untuk setup jaringan, yaitu MapInfo Profrsional, Tools, Translator, dan File Help. Setiap fitur diberikan gambaran dan diberitahu space disk yang dibutuhkan. Klik pada icon untuk menginstal fitur yang diinginkan.Instal Driver ODBCJika ingin menggunakan konektivitas MapInfo remote database dan menginstal tambahan driver ODBC, maka klik ‘Yes’. Untuk mengetahui informasi lenih lanjut tentang cara mengakses remote database MapInfo, klik File > Open ODBC table pada MapInfo Reference. Selanjutnya utnuk menginstall DBMS sebagai berikut :1. Pilih Install Product dari MapInfo CD Browser.2. Pilih DBMS Support. MapInfo akan menampilkan RDBMS Support dalam dua pilihan, yaitu DBMS Support dan Install IUS Driver.3. Pilih Next untuk melanjutkan proses instalasi. Informasi License akan ditampilkan. Pilih ‘Yes’ untuk menerima pernyataan dan melanjutkan proses instalasi.4. Select Component ditampilkan.Ditampilkan kotak dialog pilihan lokasi tujuan yang merupakan indikasi temapt MapInfo telah terinstal. Pilih Browse button untuk menampilkan kotak dialog Folder yang dipilih. Klik next untuk melanjutkan proses instalasi.5. Selanjutnya, ditampilkan komponen yang akan dipilih. Klik komponen mana yang akan diinstal.MapInfo DBC Connectivity Support : pilih option ini untuk menginstal MapInfo yang mendukung OpenDatabase Connectivity.Oracle8i Spatial Object Support For MapInfo : Pilih option ini untuk menginstal MapInfo yang mendukung Oracle8i Spatial Object. Anda perlu menginstal Oracle Client versi 8.1.5 untuk menjalankan fungsi ini.MapInfo DAO (Microsoft Access) Support : pilih option ini untuk menginstal MapInfo yang mendukung table pada Microsoft Access.6. Akan ditampilkan Folder Program7. MDAC-DAO_ODBC installer ditempatkan pada direktori yang telah dipilih pada langkah keenam.8. Akan ditampilkan MDAC-DAO-ODBC Welcome, selanjutnya pilih Next.9. Akan ditampilkan komponen yang dipilih. Klik margin kiri dari list bountuk memilih driver. Untuk membatalkan pilihan, clear-kan tanda check pada margin. Akan ditampilkan informasi space disk yang dibutuhkan untuk ODBC/MDAC. Selanjtunya, pilih Next.10. Dialog Install Shield Wizard akan ditampilkan. Klik Finish untuk mengakhiri SetUp.Konsep MappingUntuk menggunakan MapInfo, dibutuhkan file yang terdiri atas record dan peta yang berasal dari MapInfo atau dibuat sendiri. MapInfo mampu mengorganisasikan semua informasi tersebut baik berupa tekstual dan grafik dalam bentuk table. Setiap table merupakan files MapInfo Group yang menyusun file map lainnya atau basis data.Ketika file data di MapInfo dibuka, MapInfo membuat table. Table ini terdiri atas sedikitnya dua file terpisah. File pertama terdiri atas struktur data. File kedua terdiri atas data mentah. Semua table pada MapInfo akan memiliki dua tipe file di bawah ini.File.tab : file ini menggambarkan struktur dari table yang berupa file text kecil menggambarkan format file yang ada pada data.File.dat atau File.wks . dbf, xls : file ini merupakan isi dari tabulator data. Jika bekerja dengan dBase / Foxbase, delimited ASCII, Lotus 123 atau Microsoft Excel, MapInfo table akan terdiri atas file a.tab dan data. Untuk raster table extension ekuivalen dengan bmp, tif atau gif.Data dapat berupa objek grafik. Ketika koordinat X dan Y ditentukan pada record data, table akan juga terdiri atas object grafik. Jika grafik objek telah ada pada tabel, akan didapatkan dua file tambahan yang diasosiasikan dengan table :File.map : ini menggambarkan object grafik.File.id : file ini adalah refrensi silang yang menghubungkan data dengan object.Tabel juga memungkinkan untuk memasukkan file index. File index memungkinkan untuk proses pencarian object pada peta dengan menggunakan perintah find. Jika ingin menggunakan alamat, kota atau provinsi menggunakan perintah find maka field tersebut terlebih dahulu harus diberi index pada table. Index ditempatkan pada file.ind.

Pengertian Basis Data

1. Sistem Basis Data adalah suatu struktur yang terdiri dari sejumlah komponen fungsional (tabel) yang didalamnya terdapat kumpulan representasi fakta dunia nyata seperti manusia, barang, teks, bunyi, kombinasinya akan saling berhubungan dan terpadu untuk memenuhi suatu proses lalu menghasilkan informasi yang dapat diakses & dimanipulasi pemakai (user).2. Komponen Sistem Basis Data :● Perangkat Keras (Hardware)● Sistem Operasi (Operating System)● Basis Data (Database)● Sistem (Aplikasi/ Perangkat Lunak) Pengelolah Basis Data (DBMS)● Pemakai (User)● Aplikasi lain yang bersifat optional.● Perangkat Keras (Hardware)Perangkat keras yg biasa digunakan dalam sebuah basis data adalah:◦ Komputer (satu untuk sistem yg stand alone/ sistem jaringan)◦ Memori sekunder yg on – line (harddisk)◦ Memori sekunder yg off – line (flashdisk) untuk backUp data.◦ Media/ Perangkat Komputer (Sistem Jaringan, NIC)● Sistem Operasi (Operating System)Sistem operasi merupakan program yang mengaktifkan sistem komputer, mengendalikan seluruh sumber daya (resource) dalam komputer dan melakukan operasi - operasi dasar dalam komputer (operasi I/O, pengelolaan file, menjalankan aplikasi, dll).~ Contoh OS stand alone atau untuk client jaringan :◦ MS – DOS (Microsoft Disk Operating System)◦ MS – Windows 3.1◦ MS – Windows 2000◦ MS – Windows XP◦ MS – Windows Vista~ Contoh OS untuk server dalam suatu jaringan :◦ MS – Windows NT◦ MS – Windows 2003 Server◦ Linux◦ Unix◦ Sun – Solaris◦ Novel – Netware● Basis Data (Database)Sebuah sistem basis data dapat memiliki beberapa basis data. Setiap basis data dapat berisi sejumlah objek basis data (file/ tabel, indeks) Di samping menyimpan data, setiap basis data juga mengandung definisi struktur (baik untuk basis data maupun objek secara detail.● Sistem (Aplikasi/ Perangkat Lunak) Pengelolah Basis Data (DBMS)DataBase Management System, yaitu pengelolaan basis data secara fisik tidak dilakukan secara langsung,yang akan menentukan bagaimana data diorganisasikan, disimpan, diubah, dan diambil kembali serta menerapkan mekanisme pengamanan data, pemakaian data secara bersama, konsistensi data, dsb.Perangkat DBMS Sederhana: Perangkat DBMS Kompleks:♦ MS – Access ♦ MySQL♦ Bordland – Paradox ♦ MS – SQL Server♦ dBase IV ♦ Sybase.● Pemakai (User)Tipe user berdasarkan cara berinteraksi dengan sistem:◊ Programmer Aplikasi : Pemakai yang berinteraksi dengan basis data melalui DML yang disertakan dalam program yang ditulis.◊ User Mahir (Casual User) : Pemakai yang berinteraksi dengan sistem tanpa menulis program.◊ User Umum (End User/ Naive User) : Pemakai yang berinteraksi dengan sistem basis data melalui pemanggilan satu program aplikasi permanent yang ditulis & disediakan sebelumnya.◊ User Khusus (Specialized User) : Pemakai yang menulis aplikasi basis data non konvensional, seperti untuk aplikasi AI, Sistem Pakar, Pengolahan Citra.● Aplikasi lain yang bersifat optional.Aplikasi (perangkat lunak) lain ini bersifat optional yaitu tergantung kebutuhan kita. Beberapa contoh software development tools:• Visual Basic• Power Builder• C++• Visual C++• C++ Builder• Java• PHP• ASP• Delphi3. Abstraksi DataAda 3 level abstraksi data :1. Level Fisik (Physical Level)Merupakan level terendah dalam abstraksi data, yang menunjukkan bagaimana sesungguhnya suatu data disimpan.2. Level Konseptual (Conceptual Level)Merupakan level berikutnya dalam abstraksi data yang menggambarkan data apa yang secara fungsional disimpan dalam basis data dan hubungannya dengan data yang lain.3. Level Penampakan (View Level)Merupakan level tertinggi dari abstraksi data yang hanya menunjukkan sebagian dari basis data.

SQL

Sejarah
Sejarah SQL dimulai dari artikel seorang peneliti dari IBM bernama EF Codd yang membahas tentang ide pembuatan basis data relasional pada bulan Juni 1970. Artikel ini juga membahas kemungkinan pembuatan bahasa standar untuk mengakses data dalam basis data tersebut. Bahasa tersebut kemudian diberi nama SEQUEL (Structured English Query Language).
Setelah terbitnya artikel tersebut, IBM mengadakan proyek pembuatan basis data relasional berbasis bahasa SEQUEL. Akan tetapi, karena permasalahan hukum mengenai penamaan SEQUEL, IBM pun mengubahnya menjadi SQL. Implementasi basis data relasional dikenal dengan System/R.
Di akhir tahun 1970-an, muncul perusahaan bernama Oracle yang membuat server basis data populer yang bernama sama dengan nama perusahaannya. Dengan naiknya kepopuleran Oracle, maka SQL juga ikut populer sehingga saat ini menjadi standar de facto bahasa dalam manajemen basis data.
Standarisasi
Standarisasi SQL dimulai pada tahun 1986, ditandai dengan dikeluarkannya standar SQL oleh ANSI. Standar ini sering disebut dengan SQL86.Standar tersebut kemudian diperbaiki pada tahun 1989 kemudian diperbaiki lagi pada tahun 1992. Versi terakhir dikenal dengan SQL92. Pada tahun 1999 dikeluarkan standar baru yaitu SQL99 atau disebut juga SQL99, akan tetapi kebanyakan implementasi mereferensi pada SQL92.
Saat ini sebenarnya tidak ada server basis data yang 100% mendukung SQL92. Hal ini disebabkan masing-masing server memiliki dialek masing-masing.
Pemakaian dasar
Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition Language (DDL) dan Data Manipulation Language (DML). Implementasi DDL dan DML berbeda untuk tiap sistem manajemen basis data (SMBD)[1], namun secara umum implementasi tiap bahasa ini memiliki bentuk standar yang ditetapkan ANSI. Artikel ini akan menggunakan bentuk paling umum yang dapat digunakan pada kebanyakan SMBD.
Data Definition Language
DDL digunakan untuk mendefinisikan, mengubah, serta menghapus basis data dan objek-objek yang diperlukan dalam basis data, misalnya tabel, view, user, dan sebagainya. Secara umum, DDL yang digunakan adalah CREATE untuk membuat objek baru, USE untuk menggunakan objek, ALTER untuk mengubah objek yang sudah ada, dan DROP untuk menghapus objek. DDL biasanya digunakan oleh administrator basis data dalam pembuatan sebuah aplikasi basis data.
CREATE
CREATE digunakan untuk membuat basis data maupun objek-objek basis data. SQL yang umum digunakan adalah:CREATE DATABASE nama_basis_data
CREATE DATABASE membuat sebuah basis data baru.CREATE TABLE nama_tabel
CREATE TABLE membuat tabel baru pada basis data yang sedang aktif. Secara umum, perintah ini memiliki bentukCREATE TABLE [nama_tabel](nama_field1 tipe_data [constraints][,nama_field2 tipe_data,...])
atauCREATE TABLE [nama_tabel](nama_field1 tipe_data [,nama_field2 tipe_data,...][CONSTRAINT nama_field constraints])
dengan:
nama_field adalah nama kolom (field) yang akan dibuat. Beberapa sistem manajemen basis data mengizinkan penggunaan spasi dan karakter nonhuruf pada nama kolom.
tipe_data tergantung implementasi sistem manajemen basis data. Misalnya, pada MySQL, tipe data dapat berupa VARCHAR, TEXT, BLOB, ENUM, dan sebagainya.
constraints adalah batasan-batasan yang diberikan untuk tiap kolom. Ini juga tergantung implementasi sistem manajemen basis data, misalnya NOT NULL, UNIQUE, dan sebagainya. Ini dapat digunakan untuk mendefinisikan kunci primer (primary key) dan kunci asing (foreign key).
Satu tabel boleh tidak memiliki kunci primer sama sekali, namun sangat disarankan mendefinisikan paling tidak satu kolom sebagai kunci primer.
Contoh:CREATE TABLE user(username VARCHAR(30) CONSTRAINT PRIMARY KEY,passwd VARCHAR(20) NOT NULL,tanggal_lahir DATETIME);
akan membuat tabel user seperti berikut:
username
passwd
tanggal_lahir
Data Manipulation Language
DML digunakan untuk memanipulasi data yang ada dalam suatu tabel. Perintah yang umum dilakukan adalah:
SELECT untuk menampilkan data
INSERT untuk menambahkan data baru
UPDATE untuk mengubah data yang sudah ada
DELETE untuk menghapus data
SELECT
SELECT adalah perintah yang paling sering digunakan pada SQL, sehingga terkadang istilah query dirujukkan pada perintah SELECT. SELECT digunakan untuk menampilkan data dari satu atau lebih tabel, biasanya dalam sebuah basis data yang sama. Secara umum, perintah SELECT memiliki bentuk lengkap:SELECT [nama_tabel|alias.]nama_field1 [AS alias1] [, nama_field2, ...]FROM nama_tabel1 [AS alias1] [INNER|LEFT|RIGHT JOIN tabel2 ON kondisi_penghubung][, nama_tabel3 [AS alias3], ...][WHERE kondisi][ORDER BY nama_field1 [ASC|DESC][, nama_field2 [ASC|DESC], ...]][GROUP BY nama_field1[, nama_field2, ...]][HAVING kondisi_aggregat]
dengan:
kondisi adalah syarat yang harus dipenuhi suatu data agar ditampilkan.
kondisi_aggregat adalah syarat khusus untuk fungsi aggregat.
Kondisi dapat dihubungkan dengan operator logika, misalnya AND, OR, dan sebagainya.
Contoh:
Diasumsikan terdapat tabel user yang berisi data sebagai berikut.
username
passwd
tanggal_lahir
jml_transaksi
total_transaksi
Aris
6487AD5EF
09-09-1987
6
10.000
Budi
97AD4erD
01-01-1994
0
0
Charlie
548794654
06-12-1965
24
312.150
Daniel
FLKH947HF
24-04-1980
3
0
Erik
94RER54
17-08-1945
34
50.000
Contoh 1: Tampilkan seluruh data.SELECT *FROM user
Contoh 2: Tampilkan pengguna yang tidak pernah bertransaksi.SELECT *FROM userWHERE total_transaksi = 0
Contoh 3: Tampilkan username pengguna yang bertransaksi kurang dari 10 dan nilainya lebih dari 1.000.SELECT usernameFROM userWHERE jml_transakai <> 1000
Contoh 4: Tampilkan total nominal transaksi yang sudah terjadi.SELECT SUM(total_transaksi) AS total_nominal_transaksiFROM user
Contoh 5: Tampilkan seluruh data diurutkan berdasarkan jumlah transaksi terbesar ke terkecil.SELECT *FROM userORDER BY jml_transaksi DESC
Fungsi aggregat
Beberapa SMBD memiliki fungsi aggregat, yaitu fungsi-fungsi khusus yang melibatkan sekelompok data (aggregat). Secara umum fungsi aggregat adalah:
SUM untuk menghitung total nominal data
COUNT untuk menghitung jumlah kemunculan data
AVG untuk menghitung rata-rata sekelompok data
MAX dan MIN untuk mendapatkan nilai maksimum/minimum dari sekelompok data.
Fungsi aggregat digunakan pada bagian SELECT. Syarat untuk fungsi aggregat diletakkan pada bagian HAVING, bukan WHERE.
Subquery
Ada kalanya query dapat menjadi kompleks, terutama jika melibatkan lebih dari satu tabel dan/atau fungsi aggregat. Beberapa SMBD mengizinkan penggunaan subquery. Contoh:
Tampilkan username pengguna yang memiliki jumlah transaksi terbesar.SELECT usernameFROM userWHERE jml_transaksi =(SELECT MAX(jml_transaksi)FROM user)
INSERT
Untuk menyimpan data dalam tabel dipergunakan sintaks:INSERT INTO [NAMA_TABLE] ([DAFTAR_FIELD]) VALUES ([DAFTAR_NILAI])
Contoh:INSERT INTO TEST (NAMA, ALAMAT, PASSWORD) VALUES ('test', 'alamat', 'pass');
UPDATE
Untuk mengubah data menggunakan sintaks:UPDATE [NAMA_TABLE] SET [NAMA_KOLOM]=[NILAI] WHERE [KONDISI]
Contoh:UPDATE Msuser set password="123456" where username="abc"
DELETE
Untuk menghapus data dipergunakan sintaks:DELETE FROM [NAMA_TABLE] [KONDISI]
Contoh:DELETE FROM TEST WHERE NAMA='test';

Tutorial Map Info - SIG

PendahuluanMapInfo adalah salah satu software pengolah Sistem Informasi Geografi (SIG). MapInfo diminati oleh pemakai SIG karena mempunyai karakteristik yang menarik, seperti mudah digunakan, harga relatif murah, tampilan interaktif, user frendly dan dapat dicustomized menggunakan bahasa skrip yang dimiliki.Pembentukan peta di MapInfo dapat diilustrasikan secara analog. Dalam MapInfo suatu “table” dapat digambarkan sebagai satu lembar (sheet) dari suatu film dan suatu komposisi peta di MapInfo merupakan gabungan dari beberapa lembar (sheet) film tersebut yang disusun secara bertumpuk. Istilah yang umum digunakan untuk susunan tersebut adalah “layering”.Setiap lembar (sheet) merupakan layer yang dapat digabungkan dan di-matchkan untuk membentuk suatu peta, sehingga dapat dilakukan analisis dari peta yang terbentuk tersebut. Satu hal yang perlu diingat adalah ketika MapInfo melakukan “redraw” peta, MapInfo akan melakukan redraw dari layer yang tersusun paling bawah kemudian ke layer di atasnya, dan sebaliknya jika ingin diketahui informasi dari suatu peta.Karakteristik MapInfoGraphical User Interface yang bersifat umumUser interface dari GUI versi MapInfo adalah identik dan dapat terbaca pada semua platform yang disupport oleh MapInfo. Sehingga user dapat dengan leluasa membuka data pada sistem (platform) yang berlainan.Table structureStruktur data binary MapInfo adalah identik dengan semua platform yang disupport oleh MapInfo. Data dapat dibuka dan dibaca oleh platform yang berbeda, dan dapat didstribusikan melalui network ke user lain tanpa diterjemahkan terlebih dahulu.Grafik yang dintegrasikan dengan basis dataIstilah yang paling tepat untuk menggambarkan MapInfo adalah “geographic or graphic database”. MapInfo menggunakan basis data tekstual yang diintegrasikan dengan data grafiknya.Basis Data atau Map SelectionDengan adanya integrasi grafik dengan basis datanya di MapInfo, maka informasi dapat diketahui melalui seleksi basis data atau seleksi grafiknya.Basis Data, Map atau Graph AnalysisMapInfo menyediakan tiga jenis windows yang dapat menampilkan data anda. “Map Window” menampilkan data dalam format peta, The Browser window menampilkan data non-grafik dalam kolom dan baris, mirip dengan spreadsheets, dan the Browse merupakan perintah untuk menampilkan dan mengedit basis data. The Grapher window menampilkan data diagram dalam beberapa format, seperti Pie, Stacked Bar, 3D Bar, Area and X-Y graphs.Menampilkan Raster sebagai Background bagi VectorImage raster, seperti foto udara, peta hasil scan atau citra satelit dapat digunakan sebagai backgound peta (vektor). Sehingga penyajian peta akan tampak lebih baik dan presisi dengan detail yang match dengan raster sebagai backgorund. Dalam MapInfo juga dapat melakukan “heads up” digitizing dengan mentrace feature pada raster untuk menghasilkan feture vektor yang dapat diintegrasikan dengan basis data di MapInfo. Image raster dari aplikasi bitmap atau aplikasi lainnya juga dapat digunakan untuk menampilkan logo perusahaan di MapInfo. Beberapa format raster yang dapat dibaca oleh MapInfo dapat dilihat pada tabel berikut :File FormatFile ExtensionByte Interleave Format*.BILWindows TM Bitmap*.BMPCompuserve ® Garphics Interchange File*.GIFJoint Photographic Experts Group (JPEG) format*.JPGWindows TM Picture format*.PCXTarga Fiel Format*.TGATagged Image File Format (TIFF)*.TIFSupport untuk region yang luas dan object PolylineMapInfo dapat mensupport region dan polyline yang mencapai 32.767 segments, sehingga dapat dibuat dan menyimpan informasi geografi yang kompleks.Hot ViewsMapInfo dapat melakukan update data dari satu window yang akan berpengaruh terhadap data pada window lainnya. Sebagai contoh, jika akan menseleksi informasi pada browser (window MapInfo yang menampilkan tabel dalam baris dan kolom) maka grafik pada “Map window” yang berkorespondensi dengan informasi pada browser akan terseleksi pula. Dan dapat dilakukan updating dari salah satu window ini .SQL SelectionDapat memilih dan mengkorelasikan beberapa basis data dengan menggunakan structured query language (SQL). Fasilitas ini berguna untuk mempbuat query yang kompleks dari basis data grafik dan non-grafik yang berhubungan. SQL ini merupakan msein basis data di MapInfo.GeocodingGeocoding adalah kemampuan untuk me-match data tekstual dengan komponen geografik terhadap lokasi fisik dari suatu peta. Contoh : sebuah perusahaan melakukan geocoding pada basis data klien-nya dengan basis data jaringan jalan untuk kepentingan analisis pasar.Windows Bitmap atau Metafile exportBeberapa window pada MapInfo, apakah itu browser window, Map window dapat di export ke format Windows bitmap atau Metafile agar dapat digunakan untuk apliaksi windows lainnya. Seperti word processors, spreadsheets, paint programs atau desktop publishers.Import / Export UtilitiesMapInfo menyediakan beberapa fungsi untuk meng-import dan meng-export data. Dengan demikian dapat dibuka data grafik dan data tekstual dengan aplikasi lainnya.ODBC Table SupportMapInfo menyediakan interface untuk ODBC. Dengan interface ini, user dapat menggunakan program basis data seperti :Oracle 8iSybase 10.xDB2/2Access 2.0 , 7.0SQL ServerGupta SQL BaseEtc.OLE 2.0 CompliantWindows-windows dari mapInfo dapat dibuka dan diedit dalam aplikasi Microsoft seperti Word 6+, Excel 5+ (dan beberapa software yang mempunyai kemampuan OLE 2.0).Koneksi ke InternetAplikasi yang dibuat dengan MapInfo pada saat ini telah dapat ditampilkan dan diakses melalui jaringan internet.Versi terbaru MapInfo saat ini adalah versi 7.0. (pada saat diktat ini ditulis) serta menjual produk tambahan secara terpisah. Modul-modul tersebut diantarnya adalah MapBasic (bahasa skrip untuk mengoptimalkan unjuk kerja aplikasi SIG yang menggunakan MapInfo), MapX (komponen perangkat lunak yang dapat diintegrasikan dengan salah satu bahasa pemrograman komputer untuk membangun aplikasi SIG yang berkemampuan setara dengan kemampuan MapInfo), MapXTreme (MapX untuk aplikasi SIG yang terkoneksi dengan jaringan internet ) dsb.InstalasiSistem yang dibutuhkan untuk proses instalasi MapInfo sebagai berikut :Sistem operasi Windows 95/98Memory : MapInfo versi 4.0 membutuhkan 8 MB RAM dengan PC minimum 486Space disk : Software MapInfo sebesar 5.5 MB. Untuk instalasi standar dibutuhkan 19.5 MB dengan space untuk data adalah 4 MB.Monitor : VGA atau yang memiliki resolusi yang lebih baik.Sistem Windows NTMemory : MapInfo versi 4.0 membutuhkan 8 MB RAM dengan PC minimum 486Space disk : Software MapInfo sebesar 5.5 MB. Untuk instalasi standar dibutuhkan 19.5 MB dengan space untuk data adalah 4 MB.Monitor : VGA atau yang memiliki resolusi yang lebih baik.Sistem Windows 2000/ XP Profesional / XP HomeMemory : MapInfo versi 6.0, 6.5 dan 7.0 membutuhkan minimum 32 MB RAMSpace disk : disesuaikan dengan setiap komponen pada proses instalasi.Monitor : 16 atau 24 bit color SVGA atau yang memiliki resolusi yang lebih baik.Sebelum melakukan instalasi, sebaiknya tulis terlebih dahulu serial number-nya. Jika komputer dilengkapi modem, pastikan form informasi registrasi elektronik telah diisi dan mengirimkannnya ke MapInfo Corporation. Setelah dikirim, maka MapInfo Corporation akan mengirimkan data ke file secara gratis. Jika Installer MapInfo Profesional 6.0 mendeteksi bahwa MapInfo Profesional versi lain telah terinstal, maka selanjutnya akan mengkopi MAPINFO.WOR, STARTUP.WOR dan MAPINFO.PRF dari direktori operasi sistem ke \ ApplicationData \ MapInfo \ MapInfo.Jika diinginkan menginstal MapBasic, langkah pertama adalah menginstal MapInfo terlebih dahulu ke sistem komputer. Jika windows configuration anda tidak memiliki MapInfo program group, proses instalasi akan dimulai dengan meng-create program group, selanjutnya proses instalasi akan meng-create MapInfo icon pada group. Proses instalasi akan berlangsung secara otomatis.Tipe Setup akan ditampilkan : Tipikal Workstation adalah yang palung banyak digunakan oleh user, Cutom Installation cocok digunakan bagi advanced user, dan network installation di desain bagi administrator jaringan.Tipikal InstalasiTypical Workstation InstallationInstalasi ini dipilih untuk menginstal MapInfo Profesional program files, Online Help, Tools, Universal Translator, dan Crystal Report. Untuk ArchLink tidak dipilih. Untuk menginstal Typical Workstation :Pilih Typical Workstation Installation, Folder tujuan akan ditampilkanPilih Next jika folder tujuan telah diterima dan melanjutnkan proses instalasi, atau pilih Change untuk mengubah folder tujuan.Persiapan instalasi ditampilkan, klik instal untuk memulai proses instalasi. Klik Back untuk kembali ke tampilan sebelumnya.Progress proses instalasi akan ditampilkan.Akan ditampilkan Instalasi Complete, Pilih Finish untuk kembali ke tampilan Install Product.Costum Workstation InstallationPilih proses instalasi ini untuk memeilih komponen MapInfo Profesional 6.0 yang akan diinstal. Untuk melakukan Custom Instalasi:1. Pilih Custom Installation, Custom SetUp ditampilkan.2. Pilihan untuk Custom SetUp ditampilkan termasuk didalamnya adalah MapInfo Profesional, Tools Translator, dan Help Files. Setiap fitur diberikan gambaran dan juga diberitahu space disk yang dibutuhkan. Klik pada icon feature untuk menginstal fitur tersebut.Network InstallationPilih jenis instalasi ini, jika akan digunakan untuk Administrator Jaringan.Untuk menginstal Network Instalasi pilih Network Installation. Akan ditampilkan Screen Administrator Selection termasuk di dalamnya adalah option untuk setup jaringan, yaitu MapInfo Profrsional, Tools, Translator, dan File Help. Setiap fitur diberikan gambaran dan diberitahu space disk yang dibutuhkan. Klik pada icon untuk menginstal fitur yang diinginkan.Instal Driver ODBCJika ingin menggunakan konektivitas MapInfo remote database dan menginstal tambahan driver ODBC, maka klik ‘Yes’. Untuk mengetahui informasi lenih lanjut tentang cara mengakses remote database MapInfo, klik File > Open ODBC table pada MapInfo Reference. Selanjutnya utnuk menginstall DBMS sebagai berikut :1. Pilih Install Product dari MapInfo CD Browser.2. Pilih DBMS Support. MapInfo akan menampilkan RDBMS Support dalam dua pilihan, yaitu DBMS Support dan Install IUS Driver.3. Pilih Next untuk melanjutkan proses instalasi. Informasi License akan ditampilkan. Pilih ‘Yes’ untuk menerima pernyataan dan melanjutkan proses instalasi.4. Select Component ditampilkan.Ditampilkan kotak dialog pilihan lokasi tujuan yang merupakan indikasi temapt MapInfo telah terinstal. Pilih Browse button untuk menampilkan kotak dialog Folder yang dipilih. Klik next untuk melanjutkan proses instalasi.5. Selanjutnya, ditampilkan komponen yang akan dipilih. Klik komponen mana yang akan diinstal.MapInfo DBC Connectivity Support : pilih option ini untuk menginstal MapInfo yang mendukung OpenDatabase Connectivity.Oracle8i Spatial Object Support For MapInfo : Pilih option ini untuk menginstal MapInfo yang mendukung Oracle8i Spatial Object. Anda perlu menginstal Oracle Client versi 8.1.5 untuk menjalankan fungsi ini.MapInfo DAO (Microsoft Access) Support : pilih option ini untuk menginstal MapInfo yang mendukung table pada Microsoft Access.6. Akan ditampilkan Folder Program7. MDAC-DAO_ODBC installer ditempatkan pada direktori yang telah dipilih pada langkah keenam.8. Akan ditampilkan MDAC-DAO-ODBC Welcome, selanjutnya pilih Next.9. Akan ditampilkan komponen yang dipilih. Klik margin kiri dari list bountuk memilih driver. Untuk membatalkan pilihan, clear-kan tanda check pada margin. Akan ditampilkan informasi space disk yang dibutuhkan untuk ODBC/MDAC. Selanjtunya, pilih Next.10. Dialog Install Shield Wizard akan ditampilkan. Klik Finish untuk mengakhiri SetUp.Konsep MappingUntuk menggunakan MapInfo, dibutuhkan file yang terdiri atas record dan peta yang berasal dari MapInfo atau dibuat sendiri. MapInfo mampu mengorganisasikan semua informasi tersebut baik berupa tekstual dan grafik dalam bentuk table. Setiap table merupakan files MapInfo Group yang menyusun file map lainnya atau basis data.Ketika file data di MapInfo dibuka, MapInfo membuat table. Table ini terdiri atas sedikitnya dua file terpisah. File pertama terdiri atas struktur data. File kedua terdiri atas data mentah. Semua table pada MapInfo akan memiliki dua tipe file di bawah ini.File.tab : file ini menggambarkan struktur dari table yang berupa file text kecil menggambarkan format file yang ada pada data.File.dat atau File.wks . dbf, xls : file ini merupakan isi dari tabulator data. Jika bekerja dengan dBase / Foxbase, delimited ASCII, Lotus 123 atau Microsoft Excel, MapInfo table akan terdiri atas file a.tab dan data. Untuk raster table extension ekuivalen dengan bmp, tif atau gif.Data dapat berupa objek grafik. Ketika koordinat X dan Y ditentukan pada record data, table akan juga terdiri atas object grafik. Jika grafik objek telah ada pada tabel, akan didapatkan dua file tambahan yang diasosiasikan dengan table :File.map : ini menggambarkan object grafik.File.id : file ini adalah refrensi silang yang menghubungkan data dengan object.Tabel juga memungkinkan untuk memasukkan file index. File index memungkinkan untuk proses pencarian object pada peta dengan menggunakan perintah find. Jika ingin menggunakan alamat, kota atau provinsi menggunakan perintah find maka field tersebut terlebih dahulu harus diberi index pada table. Index ditempatkan pada file.ind.

Diagram Entity - ER

Penggambaran Model ER secara sistematis dilakukan melalui diagram ER. Notasi-notasi simbolik di dalam Diagram ER yang dapat digunakan adalah:a. Persegi panjang, menyatakan Himpunan Entitas.b. Lingkaran/Elips, menyatakan atribut (Atribut yang berfungsi sebagai key digaris bawahi).c. Belah ketupat, menyatakan Himpunan Relasi.d. Garis, sebagai penghubung antara Himpunan Relasi dengan Himpunan Entitas dan Himpunan Entitas dengan Atributnya.e. Kardinalitas Relasi dapat dinyatakan dengan banyaknya garis cabang atau dengan pemakaian angka (1 dan 1 untuk relasi one to one, 1 dan N untuk relasi one to many atau N dan N untuk relasi many to many).Tahap Pembuatan Diagram ERDiagram ER selalu dibuat secara bertahap. Paling tidak ada dua kelompok penahapan yang biasa ditempuh di dalam pembuatan diagram ER, yaitu :a. Tahap pembuatan Diagram ER awal (preliminary design). Yaitu :- Melakukan pengidentifikasian dan menetapkan seluruh himpunan entitas yang akan terlibat. - Menentukan atribut-atribut key dari masing-masing himpunan entitas. - Mengidentifikasi dan menetapkan seluruh himpunan relasi di antara himpunan entitas-himpunan entitas yang ada beserta foreign key nya. - Menentukan derajat/kardinalitas relasi untuk setiap himpunan relasi. - Melengkapi himpunan entitas dan himpunan relasi dengan atribut-atribut deskriptif (non key).b. Tahap optimasi Diagram ER (final design).

SBD

1. Bahasa Basis Data (Database Language)DBMS merupakan perantara bagi pemakai dengan basis data dalam disk, cara berinteraksi/ komunikasi antara pemakai dengan basis data tersebut diatur dalam suatu bahasa khusus yang ditetapkan oleh pembuat DBMS.Sebuah bahasa basis data dibagi 3:1. Data Definiton Language (DDL)Struktur basis data yang menggambarkan desain basis data secara keseluruhan dispesifikasikan dengan bahasa khusus yang disebut data definition language (DDL). Dengan bahasa inilah kita dapat:· Membuat table baru· Membuat indeks· Mengubah table· Menentukan struktur penyimpanan tableHasil dari kompilasi perintah DDL adalah kumpulan tabel yang disimpan dalam file khusus yang disebut : Data Dictionary ( Kamus Data) merupakan suatu meta data yaitu data yang mendeskripsikan data sesungguhnya. Kamus data ini selalu diakses dalam suatu operasi basis data sebelum suatu file data yang sesungguhya diakses.2. Data Manipulation Language (DML)Merupakan bentuk bahasa basis data yang berguna untuk melakukan manipulasi dan pengambilan data pada suatu basis data. Manipulasi data dapat berupa:≈ Penyisipan/ penambahan data baru ke suatu basis data.Insert into namatabel (field1, field2, …)Values (nilai1, nilai2, …);≈ Penghapusan data dari suatu basis data.Delete from namatabel (where kondisi);≈ Pengubahan data di suatu basis data.Update namatabel set field1= nilai1, field2= nilai2, …(Where kondisi);≈ Menampilkan data.Select field1, field2, … from namatabel[Where kondisi]DML merupakan bahasa yang bertujuan memudahkan pemakai mengakses data sebagaimana dipresentasikan oleh model data. Ada 2 jenis DML, yaitu:1. Prosedural, yang mensyaratkan agar pemakai untuk menentukan data apa yang diinginkan serta bagaimana mendapatkannya.2. Non Prosedural, yang membuat pemakai dapat menentukan data apa yang diinginkan tanpa menyebutkan bagaimana cara mendapatkannya.3. Data Control Language (DCL)Data Control Language terdiri atas sekelompok perintah SQL untuk memberikan hak otoritas mengakses database. Beberapa dari perintah ini merupakan fungsi dari DBA (Database Administrator).Perintah SQL DCL : Commit, Rollback, Revoke, Grant.<>

Rabu, 28 Januari 2009

Kegagalan Akses ke Basisdata

Pemasangan artikel Memutihkan Persoalan Hak Intelektual lewat Dalih Sejarah hari Senin lalu dihinggapi perasaan sedikit risau: mekanisme pemutakhiran (update) artikel ke basisdata gagal, akibatnya saya mengalami kesulitan memperbaiki kategori entri tersebut yang kosong dan kemungkinan komentar dari pengunjung tidak dapat diisikan (karena melibatkan proses pemutakhiran ke basisdata). Pesan yang saya terima adalah kode kegagalan 500 Internal Server Error dari server Web Apache dan jika ditelusuri ke error_log yang dihasilkan Apache, satu-satunya informasi yang diberikan adalah Premature end of script.

Saya coba telusuri beberapa rujukan, umumnya disebutkan bahwa persoalan tersebut bersumber dari izin yang dipasang untuk sebuah berkas. Namun pengamatan saya pada mt.cgi yang digunakan oleh Movable Type sebagai “pintu gerbang” semua urusan menghasilkan kondisi yang sudah sesuai: berkas tersebut dapat dieksekusi lewat cara suexec. Semua berkas di bawahnya juga saya periksa lewat perintah ls -l rekursif, hasilnya juga semua dalam kondisi beres. Apakah ada yang berubah dengan konfigurasi di tempat hosting saya?

Sampai akhirnya sehari setelahnya saya baca entri dari mailing list ProNet bahwa Movable Type gagal menggunakan modul DBD::mysql versi terbaru, yang digunakan untuk akses ke basisdata. Modul terbaru ini terbawa secara otomatis oleh CPanel yang banyak digunakan di tempat hosting dan akibatnya terjadi persoalan seperti yang saya jumpai. Di blog ProNet disebutkan bahwa belum jelas persoalan tersebut memang semata-mata dengan DBD::mysql atau terbawa oleh CPanel.

Setelah saya konsultasikan dengan administrator CPanel tempat hosting, saya mendapat keterangan bahwa CPanel mereka beberapa hari lalu dimutakhirkan ke versi Release — sebagai ganti dari versi Stable yang digunakan sebelumnya. Hmm, ini sedikit “bertentangan” dengan prinsip saya yang cenderung konservatif untuk urusan mesin produksi. Saya membiarkan Debian “Woody” Stable bertahun-tahun untuk server Web milik organisasi kami.

Alhasil, karena saya masih perlu cukup waktu untuk tetap menggunakan tempat hosting tersebut, saya urus lagi agar CPanel dikembalikan ke versi Stable dan modul DBD::MySQL saya turunkan versinya menggunakan skrip

Representasi Basis Data Relasional dengan XML

Dalam merepresentasikan basis data
relasional dengan XML terdapat dua hal
yang harus diperhatikan, yaitu: skema
basis data/ struktur tabel dan isi data
yang tersimpan di dalam nya. Langkahlangkah
untuk merepresentasikan basis
data relasional adalah sebagai berikut :
1. Mengubah bentuk tabel menjadi
simpul-simpul dokumen XML
Langkah pertama dimulai dengan
mengubah data dalam tabel ke dalam
struktur dokumen XML. Perincian
bentuk dokumen XML yang
dipergunakan adalah:
o Nama basis data merupakan akar
simpul dokumen XML
o Elemen-elemen yang terletak
satu tingkat di dalam akar simpul
merupakan representasi dari tabel
entitas atau tabel relasi. Format
nama tag elemen-elemen tersebut
: < [nama tabel entitas | relasi] –
table>
o Elemen di dalam elemen entitas/
relasi merupakan representasi
baris-per-baris dari suatu tabel
entitas/ relasi tersebut.
o Elemen-elemen yang terletak di
dalam simpul entitas/ relasi
merupakan representasi dari
atribut suatu entitas/ relasi
tersebut. Di dalam basis data
relasional atribut merupakan
kolom-kolom tabel. Data-data
dalam tabel relasional merupakan
content dari elemen atribut.
2. Memperoleh informasi skema
basis data.
Skema basis data merinci hal-hal yang
bersifat khusus seperti tipe data, relasi,
kardinalitas, constraint, dan key. Salah
satu cara untuk menyimpan skema basis
data dalam bentuk XML adalah melalui
DTD.
Penerapan Representasi Basis
Data Relasional dengan XML
Relasional dengan XML
Dalam merepresentasikan basis data
relasional dengan XML terdapat dua hal
yang harus diperhatikan, yaitu: skema
basis data/ struktur tabel dan isi data
yang tersimpan di dalam nya. Langkahlangkah
untuk merepresentasikan basis
data relasional adalah sebagai berikut :
1. Mengubah bentuk tabel menjadi
simpul-simpul dokumen XML
Langkah pertama dimulai dengan
mengubah data dalam tabel ke dalam
struktur dokumen XML. Perincian
bentuk dokumen XML yang
dipergunakan adalah:
o Nama basis data merupakan akar
simpul dokumen XML
o Elemen-elemen yang terletak
satu tingkat di dalam akar simpul
merupakan representasi dari tabel
entitas atau tabel relasi. Format
nama tag elemen-elemen tersebut
: < [nama tabel entitas | relasi] –
table>
o Elemen di dalam elemen entitas/
relasi merupakan representasi
baris-per-baris dari suatu tabel
entitas/ relasi tersebut.
o Elemen-elemen yang terletak di
dalam simpul entitas/ relasi
merupakan representasi dari
atribut suatu entitas/ relasi
tersebut. Di dalam basis data
relasional atribut merupakan
kolom-kolom tabel. Data-data
dalam tabel relasional merupakan
content dari elemen atribut.
2. Memperoleh informasi skema
basis data.
Skema basis data merinci hal-hal yang
bersifat khusus seperti tipe data, relasi,
kardinalitas, constraint, dan key. Salah
satu cara untuk menyimpan skema basis
data dalam bentuk XML adalah melalui
DTD.

SQL (Structured Query Language)

SQL (Structured Query Language) adalah sebuah bahasa yang dipergunakan untuk mengakses data dalam basis data relasional. Bahasa ini secara de facto merupakan bahasa standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua server basis data yang ada mendukung bahasa ini untuk melakukan manajemen datanya.

Sejarah SQL dimulai dari artikel seorang peneliti dari IBM bernama EF Codd yang membahas tentang ide pembuatan basis data relasional pada bulan Juni 1970. Artikel ini juga membahas kemungkinan pembuatan bahasa standar untuk mengakses data dalam basis data tersebut. Bahasa tersebut kemudian diberi nama SEQUEL (Structured English Query Language).

Setelah terbitnya artikel tersebut, IBM mengadakan proyek pembuatan basis data relasional berbasis bahasa SEQUEL. Akan tetapi, karena permasalahan hukum mengenai penamaan SEQUEL, IBM pun mengubahnya menjadi SQL. Implementasi basis data relasional dikenal dengan System/R.

Di akhir tahun 1970-an, muncul perusahaan bernama Oracle yang membuat server basis data populer yang bernama sama dengan nama perusahaannya. Dengan naiknya kepopuleran Oracle, maka SQL juga ikut populer sehingga saat ini menjadi standar de facto bahasa dalam manajemen basis data.

Standarisasi SQL dimulai pada tahun 1986, ditandai dengan dikeluarkannya standar SQL oleh ANSI. Standar ini sering disebut dengan SQL86.Standar tersebut kemudian diperbaiki pada tahun 1989 kemudian diperbaiki lagi pada tahun 1992. Versi terakhir dikenal dengan SQL92. Pada tahun 1999 dikeluarkan standar baru yaitu SQL99 atau disebut juga SQL99, akan tetapi kebanyakan implementasi mereferensi pada SQL92.

Saat ini sebenarnya tidak ada server basis data yang 100% mendukung SQL92. Hal ini disebabkan masing-masing server memiliki dialek masing-masing.

Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition Language (DDL) dan Data Manipulation Language (DML). Implementasi DDL dan DML berbeda untuk tiap sistem manajemen basis data (SMBD)[1], namun secara umum implementasi tiap bahasa ini memiliki bentuk standar yang ditetapkan ANSI. Artikel ini akan menggunakan bentuk paling umum yang dapat digunakan pada kebanyakan SMBD.

Data Definition Language

DDL digunakan untuk mendefinisikan, mengubah, serta menghapus basis data dan objek-objek yang diperlukan dalam basis data, misalnya tabel, view, user, dan sebagainya. Secara umum, DDL yang digunakan adalah CREATE untuk membuat objek baru, USE untuk menggunakan objek, ALTER untuk mengubah objek yang sudah ada, dan DROP untuk menghapus objek. DDL biasanya digunakan oleh administrator basis data dalam pembuatan sebuah aplikasi basis data

CREATE

CREATE digunakan untuk membuat basis data maupun objek-objek basis data. SQL yang umum digunakan adalah:

CREATE DATABASE nama_basis_data

CREATE DATABASE membuat sebuah basis data baru.

CREATE TABLE nama_tabel

CREATE TABLE membuat tabel baru pada basis data yang sedang aktif. Secara umum, perintah ini memiliki bentuk

CREATE TABLE [nama_tabel]

(

nama_field1 tipe_data [constraints][,

nama_field2 tipe_data,

...]

)

atau

CREATE TABLE [nama_tabel]

(

nama_field1 tipe_data [,

nama_field2 tipe_data,

...]

[CONSTRAINT nama_field constraints]

)

dengan:

nama_field adalah nama kolom (field) yang akan dibuat. Beberapa sistem manajemen basis data mengizinkan penggunaan spasi dan karakter nonhuruf pada nama kolom.

tipe_data tergantung implementasi sistem manajemen basis data. Misalnya, pada MySQL, tipe data dapat berupa VARCHAR, TEXT, BLOB, ENUM, dan sebagainya.

constraints adalah batasan-batasan yang diberikan untuk tiap kolom. Ini juga tergantung implementasi sistem manajemen basis data, misalnya NOT NULL, UNIQUE, dan sebagainya. Ini dapat digunakan untuk mendefinisikan kunci primer (primary key) dan kunci asing (foreign key).

Satu tabel boleh tidak memiliki kunci primer sama sekali, namun sangat disarankan mendefinisikan paling tidak satu kolom sebagai kunci primer.

Contoh:

CREATE TABLE user (

username VARCHAR(30) CONSTRAINT PRIMARY KEY,

passwd VARCHAR(20) NOT NULL,

tanggal_lahir DATETIME );

akan membuat tabel user seperti berikut:

username

passwd

tanggal_lahir

Data Manipulation Language

DML digunakan untuk memanipulasi data yang ada dalam suatu tabel. Perintah yang umum dilakukan adalah:

SELECT untuk menampilkan data

INSERT untuk menambahkan data baru

UPDATE untuk mengubah data yang sudah ada

DELETE untuk menghapus data

SELECT

SELECT adalah perintah yang paling sering digunakan pada SQL, sehingga terkadang istilah query dirujukkan pada perintah SELECT. SELECT digunakan untuk menampilkan data dari satu atau lebih tabel, biasanya dalam sebuah basis data yang sama. Secara umum, perintah SELECT memiliki bentuk lengkap:

SELECT [nama_tabel|alias.]nama_field1 [AS alias1] [, nama_field2, ...]

FROM nama_tabel1 [AS alias1] [INNER|LEFT|RIGHT JOIN tabel2 ON kondisi_penghubung]

[, nama_tabel3 [AS alias3], ...]

[WHERE kondisi]

[ORDER BY nama_field1 [ASC|DESC][, nama_field2 [ASC|DESC], ...]]

[GROUP BY nama_field1[, nama_field2, ...]]

[HAVING kondisi_aggregat]

dengan:

kondisi adalah syarat yang harus dipenuhi suatu data agar ditampilkan.

kondisi_aggregat adalah syarat khusus untuk fungsi aggregat.

Kondisi dapat dihubungkan dengan operator logika, misalnya AND, OR, dan sebagainya.

Contoh:

Diasumsikan terdapat tabel user yang berisi data sebagai berikut.

username

passwd

tanggal_lahir

jml_transaksi

total_transaksi

Aris

6487AD5EF

09-09-1987

6

10.000

Budi

97AD4erD

01-01-1994

0

0

Charlie

548794654

06-12-1965

24

312.150

Daniel

FLKH947HF

24-04-1980

3

0

Erik

94RER54

17-08-1945

34

50.000

Contoh 1: Tampilkan seluruh data.

SELECT *

FROM user

Contoh 2: Tampilkan pengguna yang tidak pernah bertransaksi.

SELECT *

FROM user

WHERE total_transaksi = 0

Contoh 3: Tampilkan username pengguna yang bertransaksi kurang dari 10 dan nilainya lebih dari 1.000.

SELECT username

FROM user

WHERE jml_transakai < 10 AND total_transaksi > 1000

Contoh 4: Tampilkan total nominal transaksi yang sudah terjadi.

SELECT SUM(total_transaksi) AS total_nominal_transaksi

FROM user

Contoh 5: Tampilkan seluruh data diurutkan berdasarkan jumlah transaksi terbesar ke terkecil.

SELECT *

FROM user

ORDER BY jml_transaksi DESC

Fungsi aggregat

Beberapa SMBD memiliki fungsi aggregat, yaitu fungsi-fungsi khusus yang melibatkan sekelompok data (aggregat). Secara umum fungsi aggregat adalah:

SUM untuk menghitung total nominal data

COUNT untuk menghitung jumlah kemunculan data

AVG untuk menghitung rata-rata sekelompok data

MAX dan MIN untuk mendapatkan nilai maksimum/minimum dari sekelompok data.

Fungsi aggregat digunakan pada bagian SELECT. Syarat untuk fungsi aggregat diletakkan pada bagian HAVING, bukan WHERE.

Subquery

Ada kalanya query dapat menjadi kompleks, terutama jika melibatkan lebih dari satu tabel dan/atau fungsi aggregat. Beberapa SMBD mengizinkan penggunaan subquery. Contoh:

Tampilkan username pengguna yang memiliki jumlah transaksi terbesar.

SELECT username

FROM user

WHERE jml_transaksi =

(

SELECT MAX(jml_transaksi)

FROM user

)

INSERT

Untuk menyimpan data dalam tabel dipergunakan sintaks:

INSERT INTO [NAMA_TABLE] ([DAFTAR_FIELD]) VALUES ([DAFTAR_NILAI])

Contoh:

INSERT INTO TEST (NAMA, ALAMAT, PASSWORD) VALUES ('test', 'alamat', 'pass');

UPDATE

Untuk mengubah data menggunakan sintaks:

UPDATE [NAMA_TABLE] SET [NAMA_KOLOM]=[NILAI] WHERE [KONDISI]

Contoh:

UPDATE Msuser set password="123456" where username="abc"

DELETE FROM TEST WHERE NAMA='test';

Pengenalan ADO.NET (1) – Basisdata

Penggunaan basis data pada sebuah perangkat lunak sebagai tempat untuk menyimpan data merupakan sesuatu hal yang penting. Kemampuan untuk menyimpan, memperoleh, mengubah atau menghapus data dari tempat penyimpanan tersebut merupakan salah satu kemampuan yang seharusnya dimiliki oleh perangkat lunak tersebut.

Contoh yang paling dekat dari sebuah perangkat lunak yang memerlukan basis data untuk menyimpan data lalu mengolah data tersebut (menambah data baru atau Create, memperoleh data tersebut untuk selanjutnya ditampilkan atau diolah atau disebut juga Retrieve, mengubah data atau Update, dan menghapus data atau Delete – proses-proses ini bisa kita singkat menjadi CRUD) adalah situs yang sedang Anda baca ini, yaitu situs warnaislam.com. Menurut Anda, apakah situs ini membutuhkan basis data untuk menyimpan data-data artikel, penulis, rubrik, atau data lainnya? Jawabnya tentu saya "Iya".

Tulisan ini tidak ditujukan untuk membedah isi perut dari situs ini, tetapi akan lebih spesifik bercerita tentang bagaimana menggunakan basis data pada sebuah perangkat lunak yang dibangun dengan teknologi .NET.

Seperti telah kita ketahui bersama dari artikel perkenalan ini bahwa aplikasi atau perangkat lunak yang berhubungan dengan basis data merupakan salah satu aplikasi yang didukung oleh .NET Framework. Lalu pada artikel berikutnya kita juga telah diperkenalkan pada komponen yang mendukung pembuatan sebuah perangkat lunak untuk dapat berhubungan dengan basis data, yaitu yang disebut ADO.NET.

Pada bagian pertama dari artikel tentang ADO.NET, saya akan memberikan pengantar untuk memahami basisdata relasional.
Pengantar Basis Data Relasional

Sejak pertama kali kita berkenalan dengan contoh-contoh aplikasi yang didukung oleh .NET Framework, sejak itu pula kita telah berkenalan dengan sekumpulan data yang digunakan untuk mendukung aplikasi yang dibuat.

Pada tulisan pertama tentang aplikasi konsol, telah diperkenalkan bagaimana mengakses data berupa daftar penulis dari sebuah file text. Lalu pada tulisan tentang web service, kita sekali lagi menggunakan data daftar penulis yang disimpan di dalam basisdata obyek (tidak akan dibahas disini), dan pada artikel yang lalu mulai diperkenalkan relasi antara data penulis dengan data artikel yang ditulisnya – disimpan di dalam basisdata obyek.

Mari kita perhatikan bagaimana kita bekerja dengan data, bagaimana kita mengelompokan data pada sebuah himpunan tertentu (himpunan data penulis dan himpunan data artikel). Ketika kita mengelompokkan data penulis dalam sebuah file text kita belum bisa menyebutnya sebagai pengelompokkan data dengan atribut tertentu, karena memang hanya satu atribut yang ada di dalamnya (secara implicit) yaitu nama lengkap penulis – walaupun tidak secara eksplisit kita menuliskan atribut “nama lengkap”. Perhatikan kembali dua contoh terakhir, pada tulisan tentang web service kita mulai menggunakan atribut “Nama” dan disimpan di dalam basisdata obyek (akan dibahas pada artikel lain), dan pada tulisan terakhir, pengelompokkan mulai dikembangkan menjadi dua kelompok yang masing-masing memiliki hubungan berbeda

Masih bingung dengan penjelasan diatas? Mari kita kerucutkan istilah-istilah yang ada menjadi: data, pengelompokan dengan hubungan tertentu, dan atribut. Dari istilah-istilah ini, kita dapat menyusun kelompok-kelompok data tersebut menjadi sebuah basisdata relasional.

Basisdata relasional merupakan basisdata yang menggambarkan keterhubungan antara data berdasarkan atribut yang sama-sama dimiliki oleh data tersebut. Pengelompokkan ini menggunakan hubungan (relasi) yang sama yang ada diantara data tersebut – hubungan penulis yang memiliki atribut “Nama Awal” dan “Nama Akhir”, hubungan artikel yang memiliki atribut “Penulis” dan “Judul”. Oleh karena itu istilahnya disebut sebagai basidata relasional.[1]

Pada artikel sebelumnya juga kita lihat bahwa secara fisik, sumber data yang digunakan (file text atau basisdata obyek) ditulis pada sebuah file yang disimpan pada computer. Lalu aplikasi secara langsung melakukan pengoperasian terhadap file tersebut. Tetapi pada basisdata relasional, semua operasi untuk manipulasi data tidak dilakukan secara langsung, melainkan oleh system yang terpisah dari aplikasi dan merupakan kesatuan pada basisdata tersebut – disebut sebagai Database Management System (DBMS). Contoh dari DBMS yang banyak dikenal adalah: Microsoft SQL Server, Microsoft Access, Oracle, DB2, MySQL, PostgreSQL dan masih banyak lagi DBMS lainnya.
Table sebagai Unit Basisdata Relasional

Sebuah data penulis yang memiliki atribut “Nama Awal” dan “Nama Akhir” disebut sebagai tuple, dalam sebuah table sebagai unit dari basisdata relasional biasanya terdapat lebih dari satu tuple yang antara tuple yang satu dan lainnya memiliki hubungan yang sama, yaitu memiliki sekelompok atribut yang sama. Dalam table, tuple biasanya disebut sebagai sebuah row dan atribut disebut sebagai column.


Berikut ini kita dapat lihat relasi dari artikel yang ditulis – kita sebut saja sebagai table Artikel – terdiri dari atribut “Nawa Awal”, "Nama Akhir" dan “Judul”:



Primary Key

Nilai dari satu atau lebih atribut dalam sebuah row dapat digunakan sebagai identitas untuk row tersebut. Hal ini berguna ketika kita akan melakukan operasi untuk mendapatkan data tertentu dari sebuah table. Misalkan kita ingin mendapatkan informasi tentang penulis yang memiliki “Nama Awal” dan “Nama Akhir” Basirudin dan Rachman, maka bisa saja kita jadikan “Nama Awal” dan “Nama Akhir” sebagai identitas yang unik untuk table tersebut. Atribut yang dijadikan identitas yang unik ini yang disebut sebagai Primary Key (PK).

Jika kita perhatikan kembali table Penulis tersebut, apa yang kita jadikan sebuah identitas yang unik masih dapat menimbulkan masalah. Pertanyaannya adalah, apakah nama Basirudin Rachman merupakan nilai yang unik? Bagaimana bila ada lebih dari satu orang penulis dengan nama yang sama? Dari sini dapat kita lihat, kombinasi “Nama Awal” dan “Nama Akhir” tidak dapat kita jadikan sebagai identitas untuk setiap data di dalam row pada table Penulis.

Dalam sebuah DBMS ada beberapa solusi yang ditawarkan untuk masalah seperti ini dengan menambahkan satu atribut lain yang dipastikan unik untuk menjadi PK. Analoginya adalah seperti Kartu Tanda Penduduk (KTP) yang kita miliki, dimana disitu nomor KTP menjadi identitas yang unik bagi setiap pemiliknya. Di dalam DBMS biasanya sebuah nilai numerik bisa dijadikan sebagai identitas, juga terdapat apa yang disebut GUID[2] yang dapat dijadikan identitas.
Normalisasi

Mari kita perhatikan table Artikel dimana terlihat nama dari setiap penulis yang memiliki lebih dari satu artikel dituliskan kembali sebanyak artikel yang ditulisnya. Hal ini disebut sebagai duplikasi data yang dapat menimbulkan ketidakefisienan dalam hal sumber daya yang dibutuhkan untuk menyimpannya di dalam sebuah media penyimpanan yang digunakan oleh DBMS (misalnya Hard Drive). Permasalahan lain yang dapat timbul karena duplikasi adalah kemungkinan terjadinya ketidakkonsistenan data yang dapat menimbulkan hilangnya keutuhan dari data tersebut.



Beberapa anomaly yang dapat terjadi ketika sebuah table tidak dinormalisasi[3]:

1. Anomali update, beberapa informasi yang sama dapat disimpan dalam beberapa row. Beberapa informasi yang sama ini bisa menjadi identitas bagi row tersebut. Tetapi apabila terjadi perubahan pada sebuah atribut yang merupakan bagian dari identitas row maka semua row yang memiliki identitas yang sama juga harus dirubah. Apabila proses perubahan hanya dilakukan pada sebagian dari semua row yang memiliki identitas yang sama maka akan terjadi ketidakkonsistenan pada table terserbut. Contoh apabila pada table Artikel, ada perubahan pada atribut “Nama Akhir” dari Basirudin Rachman, maka semua row yang dimiliki oleh Basirudin Rachman juga harus diubah jika satu row saja tidak dirubah maka akan terjadi kondisi yang disebut dengan anomali update.

2.Anomali insertion, apabila warnaislam.com menambahkan penulis baru pada table Artikel maka diharapkan penulis tersebut telah memiliki artikel yang telah ditulisnya sehingga judul artikel tersebut dapat dimasukkan pada atribut “Judul”. Tetapi bisa saja ada penulis baru yang memang belum menuliskan artikel apapun pada situs ini tetapi akan dimasukkan ke dalam daftar penulis

3.Anomali deletion, apabila sebagian informasi dari sebuah data (row) ingin dihapus, tetapi pada kenyataannya akan menghapus seluruh informasi dari data tersebut