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