Rabu, 22 Oktober 2014

rollback

Dalam basis data teknologi, rollback adalah sebuah operasi yang mengembalikan database ke kondisi sebelumnya. Rollbacks penting untuk database integritas , karena mereka berarti bahwa database dapat dikembalikan ke salinan bersih bahkan setelah operasi yang salah dilakukan. Mereka sangat penting untuk pulih dari crash server database; dengan menggulung kembali setiap transaksi yang aktif pada saat kecelakaan itu, database dikembalikan ke keadaan yang konsisten.
Fitur rollback biasanya diimplementasikan dengan log transaksi , tetapi juga dapat dilaksanakan melalui kontrol multiversion concurrency.

candidate key

Dalam model relasional dari database , candidate key dari relasi adalah minimal superkey untuk relasi itu; yaitu, set atribut sedemikian rupa sehingga:
  1. relasi tidak memiliki dua berbeda tupel (yaitu baris atau catatan dalam bahasa database umum) dengan nilai yang sama untuk atribut tersebut (yang berarti bahwa himpunan atribut adalah superkey)
  2. tidak ada bagian yang tepat dari atribut-atribut ini yang (1) memegang (yang berarti bahwa set minimal).
Atribut konstituen disebut atribut prima. Sebaliknya, atribut yang tidak terjadi di APAPUN candidate key disebut atribut non-prime.
Karena relasi tidak mengandung duplikat tupel, himpunan semua atributnya adalah superkey jika nilai NULL tidak digunakan. Oleh karena itu, setiap hubungan akan memiliki minimal satu candidate key.
Tombol calon relasi memberitahu kita semua cara yang mungkin kita dapat mengidentifikasi tupel nya. Dengan demikian mereka adalah konsep penting untuk desain skema database .
Definisi candidate key dapat diilustrasikan dengan berikut (abstrak) misalnya. Pertimbangkan variabel relasi (relvar) R dengan atribut (A, B, C, D) yang hanya memiliki dua berikut nilai-nilai hukum r1 dan r2:
r1
A B C D
a1 b1 c1 d1
a1 b2 c2 d1
a2 b1 c2 d1
r2
A B C D
a1 b1 c1 d1
a1 b2 c2 d1
a1 b1 c2 d2
Berikut r2 berbeda dari r1 hanya dalam nilai-nilai A dan D dari tuple terakhir.
Untuk r1 set berikut memiliki properti keunikan, yaitu, tidak ada dua tupel berbeda dalam contoh dengan nilai yang sama untuk atribut di set:
{A, B}, {A, C}, {B, C}, {A, B, C}, {A, B, D}, {A, C, D}, {B, C, D}, {A, B, C, D}
Untuk r2 properti keunikan berlaku untuk set berikut;
{B, C}, {B, D}, {C, D}, {A, B, C}, {A, B, D}, {A, C, D}, {B, C, D}, {A, B, C, D}
Sejak superkeys dari relvar sebuah adalah mereka set atribut yang memiliki sifat keunikan untuk semua nilai hukum relvar itu dan karena kita menganggap bahwa r1 dan r2 adalah semua nilai-nilai hukum yang R dapat mengambil, kita dapat menentukan set superkeys R oleh mengambil persimpangan dua daftar:
{B, C}, {A, B, C}, {A, B, D}, {A, C, D}, {B, C, D}, {A, B, C, D}
Akhirnya kita perlu memilih orang set untuk yang tidak ada bagian yang tepat dalam daftar, yang dalam hal ini:
{B, C}, {A, B, D}, {A, C, D}
Ini memang kunci calon relvar R.
Kita harus mempertimbangkan semua hubungan yang mungkin ditugaskan untuk relvar untuk menentukan apakah satu set tertentu dari atribut adalah candidate key. Sebagai contoh, jika kita dianggap hanya r1 maka kita akan menyimpulkan bahwa {A, ​​B} adalah kunci kandidat, yang tidak benar. Namun, kita mungkin bisa menyimpulkan dari relasi rupa sehingga satu set tertentu bukan merupakan candidate key, karena set yang tidak memiliki properti keunikan (contoh {A, D} untuk r1). Perhatikan bahwa keberadaan subset yang tepat dari satu set yang memiliki properti keunikan tidak dapat secara umum digunakan sebagai bukti bahwa superset bukanlah candidate key. Secara khusus, perhatikan bahwa dalam kasus relasi kosong, setiap bagian dari judul memiliki sifat keunikan, termasuk himpunan kosong.

