Tampilkan postingan dengan label Kuliah. Tampilkan semua postingan
Tampilkan postingan dengan label Kuliah. Tampilkan semua postingan

Kamis, 23 April 2009

Prinsip Basis Data Terdistribusi

Pengertian basis data terdistribusi/Distributed Database (DDB) adalah
suatu kumpulan berbagai basis data yang secara logika saling berhubungan satu
dengan lainnya, yang terdistribusi dalam suatu network komputer. Sedangkan
pengertian dari Distributed Database Management System (DDBMS) adalah
software yang mengelola DDB dan menyediakan mekanisme akses yang
membuat proses distribusi transparan bagi user. Dari sini dapat disimpulkan
bahwa sistem basis data terdistribusi (DDBS) adalah gabungan dari DDB dan
DDBMS.

pada beberapa site tersebut saling terkoneksi satu dengan yang lainnya melalui network parallel database systems. DDBS adalah basis data yang terstruktur dari beberapa file dan saling berelasi antar data Relational data model. DDBS melakukan distribusi pada processing logic, functions, data dan kontrol

Basis Data Terdistribusi pada SQL Server 2000
Sistem basis data terdistribusi pada SQL Server 2000 memungkinkan
aplikasi untuk mengakses data yang terdistribusi dari lokal dan remote server.
Basis data terdistribusi pada SQL Server 2000 menggunakan arsitektur
client/server untuk melakukan proses permintaan informasi. SQL Server 2000
menyediakan fasilitas linked server, agar suatu basis data SQL Server dapat
terkoneksi dengan basis data SQL Server yang lain. Linked server adalah link
untuk mengakses basis data yang lain, melalui OLE DB Data Source. Setiap
distributed query dapat mereferensi banyak linked server dan melakukan operasi
update atau read terhadap masing-masing linked server Seperti yang
diperlihatkan pada contoh di bawah ini:
select *
from openquery(LINKED_OLAP,
'select [Customer Gender:Gender],sum([measures:unit sales])
from sales
group by [Customer Gender:Gender]')

Basis Data Terdistribusi pada Oracle 9i
Sama halnya dengan SQL Server 2000, sistem basis data terdistribusi
pada Oracle 9i memungkinkan aplikasi untuk mengakses data dari lokal dan
remote server. Sistem basis data terdistribusi pada Oracle 9i juga menggunakan
arsitektur client/server untuk melakukan proses permintaan informasi. Suatu
sistem distribusi dimana setiap basis data adalah basis data Oracle disebut juga
homogenous distributed database system, sedangkan heterogeneous distributed
database system, sedikitnya satu basis data bukanlah basis data Oracle

Konsep inti dari suatu basis data terdistribusi pada Oracle 9i adalah
database link, yaitu koneksi antara dua server basis data yang mengijinkan client
untuk mengakses server-server tersebut sebagai satu kesatuan basis data secara
logika. Sebagai contoh suatu query untuk mengetahui nama karyawan dari basis
data sales pada basis data
sales.us.americas.acme_auto.com
adalah:

SELECT ename
FROM scott.emp@sales.us.americas.acme_auto.com;
Untuk memaksimalkan prinsip transparansi, Oracle menggunakan
synonym. Synonym mengijinkan user mengakses tabel pada remote server sama
halnya dengan mengakses lokal server. Sebagai contoh, untuk membuat synonym
dimasukkan perintah:

CREATE PUBLIC SYNONYM emp
FOR scott.emp@sales.us.americas.acme_auto.com;

Dengan perintah tersebut, maka daripada mengeksekusi query seperti di bawah
ini:

SELECT ename
FROM scott.emp@sales.us.americas.acme_auto.com;
Suatu aplikasi dapat menjalankan query yang jauh lebih mudah.
SELECT ename
FROM emp;

Function Date "Query oracle9i "/ ISQL PLUS


select sysdate,start_date, months_between(sysdate,start_date)from s_emp


SYSDATE

START_DAT

MONTHS_BETWEEN(SYSDATE,START_DATE)

18-MAR-09

03-MAR-90

228.491997

18-MAR-09

08-MAR-90

228.342131

18-MAR-09

17-JUN-91

213.051809

18-MAR-09

07-APR-90

227.37439

18-MAR-09

04-MAR-90

228.471164

18-MAR-09

18-JAN-91

218

18-MAR-09

14-MAY-90

226.148583

18-MAR-09

07-APR-90

227.37439

18-MAR-09

09-FEB-92

205.309873

18-MAR-09

27-FEB-91

216.729228

18-MAR-09

14-MAY-90

226.148583

18-MAR-09

18-JAN-92

206

18-MAR-09

18-FEB-91

217

18-MAR-09

22-JAN-92

205.890519

SYSDATE

START_DAT

MONTHS_BETWEEN(SYSDATE,START_DATE)

18-MAR-09

09-OCT-91

209.309873

18-MAR-09

07-FEB-92

205.37439

18-MAR-09

08-MAR-90

228.342131

18-MAR-09

09-FEB-91

217.309873

18-MAR-09

06-AUG-91

211.406648

18-MAR-09

21-JUL-91

211.922777

18-MAR-09

26-MAY-91

213.761486

18-MAR-09

30-NOV-90

219.632454

18-MAR-09

17-OCT-90

221.051809

18-MAR-09

17-MAR-91

216.051809

18-MAR-09

09-MAY-91

214.309873

select sysdate,add_months(sysdate,8)from s_emp

SYSDATE

ADD_MONTH

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

SYSDATE

ADD_MONTH

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

18-MAR-09

18-NOV-09

3.select sysdate,next_day(sysdate,'saturday')from s_emp

18-MAR-09 21-MAR-09


4.select sysdate,last_day(sysdate)from s_emp

18-MAR-09 31-MAR-09


select sysdate,round(sysdate,'Month')as ROUND_MONTH from s_emp

SYSDATE

ROUND_MON

18-MAR-09

01-APR-09

18-MAR-09

01-APR-09

18-MAR-09

01-APR-09

18-MAR-09

01-APR-09

18-MAR-09

01-APR-09

select sysdate,round(sysdate,'Year')as ROUND_YEAR from s_emp

SYSDATE

ROUND_YEA

18-MAR-09

01-JAN-09

18-MAR-09

01-JAN-09

18-MAR-09

01-JAN-09

18-MAR-09

01-JAN-09

18-MAR-09

01-JAN-09

18-MAR-09

01-JAN-09

select sysdate,trunc(sysdate,'Month')as TRUNC_MONTH from s_emp

SYSDATE

TRUNC_MON

18-MAR-09

01-MAR-09

18-MAR-09

01-MAR-09

18-MAR-09

01-MAR-09

18-MAR-09

01-MAR-09

18-MAR-09

01-MAR-09

select sysdate,trunc(sysdate,'Year')as TRUNC_YEAR from s_emp

SYSDATE

TRUNC_YEA

18-MAR-09

01-JAN-09

18-MAR-09

01-JAN-09

18-MAR-09

01-JAN-09

18-MAR-09

01-JAN-09

18-MAR-09

01-JAN-09

18-MAR-09

01-JAN-09

Tugas Kuliah "Query Untuk Oracle 9i"

1.character function

LOWER --> menampilkan hurup kecil sajo
UPPEr --> Menampilkan hurup besar sajo
INITcap-->gabungan kecil/besar

ex:
select lower(last_name) LOWER, upper(first_name)
UPPER,initcap(title)INITCAP
from s_emp


concat-->mengabung dua karakter.
ex:
select concat(first_name,last_name)NAME from s_emp


SUBSTR-->
ex
select substr(title,1,6)SUBSTR from s_emp

LENGTH-->
ex:
select length(first_name)LENGth from s_emp

instr-->
ex:
last_name

2.number function

Round-->
ex:
select round(45.926,2)ROUND from dual;
Trunc-->
ex:
select trunc(45.926,2)TRUNC from dual;
MOD-->
ex:
select salary,mod(salary,100)MOD from s_emp;


3.date funtion
months_between-->
ex:
select sysdate,start_Date,months_between(sysdate,start_date)from s_emp;
add_months-->
ex: select sysdate,add_months(sysdate,8)from s_emp;

next_day-->
ex
select sysdate,next_day(sysdate,'saturday')from s_emp;

last_day-->
ex
select sysdate,last_day(sysdate)from s_emp;


ROUND_MONTH-->
select sysdate, round(sysdate,'Month')as ROUND_MONTH from s_emp;
select sysdate, round(sysdate,'year')as ROUND_YEAR from s_emp;

trunc_MONTH-->

select sysdate, trunc(sysdate,'Month')as trunc_MONTH from s_emp;
select sysdate, trunc(sysdate,'Year')as trunc_YEAR from s_emp;


4.case else & decode

select first_name,last_name,title,
CASE title WHEN 'President'THEN 1.10*salary
WHEN 'Warehouse Manager'THEN 1.15*salary
WHEN 'Stock Clerk'THEN 1.20*salary
ELSE salary END"REVISED-SALARY" from s_emp;



select first_name,last_name, title,salary,
DECODE(title,'President',1.10*salary,
'Warehouse Manager',1.15*salary,
'Stock Clerk', 1.20*salary,salary)
REVISED_SALARY
FROM s_emp;

desc s_emp----> melihat record
select*from S_EMP------> melihat tabel

restricting and sorting data:

a.restricting data
select*from S_EMP where condition(s);

ex: select*from s_emp
where salary>=1000;--->berdasarkan nilai
salary(kolomnya)
>=(kondisi pembanding)/comparison condition


tipe data orc: -varchar---->menyimpan data sesuai dgn jumlah variabel yg kt masukkan
-varchar2--->menyimpan data sesuai dgn karakter
-date
-number

select*from s_emp
where first_name='Carmen';

comparison condition:
>=,<=,=,>,<,<>
yg lain:
1. between....and....
syntax:
where column between....and....
ex: staff yg mempunyai salary antara 1000s/d 2500

select*from s_emp
where salary >=1000 and salary <=25000; atau select*from s_emp where salary between 1000 and 2500;
selain itu:
select*from s_emp where salary not between 1000 and 2500;
2. IN syntax:
where column IN(value1,value2,valuen);
ex: tampilkan staf yg punya salary 1000,100,1300,1400
select*from s_emp where salary=1100 or salary=1400;
atau
select*from s_emp where salary in(1100,1300,1400,100);
selain itu
select*from s_emp where salary NOT in(1100,1300,1400,100);
3. LIKE
contoh: tampilkan staf yg mana huruf kedua dari first namenya=O berikutnya bebas.

select*from s_emp where first_name LIKE '_o%';

many character menampil hurup awal M
select*from s_emp where first_name LIKE 'M%';

SORRTING DATA:
(ORDER BY) syntax:
ORDER BY colum Asc/desc;
order by diletakkan pada akhir sebuah query.
ex: tampilkan staff yg punya salary >=1000 kemudian
masukkan berdasarkan first_name dari kecil ke besar(A-Z)

select*from s_emp
where salary >=1000
order by first_name asc;


jika hanya menampilkan yang tertentu saja dari tabel tsb maka:

select last_name,first_name,dept_id,salary from s_emp
where salary >=1000
order by first_name;


menampilkan salary yg dijumlahkan dan membuat aliasnya:

select last_name,salary,salary*12 as baim
from s_emp


select last_name,title,salary,
case title when 'warehouse manager' then 1,10*salary
when 'president' then 1,15*salary
when 'stock clerk' then 1,20*salary
else salary end "revised salary"
from s_emp;

select last_name,title,salary,
decode(title 'warehouse manager',1,10*salary,
'president',1,15*salary,
'stock_clerk',1,20*salary,
salary)
"revised_salary"
from s_emp;