Kayıtlar

2018 tarihine ait yayınlar gösteriliyor

Normalizasyon Kuralları-3. Normal Form

Resim
Merhabalar Arkadaşlar, Bugünkü yazımda daha önce başlangıcını yaptığımız normalizasyon kurallarına 2.NF ile devam ediyoruz. 2.NF'i anlattığım yazı için  tıktık . 3. NORMAL FORM Öncelikle veri tabanı 2NF'e uygun olmalı ve Anahtar olmayan hiç bir kolon bir diğerine ( anahtar olmayan başka bir kolona ) bağıl olmamalıdır . Her kolon eşsiz anahtara tam bağımlı olmak zorundadır . 2 NF ' e uygun hale getirdiğimizde elimizde yukarıdaki gibi 2 tablo oluşmuştu ancak burada 3 NF'e uygun olmayan bir yapı var. 3 NF'e uygun hale getirmek için tablolarımızı aşağıdaki gibi düzenliyoruz. 3 NF kuralını da uyguladığımızda tablomuz normalizasyon kurallarına uygun hale geldi.Normalizasyon kurallar 6 NF'e kadar devam etmesine rağmen 3 NF'e kadar uygulandığında veri tabanı normal olarak kabul edilir.

Normalizasyon Kuralları-2. Normal Form

Resim
Merhabalar Arkadaşlar, Bugünkü yazımda daha önce başlangıcını yaptığımız normalizasyon kurallarına 2.NF ile devam ediyoruz. 1.NF 'i anlattığım yazı için tıktık . 2. NORMAL FORM 2 NF'in 1 NF'ten ayrı tek bir kuralı vardır. O da anahtar   olarak tanımlanabilecek bir kolona bütün diğer kolonların tam bağlı olması ve herhangi bir alt kümesine bağlı olmamasıdır. Herhangi bir veri alt kümesi birden çok satırda tekrarlanmamalıdır . Bu tür veri alt kümeleri için yeni tablolar oluşturulmalıdır . 1 NF uygulandığında elimizdeki tablo bu şekildeydi.Aşağıda ise 2 NF uygulanmış hali bulunuyor. Şuan elimizdeki tablolar 2.NF Kurallarına uygun hale geldi. Bir sonraki yazımızda aynı tabloyu 3.NF'e göre düzenleyeceğiz.

Normalizasyon Kuralları-1. Normal Form

Resim
Merhabalar arkadaşlar, Bugünki yazımda sizlere normalizasyon kurallarının 1.si olan 1. Normal Formu açıklamaya çalışacağım. Öncelikle Normalizasyonun ne olduğu ile başlayalım. Normalizasyon  Verilerin düzenli olarak veri tabanında tutulmasını sağlayan kurallar topluluğudur . 6 NF'e kadar gitmesine rağmen genelde 3 NF'e kadar uygulanır.  1. NORMAL FORM elimizde yukarıdaki gibi bir tablo var ve bu tabloyu 1. NF'e uyduralım. Her  kolonda   yalnızca   bir   değer   bulunabilir Bir   alan   içerisindeki   bilgi   özel   karakterlerle   ayrılarak   tutulmamalıdır Aynı tabloda tekrarlayan kolon olmamalı. Ders kolonları tekrarlandığından aşağıdaki şekilde düzenleriz. Her satır bir eşsiz anahtarla tanımlanmalıdır . (Unique Key – Primary Key). Tabloya Primary Key ekleriz. Şuan elimizdeki tablo 1.NF Kurallarına uygun hale geldi. Bir sonraki yazımızda aynı tabloyu 2.NF'e göre...

CONSTRAINTS-KISITLAYICILAR

Merhabalar arkadaşlar, Bugünki yazımda sizlere kısıtlayıcılardan bahsedeceğim.Kısıtlayıcılar veri tabanında tutarlılığı ve bütünlüğünü sağlamak ayrıca yanlış veri girişini engellemek amacıyla belirlenmiş kurallardır. DEFAULT CONSTRAINT Default constraint sayesinde kolona bir değer girilmediği taktirde varsayılan olarak ne  girilmesi  gerektiğini ayarlayabiliyoruz . CHECK CONSTRAINT Bir kolona girilecek olan verinin belirli bir şarta uymasını zorunlu tutar . Örneğin doğum tarihi verisi girilen kolona bugünün tarihinden daha büyük bir verinin girilememesi. PRIMARY KEY CONSTRAINT Tabloda seçtiğimiz  kolona eklenen primary key ile    o kolonun taşıdığı verinin tekil olacağı da garanti edilmiş olur . Böylece veri tabanında gereksiz büyümenin önüne geçilir. UNIQUE CONSTRAINT Unique constraintin tek amacı,belirttiğimiz kolondaki değerlerin tekil olmasını sağlamaktır . Primary Key'den farkı tek bir defaya m...

