1. E/R Diyagramı Tasarlama USA` deki havaalanları, havayolu

Transkript

1. E/R Diyagramı Tasarlama USA` deki havaalanları, havayolu
1. E/R Diyagramı Tasarlama
USA’ deki havaalanları, havayolu firmaları, şehirler ve uçuş bilgileri bir veritabanı
oluşturularak saklanmak isteniyor. Bunun için aşağıdaki koşulları sağlayan bir E/R
diyagramı tasarlayınız:

Her havaalanı bir tek (unique) şehirde bulunmaktadır (Bir şehirde aynı isimde
iki havaalanı bulunamaz).

Bir şehir birçok havaalanına sahip olabilir. (Örneğin Washington DC’de 3
havaalanı bulunmaktadır.)

Her şehirde en az bir tane havaalanı bulunmalıdır.

Havalanı ve şehir isimlerinin tek (unique) olduğunu varsayınız.

Uçuşları, havayolu şirketleri düzenler (Örneğin United, Delta..vs).

Havayolu şirketleri isimleri ile birbirinden ayrılabilir. (Havayolu şirket isimleri
tekdir (unique) )

Her uçuş bir tek (unique) havayolu şirketi tarafından gerçekleştirilir.

Uçuşların numaraları vardır, fakat bu numaralar sadece bir havayolu şirketi
içerisinde tekdir (örneğin Delta ve SAS havayollarının her ikisinin de 3785 nolu
uçuşu vardır.).

Uçuşlar, konaklama ve kısa süreli inişleri (örneğin yakıt alımı için) de
kapsayacak şekilde bir havaalanından bir diğerine gerçekleştirilir.

Her uçuş için, kalkış havaalanı ve varış havaalanı bilgilerini ve kalkış ve varış
zamanlarını kaydetmek istiyoruz (tüm uçuşların her gün aynı şekilde
gerçekleştirildiğini varsayınız, dolayısıyla günlerin kaydını tutmanız gerekmez).

Buna ek olarak, her uçuş için, konaklamaların ve kısa süreli inişlerin
gerçekleştirildiği havaalanı bilgilerinin ve zamanlarının saklanması
gerekmektedir.
2. Bağıntısal Cebir (Relational Algebra) ve SQL komutları
Aşağıdaki veri tabanı şeması için istenenleri gerçekleştiriniz:
Uretici (uretici-no, uretici-ismi, sehri),
Parcalar(parca-no, parca-ismi, renk),
Katalog(uretici-no, parca-no, fiyat).
Altı çizgili olanlar “primary key” dir, ancak katalogdaki “uretici-no” ve “parca-no”
ların herbiri aynı zamanda “foreign key” lerdir.
Aynı parçalar, farklı üreticilerce, farklı fiyatlarla üretilebilmektedir. Ancak bir üretici
her türlü ürünü üretebilmesine rağmen sadece tek bir fiyattan üretim yapabilirler.
Aşağıdaki sorguları “Relational Algebra” ve SQL ile gerçekleştiriniz. Çıktılar
parantez içerisinde verilen kolonlar olmalıdır. (Bazı kısımları elle yazabilirsiniz)
( Örnek : πsehri(uretici)
i.
ii.
iii.
iv.
v.
vi.
vii.
viii.
ix.
x.
select distinct sehri from uretici )
Kırmızı parçaları üreten ismi belli bir üreticiyi bulunuz (uretici-no, sehri).
Kırmızı parçaları üreten tüm üreticileri bulunuz (uretici-no, uretici-ismi).
Sadece kırmızı parça üreten üreticileri bulunuz (uretici-no, uretici-ismi).
Farklı şehirlerde, en az iki üretici tarafından üretilen parçaları bulunuz (parcano).
En az iki ürün üreten üreticileri bulunuz (uretici-ismi).
Katalogdan en pahalı parçayı bulunuz (parca-no).
İzmir’de en pahalı parçayı üreten üreticiyi bulunuz (uretici-ismi).
Parça başına ortalama fiyatı bulunuz (parca-no, ortalama-fiyat).
Üreticilerin her birinin ortalama parça fiyatını bulunuz (uretici-no, ortalamafiyat).
Üreticilerin hangileri, hangi parçayı, parçanın ortalama fiyatından daha ucuza
üretiyor (uretici-no, parca-no).
3. SQL- Veri-tabanı oluşturma komutları
Tabloları yaratan SQL komutlarını yazınız, SQL komutları (primary-key)
indeksleri ve (foreign-key) bağımlılıkları içermelidir.
4) Fonksiyonel Bağımlılıklar (Functional Dependencies)
R= (A,B,C,D,E) üzerindeki fonksiyonel bağımlılıklar kümesi F
A→BC
CD→E
B→D
E→A
i.
ii.
iii.
iv.
B’nin kapaması olan B+’yı hesaplayınız.
R için tüm aday anahtarları listeleyiniz. (İpucu:  R1  R için R1+ hesapla)
F’in kanonik kapsamı ( canonical cover veya minimal cover) olan Fc’yi
hesaplayınız.
BCNF uygun olup/olmadığını belirtiniz. Eğer uygun değilse:
a. BCNF biçimini bozan fonksiyonel bağımlılık(lar)ı belirtiniz?
b. BCNF uygun hale gelecek biçimde bağıntıyı ayrıştırınız.
c. Elde ettiğiniz ayrıştırma kayıpsız-birleşim (İng. loseless-join) özelliği
taşıyor mu?
d. Elde ettiğiniz ayrıştırma bağımlılık koruması (dependency preservation)
sağlıyor mu?