Mòdul 7   

Pràctica 7: Crear la base de dades del portal
Tornar presentació tema
      Prąctica 1 Pràctica 2 Prąctica 3 Pràctica 4 Pràctica 5 Pràctica 6 Prąctica 7 Pràctica 8 Pràctica 9 Pràctica 10
 

Un cop tenim el motor de dades instal·lat i en marxa, crearàs la base de dades del programa i la taula d'articles.

 
  Crear la base de dades  
 


La primera tasca que has de fer és crear la base de dades de l'agència de notícies. T'has d'imaginar una base de dades com si fos un arxivador. Tota la informació de l'agència de notícies va a l'arxivador de l'agència de notícies. El servidor MySQL del teu ordinador pot gestionar molts arxivadors, perquè en el teu ordinador hi poden conviure projectes diferents.

Quan fas la instal·lació del servidor es creen dues bases de dades: mysql i test. La primera conté informació interna del servidor. Millor que no la toquis fins que no siguis un administrador expert. La segona està pensada com a exemple d'arxivador de proves.

Utilitzarem l'eina més elemental per a crear una base de dades, la cònsola d'administració del MySQL (mysql.exe) que s'instal·la a la carpeta bin de la distribució del motor de dades.

1) Obre el programa: "Inici | Programes | MySQL | MySQL Server 4.1 | MySQL Command Line Client".

2) Introdueix la clau d'accés (root).

El programa t'autoritzarà a operar amb el motor de dades.

3) Un cop a la cònsola, escriu

create database agencia_noticies; (no oblidis el ;)

i prem return.

4) El programa et confirma la creació d'aquesta forma:

5) Ara escriu

exit;

i prem return.

Ja tens feta la base de dades. Tot el material que generi el projecte de notícies anirà al seu interior.

Has pogut comprovar que la cònsola és un instrument bastant rudimentari. De moment no la utilitzaràs més. Per a crear la taula de notícies del portal utilitzaràs el MySQL Query Browser.

 
  Crear la taula de notícies  
 


Obre el Query Browser: Inici | Programes | MySQL | MySQL Query Browser. Connecta't a localhost com a root i amb la contrassenya root.

Observa la distribució d'objectes a la finestra del Query Browser:

Està distribuït en

- Una finestra on s'escriuen les comandes en el llenguatge del motor de dades, l'SQL.

- Una finestra on es veuen els resultats que han produït les comandes escrites des de la finestra de comandes.

- Una finestra amb les bases de dades disponibles: observa que la primera de la llista és la recent creada 'agencia_noticies'.

- Una finestra amb pistes sobre el llenguatge SQL que utilitza MySQL.

Ara ens interessa que utilitzis la finestra amb les Bases de dades.

Clica amb el botó dret del ratolí ratolí sobre la base de dades 'agencia_noticies'. Se t'obrirà el següent desplegable:


Pica sobre l'opció de menú 'Create New Table'. S'obre la següent fitxa de descripció de dades:

Aquesta fitxa et servirà per a especificar l'estructura de dades de la teva taula de notícies.

Abans de continuar amb la creació de la taula, t'has d'aturar a reflexionar una mica sobre què són les taules, com desen la informació i quina forma ha de tenir la taula de notícies del teu projecte.

Les Taules.

Segur que has vist centenars de taules al llarg de la teva vida il·lustrant llibres de text, diaris o pàgines web. Si t'imagines una taula d'una base de dades com una taula d'un llibre o una pàgina d'un full de càlcul et faràs una idea bastant aproximada de l'aspecte que tenen: una sèrie ordenada de files (els hi donarem el nom de registres) i de columnes (que reben el nom de camps).

Aquesta taula té dos registres que són dos articles. Un article l'ha escrit Josep Martí i l'altre Sandra Ripoll:

Cadascun dels registres té dos camps: Un camp on consta el redactor de l'article i un segon camp amb el títol de l'article.


 
 


Pensa ara quina estructura de camps o columnes ha de tenir la teva taula d'articles. Com cada registre ha de contenir totes les dades d'un article del portal, has de decidir quina informació t'interessa desar de cadascun dels articles.

