Adatbáziskezelı-szerver SQL. Relációs adatbázis-kezelık. Relációs adatszerkezet. Házi feladat 2012.03.05.



Hasonló dokumentumok
Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

Nem klaszterezett index. Beágyazott oszlopok. Klaszterezett index. Indexek tulajdonságai. Index kitöltési faktor

Nem klaszterezett index. Klaszterezett index. Beágyazott oszlopok. Index kitöltési faktor. Indexek tulajdonságai

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

Adatbázis-kezelés alapok Adatbázisok című tárgyhoz, ismétlés kapcsán

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

Adatbázis rendszerek. dr. Siki Zoltán

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

Adatbázisok* tulajdonságai

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Adatbázis, adatbázis-kezelő

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP /1/A

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

BEVEZETÉS Az objektum fogalma

Bevezetés: az SQL-be

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 4.ELŐADÁS. Adatbázis alapú alkalmazások készítése PHP-ben

MySQL. Elektronikus jegyzet Széchenyi István Egyetem Távközlési tanszék

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

Adatbázis-kezelés. Harmadik előadás

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

Indexek és SQL hangolás

Relációs algebra lekérdezések optimalizációja. Adatbázisok használata

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv)

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

A könyv tartalomjegyzéke

Programozás. Adatbázis-kezelés (alapok) Fodor Attila

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

Adatbázis kezelés Delphiben. SQL lekérdezések

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

Készítette: Szabóné Nacsa Rozália

Adatbázisműveletek és lekérdezésoptimalizálás

SQL parancsok feldolgozása

Adatbázis rendszerek SQL nyomkövetés

Adatszerkezetek 1. előadás

Adatbázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31

B I T M A N B I v: T M A N

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) október október 22. Adatbázisok 1 / 14

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

Webfejlesztés 4. alkalom

Fájlszervezés. Adatbázisok tervezése, megvalósítása és menedzselése

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

Adatbázisok (relációs, objektum relációs, NoSQL) Adatbáziskezelő rendszerek Adatbázisok felépítése Adatbázisok tervezése

TABLE ACCESS FULL HASH CLUSTER BY INDEX ROWID BY USER ROWID BY GLOBAL INDEX ROWID BY LOCAL INDEX ROWID

SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Alapvető fizikai tárolási szerkezetek, indexek, B-fák

Marton József BME-TMIT. Adatbázisok VITMAB november 11.

Adatbázisok tavaszi félév Vizsgatételsor

Elemi alkalmazások fejlesztése IV.

AdoDB a gyakorlatban

LEKÉRDEZÉSEK SQL-BEN. A relációs algebra A SELECT utasítás Összesítés és csoportosítás Speciális feltételek

Valós idejű megoldások: Realtime ODS és Database In-Memory tapasztalatok

Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal.

30 MB INFORMATIKAI PROJEKTELLENŐR ADATBÁZISOK MEGVALÓSÍTÁSA (ADATBÁZISOK, ADATBÁZISKEZELŐK, ADATBÁZISOK FELÉPÍTÉSE, ADATBÁZISOK TERVEZÉSE)

Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) );

Az alapprobléma. Az SQL querydeklaratív Azt mondjuk meg, hogy mit akarunk eredménynek Nem azt, hogy milyen fizikai műveletek történjenek

Adatbázis Rendszerek I. 9. SQL alapok (DDL esettanulmány)

Adatbázisok elmélete 10. előadás

SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

Adatbázis rendszerek 2. előadás. Relációs algebra

Gazdasági folyamatok térbeli elemzése. 5. elıadás

Lekérdezések feldolgozása és optimalizálása

Adatmodellezés. 1. Fogalmi modell

Vektoros grafikát tároló adatbázisok. Katona Endre Térképi adatbázisok diasorozata alapján

Adatbázis-kezelés. alapfogalmak

Informatikai alapismeretek Földtudományi BSC számára

Adatbázisok elmélete 9. előadás

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

Alternatív adatbázisok Gráfadatbázisok

Java és web programozás

SQLServer. DB Recovery modes

Adatbáziskezelés alapjai ADATBÁZISKEKZELÉS 1

Az adatbázisrendszerek világa

Adatbázisok elmélete 9. előadás

TELJESÍTÉNYMÉRÉS FELHŐ ALAPÚ KÖRNYEZETBEN AZURE CLOUD ANALÍZIS

LOGISZTIKAI ADATBÁZIS RENDSZEREK UNIÓ, ALLEKÉRDEZÉSEK

A szürke háttérrel jelölt fejezet/alfejezet szövege a CD-mellékleten található. A CD-melléklet használata. 1. Elméleti áttekintés 1

3. Előadás. Az SQL adatbázisnyelv (Tartalom) Az SQL története. Az SQL felépítése. Adattípúsok. SQL utasítások

Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK)

SQLServer. Particionálás

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

BEVEZETÉS Az objektum fogalma

Az adatok a vállalat kulcsfontosságú erőforrásai. Az információs rendszer adatai kezelésének két alapvető változata:

LOGISZTIKAI ADATBÁZIS RENDSZEREK BEVEZETÉS

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

Relációsémák létrehozása SQL nyelvben

Számítógép felépítése

Átírás:

1 2 Adatbáziskezelı-szerver Általában dedikált szerver Optimalizált háttértár konfiguráció Csak OS + adatbázis-kezelő szoftver Teljes memória az adatbázisoké Fő funkciók: Adatok rendezett tárolása a háttértárolón Lekérdezések (query-k) gyors végrehajtása Optimalizált memória, I/O és processzor használat Adatok indexelve Adatmódosító műveletek Tranzakciók kezelése Hosszú, konkurens műveletek atomizált végrehajtása Adatok konzisztenciájának megőrzése Adatbiztonsági funkciók 3 4 Relációs adatbázis-kezelık Eredetileg üzleti célú alkalmazások háttereként Adatok relációs adatszerkezetben (RDBMS) Adatorientált lekérdező nyelv: SQL Elterjedt termékek: MySQL PostgreSQL Oracle MS SQL Server (2008 R2) IBM DB2 SyBase SQL DATABASE TABLE VIEW SELECT TOP FROM INNER JOIN CROSS JOIN WHERE GROUP BY HAVING ORDER BY INSERT, UPDATE, DELETE OUTER JOIN UNION, EXCEPT STORED PROCEDURE INDEX CLUSTERED INDEX READ UNCOMMITED SERIALIZABLE CURSOR FUNCTION CROSS APPLY FILE GROUP PARTITION FUNCTION JOIN HINT 5 6 Házi feladat Átnézni az SQL nyelvről korábban tanultakat Segítség: http://skyserver.sdss.org http://nve.elte.hu SQL Server Books Online http://msdn.microsoft.com/en-us/library/ms130214.aspx Relációs adatszerkezet Halmaz Egy tábla egyetlen oszlopa Több oszlop együtt (tuple) Műveletek: Descartes-szorzat Kiválasztás (szelekció) Vetítés (projekció) Unió, különbség Séma: Megkötés, hogy milyen halmazok milyen sorrendben szorozhatók össze Reláció: Descartes-szorzat részhalmaza 1

7 8 Relációs algebra táblák sémával Relációs algebra táblák szorzata Vezetéknév 1 Kovács 2 Szabó Keresztnév 1 Géza 2 Béla 1 42 2 57 Életkor ID Szerző Cím 1 1 Könyv 1 2 1 Könyv 2 3 2 Könyv 3 Descartesszorzat R1 Vezetéknév Keresztnév Életkor Szelekció Projekció R2 Vezetéknév Keresztnév 1 Kovács Géza 2 Szabó Béla Reláció Vezetéknév Keresztnév Cím Kovács Géza Könyv 1 Kovács Géza Könyv 2 Szabó Béla Könyv 3 9 10 Táblák A tábla az adatbázis alapeleme (table) Séma: oszlopok (schema / column) Előre definiált Adattípus: szám, szöveg stb. Méret; szövegnél, bináris adatnál Adat: sorok (row) Tetszőleges számú Azonos formátumú Megkötések (constraints) Elsődleges kulcs (primary key) Táblán belül egyedi Egy vagy több oszlop kombinációja Idegen kulcs (foreign key) Másik táblában levő elsődleges kulcsra mutat Könyvek ID Szerző Cím 1 1 Könyv 1 2 1 Könyv 2 3 2 Könyv 3 11 12 Elsıdleges kulcs, idegen kulcs ID int Vezetéknév nchar(50) Keresztnév nchar(50) Könyvek ID int SzerzőID int Cím nchar(250) 2

13 14 Az adatbázisok alapproblémái A háttértár mindig jóval lassabb, mint a központi memória és a CPU Indexelés A háttértár szekvenciálisan sokkal gyorsabban olvasható, mint random módon Sorok lapokba (page) szervezése Lapok megfelelő sorrendben tárolása A memória mérete mindig sokkal kisebb, mint az adatbázis mérete Ügyes algoritmusok Ne kelljen transzformálni a memória és a diszken levő formátum között Adatok tárolása az SQL szerverben Miért fontos ez? Az adatok fizikai szervezését meg kell érteni ahhoz, hogy lássuk hogyan kell a háttértárat és az adatbázist optimálisan konfigurálni. Sokszoros sebességnövekedés érhető el a naiv adatbázis szervezéshez képest. Fizikai egységek: adatbázis, azon belül a file group, azon belül a file, azon belül az extent és azon belül a page (lap) tranzakciós napló (ld. később) A felhasználó a fájl szintig rendelkezik explicit beleszólással: Melyik könyvtárban legyen a fájl a lemezen Mekkora legyen a fájl Nőhessen-e automatikusan, ha új adat jön 15 16 Lapok Lap (page): tárolás alapegysége Fix méret: 8kB 8 lap = 1 extent (64kB) Csak teljes extent írható/olvasható a lemezre/ről Formátum a memóriában és a lemezen azonos Memória: page pool Több fajtája van Tábla adat Index, stb. (ld. később) Adatok logikai szervezése Az adattárolás logikai egysége a tábla, azon belül a sor Adattípusok Fix méretű adattípusok int, bigint, real, float, char(20), binary(250) stb. Változó méretű típusok varchar(50), varbinary(250) stb. LOB, BLOB (binary large object) text, ntext, varbinary(max), image stb. maximum 2 GB 17 18 Heap tábla Sorok nem meghatározott sorrendben tárolódnak Sorok lapokon folytonosan Lista a lapokról Hátrány: Kereséskor az egész táblát végig kell olvasni Előny: Új sor beírása könnyű: az utolsó lap végére Elsıdleges kulcs Oszlop vagy oszlopok kombinációja Egyedi A rendezés jól definiált Sorrend oszloponként megadható Bármely kulcsot bármelyikkel egyértelműen össze tudunk hasonlítani: < > = Legegyszerűbb kulcs: egyedi integer azonosító 3

