«BM364» Veritabanı Uygulamaları

Benzer belgeler
Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir.

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

Veri Bütünlüğü ve Constraint ler. Veritabanı 1

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

Veri Tabanı Hafta Dersi

SORGULAR VE ÇEŞİTLERİ II

Bölüm 4: DDL Veri Tanımlama Dili

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

3. Hafta Tablo İşlemleri BPR255 Veritabanı Yönetim. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri

VERİ TABANI ve YÖNETİMİ

3. Hafta Tablo İşlemleri BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri Kısıtlamalar (Constraints)

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Model (The Relational Model)

Veritabanına Uygulanması

Mysql Veritabanı Komutları

ve kullanıcı gereksinim listeleri size yol gözünden

VERİTABANI Veritabanı Yönetimi

SQL e Giriş. Uzm. Murat YAZICI

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

«BM364» Veritabanı Uygulamaları

Oracle da kullanılan veri tipleri:

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

MSSQL. 4. Hafta Uygulama - 1 BPR255 Veritabanı CREATE DATABASE OKUL GO USE OKUL GO

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Öğr. Gör. Murat KEÇECĠOĞLU

3 Sql Veri Tipleri ve Örnek Veritabanı Tasarımı. Veritabanı 1

VERİ TABANI YÖNETİM SİSTEMLERİ-II

SQL Komutları (2) Uzm. Murat YAZICI

VİEW (SANAL TABLO) 1. View Nedir? 2. View ler ile Çalışmak 3. View Oluşturmanın Yararları Veri güvenliği; Birim dönüştürmeleri;

BÖLÜM -7: TABLOLARI OLUŞTURMA VE YÖNETME

Veri Tabanı Programlamaya Giriş

TRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir.

Pursaklar İMKB Teknik ve Endüstri Meslek Lisesi

SQL sorguları çalıştırıldığında veriler tablo üzerinden iki yöntemle alınır.

VERİ TABANI YÖNETİM SİSTEMLERİ I

3 Sql Veri Tipleri. Veritabanı 1

«BM364» Veritabanı Uygulamaları-2

BİLİŞİM TEKNOLOJİLERİ

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

Durhan GABRALI Veritabanı Organizasyonu Dersi (11B)

Laboratuvar 6 TABLOLAR VE KISITLAR

Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz.

Aşağıdaki tabloyu inceleyin. Yeni kayıt girme, var olan bir kaydı silme veya güncelleme işlemlerini bu tabloya göre yapacağız.

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)

Veritabanı Tasarımı. NOT NULL ve UNIQUE Kısıtlamaları Tanımlama

Tavsiye Edilen Önhazırlık Temel SQL Server 2000 bilgisi edinmek.

VERİTABANI ORGANİZASYONU

SQL TRIGGERS (Tetikleyiciler)

BLG4134 Görsel Programlama III. Öğr. Grv. Aybike ŞİMŞEK

SORGULAR. Öğr.Gör.Volkan Altıntaş

KISITLAMALAR (CONSTRAINT)

Veritabanı Dersi. Teoriden Pratiğe. Çağıltay N.E., Tokdemir G. Veritabanı Sistemleri Dersi -Bölüm XII: Durum Çalışması Çağıltay, N., Tokdemir, G.

T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) BİLİŞİM TEKNOLOJİLERİ VERİ BÜTÜNLÜĞÜ

Veritabanı Tasarımı. Tablo Değiştirme

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

Maliye Uzman Yardımcılığı Giriş Sınavı (Bilişim) -16 Mart 2014 A

TEMEL SQL SORGU ÖRNEKLERİ. Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur.

Maliye Uzman Yardımcılığı Giriş Sınavı (Bilişim)-16 Mart 2014 B

VERİTABANI YÖNETİMİ. İlişkisel Veritabanı 4.HAFTA. Veritabanı Yönetimi Prof. Dr. İbrahim Çil

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL

Liquibase ile Veri Tabanı Değişiklik Yönetimi

İngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir.

MODÜL. Verileri Sorgulamak" Yaşar GÖZÜDELİ.

Veritabanlarına ve SQL'e Giriş. Devrim GÜNDÜZ. Teknoloji Destek Merkezi --

2- Total de 8000 byte yer tutup 4000 karakter olarak kullanabildiğimiz tip aşağıdakilerden hangisidir?

Veri Tabanı Hafta Dersi

İNTERNET PROGRAMCILIĞI HAFTA. MYSQL ile VERİTABANI İŞLEMLERİ - 1. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Veritabanı Oluşturma, Silme

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler

SQL Kod ile Tablo Oluşturma

YAPISAL SORGULAMA DİLİ. BARIŞ ARIBURNU barisariburnu.com