Et proposem el següent esquema. Cada fitxa o registre ha de contenir, com a mínim, els següents

1) Un camp ha de contenir el número de l'article. És millor numerar els articles perquè facilita la feina de gestió. A la màquina li és més senzill localitzar, per exemple, l'article 1525 que haver de buscar seguint altres criteris. A més a més, aquest número ha de ser únic a tota la taula: No ha de ser possible que dos articles tinguin el mateix número d'identificació!

2) Un camp ha de portar la data en què es va enregistrar l'article. Necessitarem aquest camp per a fer ordenacions cronològiques.

3) Un tercer camp ha d'enregistrar el 'nick' de l'usuari redactor. Aquest camp no ha de ser únic a la taula perquè sinó cada autor només podria escriure un sol article.

4) Un altre camp ha de contenir el títol de l'article.

5) El darrer camp ha de contenir tot el text del propi article.

Aquesta és l'estructura mínima de la taula d'articles. Més endevant la prodràs ampliar o modificar.

Ara ja pots crear físicament la taula. Recorda que havies obert el MySQL Query Browser | Botó dret sobre la base de dades 'agencia_noticies' | Create New Table:

1) A Table Name escriu el nom de la taula: articles.

2) Ara crearàs l'estructura de camps de la taula. Es van afegint a la graella que hi ha a la pestanya 'Columns and Indices'. Cada fila d'aquesta graella conté la definició d'un camp, amb el seu nom, el tipus de dades que conté (numèrics, cadenes, etc) i altres dades.

  • Fes doble-clic sobre la primera entrada de la graella "Columns and Indices", per sota de l'etiqueta "Column Name". Escriu ID. Aquest camp servirà per a desar el número assignat a l'article.
    Observa que, immediatament després d'escriure el nom, el programa ha completat automàticament la definició del camp:
    • tria el camp com a enter (INTEGER),
    • no permet que tingui un valor nul (l'article ha de tenir codi numèric per força, sinó no el podriem identificar),
    • és un enter autoincremental (a nosaltres no ens cal assignar el número a l'article, el MySQL ja en portarà la comptabilitat i ho farà per nosaltres) i
    • el camp està marcat com a camp clau (observa la clau groga que hi ha a l'esquerra del camp). Això vol dir que ID és la identificació única de l'article a la taula. En llenguatge de bases de dades es diu que el camp ID és la clau primària de la taula.

Continua entrant les definicions seguint el model d'aquesta fitxa:

  • Afegeix un camp amb la data de gravació del registre que es digui DATA i sigui del tipus TIMESTAMP.
  • Afegeix un camp amb el nom AUTOR. Desarà el 'nick' del redactor. A tipus de data escriu VARCHAR(50) que vol dir que contindrà cadenes de longintud variable i fins a 50 caràcters.
  • Per al títol farem un camp que permeti cadenes més llargues. Es dirà TITOL i serà del tipus VARCHAR(250).
  • Finalment crea un camp per a posar tot el contingut de l'article dins. S'ha de dir CONTINGUT i serà del tipus MEDIUMTEXT. El tipus MEDIUMTEXT et deixarà guardar articles fins aproximadament unes 5000 pàgines.

Opcionalment pots crear un grup d'indexs per a la taula. Els índexs serveixen per a accelerar la recerca de dades en una taula.Tots els camps susceptibles de recerca s'han d'indexar perquè l'eficacia de les recerques es multipliquen per més de mil. Com pots necessitar buscar articles per autor, data i títol hauries de crear tres índexs, a més de l'index PRIMARY que ha estat creat automàticament pel MySQL al fer el camp ID.

  • A la pestanya Indices, veuràs a l'esquerra un signe + i un signe -. Serveixen per afegir i esborrar índex. Pica sobre el signe +, et sortirà una finestra amb un nom d'index. Pica sobre el botó 'OK'.
  • A la dreta de la pestanya Indices tens una caixa que porta el nom Index Columns. Tria el camp DATA a la graella de camps i estira'l fins posar-lo dins la caixa. Ja has creat l'índex.
  • Repeteix l'operació creant índexs per als camps AUTOR i TÍTOL.

Amb aquesta operació ja has completat la definició de la taula. Pica sobre el botó 'Apply Changes'. El programa et demana la confirmació dels canvis:

Pica sobre el botó 'Execute' i tanca l'editor de taules.

Finalment, prova el funcionament de la taula inserint, actualitzant, consultant i esborrant un registre.

1) Assegura't que tens la base de dades agencia_noticies activa: en el navegador de bases de dades (schemata) ha d'estar en negreta. Si no ho està, fes doble-clic sobre el seu nom.

2) A la caixa d'entrada de comandes, a la part superior del programa, escriu la següent sentència:

insert into articles (autor,titol,contingut)
values ('reverte','Cròniques de guerra','Contingut de l''article')

3) Pica sobre el botó verd 'Execute', a la dreta de la caixa.