19 20 B fa és a B+ fa Sorba rendezett adatok tárolására Csomópont: d számú adatsor d+1 pointer A pointerek további csomópontokra mutatnak Ha egy csomópont betelik, akkor ketté osztjuk Elem megtalálása: o(log d n) A fa rekurzív algoritmussal az elemek sorrendjének megfelelően járható be Tábla klaszterezett indexszel A tábla B+ faként van tárolva A fa egy szintje egy lap Két fajta lapot igényel Index lap Sorokat tároló lap A lapokon pointerek a soron következő/előző lapokra A szekvenciális olvasást gyorsítja B+ fa: a közbenső szinteken csak a kulcsokat tároljuk, az adatokat csak a legalsó szinten 21 22 Mire jó a klaszterezett index Egy adott kulcsú sor gyorsan megtalálható SELECT * FROM t WHERE ID = 12 Egy adott kulcs tartomány gyorsan megtalálható SELECT * FROM t WHERE ID BETWEEN 12 AND 36 A tábla szekvenciálisan, a kulcs szerinti sorrendben (vagy visszafele) olvasható Ehhez nem kell újra sorba rendezni! SELECT * FROM t ORDER BY ID Speciális lapok Lap mérete: 8 kb Adat számára hasznos: 8000 bájt in-page adatok Túllógó adatok tárolására: row overflow page out-of-page adatok BLOB típusú adatokra: BLOB page varbinary(max), nvarchar(max) etc. 23 24 File group Több fájl gyűjteménye Lehetnek különböző méretűek Lehetnek külön lemezen is akár, sőt Párhuzamosítás: 1 programszál / fájl A táblák file grouphoz vannak rendelve Nem egyedi fájlhoz Fájlok feltöltése egyenletes a groupon belül Egy file group akárhány táblát, indexet tartalmazhat A táblák lapjai ekkor keveredhetnek Optimális eset: egyetlen tábla lapjai szekvenciálisan A BLOB oszlopok külön groupba tehetők Az indexek (ld. később) külön groupba tehetők Particionált táblák A tábla kulcsértékein tartományok definiálhatók Egy adott tartomány: partíció A partíciók külön-külön rendelhetők file grouphoz A partíciók ki/be kapcsolhatók Adatbetöltésnél lesz fontos 4

25 26 Összefoglalás Amit ma tanultunk az a klasszikus, sor alapú SQL adatbázisok adattárolási modellje Tábla heap vagy klaszterezett index file group-hoz rendelve Alapegység: lap (page) Alapvető adatstruktúra: B+ fa Fájl, file group, partíció 27 28 Nem klaszterezett indexek Nem klaszterezett index Egy táblán csak egy klaszterezett index lehet Ha más oszlop szerint is keresni akarunk, nem klaszterezett indexeket használunk A tábla mellett megjelenő adatstruktúra Egy vagy több oszlopra építhető Előírt rendezési sorrenddel Csak az indexelt oszlopok értékeit tartalmazza Pointer az adatokra Megkövetelhető a kulcsok egyedisége Klaszterezett index Nem klaszterezett index 29 30 Indexek tulajdonságai Előnyök: Adott oszlopok szerinti keresés gyors Az indexelt adatok az előírt sorrendben, szekvenciálisan olvashatóak Hátrányok: Több tárhelyet igényel (az indexelt oszlopok még egyszer tárolódnak) Beszúráskor, módosításkor, törléskor frissíteni kell Túl kevés index Kevés optimalizálási lehetőség A legtöbb query nem lesz optimális Tranzakciós problémák (dead-lock) Túl sok index Sok tárhelyet igényel Sok idő felépíteni az indexeket Az írási műveletek nagyon drágák lesznek A következı órán Milyen fizikai műveleteket végez a szerver a queryk futtatásakor? Mi az egyes műveletek költsége? Mit jelent a queryoptimalizálás? Hogyan lehet queryt optimalizálni? Hogyan kell indexeket tervezni? 5