Tud Intuit, előadás, azt jelenti, alapjának meghatározására táblázatok és integritását korlátok
Ábra. 12.2. A hierarchia fajta integritás korlátok
Korlátok. meghatározásába beletartoznak az a domain örökli az összes meghatározott oszlopait a következő területekre, és a korlátozások az oszlopok. Továbbá, a meghatározását az oszlop meghatározás tartalmazhat további korlátok. Korlátok. meghatározásába beletartoznak az oszlop (beleértve korlátozás örökölt a domain definíció) a korlátok táblázata meghatározásának, amely magában foglalja egy meghatározását az oszlop. Továbbá, a definíció táblázat magában meghatározó további korlátozásokat.
De a hierarchia típusú korlátok nem ér véget. Korlátok. A definíciós táblázat (beleértve a kifejezett és örökölt meghatározásával domének oszlopok korlátozások) olyan adatbázisok korlátai. amelynek egy része ezt a táblázatot. Előfordulhat továbbá, hogy határozzanak meg további megszorításokat az adatbázisban. Az SQL szabvány, mint további korlátozásokat nevű adatbázist állítását. és nevezzük őket általános integritási kényszerek.
Meghatározása általános integritását korlátok
Ahhoz, hogy megállapítsuk a teljes integritási kényszerek az üzemeltető CREATE állítását. meghatározott szintaxis a következő:
A meghatározása EMP táblázat mutatja a korlátozások EMP_BDATE oszlop:
Ebben a közös logikai állapotok minimum határérték EMP_BDATE oszlopon (születési dátum legrégebbi alkalmazott). Az érték a feltételes kifejezés hamis akkor, ha az alkalmazottak között van legalább egy született ezen időpont előtt.
Most fogalmaznia általános integritási kényszerek limit EMP PRO_EMP_NO asztalra. amelyek meghatározása a következő:
(A projekt nem működik több mint 50 alkalmazottal).
Itt látható a szövege az egyenértékű általános integritását korlátok:
Logikai kifejezés e korlátozás csak akkor értékeit igaz és hamis. Belső mintavételi üzemeltető tartalmaz EMP táblázat sorai olyan, hogy az egyik csoport magában foglalja az összes sort az azonos értékű PRO_NO oszlopon. Ezután ezek a csoportok által szűrt HAVING részben. és csak azokat a csoportokat, amely több mint 50 sor. A kapott táblázatot az egy sorban egy oszlopra, amely az értéket PRO_NO fennmaradó csoportok. Állítmány NEM létezik értéke igaz akkor és csak akkor, ha a kapott táblázat nem tartalmaz egyetlen sort, azaz a. E. nincs projekt, amely több mint 50 alkalmazottal.
Megmutatjuk, hogyan lehet megfogalmazni általános integritási kényszerek korlátozzák az idegen kulcs. Például, adunk egy készítmény meghatározására egyenértékű külső PRO_NO gombot. része a meghatározó táblázat EMP:
Általános integritási kényszerek talán a következőképpen néznek ki:
Logikai kifejezés e korlátozás tűnik, hogy meglehetősen bonyolult és tisztázni kell. Feltételek SELECT lekérni a húr (2) két részből áll kapcsolatot hozott létre. Az első rész az EMP kiszűri a táblázat sorait. aki PRO_NO oszlop NULL. Ha ez az oszlop NULL minden sora a táblában, a táblázat kezelő mintavétel a vonalon (2) üres lesz, és az értéke az állítmány NEM létezik igaz. t. e. kényszer teljesül.
Most tegyük fel, hogy a táblázat EMP találtak emp sor. PRO_NO tartalmazó oszlop eltérő értéket NULL. Hívjuk ezt az értéket cand_pro_no. A második része ez számított feltételek SELECT mintát vonalon (2). üzemeltető mintavevő vezeték (3) PRO kiválasztja az összes sort a táblázat. PRO_NO oszlop értéke, amely egyenlő cand_pro_no. Ha ezt az értéket találtak cand_pro_no legalább egy ilyen húr, az eredmény tábla az üzemeltető a mintán vonal (3) nem üres, és NEM LÉTEZIK állítmány értéket a vonal (3) hamis. Ennek megfelelően, az összes SELECT záradék első üzemeltetője a minta lesz false. és egy string értéket cand_pro_no PRO_NO oszlopban kiszűrésre kerülnek. 16 Ez azt jelenti, hogy egy érvényes értéket cand_pro_no idegen kulcs.
Ha van legalább egy sor, a EMP asztal egy oszlop értéke cand_pro_no PRO_NO. PRO a táblázatban nincs egy sorban, az oszlop értéke PRO_NO amely egyenlő lenne ezt a cand_pro_no. A kapott mintát asztal egy vonalat üzemeltető (3) üres, és NEM LÉTEZIK állítmány érték vonal (3) igaz. Ezután az összes SELECT záradék első üzemeltetője a minta lesz állítva. és ebben a sorban a EMP táblázat átugorja a kapott táblázatban. Az érték az állítmány NEM létezik hamis. t. e. határérték nem teljesül.
Mi szándékosan idézte részletes magyarázatot nem csak, hogy tisztázza a jelentését a feltételes kifejezés teljes megszorítások FK_PRO_NO integritását. hanem az, hogy világossá, hogy valójában mi degenerálódik egyszerű forma meghatározását egy idegen kulcs. A tapasztalat azt mutatja, hogy sok kezdő tervezők SQL-orientált adatbázisok gondolja hivatkozáskorlátozást olyan könnyű fenntartani, hogyan lehet meghatározni.
Végül megfogalmazzuk általános korlát, amely az a tény, hogy nem projektmenedzser kell összárbevétel, több, mint a teljes bevétel a tanszékvezető, ami foglalkoztat a menedzser.
A logikai szempontból ez a korlátozás minta felhasználásával SELECT. listájának megtekintéséhez asztalok (AZ) először ebben természetesen használ több asztal. Az ilyen lekérdezések hívják SQL lekérdezések vegyületekkel, és mi fogja használni ezt a lehetőséget, hogy ismertesse a példa (persze, előre), hogy hogyan kell értelmezni megfelelően a szabványos SQL.
Tehát a FROM záradék az üzemeltető a felhasznált minta a logikai feltétele a korlátozásokat, vesszővel elválasztva felsorolt négy elem - EMP EMP1. EMP EMP2. OSZTÁLY és PRO. Expression típusú EMP ANOTHER_NAME alkalmazását jelenti valamiféle átnevezési művelet. Belül az oszlopok a lekérdezés „másolat” az EMP a „minősített” neveket, mint ANOTHER_NAME.column_name. ahol oszlop_neve a neve egy létező oszlop az EMP asztalra.
Kiszámítása a minta nyilatkozat kezdődik az a tény, hogy a képző kiterjesztett Descartes-szorzat minden hivatkozott táblákból FROM záradék. Ebben az esetben a rész diagram találatból táblázat tartalmazza a következő oszlop nevét: EMP1.EMP_NO. EMP1.EMP_NAME. Emp1. EMP_BDATE. Emp1. EMP_SAL. EMP1.EMP_BONUS. Emp1. DEPT_NO. Emp1. PRO_NO. EMP2.EMP_NO. EMP2.EMP_NAME. EMP2. EMP_BDATE. EMP2. EMP_SAL. EMP2.EMP_BONUS. EMP2. DEPT_NO. EMP2. PRO_NO. DEPT.DEPT_NO. DEPT.DEPT_EMP_NO. DEPT.DEPT_TOTAL_SAL. DEPT.DEPT_MNG. PRO .PRO_NO. PRO .PRO_TITLE. PRO .PRO_SDATE. PRO .PRO_DURAT. PRO .PRO_MNG. PRO_DESC. Az egyszerűség kedvéért nevezzük ezt „széles” tábla ALL_TOGETHER. 17 Ne vegye ezt, és a következő bekezdések, mint egy leírást, hogyan kell ténylegesen elvégezni ezeket a lekérdezéseket SQL-szerver. Ez a legegyszerűbb és nem hatékony módja annak, hogy a kérelem teljesítéséhez (bár elvileg lehet alkalmazni a gyakorlatban). Azért választottuk ezt a leírási módja, ahogy tette a legmegfelelőbb megközelítés az SQL szemantikai leírás vonatkozik a köznyelv. Mellesleg, a fő különbség több gyakorlati módszereket lekérdezésre vegyület a vágy, hogy biztosítsa, hogy ne explicit Descartes-szorzat.
WHERE záradék feltétele négy részből áll kapcsolatot hozott létre. Megbeszéljük velük egymás után. Miután ellenőrizte a feltétel EMP1.EMP_NO = PRO .PRO_MNG asztal ALL_TOGETHER marad valamennyi projekt szolgáló vezetők a projektek együtt a szervezeti egységek és az összes potenciális alkalmazottak (ezt nevezzük a szűrt táblázat ALL_TOGETHER_STEP1). Miután ellenőrizte a feltétel EMP1.DEPT_NO = DEPT.DEPT_NO a ALL_TOGETHER_STEP1 táblázat szolgál majd minden vezető projektek együtt a projektek, és leírásával együtt annak szervezeti egységei együtt az összes alkalmazott (hívjuk ezt a szűrt táblázat ALL_TOGETHER_STEP2). Miután ellenőrizte a feltétel DEPT.DEPT_MNG = EMP2.EMP_NO a ALL_TOGETHER_STEP2 táblázat szolgál majd minden vezető projektek együtt projektek leírásával együtt azok szervezeti egységei, valamint fejekkel együtt e szervek (egy sort minden lehetséges kombinációját „projekt-menedzher_proekta-otdel_menedzhera_proekta- rukovoditel_otdela_menedzhera_proekta „). Ezt hívjuk a szűrt táblázat ALL_TOGETHER_STEP3. Könnyen belátható, hogy ellenőrzése után az állapot EMP1.EMP_SAL + EMP1.EMP_BONUS> EMP2.EMP_SAL + EMP2.EMP_BONUS ALL_TOGETHER_STEP3 a táblázatban is csak addig maradnak-line projekt menedzher_proekta-otdel_menedzhera_proekta-rukovoditel_otdela_menedzhera_proekta. amelyben a teljes projekt menedzser jövedelme meghaladja az összes bevétel a tanszékvezető, ahol a projekt menedzser dolgozik. Ha legalább egy ilyen sor létezik, akkor az eredmény a mintavétel üzemeltető nem üres, NEM létezik állítmány érték hamis. ezáltal korlátozva PRO_MNG_CONSTR integritását megsértjük.