Uploaded by qqq

databaseBook-88-114.en.tr

advertisement
bölüm
33
İlişkisel Veri Modeli ve İlişkisel Veritabanı
Kısıtları
T
Onun
kapsayanilişkisel
kitabı,veri
2. kısmını
ilişkiselbölüm
veritabanları.
modeli açar
idi
İlk Codd (klasik kağıt 1970 yılında IBM Araştırma Ted Codd tarafından tanıtılan
1970), ve kolaylığından dolayı ve matematiksel vakfa hemen dikkat çekti. model kavramını kullanır matematiksel
relation- ki bunlar bir şekilde değerlere-olarak temel yapı bloğunun bir tablo gibi görünen ve ayar
teori ve birinci dereceden yüklem mantığında teorik bir temeli vardır. Bu bölümde modeli ve onun
kısıtlamaları temel özelliklerini tartışır.
ilişkisel modelin ilk ticari uygulamaları IBM ve Oracle VTYS tarafından MVS işletim sistemine SQL /
DS sistemi olarak, 1980'lerin başında mümkün hale geldi. O zamandan beri, model ticari
sistemlerin çok sayıda uygulamaya konmuştur. Güncel popüler ilişkisel DBMSs (RDBMSs) DB2 ve
(IBM'den) ınformix Dinamik Sunucusu, Oracle ve (Oracle itibaren) RDB, Sybase (Sybase itibaren)
DBMS ve SQLServer ve (Microsoft) Erişim sayılabilir. Buna ek olarak, bu tür MySQL ve
PostgreSQL olarak birçok açık kaynak sistemleri mevcuttur. Çünkü ilişkisel modelin önemi, Bölüm
2, tüm bu model ve onunla ilişkili dillerin bazılarına ayrılmıştır. Kısım 4 ve 5'te, biz ise SQL sorgu
dili tanımlamak standart ticari ilişkisel DBMSs için. Bölüm 6 ilişkisel cebir işlemlerini kapsar ve
ilişkisel cebir-bu ilişkisel modelle ilişkili iki resmi dillerdir tanıtır. ilişkisel analiz SQL dilinin temelini
olarak kabul edilir ve ilişkisel cebir (Kitabın Bölüm 8'e bakınız) sorgu işleme ve optimizasyonu için
birçok veritabanı uygulamaları dahili özelliklerine kullanılır.
59
60
Bölüm 3 İlişkisel Veri Modeli ve İlişkisel Veritabanı Kısıtları
ilişkisel modelin diğer yönleri kitabın sonraki bölümlerinde sunulmuştur. Bölüm 9, ER ve EER
modelleri yapımlarına Bağıntısal model, veri yapıları ile ilgilidir (Bölüm 7 de verilen ve 8) ve bir
ilişkisel gösterimine ER veya EER modelinde kavramsal bir şema eşleyerek ilişkisel veritabanı
şemasını tasarımı için algoritmaları sunulur . Bu eşleşmeler birçok veritabanı tasarımı ve HALİNDE
dahil edilir 1 araçlar. Bölüm 5'de Bölümler 13 ve 14 veritabanı sistemlerine erişim için kullanılan
programlama teknikleri ve aynı zamanda Kısım, Bölüm 14. Bölümler 15 ve 16 Web veritabanı
programlama konusunu tanıtmak ODBC ve JDBC standart protocols.We yoluyla ilişkisel
veritabanlarına bağlantı kavramını tartışmak 6 Bağıntısal modelin, işlevsel ve birden çok
bağımlılıkları yani resmi kısıtlamaları bir başka yönü mevcut; Bu bağımlılıklar olarak bilinen
kavramına dayalı bir ilişkisel veritabanı tasarımı teorisini geliştirmek için kullanılır
normalleştirme.
ilişkisel modeli öncesinde Veri modelleri hiyerarşik ve ağ modelleri bulunmaktadır. Bunlar
1960'larda önerildi ve 1960'ların sonu ve 1970'lerin başında sırasında erken DBMSs yerleştirilirdi.
Çünkü onların tarihsel önemini ve bu DBMSs için mevcut kullanıcı tabanının, biz
http://www.aw.com/ bu kitabın Companion Web sitesinde mevcuttur Ekler D ve E'de bu modellerin
öne, bir özetini dahil ettik ELMASRI. Bu modeller ve sistemler artık olarak adlandırılır Eski
veritabanı sistemleri.
Bu bölümde, verilerin ilişkisel modelinin temel ilkelerini açıklayan konsantre. Biz Bölüm 3.1'de
ilişkisel modelin modelleme kavram ve gösterimini tanımlayarak başlar. Kısım 3.2 ilişkisel modelin
önemli bir parçası olarak kabul edilir ve otomatik olarak en ilişkisel veritabanı yönetim
sistemlerinde uygulanır ilişkisel kısıtlamaları bir tartışma için ayrılmıştır. Bölüm 3.3 ilişkisel modelin
güncelleme işlemleri, bütünlük kısıtlamaları ihlal nasıl ele alındığını tartışır tanımlar ve bir işlemin
kavramını tanıtır. Bölüm 3.4 bölüm özetlemektedir.
3.1 İlişkisel Model Kavramları
ilişkisel model topluluğu olarak veritabanını temsil ilişkiler. Gayri, her bir ilişki bir ölçüde, A, bir
değerler tablosu benzer ya da düz Kayıtların dosyası. Bu denir düz bir dosya Her kayıt, basit
doğrusal olduğu için ya da düz yapısı. Örneğin, Şekil 1.2'de gösterilen dosyaların veri tabanı temel
ilişkisel modeli temsil benzerdir. yakında göreceğimiz gibi Ancak, ilişkiler ve dosyalar arasında
önemli farklar vardır. Bir ilişki bir olarak düşünülür edildiğinde tablo değerleri, tablodaki her satır,
ilgili veri değerleri topluluğunu temsil eder. Bir satır tipik bir gerçek varlığın veya ilişki karşılık gelen
bir gerçeği temsil eder. tablo adı ve sütun adları her satırdaki değerlerin anlamını yorumlamaya
yardımcı olmak için kullanılmaktadır. Örneğin, Şekil 1.2 ilk tablosu olarak adlandırılır ÖĞRENCİ Her
bir sıra belirli bir ilgili gerçekleri temsil ettiği
1
VAKA bilgisayar destekli yazılım mühendisliği kısaltmasıdır.
3.1 İlişkisel Model Kavramları
Öğrenci varlık. kolon isimler- Ad, Student_number, Sınıf, ve Majör Her bir değer olan sütun göre, her
satırda veri değerlerini yorumlama yöntemleri -specify. kolonu tüm değerler aynı veri tiptedir.
biçimsel ilişkisel model terminolojisinde, bir satır denir tanımlama grubu, Bir sütun başlığı
adlandırılan bir öznitelik, ve tablo denir ilişkisi. Her bir sütunda görünür değerler türlerini açıklayan
veri türü ile temsil edilir alan adı Olası değerlerin. Şimdi bu tanımlar anlamda yaşama alanı, kayıt
düzeni niteliği, ve relationresmen.
3.1 Domains Özellikleri, Tuples ve İlişkileri
bir alan adı D atomik değerlerin kümesidir. Tarafından atomik Biz etki alanındaki her değer formel ilişkisel
model söz konusu olduğunda kadarıyla bölünmez olduğu anlamına gelir. Bir alan belirten genel bir
yöntem, bölgesi oluşturan veri değerleri çizildiği bir veri türü belirtmektir. Onun değerlerini yorumlamada
yardımcı olmak, etki alanı için bir ad belirtmek için de yararlıdır. alanların bazı örnekler izleyin:
■
Usa_phone_numbers. ABD'de geçerli on haneli telefon numaralarının kümesi.
■
Local_phone_numbers. ABD'de belli bir alan kodu içinde geçerli yedi haneli telefon
numaralarının kümesi. yerel telefon numaralarının kullanılması hızla eski haline geliyor
standart on basamaklı sayılarla yerini.
■
Social_security_numbers. Geçerli dokuz basamaklı Sosyal Güvenlik sayılar kümesi. (Bu
istihdam, vergi ve faydaları amaçlı ABD'de her kişi için atanan benzersiz bir tanımlayıcı
budur.)
■
İsimler: kişilerin isimlerini temsil karakter dizeleri kümesi.
■
Grade_point_averages. bilgisayarlı not ortalamalarının Olası değerler; her biri 0 ve 4 arasında
■
Employee_ages. Bir şirkette çalışanların Olası yaşları; Her 15 ve 80 arasında bir tam sayı
bir gerçek (kayan nokta) sayı olmalıdır.
olmalıdır.
■
Academic_department_names. Böyle Bilgisayar Bilimi, Ekonomi ve Fizik gibi bir üniversitede
akademik bölüm adları kümesi.
■
Academic_department_codes. Böyle 'CS', 'ECON' ve 'PHYS' gibi akademik bölüm kodları,
seti. denir önceki mantıklı alanların tanımları. bir veri tipi veya biçim Ayrıca, her bir alan için
belirtilir. Örneğin, veri alanı için tip
Usa_phone_numbers formun bir karakter dizesi (ilan edilebilir ddd), DDDDDDD nerede her d sayısal
(ondalık) rakamdır ve ilk üç rakamı geçerli bir telefon alan kodunu oluşturur. veri türü Employee_ages
15 ve 80 arasında bir tam sayı için olan Academic_department_names, veri türü geçerli bölüm adlarını
temsil eden karakter dizeleri kümesidir. Bir alan, böylece isim, veri tipi ve biçimi verilmiştir. Bir etki
değerlerini yorumlamak için ek bilgiler de verilebilir; Örneğin, bir sayısal alanı gibi Person_weights
Böyle libre veya kilogram olarak ölçü birimlerini sahip olmalıdır.
61
62
Bölüm 3 İlişkisel Veri Modeli ve İlişkisel Veritabanı Kısıtları
bir ilişki şeması 2 R ', ile gösterilen R (A 1, bir 2, ..., bir n) Bir ilişki adının oluşur R,
ve özelliklerin listesi, bir 1, bir 2, ..., bir n. Her biri nitelik bir ben Bir rolün adı bazı etki alanı tarafından oynanır D
ilişki şemada R. D denir alan adı nın-nin bir ben ve ile gösterilir dom (A ben). Bir ilişki şeması için kullanılır tanımlamak
bir ilişki; R, denir
isim Bu ilişkinin. derece, aşama ( veya derece) Bir ilişkinin niteliklerini sayısıdır
n ilişkisi şemanın.
üniversite öğrencileri hakkında bilgi depolayan derecede yedi bir ilişki, her öğrenciye açıklayan
yedi özelliklerini içerecektir. aşağıdaki gibi:
ÖĞRENCİ (Ad, Ssn, Home_phone, Adresi, Office_phone, Yaş, GPA)
Her özelliğin veri türünü kullanarak, tanım bazen yazılır:
Öğrenci adı: dize, ssn: dize, Ev telefonu: dize, Adres: dize,
Ofis telefonu: dize, Yaş: tamsayı, GPA: Bu ilişki şeması için) gerçek, ÖĞRENCİ Yedi özelliklere
sahiptir ilişkisi, adıdır. Yukarıdaki tanımda, bu tür özelliklere dize veya tamsayı olarak genel türleri
tayini gösterilmektedir. Daha doğrusu, biz bazı özellikleri için aşağıdaki önceden tanımlanmış
alanları da belirleyebilirsiniz ÖĞRENCİ ilişkisi: dom ( Ad) İsimler =; dom ( Ssn) = Social_security_numbers; dom
( EvTelefonu) = USA_phone_numbers 3, dom ( Office_phone) = USA_phone_numbers, ve DOM ( GPA) =
Grade_point_averages. İlişki içerisindeki konumlarıyla bir ilişki şema özelliklerine işaret eder de
mümkündür; Bu şekilde, ikinci özellik ÖĞRENCİ ilişkisi ssn, Dördüncü özellik ise Adres.
bir ilişki ( veya ilişki durumu) 4 r ilişki şemanın R (A 1, bir 2, ..., bir n) Ayrıca ile gösterilen R (R '), kümesidir n Tuplelerin r = {t 1,
t 2, ..., t m}. Her biri n tanımlama grubu t sıralanmış bir listesidir n değerler t = <v 1, v 2, ..., v n>, burada her bir değer v ben, 1 ≤ ben
≤ n dom bir elemanıdır
(A ben) veya özel bir BOŞ değer, kıymet. ( BOŞ değerleri, aşağıda daha ayrıntılı ve Bölüm 3.1.2 tartışılmıştır.) ben inci başlığın
değeri t, bu özelliğe karşılık gelen bir ben, olarak adlandırılır t [A ben] veya tA ben ( veya t [i] biz) pozisyonel notasyonu
kullanmak faydalı olacaktır. Şartlar
ilişki intension şeması için R, ve ilişki uzantısı Bir ilişki durum için (R)
Ayrıca en sık kullanılanlardır. Şekil 3.1, bir örneğini göstermektedir ÖĞRENCİ karşılık gelen bir ilişki,
ÖĞRENCİ şema sadece belirtilmiş. ile ilgili olarak her bir demet bir öğrencinin varlık (ya da nesneyi)
temsil eder. Her demet, bir şekilde gösterilen bir tablo olarak ilişkiyi göstermek kürek çekmek ve her bir
özellik, bir tekabül Sütun başlığı Bu sütundaki değerleri rol veya yorum göstermektedir. NULL değerleri Değerleri
bilinmeyen ya da bazı birey için var olmayan özelliklerini temsil ÖĞRENCİ tanımlama grubu.
2
Bir ilişki şeması bazen denir ilişki düzeni.
3
Cep telefonlarının çoğalması nedeniyle telefon numaraları büyük artış ile, ABD'de ne kadar büyük şehirlerde artık birden
alan kodları var, yani yedi basamaklı yerel arama birçok alanda durduruldu. Biz daha genel bir seçim olacaktır yerine
Local_phone_numbers ait Usa_phone_numbers için bu alanı değişti. Bu veritabanı gereksinimleri zaman içinde değişebilir
nasıl göstermektedir.
4
Bu aynı zamanda adı olmuştur bir ilişkisi örneği. Biz bu terimi, çünkü kullanmaz örnek, misal, olay, durum Ayrıca, tek bir başlığın veya satıra atıfta bulunmak için
kullanılmaktadır.
3.1 İlişkisel Model Kavramları
63
Öznitellikler
İlişkisi Adı
ÖĞRENCİ
Benjamin
Demetler
305-61-2435
Home_phone
Adres 2918
Office_phone null
Yaş
GPA
Bayer Chung-cha
381-62-1245
(817)373-1616
Bluebonnet Lane 125 Kirby
null (817)749-1253
19 18 3.21
Kim Dick Davidson
422-11-2320
(817)375-4409 BOŞ
Yolu 3452 Elgin Yolu 265
(817)749-6492 BOŞ
25 28 2.89
Rohan Panchal
489-22-1100
(817)376-9821
Lark Lane 7384 Fontana Lane
Barbara Benson Ad
533-69-1238 Ssn
(817)839-8461
19
3.53
3.93
3.25
Şekil 3.1
Bir ilişki ÖĞRENCİ nitelikleri ve küpe.
Bir ilişkinin önceki tanımı olabilir düzeltilmiş aşağıdaki gibi daha resmi teori kavramlarını set
kullanarak. Bir ilişki (veya ilişki durumu) (R) bir matematiksel ilişki derece n etki dom ( bir 1) dom ( bir 2)
...,
dom ( bir n) burada a, alt küme arasında
Kartezyen ürün ( ile gösterilen x) tanımlayan etki R:
(R) ⊆ ( dom ( bir 1) x dom ( bir 2) × ... × dom ( bir n))
Kartezyen ürün temelinde yatan etki alanlarından değerlerin tüm olası kombinasyonları belirtir. Bu yüzden,
değerler toplam sayısı karşılık gelir, ya da eğer kardinalite, Bir etki alanındaki D tarafından | D | ( ) Tüm etki
sonlu olduğu varsayılarak, Kartezyen üründe dizilerini toplam sayısıdır
| Dom ( bir 1) | × | dom ( bir 2) | × ... × | dom ( bir n) |
tüm etki kardinallikleri Bu ürün bugüne kadar herhangi bir ilişki halinde var olabilir olası durumlarda
veya küpe toplam sayısını gösterir R (R '). Belli bir zaman tüm bu olası kombinasyonları, bir ilişki
durumunun mevcut ilişki durumu gerçek dünyanın belirli bir durumunu temsil geçerlidir dizilerini
-reflects. Genel olarak, gerçek dünyanın devlet değiştirir olarak, yani başka bir ilişki haline
dönüştürülmekte olan tarafından, ilişki durumu yok. Ancak, şema R, Nispeten statik ve değişiklikler
olduğunu
çok seyrek-örneğin, başlangıçta ilişkili olarak saklanan değildi yeni bilgisini temsil etmek için bir
özellik ekleyerek sonucu. Bu bazı özelliklerle mümkündür aynı alana sahip. nitelik adlarının farklı
göstermek roller, veya etki alanı için yorumların,. Örneğin,
ÖĞRENCİ ilişki, aynı alan USA_phone_numbers rolünü oynar
Ev telefonu, Başvurarak Bir öğrencinin ev telefonu, ve rolü Ofis telefonu,
Başvurarak öğrencinin ofis telefon. aynı etki ile üçüncü bir olası özniteliği (şekilde gösterilmemiştir)
olabilir Cep telefonu.
İlişkiler 3.1.2 Özellikleri
ilişkilerin daha erken tanımı bir dosya veya bir tablodan farklı bir ilişki bazı başka özellikleri de ima
eder. Şimdi bu özelliklerin bazıları tartışır.
Bölüm 3 İlişkisel Veri Modeli ve İlişkisel Veritabanı Kısıtları
64
Bir İlişkisi dizilerini Sipariş. Bir ilişki, bir olarak tanımlanmaktadır Ayarlamak dizilerini. Matematiksel
olarak, bir kümenin elemanları var sipariş yok onların arasında; dolayısıyla, bir ilişki içinde küpe herhangi bir
emir yok. Başka bir deyişle, bir ilişki dizilerini sıralamaya duyarlı değildir. Ancak, dosyada, kayıtları fiziksel
olarak saklanır diskte (veya bellekte), bu nedenle her zaman kayıtlar arasında bir düzen vardır. Bu sipariş,
ikinci, birinci gösterir ben inci ve dosyadaki son kayıtları. bir tablo gibi bir ilişki gösterir, benzer şekilde, sıralar
belirli bir sırayla görüntülenir.
Bir ilişki mantıksal veya soyut düzeyde gerçekleri göstermeye çalışıyor çünkü kayıt düzeni sipariş bir
ilişki tanımının bir parçası değildir. Birçok tanımlama grubu siparişleri aynı ilişkiye belirtilebilir.
Örneğin, küpe ÖĞRENCİ Şekil 3.1'de ilişki değerleri ile sipariş edilebilir Ad, Ssn, Yaş, veya başka bir
özelliğiyse. Bir ilişkinin tanımı herhangi sırasını belirtmez: Orada tercih yok başka bir yere bir sipariş
için. Bu nedenle, Şekil 3.2'de gösterilen ilişki olarak kabul edilir özdeş bir ilişki, bir dosya olarak
uygulanan ya da bir tablo olarak gösterilir Şekil 3.1.When gösterilene, belirli bir sipariş dosyasının
kayıtları veya tablonun satırlarda yer alan olabilir.
Bir kayıt düzeni ve İlişkiler-Alternatif Tanımı içinde Değerlerin Sipariş. Bir ilişki, An önceki
tanımına göre n demet bir
Sıralı Liste nın-nin n değerler, bir ilişki içinde dolayısıyla ayrıntıların bir-ve demet içinde değerlerin
sipariş kadar önemli şema olduğunu. Ancak, daha soyut düzeyde, niteliklerin sırası ve değerleri
olduğunu değil önemli sürece nitelikler ve değerler arasındaki yazışmalar korunur olarak. bir alternatif
tanım Bir ilişki verilebilir arasında, bir demet içinde değerlerin sıralamayı yapma gereksiz. Bu
tanımda, bir ilişki şeması R = {A 1, bir 2, ..., bir n} bir
Ayarlamak arasında (yerine bir listenin) niteliklerini ve ilişki durumu (R) eşleştirmeleri sonlu dizi
r = {t 1, t 2, ..., t m}, burada her bir demet t ben bir haritalama itibaren R, için D, ve D olduğu Birlik
(İle gösterilen ∪) özelliği, etki; yani, D = dom ( bir 1) ∪ dom ( bir 2) ∪ ... ∪
dom ( bir n). Bu tanımda, t [A ben] (Dom olmalıdır bir ben) 1 için ≤ ben ≤ n Her haritalama
t içinde r. Her haritalama t ben tuple denir. Bir haritalama, a olarak başlığın bu tanıma göre tanımlama grubu Bir olarak
düşünülebilir Ayarlamak
her bir çift, bir özelliğinden eşleme değerini verir (<özelliği>, <value>) çiftlerinden bir ben bir değere v ben
dom ( bir ben). niteliklerin sıralaması ise değil
Şekil 3.2
dizilerini sırası farklı şekil 3.1 ilişki ÖĞRENCİ.
ÖĞRENCİ
isim
ssn
Ev telefonu
Adres
Office_phone Yaş GPA
Dick Davidson
422-11-2320
BOŞ
3452 Elgin Yolu 7384
(817)749-1253
25
3.53
Barbara Benson
533-69-1238
(817)839-8461
Fontana Lane 265 Lark
BOŞ
19
3.25
Rohan Panchal
489-22-1100
(817)376-9821
Lane 125 Kirby Yolu
(817)749-6492
28
3.93
Chung-cha Kim
381-62-1245
(817)375-4409
BOŞ
18
2.89
Benjamin Bayer 305-61-2435 (817)373-1616 2918 Bluebonnet Lane NULL
19 3.21
3.1 İlişkisel Model Kavramları
Önemli, çünkü özellik adı görüntülenir onun değer, kıymet. Bu tanımlama ile, Şekil 3.3'de gösterilen
iki küpe aynıdır. Bu orada beri gerçekten bir özellik değeri demet içinde başka huzuruna sahip
tercih için hiçbir neden yoktur, soyut bir düzeyde mantıklı.
Bir ilişki bir dosya olarak uygulandığında, nitelikleri fiziksel olarak bir kayıt içinde alanları olarak
sıralanır. Genellikle kullanacak ilk tanım ilişkisi, nerede küpe özelliklerin, ve değerler sıralanır, o
gösterim çok kolaylaştırır çünkü. Ancak, burada verilen alternatif tanımlama daha geneldir. 5
Tuples Değerler ve NULL. Bir başlığın her bir değer olan bir atomik değer, kıymet; yani, temel
ilişkisel model çerçevesinde bileşenlerine bölünebilir değildir. Dolayısıyla, kompozit ve birden çok
değerli nitelikler (bakınız Bölüm 7) izin verilmez. Bu model, bazen denir Düz ilişkisel modeli. ilişkisel
modelin arkasındaki teori çoğu denir Bu düşünceyle varsayımı ile geliştirilmiştir Birincil normal
form Varsayım. 6 Dolayısıyla, birden çok değerli nitelikleri ayrı ilişkilerin tarafından temsil edilmelidir
ve kompozit nitelikleri sadece temel ilişkisel modelde bunların basit bileşen özelliklerine göre temsil
edilir. 7
Önemli bir kavram ait olduğunu BOŞ bilinmeyen olabilir niteliklerin değerlerini temsil etmek için
kullanılan veya değerler, bir tuplea geçerli olmayabilir. adlı özel bir değer, BOŞ, Bu durumlarda
kullanılır. Örneğin, Şekil 3.1, bazı ÖĞRENCİ demetler var BOŞ ofis telefonları için onlar (bir ofis yok
çünkü o, ofis telefonu geçerli değildir Bu öğrencilerden kadar). Başka bir öğrenci olan bir BOŞ ev
telefonu için, muhtemelen değerdir (o bir ev telefonu olmayan ya da o birine sahiptir ama bunu
bilmiyoruz ya çünkü Bilinmeyen). Genel olarak, çeşitli anlamlara sahip olabilir
BOŞ gibi değerlerin, değeri bilinmeyen, değer var ama müsait değil, veya nitelik geçerli değildir Bu
tuplea (aynı zamanda değeri tanımlanmamış). son tipinin bir örneği BOŞ Biz bir öznitelik eklerseniz
ortaya çıkar Vize durumu için ÖĞRENCİ ilişki
Şekil 3.3
İki özdeş küpe özellikleri ve değerlerinin sırası ilişkisi tanımının bir parçası değildir.
t = <( Adı Dick Davidson), (Ssn, 422-11-2320), (Home_phone, NULL), (Adres, 3452 Elgin Road),
(Office_phone, (817) 749-1253), (Yaş, 25), (GPA, 3.53)>
t = <( Adres, 3452 Elgin Road), (Ad, Dick Davidson), (Ssn, 422-11-2320), (Yaş, 25),
(Office_phone, (817) 749-1253), (Gpa, 3.53), (Home_phone NULL)>
5
Daha sonra göreceğimiz gibi biz Bölüm 19'da sorgu işleme ve optimizasyon tartışmak zaman, ilişkinin alternatif tanım
yararlıdır.
6
Biz Bölüm 15 daha ayrıntılı olarak bu varsayımı tartışmaktadır.
7
ilişkisel modelin Uzantıları bu sınırlamaları kaldırmak. gibi, örneğin, nesne-ilişkisel sistemleri (Bölüm 11), bir kompleks yapılandırılmış
özelliklerini sağlar olmayan birinci normal bir şekilde veya İç içe ilişkisel modelleri.
65
66
Bölüm 3 İlişkisel Veri Modeli ve İlişkisel Veritabanı Kısıtları
yabancı öğrencileri temsilen küpe için geçerlidir. Farklı anlamları için farklı kodlar geliştirmek
mümkün BOŞ değerler. farklı türde dahil edilmesi
BOŞ ilişkisel model operasyonları (Bölüm 6) içine değerleri zor kanıtlanmış ve sunumumuz
kapsamı dışındadır gelmiştir. Bir tam anlamı BOŞ değer diğer değerlerle aritmetik toplanmalar veya
karşılaştırmalar sırasında nasıl ücretlerle yönetir. iki Örneğin, bir karşılaştırma BOŞ
değerler Müşteri A ve B ikisine birden sahip belirsizlikler-if açar BOŞ adresleri, o anlamına gelmez Aynı
adrese sahip. veritabanı tasarımı sırasında, kaçınmak en iyisidir
BOŞ Mümkün olduğunca değerler. Biz operasyon ve sorgularda bağlamında bu başka Bölüm 5 ve
6'da tartışmak ve veritabanı tasarımı ve normalleştirme bağlamında Bölüm 15 olacaktır.
Yorumlanması İlişkisi (Anlamı). ilişki şemasının beyanı veya bir tür olarak yorumlanabilir iddia. Örneğin,
şema ÖĞRENCİ
Şekil 3.1 ilişkisi genel olarak, bir öğrenci varlık bir sahiptir iddia Ad, Ssn, Home_phone, Adresi, Office_phone,
Yaş, ve GPA. ile ilgili olarak her bir demet sonra olarak yorumlanabilir gerçek ya da onaylama işlemi
belirli bir örneği. Örneğin, Şekil 3.1, ilk demet bir olduğu gerçeğini iddia ÖĞRENCİ kimin isim Benjamin,
Bayer, olduğu ssn , 305-61-2435 olduğunu Yaş 19, vb olduğunu. Bazı ilişkiler hakkındaki gerçekleri
temsil edebilir dikkat edin kişiler, diğer ilişkiler hakkındaki gerçekleri temsil edebilir oysa ilişkiler. Örneğin,
bir ilişki şeması ANA DAL
( Student_ssn, Bölge Kodu) iddia akademik disiplinlerde önemli öğrenciler. Bu ilişki bir tanımlama grubu
kendi ana disipline bir öğrenci ile ilgilidir. Dolayısıyla, ilişkisel model varlıklar ve ilişkiler hem
hakkındaki gerçekleri temsil muntazam ilişkiler gibi. tek bir ilişki bir varlık türü veya bir ilişki türünü
temsil ettiğini tahmin etmek olduğundan bu bazen anlaşılabilirliğini uzlaşır. Biz varlık ve ilişki
kavramları detaylı olarak açıklanacaktır Bölüm 7'de ayrıntılı olarak Varlık-İlişki (ER) modeli
tanıtmak. Bölüm 9'da haritalama işlemleri ER ve EER (Enhanced ER modelinin farklı yapılar Bölüm
kaplı göstermek
8) kavramsal veri modelleri (Bölüm 3'e bakın) ilişkilere dönüştürülür. Bir ilişki şemanın alternatif
yoruma bir gibidir yüklem; bu durumda, her bir demet içinde değerler değerler olarak yorumlanır
olduğunu tatmin etmek yüklem. Örneğin, yüklem ÖĞRENCİ (Ad, Ssn, ...) ilgili olarak beş tuplelar için
geçerlidir
ÖĞRENCİ ve Şekil 3.1. Bu demetler gerçek dünyada beş farklı önermeleri veya gerçekleri temsil
eder. o ilişkisel modeli (Bölüm 26.5 bakınız) bu diller içindeki kullanılmasını sağlar, çünkü bu
yorum, bu tür Prolog olarak mantıksal programlama dilleri bağlamında oldukça yararlıdır. başlıklı
bir varsayım kapalı dünya varsayımı Evrenin tek gerçekler ilişki (ler) uzantısı (durum) içinde
mevcut olanlardır belirtmektedir. değerlerin Başka bir kombinasyon yüklem false yapar.
3.1.3 Bağıntısal Model, Gösterim
Bizim sunumda aşağıdaki notasyonu kullanacağız:
■
Bir ilişki şeması R, derece n ile belirtilmiştir R (A 1, bir 2, ..., bir n).
3.2 İlişkisel Model Kısıtlamalar ve İlişkisel Veritabanı Şemalar
■
büyük harf S, R, S ilişki adlarını belirtir.
■
küçük harfler q, r, s, ilişki durumlarını belirtir.
■
Harfler t, u, v tupleları belirtir.
■
Bir ilişki şemanın genel adıyla gibi In ÖĞRENCİ Ayrıca ilişki içinde dizilerini kümesini belirtir
mevcut ilişki durumu -buna karşılık
ÖĞRENCİ (Ad, Ssn, ...) atıfta sadece ilişki şemaya.
■
bir özellik bir ilişkisi adıyla nitelikli olabilir R, ki bunlara ayrıca noktalama işaretleri
kullanarak aittir RA -Örneğin, Öğrenci adı veya
STUDENT.Age. Aynı adı farklı ilişkilerde iki özellik için kullanılabilir olmasıdır. Ancak, tüm
özellik adlarını Belirli bir ilişki içinde
farklı olmalıdır.
■
bir n tanımlama grubu t bir ilişkide (R) ile belirtilmiştir t = <v 1, v 2, ..., v n>, nerede v ben öznitelik tekabül
eden değerdir bir ben. Aşağıdaki notasyon değinmektedir
komponent değerleri dizilerini:
■
Her ikisi de t [A ben] ve tA ben ( ve bazen t [i]) değere atıfta v ben içinde t Özellik için
bir ben.
■
Her ikisi de t [A u bir w, ..., bir z] ve t. (A u bir w, ..., bir z), nerede bir u bir w, ..., bir z dan niteliklerin listesidir R
', değerlerin subtuple bakın < v u v w, ..., v z> itibaren t listede belirtilen nitelikler tekabül. Bir örnek
olarak, tuple düşünün t = < 'Barbara Benson', '533-69-1238', '(817) 8398461', '7384 Fontana
Lane', BOŞ, 19, 3.25> dan ÖĞRENCİ Şekil ilişkisi
3.1; sahibiz t [ Adı] = < 'Barbara Benson'> ve t [ Ssn, Gpa, Yaş] = < '533-69-1238',
3.25, 19>.
3.2 İlişkisel Model Kısıtlamalar ve İlişkisel
Veritabanı Şemalar
Şimdiye kadar, tek ilişkilerin özelliklerini ele aldık. Bir ilişkisel veritabanında genellikle birçok ilişkiler
olacak ve bu ilişkilerde küpe genellikle çeşitli şekillerde ilişkilidir. Bütün veritabanının durumunu
zaman içinde belli bir noktada tüm ilişkilerin devletler karşılık gelecektir. Genellikle birçok
kısıtlamalar vardır ya kısıtlamaları Bir veritabanı durumda gerçek değerler üzerinde. Kısım 1.6.8
içerisinde tarif edildiği gibi bu kısıtlamalar, veritabanı temsil Miniworld kurallara türetilir.
Bu bölümde, kısıtlamalar şeklinde bir ilişkisel veritabanı üzerinde belirtilebilir veriler üzerinde çeşitli
kısıtlamalar tartışır. veritabanlarında Kısıtlamalar genellikle üç ana kategoriye ayrılabilir:
1. veri modelinde doğasında olan Kısıtlamaları. Biz bu çağrı doğal
model-bazlı kısıtlamalar veya örtük kısıtlamalar.
2. typ- doğrudan veri modeli şema olarak ifade edilebilir Kısıtlayıcı,
ically DDL (veri tanımlama dili içinde belirterek, Bölüm bakınız
2.3.1). Biz bu çağrı şema tabanlı kısıtlamalar veya belirgin kısıtlar.
67
68
Bölüm 3 İlişkisel Veri Modeli ve İlişkisel Veritabanı Kısıtları
3. Kısıtlamalar o yapamam doğrudan veri şemalarının ifade edilebilir
Model ve dolayısıyla ifade edilir ve bu çağrı programs.We uygulama tarafından uygulanması gereken Uygulama
tabanlı veya anlamsal kısıtlamaları veya iş kuralları.
Biz Bölüm 3.1.2 tartışılan ilişkilerin özellikleri ilişkisel modelin doğal kısıtlamaları ve birinci
kategoriye ait. Örneğin, bir ilişki yinelenen dizilerini olamaz kısıtlaması doğal bir sınırlamadır. Bu
bölümde ele kısıtlamalar ikinci kategori, yani, DDL ile ilişkili modelin şemada ifade edilebilir
kısıtlamalar. Üçüncü kategoride kısıtları, daha genel anlamda hem de niteliklerin davranış ilgilidir
ve ekspres ve veri modeli içinde uygulamak zordur, bu nedenle genellikle veritabanı
güncellemelerini gerçekleştirmek uygulama programları içinde kontrol edilir.
kısıtların diğer önemli kategorisidir veri bağımlılıkları, içeren
fonksiyonel bağımlılıkları ve çok değerli bağımlılıklar. Bir ilişkisel veritabanı tasarım “iyilik” test
etmek için esas olarak kullanılır ve adı verilen bir işlemde kullanılırlar normalleştirme, burada 15 ve
16 şema tabanlı kısıtlamaları ile ilgili alan kısıtlamaları önemli kısıtlamaları kısıtlamaları
bulunmaktadır Bölüm tartışılmıştır BOŞ s, varlık bütünlüğü kısıtlamaları ve bilgi tutarlılığı
kısıtlamaları.
3.2.1 Alan Kısıtlamaları
Alan kısıtlamaları, her demet içindeki her özelliğin değerini belirtmek bir
(Alan dom bir atom değer olmalıdır A). Zaten etki Bölüm 3.1.1 belirtilebilir yollarını tartıştık. etki ile
ilişkili veri türleri, tipik olarak ve gerçek sayılar (yüzdürme ve doubleprecision şamandıra) (örneğin
kısa tamsayı, tamsayı, ve uzun tam sayı olarak) tamsayılar için standart sayısal veri tiplerini içerir.
tarih, saat, zaman damgası ve para ya da diğer özel veri türlerini gibi Karakterler, Boolean, sabit
uzunluklu dizeler ve değişken uzunluklu dizeler de mevcuttur. Diğer olası etki, bir veri türü veya
tüm olası değerler açıkça listelendiği numaralandırılmış bir veri türü olarak değerlerin bir alt aralık
ile tarif edilebilir. Burada ayrıntılı olarak bu anlatmaktan ziyade, biz Bölüm 4.1'de SQL ilişkisel
standardı tarafından sunulan veri türlerini tartışır.
BOŞ Değerleri 3.2.2 Anahtar Kısıtlamalar ve Sınırlamalar
biçimsel ilişkisel modelde, bir ilişki Bir olarak tanımlanır dizilerini ayarlayın. Tanım olarak, bir dizi tüm elemanları
farklıdır; bu nedenle, bir ilişki tüm demetlerin da farklı olmalıdır. Bu hiçbir iki tuples değerlerin aynı kombinasyonu
için olabileceği anlamına gelir herşey Onların nitelikleri. Genellikle, diğer vardır niteliklerin alt kümeleri Bir ilişki
şemanın R, özelliğiyle herhangi bir ilişki durumunda hiçbir iki tuples r nın-nin R, Bu özelliklere yönelik değerlerin
aynı kombinasyonuna sahip olmalıdır. Biz SK tarafından vasıflarından biri böyle alt kümesini göstermek varsayalım;
Sonra herhangi iki farklı Tuplelerin t 1 ve t 2 Bir ilişki halinde r nın-nin R ',
Biz o kısıtlamasını vardır:
t 1 [ SK] ≠ t 2 [ SK]
3.2 İlişkisel Model Kısıtlamalar ve İlişkisel Veritabanı Şemalar
nitelikleri SK Böyle bir dizi denir SuperKey ilişki şemanın R. SK bir belirten bir SuperKey benzersizlik
kısıtlaması Herhangi bir halde ve herhangi bir iki farklı dizilerini bu
r nın-nin R, SK için aynı değere sahip olabilir. Her ilişki en az bir varsayılan SuperKey-tüm niteliklerin kümesi
vardır. Bir SuperKey ancak gereksiz nitelikleri olabilir, bu nedenle daha kullanışlı bir kavram a olmasıdır anahtar,
hangi aþýrýyinelemeye sahip. bir anahtar
K Bir ilişki şemanın R, bir SuperKey olduğunu R, herhangi bir nitelik kaldırarak ek özelliğiyle bir itibaren K
öznitelikler kümesi bırakır K Bunun bir SuperKey değil R, Artık. Bu nedenle, kilit iki özelliğe karşılar:
1. ilgili herhangi bir durumda iki farklı küpe aynı değerlere sahip olamaz
anahtarında (tümü) öznitelikler için. Bu ilk Tesiste ayrıca SuperKey için de geçerlidir.
2. Bu bir minimal SuperKey -Bu, hala herhangi özelliklerini kaldırmak ve olamaz hangi bir
SuperKey koşulu 1 ambarında benzersiz kısıtlamayı var. Bu özellik, bir SuperKey tarafından
gerekli değildir.
İlk özellik tuşları ve superkeys için geçerlidir Oysa ikinci özellik sadece anahtarları için gereklidir. Bu
nedenle, kilit ancak bunun tam tersi de SuperKey olup. Yi hesaba kat ÖĞRENCİ Şekil 3.1 ilişkisi.
nitelik kümesi { ssn} bir anahtardır ÖĞRENCİ
hiçbir iki öğrenci tuples için aynı değere sahip olabilir, çünkü Ssn. 8 içeren özelliklerin herhangi seti ssn -Örneğin,
{ Ssn, İsim, Yaş} Bir SuperKey bu mu. Bununla birlikte, SuperKey { ssn, İsim yaş} önemli bir değil ÖĞRENCİ çıkarmadan
dolayı isim veya Yaş
veya kümesinden ikisi hala SuperKey bize bırakır. Genel olarak, tek bir öznitelik oluşan herhangi bir SuperKey da bir
anahtardır. Birden özelliklere sahip bir anahtar alması gerekiyor herşey
onun özelliklerin birlikte tekliği özelliği var.
önemli bir özelliğinin değeri ile ilgili olarak benzersiz her tuple tanımlamak için kullanılabilir.
Örneğin, ssn değeri 305-61-2435 benzersiz Benjamin Bayer tekabül tuple tanımlar ÖĞRENCİ ilişkisi.
Bir anahtar oluşturan nitelik kümesi ilişkisi şemanın bir özellik olduğuna dikkat edin; o
dayanamıyorum sınırlamadır her şemanın geçerli ilişki durumu. Bir anahtar özelliklerin anlamı
belirlenir ve mülkiyeti dahilindedir zamanla değişmeyen: Biz ilgili yeni dizilerini eklediğinizde
tutmaya devam etmelidir. Örneğin, ve tayin etmemelidir edemez isim öznitelik ÖĞRENCİ Bir anahtar
olarak Şekil 3.1'de ilişki o özdeş adlarla iki öğrenci geçerli bir durumda bir noktada mevcut olması
mümkündür, çünkü. 9
Genel olarak, bir ilişki şema birden fazla anahtar olabilir. Bu durumda, tuşların her denir Aday
anahtar. Örneğin, OTOMOBİL Şekil 3.4'de ilişki iki aday tuşu bulunmaktadır: Lisans numarası ve Engine_serial_number.
Sanki aday anahtarlarından birini belirtmek için yaygındır birincil anahtar ilişkinin. Bu, değerleri
için kullanılan aday anahtardır belirlemek ile ilgili olarak demetler. Bu Şekil 3.4'de gösterilen bir ilişki
şema birincil anahtarı oluşturan özellikleri, altı çizilidir kuralını kullanır. Dikkat edin bir ilişki şema
birçok aday tuşları sahip olduğunda,
8
9
Ssn ayrıca SuperKey olduğunu unutmayın.
İsimler bazen tuşları olarak kullanılır, ancak daha sonra bazı eser-böyle bir sıralı numarası-ekleme olarak aynı adları
ayırt etmek kullanılmalıdır.
69
70
Bölüm 3 İlişkisel Veri Modeli ve İlişkisel Veritabanı Kısıtları
OTOMOBİL
Lisans numarası
Engine_serial_number
Yapmak
model
Yıl
Texas ABC-739 Florida
A69352
Ford
Mustang
02
TVP-347 New York
B43696
Oldsmobile
palası Delta
05
Şekil 3.4
MPO-22 California
X83554
Oldsmobile
190-D
01
License_number ve
432-TFY Kaliforniya
C43742
Mercedes
Camry XJS
99
RSK-629 Texas RSK-629
Y82935
Toyota Jaguar
Engine_serial_number: İki
aday tuşlarıyla ARAÇ
U028365
ilişkisi.
04
04
Birincil anahtar olmak için bir seçimi biraz keyfi olduğu; ancak, tek bir öznitelik veya niteliklerin az
sayıda bir birincil anahtar seçmek genellikle daha iyidir. Diğer aday tuşları olarak belirlenmiş benzersiz
anahtarlar, ve altı çizili değildir.
niteliklerini başka kısıt belirler BOŞ değerlerdir veya izin verilmez. Örneğin, her eğer ÖĞRENCİ tanımlama
grubu geçerli, sivil olmalıdır BOŞ değeri isim Sonra, öznitelik isim nın-nin ÖĞRENCİ olacak şekilde tahdit
edilmiş GEÇERSİZ DEĞİL.
3.2.3 İlişkisel Veri Tabanları ve İlişkisel Veritabanı
Şemalar
konuştuğumuz tanım ve kısıtlamalar bugüne kadar tek ilişkiler ve bunların niteliklerine için
geçerlidir. Bir ilişkisel veritabanı genellikle çeşitli şekillerde ilişkili ilişkilerde küpe ile birçok ilişkiler
içerir. Bu bölümde ilişkisel veritabanı ve ilişkisel veritabanı şemasını tanımlar. bir ilişkisel
veritabanı şeması S ilişki şemaları S = bir dizi {olduğu R, 1, R, 2, ..., R, m} ve bir dizi bütünlük kısıtları IC.
bir ilişkisel veritabanı devlet 10 DB S ilgili bir dizi = {DB devletler r 1, r 2, ..., r m} Bu tür her birinin r ben bir
durumdur R, ben ve bu şekilde
r ben ilişki durumları IC belirtilen bütünlük kısıtlamalarını karşılamak. Şekil 3.5 dediğimiz bir ilişkisel
veritabanı şemasını göstermektedir ŞİRKET = {ÇALIŞAN, DALI, DEPT_LOCATIONS, proje, BAĞIMLI
WORKS_ON}. altı çizili nitelikler birincil anahtarları temsil eder. Şekil 3.6, bir ilişkisel veri tabanı
durumu tekabül gösterir ŞİRKET şema. Farklı ilişkisel dilde örnek sorgulara gelişmekte için 6 ile 4 bu
bölümde ve Bölümlerde bu şema ve veritabanı durumunu kullanacaktır. (Burada gösterilen veriler
genişletilmiş ve kitap için Companion Web sitesinden nüfuslu bir veritabanı olarak yükleme için
kullanılabilir ve bölümlerin sonundaki uygulamalı proje egzersizleri için kullanılabilir edilir.) Bir
ilişkisel veritabanı söz ettiğimizde biz de üstü kapalı şema ve bugünkü durumunu ikisini de içerir.
Tüm bütünlük kısıtlamalarını itaat etmeyen bir veritabanı halidir
10
Bir ilişkisel veritabanı durum bazen ilişkisel veritabanı denir örnek, misal, olay, durum. Daha önce de belirttiğimiz gibi Ancak, biz terimini kullanmaz
örnek, misal, olay, durum o da tek küpe için de geçerlidir çünkü.
3.2 İlişkisel Model Kısıtlamalar ve İlişkisel Veritabanı Şemalar
71
İŞÇİ, ÇALIŞAN, PERSONEL
fname Minit
Lname Ssn Bdate
Adres Seks
Maaş
Super_ssn Dno
BÖLÜM
Dname Dnumber Mgr_ssn Mgr_start_date
DEPT_LOCATIONS
Dnumber
Dlocation
PROJE
Plocation
pname Pnumber
Dnum
WORKS_ON
ESSN
pno
Saatler
Şekil 3.5
ŞİRKET ilişkisel veritabanı
BAĞIMLI
ESSN
Dependent_name Seks Bdate
ilişki
şeması için Şema diyagramı.
adlı bir Geçersiz durum, ve bütünlük kısıtlamaları tanımlanan kümesindeki tüm kısıtlamalar karşılayan bir durum IC
adlandırılan bir Geçerli durumu.
Şekil 3.5'de, Dnumber hem bağlıyor BÖLÜM ve DEPT_LOCATIONS
Bir bölüme verilen aynı gerçek dünya kavramı-numarasıdır. Aynı konsept denir Dno içinde İŞÇİ,
ÇALIŞAN, PERSONEL ve Dnum içinde PROJE. Aynı gerçek dünya kavramı temsil Nitelikler veya farklı
ilişkilerde aynı adlara sahip olabilir veya olmayabilir. Alternatif olarak, farklı kavramları temsil
nitelikleri farklı ilişkilerde aynı ada sahip olabilir. Örneğin, biz özellik adını kullanmış olabilir isim her
ikisi için pname nın-nin PROJE ve dname nın-nin BÖLÜM; Bu durumda, aynı adı paylaşan ancak farklı
realworld kavramları proje isimleri ve departman isimlerini temsil eden iki özelliklerini olurdu.
ilişkisel modelin bazı erken sürümlerinde, bir varsayım aynı gerçek dünya kavramı, bir özellik
tarafından temsil edilen zaman olurdu yapıldı özdeş
Tüm ilişkilerde isimleri bağlıyor. Aynı gerçek dünya kavramı aynı ilişkili olarak farklı roller
(anlamları) kullanıldığında bu sorun yaratır. Örneğin, Sosyal Güvenlik numarası kavramı iki kez
görünür İŞÇİ, ÇALIŞAN, PERSONEL denetçinin SSN rolünde bir kez çalışanın SSN rolünde ve bir
kez: Şekil 3.5 ilişkisi. Onlara farklı özelliğini vermek zorundadır isimler- ssn ve
Super_ssn, Sırasıyla-çünkü onlar aynı ilişkin ve anlamlarını ayırt etmek için görünür.
Her ilişkisel DBMS ilişkisel veritabanı şemasını tanımlamak için bir veri tanımlama dili (DDL) olması
gerekir. Güncel ilişkisel DBMSs çoğunlukla bu amaçla SQL kullanıyor. Biz Bölüm 4.1 ve 4.2 SQL
DDL sunuyoruz.
Bölüm 3 İlişkisel Veri Modeli ve İlişkisel Veritabanı Kısıtları
72
Şekil 3.6
ŞİRKET ilişkisel veritabanı şeması için olası bir veritabanı durumu.
İŞÇİ, ÇALIŞAN, PERSONEL
Minit
Fname
ssn
Lname
Bdate
Adres
Cinsiyet
Maaş Super_ssn
Dno
BTJSKAVE
John
Wong
Smith
Wallace
Zelaya
333445555
123456789
987654321
999887777
Ramesh
Narayan
666884444
Joyce
İngilizce
453453453
Ahmad
Jabbar
987987987
James
Borg
888665555
Franklin
Alicia
1955-12-08
1965-01-09
1941-06-20
1968-01-19
Houston 638 Voss, Houston, TX
Bellaire, Teksas 731 Fondren,
3321 Şato, Spring, TX 291 Berry,
40000
30000
43000
FFMM 25000
888665555
333445555
888665555
987654321
5
5
4
4
1972-07-31
1962-09-15
1937-11-10
1969-03-29
Houston, TX
Yangın Meşe, TX 5631 Pirinç,
Taş, Houston, Teksas Mütevazi 975
980 Dallas, Houston, Teksas 450
25000
38000
55000
MMMF25000
333445555
333445555
987654321 BOŞ
5
5
1
4
Jennifer
BÖLÜM
DEPT_LOCATIONS
Dnumber
Dname
Mgr_ssn
Dnumber
Mgr_start_date
Dlocation
Sugarland
Bellaire
Stafford
Houston
Araştırma İdaresi
Genel Merkezi
987654321
333445555
888665555
4
5
1
1995/01/01
1988/05/22
1981/06/19
55
5
ESSN
666884444
2
1
3
333445555
2
1
2
Pnumber
Plocation
Bilgisayarlaşma
7.5
40,0
Reorganizasyon
20.0
Newbenefits
2
1
3
20.0
20
10
30
10.0
Sugarland
Bellaire
Houston
5
5
5
Houston
Stafford
1
4
4
10.0
333445555
333445555
BOŞ pno
10.0
333445555
10.0
ESSN
BAĞIMLI
Dependent_name
Cinsiyet
Bdate
999887777
20
30
10
30.0
333445555
Alice
999887777
10 3
10.0
333445555
Theodore
1983-10-25
35.0
333445555
Joy
1958-05-03
987987987
987987987
Dnum
ProductY Productz
32.5
453453453
453453453
Pname ProductX
Saatler
123456789
123456789
Houston 1 4
PROJE
WORKS_ON
10
30
30
987654321
987654321
20
888665555
20
5.0
987654321
20.0
123456789
15.0
123456789
123456789
ilişki
FMFMMFF
1986-04-05
Eşi kızı Oğul
1942-02-28
Michael
Abner
Elizabeth
Alice
1988-01-04
1988-12-30
1967-05-05
Oğlu
Kızı Eş Eş
3.2 İlişkisel Model Kısıtlamalar ve İlişkisel Veritabanı Şemalar
Bütünlük kısıtlamaları bir veritabanı şeması üzerinde belirtilir ve bu şemanın her geçerli bir veritabanı durumuna
yapmaları bekleniyor. Etki, anahtarın ve ek olarak GEÇERSİZ DEĞİL
kısıtlamaları, kısıtlamalar diğer iki tip ilişkisel modelin parçası olarak kabul edilir: varlık bütünlüğü
ve bilgi tutarlılığı.
3.2.4 Bütünlük, Tutarlılığına ve Dış Keys
varlık bütünlük kısıtlaması herhangi bir birincil anahtar değeri bildiren BOŞ. Birincil anahtar değeri
ile ilgili olarak tek tek dizilerini tanımlamak için kullanılır, bu ise. sahip olan BOŞ Birincil anahtar
değerleri bazı dizilerini tespit edemez anlamına gelir. Örneğin, eğer iki veya daha fazla küpe vardı BOŞ
birincil anahtarlar için, biz diğer ilişkiler bunlara başvuruda çalışırsanız onları ayırt etmek mümkün
olmayabilir. Anahtar kısıtlamaları ve taraf bütünlük kısıtları bireysel ilişkilere belirtilir. bilgi tutarlılığı
kısıt İki ilişkileri arasında belirtilen ve iki ilişkilerde küpe arasında tutarlılık sağlamak için kullanılır.
Gayri, başvuru bütünlüğü kısıtlama bir ilişki anlamına gelir, bir ilişki içinde bir demet bir bakınız
gerektiğini belirtmektedir varolan tanımlama grubu O ilişkili olarak. Örneğin, Şekil 3.6, özelliği, Dno nın-nin
İŞÇİ, ÇALIŞAN, PERSONEL Her çalışanın görev aldığı bölüm numarası verir; bu nedenle, her değeri İŞÇİ,
ÇALIŞAN, PERSONEL tanımlama grubu aynı olmalıdır Dnumber
bazı başlığın değeri BÖLÜM ilişkisi.
daha resmi başvuru bütünlüğü tanımlamak için öncelikle bir kavramını tanımlamak yabancı anahtar. Aşağıda
verilen yabancı anahtar için koşulları, iki ilişki şemaları arasındaki tutarlılığı kısıtlamasına belirtmek R, 1 ve
R, 2. bir dizi nitelik ilişkisi şemada FK R, 1 bir yabancı anahtar nın-nin R, 1 o Referanslar ilişki R, 2 aşağıdaki
kuralları sağlayan ise:
1. FK öznitelikleri birincil önemli özellikleri ile aynı alana (ler) e sahip
PK R, 2; FK söylenen özellikler referans veya bakın ilişki R, 2.
2. Bir demet içinde FK değeri t 1 mevcut durumun r 1 ( R, 1) ya bir değer olarak ortaya
Bazı demet için PK t 2 geçerli durumda r 2 ( R, 2) veya null olur. İlk durumda, elimizdeki t 1 [ FK] = t 2 [ PK]
ve biz tanımlama grubu demek t 1 Referanslar veya
belirtmektedir tanımlama grubu t 2.
Bu tanımda, R, 1 denir referans ilişkisi ve R, 2 olduğu Başvurulan ilişkisi. Bu iki koşul basılı
tutarsanız, bir bilgi tutarlılığı kısıt itibaren R, 1 için R, 2 tutmak için söylenir. Birçok ilişkiler
veritabanında genellikle birçok bilgi tutarlılığı kısıtlamalar vardır.
Bu kısıtlamaları belirtmek için, öncelikle her nitelik veya niteliklerin set veritabanının çeşitli ilişki
şemaları oynadığı anlam veya rolün net bir anlayışa sahip olmalıdır. Bilgi tutarlılığı kısıtlamaları
tipik kaynaklanan
varlıklar arasındaki ilişkiler ilişki şemaları ile temsil edilen. Örneğin, Şekil 3.6 gösterilen veritabanı
düşünün. İçinde İŞÇİ, ÇALIŞAN, PERSONEL ilişkisi, nitelik
Dno Bir çalışanın görev aldığı bölüme gelir; Dolayısıyla, tayin Dno
bir yabancı anahtar olarak İŞÇİ, ÇALIŞAN, PERSONEL referans BÖLÜM ilişkisi. Bu, bir değer anlamına gelir Dno herhangi demet
içinde t 1 arasında İŞÇİ, ÇALIŞAN, PERSONEL ilişki bir değerle aynı olmalıdır
73
74
Bölüm 3 İlişkisel Veri Modeli ve İlişkisel Veritabanı Kısıtları
birincil anahtar BÖLÜM -the Dnumber öznitelik-bazı tuple t 2 arasında
BÖLÜM ilişki ya da değeri Dno BOŞ olabilir çalışanın bir bölüme ait olmayan ya da geç bir bölüm
tahsis edilecektir. Örneğin, Şekil 3.6 'John Smith' bu bölüm için çalıştığını belirten John Smith'in
'referanslar 'Araştırması' bölümü için tanımlama grubu çalışanı için tanımlama grubu, içinde. Dikkat
yabancı anahtar olabilir ki Kendi ilişkisi bakın. Örneğin, özelliği
Super_ssn içinde İŞÇİ, ÇALIŞAN, PERSONEL Bir çalışan amiri belirtir; Bu bir demet ile temsil edilen
başka çalışanın olduğu İŞÇİ, ÇALIŞAN, PERSONEL ilişkisi. Bu nedenle, Super_ssn başvuran yabancı
anahtar İŞÇİ, ÇALIŞAN, PERSONEL ilişkisi kendisi. Şekil 3.6 'Franklin Wong' denetçisi olduğuna işaret
John Smith'in 'referansları çalışan için demet 'Franklin Wong,' çalışan için demet içinde John Smith'in.'
Yapabiliriz diyagram tutarlılığını kısıtlamaları görüntüler başvurduğu ilişkisi her bir yabancı
anahtarından yönlendirilmiş bir yay çizerek. Netlik sağlamak için, ok başvurulan ilişki birincil anahtarı
işaret edebilir. Şekil 3.7 Bu şekilde görüntülenen bilgi tutarlılığı kısıtlamaları ile, Şekil 3,5 şema
göstermektedir. Tüm bütünlük kısıtlamaları ilişkisel veritabanı şeması üzerinde belirtilmelidir (yani
kendi tanımının bir parçası olarak tanımlanır) biz veritabanı devletler bu kısıtlamaları uygulamak
istiyorsanız. Dolayısıyla, DDL DBMS otomatik onları uygulamak, böylece kısıtlamaları çeşitli
belirtilmesine ilişkin hükümleri kapsar. Çoğu ilişkisel DBMSs anahtarı, varlık bütünlüğü ve tutarlılığını
kısıtlamaları destekler. Bu kısıtlamalar, DDL veri tanımlama bir parçası olarak belirtilir.
Kısıtlı 3.2.5 diğer türleri
onlar en veritabanı uygulamalarında meydana çünkü önceki bütünlük kısıtlamaları veri tanımlama
dili dahildir. Ancak, bazen denilen genel kısıtlamaları büyük sınıfını dahil değildir anlamsal bütünlük
kısıtlamaları,
burada belirtilmiş ve bir ilişkisel veritabanı üzerinde uygulanacak gerekebilir. bu tür kısıtlamalar
örnekleri Bir çalışanın maaş çalışanın amiri maaşını geçmemelidir ve Bir çalışanın haftada tüm
projeler üzerinde çalışabilirsiniz saat maksimum sayısı 56 olduğunu. Böyle kısıtlamalar veya genel
amaçlı kullanılarak belirlenen ve veritabanını güncellemek uygulama programları içinde zorunlu
olabilir
kısıt belirtim dili. denilen Mekanizmaları tetikleyiciler ve iddialar kullanılabilir. SQL, Onaylama
CREATE ve CREATE TRIGGER ifadeleri bu amaçla kullanılabilir (bkz Bölüm 5). ikincisi kullanmak
bazen zor ve karmaşık olduğu için biz Bölüm 26.1 tartışmak gibi, kısıt şartname dilleri kullanmak
üzere daha uygulama programlarından kısıtlamalar bu tür kontrol etmek için daha yaygındır.
Başka bir engel türüdür fonksiyonel bağımlılık niteliklerin iki takım arasında fonksiyonel bir ilişki
kurar kısıt, X ve Y. Bu sınırlama, o değerini belirtir X eşsiz bir değerini belirler Y bir ilişki her
eyalette; işlevsel bir bağımlılık olarak ifade edilmektedir X → Y. Biz ilişkisel tasarımların kalitesini
analiz etmek ve onların kalitesini artırmak için ilişkilerini “normalleştirmek” için fonksiyonel
bağımlılıkları ve Bölüm 15 bağımlılıkları diğer türlerini ve araçları gibi 16 kullanırlar.
3.3 Güncelleme İşlemler, İşlemler, ve Kısıtlama İhlalleri ile başa çıkmak
İŞÇİ, ÇALIŞAN, PERSONEL
fname Minit
Lname Ssn Bdate
Adres Seks
Maaş
Super_ssn Dno
BÖLÜM
Dname Dnumber Mgr_ssn Mgr_start_date
DEPT_LOCATIONS
Dlocation
Dnumber
PROJE
pname Pnumber
Plocation
Dnum
WORKS_ON
ESSN
pno
Saatler
Şekil 3.7
BAĞIMLI
ESSN
Dependent_name Seks Bdate
Bilgi tutarlılığı kısıtlamaları ŞİRKET ilişkisel
ilişki
veritabanı şeması üzerinde görüntülenen.
kısıtların türleri şimdiye kadar çağrılabilir tartışılan devlet kısıtlamaları bunlar kısıtlamaları bir tanımlamak
için geçerli devlet veritabanı yerine getirmelidir. denilen kısıtlama, başka tür, Geçiş kısıtlamaları, veritabanında
durum değişiklikleri ile başa çıkmak için tanımlanabilir. 11 bir geçiş kısıtlamasının bir örneği: “bir çalışanın
maaş sadece artırabilir.” Kısım 26.1 tartışmak Bu gibi kısıtlamalar, tipik olarak, aktif kuralları ve
tetikleyicileri kullanarak uygulama programları tarafından uygulanan veya belirlenir.
3.3 Güncelleme İşlemler, İşlemler ve Kısıtlama İhlalleri
ile başa çıkmak
ilişkisel modelin operasyonları içine kategorize edilebilir alımların ve
güncellemeler. belirtmek için kullanılabilir ilişkisel cebir işlemleri, bilgi sağlamayı,
Bölüm 6. ilişkisel cebir sentezleme ilişkiler mevcut bir dizi cebirsel operatörleri bir dizi uygulamadan
sonra yeni bir ilişki oluşturur ayrıntılı olarak ele alınmaktadır; ana kullanım bilgilerini almak için bir
veritabanı sorgulama içindir. kullanıcı ilgisinin verileri belirten bir sorgu formüle ve yeni bir ilişki bu
verileri almak için ilişkisel operatörler uygulanarak oluşturulur. o sonuç ilişkisi olur
11
Devlet kısıtları bazen denir Statik kısıtlamaları, ve geçiş kısıtlamaları bazen adlandırılır Dinamik kısıtlamalar.
75
76
Bölüm 3 İlişkisel Veri Modeli ve İlişkisel Veritabanı Kısıtları
cevap (ya da sonuçlanabilir) kullanıcının sorgusuyla. Bölüm 6, aynı zamanda işlemlerin spesifik bir emri
vermeden bildirimli yeni bir ilişki tanımlamak için kullanılan ilişkisel analiz denilen dili, getirmektedir. Bu
bölümde, veritabanı üzerinde yoğunlaşmak değişiklik veya Güncelleme operasyonlar. Orada
veritabanında ilişkilerin durumlarını değiştirebilir üç temel işlemler şunlardır: Ekleme, Silme ve
Güncelleme (veya Değiştirme). Onlar, yeni veri eklemek eski verileri silme veya mevcut veri kayıtlarını
değiştirin. Ekle Bir bağlı olarak bir veya daha fazla yeni dizilerini eklemek için kullanılır, silmek , Tupleları
silmek için kullanılır ve Güncelleme ( veya Değiştir) Varolan küpe bazı özelliklerin değerlerini
değiştirmek için kullanılır. bu işlemler uygulanır zaman, ilişkisel veritabanı şeması üzerinde belirtilen
bütünlük kısıtlamaları ihlal edilmemelidir. Bu bölümde bu operasyonlar ve bir operasyon ihlal neden
olursa alınabilir eylemlerin türlerinin her biri tarafından ihlal edilebilir kısıtlamaları türlerini tartışır. Biz
örnekler için Şekil 3.6'da gösterilen veritabanını kullanmak ve tek anahtar kısıtlamaları, varlık bütünlüğü
kısıtlamaları ve Şekil 3.7 de gösterilen tutarlılığını kısıtlamaları tartışmak. işlemi türünün için, bazı
örnekler vermek ve her işlem ihlal edebilecek herhangi kısıtlamaları tartışmak.
Ekleme işlemi 3.3.1
Ekle operasyon yeni bir başlığın için bir nitelik değerleri listesi sağlar t bir ilişki içine sokulacak
olan R. Takın önceki bölümde tartışılan kısıtlamalar dört tip herhangi birini ihlal edebilir. Bir özellik
değeri karşılık gelen etki görünmez verilen uygun veri türü değil ise Alan kısıtlamaları ihlal
edilebilir. Anahtar kısıtlamaları ihlal edilebilirse yeni demet içinde bir anahtar değeri
t Zaten ilgili olarak başka başlığın var R (R '). Varlık bütünlüğü ihlal edilebilirse yeni başlığın birincil anahtar
herhangi bir parçası t dır-dir BOŞ. Bilgi tutarlılığı ihlal edilebilirse herhangi bir yabancı anahtarının değeri de t
Başvurulan ilgili olarak varolmayan bir tuplea ifade eder. İşte bu tartışmayı göstermek için bazı örnekler
verilmiştir.
■
Operasyon:
< 'Cecilia', 'F', 'Kolonsky' yerleştirin, BOŞ, '1960/04/05', '6357 rüzgarlı Lane, Katy, TX', F, 28000, BOŞ, 4> içine İŞÇİ,
ÇALIŞAN, PERSONEL.
Sonuç: Bu ekleme varlık bütünlük kısıtlaması (ihlal BOŞ Birincil anahtar Ssn), bu nedenle
reddedilir.
■
Operasyon:
içine < 'Alicia', 'J', 'Zelaya'yı', '999887777', '1960/04/05', '6357 rüzgarlı Lane, Katy, TX', F, 28000, '987654321', 4>
yerleştirin İŞÇİ, ÇALIŞAN, PERSONEL.
Sonuç: Bu ekleme aynı olan başka bir demet çünkü anahtar kısıtlamasını ihlal ssn değer zaten
var İŞÇİ, ÇALIŞAN, PERSONEL ilişkisi ve bu nedenle reddedilir.
■
Operasyon:
içine < 'Cecilia', 'F', 'Kolonsky', '677678989', '1960/04/05', '6357 rüzgarlı, Katy, Teksas', F, 28000,
'987654321', 7> takın İŞÇİ, ÇALIŞAN, PERSONEL.
Sonuç: Bu ekleme belirtilen bilgi tutarlılığı kısıtlamayı ihlal
Dno içinde İŞÇİ, ÇALIŞAN, PERSONEL Hiçbir karşılık gelen başvurulan tanımlama grubu var olduğundan
BÖLÜM ile Dnumber = 7.
3.3 Güncelleme İşlemler, İşlemler, ve Kısıtlama İhlalleri ile başa çıkmak
■
Operasyon:
< 'Cecilia', 'F', 'Kolonsky' yerleştirin '677678989', '1960/04/05', '6357 Windy Lane, Katy, Teksas', F, 28000, BOŞ, 4>
içine İŞÇİ, ÇALIŞAN, PERSONEL.
Sonuç: Kabul edilebilir, böylece bu takma, tüm kısıtlamalar karşılamaktadır. Bir ekleme Bir veya
daha fazla kısıtlamaları ihlal ediyorsa, varsayılan seçenek etmektir sokulmasını reddeder. DBMS
yerleştirme reddedildi neden olarak kullanıcıya bir neden olabilir, bu durumda, faydalı olacaktır. Başka bir
seçenek girişiminde etmektir ekleme reddetme nedenini düzeltin, ama bu genellikle Ekle kaynaklanan
ihlaller için kullanılmaz; daha ziyade Sil ve Update ihlallerini düzeltmek daha sık kullanılır. İlk
operasyonda, DBMS için bir değer sağlamak için kullanıcı sorabilirsiniz
ssn, ve sonra geçerli ise yerleştirilmesini kabul edebileceğini ssn değeri sağlanır. operasyonda 3'te DBMS ya
değerini değiştirmek için kullanıcı sorabilirsiniz Dno bazı geçerli değere (veya ayarlayın BOŞ), ya da bir
takmasını sorabilirsiniz BÖLÜM ile tanımlama grubu
Dnumber = 7 ve böyle bir operasyon kabul edildi ancak sonra orijinal ekleme kabul başladı. Ekleme
ihlali ikinci durumda o olabilir dikkat edin Çağlayan geri dönüş İŞÇİ, ÇALIŞAN, PERSONEL ilişki kullanım
için bir değer ile bölüm 7 için bir başlığın eklemeye çalışırsa Mgr_ssn ki yok İŞÇİ, ÇALIŞAN, PERSONEL ilişkisi.
Sil Operasyonu 3.3.2
silmek işlem yalnızca bilgi tutarlılığını ihlal edebilir. silinmeden tanımlama grubu veritabanındaki
diğer dizilerini yabancı anahtarları tarafından başvuruda bulunulan bu oluşur. Silme belirtmek için,
ilişkinin niteliğine bir durum tuple (veya tuples) Silinecek seçer. İşte bazı örnekler.
■
Operasyon:
silmek WORKS_ON ile tanımlama grubu ESSN = '999887777' ve pno = 10.
Sonuç: Bu silme işlemi olarak kabul edilebilir ve tam bir başlığın siler.
■
Operasyon:
silmek İŞÇİ, ÇALIŞAN, PERSONEL ile tanımlama grubu ssn = '999887777'.
Sonuç: demetler de vardır, bu silme, kabul edilemez
WORKS_ON bu başlığın bakın. Bu nedenle, demet eğer İŞÇİ, ÇALIŞAN, PERSONEL silinir, bilgi
tutarlılığı ihlalleri sonuçlanacaktır.
■
Operasyon:
silmek İŞÇİ, ÇALIŞAN, PERSONEL ile tanımlama grubu ssn = '333445555'.
Sonuç: katılan tanımlama grubu JOIN tarafından başvurulan olduğu için bu silme, daha da
kötüsü bilgi tutarlılığı ihlalleri ile sonuçlanacaktır ÇALIŞAN, BÖLÜMÜ, WORKS_ON, ve BAĞIMLI
ilişkiler.
bir silme işlemi ihlali neden olursa pek çok seçenek vardır. denilen İlk seçenek, kısıtlamak, etmektir
Silme reddetmek. denilen İkinci seçenek, Çağlayan, etmektir Silme kaskad girişimi (ya da yaymak)
silinirken başlığın referans dizilerini silerek. Örneğin, operasyonda 2, DBMS otomatik kusurlu
dizilerini silebilir WORKS_ON ile ESSN = '999887777'. denilen Üçüncü bir seçenek, set boş veya Varsayılana
ayarla, etmektir referans özellik değerleri değiştirmek bu ihlaline yol; her bir değeri, ayarlanır BOŞ ya
da referans olarak değiştirildi
77
78
Bölüm 3 İlişkisel Veri Modeli ve İlişkisel Veritabanı Kısıtları
Başka bir varsayılan geçerli tanımlama grubu. Dikkat ihlali neden olan bir referans niteliği olması durumunda Birincil
anahtar bir parçası, o yapamam ayarlanmalıdır BOŞ; aksi takdirde varlık bütünlüğünü ihlal eder.
Bu üç seçenekten kombinasyonları da mümkündür. Örneğin, bir ihlal neden işlemi 3 önlemek için,
DBMS otomatik tüm dizilerini silebilir
WORKS_ON ve BAĞIMLI ile ESSN = '333445555'. içinde tuples İŞÇİ, ÇALIŞAN, PERSONEL ile
Super_ssn = '333445555' ve tanımlama grubu içinde BÖLÜM ile Mgr_ssn = '333445555' onların olabilir Super_ssn
ve Mgr_ssn değerleri geçerli başka değerlere veya değiştirildi
BOŞ. mantıklı olsa da otomatik olarak silmek için WORKS_ON ve
BAĞIMLI Bir bakın tuples İŞÇİ, ÇALIŞAN, PERSONEL tanımlama grubu, diğer silmek mantıklı olmayabilir İŞÇİ, ÇALIŞAN, PERSONEL demetler
veya BÖLÜM tanımlama grubu.
Genel olarak, bir bilgi tutarlılığı kısıtlaması DDL belirtildiğinde, DBMS veritabanı tasarımcısı
sağlayacak belirtmek seçeneklerden hangisinin constraint.We ihlali durumunda geçerlidir 4.
Bölümde SQL DDL bu seçenekleri nasıl belirtileceği tartışmak.
Güncelleme Operasyonu 3.3.3
Güncelleme ( veya Değiştir) işlem bir ilişkiyi gösteren bir demet içinde bir ya da daha fazla özelliğe
değerleri (ya da dizilerini) değiştirmek için kullanılır R. Başlığın (veya dizilerini) değiştirilecek seçmek
ilişkin vasıflarını bir koşul belirtmek gerekir. İşte bazı örnekler.
■
Operasyon:
maaşını güncelleyin İŞÇİ, ÇALIŞAN, PERSONEL ile tanımlama grubu ssn = 28000 için '999887777'.
Sonuç: Kabul edilebilir.
■
Operasyon:
güncelleme Dno arasında İŞÇİ, ÇALIŞAN, PERSONEL ile tanımlama grubu ssn = 1 '999.887.777.'
Sonuç: Kabul edilebilir.
■
Operasyon:
güncelleme Dno arasında İŞÇİ, ÇALIŞAN, PERSONEL ile tanımlama grubu ssn = 7'den '999.887.777.'
Sonuç: Kabul edilemez, bu bilgi tutarlılığını ihlal ettiğinden.
■
Operasyon:
güncelleme ssn arasında İŞÇİ, ÇALIŞAN, PERSONEL ile tanımlama grubu ssn = '999887777' '987654321' için.
Sonuç: Kabul edilemez, daha önce başka bir başlığın bir birincil anahtar olarak var olan bir
değeri tekrar birincil anahtar kısıtlaması ihlal ettiği; mevcut değerine atıfta bulunan başka
ilişkiler vardır çünkü tutarlılığını kısıtlamaları ihlal Ssn.
olan bir özelliği Güncellenmesi Birincil anahtarın ne de yabancı bir anahtarın ne parçasıdır genellikle hiçbir
soruna neden; DBMS yeni değer doğru veri tipi ve etki alanının olduğunu onaylamak için işaretleyin yeterlidir.
Birincil anahtar değeri değiştirme bir tuple silme ve biz dizilerini tanımlamak için birincil anahtar kullandıkları için
onun yerine başka bir ekleme benzer. Bu nedenle, sorunlar her iki bölümde daha önce tartışıldığı 3.3.1
(ekleme) ve
3.3.2 (Sil) devreye girer. Yabancı bir anahtar özellik değiştirilirse, DBMS gerekir
3.4 Özet
Yeni değer başvurulan ilişkili olarak varolan tuplea eder (ya ayarlı olduğundan emin olun BOŞ). Benzer
seçenekleri Sil operasyon için tartışılan bu seçenekler olarak Güncellemesi neden bilgi tutarlılığı
ihlalleri ile başa çıkmak için mevcuttur. Bir bilgi tutarlılığı kısıtlaması DDL belirtildiğinde Aslında,
DBMS kullanıcı Sil neden olduğu bir ihlal ve Güncellemesi neden olduğu bir ihlal başa ayrı seçenek
seçmesine olanak tanır (bakınız Kısım 4.2).
İşlem Kavramı 3.3.4
ilişkisel veri tabanına karşı çalışan bir veri tabanı uygulama programı, tipik olarak bir veya daha
fazla çalıştırır işlemler. bir işlem Böyle veritabanından okuma veya veritabanına ekleme, silme
veya güncellemeleri uygulamak gibi bazı veritabanı işlemleri içerir bir yürütme programıdır. İşlemin
sonunda, veritabanı şeması üzerinde belirtilen tüm kısıtlamalar karşılayan geçerli bir veya tutarlı
durumda veritabanı terk etmelidir. Tek bir işlem alma işlemleri herhangi bir sayıda içeren (Bölüm
6'da ilişkisel cebir bir parçası olarak ele alınacak ve bölüm 4 dil SQL bir parçası ve 5 gibi) olabilir
güncelleştirme işlemleri ve herhangi bir sayıda. Bu alımların ve güncellemeleri birlikte veritabanına
karşı çalışma atom birimini oluşturacaktır. Örneğin, bir işlem genellikle kullanıcı hesabı kaydını
okuyacak bir banka çekilmesi uygulamak için, yeterli bir denge olup olmadığını kontrol edin ve
ardından geri çekme miktarına göre kayıt güncelleme.
ilişkisel veritabanlarına yönelik çalışan ticari uygulamalar çok sayıda
Online işlem (OLTP) Sistemler saniyede birkaç yüz ulaşmak fiyatla işlem yapan edilmektedir.
İşlem gerçekleştirme kavramları, eşzamanlı işlemlerin yürütülmesi ve arızalardan kurtarma 21 ile
23 Bölüm olarak ele alınacaktır.
3.4 Özet
Bu bölümde modelleme kavramları, veri yapıları ve veri ilişkisel modeli tarafından sağlanan
kısıtlamaları sundu. Biz etki, nitelikler ve dizilerini kavramlarını tanıtarak başladı. Sonra, bir ilişkinin
yapısını tanımlayan özelliklerin listesi olarak bir ilişki şema tanımlanır. Bir ilişki ya da ilişki durumu,
şemaya uygun dizilerini kümesidir.
Çeşitli özellikler sıradan tablolar veya dosyalardan ilişkilerini ayırt. Önce bir ilişki dizilerini
sıralamaya duyarlı olmamasıdır. İkinci bir ilişki şemada niteliklerin sipariş ve başlığın içindeki
değerlerin gelen sipariş içerir. Biz bu iki orderings gerektirmeyen ilişki alternatif tanımını verdi ama
biz kolaylık olması için, sipariş edilmesi özelliklerini ve tanımlama grubu değerlerini gerektiren ilk
tanımı, kullanmaya devam etti. Sonra, küpe değerleri tartışılmış ve tanıtılan BOŞ değerleri eksik
veya bilinmeyen bilgiyi temsil etmek. Biz vurguladı BOŞ değerler mümkün olduğunca kaçınılmalıdır.
Biz başka türlü semantik kısıtlamaları veya iş kuralları olarak bilinen, doğal model tabanlı
kısıtlamaları açık şema tabanlı kısıtlamalar ve uygulama bazlı kısıtlamalar içine veritabanı kısıtları
sınıflandırılmış. Sonra, şema kısıtlamaları ele
79
80
Bölüm 3 İlişkisel Veri Modeli ve İlişkisel Veritabanı Kısıtları
İlişkisel modele ait SuperKey, aday anahtarının ve birincil anahtar kavramları içeren alanı daha
sonra kısıtlamaları, anahtar kısıtlamaları, ile başlayan ve
GEÇERSİZ DEĞİL niteliklerini sınırlamak. Biz ilişkisel veri tabanları ve ilişkisel veritabanı şemaları
tanımlanır. Ek ilişkisel kısıtlamaları olmaktan birincil anahtar özelliklerini yasaklar varlık bütünlük
kısıtlaması içerir BOŞ. Farklı ilişkilerden dizilerini arasında referansların tutarlılığı korumak için
kullanılan ilişki tutarlılığı kısıtlamasına tarif.
ilişkisel model üzerinde değişiklik işlemleri Ekle, Sil ve Update vardır. Her işlem kısıtlamaları bazı
tipleri (Bölüm 3.3 bakınız) ihlal edebilir. Bir işlem uygulandığı zaman, yürütüldüğünde ameliyattan
sonra veritabanı devlet hiçbir sınırlama ihlal edildiğini olmadığı kontrol edilmelidir. Son olarak, biz
veritabanı üzerinde tek atom eyleme çeşitli veritabanı işlemleri gruplandırma izin verdiğinden
ilişkisel veritabanı yönetim sistemlerinde önemli olan bir işlem, kavramını ortaya.
İnceleme Soruları
3.1. onlar verilerin ilişkisel modeli için geçerli olduğu gibi, aşağıdaki terimler tanımlayın:
alan, özelliği, n-li, ilişki şeması, ilişki durumu, bir ilişkinin derecesi, ilişkisel veritabanı
şeması, ve ilişkisel veritabanı durumu.
3.2. Neden ilişkin küpe değil sıralanır?
3.3. Neden yinelenen demetler bir ilişki içinde izin verilmez?
3.4. Bir anahtar ve bir SuperKey arasındaki fark nedir?
3.5. Neden pri- olmak için ilişki aday tuşlarından birine tayin yok
mary anahtar?
3.6. ordi- farklı yapan ilişkilerinin özelliklerini tartışır
nary tabloları ve dosyaları.
3.7. oluşumuna yol çeşitli nedenler tartışın BOŞ değerler
ilişkiler.
3.8. varlık bütünlüğü ve tutarlılığını kısıtlamaları tartışır. Neden her biri
önem?
3.9. Tanımlamak yabancı anahtar. Bu kavram ne için kullanılır?
3.10. Bir işlem nedir? Nasıl bir Güncelleme işlemi farkı nedir?
Egzersizler
3.11. Aşağıdaki Güncelleme operasyonlarının her birine doğrudan uygulanır varsayalım
Şekil 3.6 gösterilen veri tabanı durumu. tartışmak herşey bütünlük her operasyon ihlal
kısıtlamalar varsa ve bu kısıtlamaları uygulamak için farklı yollar.
Egzersizler
a. < 'Robert', 'F', 'Scott', '943775543', '1972/06/21', '2365 Newcastle Rd takın
Bellaire, Teksas', E, 58000, '888665555', 1> içine İŞÇİ, ÇALIŞAN, PERSONEL.
b. Yerleştirin < 'productÃ', 4, 'Bellaire', 2> içine PROJE.
c. içine < 'Üretim', 4 '943775543', '2007-10-01'> yerleştirin BÖLÜM.
d. Yerleştirin < '677678989', BOŞ, '40 0,0' > içine WORKS_ON.
e. içine < '453453453', 'John', 'M', '1990/12/12', 'eş'> yerleştirin BAĞIMLI.
f. silmek WORKS_ON ile demetler ESSN = '333445555'.
g. silmek İŞÇİ, ÇALIŞAN, PERSONEL ile tanımlama grubu ssn = '987654321'.
h. silmek PROJE ile tanımlama grubu pname = 'ProductX'.
ben. Değiştirmek Mgr_ssn ve Mgr_start_date arasında BÖLÜM ile tanımlama grubu
Dnumber = sırasıyla '123456789' ve '2007-10-01', 5.
j. Değiştirmek Super_ssn öznitelik İŞÇİ, ÇALIŞAN, PERSONEL ile tanımlama grubu ssn =
'999887777' '943775543' için.
k. Değiştirmek Saatler öznitelik WORKS_ON ile tanımlama grubu ESSN =
'999887777' ve pno = 10 '5.0' için kullanılır.
3.12. Yi hesaba kat HAVAYOLU Şekil 3.8, gösterilen ilişkisel veritabanı şeması olan
havayolu uçuş bilgisi için bir veri tabanı açıklar. Her biri UÇUŞ bir ile tanımlanır Uçuş numarası, ve
bir veya daha fazlasından oluşmaktadır FLIGHT_LEG s ile
Leg_number s 1, 2, 3, ve böyle devam eder. Her biri FLIGHT_LEG planlanan varış ve kalkış saatleri,
havaalanları, ve bir veya daha fazla sahip LEG_INSTANCE her s-on
Tarih, randevu, biriyle çıkmak üzerinde uçuş hareket eder. ÜCRET s'nin her biri için tutulur UÇUŞ. Her biri için
FLIGHT_LEG örnek, misal, olay, durum, KOLTUK REZERVASYONU gibi s tutulur UÇAK
Bacak ve gerçek varış ve kalkış saatleri ve havaalanları üzerindeki kullandı. bir
UÇAK bir ile tanımlanır Airplane_id ve belirli bir ait
AIRPLANE_TYPE. CAN_LAND ile ilgilidir AIRPLANE_TYPE s HAVALİMANI onlar iniş yapabilecek hangi s. bir HAVALİMANI
bir ile tanımlanır AIRPORT_CODE. için bir güncelleştirme düşünün HAVAYOLU Veritabanı belirli bir tarihte
belirli bir uçuş veya uçuş bacağında bir rezervasyon girmek için.
a. Bu güncelleştirme için operasyonlarını verin.
b. kısıtların ne tür kontrol etmek beklenebilir?
c. anahtar, varlık bütünlüğü ve referans bu kısıtların hangileri
bütünlük kısıtlamaları ve hangi değil mi?
d. şema üzerinde tutun tüm tutarlılığını kısıtlamaları belirtin
Şekil 3.8'de gösterilen.
3.13. ilişkiyi düşünün SINIF (Ders #, Univ_Section #, Instructor_name,
Dönem, Building_code, Room #, TIME_PERIOD, Hafta içi, Credit_hours). Bu benzersiz ile bir
üniversitede öğretilen dersleri temsil Univ_section # s. Çeşitli aday tuşları olması gerektiğini
düşünüyorum olduklarını belirle ve kendi kelimelerinizle her aday anahtarı geçerli olacaktır
koşullar veya varsayımlar yazmak.
81
Bölüm 3 İlişkisel Veri Modeli ve İlişkisel Veritabanı Kısıtları
82
HAVALİMANI
AIRPORT_CODE
Şehir Eyalet Ad
UÇUŞ
FLIGHT_NUMBER Havayolu Haftaiçi
FLIGHT_LEG
Leg_number
Uçuş numarası
SCHEDULED_DEPARTURE_TIME
DEPARTURE_AIRPORT_CODE
Scheduled_arrival_time
ARRIVAL_AIRPORT_CODE
LEG_INSTANCE
Leg_number
Uçuş numarası
Tarih Number_of_available_seats
Hareket saati
DEPARTURE_AIRPORT_CODE
Airplane_id
ARRIVAL_AIRPORT_CODE
Varış zamanı
ÜCRET
Uçuş numarası
Fare_code
Miktar
Kısıtlamalar
AIRPLANE_TYPE
Airplane_type_name Max_seats
şirket
CAN_LAND
Airplane_type_name AIRPORT_CODE
UÇAK
Airplane_id
Total_number_of_seats
Airplane_type
KOLTUK REZERVASYONU
Uçuş numarası
Leg_number
Tarih: SEAT_NUMBER
Müşteri adı
Customer_phone
Şekil 3.8
HAVAYOLU ilişkisel veritabanı şeması.
3.14. Bir sipariş işleme veritabanı için aşağıdaki altı ilişkileri düşünün bilgiye ulaşımdır
bir şirkette katyon:
MÜŞTERİ (Cust #, Cname, Şehir) SİPARİŞ (Sipariş #,
Odate, Cust #, Ord_amt) ORDER_ITEM (Sipariş #, Ürün #,
Adet)
Egzersizler
MADDE (Madde #, UNIT_PRICE) SEVKİYAT (Sipariş #, Depo
#, Ship_date) DEPOSU (Depo #, Şehir)
İşte, Ord_amt Bir sipariş toplam dolar miktarına karşılık gelir; Odate siparişin verildiği tarihtir;
ve Ship_date depodan gelen tarih (bir siparişin ya da bir kısmı) bir sırasıdır. bir emir birçok
depolarından sevk edilebilir varsayın. Yaptığınız varsayımları belirterek, bu şema için
yabancı anahtarları belirtin. Bu veritabanı için başka hangi kısıtlamalar düşünebilirsiniz?
3.15. iş izler bir veritabanı için aşağıdaki ilişkileri düşünün
Bir satış ofisinde satış görevlilerinden gezileri:
SATIŞ GÖREVLİSİ (Ssn, Ad, START_YEAR, Dept_no) AÇMA (Ssn, FROM_CITY, TO_CITY, DEPARTURE_DATE,
RETURN_DATE, Trip_id) DER (Trip_id, Hesap #, Tutar)
Bir gezi, bir veya daha fazla hesapta şarj edilebilir. Yaptığınız varsayımları belirterek, bu şema
için yabancı anahtarları belirtin.
3.16. Öğrencinin izler bir veritabanı için aşağıdaki ilişkileri düşünün
kurslarda kayıt ve her ders için benimsenen kitaplar:
ÖĞRENCİ (Ssn, Ad, Binbaşı, Bdate) DERS (Ders #, Cname,
Bölümü), (SSN KAYIT Ders #, Çeyrek, Derece) BOOK_ADOPTION
(Ders #, Çeyrek, Book_isbn) METİN (Book_isbn, BOOK_TITLE,
Publisher, Yazar)
Yaptığınız varsayımları belirterek, bu şema için yabancı anahtarları belirtin.
3.17. otomotiv tip izler bir veritabanı için aşağıdaki ilişkileri düşünün
Bir araba bayilik safra satış ( SEÇENEĞİ ) Otomobil yüklü bazı isteğe bağlı donanımları
ifade eder:
ARAÇ (Serial_no, Model Üretici, Fiyat) SEÇENEĞİ (Serial_no, Option_name,
Fiyat) SATIŞ (Salesperson_id, Serial_no, Tarih, indirimli_fiyat)
SATIŞ GÖREVLİSİ (Salesperson_id, Ad, Telefon)
İlk olarak, yaptığınız varsayımları belirterek, bu şema için yabancı anahtarları belirtin. Ardından
birkaç örnek dizilerini ile ilişkileri doldurmak ve ardından bir yerleştirme örneğini vermek SATIŞ ve
SATİS ELEMANİ ilişkileri olduğunu
ihlal bilgi tutarlılığı kısıtlamaları ve değil başka ekleme.
3.18. Veritabanı tasarımı genellikle niteliklerin depolanması ile ilgili kararlar içermektedir. İçin
örnek bir Sosyal Güvenlik numaralı niteliği olarak depolanan veya üç özelliğin (Sosyal
Güvenlik numarası-XXX-XX-XXXX sayıların üç tire-tarif gruplarının her biri için bir tane)
bölünebilir. Ancak, Sosyal Güvenlik numaraları genellikle sadece bir niteliği olarak temsil
edilir. Karar
83
84
Bölüm 3 İlişkisel Veri Modeli ve İlişkisel Veritabanı Kısıtları
veritabanı nasıl kullanılacağını dayanmaktadır. Bu egzersiz SSN bölünmesi yararlıdır nerede
belirli durumlar hakkında düşünmek ister.
3.19. düşünün bir ÖĞRENCİ bir de ilişki ÜNİVERSİTE Aşağıdaki ile veritabanı
Öznitellikler ( Ad, Ssn, Local_phone, Adresi, Cell_phone, Yaş, GPA). Cep telefonu yerel
telefondan farklı bir şehir ve eyalet (veya ili) den olabileceğini unutmayın. ilgili olası bir
demet, aşağıda gösterilmiştir:
isim
ssn
George Shaw
123-45-6789 555-1234
Local_phone Adresi
William Edwards
123 Main St.,
Cell_phone Yaş GPA
555-4321
19
3.75
Anytown, CA 94539
a. dan kritik eksik bilgileri tanımlayın Local_phone ve
Cep telefonu Öznitellikler. ( İpucu: Eğer farklı bir devlet veya ilde yaşayan biri diyorsunuz
nasıl?)
b. Eğer bu ek bilgileri depolamak misiniz Local_phone ve
Cep telefonu nitelikleri veya ait şemayla yeni özellikler eklemek ÖĞRENCİ?
c. Yi hesaba kat isim bağlıyor. Avantajları ve dezavantajları nelerdir
ayrılma birinden bu alan üç özelliğin (ilk isim, göbek adı ve soyadı) içine öznitelik?
d. Ne zaman saklamak için karar vermek için öneriyoruz genel neler kılavuz
zaman bilgileri bölmek için tek bir öznitelik bilgi ve?
e. Öğrenci 0 ila 5 telefonları olabilir varsayalım. İki farklı- öner
Bu tür bilgileri izin ent tasarımlar.
3.20. gizlilik yasaları son değişiklikler kullanmaktan örgütleri izin vermemiş
Belli sınırlamalar memnun olmadıkça Sosyal Güvenlik numaraları bireylerin belirlenmesi. Sonuç olarak,
çoğu ABD üniversiteleri birincil anahtar gibi (finansal veriler hariç) Sosyal Güvenlik Numaralarını
kullanamazsınız. Uygulamada, Öğrenci Kimliği, Her öğrenciye atanan benzersiz bir tanımlayıcı beri SSN
yerine birincil anahtar olarak kullanılmak üzere muhtemeldir Öğrenci Kimliği sistemde kullanılabilir.
a. Bazı veritabanı tasarımcıları (ayrıca bilinen oluşturulan tuşlarını kullanmak konusunda isteksiz
gibi vekil tuşları) Birincil anahtarlar için (örneğin Öğrenci Kimliği) yapay oldukları için. Eğer bir öğrenci
kaydı tanımlamak için kullanılabilecek anahtarlardan herhangi bir doğal alternatifleri önerme Can ÜNİVERSİTE
Veritabanı?
b. Eğer doğal bir anahtarın benzersizliğini garanti edebiliyoruz varsayalım o
Geçen adını içerir. Eğer soyadı veritabanının ömrü boyunca değişmeyeceği garanti var
mı? soyadı değiştirebilir, yine soyadı içerir ancak benzersiz kalır bir birincil anahtar
oluşturmak için neler çözümler teklif edersin?
c. avantajları ve üretilen kullanarak dezavantajları surro- (nelerdir
gate) tuşları?
Seçilmiş Kaynakça
Seçilmiş Kaynakça
Bağıntısal model, klasik bir kağıt (1970) Codd tarafından ortaya atılmıştır. Codd da ilişkisel cebir
tanıtıldı ve bir dizi makale (Codd 1971, 1972, 1972a, 1974) içinde ilişkisel model için teorik
temellerini; daha sonra ilişkisel modele yaptığı çalışmalarla Turing Ödülü, (for Computing
Machinery Derneği) ACM en büyük onuru verildi. Daha sonraki bir makalede, (1979) Codd ilişkileri
hakkında daha fazla meta-veri, semantikleri, birleştirmek için ilişkisel modeli uzanan ele; o da
ilişkilerde belirsizlik ve birleşmeyle başa üç değerli mantık önerdi BOŞ ilişkisel cebir s. Elde edilen
model, RM / T olarak bilinir. (1968) Childs veritabanlarını modellemek için daha önce kullanılan
ayar teorisi vardı. Daha sonra (1990) Codd ilişkisel veri modeli ve veritabanı sistemlerinin 300'den
fazla özelliklerini inceleyerek bir kitap yayımladı. Tarihi (2001) retrospektif inceleme ve ilişkisel veri
modelinin analizini sağlar.
Codd'un öncü çalışmaları beri birçok araştırma ilişkisel modelin çeşitli yönleri üzerinde
gerçekleştirilmiştir. Todd (1976) doğrudan ilişkisel cebir işlemlerini uygulayan PRTV denilen
deneysel DBMS açıklanır. Schmidt ve Swenson (1975) ilişkilerin farklı sınıflandırarak ilişkisel
modele ek anlambilim tanıtmak. Bölüm 7'de tartışılmıştır Chen'in (1976) Varlık-İlişki modeli,
kavramsal düzeyde bir ilişkisel veritabanı gerçek dünya anlambilim iletişim kurmak için bir araçtır.
Wiederhold ve ELMASRI (1979) onun kısıtlamaları artırmak için ilişkiler arasındaki bağlantıların
çeşitli tanıtmak. ilişkisel modelin Uzantıları, Bölüm 11 ve diğer ilişkisel modelin yönleri ve onun dil,
sistemler, uzantılar için 26. Ek bibliyografik notlarda tartışılır
85
Download