Nesneler üzerinde değişiklik yapmak için kullanılır. Veri tabanındaki nesnelerin oluşturulabilmesi için CREATE komutu kullanılır.

Bir çeşit prosedür. Ancak bu prosedür kendiliğinden çalışır. Çalışması için tabloya veri eklemek, veri silmek, veri değiştirmek yeterlidir.

İLİŞKİSEL VERİTABANLARI

YAPISAL SORGULAMA DİLİ (SQL)

License. Veri Tabanı Sistemleri. Konular. Bağıntı Modeli Dr. E. F. Codd, 1970 veri bağıntılar şeklinde modellenir: α A B C...

T.C GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ YÖNETİM BİLİŞİM SİSTEMLERİ ANA BİLİM DALI MS SQL KOMUTLARI VE MS SQL KOMUTLARI İLE İLGİLİ UYGULAMALAR

Veritabanı Tasarımı. Tablo Oluşturma

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

Bölüm 1: Veritabanı Yönetim Sistemlerine Giriş

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com

KULLANICI TANIMLI FONKSİYONLAR (Devam)

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

SQL Stored Procedure

KULLANICI TANIMLI FONKSİYONLAR

SQL'e Giriş 2. CREATE TABLE tabloadı (kolon isimleri ve veri türleri) (BOLUM_NO NUMBER, BOLUM_ADI CHAR(10));

İLERİ VERİTABANI SİSTEMLERİ SUAT ÜSTKAN

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) İlişkisel Veritabanı Modeli

KIRIKKALE ÜNİVERSİTESİ EĞİTİM FAKÜLTESİ BİLGİSAYAR VE ÖĞRETİM TEKNOLOJİLERİ EĞİTİMİ ANA BİLİM DALI VERİ TABANI YÖNETİM SİSTEMLERİ DERSİ FİNAL PROJESİ

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

Fonksiyonlar istenilen deger tipinde dönüs yapabilir. INT, VARCHAR deger döndürebileceğiniz gibi bir tablo da döndürebilirsiniz.

Veritabanı Yönetim Sistemleri I HAFTA 1

MOBİL UYGULAMA GELİŞTİRME

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

Transkript:

HAFTA 3 Veritabanı Tasarımı" Yaşar GÖZÜDELİ ygozudeli@verivizyon.com http://blog.verivizyon.com/ygozudeli «BM364» Veritabanı Uygulamaları

Konu Akışı Veritabanı Tasarımı Kuramlar Veritabanı Nesnesini Yapılandırmak Tabloları Tasarlamak Veri Bütünlüğünü Tasarlamak 2

Veritabanını Modellemek Süreç İşlem Sonuç Kavramsa Model Mantıksal Model Fiziksel Model Gerçekleme Nasıl-Niçin? USE CASE USER REQUIREMENTS Ne İsteniyor? Teknik Kuramlarla Düşünün. Normalizasyon-İlişkili Tablolar vs. Nasıl çalışan bir şey yapılacak? Hayata geçirmek temel nokta. Ne nasıl gerçeklenecek? Denormalizasyon vs. Müşteri ne ister? Onun bakış açısından Teknik ekip ne yapacak? Teknik bakış açısında geçirilmiş hali Gerçek ortamda veritabanı nasıl olacak? Projenin çalışan hali ve üstünde yapılan küçük değişiklikler 3

Kavramsal Model Use Case Diyagramlar ORM modelleme aklaşımı ER Yaklaşımı UML Yaklaşımı 4

Use Case Aktör ve Sistemin etkileşimi Üye sisteme giriş yapar. Sistem Aktör 5

ORM Diyagram Urun (urun kodu) Aittir Reyon (Reyon Kod) Sahibidir Sahibidir Sahibidir Sahibidir Liste fiyat Urun Ad Batis Kuru reyon ad ORM - 1 6

E-R Diyagramlar UrunKod ReyonKod Urun Urun-Reyon Reyon SatisKuru ListeFiyat Urunad ReyonAd 7

UML Diyagram urun Reyon 0...1 AnaReyon urunkod urunad listefiyat satiskuru * * reyonkod Reyonad AltReyon 0...* urunreyon siralama UML - 1 8

Mantıksal Model Normalizasyon Kuralları 1.NF: Varlik Ozellikleri 2.NF: PK 3.NF: Geçiş Bağımlılıkları olmamalı Neden Normalizasyon? Tekrarlı Depolama: Bazı bilgiler birden fazla tekrarlar Güncelleme Anomalileri: Bir bilgiyi güncellemek için birden fazla yerde bulma ve değiştirme yapmak gerekir. Ekleme Anomalileri: Bir veri eklemek için birden fazla tabloya veri eklemek gerekir. Silme Anomalileri: Bir veriyi silmek için birden fazla tabloda veriyi bulup silmek gerekir. 9

