KARABUK UNIVERSITY COMPUTER ENGINEERING %100 ENGLISH PROGRAMME CME226 DATABASE MANAMENT SYSTEM 2012-2013 SPRING SEMESTERS PROJECTS ASSIST. PROF. DR. ILHAMI MUHARREM ORAK Ödev teslimi: Ödevler 22 Mayıs 2013 günü derste teslim edilecektir. Ödevi yapan kişiler dökümanlarıyla birlikte derse gelecekler ve projelerini anlatacaklardır. A. TÜM ÖDEVLERE AİT: 1. B Grubunda belirtilen veritabanı problemlerinden biri seçilerek; problemi temsil edecek olan ilişkisel veritabanı tasarlanacaktır. Ödevler 2 kişilik gruplar halinde dağıtılacaktır. 2. Yapılan veritabanı tasarımına ait E-R diyagramı çizilmeli, varlıklar arasındaki ilişkiler bu diyagramlarda gösterilmelidir. 3. Tablolarda “Normalizasyon” yapılmalı ve normalizasyon aşamaları gösterilmelidir. 4. Oluşturulan tablolardaki alan adları, bu alanların veri yapıları (char, string, int…) ve varsa sınırlılıkları (birincil, yabancı anahtarlar…) gösterilmelidir. 5. Derste işlenen SQL komutlarına ait sorgular yapılmalı ve sorguların ilişkisel cebir karşılıkları gösterilmelidir. (Bu sorgular en az iki tablonun birleştirilmesi sonucu elde edilen karmaşık sorgular olmalıdır) 6. Veritabanı ve kullanıcı arasında iletişim için bir ara yüz tasarlanacaktır. 7. Tablo, ara yüz, sorgu tasarımlarının nasıl gerçekleştirildiği adım adım gösterilmelidir. 8. 2-7 maddeleri yazılı doküman halinde ödevle birlikte teslim edilecektir. 9. Teslim tarihi en geç 22 Mayıs 2013’dir. (Final sınavından önceki son hafta.) 10. Projenizi sadece Oracle ile gerçekleştirebilir ve ara yüzü kendi belirlediğiniz bir yöntemle yapabilirsiniz (Masaüstü veya web arayüz). B. PROJE KONULARI S.1. Aşağıdaki çizim birçok bölümü bulunan bir kurumun Personel Veri Tabanı’nda yer alması istenilen veri ve bağıntıların sıradüzensel gösterimidir. Çizime ek olarak, veri tabanı ile ilgili aşağıdaki açıklamalar verilmektedir. Her personel en çok bir projede çalışır; bir projede birçok personel çalışabilir. Bir personel bir görevi en çok bir kez yürütür. Her personel bir odada çalışır; bir odada birden çok personel çalışabilir. Veri tabanında bulunması istenilen nitelikler aşağıda sıralanmaktadır. Her bölümün numarası, adı ve bütçesi. Her personelin sicil numarası, adı, soyadı, ve çalıştığı projenin numarası. Her projenin numarası, adı ve bütçesi. Her görevin numarası ve adı. Her personelin yürüttüğü her görevin başlangıç ve bitiş tarihleri. Bir personelin bir görevi yürütürken, hangi tarihler arasında ne kadar ücret aldığı. Her odanın numarası, bulunduğu kat ve metre kare cinsinden alanı. Her telefonun numarası ve türü (kurum içi, şehir içi, şehirler arası, uluslararası) Yukarıdaki açıklamalar ışığında (açıklamalarda yer almayan konular için, gerekiyorsa, uygun varsayımlar yaparak) Veri Tabanı'nın varlık-bağıntı çizeneğini oluşturunuz. S.2. Birçok satış mağazası bulunan bir kurumda satış mağazalarına, çalışan personele ve satılan malzemelere ilişkin verileri, geçmişten günümüze zaman boyutunda içeren bir Market Veri Tabanı oluşturulmak isteniyor. Veri tabanında, örneğin, bir personelin bugünkü görevi ve ücreti yanında, eski tüm görev ve ücret bilgilerinin, tarihleriyle birlikte bulunması isteniyor. Veri tabanında yer alacak veri ve bağıntılar aşağıda sıralanmaktadır. Her mağazanın numarası, adı, adresi, açıldığı (kurulduğu) tarih, kapandığı tarih (eğer mağaza kapanmamışsa bu niteliğin değeri "null" olacaktır). Her personelin sicil numarası, adı, soyadı ve eğitim düzeyi (bu bilgiler zaman içinde değişmiyor). Her personelin hangi tarihler arasında hangi mağazada çalıştığı (belirli bir anda bir personel bir mağazada çalışıyor; ancak zaman içinde personelin çalıştığı mağaza bir veya birçok kez değişebiliyor). Bir personel bir mağazada çalışırken, hangi tarihler arasında hangi görevi yürüttüğü (her personel belirli bir anda yalnız bir görev yürütüyor). Her personelin hangi tarihler arasında ne kadar ücret aldığı (personelin ücreti çalıştığı mağaza ve yürüttüğü görevden bağımsızdır). Satılan her ürünün kodu, adı, birimi (bu bilgiler de zaman içinde değişmiyor) ve satışı yapan personel bilgisi. Her ürünün hangi mağazada hangi tarihler arasında satıldığı (belirli bir anda bir mağazada birçok ürün satılabilirken bir ürün de birçok mağazada satılabiliyor. Bu bilgiler zaman içinde değişebiliyor. Örneğin bir ürün bir mağazada belirli bir süre satıldıktan sonra, belirli bir süre satılmaması, sonra yeniden satılmaya başlanması ve bu sürecin tekrarlanması mümkün olabiliyor). Yukarıdaki açıklamalar ışığında (açıklamalarda yer almayan konular için, gerekiyorsa, uygun varsayımlar yaparak) Veri Tabanı'nın varlık-bağıntı çizeneğini oluşturunuz. S.3. Türkiye genelinde kurulacak Kamu Çalışanları Sağlık Veri Tabanı’nda aşağıdaki veri ve bağıntıların yer alması isteniyor. Kamu kurumlarının numaraları, adları ve adresleri. Kamu hastanelerinin numaraları ve türleri (her kamu hastanesi bir kamu kurumudur). Kamu hastanelerindeki hasta muayene odalarının numaraları (hastane içinde biricik) ve yerleri. Kamu personelinin sicil numarası, ad, soyad. cinsiyet, görev ve çalıştığı kurum verileri. Her personelin bir ve yalnız bir kurumda çalıştığı varsayılmaktadır. Doktorların sicil numaraları ve uzmanlıkları. Her doktor bir kamu çalışanıdır. Her kamu çalışanı gibi her doktor da bir kamu kurumunda çalışır; ancak doktorun çalıştığı kurum bir hastane olmak zorundadır. Hastalık kodları, adları ve türleri. İlaçların kodları, adları, türleri ve birim fiyatları. Hastalara verilen randevularla ilgili veriler: hangi hastaya, hangi doktor tarafından, hangi tarih ve saatte, hangi odada randevu verildiği. Hasta muayenelerinin doktorun çalıştığı hastanede yapıldığı, bir hastanın aynı ya da farklı doktorlardan birçok kez randevu alabildiği, aynı gün ve saatte bir doktorun en çok bir hastaya randevu verdiği varsayılmaktadır. Bir hastanın aynı gün ve saatte en çok bir doktor için randevu alması kısıtlanmalıdır. Muayene verileri: hangi hastanın, hangi doktor tarafından, hangi tarih vc saatte, hangi odada muayene edildiği. Randevularla muayeneler arasındaki bağıntı bire-bir değildir. Genelde her randevunun karşılığı bir muayene vardır. Ancak hasta gelmediği için bazı randevuların karşılığı muayene olmayabilmektedir. Acil durumlarda ise randevusuz hastalar muayene edilebilmektedir. Bir doktorun aynı gün ve saatte en çok bir hastayı muayene ettiği varsayılmaktadır. Hastalık tanısı (teşhis) verileri: hangi muayenede hangi hastaya hangi hastalık tanısı/tamları konulduğu. Hastalık tanısı sadece muayenede konulabiliyor. Bir muayenede doktor tarafından hastaya sıfır, bir ya da birçok hastalık tanısı konulabiliyor. Verilen ilaç verileri: hangi muayenede hangi hastaya hangi ilaçların hangi miktarlarda verildiği. Bir muayenede doktorun hastaya bir ya da birçok ilaç verebileceği gibi hiç ilaç vermeyebileceği de varsayılmaktadır. Yukarıdaki açıklamalar ışığında (açıklamalarda yer almayan konular için, gerekiyorsa, uygun varsayımlar yaparak) Kamu Çalışanları Sağlık Veri Tabanı’nın varlık-bağıntı çizeneğini oluşturunuz. S.4. Bir otelde kullanılmak üzere aşağıdaki açıklamalara uygun, gereksinimleri karşılayan bir Otel Veri Tabanı tasarlamanız isteniyor. Otelde odalar vardır. Her odanın numarası, yatak sayısı ve gecelik fiyat verileri bulunmaktadır. Otelde belirli hizmetler (gömlek yıkama, gömlek ütüleme, elbise ütüleme, ..vb) ve oda servisleri (çay, kahve, ..vb) verilmektedir. Bunların her birinin belirli bir adı ve ücreti vardır. Otelin lokantasında yenilip içilen belirli yemekler ve içecekler; bunların her birinin adı ve ücreti vardır. Otel odalarında müşteriler kalır. Her oda bir müşteriye verilir ve muhasebe kayıtları bu müşteri için tutulur. Eğer odada birden çok kişi kalırsa, bunlardan biri müşteri, diğerleri ise müşterinin beraberindekilerdir. Otel işletmesi için müşterinin adı, soyadı, cinsiyeti ve adresi ile odaya geliş ve odadan ayrılış tarihlerine ihtiyaç duyulmaktadır. Müşteri beraberindeki kişilerin her birinin adı ve soyadı ile müşteri ile yakınlık derecesinin de saklanması gerekmektedir. Ayrıca her odada kalan müşteri için bir hesap açılması ve odada kalan kişiler tarafından yapılan tüm harcamalarının hizmetler, oda servisi, yemek ve içecekler vb) bu hesaba yazılması istenmektedir. Otelin ilişkili olduğu firmalar (ticari şirketler ve seyahat acenteleri) vardır. Bunların her biri ile bir anlaşma yapılmıştır. Bu firmaların ad. ve adresleri ile firmaya anlaşmayla sağlanan indirim oranlarının saklanması gereklidir. Bu firmalardan her biri için de otelde bir hesap açılır. Odalarda kalan müşteriler (ve beraberindekiler) bireysel müşteri ya da firma müşterisi olabilir. Bireysel müşterilerin oda ücretleri de müşteri hesaplarına yazılır. Firma müşterileri için ise, oda ücretleri, anlaşmadaki oranda indirim yapılarak firma hesabına yazılır. Firma hesabında ayrıntılar (hangi müşteri ve beraberindeki kaç kişi için, hangi tarihler arasında ne kadar ücret oluştuğu ve ne kadar indirim yapıldığı görülecek biçimde) yer alır. Tüm müşterilerin, oda ücreti dışındaki harcamaları müşteri hesaplarına yazılır. Recepcion, konferans, düğün vs. gibi organizasyonlar için firma veya bireysel müşteriler olabilir. Kaç salon kullancakları ve yemek, içecek vs. gibi diğer hizmetler için detaylar belirtilmelidir. Bu tip organizasyonlarda bireysel müşterilere de belirli oranda indirim yapılabilir. Organizyon ve bireysel müşteriler için arzu edilen tarih aralıkları için rezervasyon ve fiyat detayları saklanmaktadır. Doluluk & boşluk ve uygunluk bilgileri ışığında rezervasyon yapılmalıdır. Yukarıdaki açıklamalar ışığında (açıklamalarda yer almayan konular için, gerekiyorsa, uygun varsayımlar yaparak) Otel Veri Tabanı'nın varlık-bağıntı çizeneğini oluşturunuz. S.5. Elektronik ortamda müşterilerin verdiği siparişleri evlere götüren bir süpermarket için, aşağıda açıklanan verileri içeren, gereksinimlere uygun, bir Dağıtım Veri Tabanı tasarlamanız isteniyor. Müşteri, ürün, araç, sürücü ve masraf verileri kuruluş için temel verileri oluşturuyor. Müşterilerin numara, ad, soy ad ve adresleri: ürünlerin kod, ad, tür ve fiyatları; dağıtım için kullanılan araçların plaka numarası, marka ve modelleri; dağıtımı yapan sürücülerin sicil numarası, adı, soyadı ve yaşı; göreve çıkan sürücülerin görev süresince yapabilecekleri olası masrafların kod, ad ve türlerinin veri tabanında bulunması isteniyor. Müşteriler elektronik ortamda sipariş veriyorlar. Her siparişin hangi müşteri tarafından, ne zaman verildiği önem taşıyor ve siparişe belirleyici bir numara veriliyor. Her siparişte bir ya da birçok ürün, değişik miktarlarda yer alabiliyor. Bu ürünler bir araya getiriliyor, bir koli içine yerleştiriyor ve üzerine sipariş numarası yazılıyor. Sipariş verilen ürünlerin yer aldığı kolileri müşterilerin evlerine götürüp teslim etmek üzere görevler düzenleniyor. Her görev bir sürücü tarafından, bir araç ile gerçekleştiriliyor ve her görev kapsamında bir ya da birkaç siparişin teslimi yer alabiliyor. Her göreve belirleyici bir numara veriliyor, veri tabanında görevin yapıldığı tarih (görev aynı günde başlıyor ve bitiyor) ile başlangıç ve bitiş zamanlarının bulunması isteniyor. Bir sürücüye, bir günde, aynı ya da farklı araçlarla birden çok görev verilebiliyor. Bir araç da, aynı günde, aynı ya da farklı sürücüler tarafından birçok görevde kullanılabiliyor. Görev kapsamında yer alan siparişler, eğer müşteri evde bulunursa teslim ediliyor. Hangi siparişlerin teslimatının yapıldığı ve ne zaman yapıldığının bilinmesi önem taşıyor. Bir görev süresince, sürücü belirli masraflar yapabiliyor. Yapılan masraflardan her birinin miktarı, zamanı ve tutarının veri tabanında yer alması isteniyor. Masraf örneği olarak lastik tamiri ve benzin alımı gösterilebilir. Yukarıdaki açıklamalar ışığında (açıklamalarda yer almayan konular için, gerekiyorsa, uygun varsayımlar yaparak) Dağıtım Veri Tabanı'nın varlık- bağıntı çizeneğini oluşturunuz. S.6. Aşağıdaki açıklamalar ışığında proje düzeyinde hizmet üreten bir kuruluş için bir Proje Veri Tabanı tasarlamanız isteniyor. Veri tabanındaki temel varlık kümesi proje varlık kümesidir, her projenin bir numarası, adı, başlangıç tarihi, süresi ve bedeli vardır. Her proje belirli bir müşteri için yapılır. Bu arada bir müşteri için birden çok proje de yapılabilir. Her müşterinin bir numarası, adı, soyadı ve adresi vardır. Her proje ile ilgili işlemler birçok kesime ayrılarak görevler tanımlanır. Bir proje kapsamında sıfır, bir ya da birçok görev tanımlanabilir. Her görev yalnız bir proje ile ilgilidir. Görevlerin numaraları, adları, başlangıç tarihleri ve süreleri vardır. Her görev belirli bir bölümde yapılır. Bir bölümde birçok görev yapılabilir. Bölümlerin numaraları ve adları vardır. Kuruluşta birçok personel çalışmaktadır. Her personelin sicil numarası, adı, soyadı, unvanı (teknisyen, mühendis, sekreter, sürücü, .. vb) vardır ve her personel belirli bir bölüme bağlıdır. Her görevi gerçekleştirmek için belirli sayıda personel atanarak bir görev takımı oluşturulur. Bir personel birden çok göreve atanabilir. Her personelin atandığı her görev için bir rolü vardır. Bir görevi gerçekleştirmek için atanan personelin, görevin yapıldığı bölümün personeli olması zorunlu değildir. Bir personel, bağlı olduğu bölümden başka bir bölümde yapılan bir göreve de atanabilir. Her bölümün bir başkanı, her projenin bir proje yöneticisi, her görevin de bir görev yöneticisi vardır. Bir personel birçok bölümün başkanı ve/veya birçok projenin/görevin yöneticisi olabilir. Yukarıdaki açıklamalar oluşturunuz. ışığında Proje Veri Tabanı’nın varlık-bağıntı çizeneğini S.7. Bir elektronik firması ürettiği ürünler, kullandığı bileşenler ve her ürün için hangi bileşenlerin hangi miktarlarda kullanıldığını gösteren bir Ürün-Bileşen Veri Tabanı oluşturmak istiyor. Veri tabanında her bileşenin kodu, adı, tanıtıcı açıklaması, stok miktarı ile hangi satıcıdan satın alındığı verilerinin bulunması isteniyor. Her bileşen tek bir satıcıdan satın alınıyor; ancak aynı satıcıdan birden çok bileşen alınabiliyor. Her parti alımda aynı bileşenin fiyatı değişebiliyor. Alım zamanına göre ürün maliyet fiyatı değişkenlik gösterebiliyor. Maliyet fiyatları anlık olarak gözlenebilmek isteniyor. Her satıcının numarası, adı, adresi ve telefon numarasının veri tabanında yer alması isteniyor. Her ürünün kodu, adı birim fiyatı ve stok miktarı ile bu ürünün üretilmesi için hangi bileşenlerden kaçar adet gerekli olduğu önem taşıyor. Yukarıdaki açıklamalar ışığında (açıklamalarda yer almayan konular için, gerekiyorsa, uygun varsayımlar yaparak) Ürün-Bileşen Veri Tabanı'nın varlık-bağıntı çizeneğini oluşturunuz. S.8. Gemi, liman ve gemi adamları (denizciler) ile ilgili bir Deniz Ulaşımı Veri Tabanı tasarlamanız isteniyor. Veri tabanında yalnız Türk limanları, bu limanlar arasında sefer yapan Türk bandıralı gemiler ile bu gemilerde çalışan gemi adamlarına ilişkin veri ve bağıntılar yer alacaktır. Veri tabanında liman, gemi, ve gemi adamları ile ilgili kimlik bilgileri (limanın numarası, adı, ..vb.; geminin sicil numarası, adı, türü, kapasitesi/tonajı, ..vb.; gemi adamının sicil numarası, adı, soyadı, doğum tarihi, yeterliği, ..vb.) yanında aşağıda özetlenen uygulamaları gerçekleştirmeyi sağlayacak veri ve bağıntıların da yer alması isteniyor. Bir limana hangi gemilerin hangi tarih-saatte girdiği ve hangi tarih-saatte çıktığı bulunabilmeli (liman trafiği). Bir geminin hangi limanlara ne zaman girdiği ve ne zaman çıktığı bulunabilmeli (gemi trafiği). A limanından kalkan bir geminin ilk yanaştığı liman B ise, A ve B limanları arasındaki bu hareketi geminin AB seferi olarak adlandıralım. Her geminin her seferinde belirli gemi adamları yer alıyor ve her biri belirli görevleri (kaptan, çarkçıbaşı, kamarot, ateşçi,...vb.) yürütüyor. Her geminin yaptığı her seferde hangi gemi adamlarının gemide bulunduğu ve hangi görevleri yürüttükleri izlenmek isteniyor. Buna göre gemi bir limana uğradığında gemi adamlarının tümü ya da bir kısmı değişebiliyor ve gemi bir sonraki sefere çıkarken yeni bir görev ekibi oluşuyor. Gemi adamlarının yaptıkları görevlerin izlenebilmesi, hangi gemi adamının hangi tarihler arasında, hangi geminin hangi limanlar arasındaki seferinde hangi görevi yürüttüğünün bulunabilmesi isteniyor. Yukarıdaki açıklamalar ışığında (açıklamalarda yer almayan konular için, gerekiyorsa, uygun varsayımlar yaparak) Deniz Ulaşımı Veri Tabanı'nın varlık-bağıntı çizeneğini oluşturunuz. S.9. Bir uçak tamir-bakım fabrikasına gelen uçaklar üzerinde gerekli incelemeler; yapılarak her uçak için hangi tamir ya da bakım işleminin gerekli olduğuna karar veriliyor. Tamir-bakım işlemlerinin neler olduğu ve bunlardan hangilerinin fabrikada yapılabildiği biliniyor. Her tamir-bakım işlemi bir dizi birim işlemden (unit-process) oluşuyor. Söz konusu birim-işlemler belirli bir sırada art arda gerçekleştirildiğinde ilgili tamir-bakım işlemi tamamlanıyor. Her birim-işlem belirli atölyelerden birinde, belirli bir sürede yapılabiliyor ve birim-işlem yapılırken belirli malzemeler belirli miktarlarda, belirli olasılıklarla kullanılıyor. Örneğin 4 numaralı tamir-bakım işlemi 378, 586 ve 749 numaralı birim-işlemlerin yapılmasını gerektiriyor. 378 sayılı birim-işlem 18, 27, ve 76 numaralı atölyelerin birinde yapılabiliyor; süresi 5 saattir; gerekli malzemeler ise % 60 olasılıkla 3 adet MT928, % 80 olasılıkla da 2 adet KT785, % 100 olasılıkla da 4 adet DB346 kodlu malzemedir. Fabrikanın verimli çalışmasını sağlamak için bir Uçak Tamir-Bakım Veri Tabam kurulmak isteniyor. Kurulacak veri tabanının kullanılacağı başlıca uygulamalar aşağıda yer almaktadır: Tamir-bakım için fabrikaya gelen bir uçakta hangi tamir-bakım işleminin yapılması gerektiği belirlendikten sonra, bir karar modeline göre uçağın kabul edilip edilemeyeceği saptanıyor. Her uçak için gerekli tamir-bakım işleminin bir tane olduğu varsayılıyor. Kullanılan karar modeli: Hangi birim-işlemlerin yapılacağını, Her birim-işlemin süresini, hangi atölyelerde yapılabileceğini ve bu atölyelerin iş programlarını, Her birim-işlem için hangi olasılıkla hangi malzemlerin kaçar adet kullanılacağını, ve bu malzemelerin stok durumlarını, inceleyerek uçağın fabrikaya kabul edilip edilemeyeceğine karar veriyor. Fabrikaya kabul edilen her uçak için bir iş programı hazırlanıyor. İş programında hangi birim-işlemin, hangi atölyede, hangi gün/saate başlayıp hangi gün/saate biteceği bilgilerinin yer alması isteniyor. Her uçak üzerinde yapılan birim-işlemlerin izlenmesi; iş programlan ile gerçekleşimlerin karşılaştırılması ve bir iş programının gerçekleşmesinde gecikme olduğunda, tüm iş programlarında gerekli düzeltmelerin yapılması. Yukarıdaki açıklamalar ışığında (açıklamalarda yer almayan konular için, gerekiyorsa, uygun varsayımlar yaparak) Uçak Tamir-Bakım Veri Tabanı'nın varlıkbağıntı çizeneğini oluşturunuz. S.10. Bilgisayar mühendisliği anabilim dalındaki bilimsel yayınlarla ilgili verilerin yer alacağı bir Bilimsel Yayın Veri Tabanı oluşturulmak isteniyor. Veri tabanında yer alması istenilen veri ve bağıntılar özet olarak aşağıdakilerdir. Her bilim dalının (algoritmalar, veri yapıları, işletim sistemleri, ...vb.) kodu ve adı. Her yazarın adı, soyadı, mesleği, unvanı ve hangi bilim dallarında uzman olduğu (her yazar bilgisayar mühendisliği ile ilgili sıfır, bir ya da birçok bilim dalında uzman olabilir). Her kitaplığın numarası, adı ve adresi. Her kitabın numarası, adı, dili, basım yılı, yayıncısı (bir yayınevi, bir kurum, bir dernek, bir kişi, ...vb.), yazarı/yazarları, hangi kitaplıklarda bulunduğu ve hangi bilim dalları ile ilgili olduğu (veri tabanında yalnız bilgisayar mühendisliği ile ilgili kitaplar yer alacağına göre, her kitap bir ya da birçok bilim dalı ile ilgili olacaktır). derginin adı, dili ve yayıncısı. Her dergi sayısının numarası (dergi içinde biricik), yayın yılı, yayın ayı ve hangi kitaplıklarda bulunduğu. Her makalenin adı, yazarı/yazarları ve hangi derginin hangi sayısında yer aldığı (her makalenin tek bir yerde yayınlandığı varsayılıyor). Yukarıdaki açıklamalar ışığında (açıklamalarda yer almayan konular için, gerekiyorsa, uygun varsayımlar yaparak) Bilimsel Yayın Veri Tabam'nın varlık-bağıntı çizeneğini oluşturunuz. S.11. Paket yazılım üreten bir firma için, yazılımlar satışa sunulmadan önceki test sürümleri ve test çalışmaları ile ilgili verilerin yer alacağı bir Yazılım Veri Tabanı oluşturulmak isteniyor. Oluşturulacak veri tabanında yer alması -ilenilen veri ve bağıntılarla ilgili kısa açıklamalar aşağıda yer almaktadır. Firmada çalışan her teknik personelin numarası, adı ve soyadı, cinsiyeti, doğum yılı ve ücreti. Firmada çalışan her teknik personel ya geliştirici (bilgisayar mühendisi) ya da testçi (test görevlisi) olarak görev yapmaktadır. Veri tabanında her geliştiricin bitirdiği üniversite ve mezuniyet yılı; her test görevlisinin de uzmanlık alanı bilgisinin yer alması isteniyor. Geliştiriciler gruplar (yazılım grupları) halinde çalışmaktadırlar. Her yazılım grubunun bir numarası, bir de adı vardır. Her geliştirici bir ve yalnız bir yazılım grubunda çalışmaktadır. Testçiler ise bireysel olarak görev yapmaktadır. Geliştirilen her yazılımın numarası, adı ve alanı ile hangi yazılım grubu tarafından geliştirildiği. Her yazılımın birçok test sürümü bulunuyor. Veri tabanında her test sürümün sıra numarası ile geliştirme tarihinin bulunması isteniyor. Yazılımların test çalışmaları testçilere ek olarak özel kullanıcılar (test kullanıcıları) tarafından yapılıyor. Her test kullanıcısının numarası, adı, ve adresi bulunuyor. Her yazılımın her sürümünü test etmek üzere belirli sayıda (0, 1 veya birçok) testçi ile belirli sayıda test kullanıcısı görevlendiriliyor. Her görevlendirme belirli bir tarihte yapılıyor. Görevlendirilen testçinin ve test kullanıcısının çalışmalarım tamamladığında bir rapor hazırlayarak ilgili yazılım grubuna vermesi gerekiyor. Veri tabanında raporun veriliş tarihinin de bulunması isteniyor. Yukarıdaki açıklamalar ışığında (açıklamalarda yer almayan konular için, gerekiyorsa, uygun varsayımlar yaparak) Yazılım Veri Tabanı’nın varlık-bağıntı çizeneğini oluşturunuz. S.12. X AŞ. ürünlerini Web ortamında pazarlayan bir E-ticaret şirketidir. Şirketin Web ortamında bir ana sayfası, her ürün ana grubu (örneğin Televizyon) için bir sayfası; her ürün grubu (örneğin LCD Televizyon) için bir sayfası, her ürün (örneğin TOSHIBA 40XF350 LCD TV) için de bir sayfası bulunuyor. Ürün ana grupları, ürün grupları ve ürünler arasında sıradüzensel bir yapı vardır. Şirket için ürün ana grupları, ürün grupları, ürünler ve müşteriler ile müşterilerin hangi web sayfalarını ziyaret ettikleri ve hangi ürünleri satın aldıklarına ilişkin aşağıda özetlenen verilerin yer alacağı bir E-Ticaret Veri Tabanı oluşturulmak isteniyor. Her ürün ana grubunun numarası (biricik) ve adı. Her ürün grubunun numarası, adı ve hangi ana grupta yer aldığı. Ürün grubu numaraları biricik numaralar olmayıp, ürün grubunun ana grup içindeki sırasını gösteren bir sıra numarasıdır. Her ürünün kodu (biricik), adı, birimi, modeli, mevcut miktarı, satış fiyatı ile hangi firma tarafından üretildiği ve hangi ürün grubunda (dolayısıyla hangi ürün ana grubunda) yer aldığı. Ürünleri pazarlanan her firmanın numarası (biricik), adı ve ülkesi. Her müşterinin site üyesi olduğu için üye numarası, üyelik kullanıcı adı, şifresi ve de adı, soyadı ve adresi, Her müşterinin hangi Web sayfalarını (ana sayfa, ürün ana grubu sayfaları, ürün grubu sayfaları ve ürün sayfaları) kaçar kez ziyaret ettiği. Bir müşteri örneğin X AŞ ana sayfasını 28 kez, Televizyon ana grup sayfasını 15 kez, Bilgisayar ana grup sayfasını 32 kez...., Televizyon ürün grubu sayfasını 12 kez, .. .vb ziyaret etmiş olabilir. Her müşterinin satın aldığı her ürün için: bu ürün için kaç kez alım yaptığı ve toplam kaç adet satın aldığı (bir müşteri örneğin KST23 kodlu üründen bugüne kadar 3 kez alım yapmış ve 3 alımda toplam 8 adet satın almış olabilir). Ürünler için üyelerin yorum yapılabilmesi isteniyor. Yaptıkları yorumlar ürün sayfasında veya link ürün sayfasında olacaktır. Yorumlar için üye kullanıcı adı, tarih ve yorum veritabanında saklanacaktır. Yukarıdaki açıklamalar ışığında X AŞ şirketinin gereksinimlerini karşılayacak (açıklamalarda yer almayan konular için, gerekiyorsa, uygun varsayımlar yaparak) E-Ticaret Veri Tabanının varlık-bağıntı çizeneğini oluşturunuz. Varlık- bağıntı çizeneğinde yalnız ikili bağıntılar yer alsın (üçlü, dörtlü, .. bağıntılar yer almasın). S.13. Birden çok periyodik yayını (gazete, dergi, gazete eki) bulunan bir medya Kuruluşunun, yayınlarında yer alan reklamlar ve reklamları veren müşterileri ile ilgili bilgilerin yer aldığı bir Reklam Veri Tabanı oluşturulmak isteniyor. Oluşturulacak Veri Tabanı ile ilgili kısa açıklamalar aşağıda yer almaktadır. Medya kuruluşunun çıkardığı her periyodik yayınının kodu (anahtar), adı, yayın aralığı (günlük haftalık/aylık), yayının türü (gazete/dergi/gazete eki) ve yayın bir gazete eki ise hangi gazetenin eki olduğu. Gazete ve dergiler (asıl yayınlar) için bu son alanın değeri boş olacaktır. Her yayının basılan (çıkan) her sayısının (örneğinin) numarası, yayın tarihi ve sayfa sayısı. Her yayının her sayısının basım tarihi birbirinden farklıdır; başka bir deyişle hiçbir yayın aynı gün birden çok kez basılmamaktadır. Sayı numarası yayın içinde biriciktir. Medya kuruluşuna reklam veren her müşterinin kodu (anahtar), adı, adresi ve türü (kişi/şirket). Müşteriler tarafından bir ya da birçok yayında, bir ya da birçok kez yayınlanması istenilen her reklamın kodu (anahtar), reklamın kendisi (grafik bilgi), orijinal büyüklükteki eni (Cm) ve boyu (Cm). Her reklamın hangi yayınların neresinde (ön kapak/ön kapak arkası/arka kapak/arka kapak arkası/iç sayfalar) kaç kez yayınlanmasının istendiği. Bir reklamın örneğin A gazetesinin arka kapağında 5 kez; aynı gazetenin (A gazetesinin) iç sayfalarında 10 kez, B ekinin ön kapak arkasında 3 kez, C dergisinin iç sayfalarında ise 2 kez yayınlanması istenebiliyor. Her reklamın hangi yayının hangi sayısının, kaç numaralı sayfasında, hangi büyüklükte (orijinal büyüklüğüne göre hangi oranda büyütülerek/küçültülerek) yer aldığı ve bu yayın için alınacak ücret. I numaralı sayfa ön kapak, 2 numaralı sayfa ön kapak arkası, en büyük numaralı sayfa arka kapak, en büyükten bir küçük numaralı sayfa arka kapak arkası, diğer numaralar ise iç sayfalardır. Bir reklam aynı yayının aynı sayısında, farklı sayfalarda olmak üzere birden çok kez yer alabiliyor. Yukarıdaki açıklamalar ışığında (açıklamalarda yer almayan konular için, gerekiyorsa, uygun varsayımlar yaparak) Reklam Veri Tabanının varlık- bağıntı çizeneğini oluşturunuz. S.14. Bir Test Merkezinde konular, alt konular, hazırlanan sorular, soru yazarları ve soru denetleyicileri ile ilgili bilgilerin yer aldığı bir Test Veri Tabanı oluşturulmak isteniyor. Oluşturulacak veri tabanı ile ilgili kısa açıklamalar aşağıda yer almaktadır. Konular (tarih, coğrafya, matematik, vb): her konunun numarası (biricik) ve adı. Her konunun alt konuları (tarih için: Türk tarihi, Osmanlı tarihi. Kurtuluş savaşı ve TC tarihi, vb) : her alt konunun numarası ve adı. Alt konu numaraları konu içinde biricik olan sıra numaralarıdır. Test merkezinde görev yapan her soru yazarı ve denetleyicinin: TC kimlik numarası (biricik), adı, soyadı, cinsiyeti ve adresi. Merkezde görevli kişiler ya soru yazarı ya da denetleyicidir. Soru yazarı olarak öğretmenler, denetleyici olarak da öğretim üyeleri görev yapmaktadır. Kimlik ve adres bilgilerine ek olarak veri tabanında soru yazarlarının mezuniyet yılı, denetleyicilerin de akademik ünvan bilgilerinin bulunması istenmektedir. Test merkezinde görevli her kişinin uzmanlık alanı (her soru yazarı ve denetleyici bir ve yalnız bir konuda uzmandır). Kurslar: her kursun numarası (biricik), adı, başlangıç tarihi ve süresi. Her soru yazarının hangi kurslara katıldığı ve katıldığı her kursta elde ettiği başarı. Soru yazarı olabilmek için en az bir kursa katılmak gereklidir. İsteyenler birden çok kursa da katılabilmektedir. Üniversiteler: her üniversitenin numarası (biricik) ve adı. Her denetleyicinin hangi üniversitede çalıştığı. Sorular: yazılan her test sorusunun numarası (biricik), soru metni, doğru cevap, zorluk derecesi, yazarı (her soru bir ve yalnız bir soru yazarı tarafından yazılmaktadır) ve alt konusu (her soru bir ve yalnız bir alt konu ile ilgilidir). Yazılan her sorunun hangi denetleyiciler tarafından hangi tarihlerde denetlendiği ve her denetleyicinin soruyla ilgili görüşü. Soruların denetlenmeden veri tabanına girilmesi; daha sonra denetimler yapıldıkça da bu bilgilerin eklenmesi istenmektedir. Her soru en çok 3 denetleyici tarafından denetlenmektedir. Yukarıdaki açıklamalar ışığında gerekiyorsa, uygun varsayımlar çizeneğini oluşturunuz. (açıklamalarda yaparak) Test yer Veri almayan konular için, Tabanı’nın varlık-bağıntı S.15. Büyük bir yazılım firmasının yaptığı projeler, çalışan personeli ve kullanılan dizüstü bilgisayarlara ilişkin verilerin yer aldığı bir Yazılım Projeleri Veri Tabanı oluşturulmak isteniyor. Oluşturulacak veri tabanı ile ilgili kısa açıklamalar aşağıda yer almaktadır. Firmanın yaptığı her projenin bir numarası (biricik), bir adı, başlangıç tarihi, öngörülen bitiş tarihi ve bedeli vardır. Firmada çalışan her personelin bir numarası (biricik), adı ve soyadı, cinsiyeti ve görev unvanı vardır. Her personel belirli sayıda (0, 1, ya da birçok) projede görev yapmaktadır. Her projede de belirli sayıda (0,1, ya da birçok) personel görev yapmaktadır. Çalışanların kullanması için zaman zaman dizüstü bilgisayarlar alınmaktadır. Alımlar parti parti yapılmaktadır. Bir partide, kaynağı belirli bir projeden sağlanarak belirli sayıda (1, 2, 3, ...adet) birbirin aynı bilgisayarlar alınmaktadır. Alınan bilgisayarların tüm özellikleri (marka, model, CPU, AB, ekran boyutu ve CD) aynı olmaktadır. Her parti alımın hangi projenin bütçesinden yapıldığı, alman bilgisayarların özellikleri, birim fiyatı ve alım tarihi saklanmaktadır. Alınan her bilgisayar firma için bir “varlıktır” ve her bilgisayara biricik bir “demirbaş numarası” verilmektedir. Çalışanlar, bilgisayar deposuna başvurarak geçici bir süre için dizüstii bilgisayarları ödünç almaktadır. Her ödünç alma bir çalışana, bir bilgisayarın belirli bir günde verilip, belirli bir günde geri alınmasıdır. Ödünç alma gün düzeyinde yapılmakta ve verildiği gün alındığı günden en az bir gün sonra olmaktadır. Bir çalışan aynı ya da farklı bilgisayarları birçok kez ödünç alabilmektedir. Ödünç almada “ödünç alma” numarası gibi özel bir numara kullanılmamaktadır. Yukarıdaki açıklamalar ışığında (açıklamalarda yer almayan konular için, gerekiyorsa, uygun varsayımlar yaparak) Yazılım Projeleri Veri Tabanı’nın varlıkbağıntı çizeneğini oluşturunuz. S.16. Bir şirketteki bölümler, görevler, personel ve hizmet içi eğitim bilgilerini içeren bir Eğitim Veri Tabanı oluşturulmak isteniyor. Oluşturulacak veri tabanında aşağıdaki veri ve bağıntıların yer alması isteniyor. Şirketteki her bölümün numarası ve adı. Şirkette yürütülen her görevin (genel müdür, müdür, müdür yardımcısı, mühendis, sekreter, ..vb) numarası ve adı. Şirkette çalışan her personelin TC Kimlik Numarası, adı soyadı, eğitimi, işe başlama tarihi, yürüttüğü görev ve çalıştığı bölüm. Her personel bir bölümde çalışıyor ve bir görevi yürütüyor. Ancak bir görevi birçok personel yürütebiliyor; bir bölümde de birçok personel çalışabiliyor. Hizmet içi eğitim kapsamında tanımlı her kursun numarası, adı ve saat cinsinden süresi. Tanımlı her kursun hangi görevler ile ilişkili olduğu. Tanımlı bir kurs birçok görevle ilişkili olabilirken, bir görevle de birçok kurs ilişkili olabiliyor. Tanımlı her kursun hangi tarihlerde açıldığı ve hangi personel tarafından verildiği. Tanımlı her kurs değişik tarihlerde birçok kez açılabiliyor (verilebiliyor); her verildiğinde ise kursun sorumlusu (öğretmeni) bir personel oluyor. Açılan her kursa öğrenci olarak hangi personelin katıldığı ve kurs sonunda katılan her personelin başarı notunun ne olduğu. Yukarıdaki açıklamalar ışığında (açıklamalarda yer almayan konular için, gerekiyorsa, uygun varsayımlar yaparak) Eğitim Veri Tabanı'nın varlık- bağıntı çizeneğini oluşturunuz.