Introducció

En aquest tema, aprendrem sobre les tècniques d'indexació i cerca en bases de dades MUMPS. L'indexació és una tècnica que permet accelerar les operacions de cerca en una base de dades, mentre que la cerca és el procés de trobar dades específiques dins de la base de dades. Aquestes tècniques són essencials per millorar el rendiment i l'eficiència de les aplicacions que gestionen grans volums de dades.

Objectius

  • Entendre el concepte d'indexació en MUMPS.
  • Aprendre a crear i gestionar índexs.
  • Comprendre les tècniques de cerca eficients.
  • Aplicar aquests conceptes en exemples pràctics.

Conceptes Clau

  1. Indexació

L'indexació és el procés de crear estructures de dades addicionals que permeten accedir ràpidament a les dades emmagatzemades en una base de dades. Els índexs són similars a les taules de continguts d'un llibre, que permeten trobar ràpidament la informació desitjada.

Avantatges de l'Indexació

  • Millora del Rendiment: Redueix el temps de cerca.
  • Eficiència: Permet accedir a les dades de manera més eficient.
  • Organització: Ajuda a mantenir les dades organitzades.

  1. Cerca

La cerca és el procés de localitzar dades específiques dins d'una base de dades. Les tècniques de cerca eficients són crucials per garantir que les operacions de recuperació de dades siguin ràpides i efectives.

Tipus de Cerca

  • Cerca Seqüencial: Recorre totes les dades fins a trobar la coincidència.
  • Cerca Binària: Utilitza un algorisme de divisió i cerca en dades ordenades.
  • Cerca per Índex: Utilitza índexs per accedir directament a les dades.

Creació d'Índexs en MUMPS

Sintaxi Bàsica

Per crear un índex en MUMPS, utilitzem la següent sintaxi:

SET ^INDEX("clau", valor) = referència

Exemple Pràctic

Suposem que tenim una base de dades de pacients i volem crear un índex basat en el número d'identificació del pacient.

; Emmagatzemar dades de pacients
SET ^PACIENTS(1) = "Joan"
SET ^PACIENTS(2) = "Maria"
SET ^PACIENTS(3) = "Pere"

; Crear índex basat en el número d'identificació
SET ^INDEX("ID", 1) = "Joan"
SET ^INDEX("ID", 2) = "Maria"
SET ^INDEX("ID", 3) = "Pere"

Cerca Eficient en MUMPS

Cerca per Índex

Utilitzant l'índex creat anteriorment, podem realitzar cerques eficients.

; Cercar pacient amb ID 2
SET pacient = ^INDEX("ID", 2)
WRITE "Pacient trobat: ", pacient

Cerca Seqüencial

En cas que no tinguem un índex, podem utilitzar una cerca seqüencial.

; Cercar pacient amb nom "Maria"
SET nom = "Maria"
SET id = ""
FOR  SET id=$ORDER(^PACIENTS(id)) QUIT:id=""  DO
. IF ^PACIENTS(id)=nom WRITE "Pacient trobat amb ID: ", id

Exercicis Pràctics

Exercici 1: Crear un Índex

  1. Emmagatzema una llista de llibres amb els seus títols i autors.
  2. Crea un índex basat en el títol del llibre.
  3. Escriu un codi per cercar un llibre pel seu títol utilitzant l'índex.

Exercici 2: Cerca Seqüencial

  1. Emmagatzema una llista de productes amb els seus preus.
  2. Escriu un codi per cercar un producte amb un preu específic utilitzant una cerca seqüencial.

Solucions

Solució Exercici 1

; Emmagatzemar llibres
SET ^LLIBRES(1) = "El Quixot^Miguel de Cervantes"
SET ^LLIBRES(2) = "1984^George Orwell"
SET ^LLIBRES(3) = "Moby Dick^Herman Melville"

; Crear índex basat en el títol
SET ^INDEX("TITOL", "El Quixot") = 1
SET ^INDEX("TITOL", "1984") = 2
SET ^INDEX("TITOL", "Moby Dick") = 3

; Cercar llibre pel títol
SET titol = "1984"
SET id = ^INDEX("TITOL", titol)
WRITE "Llibre trobat: ", ^LLIBRES(id)

Solució Exercici 2

; Emmagatzemar productes
SET ^PRODUCTES(1) = "Poma^1.20"
SET ^PRODUCTES(2) = "Plàtan^0.80"
SET ^PRODUCTES(3) = "Taronja^1.00"

; Cercar producte pel preu
SET preu = 1.00
SET id = ""
FOR  SET id=$ORDER(^PRODUCTES(id)) QUIT:id=""  DO
. SET dades = ^PRODUCTES(id)
. SET preuProducte = $PIECE(dades, "^", 2)
. IF preuProducte=preu WRITE "Producte trobat: ", $PIECE(dades, "^", 1)

Conclusió

En aquest tema, hem après sobre la importància de l'indexació i les tècniques de cerca en MUMPS. Hem vist com crear índexs per millorar el rendiment de les cerques i com implementar cerques seqüencials i per índex. Aquests conceptes són fonamentals per gestionar eficientment les bases de dades en MUMPS i millorar el rendiment de les aplicacions.

En el proper tema, explorarem la seguretat de la base de dades en MUMPS, on aprendrem a protegir les nostres dades contra accessos no autoritzats i altres amenaces.

© Copyright 2024. Tots els drets reservats