Kayıtların İlişkilendirilmesi 1-1 İlişki 1-N İlişki Rekürsif İlişkili N-N İlişki 10

1-1 (Bire Bir İlişki) 1-1 11

1-N(Bire Çok İlişki) 12

Rekürsif İlişki 13

N-N(Çoka Çok İlişki) N-N: Desteklenmez! 1-N ve N-1 iki tablo Araya 3.tablo: Junction table( en az her iki tablonun PK değeri FK) 14

Konu Akışı Veritabanı Tasarımı Kuramlar Veritabanı Nesnesini Yapılandırmak Tabloları Tasarlamak Veri Bütünlüğünü Tasarlamak 15

Veritabanı Nesnesi Dosya ve Dosya Grupları Şema Kavramı Veritabanı Seçenekleri Veritabanını Gözlemlemek 16

Veritabanı Özellikleri 17

Dosya ve Dosya Grupları 18

Şema Kavramı Tablo, stored procedure, view gibi nesneleri bir grup içerisinde ele almak Yetki vermek-yetki almak Sunucu veritabanı endpoint route SQL server login veritabanı - 3 veritabanı - 2 veritabanı 1 uygulama rolü Assembly Key Sertifika User Mesaj Servis Şema - 2 Şema 1 Default Sequnece Fonksiyon Prosedür Kuyruk Tablo View Trigger Synonym 19

Veritabanlarını Gözemlemek DBCC SHRINKDATABASE (veritabani_ismi,truncateonly) 20

Veritabanlarını Silmek DROP DATABASE YEDEKLEMEK? ATTACH RESTORE 21

Konu Akışı Veritabanı Tasarımı Kuramlar Veritabanı Nesnesini Yapılandırmak Tabloları Tasarlamak Veri Bütünlüğünü Tasarlamak 22

Tabloları Tasarlamak Veri Tipleri Otomatik Sayı Üretme Tablo Oluşturmak Tablo Değiştirmek Geçici Tablolar Nesnelerin T-SQL Scriptlerini Almak 23

Veri Tipleri Metin Sayı Tarih Parasal Diğer UNIQUEIDENTIFIER XML BINARY GEOGRAPHY,GEOMETRIC 24

Otomatik Sayı Üretmek Sipariş Numarası, Hasta Numarası, Araç Sıra No Üç Yöntem IDENTITY() fonksiyonu ve Ardışık Sayılar Sequence Nesneleri ve Ardışık Sayılar(SQL Server 2012 +) NEW_ID() ve UNIQUE IDENTIFIER 25

Tablo Oluşturmak T-SQL CREATE TABLE tabloadi (kolon_adi1 veri_tipi[not NULL][, kolon_adi2 veri_tipi[not NULL],...]) 26

Tabloları Değiştirmek T-SQL ALTER TABLE tablo_ismi ADD COLUMN sutun_ismi sutun_ozellikleri 27

Geçici Tablolar 1. Yöntem: Oturum boyunca geçerli geçici tablolar oluşturmak için kullanılır. CREATE TABLE #tablo_adi( Alan1 tur1[(boyut1)] [[NOT] NULL][,...] ) CREATE TABLE #kitap( KitapNo INT, KitapAdi VARCHAR(55), ISBNo CHAR(16) ) 2. Yöntem: tempdb adlı veritabanında bir tablo açmak. SQLServer kapatıldığında silinir. CREATE TABLE tempdb..tablo_adi( Alan1 tur1[(boyut1)] [[NOT] NULL][,...] ) CREATE TABLE tempdb..kitap( KitapNo INT, KitapAdi VARCHAR(55), ISBNo CHAR(16) ) 28

Nesnelerin T-SQL Scriptleri 29

Konu Akışı Veritabanı Tasarımı Kuramlar Veritabanı Nesnesini Yapılandırmak Tabloları Tasarlamak Veri Bütünlüğünü Tasarlamak 30

Veri Bütünlüğünü Tasarlamak Veri Bütünlüğü Kavramı Veri Bütünlüğünü Gerçeklemek Constraint Yönetimi 31

Veri Bütünlüğü Kavramı Tablolara dağılmış verilerin kendi içinde ve tablolar arası tutarlılığının sağlanmasını amaçlar Tanımsal(Declerative) Veri Bütünlüğü Constraints(PKC,UC,DC, CC, FKC) Defaults Rules Programatik Veri Bütünlüğü Triggers Stored Procedures 32

