SQL Server Personel Kaydı Tutma Ödevi

NeoksiT

Kilopat
Katılım
24 Nisan 2015
Mesajlar
103
Daha fazla  
Cinsiyet
Erkek
Henüz üniversite 1. sınıftayım dersler gelince bir ne oluyoruz diye kaldım böyle hayatımda gördüğüm en kalitesiz eğitimle karşı karşıyayım hiçbir şey anlatılmadan tanımı verdiler ve üstüne bir de ödev. Ödevi yapmamda yardımcı olur musunuz hocanın verdiği bilgilerle bu ödevi yapmam imkansız yardımlarınızı bekliyorum ödev:

Bir inşaat firmasında çalışan personele ait aşağıdaki bilgiler kaydedilecektir. Firmada projelerin hangi tarihte başladığı ve bittiği kaydedilecek. Personelinde hangi tarihte projeye dahil olduğu ya da hangi tarihte projeden ayrıldığı sorgulanabilecektir. Bu kayıtlar için normalizasyon işlemini gerçekleştirip, E-R diyagramını çiziniz.
  • Personel adı soyadı
  • Tam Adresi
  • Kan grubu
  • Sağlık güvencesi kurumu
  • Evli mi?
  • Çocuk sayısı
  • Telefonları
  • E-postaları
  • Bildiği yabancı diller
  • Firmada çalıştığı projeler
Bunu nasıl yapıp primary key atayacağımı veya tabloda nasıl göstereceğimi hiçbir şekilde bilmiyorum.
 
Sadece SQL ise yapmak gereken tek şey tabloları çizmen. İçini doldurmana gerek yok sanırım. İçini doldurmak istiyorsan C# ile beslemen daha iyi olur ama daha yeni girdiyseniz derse C# ile besleme ödevi vermez hocalarınız. İyice bir öğren ödevin ne olduğunu.

Veya yukarıda söylediklerimi boşver ve sadece SQL'de tablo oluştur. Normalizasyonun ne olduğunu iyice araştır(çok basit bir şey zaten). Diagram da varlıkları, varlıkların bağlı oldukları tabloların bulunduğu basit bir tablo ona da bakabilirsin.
 
Hoca da sanırım bir yerden kopyala yapıştır yaptı ki böyle bir ödev verdi. Dediğim gibi henüz tek gördüğümüz SQL serverdaki 3-5 terim ve normalizasyonun tanımı ilk defa bir programla uğraşıyoruz yani biraz sıkıntılı durum ödevin tarihi de geçti zaten artık sonraki ödevlere teşekkürler öneriler için.
 
Dediğiniz sorgulamalar sql'de yapılıcaksa tsql query'leri yazmanız gerek, c#'da yapılıcaksa o da ayrı bir dert :).
 
Henüz üniversite 1. sınıftayım dersler gelince bir ne oluyoruz diye kaldım böyle hayatımda gördüğüm en kalitesiz eğitimle karşı karşıyayım hiçbir şey anlatılmadan tanımı verdiler ve üstüne bir de ödev. Ödevi yapmamda yardımcı olur musunuz hocanın verdiği bilgilerle bu ödevi yapmam imkansız yardımlarınızı bekliyorum ödev:

Bir inşaat firmasında çalışan personele ait aşağıdaki bilgiler kaydedilecektir. Firmada projelerin hangi tarihte başladığı ve bittiği kaydedilecek. Personelinde hangi tarihte projeye dahil olduğu ya da hangi tarihte projeden ayrıldığı sorgulanabilecektir. Bu kayıtlar için normalizasyon işlemini gerçekleştirip, E-R diyagramını çiziniz.
  • Personel adı soyadı
  • Tam Adresi
  • Kan grubu
  • Sağlık güvencesi kurumu
  • Evli mi?
  • Çocuk sayısı
  • Telefonları
  • E-postaları
  • Bildiği yabancı diller
  • Firmada çalıştığı projeler
Bunu nasıl yapıp primary key atayacağımı veya tabloda nasıl göstereceğimi hiçbir şekilde bilmiyorum.


bize de aynı ödevi verdi
 
Şunu unutmayın okulla yetinirseniz, üniversite bitince elde sıfır olduğunu anlarsınız. Yok şu konuyu görelim yok bunu öğrenelim demeden bence elinizden geldiğince kendinizi geliştirmeye bakın. Tabi bu alanda gitmeyi düşünüyorsanız. Yoksa çok geç olabilir.
 
Şimdi bir projeler var, birde bu projelerde çalışan elemanlar.

Sabit olmayan, zamanla artan bilgileri belirlemeliyiz.

Bunlar projeler, personel ve personelin çalıştığı proje sayısı değişecek.

Artmayan ne var, personelin kimlik bilgileri, demekki onun için personel başına tek kayıt yeter. Her personele bir kimlik numarası vermeliyiz çünki çok küçük ihtimalde olsa aynı ad soyada sahip birden fazla kişi olabilir.

Bu durumda proje bilgilerinin yer aldığı bir proje tablomuz olacak.
Personel bilgilerimizin yer aldığı bir personel tablomuz olacak.
Personel hangi projede çalışıyor, bu bilgi sabit değil, bu durumda bu bilgiyi personel tablosuna bağlı başka bir tabloda tutmalıyız. Çünki Ahmet bugün A projesinde çalışır, sonraki yıl B sonraki yıl C bu şekilde sınırı belli olmayan projede çalışabilir. Sabit bir tabloda tutamayız.

