Adatbázis-kezelés alapok Adatbázisok című tárgyhoz, ismétlés kapcsán
Hogyan tároljunk nagy mennyiségű adatot? Redundáns (ismétlődő) adatok Adattípusok konzisztenciáját nem biztosítja Nem kereshető, nehezen átlátható Nem biztonságos Nincs verziókövetés
MI A MEGOLDÁS? Relációs adatbázis-kezelő használata Táblák Mezők Rekordok Kapcsolatok Kulcsok
Adatbázis Adatok valamilyen célszerűen rendezett, szisztéma szerinti gyűjteménye\ tárolása, melyet az adatbázis-kezelő rendszerek kezelnek ABKR adatbázis-kezelő rendszerek DBMS Database Management System Az adatbázis nem más, mint maga a kezelt adatrendszer. Az adatbázis-kezelő rendszer pedig nem más mint a kezelő programrendszer.
Adattípusok 1 bigint -9.223.372.036.854.775.808 9.223.372.036.854.775.807 8 int -2.147.483.648 2.147.483.647 4 smallint -32.768 32.767 2 tinyint 0 255 1 bit 0 1, NULL is lehet minden megkezdett 8 bit típusú oszlop 1 byte decimal(p,s p-től függ -10^38 +1 10^38 1 ) numeric(p,s min. 5, max. 17 byte -10^38 +1 10^38 1 ) money -922.337.203.685.477,5808 +922.337.203.685.477,5807 8 smallmoney -214.748.3648 +214.748.3647 4
Adattípusok 2 Típus Mettől Meddig Méret float(n) -1,79E + 308 1,79E + 308 n=1-24: 4 byte (7 jegy) real -3,40E + 38 3,40E + 38 (ua. float(24)) n=25-53: 8 byte (15) Típus Leírás char Fix hosszú nem Unicode kar., maximum 8.000 kar. varchar Változó hosszú nem Unicode kar., maximum 8.000 kar. varchar(max) Változó hosszú nem Unicode kar., maximum 2 31 kar (csak SQL Server 2005). text Változó hosszú nem Unicode kar., maximum 2.147.483.647 kar. Típus Mettől Meddig datetime (3.33 millisec pontosság) Jan 1. 1753 Dec 31. 9999 smalldatetime (1 perc pontosság) Jan 1. 1900 Jun 6. 2079
Adattípusok 3 Típus Leírás nchar Fix hosszú nem Unicode kar., maximum 4.000 kar. nvarchar Változó hosszú nem Unicode kar., maximum 4.000 kar. nvarchar(max) Változó hosszú nem Unicode kar., maximum 2 30 kar (csak SQL Server 2005). ntext Változó hosszú nem Unicode kar., maximum 1.073.741.823 kar. Típus Leírás binary Fix hosszú bináris adat., maximum 8.000 byte. varbinary Változó hosszú bináris adat., maximum 8.000 byte. varbinary(max) Változó hosszú bináris adat., maximum 2 31 byte (csak SQL Server 2005). image Változó hosszú bináris adat., maximum 2.147.483.647 byte.
Legfontosabb adattípusok nchar (fix hosszúságú karakteres) nvarchar (változó hosszúságú karakteres) smalldatetime (év, nap, óra, perc) int (+- ~2milliárd) tinyint (0..255) bit (0,1)
Alapfogalmak Egyed (entity): minden olyan objektum ami megkülönböztethető más objektumoktól. Pl. tanuló, gépjármű Tulajdonság (attribute): az egyedek leírására szolgál. Pl. név, neptun kód, alvázszám Kapcsolat: az egyedek közti viszony 1:1, 1:N, M:N
Relációs Adatbázis Terminológia - Adatmodell
Adatmodell, egyed-kapcsolat diagram Egyedhalmaz (táblák) Attribútum (sorok) Kapcsolat (közös kulcs) Összeköttetés
Adatmodell, egyed-kapcsolat diagram
Pl.: Hallgatók tábla adattípusba rendezve neptun [nchar](6) NOT NULL, nev [nvarchar](50) NOT NULL, telepules [nvarchar](50) NOT NULL, utca [nvarchar](50) NOT NULL, irsz [nchar](10) NULL, tel [nvarchar](50) NULL, szdat [smalldatetime] NOT NULL, fiu [bit] NULL, kforma [nchar](10) NULL, kdij [money] NULL, egyeb [nvarchar](max) NULL,
Adatbázis-kezelők előnyei Elfedi az adatok fizikai tárolási szerkezetét (felhasználóknak, programoknak csak a logikai adatszerkezetet kell ismerni) Hatékony adatelérést biztosít Adatintegritás ellenőrzése, jogosultságok kezelése Konkurens adatelérés és adatvesztés elleni védelem Lerövidített a programfejlesztési idő
Felhasználó és adatbázis közötti kapcsolat Felhasználó Alkalmazások Adatbázis-kezelő rendszer Adatbázis
Adatbázis-kezelő rendszerek felépítése
ANSI-SPARC architektúra Külső szint: amit a felhasználó lát az adatbázisból,számára ezt jelenti az adatbázis Koncepcionális szint: A teljes adatbázis maga, amelyet az adminisztrátor, vagy adatbázis-tervező lát. Belső\ fizikai szint: maga az adatbázis valamilyen fizikai adatstruktúrában letárolva háttértárolón
ANSI-SPARC architektúra jelentősége Adatfüggetlenség logikai adatfüggetlenség: metaadatokkal fizikai adatfüggetlenség: a tárolási szerkezet megváltozása nem vonja maga után a koncepcionális séma megváltozását a fizikai és elvi struktúra megkülönböztetése a fejlesztés során munkamegosztást tesz lehetővé
Adatmodellek történeti áttekintés hierarchikus hálós relációs objektum-relációs félig-strukturált modell (XML)
http://docplayer.hu/68532048-adatbazis-kezelo-rendszerek-dr-siki-zoltan.html
Relációs adatmodell Edgar f. Codd vezette be: 1970 A Relational Model of Data for Large Shared Data Banks. Communications of ACM, 13(6). 377-387. 1982 Relational Databases: A Practical Foundation for Productivity. Communication of ACM, 109-117. legelterjedtebb adatmodell napjainkban népszerűségét annak köszönheti, hogy nagyon egyszerű deklaratív nyelvvel rendelkezik az adatok kezelésére, illetve lekérdezésére. értékorientált, ez ahhoz vezet, hogy a relációkon értelmezett műveletek eredményei szintén relációk.
Üzleti RDBMS fejlesztők Oracle corp.: oracle, timesten IBM: db2, informix, illustra Microsoft corp.: ms sql server, ms access SAP: hana, sybase, maxdb Teradata Corp.: Teradata Progress_openedge
Nyílt forráskódú RDBMS-ek Oracle Corp: mysql PostgreSQL Global Development Group: PostgreSQL D. Richard Hipp: SQLite Thomas Müller: HSQLDB Firebird Project: FireBird SkySQL: MariaDB WebScaleSQL Project
RDBMS-ek használata a vállalatok körében (2008)
SQL lekérdező nyelv
SQL lekérdező nyelv Az SQL, azaz Structured Query Language (strukturált lekérdezőnyelv) relációsadatbázis-kezelők lekérdezési nyelve. Angol nyelvterületen 'eszkjuel' a kiejtése. A hagyományokhoz való hűség jegyében sokan 'szíkvel'-nek ejtik, ugyanis korábban Structured English Query Language (SEQUEL) volt az elnevezés, és ezt rövidítették le.
Az SQL nyelvi elemeket 4 része: adatdefiníciós (Data Definition Language, DDL), adatkezelési (Data Manipulation Language, DML), lekérdező (QUERY( Language, QL)) és adatvezérlő (Data Control Language, DCL)
Ismétlés - Relációs műveletek UNIO ( ), METSZET ( ), KÜLÖNBSÉG (/) Descartes-szorzat: R X S [egyszerű szorzat] két reláció kombinálása (összes lehetséges módon párosít sorokat) Projekció (vetítés) : L (R) oszlopok kiválasztása (R bizonyos oszlopait tartalmazza valamilyen sorrendben.) Szelekció (kiválasztás): F (R) sorok kiválasztása (R reláció minden sorára megvizsgálja, hogy az F feltétel teljesül-e) Illeszkedés (természetes összekapcsolás): R S (Descatres-szorzat + feltétel szerinti kiválasztás + vetítés ) Csoportosítás: Rendezés A, B,..,H, K,.. ( R.A=S.A (R S))
Adatdefiníciós utasítások (DDL) Adattáblák létrehozása CREATE TABLE táblanév ( oszlopnév adattípus [feltétel],..., oszlopnév adattípus [feltétel] [, táblafeltételek] ); Oszlopfeltételek (egy adott oszlopra vonatkoznak): NOT NULL NULL PRIMARY KEY: elsődleges kulcs UNIQUE: kulcs REFERENCES tábla(oszlop) [ON-feltételek]: külső kulcs Táblafeltételek (az egész táblára vonatkoznak): PRIMARY KEY (oszloplista): elsődleges kulcs UNIQUE (oszloplista): kulcs FOREIGN KEY (oszloplista) REFERENCES tábla(oszloplista) [ON-feltételek]: külső kulcs Relációséma módosítása ALTER TABLE táblanév [ADD (újelem,..., újelem)] [MODIFY (módosítás,..., módosítás)] [DROP (oszlop,..., oszlop)];
Adatmanipulációs utasítások (DML) A táblába új sor felvétele INSERT INTO táblanév [(oszloplista)] VALUES (értéklista); Példa: insert into tulaj values (27110142233, Kovács Ákos, Szerencs Sugár út 24); insert into auto values (abc-123, Trabi, kék, 130000, 1990, 27110142233); Sor(ok) módosítása UPDATE táblanév SET oszlop = kifejezés,..., oszlop = kifejezés [ WHERE feltétel ]; Sor(ok) törlése DELETE FROM táblanév [ WHERE feltétel ];
LEKÉRDEZÉS példák: SELECT name, imdb_rating FROM movies; SELECT * FROM movies WHERE imdb_rating > 8; Forrás: https://www.codecademy.com/
LEKÉRDEZÉS példák: SELECT * FROM movies WHERE name LIKE 'a%'; SELECT * FROM movies WHERE year BETWEEN 1990 and 2000 AND genre = 'comedy'; SELECT * FROM movies WHERE name LIKE 'Se_en'; Forrás: https://www.codecademy.com/
Lekérdezés feldolgozása folytatás a következő előadáson
Köszönöm a Figyelmet!