Macam Koneksi database :
Sekilas Tentang :
ActiveX Data Objects (ADO)
Microsoft
ActiveX Data Objects (ADO) adalah satu set
Component Object Model (COM)
objek untuk mengakses sumber data.
Sebuah bagian dari
MDAC , ia menyediakan
middleware lapisan antara
bahasa pemrograman dan
OLE DB (sarana mengakses menyimpan data, apakah mereka menjadi
database atau sebaliknya, secara seragam).
ADO memungkinkan
pengembang untuk
menulis program yang mengakses data tanpa tahu bagaimana database
diimplementasikan, pengembang harus menyadari database hanya koneksi.
Tidak ada pengetahuan
SQL diperlukan
untuk mengakses database ketika menggunakan ADO, meskipun satu dapat
menggunakan ADO untuk mengeksekusi perintah SQL langsung.
Kerugian yang terakhir adalah bahwa ia memperkenalkan ketergantungan pada jenis database yang digunakan.
ADO diposisikan sebagai penerus lapisan objek sebelumnya Microsoft untuk mengakses sumber data, termasuk
RDO (Remote Data Objects) dan
DAO (Data Access Objects).
ADO diperkenalkan oleh
Microsoft pada bulan Oktober 1996.
ADO COLLECTIONS
- Fields
- Koleksi ini berisi satu set objek Field. Koleksi ini dapat digunakan baik dalam object Recordset atau di obyek Rekaman. Dalam
sebuah object Recordset, masing-masing objek Bidang yang membentuk
koleksi Fields sesuai dengan kolom dalam Rekam objek set. Dalam obyek Rekaman, Field bisa menjadi URL absolut atau relatif yang menunjuk ke struktur pohon namespace(digunakan untuk data semi-terstruktur penyedia
seperti Microsoft OLE DB penyedia untuk Penerbitan internet) atau
sebagai referensi ke objek Streaming default yang terkait dengan obyek
Rekaman.
- Properti
- Sebuah objek dapat memiliki lebih dari satu objek Properti, yang terkandung dalam koleksi properti objek.
- Parameter
- Sebuah
objek Command dapat memiliki beberapa perintah Parameter untuk mengubah
perilaku yang telah ditetapkan, serta masing-masing objek Parameter
yang terkandung dalam koleksi Parameter objek Komando
- Kesalahan
- Semua
kesalahan penyedia diciptakan dilewatkan ke koleksi benda-benda
Kesalahan, sedangkan koleksi Kesalahan itu sendiri terkandung dalam
sebuah objek Connection. Ketika operasi ADO membuat kesalahan, koleksi dibersihkan dan kelompok baru objek Kesalahan dibuat dalam koleksi.
- Koneksi
- Obyek koneksi ADO koneksi untuk menyimpan data melalui OLE DB. Sambungan
objek menyimpan informasi tentang sesi dan menyediakan metode untuk
menghubungkan ke toko data.Seperti beberapa toko data yang memiliki
metode yang berbeda membuat sambungan, beberapa metode mungkin tidak
didukung dalam objek sambungan untuk tertentu penyedia OLE DB.Sebuah
objek koneksi menghubungkan ke toko data menggunakan 'Open' metode
dengan connection string yang menentukan sambungan sebagai daftar
pasangan nilai kunci (misalnya: "Provider = 'SQLOLEDB'; Sumber Data =
'TheSqlServer'; Initial Catalog = 'Northwind'; Integrated Security =
'SSPI'; "). Awal yang harus mengidentifikasi jenis koneksi menyimpan data bahwa objek koneksi membutuhkan:
- penyedia DB OLE (misalnya SQLOLEDB), menggunakan sintaks "provider =";
- nama file, menggunakan sintaks "nama file =";
- a remote provider and server (see RDS), using the syntax "Remote provider=" and "Remote server="; or
- an absolute URL, using the syntax "URL="
- Perintah
- Setelah objek koneksi menetapkan sesi ke sumber data, instruksi yang dikirim ke penyedia data melalui objek perintah. Obyek
dapat mengirim perintah SQL query langsung ke provider melalui
penggunaan properti CommandText, mengirim permintaan parameterised atau
prosedur yang tersimpan melalui penggunaan objek Parameter Parameter
atau kumpulan atau menjalankan query dan mengembalikan hasil ke objek
dataset melalui Metode Execute. Ada
beberapa metode lain yang dapat digunakan dalam object Command yang
berkaitan dengan benda-benda lain, seperti objek Stream, Recordset atau
Koneksi.
- Recordset
- Recordset adalah sekelompok catatan, dan dapat berasal dari tabel dasar atau sebagai akibat dari permintaan ke meja. Obyek Recordset berisi koleksi Fields dan koleksi Properties. Koleksi Fields adalah seperangkat benda Field, yang merupakan kolom yang sesuai dalam tabel. Koleksi Properti adalah seperangkat benda Properti, yang mendefinisikan fungsi tertentu penyedia OLE DB. Recordset ini memiliki banyak metode dan properti untuk memeriksa data yang ada di dalamnya. Catatan
dapat diperbarui dalam recordset dengan mengubah nilai-nilai dalam
catatan dan kemudian memanggil pada Update atau UpdateBatch metode.
- Segera
- Recordset terkunci menggunakan kunci adLockOptimistic atau adLockPessimistic. Data diperbarui pada sumber data setelah rekor berubah dan Update metode disebut.
- Sekumpulan
- Recordset terkunci menggunakan adLockBatchOptimistic dan setiap kali Update disebut data diperbarui dalam buffer sementara. Akhirnya, ketika UpdateBatch disebut data benar-benar diperbarui kembali pada sumber data. Ini
memiliki keuntungan dari itu semua dilakukan dalam memori, dan jika
terjadi masalah maka UpdateCancel disebut dan pembaruan tidak dikirim ke
sumber data
- Transaksi
- Jika penyedia DB OLE memungkinkan, transaksi dapat digunakan. Untuk memulai transaksi, programmer memanggil method BeginTrans dan melakukan update yang diperlukan. Ketika mereka semua dilakukan, programmer memanggil metode CommitTrans. RollbackTrans
dapat dipanggil untuk membatalkan perubahan apapun yang dibuat dalam
transaksi dan rollback database ke keadaan sebelum transaksi dimulai
- Catatan
- Objek ini merupakan salah satu catatan dalam database dan berisi koleksi bidang. Recordset terdiri dari koleksi obyek Rekaman.
- Aliran
- Sebuah aliran, terutama digunakan dalam sebuah objek Recordset, merupakan sarana membaca dan menulis aliran byte. Hal
ini sebagian besar digunakan untuk menyimpan recordset dalam format
XML, untuk mengirimkan perintah ke penyedia OLE DB sebagai alternatif
objek CommandText dan mengandung isi dari file biner atau teks.
- Parameter
- Parameter
adalah cara mengubah perilaku sepotong umum fungsi, misalnya prosedur
yang tersimpan mungkin memiliki parameter yang berbeda dikirimkan ke
sana tergantung pada apa yang perlu dilakukan, ini disebut perintah
parameterised.
- Lapangan
- Setiap obyek Rekaman berisi banyak bidang, dan objek Recordset memiliki object Field yang sesuai juga. Object Field The Recordset objek sesuai dengan kolom dalam tabel database yang referensi.
- Milik
- Objek ini adalah khusus untuk penyedia DB OLE dan mendefinisikan kemampuan yang penyedia telah dilaksanakan. Sebuah
objek properti dapat berupa properti built-in - itu adalah properti
yang terdefinisi dengan baik dilaksanakan oleh ADO sudah dan dengan
demikian tidak dapat diubah - atau bisa menjadi properti dinamis -
didefinisikan oleh penyedia data yang mendasari dan dapat diubah
- Kesalahan
- Ketika kesalahan penyedia DB OLE terjadi selama penggunaan ADO, obyek Kesalahan akan dibuat dalam koleksi Kesalahan. Kesalahan
lainnya tidak masuk ke obyek kesalahan, namun.Misalnya, setiap
kesalahan yang terjadi ketika memanipulasi data dalam Recordset atau
Bidang objek disimpan dalam property.SK Status
Dasar penggunaan
Beberapa langkah dasar yang diperlukan agar dapat mengakses dan memanipulasi data menggunakan ADO:
- Membuat objek koneksi untuk menghubungkan ke database.
- Membuat objek recordset untuk menerima data masuk
- Membuka koneksi
- Mengisi recordset dengan membuka dan melewati nama tabel yang diinginkan atau pernyataan SQL sebagai parameter untuk membuka fungsi.
- Apakah semua pencarian yang diinginkan / pengolahan pada data yang sudah diambil.
- Komit perubahan yang Anda buat ke data (jika ada) dengan menggunakan Update atau UpdateBatch metode.
- Tutup recordset
- Menutup koneksi
ASP contoh
Berikut adalah
ASP misalnya
menggunakan ADO untuk memilih field "Name", dari tabel yang disebut
"Buku telepon", di mana "PhoneNumber" sama dengan "555-5555".
dim myconnection, myrecordset, name
set myconnection = server . createobject ( "ADODB.Connection" )
set myrecordset = server . createobject ( "ADODB.Recordset" )
myconnection. open mydatasource
myrecordset. open "Phonebook" , myconnection
myrecordset. find "PhoneNumber = '555-5555'"
name = myrecordset. fields . item ( "Name" )
myrecordset. close
set myrecordset = nothing
set myconnection = nothing
Hal ini setara dengan kode ASP berikut, yang menggunakan SQL polos bukan fungsi dari objek Recordset:
dim myconnection, myrecordset, name
set myconnection = server . createobject ( "ADODB.connection" )
myconnection. open mydatasource
set myrecordset = myconnection. execute ( "SELECT Name FROM Phonebook WHERE PhoneNumber = '555-5555'" )
name = myrecordset ( 0 )
Perangkat lunak pendukung
ADO.NET
ADO.NET adalah
satu set komponen perangkat lunak komputer yang programmer dapat
digunakan untuk mengakses data dan layanan data berdasarkan dataset
terputus dan XML. Ini adalah bagian dari perpustakaan kelas dasar yang disertakan dengan Microsoft. Framework . Hal ini biasanya digunakan oleh para programmer untuk mengakses dan memodifikasi data yang disimpan dalam sistem database relasional , meskipun juga dapat mengakses data non-relasional sumber. ADO.NET kadang-kadang dianggap sebagai evolusi ActiveX Data Objects teknologi (ADO), tetapi diubah begitu luas bahwa hal itu dapat dianggap sebagai produk yang sama sekali baru.
ADO.NET secara konseptual dibagi menjadi konsumen dan penyedia data . Para
konsumen adalah aplikasi yang membutuhkan akses ke data, dan penyedia
komponen perangkat lunak yang mengimplementasikan antarmuka dan dengan
demikian memberikan data kepada konsumen.
ADO.NET dan Visual Studio
Fungsi ada di
Visual Studio IDE
untuk membuat subclass khusus dari kelas DataSet untuk skema database
tertentu, yang memungkinkan akses mudah ke bidang masing-masing melalui
sangat diketik
properti .
Ini membantu menangkap kesalahan pemrograman lebih pada saat kompilasi dan membuat IDE
Intellisense fitur yang lebih menguntungkan.
ADO.NET dan O / R Mapping
Entity framework
ADO.NET Entity Framework adalah seperangkat data-akses
API untuk
Microsoft . Framework , mirip dengan
Java Persistence API , menargetkan versi ADO.NET yang dikirimkan dengan
Kerangka. NET 4.0 .
ADO.NET Entity Framework disertakan dengan
. NET Framework 4.0 dan
Visual Studio 2010 , dirilis pada bulan April 2010.
Entity
Entity Framework adalah obyek yang memiliki kunci yang mewakili primary key dari entitas datastore logis.
A
Data Entitas konseptual
Model (
model Entity-relationship ) dipetakan ke model skema datastore.
Menggunakan
Model Data Entity, Entity Framework memungkinkan data yang akan
diperlakukan sebagai entitas independen dari representasi datastore yang
mendasarinya.
Entity SQL, SQL bahasa seperti, berfungsi untuk query Model Entity Data (bukan datastore yang mendasari).
Demikian pula,
LINQ ekstensi
LINQ untuk Entitas menyediakan diketik query pada Entity Data Model.
Entitas SQL dan LINQ untuk query Entitas dikonversi internal menjadi
Canonical Pohon Pertanyaan yang kemudian diubah menjadi permintaan dimengerti ke database.
Tinjauan lain :
ODBC
ODBC accomplishes DBMS independence by using an
ODBC driver as a translation layer between the application and the DBMS.
The application uses ODBC functions through an
ODBC driver manager with which it is linked, and the driver passes the query to the DBMS.
An
ODBC driver can be thought of as analogous to a printer or other
driver, providing a standard set of functions for the application to
use, and implementing DBMS-specific functionality.
An application that can use ODBC is referred to as "ODBC-compliant".
Any ODBC-compliant application can access any DBMS for which a driver is installed.
Drivers exist for all major DBMSs, many other data sources like
address book systems and
Microsoft Excel , and even for text or
CSV files.
ODBC was originally developed by Microsoft during the early 1990s, and became the basis for the Call Level Interface (CLI) standardized by SQL Access Group in the Unix and mainframe world.ODBC retained a number of features that were removed as part of the CLI effort.
Full ODBC was later ported back to those platforms, and became a
de facto standard considerably better known than CLI.
The CLI remains similar to ODBC, and applications can be ported from one platform to the other with few changes.
Java Database Connectivity
JDBC merupakan teknologi akses data berbasis Java (platform Java Standard Edition) dari Oracle Corporation . Teknologi ini merupakan API untukbahasa pemrograman Java yang mendefinisikan bagaimana sebuah klien dapat mengakses basis data . Ini menyediakan metode untuk query dan update data dalam database. JDBC berorientasi pada database relasional . Sebuah JDBC-to- ODBC jembatan memungkinkan sambungan ke sumber data ODBC dapat diakses di JVM lingkungan host.
Contoh
Metode Class.forName(String)
digunakan untuk memuat kelas driver JDBC. Garis bawah menyebabkan driver JDBC dari beberapa penjual jdbc yang akan dimuat ke dalam aplikasi.(Beberapa JVMs juga membutuhkan kelas yang akan dipakai dengan .newInstance()
.)
Class forName ("com.somejdbcvendor.TheirJdbcDriver").;
Di JDBC 4.0, perlu secara eksplisit memuat driver JDBC tidak lagi menggunakan Class.forName()
. Lihat JDBC 4.0 Perangkat tambahan di Java SE 6 .
Ketika Driver
kelas dimuat, itu menciptakan sebuah instance dari dirinya sendiri dan register itu dengan DriverManager
. Hal ini dapat dilakukan dengan memasukkan kode yang diperlukan dalam driver kelas yang static
blok. Misalnya, DriverManager.registerDriver(Driver driver)
Sekarang ketika koneksi diperlukan, salah satu DriverManager.getConnection()
metode yang digunakan untuk membuat koneksi JDBC.
Connection conn = DriverManager . getConnection (
"jdbc:somejdbcvendor:other data needed by some jdbc vendor" ,
"myLogin" ,
"myPassword" ) ;
try {
/* you use the connection here */
} finally {
//It's important to close the connection when you are done with it
try { conn. close ( ) ; } catch ( Throwable ignore ) { /* Propagate the original exception
instead of this one that you may want just logged */ }
}
URL yang digunakan tergantung pada JDBC driver tertentu. Ini akan selalu dimulai dengan "jdbc:" protokol, tapi sisanya terserah kepada vendor tertentu. Setelah sambungan dibuat, pernyataan dapat dibuat.
. Statement stmt = conn. createStatement ( ) ;
try {
stmt. executeUpdate ( "INSERT INTO MyTable( name ) VALUES ( 'my name' ) " ) ;
} finally {
//It's important to close the statement when you are done with it
try { stmt. close ( ) ; } catch ( Throwable ignore ) { /* Propagate the original exception
instead of this one that you may want just logged */ }
}
Perhatikan bahwa Connections,Statements, dan resultsets sering mengikat sistem operasi sumber daya seperti soket atau file deskriptor . Dalam kasus Koneksi ke database server remote, sumber daya lebih lanjut terikat pada server, misalnya, kursor untuk resultsets sedang terbuka. Sangat penting untuk close()
setiap objek JDBC secepat itu telah memainkan perannya, Lupa untuk close()
hal-hal benar menghasilkan kesalahan palsu dan perilaku. Di atas mencoba-akhirnya membangun adalah direkomendasikan pola kode untuk menggunakan dengan objek JDBC.
Data diambil dari database menggunakan mekanisme query database. Contoh di bawah ini menunjukkan menciptakan pernyataan dan mengeksekusi query.
Statement stmt = conn. createStatement ( ) ;
try {
ResultSet rs = stmt. executeQuery ( "SELECT * FROM MyTable" ) ;
try {
while ( rs. next ( ) ) {
int numColumns = rs. getMetaData ( ) . getColumnCount ( ) ;
for ( int i = 1 ; i < = numColumns ; i++ ) {
// Column numbers start at 1.
// Also there are many methods on the result set to return
// the column as a particular type. Refer to the Sun documentation
// for the list of valid conversions.
System . out . println ( "COLUMN " + i + " = " + rs. getObject ( i ) ) ;
}
}
} finally {
try { rs. close ( ) ; } catch ( Throwable ignore ) { /* Propagate the original exception
instead of this one that you may want just logged */ }
}
} finally {
try { stmt. close ( ) ; } catch ( Throwable ignore ) { /* Propagate the original exception
instead of this one that you may want just logged */ }
}
Biasanya, bagaimanapun, itu akan menjadi langka untuk programmer Java berpengalaman kode sedemikian fashion. Praktek
yang biasa akan abstrak logika database ke kelas yang sama sekali
berbeda dan untuk lulus string preprocessed (mungkin berasal dari diri
lebih lanjut disarikan kelas) berisi pernyataan SQL dan koneksi dengan
metode yang diperlukan. Abstrak
model data dari kode aplikasi membuatnya lebih mungkin bahwa perubahan
aplikasi dan model data dapat dibuat secara independen.
Sebuah contoh dari PreparedStatement
permintaan, menggunakan conn
dan kelas dari contoh pertama.
PreparedStatement ps =
conn. prepareStatement ( "SELECT i.*, j.* FROM Omega i, Zappa j WHERE i.name = ? AND j.num = ?" ) ;
try {
// In the SQL statement being prepared, each question mark is a placeholder
// that must be replaced with a value you provide through a "set" method invocation.
// The following two method calls replace the two placeholders; the first is
// replaced by a string value, and the second by an integer value.
ps. setString ( 1 , "Poor Yorick" ) ;
ps. setInt ( 2 , 8008 ) ;
// The ResultSet, rs, conveys the result of executing the SQL statement.
// Each time you call rs.next(), an internal row pointer, or cursor,
// is advanced to the next row of the result. The cursor initially is
// positioned before the first row.
ResultSet rs = ps. executeQuery ( ) ;
try {
while ( rs. next ( ) ) {
int numColumns = rs. getMetaData ( ) . getColumnCount ( ) ;
for ( int i = 1 ; i < = numColumns ; i++ ) {
// Column numbers start at 1.
// Also there are many methods on the result set to return
// the column as a particular type. Refer to the Sun documentation
// for the list of valid conversions.
System . out . println ( "COLUMN " + i + " = " + rs. getObject ( i ) ) ;
} // for
} // while
} finally {
try { rs. close ( ) ; } catch ( Throwable ignore ) { /* Propagate the original exception
instead of this one that you may want just logged */ }
}
} finally {
try { ps. close ( ) ; } catch ( Throwable ignore ) { /* Propagate the original exception
instead of this one that you may want just logged */ }
} // try
Jika operasi database gagal, JDBC menimbulkan SQLException
. Ada
biasanya sangat sedikit yang bisa dilakukan untuk pulih dari kesalahan
seperti itu, selain penebangan dengan sedetail mungkin. Disarankan
bahwa SQLException tersebut akan diterjemahkan ke dalam aplikasi domain
pengecualian (satu dicentang) yang akhirnya menghasilkan rollback
transaksi dan pemberitahuan kepada pengguna.
boolean autoCommitDefault = conn. getAutoCommit ( ) ;
try {
conn. setAutoCommit ( false ) ;
/* You execute statements against conn here transactionally */
conn. commit ( ) ;
} catch ( Throwable e ) {
try { conn. rollback ( ) ; } catch ( Throwable ignore ) { }
throw e ;
} finally {
try { conn. setAutoCommit ( autoCommitDefault ) ; } catch ( Throwable ignore ) { }
}
Berikut adalah contoh jenis host database yang dapat mengkonversi ke Jawa dengan fungsi.
setXXX()
Metode
Oracle Datatype | setXXX() |
CHAR | setString() |
VARCHAR2 | setString() |
NOMOR | setBigDecimal() |
setBoolean() |
setByte() |
setShort() |
setInt() |
setLong() |
setFloat() |
setDouble() |
INTEGER | setInt() |
FLOAT | setDouble() |
CLOB | setClob() |
BLOB | setBlob() |
RAW | setBytes() |
LONGRAW | setBytes() |
DATE | setDate() |
setTime() |
setTimestamp() |
XQuery API untuk Java
The XQJ API memungkinkan programmer Java untuk mengeksekusi XQuery melawan XML sumber data (misalnya database XML )
The XQJ API menyediakan pengembang Java dengan antarmuka ke Data Model XQuery. Desain yang mirip dengan JDBC API yang memiliki client / server dan merasa seperti cocok baik untuk Server berbasis XML Database dan kurang baik kepada klien- Sisi XQuery prosesor, meskipun " koneksi"bagian adalah bagian yang sangat kecil dari seluruh API.
Contoh Dasar
Contoh berikut menggambarkan menciptakan koneksi ke
database XML , mengirimkan
XQuery ekspresi, kemudian memproses hasil di
Jawa .
Setelah semua hasil telah diproses, koneksi ditutup.
// create a new connection to an XML Database
XQConnection conn = vendorDataSource. getConnection ( "myUser" , "myPassword" ) ;
XQExpression expr = conn. createExpression ( ) ; // create a reusable XQuery Expression object
XQResultSequence result = expr. executeQuery (
"for $n in fn:collection('catalog')//item " +
"return fn:data($n/name)" ) ; // execute an XQuery expression
// process the result sequence iteratively
while ( result. next ( ) ) {
// Print the current item in the sequence
System . out . println ( "Product name: " + result. getItemAsString ( null ) ) ;
}
// free all resources created by the connection
conn. close ( ) ;
Contoh berikut menggambarkan bagaimana Java nilai dapat terikat ke variabel eksternal dalam XQuery ekspresi. Asumsikan bahwa conn koneksi sudah ada
XQExpression expr = conn. createExpression ( ) ;
// the XQuery expression to be executed
String es = "declare variable $x as xs:integer external;" +
" for $n in fn:collection('catalog')//item" +
" where $n/price <= $x" +
" return fn:data($n/name)" ;
// bind a value (21) to an external variable with the QName x
expr. bindInt ( new QName ( "x" ) , 21 , null ) ;
// execute the XQuery expression
XQResultSequence result = expr. executeQuery ( es ) ;
// process the result (sequence) iteratively
while ( result. next ( ) ) {
// process the result ...
}
Default conversion rules when mapping from Java data types to XQuery data types
Java Datatype | Default XQuery Data Type(s) |
boolean | xs:boolean |
byte | xs:byte |
byte[] | xs:hexBinary |
double | xs:double |
float | xs:float |
int | xs:int |
long | xs:long |
short | xs:short |
Boolean | xs:boolean |
Byte | xs:byte |
Float | xs:float |
Double | xs:double |
Integer | xs:int |
Long | xs:long |
Short | xs:short |
String | xs:string |
BigDecimal | xs:decimal |
BigInteger | xs:integer |
Duration | xs:dayTimeDuration if the Duration Object's state is xs:dayTimeDuration |
xs:yearMonthDuration if the Duration Object's state is xs:yearMonthDuration |
xs:duration if the Duration Object's state is xs:duration |
XMLGregorianCalendar | xs:date if the XMLGregorianCalendar Object's state is xs:date |
xs:dateTime if the XMLGregorianCalendar Object's state is xs:dateTime |
xs:gDay if the XMLGregorianCalendar Object's state is xs:gDay |
xs:gMonth if the XMLGregorianCalendar Object's state is xs:gMonth |
xs:gMonthDay if the XMLGregorianCalendar Object's state is xs:gMonthDay |
xs:gYear if the XMLGregorianCalendar Object's state is xs:gYear |
xs:gYearMonth if the XMLGregorianCalendar Object's state is xs:gYearMonth |
xs:time if the XMLGregorianCalendar Object's state is xs:time |
QName | xs:QName |
Document | document-node(element(*, xs:untyped)) |
DocumentFragment | document-node(element(*, xs:untyped)) |
Element | element(*, xs:untyped) |
Attr | attribute(*, xs:untypedAtomic) |
Comment | comment() |
ProcessingInstruction | processing-instruction() |
Text | text() |
Relational database management system
Sebuah
sistem manajemen database relasional (RDBMS) adalah
sistem manajemen database
(DBMS) yang didasarkan pada
model relasional
seperti yang diperkenalkan oleh
EF Codd
, IBMSan Jose Research Laboratory
.
Banyak database populer digunakan saat ini didasarkan pada
database relasional Model.
RDBMSs telah menjadi
pilihan
yang dominan untuk penyimpanan informasi dalam database baru yang
digunakan untuk catatan keuangan, manufaktur dan informasi logistik,
Data personil, dan banyak lagi.
Database relasional telah sering diganti warisan
database hirarkis
dan
database jaringan karena mereka lebih mudah untuk memahami dan menggunakan.
Namun, database relasional telah ditantang oleh
objek database
, yang diperkenalkan dalam upaya untuk mengatasi
mismatch impedansi object-relational
dalam database relasional, dan
database XML
.