Sonuç:
Proje tablosu yapısı, alan isimleri.
ProjeID (key:anahtar alan)(her proje için artan rakam yada GUID)
ProjeAçıklaması - (text alan)
Başlangıç ve biriş tarihleride gerekiyorsa tutulabilir ve başka bilgiler.

Personel tablosu yapısı, alan isimleri.
PersonelID - (key)(her kişi için artan rakam yada GUID)
PersonelAd soyad adres vs diğer kimlik bilgileri.

personelin çalıştığı proje bilgisini tutan ek tablo.
ektabloPersonelID - (key1)(personel tablosundaki PersonelID alanındaki değer)
ektabloProjeID - (key2)(projeler tablosundaki ProjeID alanındaki değer)
ektabloBasTarih - (Bu kişinin projeye başladığı tarih)
ektabloBitisTarih - (Bu kişinin projeden ayrıldığı tarih - ayrılmamışsa boş olacak)


Genel özet böyle... ek alanlar eklenebilir... ama bu iş teori ile olmaz önce basit projeler bir dil ve sql kullanılarak öğretilmeliydi. Ezbere iş olmazki.?

Sabit tablodan ne kast ettiğimi yazmazsam eksik kalmış olacak.
Her personelin sadece 1 adet fotoğrafı bilgisayara yüklencek dense. Personele ait fotoğrafları tuttuğunuz tabloya sabit tablo diyebiliriz. Genelde master tablo deniyor. Personel sayısı eklenip çıkarılsada, personel başına foto sayısı değişmiyor 1 adet.ayrı bir personel her personele ait fotoğraf sayısı artabiliyor, sınır belli değil.
Birde değişen tablo var hareket tablosu denir.
Eğer personel istediği kadar fotoğraf yükleyebilir denseydi, hareket tablosu olurdu. Ek olarak sıra numarası tutmamız gerekirdi çünki ahmet 1 fotoğraf yükler mehmet 5 ayşe 100. her fotoğrafa bir sıra numarası vererek kaydederiz.

ID: Identification un kısaltılmışı. Kimlik tanımlama kodu. Bizim TC numaramız gibi.
GUID: Sistemin ürettiği benzersiz bir kimlik kodu. Kullanmasanızda olur.
 
Son düzenleme:
Şimdi bir projeler var, birde bu projelerde çalışan elemanlar.

Sabit olmayan, zamanla artan bilgileri belirlemeliyiz.

Bunlar projeler, personel ve personelin çalıştığı proje sayısı değişecek.

Artmayan ne var, personelin kimlik bilgileri, demekki onun için personel başına tek kayıt yeter. Her personele bir kimlik numarası vermeliyiz çünki çok küçük ihtimalde olsa aynı ad soyada sahip birden fazla kişi olabilir.

Bu durumda proje bilgilerinin yer aldığı bir proje tablomuz olacak.
Personel bilgilerimizin yer aldığı bir personel tablomuz olacak.
Personel hangi projede çalışıyor, bu bilgi sabit değil, bu durumda bu bilgiyi personel tablosuna bağlı başka bir tabloda tutmalıyız. Çünki Ahmet bugün A projesinde çalışır, sonraki yıl B sonraki yıl C bu şekilde sınırı belli olmayan projede çalışabilir. Sabit bir tabloda tutamayız.

Sonuç:
Proje tablosu yapısı, alan isimleri.
ProjeID (key:anahtar alan)(her proje için artan rakam yada GUID)
ProjeAçıklaması - (text alan)
Başlangıç ve biriş tarihleride gerekiyorsa tutulabilir ve başka bilgiler.

Personel tablosu yapısı, alan isimleri.
PersonelID - (key)(her kişi için artan rakam yada GUID)
PersonelAd soyad adres vs diğer kimlik bilgileri.

personelin çalıştığı proje bilgisini tutan ek tablo.
ektabloPersonelID - (key1)(personel tablosundaki PersonelID alanındaki değer)
ektabloProjeID - (key2)(projeler tablosundaki ProjeID alanındaki değer)
ektabloBasTarih - (Bu kişinin projeye başladığı tarih)
ektabloBitisTarih - (Bu kişinin projeden ayrıldığı tarih - ayrılmamışsa boş olacak)


Genel özet böyle... ek alanlar eklenebilir... ama bu iş teori ile olmaz önce basit projeler bir dil ve sql kullanılarak öğretilmeliydi. Ezbere iş olmazki.?

Sabit tablodan ne kast ettiğimi yazmazsam eksik kalmış olacak.
Her personelin sadece 1 adet fotoğrafı bilgisayara yüklencek dense. Personele ait fotoğrafları tuttuğunuz tabloya sabit tablo diyebiliriz. Genelde master tablo deniyor. Personel sayısı eklenip çıkarılsada, personel başına foto sayısı değişmiyor 1 adet.ayrı bir personel her personele ait fotoğraf sayısı artabiliyor, sınır belli değil.
Birde değişen tablo var hareket tablosu denir.
Eğer personel istediği kadar fotoğraf yükleyebilir denseydi, hareket tablosu olurdu. Ek olarak sıra numarası tutmamız gerekirdi çünki ahmet 1 fotoğraf yükler mehmet 5 ayşe 100. her fotoğrafa bir sıra numarası vererek kaydederiz.

ID: Identification un kısaltılmışı. Kimlik tanımlama kodu. Bizim TC numaramız gibi.
GUID: Sistemin ürettiği benzersiz bir kimlik kodu. Kullanmasanızda olur.
Sağolun hocam ama ben okulu bıraktım. :)
 
Uyarı! Bu konu 7 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Yeni konular

Geri
Yukarı