thursday'snotes
this site the web

Galeriku

image
image
image
image
image
image
image
image

PHP


  • ·         PHP adalah bahasa berbentuk skrip yang ditempatkan di dalam server dan diproses di server.
  • ·         Kode php diawali dengan   dan diakhiri ?>
  • ·         Skema php adalah:Browser mengirim request à Web server  àPHP script àPHP engine àhtml code àdi receive oleh brower
  • ·         Sebuah pernyataan dalam php selalu diakhiri dengan tanda (;)
  • ·         Variable yang di tulis dengan diawali ($)
  • ·         Tanda (% $) merupakan tanda format untukk string (data yang akan mensubtitusi tanda tersebut adalah data string)
  • ·         Casesensitive
  • ·         Konstanta di definisikan dengan ‘define’
  • ·         PHP adalah singkatan dari php hypertext preprocessor
  • ·         Session: cara konsisten untuk menjaga  atau memelihara data tertentu melewati akses berikutnya, dengan adanya  session tidak perlu ada komunikasi bolak-balik antara web server dengan client ketika server membutuhkan data tersebut.
  • ·         Cookie: session_id yang disimpan di sisi server, yang menjadi identitas yang akan selalu dikirimkan pada server setiap kali terjadi kontak

SQL Server DatabaseTuning


Apa tujuan dari tuning SQL Server database? Adalah meningkatkan performance sampai ke acceptable levels tercapai. Acceptable levels dapat didefinisikan berbagai cara. Untuk sebuah online transaction processing (OLTP) application yang besar , performance goal mungkin adalah menyediakan  subsecond response time untuk critical transactions dan menyediakan response time kurang dari 2 seconds untuk  95 percent dari main transactions.
1.       Proses desain database fisik
·         Logical desain database yang buruk adalah performa yang buruk
·         Physical design process adalah kunci dari seluruh design process
Pertimbangan untuk membentuk database :
·         Tipe system akan memperngaruhi keputusan physical database design yang dibuat  .Jika  systemadalah untuk mendukung OLTPd an complex decision support, maka lebih dari satu  database harus dipertimbangkan  untuk operational OLTP  system dan extracts dari operational OLTP system, untuk mendukung complex decision support.
·         Apa keterbatasan hardware dan budgetnya?
·         Apakan sebelumnya  database design  telah dilakukan pendekatan dari textbook normalization standpoint?
·         Seberapa penting database konsistensi?

2.       Data Analisis
·         Penting untuk menangkap informasi pada current data volumes dan expected data volumes. Tanpa informasi tersebut tidak akan mungkin  untuk memperkirakan  ukuran  disk drives  yang dibutuhkan database.

SQL Server Integration Service Part 1

Elemen yang membentuk Integration Service project::

  1. Package: unit kerja yang didapatkan, dieksekusi, dan disimpan dalam msdb database atau XML File dengan eksensi .dstx
  2. Control Flow : berisi task dan container
  3. Data Flow :  Berisi sources, transformation, and destination
  4. Variable : digunakan untuk melalukan operasi dinamis seperti update kolom dan mengontrol control flow berulang
  5. Event Handler : menjalankan response untuk run time events untuk membantu monitoring dan merespon package


Lesson #8 Querying Metadata, XML, Full Text-Indexes

Metadata : informasi deskriptif tentang data atau database
Misalnya sebuah database customer information dimana  ada kolom untuk nama customer dan end user akan melihat nilai dari kolom tersebur disetiap row-nya adalah nama customer.


  • Systems Catalog View: untuk meyederhanakan dan akses langsung ke metadata.
  • Information Schema views :untuk menyediakan internal, system-table-independent view dari metadata, Information schema sesuai standar dan dapat digunakan untuk aplikasi
  • Dynamic Management Views and Function : mekanisme untuk melihat SQL server bekerja. Menyediakan metode untuk memonitoring state dan kesehatan dari SQL Server
  • Stored Procedure : cara untuk mendapatkan informasi metadata tanpa harus mengerti terlalu dalam tentang strukturnya
XML : open standar yang direkomendasikan w3c untuk menciptakan custom markup language

5 metode yang didukung oleh XML data type:
  1. Query : menerima Xquery Statement meretrieve element dari XML data
  2. Value : meretrieve value dari SQL Type dari sebuah XML Instance
  3. Exist  : menentukan jika sebuah Xquery statement mengembalikan hasil
  4. Modify : digunakan untuk menentukan XML data modification update statement
  5. Nodes : membagi XML ke berbagai row





Lesson #7 Modifying Data in Table

Terdapat 4 operasi saat ingin memodifikasi data dalam  table:

  1. INSERT
  2. DELETE
  3. UPDATE
  4. Overview Transaction
INSERT:
 Statement Insert dapat digunakan bersama-sama dengan SELECT (dengan menambahkan kata INTO setelah kata INSERT ), EXCUTE, dan TOP  (dengan menambahkan kata INTO setelah kata TOP dan sertai dengan statement SELECT)