foreign key

Dalam konteks database relasional , foreign key adalah bidang (atau kumpulan field) dalam satu tabel yang secara unik mengidentifikasi deretan meja lain. Dengan kata lain, kunci asing adalah kolom atau kombinasi dari kolom yang digunakan untuk menetapkan dan menegakkan link antara dua tabel.
Tabel yang berisi kunci asing disebut referensi atau anak meja, dan tabel yang berisi kunci kandidat disebut tabel referensi atau orang tua.
Karena tujuan kunci asing adalah untuk mengidentifikasi baris tertentu dari tabel yang direferensikan, umumnya diperlukan bahwa kunci asing adalah sama dengan candidate key dalam beberapa baris dari tabel utama, atau yang lain tidak memiliki nilai ( the NULL value). Aturan ini disebut batasan integritas referensial antara dua tabel.Karena pelanggaran kendala ini dapat menjadi sumber banyak masalah basis data, sebagian besar sistem manajemen database menyediakan mekanisme untuk memastikan bahwa setiap kunci asing non-null sesuai dengan deretan tabel yang direferensikan. 
Sebagai contoh, perhatikan database dengan dua tabel : tabel CUSTOMER yang mencakup semua data pelanggan dan meja PESANAN yang mencakup semua pesanan pelanggan. Misalkan bisnis mensyaratkan bahwa setiap pesanan harus mengacu pada satu pelanggan. Untuk mencerminkan hal ini dalam database, kolom kunci asing ditambahkan ke tabel PESANAN (misalnya, Pelanggan), yang referensi Primary Key NASABAH (misalnya ID). Karena kunci utama dari tabel harus unik, dan karena Pelanggan hanya berisi nilai-nilai itu bidang kunci utama, kita dapat mengasumsikan bahwa, ketika memiliki nilai, Pelanggan akan mengidentifikasi pelanggan tertentu yang ditempatkan urutan. Namun, ini tidak bisa lagi diasumsikan jika tabel PESANAN tidak terus up to date ketika baris tabel PELANGGAN dihapus atau kolom ID diubah, dan bekerja dengan tabel ini mungkin menjadi lebih sulit. Banyak database dunia nyata mengatasi masalah ini dengan 'menonaktifkan' daripada fisik menghapus tabel master kunci asing, atau dengan program pembaruan kompleks yang mengubah semua referensi kunci asing ketika perubahan dibutuhkan.
Kunci asing memainkan peran penting dalam desain database . Salah satu bagian penting dari desain database adalah memastikan bahwa hubungan antara entitas dunia nyata tercermin dalam database dengan referensi, menggunakan kunci asing untuk merujuk dari satu meja ke yang lain. Bagian penting lainnya dari desain database adalah normalisasi database , di mana tabel rusak terpisah dan kunci asing memungkinkan bagi mereka untuk dibangun kembali.
Beberapa baris dalam tabel referensi (atau anak) bisa merujuk ke baris yang sama di (atau orang tua) tabel direferensikan. Dalam hal ini, hubungan antara dua tabel disebut satu ke banyak hubungan antara tabel referensi dan tabel referensi.
Selain itu, anak dan orang tua tabel mungkin, pada kenyataannya, menjadi meja yang sama, yaitu kunci asing mengacu kembali ke meja yang sama. Kunci asing seperti dikenal di SQL : 2003 sebagai referensi diri atau kunci asing rekursif. Dalam sistem manajemen database, hal ini sering dilakukan dengan menghubungkan pertama dan kedua mengacu pada meja yang sama.
Sebuah meja mungkin memiliki beberapa kunci asing, dan setiap kunci asing dapat memiliki tabel induk yang berbeda. Setiap kunci asing diberlakukan secara independen oleh sistem database . Oleh karena itu, Cascading hubungan antara tabel dapat dibentuk dengan menggunakan kunci asing.

