b'\n_START_ARTICLE_\nBase de dades relacional\n_START_PARAGRAPH_\nUna base de dades relacional \xc3\xa9s una base de dades que compleix amb el model relacional, el qual \xc3\xa9s el model m\xc3\xa9s utilitzat en l\'actualitat per a modelar problemes reals i administrar dades din\xc3\xa0micament. Permeten establir interconnexions (relacions) entre les dades (que estan guardats en taules), i treballar amb ells conjuntament. Despr\xc3\xa9s de ser postulades les seues bases en 1970 per Edgar Frank Codd, dels laboratoris IBM a San Jos\xc3\xa9 (Calif\xc3\xb2rnia), no va tardar a consolidar-se com un nou paradigma en els models de base de dades.\n_START_SECTION_\nRelacions base i derivades\n_START_PARAGRAPH_\nEn una base de dades relacional, totes les dades s\'emmagatzemen i s\'accedeixen a ells per mitj\xc3\xa0 de relacions. Les relacions que emmagatzemen dades s\xc3\xb3n dites "relacions base" i la seua implementaci\xc3\xb3 \xc3\xa9s cridada "taula". Altres relacions no emmagatzemen dades, per\xc3\xb2 que s\xc3\xb3n calculades a l\'aplicar operacions relacionals. Aquestes relacions s\xc3\xb3n cridades "relacions derivades" i la seua implementaci\xc3\xb3 \xc3\xa9s cridada "vista" o "consulta". Les relacions derivades s\xc3\xb3n convenients, ja que expressen informaci\xc3\xb3 de diverses relacions actuant com si anara una sola.\n_START_SECTION_\nRestriccions\n_START_PARAGRAPH_\nUna restricci\xc3\xb3 \xc3\xa9s una condici\xc3\xb3 que obliga el compliment de certes condicions en la base de dades. Algunes no s\xc3\xb3n determinades pels usuaris, sin\xc3\xb3 que s\xc3\xb3n inherentment definides pel simple fet que la base de dades sigui relacional. Algunes altres restriccions les pot definir l\'usuari, per exemple, usar un camp amb valors sencers entre 1 i 10._NEWLINE_Les restriccions proveeixen un m\xc3\xa8tode d\'implementar regles en la base de dades. Les restriccions restringeixen les dades que poden ser emmagatzemats en les taules. Usualment es defineixen usant expressions que donen com a resultat un valor boole\xc3\xa0, indicant si les dades satisfan la restricci\xc3\xb3 o no._NEWLINE_Les restriccions no s\xc3\xb3n part formal del model relacional, per\xc3\xb2 s\xc3\xb3n incloses perqu\xc3\xa8 juguen el rol d\'organitzar millor les dades. Les restriccions s\xc3\xb3n molt discutides juntament amb els conceptes relacionals.\n_START_SECTION_\nDominis\n_START_PARAGRAPH_\nUn domini descriu un conjunt de possibles valors per a cert atribut. Com un domini restringeix els valors de l\'atribut, pot ser considerat com una restricci\xc3\xb3. Matem\xc3\xa0ticament, atribuir un domini a un atribut significa "tots els valors d\'aquest atribut deuen ser elements del conjunt especificat"._NEWLINE_Distints tipus de dominis s\xc3\xb3n: enters, cadenes de text, data, etc.\n_START_SECTION_\nClau \xc3\xbanica\n_START_PARAGRAPH_\nCada taula pot tenir un o m\xc3\xa9s camps els valors dels quals identifiquen de forma \xc3\xbanica cada registre d\'aquesta taula, \xc3\xa9s a dir, no poden existir dues o m\xc3\xa9s registres diferents els valors dels quals en aquests camps siguen id\xc3\xa8ntics. Aquest conjunt de camps es diu clau \xc3\xbanica._NEWLINE_Poden existir diverses claus \xc3\xbaniques en una determinada taula, i a cadascuna d\'aquestes sol cridar-se-li candidata a clau prim\xc3\xa0ria.\n_START_SECTION_\nClau prim\xc3\xa0ria\n_START_PARAGRAPH_\nUna clau prim\xc3\xa0ria \xc3\xa9s una clau \xc3\xbanica triada entre totes les candidates que defineix un\xc3\xadvocament a tots els restants atributs de la taula, per a especificar les dades que seran relacionats amb les altres taules. La forma de fer aix\xc3\xb2 \xc3\xa9s per mitj\xc3\xa0 de claus foranes._NEWLINE_Nom\xc3\xa9s pot existir una clau prim\xc3\xa0ria per taula i cap camp d\'aquesta clau pot contenir valors NULL.\n_START_SECTION_\nClau forana\n_START_PARAGRAPH_\nUna clau forana \xc3\xa9s una refer\xc3\xa8ncia a una clau en altra taula. Les claus foranes no necessiten ser claus \xc3\xbaniques en la taula on estan i si on estan referenciades._NEWLINE_Per exemple, el codi de departament pot ser una clau forana en la taula d\'empleats. \xc3\x92bviament es permet que hi hagi diversos treballadors en un mateix departament, per\xc3\xb2 existir\xc3\xa0 nom\xc3\xa9s un departament amb aquest codi.\n_START_SECTION_\nClau \xc3\xadndex\n_START_PARAGRAPH_\nLes claus \xc3\xadndex sorgeixen amb la necessitat de tenir un acc\xc3\xa9s m\xc3\xa9s r\xc3\xa0pid a les dades. Els \xc3\xadndexs poden ser creats amb qualsevol combinaci\xc3\xb3 de camps d\'una taula. Les consultes que filtren registres per mitj\xc3\xa0 d\'aquests camps, poden trobar els registres de forma no seq\xc3\xbcencial usant la clau \xc3\xadndex._NEWLINE_Les bases de dades relacionals inclouen m\xc3\xbaltiples t\xc3\xa8cniques d\'ordenament, cadascuna d\'elles \xc3\xa9s \xc3\xb2ptima per a certa distribuci\xc3\xb3 de dades i grand\xc3\xa0ria de la relaci\xc3\xb3._NEWLINE_Els \xc3\xadndexs generalment no es consideren part de la base de dades, perqu\xc3\xa8 s\xc3\xb3n un detall agregat. No obstant aix\xc3\xb2, les claus \xc3\xadndexs s\xc3\xb3n desenvolupades pel mateix grup de programadors que les altres parts de la base de dades.\n_START_SECTION_\nProcediments emmagatzemats\n_START_PARAGRAPH_\nUn procediment emmagatzemat \xc3\xa9s codi executable que s\'associa i s\'emmagatzema amb la base de dades. Els procediments emmagatzemats usualment arrepleguen i personalitzen operacions comunes, com inserir un registre dins d\'una taula, recopilar informaci\xc3\xb3 estad\xc3\xadstica, o encapsular c\xc3\xa0lculs complexos. S\xc3\xb3n freq\xc3\xbcentment usats per un API per seguretat o simplicitat._NEWLINE_Els procediments emmagatzemats no s\xc3\xb3n part del model relacional, per\xc3\xb2 totes les implementacions comercials els inclouen...\n_START_SECTION_\nManipulaci\xc3\xb3 de la informaci\xc3\xb3\n_START_PARAGRAPH_\nPer a manipular la informaci\xc3\xb3 utilitzem un llenguatge relacional, actualment es compta amb dos llenguatges formals l\'\xc3\xa0lgebra relacional i el c\xc3\xa0lcul relacional. L\'\xc3\xa0lgebra relacional permet descriure la forma de realitzar una consulta, en canvi, el c\xc3\xa0lcul relacional nom\xc3\xa9s indica el que es desitja retornar._NEWLINE_El llenguatge m\xc3\xa9s com\xc3\xba per a construir les consultes a bases de dades relacionals \xc3\xa9s SQL (Structured Query Language), un est\xc3\xa0ndard implementat pels principals motors o sistemes de gesti\xc3\xb3 de bases de dades relacionals._NEWLINE_En el model relacional els atributs han d\'estar expl\xc3\xadcitament relacionats a un nom en totes les operacions, en canvi, l\'est\xc3\xa0ndard SQL permet usar columnes sense nom en conjunts de resultats, com l\'asterisc taquigr\xc3\xa0fic (*) com anotaci\xc3\xb3 de consultes._NEWLINE_AL contrari del model relacional, l\'est\xc3\xa0ndard SQL requereix que les columnes tinguen un ordre definit, la qual cosa \xc3\xa9s f\xc3\xa0cil d\'implementar en una computadora, ja que la mem\xc3\xb2ria \xc3\xa9s lineal._NEWLINE_\xc3\x89s de notar, no obstant aix\xc3\xb2, que en SQL l\'ordre de les columnes i els registres retornats en cert conjunt de resultat mai est\xc3\xa0 garantit, llevat que expl\xc3\xadcitament siga especificat per l\'usuari.\n_START_SECTION_\nManegadors de base de dades relacionals\n_START_PARAGRAPH_\nExisteix programari exclusivament dedicat a tractar amb bases de dades relacionals. Aquest programari es coneix com a SGBD (Sistema de gesti\xc3\xb3 de base de dades relacional) o RDBMS (de l\'angl\xc3\xa8s Relational database management system)._NEWLINE_Entre els gestors o manegadors m\xc3\xa9s actuals i populars trobem: MySQL, PostgreSQL, Oracle, DB2 i Microsoft SQL Server.'