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

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

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

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

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

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

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

Adatbázis rendszerek. dr. Siki Zoltán

Adatbázis-kezelő 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ázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Adatbázisok* tulajdonságai

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

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

Bevezetés: az SQL-be

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

BEVEZETÉS Az objektum fogalma

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

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

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Adatbázis, adatbázis-kezelő

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

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

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

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

SQL parancsok feldolgozása

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

A könyv tartalomjegyzéke

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

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

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

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

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

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

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

Indexek és SQL hangolás

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

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

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

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

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

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

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

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

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

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

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

Adatmodellezés. 1. Fogalmi modell

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

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

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

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

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

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

Adatbázis-kezelés. alapfogalmak

Adatbázis rendszerek SQL nyomkövetés

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

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

Adatszerkezetek 1. előadás

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

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

AdoDB a gyakorlatban

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

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

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)

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

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Programozás alapjai. 5. előadás

SQLServer. DB Recovery modes

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

Funkcionális függések lekérdezések feldolgozása, kifejezésfák

Webfejlesztés 4. alkalom

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

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

SQLServer. Particionálás

BEVEZETÉS Az objektum fogalma

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

Java és web programozás

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.

SELECT. SELECT(projekció) FROM(forrás) WHERE(szűrés) GROUPBY(csoportosítás) HAVING(csoportok szűrése) ORDERBY(rendezés)

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

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

Alternatív adatbázisok Gráfadatbázisok

Elemi alkalmazások fejlesztése IV.

Több tábla összekapcsolásán alapuló lekérdezések. Copyright 2004, Oracle. All rights reserved.

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

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

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

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

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

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

Párhuzamosítás adatbáziskezelő rendszerekben

Adatbázisok I Adatmodellek komponensei. Adatbázis modellek típusai. Adatbázisrendszer-specifikus tervezés

Funkcionális függések lekérdezések feldolgozása, kifejezésfák

Adatbázisok - 1. előadás

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

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

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

Á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 Relációs adatszerkezet Á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 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 Keresztnév Életkor 1 Kovács 2 Szabó 1 Géza 2 Béla 1 42 2 57 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 Ö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ó 5