Database relasional

database relasional adalah database yang yang menyimpan informasi tentang kedua data yang dan bagaimana hal itu berhubungan . Data dan hubungan diwakili di sebuah flat, meja dua dimensi yang melindungi struktur relasional.
A Relational Database Management Sistem (RDBMS) adalah implementasi fisik dan logis dari database relasional (hardware dan software). Sebuah kontrol RDMS membaca, menulis, memodifikasi, dan mengolah informasi yang tersimpan dalam database. Data tersebut dijelaskan secara resmi dan diatur sesuai dengan masing-masing database model relasional ( skema database ), sesuai dengan desain .
Database relasional cenderung baik secara signifikan dinormalisasi atau de-normalisasi. Database Normalisasi ( database operasional ) cenderung memiliki integritas yang lebih baik data, ruang penyimpanan berkurang, dan transmisi lebih cepat. Database adalah de-dinormalisasi untuk meningkatkan kinerja, sering untuk pelaporan dan pengambilan keputusan aplikasi (analisis kecenderungan yang lebih besar). Database de-dinormalisasi dapat membentuk data yang mart dan gudang . Kebanyakan data warehouse memiliki database operasional yang digunakan untuk menghasilkan datamarts. 
Database relasional pengungsi database hirarkis karena kemampuan untuk menambahkan hubungan baru memungkinkan untuk menambahkan informasi baru yang berharga tetapi "pecah" konsepsi hirarki database non-relasional ini. Tren ini terus berlanjut sebagai planet jaringan dan media sosial menciptakan dunia "big data" yang lebih besar dan kurang terstruktur daripada dataset dan tugas-tugas yang database relasional menangani dengan baik (itu adalah instruktif untuk membandingkan Hadoop ).
Database relasional pertama kali didefinisikan pada bulan Juni 1970 oleh Edgar Codd , IBM San Jose Research Laboratory .lihat Codd dari apa yang memenuhi syarat sebagai RDBMS diringkas dalam 12 hukum Codd . Sebuah database relasional telah menjadi pilihan utama dalam menyimpan data. Model-model lain selain model relasional termasuk model database hirarkis dan model jaringan .
Tabel di bawah ini beberapa istilah database relasional yang paling penting dan mereka SQL setara.

SQL jangka Istilah database relasional Deskripsi
Baris Tupel atau record Satu set data yang mewakili satu item
Kolom Atribut atau lapangan Unsur berlabel sebuah tupel, misalnya "Alamat" atau "Tanggal lahir"
Tabel Hubungan atau Basis relvar Satu set tupel berbagi atribut yang sama; satu set kolom dan baris
Lihat atau hasil   set Berasal relvar Setiap set tupel; laporan data dari RDBMS sebagai tanggapan atas permintaan

Relational model

relational model untuk basis data manajemen adalah model database berdasarkan orde pertama logika predikat , pertama kali dirumuskan dan diusulkan pada tahun 1969 oleh Edgar F. Codd . Dalam model relasional database, semua data disajikan dalam batasan dari tupel , dikelompokkan ke dalam hubungan . Database terorganisir dalam hal model relasional adalah database relasional .

Diagram database contoh sesuai dengan model Relational.

Dalam model relasional, catatan terkait  
 dihubungkan bersama dengan "kunci".