SQL ROW_NUMBER() ile Tekrarlı Satırları Silmek

Resim
Merhabalar, Bugün sizlerle SQL Server'da ROW NUMBER ifadesini kullanarak tekrar eden verileri silip her bir verinin unique olmasını sağlayan SQL kodumuzu yazacağız. Özellikle veri tabanımızı oluştururken ID değerimizi identity(otomatik arttırma) özelliğimizi etkinleştirmediysek tekrar eden ID değerlerini silerken işimizi çok kolaylaştıracak bir yöntem. Aşağıdaki fotoğrafta tablomuz ve verilerimiz bulunuyor bizim istediğimiz verilerimizin tutarlılığı açısından her bir satırımızın tekrar etmeyen şekilde veri tabanımızda bulunması. SELECT *, ROW_NUMBER()OVER(PARTITION BY ID ORDER BY ID) AS RowNumber    FROM Calisan Yukarıdaki kodumuzu yazdığımızda ID'ye göre numaralandırılan yeni bir kolon oluşturuluyor. Sorgumuzu çalıştırdığımızda dönen sonuç bu şekilde oluyor. yani RowNumber değeri 1 dışında olanları silersek her tüm verilerimiz tekrarsız olacak. Yukarıda yazdığımız sorgumuzu Common Table Expression kullanarak silme işlemi gerçekleştireceğiz. Common...

Excelde Macro ile Sayfa Düzenlemek

Merhabalar, bugünkü yazımda sizlere excelde veri birleştirmesi yaparken farklı workbooklardan veri alma işleminde her workbookta aynı düzende veri girişi yapılmamış ise arada boş geçilen kolonları VBA ile silmek için yazmamız gereken kodu paylaşacağım. Sub Delete_Columns() Dim C As Integer C = ActiveSheet.Cells.SpecialCells(xlLastCell).Column Do Until C = 0 If WorksheetFunction.CountA(Columns(C)) = 0 Then Columns(C).Delete End If C = C - 1 Loop End Sub Yukarıdaki macroyu çalıştırdığımızda bulunduğumuz sayfadaki boş kolonlar otomatik olarak silinir. bu macro farklı kaynaklardan aldığımız düzensiz verileri birleştirirken işimizi oldukça kolaylaştırıyor.

Excel VBA ile Farklı Sayfalardaki Verileri Bir Sayfada Birleştirmek

Merhabalar, bugünkü yazımda sizlere daha önce farklı dosyalardan alıp ayrı ayrı sayfalara eklediğimiz excel verilerini bir sayfada birleştirmek için yazabileceğimiz kodu paylaşacağım. Sub Combine() Dim J As Integer On Error Resume Next Sheets(1).Select Worksheets.Add Sheets(2).Activate Range("A1").EntireRow.Select Selection.Copy Destination:=Sheets(1).Range("A2") 'sayfa sayısı kadar dönmeyi sağlar For J = 2 To Sheets.Count Sheets(J).Activate Range("A1").Select Selection.CurrentRegion.Select Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select ' sayfadaki son dolu hücrenin altına eklemeyi sağlar Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2) Next End Sub

Excel VBA ile Farklı Excel Dosyalarını Bir Excelde Birleştirmek

Resim
Merhabalar, bu yazımda sizlere farklı excel workbooklarını bir excel içerisinde otomatik olarak birleştirmek için yazmamız gereken kodu paylaşacağım. Öncelikle birleştireceğimiz workbookları aynı dosya içerisine atıyoruz. Yukarıdaki gibi dosyalarımızı aynı konumda birleştirdikten sonra aşağıdaki kodu yazıyoruz. Sub macro1() Dim Filename As String 'aşağıdaki yolu kendi dosyalarınızı bulunduğu yol ile değiştirin Path = "C:\Users\zülal\Desktop\Çalışma Dosyası\Çalışma Dosyası\MAKRO BİRLEŞTİR\" Filename = Dir(Path & "*.xlsx")   Do While Filename <> ""   Workbooks.Open Filename:=Path & Filename, ReadOnly:=True      For Each Sheet In ActiveWorkbook.Sheets      Sheet.Copy After:=ThisWorkbook.Sheets(1)      ' sayfa adı ile dosya adı aynı olması için yazdığımız kod      Dim LArray() As String      LArray = Split(Filename, ".")      Sheets(2).Name = LArray(0) ...

