Sql 2018 szerver, adatbáziskezelő rendszer (al)
adatbázisok alkalmazásprogramjai;
adatbázis-kiszolgálók;
a tényleges adatbázis.
Az adatbázis alkalmazás egy speciális célú szoftver, amelyet a felhasználók vagy harmadik fél szoftvergyártó vállalatok fejlesztettek ki és hajtottak végre. Ezzel ellentétben az ügyfélkomponensek az adatbázisfejlesztő cég által kifejlesztett és megvalósított általános célú adatbázisszoftverek. A kliens komponensek segítségével a felhasználók hozzáférhetnek a helyi vagy távoli számítógépen tárolt adatokhoz.
Az adatbázis-kiszolgáló elvégzi az adatbázisban tárolt adatok kezelését. Az ügyfelek interakcióba lépnek az adatbázis-kiszolgálóval, kérések elküldésével. A kiszolgáló feldolgozza az egyes fogadott kéréseket, és elküldi az eredményeket a megfelelő ügyfélnek.
A DBMS jellemzői
Általában az adatbázis két perspektívából - a felhasználó és az adatbázis rendszer - tekinthető meg. A felhasználók az adatbázisot logikailag kapcsolódó adatok csoportjaként láthatják, és egy adatbázis-rendszer számára csak egy sornyi byte, amelyet általában a lemezen tárolnak. Bár két teljesen eltérő nézet létezik, van valami közös a köztük: az adatbázisrendszer nemcsak olyan felületet biztosít, amely lehetővé teszi a felhasználók számára, hogy adatbázisokat hoznak létre és adatokat gyűjtsönek vagy módosíthassanak, hanem a tárolt adatok kezelésére szolgáló rendszerösszetevőket is. Ezért az adatbázis rendszernek a következő opciókat kell biztosítania:
különböző felhasználói interfészek;
az adatok fizikai függetlensége;
az adatok logikai függetlensége;
adatbázis biztonság.
Mindezeket a lehetőségeket a következő szakaszokban röviden ismertetjük.
Számos felhasználói felület
A legtöbb adatbázist úgy tervezték és valósították meg, hogy különböző típusú felhasználókkal dolgozzanak együtt, akik különböző szintű ismeretekkel rendelkeznek. Emiatt az adatbázisrendszernek több különálló felhasználói felületet kell biztosítania. A felhasználói felület grafikus vagy szöveges lehet.
A grafikus interfészeken a bemenet billentyűzeten vagy egéren keresztül történik, és a kimenet grafikusan jelenik meg a monitoron. Az adatbázis-rendszerekben gyakran használt szöveges interfész változata a parancssori interfész, amelyen keresztül a felhasználó a billentyűzeten lévő parancsok segítségével belép a bemenetbe, és a rendszer megjeleníti a kimenetet szöveg formátumban a monitoron.
Az adatok fizikai függetlensége
Az adatok fizikai függetlensége azt jelenti, hogy az adatbázis-alkalmazások nem függenek az adatbázisban tárolt adatok fizikai szerkezetétől. Ez a fontos funkció lehetővé teszi a tárolt adatok módosítását anélkül, hogy az adatbázis-alkalmazásokban módosítani kellene.
Például ha az adatokat először egy kritérium rendelte, majd ezt a rendelést egy másik kritérium megváltoztatta, akkor a fizikai adatok megváltoztatása nem érinti a meglévő adatbázis-alkalmazásokat vagy azok sémáját (az adatbázisrendszer-meghatározási nyelv által létrehozott adatbázis-leírás).
Az adatok logikai függetlensége
Ha a fájlokat hagyományos programozási nyelvek segítségével dolgozza fel, a fájlokat bejelentkezési programok deklarálják, ezért a fájlstruktúrában bekövetkezett változások általában megfelelő változtatásokat tesznek szükségessé az összes program használatára.
A lekérdezések optimalizálása
A legtöbb adatbázisrendszer tartalmaz egy alösszetevőt, az úgynevezett optimalizáló. amely számos lehetséges stratégiát vizsgál meg az adat lekérdezés végrehajtásához és a leghatékonyabbat választja. A kiválasztott stratégiát lekérdezés végrehajtási tervnek nevezik. Az optimalizáló döntést hoz, figyelembe véve olyan tényezőket, mint a lekérdezésre kerülő táblák mérete, a meglévő indexek és a logikai operátorok (ÉS, VAGY vagy NEM) a WHERE klauzulában.
Adatintegritás
Az adatok sértetlenségének biztosítását a felhasználó az alkalmazásban vagy az adatbázis-kezelő rendszerben elvégezheti. A lehető legnagyobb mértékben ezt a feladatot a DBMS segítségével kell végrehajtani.
A párhuzamosság kezelése
Az adatbázis-rendszer egy többfelhasználós szoftverrendszer, ami több felhasználó alkalmazásainak egyszerre való elérését jelenti. Ezért minden adatbázis rendszernek valamilyen típusú mechanizmussal kell rendelkeznie, amely felügyeli a különböző alkalmazások egyszerre történő módosítására irányuló kísérleteket. Az alábbi példa egy olyan probléma, amely akkor fordulhat elő, ha az adatbázis-rendszer nem rendelkezik ilyen irányítási mechanizmussal:
A Bank X 3811-es bankszámláján a bankszámlán 1500 dollár van.
A számlatulajdonosok, Mrs. A és B. úr a bank különböző ágaira lépnek, és egyszerre visszavonják a számláról 750 dollárért.
A 3811 számon fennmaradó összeg a tranzakciók után $ 0 és semmilyen esetben 750 dollár.
Minden adatbázis rendszernek rendelkeznie kell a szükséges mechanizmusokkal az ilyen helyzetek kezelésére, biztosítva a konkurencia kontrollját.
Az adatbázisrendszert fel kell szerelni a szoftver- és hardverhibák után fellépő helyreállítási alrendszerrel. Például ha egy adatbázis nem frissíti az adatbázis táblázat 100 sorát, akkor a helyreállítási motornak vissza kell állítania az összes frissítést, amelyet az adatkonzisztencia biztosítása érdekében végrehajtott.
Adatbázis biztonság
Relációs adatbázis rendszerek
A Microsoft SQL Server adatbázismotor egy relációs adatbázisrendszer. A relációs adatbázisrendszerek koncepcióját 1970-ben mutatta be Edgar F. Codd az "A nagy közös adatbankok adatainak relációs modellje" című cikkében. A korábbi adatbázisrendszerektől (hálózati és hierarchikus) ellentétben a relációs adatbázisrendszerek olyan relációs adatmodellen alapulnak, amely erős matematikai elméletekkel rendelkezik.
Az adatmodell a fogalmak halmaza, a köztük lévő kapcsolatok és korlátaik, amelyek valós idejű feladatokban való megjelenítésére szolgálnak. A relációs adatmodell központi koncepciója a táblázat. Ezért a felhasználó szemszögéből a relációs adatbázis csak táblázatokat tartalmaz, és semmi mást nem tartalmaz. A táblák oszlopokból (egy vagy több) és sorokból állnak (egyik vagy több sem). A táblázat sorának és oszlopának minden egyes elnyomása mindig pontosan egy adatértéket tartalmaz.
Ez az információ a SampleDb adatbázisban található (a forráskódban található) négy táblázaton keresztül:
A táblázatok szervezését az alábbi ábrák mutatják. A táblázat Tanszék képviseli a vállalat minden részlegeit. Minden osztálynak a következő tulajdonságai vannak (oszlopok):
A Number attribútum az egyes osztályok egyedi számát jelenti, a DepartmentName attribútum a neve, és a Location attribútum a hely. A Munkavállalók táblázata az összes alkalmazottat képviseli a vállalatnál. Minden alkalmazottnak a következő tulajdonságai vannak (oszlopok):
Az Id attribútum az egyes alkalmazottak egyedi személyzetének számát jelenti, a FirstName és LastName attribútumokat - a munkavállaló nevét és vezetéknevét, valamint a DepartmentNumber attribútumot - annak a részlegnek a számát, amelyben a munkavállaló működik.
Az összes vállalati projektet a Projekt munkalap tartalmazza, amely a következő oszlopokból (attribútumokból áll):
A ProjectNumber oszlop egy egyértelmű projektszámot határoz meg, a ProjectName és Budget oszlopokban pedig a projekt nevét és a költségkeretét.
A Works_on táblázat a munkavállalók és a projektek közötti kapcsolatot jelzi:
A munkavállalói létszám az EmpId oszlopban van feltüntetve, és a ProjectNumber oszlopban - a projekt száma, amelyben részt vesz. A két oszlop értékeinek kombinációja mindig egyértékű. A Job és az EnterDate oszlopok jelölik a munkatárs munkájának helyzetét és kezdetét.
Példaként a SampleDb adatbázis használatával leírhatja a relációs adatbázis-rendszerek néhány alapvető tulajdonságát:
A táblázat sorai nincsenek rendezett sorrendben.
Továbbá a táblázat oszlopai nem rendeződnek semmilyen sorrendben.
Minden táblázat oszlopának egyedi névnek kell lennie bármely adott táblában. De a különböző táblák ugyanazon névvel ellátott oszlopokat tartalmazhatnak. Például a Tanszék tábla tartalmazza a Szám oszlopot, és egy oszlop ugyanazzal a névvel érhető el a projekt táblázatban.
A táblázat minden adatelemének egy értéket kell tartalmaznia. Ez azt jelenti, hogy a táblázat sorainak és oszlopainak metszéspontjában lévő cellák soha nem tartalmaznak semmilyen értékkészletet.
Minden táblázat legalább egy olyan oszlopot tartalmaz, amelynek értékei olyan tulajdonságot definiálnak, hogy két sor nem tartalmaz ugyanazt az értékkombinációt a táblázat összes oszlopához. Egy relációs adatmodellben egy ilyen oszlopot jelölt kulcsnak neveznek. Ha a táblázat több potenciális kulcsot tartalmaz, a fejlesztő az egyiket a táblázat elsődleges kulcsaként adja meg. Például a Minisztérium tábla elsődleges kulcsa a Szám oszlop, és a Munkavállalók tábláinak elsődleges kulcsai Id. Végül a Works_on tábla elsődleges kulcsa az EmpId és ProjectNumber oszlopok kombinációja.
A táblázat soha nem tartalmazza ugyanazokat a sorokat. De ez a tulajdonság csak elméletben létezik, mert az Adatbázis-motor és az összes többi adatbázis-relációs rendszer lehetővé teszi ugyanazon sorok létezését a táblázatban.
SQL - a relációs adatbázis nyelve
Az SQL Server rendszer relációs adatbázisának nyelvét Transact-SQL néven hívják. Ez az egyik legjelentősebb ma az adatbázis nyelvének - az SQL nyelvének (Structured Query Language - a strukturált lekérdezések nyelve). Az SQL nyelv eredete szorosan kapcsolódik egy, az IBM által a múlt század 80-as évek elején kidolgozott és végrehajtott System R nevű projekthez. E projekten keresztül bizonyítást nyert, hogy az Edgar F. Codd munkájának elméleti alapjait felhasználva relációs adatbázisok létrehozására van lehetőség.
A hagyományos programozási nyelvektől, például a C #, a C ++ és a Java nyelvektől eltérően az SQL nyelv beállítva. A nyelv fejlesztõi szintén rekordorientáltnak nevezik. Ez azt jelenti, hogy az SQL-ben lekérdezheti az adatokat egy vagy több táblázatból több sorból egy utasítással. Ez az egyik legfontosabb előnye az SQL nyelvnek, ami lehetővé teszi a nyelv logikusan magasabb szintű használatát, mint a hagyományos programozási nyelvek.
Az SQL nyelv másik fontos tulajdonsága a nemproceduralitás. Bármely program eljárási nyelven (C #, C ++, Java), lépésről lépésre leírja, hogyan kell végrehajtani egy adott feladatot. Ezzel szemben az SQL nyelv, mint bármely más nemprocedurális nyelv, leírja, hogy mit akar a felhasználó. Így a felhasználó kérésének megfelelő módszer megtalálása a rendszerben rejlik.
Az SQL nyelv két al nyelvből áll: az adatmeghatározási nyelv (DDL) és az adatkezelési nyelv (DML). A DDL nyelvi utasításokat az adatbázis-táblák sémáinak leírására is használják. A DDL nyelv három általános SQL utasításból áll: CREATE, ALTER és DROP. Ezek az utasítások az adatbázis-objektumok, például adatbázisok, táblázatok, oszlopok és indexek létrehozására, módosítására és törlésére szolgálnak.
A DDL nyelvvel ellentétben a DML minden adatkezelési műveletet lefed. Négy általános műveletet mindig az adatbázisok kezelésére használnak: az adatok kivonása, beillesztése, törlése és módosítása (SELECT, INSERT, DELETE, UPDATE).