Amb això has inserit un registre a la taula.

4) Ara demanaràs que el MySQL et faci una llista amb tots els articles de la taula. Ara només n'has de trobar un. Escriu a la caixa de comandes:

select * from articles

i pica sobre el botó 'Execute'. Has d'obtenir aquesta resposta:

Observa que et retorna un article que porta l'ID número 1 (assignat automàticament pel MySQL) amb la data i hora de gravació (també assignades pel servidor) i amb l'autor, títol i contingut que has decidit a la sentència anterior.

5) Ara canviaràs el títol de l'article. Es diu 'Cròniques de Guerra' i el vols transformar en 'Territorio Comanche'. Escriu a la caixa de comandes la següent sentència:

update articles set titol='Territorio Comanche' where id=1

Pica sobre el botó 'Execute'. Repeteix el pas 4) per a verificar que el seridor ha fet la modificació.

6) Finalment, esborraràs el registre. Escriu i executa la següent sentència:

delete from articles where id=1

Les sentències que has anat escrivint utilitzen l'SQL, un llenguatge que, amb algunes variants, entenen d'una manera similar tots els motors de dades (Oracle, DB2, MySQL, Postgress, Interbase ...). Si penses treballar amb bases de dades et recomanem que t'estudïis d'entrada algun manual o tutrial d'SQL. Et resultarà imprescindible en programació web.

Per a concluir la pràctica, crearàs una nova taula. En ella portaràs el registre de dades dels redactors autoritzats a publicar a la teva web: el nom i cognoms, el nick i la clau d'accés.

La taula es dirà 'autors' i l'estructura de camps ha de ser la següent:

1) El primer camp s'ha de dir AUTOR ha de ser un VARCHAR(50). El programa et suggerirà que sigui INTEGER. Canvia-ho a VARCHAR(50) però manté el camp com a clau primària (comprova la presència de la petita clau groga al costat del nom del camp). En aquest camp desaràs el nick de l'autor.

2) Afegeix tres camps de tipus VARCHAR(50) que es diran respectivament NOM, COGNOM1 i COGNOM2. Han de contenir el nom i cognoms dels redactors del portal.

3) El cinquè camp es diu ACTIU. Aquí enregistraràs si el redactor és actiu en el sistema (ens pot convenir treure els drets de publicació a algun dels redactors). Com en MySQL no existeix directament un camp lògic, el crearàs en format TINYINT(1). Un petit camp enter. El valor 1 voldrà dir que el redactor és actiu i el valor 0 voldrà dir que és inactiu.

5) El darrer camp es diu CLAU. Porta la contrassenya del redactor per a accedir a l'eina de publicació del portal. Fes-la en forma de VARCHAR(10).

Inserta una plantilla mínima de redactors a la taula. Executa les següents sentències amb el Query Browser:

insert into autors (autor,nom,cognom1,cognom2,actiu,clau) values ('reverte','Arturo','Pérez','Reverte',1,'trafalgar')

insert into autors (autor,nom,cognom1,cognom2,actiu,clau) values ('obrian','Richard','Patrick','Russ',1,'surprise')

 

 
     
 

 

Tornar al principi