INSERT dan OUTPUT clause
Penggunaan OUTPUT dalam sebuah INSERT statement  akan mengembalikan informasi dari setiap baris yang  berubah akibat INSERT statement

DELETE
Statement Delete dapat digunakan bersama WHERE clause, Subquery, TOP

TRUNCATE TABLE
Menghapus seluruh baris dari table harus melakukan penghapusan secara individual . Truncate Table tidak dapat digunakan pada table yang direferensikan oleh Foreign Key, berpartipasi dalam indexed view, dipublikasikan menggunakan transactional replication atau merge replication. Jika tidak dapat di hapus menggunakan truncate gunakanlah DELETE statement.

Truncate memiliki kelebihan dibandingkan DELETE yaitu:

  1. Menggunakan transaction log lebih sedikit
  2. Tak ada yang tersisa di table
DELETE and the OUTPUT clause
Penggunaan OUTPUT dalam sebuah DELETE statement akan menghapus baris dari sebuah table dan mengembalikan nilai yang di hapus ke sebuah result set.

UPDATE
Statement UPDATE terdiri dari 2 clause utama :
  1. SET : termasuk didalamnya list kolom yang dipisahkan menggunakan tanda koma
  2. FROM : mengidentifikasi table atau view yang mengisi value untu ekspresi pada SET clause
UPDATE and the OUTPUT clause
Penggunaan OUTPUT dalam sebuah UPDATE statement akan mengupdate baris dari sebuah table dan mengembalikan nilai yang di hapus ke sebuah result set.

TRANSACTION
adalah urutan operasi yang dtunjukan sebagai single logical unit of work. Terdiri:
  1. Atomic : merupakan atomic unit of work
  2. Consistency : harus meninggalkan semua dalam  consistent state
  3. Isolation : harus terisolasi dari modifikasi yang dibuat dari concurrent transaction lainnya
  4. Durability : Tahan setelah kegagalan sistem
Macam - macam Basic Transaction Statement :
  1. BEGIN TRANSACTION
  2. COMMIT TRANSACTION
  3. ROLLBACK TRANSACTION
BEGIN TRANSACTION 
Menampilkan titik dimana data direferensikan oleh sebuah koneksi yang konsisten secara logikal dah fisikal> Jika terjadi error maka semua modifikasi data yang dibuat setelah BEGIN TRANSACTION dapat di rool back untuk mengembalikan data ke state consitency yang diketahui

COMMIT TRANSACTION
diterbitkan untuk membuat modifikasi menjadi permanent di database 

ROLLBACK TRANSACTION
menghapus seluruh modifikasi jika mengalami error saat modifikasi


TRANSACTION ISOLATION Level Control
Mengunci pengambilan data ketika data sedang di read, seberapa lama read locks ,bagaimana read operation mereferensikan rows acts


  1. READ UNCOMMITED : Statement dapat membaca row yang telah dimodifikasi oleh transaksi lain namun belum di-COMMIT
  2. READ COMMITED : Statement tidak dapat membaca data karena modifikasi belum di-COMMIT
  3. REPEATABLE READ : Statetment tidak dapat membaca data karena belum di-COMMIT oleh transaction lain dan tidak ada transaction yang dapat memodifikasi data yang telah dibaca oleh current transaction sampai current transaction selesai
  4. SNAPSHOT : Data dibaca oleh statement dalam sebuah transaksi yang akan menjadi trasactionally consistent version dari data yang telah ada  diawal transaction
  5. SERIALIZABLE : mengunci semua table dalam seluruh select statement dalam sebuah transaction

Lesson #6 Working With SubQueries


subquery vs join :

1. join menujukkan performa lebih cepat dari subquery dalam beberapa kasus namun eksistensi harus dicek
2. subquery lebih berguna untuk menjawab pertanyaan yang terlalu kompleks dijawab dengan join
3. subquery lebih cocok jika RAM kita tinggi karena terjadi adi memory
4. subquery lebih mudah di maintain daripada pada temporary table yang membutuhkan resources harddisk ketika dieksekusi
5. Gunakan temporary table untuk memecah sub query yang kompleks

contoh subquery vs join :

/* SELECT statement built using a subquery. */
SELECT Name
FROM Production.Product
WHERE ListPrice =
    (SELECT ListPrice
     FROM Production.Product
     WHERE Name = 'Chainring Bolts' )

/* SELECT statement built using a join that returns the same result
set. */
SELECT Prd1.Name
FROM Production.Product AS Prd1
     JOIN Production.Product AS Prd2
       ON (Prd1.ListPrice = Prd2.ListPrice)
WHERE Prd2.Name = 'Chainring Bolts';


contoh sub query dengan EXIST keyword :


SELECT Name
FROM Production.Product
WHERE EXISTS
    (SELECT *
     FROM Production.ProductSubcategory
     WHERE ProductSubcategoryID =
            Production.Product.ProductSubcategoryID
        AND Name = 'Wheels'); 



