Database System
Tugas 2 sistem Basis Data
| Kontak | : \(\downarrow\) |
| dsciencelabs@outlook.com | |
| https://www.instagram.com/dsciencelabs/ | |
| RPubs | https://rpubs.com/dsciencelabs/ |
What is MariaDB
MariaDB adalah sistem manajemen basis data relasional sumber terbuka. Mariadb mirip dengan MySQL (sistem manajemen basis data) dan merupakan cabang dari MySQL. Seperti database relasional lainnya, MariaDB menyimpan data dalam tabel yang terdiri dari baris dan kolom. Pengguna dapat mendefinisikan, memanipulasi, mengontrol, dan membuat kueri data menggunakan Bahasa Kueri Terstruktur, yang lebih dikenal sebagai SQL .
Beberapa perusahaan yang menggunakan MariaDB termasuk RedHat , Ubuntu, Google, Wikipedia, Tumblr, Amazon Web Services, SUSE Linux, dan banyak lagi.
What is RMySQL
RMySQL adalah antarmuka basis data dan driver MySQL untuk R. Kita menggunakan MySQL sebagai database atau data untuk menghubungkan ke R. Disini, kita menggunakan bahasa R untuk menyiapkan dan menyambungkan ke tabel di MySQL. ntuk membuat koneksi MySQL di R, kita memerlukan parameter yaitu menggunakan driver RMySQL::MySQL().Pada koneksi R dengan MySQL dibutuhkan host (IP address), dbname (nama database), user (username untuk akses database), dan password (password untuk akses database).
What is RSQLite
RSQLite merupakan sebuah langkah yang dapat dilakukan dengan mudah untuk menggunakan database SQLite dari R dan menyediakan antarmuka yang kompatibel sesuai dengan DBI yang tidak memerlukan perangkat lunak eksternal. Untuk membuat koneksi SQLiArgumen berikutnya di SQLite adalah loaksi dan nama file database SQLite. te di R, kita memerlukan parameter yaitu menggunakan driver RSQLite::SQLite().
The Differences
MariaDB: MariaDB memiliki kumpulan koneksi yang lebih besar yang mendukung hingga 200.000+ koneksi. MariaDB hadir dengan fitur dan ekstensi baru termasuk pernyataan JSON, WITH dan KILL. Mariadb menggunakan bahasa C dan C++ dalam pengkodeannya. Mendukung format XMLMySQL: MySQL memiliki kumpulan koneksi yang lebih kecil.MySQL dikembangkan dalam bahasa C dan C++. MySQL membutuhkan server database untuk berfungsinya. Mendukung format XMLSQLite: SQLite secara eksplisit memungkinkan banyak koneksi. SQLite dikembangkan hanya dalam bahasa C. SQLite tidak memerlukan server untuk dijalankan. Tidak mendukung format XML.
Getting Started
Memuat semua paket menggunakan pacman.
pacman::p_load(DBI, # memabntu menguhubungkan R ke DBMS
odbc, # menhubungkan ke database yang kompatibel dengan ODBC
RMariaDB, # antarmuka basis data dan driver 'MariaDB'
RMySQL, # antarmuka basis data dan driver 'RMySQL'
RSQLite # antarmuka basis data dan driver 'RSQLite'
)Connecting R to SQL
Terdapat banyak cara dalam mengubungkan database pada R. Ada 3 cara yang paling umum yaitu:
Create MariaDB
MariaDB <- dbConnect(MariaDB(),
user='root',
password='',
dbname='mysql',
host='localhost')dbListTables(MariaDB)dbExecute(MariaDB, "CREATE DATABASE new_MariaDB")Create new_MariaDB
dbExecute(MariaDB, "DROP DATABASE new_MariaDB")drop new_MariaDB
Create RMySQL
MySQL <- dbConnect(MySQL(),
user='root',
password='',
dbname='mysql',
host='localhost')dbListTables(MySQL)dbExecute(MySQL, "CREATE DATABASE new_MySQL")Create new_MySQL
dbExecute(MySQL, "DROP DATABASE new_MySQL")Drop new_MySQL
Create RSQLite
RSQLite <- dbConnect(RSQLite::SQLite(), "mydb3.sqlite")
dbListTables(RSQLite) Create mydb3.sqlite
Import Data
Datatabel diperlukan pengimportan kumpulan data sesuai dengan file yang tersedia jika belum terdaftar di database. Jika sudah terdaftar, tidak diperlukan tahapan pengimportan data lagi.
CSV Files
Customers <- read.csv("C:/Users/HP/OneDrive/Documents/kuliah/R/database system/tugas2/Customers.csv")
Categories <- read.csv("C:/Users/HP/OneDrive/Documents/kuliah/R/database system/tugas2/Categories.csv")
Employees <- read.csv("C:/Users/HP/OneDrive/Documents/kuliah/R/database system/tugas2/Employees.csv")
OrderDetail <- read.csv("C:/Users/HP/OneDrive/Documents/kuliah/R/database system/tugas2/OrderDetails.csv")
Orders <- read.csv("C:/Users/HP/OneDrive/Documents/kuliah/R/database system/tugas2/Orders.csv")
Products <- read.csv("C:/Users/HP/OneDrive/Documents/kuliah/R/database system/tugas2/Products.csv")
Shippers <- read.csv("C:/Users/HP/OneDrive/Documents/kuliah/R/database system/tugas2/Shippers.csv")
Suppliers <- read.csv("C:/Users/HP/OneDrive/Documents/kuliah/R/database system/tugas2/Suppliers.csv")XLSX Files
library("readxl")
Customers <- read_excel("C:/Users/HP/OneDrive/Documents/kuliah/R/database system/tugas2/RawDatabase.xlsx", sheet=1)
Categories <- read_excel("C:/Users/HP/OneDrive/Documents/kuliah/R/database system/tugas2/RawDatabase.xlsx", sheet=2)
Employees <- read_excel("C:/Users/HP/OneDrive/Documents/kuliah/R/database system/tugas2/RawDatabase.xlsx", sheet=3)
OrderDetail <- read_excel("C:/Users/HP/OneDrive/Documents/kuliah/R/database system/tugas2/RawDatabase.xlsx", sheet=4)
Orders <- read_excel("C:/Users/HP/OneDrive/Documents/kuliah/R/database system/tugas2/RawDatabase.xlsx", sheet=5)
Products <- read_excel("C:/Users/HP/OneDrive/Documents/kuliah/R/database system/tugas2/RawDatabase.xlsx", sheet=6)
Shippers <- read_excel("C:/Users/HP/OneDrive/Documents/kuliah/R/database system/tugas2/RawDatabase.xlsx", sheet=7)
Suppliers <- read_excel("C:/Users/HP/OneDrive/Documents/kuliah/R/database system/tugas2/RawDatabase.xlsx", sheet=8)Create RawDatabase in Excel
Write Dataframe to Database
Menggunakan dbWriteTable untuk menulis bingkai data R langsung ke tabel database. Nama kolom bingkai data digunakan sebagai bidang tabel databse. Dengan menggunakan RMariaDB, kita dapat menerapkan driver yang diinginkan.
new_con <- dbConnect(MariaDB(),
user='root',
password='',
dbname='new_mariadb',
host='localhost')
dbWriteTable(new_con, "Customers", Customers, append=T)
dbWriteTable(new_con, "Categories", Categories, append=T)
dbWriteTable(new_con, "Employees", Employees, append=T)
dbWriteTable(new_con, "Orders", Orders, append=T)
dbWriteTable(new_con, "OrderDetail", OrderDetail, append=T)
dbWriteTable(new_con, "Products", Products, append=T)
dbWriteTable(new_con, "Shippers", Shippers, append=T)
dbWriteTable(new_con, "Suppliers", Suppliers, append=T)Dalam meyimpan data tabel, terdapat beberapa hal yang harus diperhatikan yaitu:
- Penyesuaian Struktur Data
- Perubahan Tipe Data (tanggal dan waktu)
Dalam mempertimbangkan data employees dan Orders, ditemukan tidak terdapat penulisan tanggal yang benar pada database. Untuk menangani masalah terbsebut, bisa digunakan cara sebagai berikut:
dbRemoveTable(new_con, "Orders")Orders["OrderDate"] <- as.Date(Orders$OrderDate, format = "%Y-%m-%d")dbWriteTable(new_con, "Orders", Orders, append=T)Dataframe dalam new_mariadb
General Query
Select From
Digunakan untuk meyeleksi data dari database
library(DT)
df1 <- dbGetQuery(new_con, 'SELECT City, Address, Country FROM Customers')Where
Digunakan dalam memfilter record, mengekstrak hanya record yang memenuhi kondisi tertentu.
df2 <- dbGetQuery(new_con, "SELECT *
FROM Customers
WHERE COuntry='GERMANY' ")
datatable(df2)Insert Into
Digunakan jika ingin menambahkan nilai pada semua kolom tabel, tidak perlu menentukan nama kolom dalam query SQL, namun hanya memastikan nilai dalam urutan yang sama dengan kolom yang ada pada tabel.
dbExecute(new_con, "INSERT INTO Customers(CustomerName, ContactName, Address, City, PostalCOde, COuntry)
VALUES('Bakti', 'Siregar', 'Jl.Bahagia Selalu', 'Tanggerang', '081369', 'Indonesia')")Delete From
Digunakan utnuk menghapus catatan yang ada pada tabel.
dbExecute(new_con, "DELETE FROM Customers
WHERE CustomerName = 'Bakti' ")Update
Digunakan untuk mengubah catatan yang ada pada tabel
dbExecute(new_con, "UPDATE Customers
SET ContactName = 'Alfred Schmidt', City= 'Frankfurt'
WHERE CustomerID = 1")Disconnest Database
Jika sudah selesai dalam proses Query dan tidak inginmenggunakannya lagi, dapat memutuskan koneksi dari database tersebut
dbDisconnect(new_con)