With Encryption - With Check Option - With Schemabinding Kullanımı

merhabalar, bu yazımda sizlere view ve functionlar ile birlikte kullanabileceğimiz With Encryption - With Check Option - With Schemabinding parametrelerini örneklerle açıklamaya çalışacağım. With Check Option Where filitresi ile oluşturulan viewlarda with check option kullanılmışsa o kriterin dışında bir veri view üzerinden eklenemez. create VIEW vw_kisi AS select e.FirstName,e.LastName,e.Country from Employees e where e.Country='USA' with check option where koşulunda USA olduğu için aşağıdaki view üzerinden yapılan insert işlemi gerçekleşmeyecektir. Not: insert update delete komutları tek tablolu viewlarda çalışır. joinli tablolarda iki farklı tabloya aynı anda ekleme yapmak istediği için çalışmaz. insert into vw_kisi values('zülal','US','TR') With Schemabinding Kullanıldığında oluşturulan viewda ilgili kolon kilitlenir ve  kaldırılamaz schema adı mutlaka yazılır ve schemabinding ile oluşturulan kolonlar arasına * koyulmaz mutlaka kol...

T-SQL Özel Sıralama(Order by Special)

merhabalar, bugünkü yazımda sizlere sql server üzerinde  T-SQL komutaları ile yaptığmız sorgularda sonucu  ascending veya descending yerine kendi istediğimiz özel  sıralama yaparak nasıl getirebileceğimizi anlatacağım. Bu sıralamayı oluşturabilmek için order by içerisinde case when yapısını kullanacağız.Öncelikle sıralama yapacağımız şehirler tablomuzu oluşturup tablomuzun içine farklı şehirleri ekliyoruz. create table tbl_Sehirler ( ID int primary key identity (1,1), sehir nvarchar(50) ) -- tablomuza 10 farklı şehir ekliyoruz. insert into tbl_Sehirler(sehir) values('Ankara'),('İstanbul'),('izmir'),('Kocaeli'),('Tekirdağ'),('Sakarya'),('Gaziantep'),('Konya'),('Bolu'),('Bursa') -- Şehirler Tablosundan(Ankara, İstanbul, İzmir ilk sırada gelecek şekilde alfabetik sıralayın) select * from tbl_Sehirler order by case sehir                                       ...

T-SQL Trigger(tetikleyici) Örnekleri

Merhabalar , Bu yazımda trigger örnekleriyle SQL Serverda trigger yapısını anlatmaya çalışacağım. Öncelikle Triggerın ne olduğu ile başlayalım. Triggerlar tabloya bağlı olarak yazılan ve o tabloya yapılan herhangi bir işlemden sonra yapılmasını istediğimiz işlemleri yazdığımız saklı yordamlardır. Aşağıdaki örnekler ile birlikte  kafanızda netleşeceğini umuyorum. Örneklerde Northwind veri tabanını kullanacağım. --sipariş edilen ürün kadar stoktan düşüren eğer stokta yeteri kadar ürün yoksa işlemi geri alıp yeteri kadar ürün yoktur uyarısı veren trigger. CREATE trigger [dbo].[trg_stokDusur] on [dbo].[Order Details] after insert as begin begin tran declare  @adet  int, @productID  int, @stok  int select  @adet =i.Quantity, @productID =i.ProductID from inserted i select  @stok =p.UnitsInStock from Products p where p.ProductID= @productID if( @adet <= @stok  and  @stok >0) begin update Products set UnitsInStock=UnitsInStock- @ad...

SSIS TOKEN Ve TOKENCOUNT Kullanımı

