PostgreSQL Örnek Veritabanı Ekleme (dvdrental)

Merhabalar, bu yazımızda Linux Mint 19 kurulu sanal bilgisayarımızda terminal üzerinden PostgreSQL 11 ‘e dvdrental adlı örnek bir veritabanı eklemeyi göstereceğiz.

DVD Rental veritabanında bulunan nesneler;

  • 15 tablo
  • 1 trigger
  • 7 view
  • 8 fonksiyon
  • 1 domain
  • 13 sequence

dvd-rental-sample-database-diagram

DVD Rental veritabanında bulunan 15 tablo :

  • actor – aktörlerin isim ve soyisimlerini içerir.
  • film – başlık, yayın yılı, uzunluk, puanlama, vb. gibi film verilerini içerir.
  • film_actor – filmler ve aktörler arasındaki ilişkileri içerir.
  • category – filmlerin kategori bilgilerini içerir.
  • film_category– filmler ve kategoriler arasındaki ilişkileri içerir.
  • store – yönetici kadrosu ve adres dahil olmak üzere mağaza verilerini içerir.
  • inventory – envanter bilgilerini içerir.
  • rental – kiralama bilgilerini içerir.
  • payment – müşterin ödemelerini içerir.
  • staff – kadro bilgilerini içerir.
  • customer – müşteri bilgilerini içerir.
  • address – personel ve müşteriler için adres verilerini içerir.
  • city –  şehir isimlerini içerir.
  • country –  ülke isimlerini içerir.

DVD Rental adlı veritabanını indirmek için buraya tıklayabilirsiniz. İndirdiğimiz zip dosyasını sanal makinamiza kopyalıyoruz. Sonrasında bir terminal açıp sırayla komutlarımızı çalıştırıyoruz.

screenshot_0

ls10@LingoSoft:~$ cd Masaüstü/

ls10@LingoSoft:~/Masaüstü$ ls -l
toplam 540
-rwxrw-rw- 1 ls10 ls10 551437 Oca 7 12:44 dvdrental.zip

ls10@LingoSoft:~/Masaüstü$ unzip dvdrental.zip
Archive: dvdrental.zip
inflating: dvdrental.tar

ls10@LingoSoft:~/Masaüstü$ sudo su -
[sudo] password for ls10:

root@LingoSoft:~#

screenshot_1

Şimdi /usr/local/ dizinin altında pgsql adında bir klasör oluşturuyoruz. Oluşturduğumuz klasöre erişebilmesi için chown komutu ile klasörün sahibini postgres olarak tanımlıyoruz. Ardından cp komutu ile masaüstünde bulunan dvdrental.tar dosyamızı pgsql klasörünün içerisine kopyalıyoruz.

root@LingoSoft:~# mkdir /usr/local/pgsql

root@LingoSoft:~# chown postgres /usr/local/pgsql/

root@LingoSoft:~# cp /home/ls10/Masaüstü/dvdrental.tar /usr/local/pgsql/

root@LingoSoft:~# cd /usr/local/pgsql/

root@LingoSoft:/usr/local/pgsql# ls -l
toplam 2772
-rw-r--r-- 1 root root 2838016 Oca 7 15:00 dvdrental.tar

screenshot_2screenshot_3

Halihazırda arkaplanda çalışan postgre servisi varsa onları  service komutu ile durduruyoruz. Ardından postgres kullanıcısına geçiş yapıyoruz.  PostgreSQL servisini yeniden başlatmak için /usr/lib/postgresql/11/bin/ dizini altında bulunan initdb dosyasını çalıştırıyoruz. Sonrasında initdb ile aynı dizin altında bulunan pg_ctl dosyasını çalıştıracağız. Bir önceki komutun sonucunda bize veritabanı sunucusunu başlatmak için bir link sunacak, oradan kopyalayarak doğrudan çalıştırabiliriz.

Not: Bu yazımızda, bir önceki yazıyı takip ederek PostgreSQL 11 üzerinden devam ettik, sizde PostgreSQL 10  gibi farklı bir sürüm varsa sizin dizin adresiniz büyük ihtimalle şu şekilde olacaktır. –> /usr/lib/postgresql/10/bin/

root@LingoSoft:~# service postgresql stop

root@LingoSoft:~# su - postgres

postgres@LingoSoft:~$ /usr/lib/postgresql/11/bin/initdb -D /usr/local/pgsql/data

postgres@LingoSoft:~$ /usr/lib/postgresql/11/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
sunucunun başlaması bekleniyor.... tamam
sunucu başlatıldı

screenshot_4screenshot_5

Şimdi terminalden tar dosyamız ile birebir aynı olacak şekilde, dvdrental adında bir veritabanı oluşturuyoruz. Sonrasında /usr/local/pgsql/data/ dizinine geçiyoruz.

postgres@LingoSoft:~$ psql
psql (11.1 (Ubuntu 11.1-1.pgdg18.04+1))
Yardım için "help" yazınız.

postgres=# CREATE DATABASE dvdrental;
CREATE DATABASE

postgres=# \q

postgres@LingoSoft:~$ cd /usr/local/pgsql/data/

postgres@LingoSoft:/usr/local/pgsql/data$ ls -l

screenshot_6screenshot_7

Son olarak oluşturduğumuz dvdrental veritabanını pg_restore komutu ile yeniden yapılandırıyoruz. Yapılandırırken referans olarak tar dosyamızı adres gösteriyoruz. Komutu çalıştırdığımız sırada bize bir hata dönecek, public şemasının önceden oluşturulmuş olduğu için ” CREATE SCHEMA public; “ komutunun verdiği zararsız bir hatadır.

postgres@LingoSoft:/usr/local/pgsql/data$ pg_restore -U postgres -d dvdrental /usr/local/pgsql/dvdrental.tar

pg_restore: [arşivleyici (db)] PROCESSING TOC sırasında hata:
pg_restore: [arşivleyici (db)] TOC girişte hata 6; 2615 2200 SCHEMA public postgres
pg_restore: [arşivleyici (db)] could not execute query: HATA: "public" şeması zaten mevcut
Komut şuydu: CREATE SCHEMA public;

UYARI: yükleme sırasında hata es geçildi: 1

screenshot_8

Son olarak PgAdmin‘i çalıştırıyoruz. Sol tarafta Databases sekmesinin altında dvdrental adında bir veritabanı belirecektir. İlk göründüğünde üzerinde kırmızı bir çarpı olabilir. Üzerine tıkladığınızda sarıya dönecektir.

screenshot_9Screenshot_10.png

Faydalı bir yazı olması dileğiyle,

iyi çalışmalar dileriz. 🙂

 

Kaynak:

Sample Database: postgresqltutorial

Create Cluster – postgresql.org

Bu yazı İş Zekası içinde yayınlandı ve , , , , , , , , , , , , , , , , , , , , olarak etiketlendi. Kalıcı bağlantıyı yer imlerinize ekleyin.

Yorum bırakın