Tampilan database

Perancangan Basis Data

Lis Sulmont

Curriculum Manager

Tampilan database

Dalam database, view adalah hasil dari kueri tersimpan pada data, yang dapat dikueri pengguna seperti pada objek koleksi database persisten (Wikipedia)

Tabel virtual yang bukan bagian dari skema fisik

  • Yang disimpan di memori adalah kueri, bukan data
  • Data diambil dari tabel
  • Dapat dikueri seperti tabel biasa
  • Tak perlu mengetik ulang kueri umum atau mengubah skema
1 https://en.wikipedia.org/wiki/View_(SQL)
Perancangan Basis Data

Membuat view (sintaks)

CREATE VIEW view_name AS
SELECT col1, col2 
FROM table_name 
WHERE condition;
Perancangan Basis Data

Membuat view (contoh)

Dimensi buku pada skema snowflake

$$

Tujuan: Mengembalikan judul dan penulis untuk genre science fiction

Perancangan Basis Data

Membuat view (contoh)

CREATE VIEW scifi_books AS
SELECT title,  author, genre
FROM dim_book_sf
JOIN dim_genre_sf ON dim_genre_sf.genre_id = dim_book_sf.genre_id
JOIN dim_author_sf ON dim_author_sf.author_id = dim_book_sf.author_id
WHERE dim_genre_sf.genre = 'science fiction';
Perancangan Basis Data

Menjalankan kueri pada view (contoh)

SELECT * FROM scifi_books
| title                         | author            | genre           |
|-------------------------------|-------------------|-----------------|
| The Naked Sun                 | Isaac Asimov      | science fiction |
| The Robots of Dawn            | Isaac Asimov      | science fiction |
| The Time Machine              | H.G. Wells        | science fiction |
| The Invisible Man             | H.G. Wells        | science fiction |
| The War of the Worlds         | H.G. Wells        | science fiction |
| Wild Seed (Patternmaster, #1) | Octavia E. Butler | science fiction |
| ...                           | ...               | ...             |
Perancangan Basis Data

Di balik layar

SELECT * FROM scifi_books

=

SELECT * FROM 
(SELECT title,  author, genre
FROM dim_book_sf
JOIN dim_genre_sf ON dim_genre_sf.genre_id = dim_book_sf.genre_id
JOIN dim_author_sf ON dim_author_sf.author_id = dim_book_sf.author_id
WHERE dim_genre_sf.genre = 'science fiction');
Perancangan Basis Data

Melihat daftar view

(di PostgreSQL)

$$

SELECT * FROM INFORMATION_SCHEMA.views;

Mencakup view sistem

SELECT * FROM information_schema.views
WHERE table_schema NOT IN ('pg_catalog', 'information_schema');

Tidak termasuk view sistem

Perancangan Basis Data

Manfaat view

  • Tidak memakan storage
  • Bentuk kontrol akses
    • Sembunyikan kolom sensitif dan batasi yang dapat dilihat pengguna
  • Menyederhanakan kueri kompleks
    • Berguna untuk skema yang sangat ternormalisasi
Perancangan Basis Data

$$ Skema Database Ulasan Pitchfork

1 https://www.kaggle.com/nolanbconaway/pitchfork-data
Perancangan Basis Data

Ayo berlatih!

Perancangan Basis Data

Preparing Video For Download...