MySQL

Wikipedia(e)tik
Hona jo: nabigazioa, Bilatu
MySQL
Mysql.svg
Garatzailea
Informazio orokorra
Plataforma-anitza
Datu-baseak kudeatzeko sistema
GPL edo Erabilera komertziala
Ez

MySQL datu-baseak kudeatzeko sistema bat da, MySQL AB enpresak lizentzia bikoitzpean garatzen duena. Alde batetik GPL lizentzia eskaintzen du, baina beraien produktuetan erabili nahi duten enpresentzako lizentzia erosteko aukera eskaintzen du.

Gaur egun, lau milloi ordenagailutan baino gehiagotan instalatuta aurkitu dezakegu [1], bai ordenagailu pertsonaletan software aske bezala erabilita edo produktu komertzialen osagai bezala enpresetako lizentziaren bidez.

Bere kodearen gehiena ANSI C programazio lengoaian idatzita dago.


Proiektuaren historia[aldatu | aldatu iturburu kodea]

SQL lengoaia azaldu zenetik, estandar bezala hartu da erlaziozko datu basetan, 1986. urtean azaldu zen lehen estandarra eta horren ostean espezifikazio anitz agertu dira (SQL:92, SQL:99, SQL:2003). MySQL AB enpresaren ideia izan zen, SQL estandarra betetzea helburu zuen, arintasun, erabilgarritasun eta fidagarritasunik galdu gabe.

Egitura logikoa[aldatu | aldatu iturburu kodea]

DBKS gehienek bezala MySQLek ere 3 mailatako egitura logikoa eskaintzen du.

3 mailatako egitura logikoa


Programazio Lengoaiak[aldatu | aldatu iturburu kodea]

Aplikazio geruzan API anitz aurki daitezke, zeinek datu-baseak kudeatzeko sistema hau programazio lengoaia askoretan programatzeko aukera ematen dute. C, C++, C#, Pascal, Delphi (dbExpress bidez), Eiffel, Smalltalk, Java ( Baita ere, guztiz java lengoian programaturiko driver bat existitzen da), Lisp, Perl, PHP, Python, Ruby, REALbasic (Mac), FreeBASIC, eta Tcl bakoitza bere APIrekin.

ODBC interfaze berezi bat MySQL datubaserako ere badago, MyODBC deritzona. Honek ODBC interfazea inplementatzen duen edozein programazio lengoaiari MySQL datubasearekin komunikatzea ahalbidetzen dio.

Motoreak[aldatu | aldatu iturburu kodea]

DBKS egiturarekin jarraituz, geruza logikoan biltegiratze sistemak erabiltzen ditu MySQL-ek. Hau da, MySQL-k funtzionatu ahal izateko motoreak erabiltzen ditu. Nagusiki horietako bi erabiltzen dira: MyISAM eta innoDB. Baina gehiago daude: Merge, Berkeley DB, Memory, Example, Federated, Archive, CSV, Blackhole...[1]

MyISAM[aldatu | aldatu iturburu kodea]

Besterik ezeko biltegiratze motorea da. MyISAM-eko taula bakoitza 3 fitxategitan gordetzen da diskoan. Fitxategi hauen izenak taularen izen bera dute baina luzapena aldatzen zaie zein motakoak diren jakiteko: .frm luzapenak taularen egitura gordetzen du, datuak .myd fitxategietan gordetzen dira eta indizeek .myi luzapena dute. Datuak gordetzen diren moduagatik sistema eragileko independenteak dira. 232 errenkada onartzen ditu gehienez taula bakoitzean. 64 indize definitu daitezke gehienez taula batean. Eguneraketa konkurrenteak onartzen ditu. MyISAM tauletako indizeeek B-zuhaitza (B-tree) moduko egitura erabiltzen dute. Datu basea ondorengo egoeretan hondatu daiteke:

  • Prozesuko idazketa baten erdian hiltzen bada.
  • Ordenagailua itzaltzen bada
  • Hardware akatsak
  • Kanpoko programa batek eta zerbitzariak aldi berean datuak aldatzen badituzte
  • Software akats bat

InnoDB[aldatu | aldatu iturburu kodea]

InnoDB motorra AISI transakzioak betetzeko diseinatuta dago. Commit, rollback eta crash-recovery aukerak eskaintzen ditu erabiltzailearen datuak babesteko. Datuen osotasuna bermatzeko gako arrotzen murriztapena betetzeko ahalmena du. InnoDB-k erabiltzaile datuak clustered index-etan gordetzen ditu gako nagusiko galdera orokorretan sarrera/irteerako eragiketak gutxitzeko.

InnoDB datu handiekin lan egin behar denean eraginkortasuna lortzeko diseinatuta dago. PUZaren erabilera eraginkorra ere egiten du. Datuentzako bere buffer eta cache propioak mantentzen ditu memoria nagusian. InnoDB-k taulak eta indizeak taula espazio batean gordetzen ditu hainbat fitxategi izan daitezkeelarik. Horrela taula bat 2GB baino handiagoa izan daiteke fitxategi sistema batzuetako muga gaindituz.

Ez da gomendagarria NFS fitxategi sistemarekin batera motore hau erabiltzea.

InnoDB-n erabiltzailearen edozein eragiketa transakzio baten barruan gertatzen da. Autocommit modua aktibatuta badago SQL galdera bakoitza transakzio bat bezala tratatzen da. Galdera ondo exekutatzen denean commit egiten da errorerik ez bada gertatu, bestela rollback edo commit egiten da errorearen arabera.

InnoDB-ek ere indizeak B-Zuhaitzetan gordetzen ditu non indizeen egiturak hostoetan gordetzen diren. Zuhaitzak %50-etik %93-ra beteta egon daitezke. InnoDB motorraren helburua transakzioetarako 2 fasetako sarrailak eta eraginkortasuna konbinatzea da. InnoDBk blokeaketa lerro mailan egiten ditu eta irakurketak sarrailarik erabili gabe egiten dira besterik ezean.

Aplikazioak[aldatu | aldatu iturburu kodea]

Datu-baseak kudeatzeko sistema hau, sistema anitzetan erabiltzen da, bereziki LAMP (Linux/Windows-Apache-MySQL-PHP/Perl/Python) teknologiak erabilita. Adibidez Mediawiki edo Drupal proiektuak bere datu-basek MySQL bidez kudeatzen dituzte.

Kanpo loturak[aldatu | aldatu iturburu kodea]

Commonsen badira fitxategi gehiago, gai hau dutenak: MySQL Aldatu lotura Wikidatan

Aipamenak[aldatu | aldatu iturburu kodea]