1. local temporary table : memiliki single number sign (#), muncul hanya pada koneksi yang sekarang digunakan user, dan terhapus ketika user diskoneksi
2. global temporary table :  memiliki double number sign (##), muncul pada seluruh user dan terhapus ketika diskoneksi

contoh create temporary table :


CREATE TABLE #MyTempTable (cola INT PRIMARY KEY);
INSERT INTO #MyTempTable VALUES (1);
SELECT * FROM #MyTempTable; 


CET : common expression table --> temporary result yang didapat dari select query dan dapat digunakan dalam select, insert, update, atau delete

keuntungan penggunaan CET adalah : query yang diturunkan dari table mudah dibaca dan menyediakan traversal hieraki recursive

contoh CET yang recursive :


USE AdventureWorks2008;
GO
WITH Parts(AssemblyID, ComponentID, PerAssemblyQty, EndDate,
ComponentLevel) AS
(
    SELECT b.ProductAssemblyID, b.ComponentID, b.PerAssemblyQty,
        b.EndDate, 0 AS ComponentLevel
    FROM Production.BillOfMaterials AS b
    WHERE b.ProductAssemblyID = 800
          AND b.EndDate IS NULL
    UNION ALL
    SELECT bom.ProductAssemblyID, bom.ComponentID,
p.PerAssemblyQty,
        bom.EndDate, ComponentLevel + 1
    FROM Production.BillOfMaterials AS bom
        INNER JOIN Parts AS p
        ON bom.ProductAssemblyID = p.ComponentID
        AND bom.EndDate IS NULL
)
SELECT AssemblyID, ComponentID, Name, PerAssemblyQty, EndDate,
        ComponentLevel
FROM Parts AS p
    INNER JOIN Production.Product AS pr
    ON p.ComponentID = pr.ProductID
ORDER BY ComponentLevel, AssemblyID, ComponentID;
GO 
contoh Store prosedure:



CREATE Procedure pGetPersonName
 @PersonID nvarchar(15)
AS
 SELECT BusinessEntityID,
   FirstName,
   MiddleName,
   LastName
  FROM dbo.vwPersonName
  WHERE BusinessEntityID = @PersonID
GO

Lesson #2: Summarizing Grouped Data

1. Clause GROUP BY

digunakan untuk menggrupkan baris ke dalam result set. Digunakan untuk menjalankan fungsi agregat  agar dapat berkerja.

Contoh :

SELECT [kolom ID e.g : ID], SUM [kolom total] AS Subtotal FROM [table] GROUP BY [kolom ID e.g : ID] ORDER BY [kolom ID e.g : ID]

SELECT [kolom e.g : DATE] AS 'Year', SUM [kolom total e.g: TotalDue] AS 'Total Due Ammount' From [table]
GROUP BY  [kolom e.g : DATE]
HAVING  [kolom e.g : DATE]  >='2003'
ORDER BY  [kolom e.g : DATE]

ROLLUP : Membuat general summary dalam sebuah query. Menciptakan result set yang menunjukan agregat untuk hierarki value dalam kolom yang dipilih

Contoh :
SELECT a, b, c SUM () WHERE  () FROM [tabel] ROLLUP (a,b,c)


CUBE : Membuat general summary dalam sebuah query, Menciptakan result set  yang menunjukan hubungan agregat untuk seluruh kombinasi nilai dalam kolom yang dipilih.


Contoh :
SELECT a, b, c SUM () WHERE  () FROM [tabel] CUBE (a,b,c)

COMPUTE :  menciptakan total yang muncul sebagai tambahan summary collumn di akhir result sets. Fungsi tcompute menciptakan dua result sets untuk setiap grup. Result set pertama mengandung detail row dari select statement grup dan yang kedua adalah baris yang mengandung subtotal dari aggregat function yang dispesifikasi dalam compute clause.

Contoh :
SELECT a, b, c  FROM [tabel] ORDER BY a COMPUTE SUM(b), SUM(c)

COMPUTE BY : menciptakan keduanya baik detail (subtotal) dan summary (grand total) agar tercipta dengan sebuah select statement dan penngunaan compute by harus diikuti dengan ORDER BY

Contoh :
SELECT a, b, c  FROM [tabel] ORDER BY a COMPUTE SUM(b), SUM(c) ORDER BY  a

GROUP SETS : operator tambahan dalam GROUP BY clause. Operator ini akan menunjukan beberapa Group set dalam satu query 





 

Disclaimer

I do not claim any of these images as my own unless otherwise stated

The views and opinions expressed on this blog are 100% mine. If I claim or appear to be an expert on a certain topic or product or service area, I will only endorse products or services that I believe, based on my expertise, are worthy of such endorsement. Any product claim, statistic, quote or other representation about a product or service should be verified with the manufacturer or provide

About Thursday's Notes

This blog is a personal blog written and edited by me, and does not reflect the views of either employers and/or clients. This blog does not accept any form of cash advertising, sponsorship, or paid topic insertions.