Resim
Merhabalar , Bu yazımda size SSIS 'te string fonksiyonlarından olan TOKEN ve TOKENCOUNT fonksiyonlarını açıklayacağım. Token fonksiyonu 3 farklı parametre alır ilk parametrede işlem yapmak istediğimiz stringi veririz. İkinci parametre olarak verdiğimiz stringi hangi ifadeye göre böleceğini veriririz. ve son parametre olarak böldüğü verilerden kaçıncısını döndürmesini istediğimizi veririz. Örnek olarak;                         TOKEN("Zülal US"," ",1) yazdığımızda bize döndürdüğü çıktı yandaki gibidir.   Tokencount ise 2 parametre alır. İlki işlem yapılmasını istediğimiz string veri ikincisi ise string ifadeyi neye göre böleceğimizi ayarladığımız parametredir. Ve bize verdiğimiz paramereye göre stringi bölüp kaç parça oluştuğunu döndürür. Örnek olarak;                    TOKENCOUNT("Zülal US"," ") yazdığımızda bize verdiği çıktı yandaki gibidir .

SSRS ile Excele Aktardığım Raporlara VBA ile Otomatik Sayfa Adı Vermek

Merhabalar, Bu yazımda excel sayfalarımıza dinamik olarak sayfanın istediğimiz hücresindeki değeri nasıl vereceğimizi açıklayacağım. Benim tüm sayfalarımın A1 hücresinde fatura numaraları bulunuyor.ben de sayfa isimlerini düzenlemek adına her bir sayfanın adında bu numaraları kullanmak istedim. ve Excel Macro ile aşağıdaki kodu yazım. Sub sayfa() Dim sayfa As Worksheet 'kaç sayfa varsa bu kadar döngü oluşturmak için For Each sayfa In Worksheets 'sayfa adını A1 hücresinden alıyor ActiveSheet.Name = ActiveSheet.Range("a1").Value son sayfaya geldiysek kodu bitiriyor If ActiveSheet.Index = Worksheets.Count Then Worksheets(1).Select Exit Sub 'eğer henüz son sayfaya gelmediysek ActiveSheet olarak bir sonraki sayfayı seçiyor Else ActiveSheet.Next.Select End If Next sayfa End Sub

SSRS ile Fatura Oluşturma

Resim
merhabalar, bu yazımda northwind database'indeki verileri kullanarak fatura oluşturma işleminin ssrs ile nasıl yaptığımı anlatacağım oluşan faturamızın görüntüsü bu şekilde sağ üstte fatura no ve fatura tarihi,solda fatura işlemini yapan çalışan,tabloda ise firma adı aldığı ürünler, ürün sayısı fiyatı ve toplam fiyat bilgileri bulunmaktadır. bu raporu elde edebilmek için öncelikle SSRS ile SQL veri tabanımıza bağlanıyoruz ve kullanacağımız verileri çekiyoruz. SQL serverdan verileri almak için yazacağımız SQL statement aşağıdaki gibidir. eğer farklı verileri de göstermek istiyorsanız select ve from arasında bu kolonları ekleyebilirsiniz. SELECT   Employees.FirstName+' '+Employees.LastName,ProductName,Orders.OrderID,Orders.OrderDate,[Order Details].UnitPrice,[Order Details].Quantity,Customers.CompanyName  FROM            Customers INNER JOIN                         ...

SSIS ile Tekrar Eden Verileri Teke Düşürmek

Resim
merhabalar, bu yazımda kaynaktan aldığımız verilerden tekrar eden satırları nasıl tek satıra dönüştürebileceğimizi açıklayacağım. Görseldeki işlemler tamamlandığında union all komutundan çıkan satırlar tekarsız verilerimizden oluşuyor. Şimdi adım adım işlemlerimizi yapıyoruz. Aggregate içerisinde alttaki şeklimizdeki işlemleri yapıyoruz. öncelikle tüm kolonlara göre group by yapıyoruz ve sonrasında * kolonuna countall yapıyoruz Sonraki adımda conditional split ile 1 tane olan kayıtları (DT_UI1)[Count all] == 1 case'ini yazarak ayırıyoruz.  Sonra =1 olanları ayrı yere 1'den fazla olanları farklı yerlere gönderiyoruz. NOT:bu aşama geçilip direkt Union All ' a geçilebilir. ben verilerin doğruluğunu görebilmek adına multicast ekledim. 1satırdan farklı olanlar group by ile tek satıra düştüğü için union all yaptığımızda tek satır olarak eklenecek. Umarım faydalı bir yazı olmuştur. Sorularınız varsa yazabilirsiniz :)