Tanımsal Veri Bütünlüğü Tanımsal Bütünlük Domain Bütünlüğü (Domain Integrity) Varlık Bütünlüğü (entity Integrity) Referans Bütünlüğü (Reference l Integrity) Öğe Check Constraint veya Rule Nesnesi Default Constraint veya Default Nesnesi Primary ve Foreign Key Constraint Çifti Primary Key Constraint Unique Constraint Check Constraint Veya Rule Foreign Key Constraint Açıklama Bir sütuna girilebilecek değerleri grup veya şart olarak sınırlandırmak için kullanılır. INSERT işlemi esnasında bir sütun için, değer belirtilmemişse, alması için bir default değer tanımlamada kullanılır. Bir sütuna girilen değerlerin başka bir tablonun başka bir sütunundan geliyor olması kuralını koyar. Bir satırın bir alanı için, satırını temsil et-mek üzere, diğer satırlar ile karışmamak üzere tekil bir değer girilmeye zorlar. Vekillik yapan sütunun dışındaki sütularda da, diğer varlıklara ait verilerle karışıklığı önlemek üzere, tekrarlanamazlık kısıtı koyar. Ancak Unique sütun NULL kalabilir. Bir tablonun bir sütununa girilen değerin tablonun kendi içerisindeki başka sütunları ile kontrol edilmesini sağlar. Bir tabloya girilen verilerin geçerliliğini, başka bir tablonun tekilleştirilmiş (unique indeks ile) anahtar değerleri ile eşitliğini kontrol eden kısıtlama. 33

Veri Bütünlüğünü Gerçeklemek Primary Key Constraint Unique Key Constraint Defaut Constraint Check Constraint Foreign Key Constraint 34

Primary Key Constraint Her tabloda bir tane! Hangi NF? CREATE TABLE tablo_ismi( Primary_key_sutun veri_tipi CONSTRAINT constraint_ismi PRIMARY KEY [CLUSTERED NONCLUSTERED], Diger_sutun_tanimlari ) CREATE TABLE tbldoviz ( dovizkod CHAR(5), dovizad VARCHAR(50), dovizoran DECIMAL(18,4), CONSTRAINT PKC_dovizKod PRIMARY KEY(dovizKod) ) 35

Unique Key Constraint Bir tabloda birden fazla olabilir CREATE TABLE tablo_ismi( Sütun tanımları..., CONSTRAINT constraint_ismi UNIQUE [CLUSTERED NONCLUSTERED] (sutun_ismi) ) ALTER TABLE tblkullanici ADD CONSTRAINT PK_tblKullanici PRIMARY KEY CLUSTERED (kullanicikod), CONSTRAINT UCkullaniciAd_tblKullanici UNIQUE(kullaniciAd), CONSTRAINT UCemail_tblKullanici UNIQUE (email), CONSTRAINT UCvergiNo_tblKullanici UNIQUE(vergiNo) 36

Default Costraint Default Değerler üretmek için CREATE TABLE tablo_ismi( Sütun tanımları..., CONSTRAINT constraint_ismi DEFAULT deger (sutun_ismi) ) ALTER TABLE tblkullanici ADD CONSTRAINT DC_Aktif DEFAULT 1 FOR aktifmi 37

Check Constraint Bir sütuna girilebilecek degerleri: belli bir küme ile kisitlamak belli bir formata uygunlugunu denetlemek baska sütunlar üstünden bir kiyas ile denetlemek için CREATE TABLE tablo-ismi( Sütun tanımlamaları..., CONSTRAINT constraint-ismi CHECK(ifade) FOR sutun-ismi ) CREATE TABLE test ( isim VARCHAR(12), CONSTRAINT CHC_LEN CHECK(LEN(isim)>4) ) GO INSERT INTO test VALUES('Ali') 38

Foreign Key Constraint Ardışık Bütünlük (Cascading Integrity) Anne silinirse, çocuk nasıl davransın? CREATE TABLE tablo_ismi( sütun tanımlamaları..., CONSTRAINT constraint-ismi FOREIGN KEY(sutun-ismi) REFERENCES tablo-ismi(sutun-ismi) ) ALTER TABLE tblurun ADD CONSTRAINT FK_tblProduct_tblMarka FOREIGN KEY (markakod) REFERENCES tblmarka(markakod) ON UPDATE CASCADE 39

Contraint Yönetimi Geçici olarak kapatılıp açılabilir! Örneğin veri yüklerken ALTER TABLE tablo-ismi NOCHECK CONSTRAINT ALL constraint-ismi ALTER TABLE tablo-ismi CHECK CONSTRAINT ALL constraint-ismi 40

Sonuç Veritabanı Nasıl tasarlanır Teoremler Yöntemler Veri Bütünlüğü 41