Tujuan dari model relasional adalah untuk menyediakan deklaratif metode untuk menentukan data dan query: pengguna langsung menyatakan informasi apa database berisi dan informasi apa yang mereka inginkan dari itu, dan biarkan perangkat lunak sistem manajemen database mengurus menggambarkan struktur data untuk menyimpan prosedur dan pengambilan data untuk menjawab pertanyaan.
Kebanyakan database relasional menggunakan SQL definisi data dan bahasa query; sistem ini menerapkan apa yang dapat dianggap sebagai sebuah pendekatan teknik untuk model relasional. Sebuah meja di skema database SQL sesuai dengan variabel predikat; isi meja untuk relasi; kendala utama, kendala lainnya, dan query SQL sesuai dengan predikat. Namun, database SQL menyimpang dari model relasional dalam banyak rincian , dan Codd keras menentang penyimpangan yang membahayakan prinsip-prinsip asli.

Integritas referensial

Integritas referensial adalah properti data yang bila puas, mengharuskan setiap nilai satu atribut (kolom) dari relasi (tabel) untuk eksis sebagai nilai atribut lain dalam berbeda (atau sama) relasi (tabel).
Untuk integritas referensial untuk terus dalam sebuah database relasional , setiap bidang dalam tabel yang menyatakan kunci asing dapat berisi baik nilai null, atau hanya nilai-nilai dari tabel induk kunci primer atau kunci kandidat . Dengan kata lain, ketika nilai kunci asing yang digunakan itu harus referensi yang valid, ada kunci utama dalam tabel induk. Misalnya, menghapus catatan yang berisi nilai disebut dengan kunci asing dalam tabel lain akan mematahkan integritas referensial. Beberapa sistem manajemen database relasional (RDBMS) dapat menegakkan integritas referensial, biasanya baik dengan menghapus baris kunci asing juga untuk menjaga integritas, atau dengan mengembalikan kesalahan dan tidak melakukan hapus. Metode yang digunakan dapat ditentukan oleh batasan integritas referensial didefinisikan dalam kamus data .
"Referential" kata sifat menggambarkan tindakan bahwa kunci asing melakukan, 'merujuk' ke bidang link dalam meja lain. Dalam istilah sederhana, 'integritas referensial' adalah jaminan bahwa target itu mengacu 'to akan ditemukan. Kurangnya integritas referensial dalam database dapat menyebabkan database relasional untuk kembali data yang tidak lengkap, biasanya dengan tidak ada indikasi kesalahan. Masalah yang umum terjadi pada tabel database relasional terkait dengan 'inner join' yang membutuhkan nilai-nilai non-NULL di kedua tabel, persyaratan yang hanya dapat dipenuhi melalui desain yang cermat dan integritas referensial.

Relational calculus

Relational calculus terdiri dari dua bate, yang Relational calculus dan domain relational calculus , yang merupakan bagian dari model relasional untuk database dan menyediakan cara deklaratif untuk menentukan query database. Hal ini berbeda dengan aljabar relasional yang juga merupakan bagian dari model relasional tetapi menyediakan cara yang lebih prosedural untuk menentukan query.
Aljabar relasional mungkin menyarankan langkah-langkah untuk mengambil nomor telepon dan nama toko buku yang menyediakan Beberapa Contoh Buku:
  1. Bergabunglah toko buku dan judul di atas BookstoreID tersebut.
  2. Membatasi hasil yang bergabung ke tupel untuk buku Beberapa Contoh Book.
  3. Proyek hasil bahwa pembatasan atas StoreName dan StorePhone.
Kalkulus relasional akan merumuskan deskriptif, cara deklaratif:
Dapatkan StoreName dan StorePhone untuk persediaan sedemikian rupa sehingga terdapat judul BK dengan nilai BookstoreID yang sama dan dengan nilai BookTitle Beberapa Contoh Buku.
Aljabar relasional dan kalkulus relasional pada dasarnya logis setara : untuk setiap ekspresi aljabar, ada ekspresi setara dalam kalkulus, dan sebaliknya. Hasil ini dikenal sebagai teorema Codd .